From 15db9024021aa59cdc463df1cda56403fbd87494 Mon Sep 17 00:00:00 2001 From: minibits-cash Date: Wed, 10 Apr 2024 13:19:46 +0200 Subject: [PATCH] Fix build for RN0.73 --- android/app/build.gradle | 2 +- .../minibits_wallet/ReactNativeFlipper.java | 75 ------------------- .../com/minibits_wallet/MainActivity.java | 39 ---------- .../java/com/minibits_wallet/MainActivity.kt | 7 ++ .../com/minibits_wallet/MainApplication.java | 72 ------------------ .../com/minibits_wallet/MainApplication.kt | 14 +++- 6 files changed, 20 insertions(+), 189 deletions(-) delete mode 100644 android/app/src/debug/java/com/minibits_wallet/ReactNativeFlipper.java delete mode 100644 android/app/src/main/java/com/minibits_wallet/MainActivity.java delete mode 100644 android/app/src/main/java/com/minibits_wallet/MainApplication.java diff --git a/android/app/build.gradle b/android/app/build.gradle index 931c5d88..457d8791 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -176,7 +176,7 @@ android { dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") - implementation("com.facebook.react:flipper-integration") + // implementation("com.facebook.react:flipper-integration") // 0.73 build issue implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") if (hermesEnabled.toBoolean()) { diff --git a/android/app/src/debug/java/com/minibits_wallet/ReactNativeFlipper.java b/android/app/src/debug/java/com/minibits_wallet/ReactNativeFlipper.java deleted file mode 100644 index 862fca9d..00000000 --- a/android/app/src/debug/java/com/minibits_wallet/ReactNativeFlipper.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.minibits_wallet; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -/** - * Class responsible of loading Flipper inside your React Native application. This is the debug - * flavor of it. Here you can add your own plugins and customize the Flipper setup. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/android/app/src/main/java/com/minibits_wallet/MainActivity.java b/android/app/src/main/java/com/minibits_wallet/MainActivity.java deleted file mode 100644 index e4b29fbc..00000000 --- a/android/app/src/main/java/com/minibits_wallet/MainActivity.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.minibits_wallet; - -import android.os.Bundle; // react-native-screens fix -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactActivityDelegate; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "minibits_wallet"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link - * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React - * (aka React 18) with two boolean flags. - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new DefaultReactActivityDelegate( - this, - getMainComponentName(), - // If you opted-in for the New Architecture, we enable the Fabric Renderer. - DefaultNewArchitectureEntryPoint.getFabricEnabled()); - } - - // react-native-screens fix - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(null); - } -} diff --git a/android/app/src/main/java/com/minibits_wallet/MainActivity.kt b/android/app/src/main/java/com/minibits_wallet/MainActivity.kt index b1339604..f4ea7eaf 100644 --- a/android/app/src/main/java/com/minibits_wallet/MainActivity.kt +++ b/android/app/src/main/java/com/minibits_wallet/MainActivity.kt @@ -1,5 +1,7 @@ package com.minibits_wallet +// minibits_wallet:react-native-screens +import android.os.Bundle import com.facebook.react.ReactActivity import com.facebook.react.ReactActivityDelegate import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled @@ -19,4 +21,9 @@ class MainActivity : ReactActivity() { */ override fun createReactActivityDelegate(): ReactActivityDelegate = DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) + + // minibits_wallet:react-native-screens + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(null) + } } diff --git a/android/app/src/main/java/com/minibits_wallet/MainApplication.java b/android/app/src/main/java/com/minibits_wallet/MainApplication.java deleted file mode 100644 index 5f913259..00000000 --- a/android/app/src/main/java/com/minibits_wallet/MainApplication.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.minibits_wallet; - -import android.app.Application; -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactNativeHost; -import com.facebook.soloader.SoLoader; -import java.util.List; -// code-push -import com.microsoft.codepush.react.CodePush; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = - new DefaultReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @Override - protected boolean isNewArchEnabled() { - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - } - - @Override - protected Boolean isHermesEnabled() { - return BuildConfig.IS_HERMES_ENABLED; - } - - // 2. Override the getJSBundleFile method in order to let - // the CodePush runtime determine where to get the JS - // bundle location from on each app start - @Override - protected String getJSBundleFile() { - return CodePush.getJSBundleFile(); - } - }; - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - DefaultNewArchitectureEntryPoint.load(); - } - ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - } -} diff --git a/android/app/src/main/java/com/minibits_wallet/MainApplication.kt b/android/app/src/main/java/com/minibits_wallet/MainApplication.kt index 1225931d..4ffc9c14 100644 --- a/android/app/src/main/java/com/minibits_wallet/MainApplication.kt +++ b/android/app/src/main/java/com/minibits_wallet/MainApplication.kt @@ -9,8 +9,10 @@ import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.flipper.ReactNativeFlipper +// import com.facebook.react.flipper.ReactNativeFlipper import com.facebook.soloader.SoLoader +// minibits_wallet:react-native-code-push +import com.microsoft.codepush.react.CodePush class MainApplication : Application(), ReactApplication { @@ -28,6 +30,14 @@ class MainApplication : Application(), ReactApplication { override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + + // minibits_wallet:react-native-code-push + // 2. Override the getJSBundleFile method in order to let + // the CodePush runtime determine where to get the JS + // bundle location from on each app start + override fun getJSBundleFile(): String { + return CodePush.getJSBundleFile() + } } override val reactHost: ReactHost @@ -40,6 +50,6 @@ class MainApplication : Application(), ReactApplication { // If you opted-in for the New Architecture, we load the native entry point for this app. load() } - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) + // ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) } }