Differential D8625 Diff 26259 web/cashtab/mobile/android/app/src/debug/java/com/mobile/ReactNativeFlipper.java
Changeset View
Changeset View
Standalone View
Standalone View
web/cashtab/mobile/android/app/src/debug/java/com/mobile/ReactNativeFlipper.java
- This file was added.
/** | |||||
* Copyright (c) Facebook, Inc. and its affiliates. | |||||
* | |||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root | |||||
* directory of this source tree. | |||||
*/ | |||||
package com.mobile; | |||||
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.react.ReactFlipperPlugin; | |||||
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | |||||
import com.facebook.react.ReactInstanceManager; | |||||
import com.facebook.react.bridge.ReactContext; | |||||
import com.facebook.react.modules.network.NetworkingModule; | |||||
import okhttp3.OkHttpClient; | |||||
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 ReactFlipperPlugin()); | |||||
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 ReactInstanceManager.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()); | |||||
} | |||||
} | |||||
} | |||||
} |