Application Android et IOS pour l'amicale des élèves https://play.google.com/store/apps/details?id=fr.amicaleinsat.application
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ReactNativeFlipper.java 3.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * <p>This source code is licensed under the MIT license found in the LICENSE file in the root
  5. * directory of this source tree.
  6. */
  7. package fr.amicaleinsat.application;
  8. import android.content.Context;
  9. import com.facebook.flipper.android.AndroidFlipperClient;
  10. import com.facebook.flipper.android.utils.FlipperUtils;
  11. import com.facebook.flipper.core.FlipperClient;
  12. import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
  13. import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
  14. import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
  15. import com.facebook.flipper.plugins.inspector.DescriptorMapping;
  16. import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
  17. import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
  18. import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
  19. import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
  20. import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
  21. import com.facebook.react.ReactInstanceManager;
  22. import com.facebook.react.bridge.ReactContext;
  23. import com.facebook.react.modules.network.NetworkingModule;
  24. import okhttp3.OkHttpClient;
  25. public class ReactNativeFlipper {
  26. public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
  27. if (FlipperUtils.shouldEnableFlipper(context)) {
  28. final FlipperClient client = AndroidFlipperClient.getInstance(context);
  29. client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
  30. client.addPlugin(new ReactFlipperPlugin());
  31. client.addPlugin(new DatabasesFlipperPlugin(context));
  32. client.addPlugin(new SharedPreferencesFlipperPlugin(context));
  33. client.addPlugin(CrashReporterPlugin.getInstance());
  34. NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
  35. NetworkingModule.setCustomClientBuilder(
  36. new NetworkingModule.CustomClientBuilder() {
  37. @Override
  38. public void apply(OkHttpClient.Builder builder) {
  39. builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
  40. }
  41. });
  42. client.addPlugin(networkFlipperPlugin);
  43. client.start();
  44. // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
  45. // Hence we run if after all native modules have been initialized
  46. ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
  47. if (reactContext == null) {
  48. reactInstanceManager.addReactInstanceEventListener(
  49. new ReactInstanceManager.ReactInstanceEventListener() {
  50. @Override
  51. public void onReactContextInitialized(ReactContext reactContext) {
  52. reactInstanceManager.removeReactInstanceEventListener(this);
  53. reactContext.runOnNativeModulesQueueThread(
  54. new Runnable() {
  55. @Override
  56. public void run() {
  57. client.addPlugin(new FrescoFlipperPlugin());
  58. }
  59. });
  60. }
  61. });
  62. } else {
  63. client.addPlugin(new FrescoFlipperPlugin());
  64. }
  65. }
  66. }
  67. }