From 37325642ce7ee5162116d05701ec5f3032b70a86 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Wed, 1 Jan 2020 18:10:15 +0100 Subject: [PATCH] Replace Stetho by Flipper --- app/build.gradle | 2 - app/src/debug/AndroidManifest.xml | 9 ++++ .../com/readrops/app/ReadropsDebugApp.java | 49 +++++++++++++++++++ .../java/com/readrops/app/ReadropsApp.java | 6 +-- readropslibrary/build.gradle | 5 +- .../readropslibrary/utils/HttpManager.java | 29 +++-------- 6 files changed, 70 insertions(+), 30 deletions(-) create mode 100644 app/src/debug/AndroidManifest.xml create mode 100644 app/src/debug/java/com/readrops/app/ReadropsDebugApp.java diff --git a/app/build.gradle b/app/build.gradle index 5463e012..d57bed1a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -98,6 +98,4 @@ dependencies { implementation 'com.mikepenz:fastadapter-commons:3.3.0' implementation 'com.mikepenz:materialdrawer:6.1.2' implementation "com.mikepenz:aboutlibraries:6.2.3" - - implementation 'com.facebook.stetho:stetho:1.5.1' } diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..78c6c54d --- /dev/null +++ b/app/src/debug/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/debug/java/com/readrops/app/ReadropsDebugApp.java b/app/src/debug/java/com/readrops/app/ReadropsDebugApp.java new file mode 100644 index 00000000..ddcc53e7 --- /dev/null +++ b/app/src/debug/java/com/readrops/app/ReadropsDebugApp.java @@ -0,0 +1,49 @@ +package com.readrops.app; + +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.inspector.DescriptorMapping; +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; +import com.facebook.flipper.plugins.navigation.NavigationFlipperPlugin; +import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; +import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; +import com.facebook.soloader.SoLoader; +import com.readrops.readropslibrary.utils.HttpManager; + +public class ReadropsDebugApp extends ReadropsApp { + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, false); + + initFlipper(); + } + + private void initFlipper() { + if (FlipperUtils.shouldEnableFlipper(this)) { + FlipperClient client = AndroidFlipperClient.getInstance(this); + client.addPlugin(new InspectorFlipperPlugin(this, DescriptorMapping.withDefaults())); + + NetworkFlipperPlugin networkPlugin = new NetworkFlipperPlugin(); + client.addPlugin(networkPlugin); + + HttpManager.setInstance( + HttpManager.getInstance() + .getOkHttpClient() + .newBuilder() + .addInterceptor(new FlipperOkhttpInterceptor(networkPlugin)) + .build()); + + client.addPlugin(new DatabasesFlipperPlugin(this)); + client.addPlugin(CrashReporterPlugin.getInstance()); + client.addPlugin(NavigationFlipperPlugin.getInstance()); + + client.start(); + } + } +} + diff --git a/app/src/main/java/com/readrops/app/ReadropsApp.java b/app/src/main/java/com/readrops/app/ReadropsApp.java index 9b69173d..e2b818a8 100644 --- a/app/src/main/java/com/readrops/app/ReadropsApp.java +++ b/app/src/main/java/com/readrops/app/ReadropsApp.java @@ -8,7 +8,6 @@ import android.os.Build; import androidx.appcompat.app.AppCompatDelegate; import androidx.preference.PreferenceManager; -import com.facebook.stetho.Stetho; import com.readrops.app.utils.SharedPreferencesManager; import io.reactivex.plugins.RxJavaPlugins; @@ -25,11 +24,8 @@ public class ReadropsApp extends Application { RxJavaPlugins.setErrorHandler(e -> { }); - if (BuildConfig.DEBUG) { - Stetho.initializeWithDefaults(this); - } - createNotificationChannels(); + PreferenceManager.setDefaultValues(this, R.xml.preferences, false); if (Boolean.valueOf(SharedPreferencesManager.readString(this, SharedPreferencesManager.SharedPrefKey.DARK_THEME))) diff --git a/readropslibrary/build.gradle b/readropslibrary/build.gradle index 99b252e5..7bf9e4e8 100644 --- a/readropslibrary/build.gradle +++ b/readropslibrary/build.gradle @@ -49,7 +49,8 @@ dependencies { implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'org.jsoup:jsoup:1.12.1' - implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1' - + debugApi 'com.facebook.flipper:flipper:0.30.1' + debugApi 'com.facebook.soloader:soloader:0.8.0' + debugApi 'com.facebook.flipper:flipper-network-plugin:0.30.1' } diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/utils/HttpManager.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/utils/HttpManager.java index 19af1b07..b317fe3f 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/utils/HttpManager.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/utils/HttpManager.java @@ -1,6 +1,5 @@ package com.readrops.readropslibrary.utils; -import com.readrops.readropslibrary.BuildConfig; import com.readrops.readropslibrary.services.Credentials; import java.io.IOException; @@ -10,7 +9,6 @@ import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; -import okhttp3.logging.HttpLoggingInterceptor; public class HttpManager { @@ -21,26 +19,12 @@ public class HttpManager { buildOkHttp(); } - public HttpManager(final Credentials credentials) { - this.credentials = credentials; - - buildOkHttp(); - } - private void buildOkHttp() { - OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder() + okHttpClient = new OkHttpClient.Builder() .callTimeout(1, TimeUnit.MINUTES) - .readTimeout(1, TimeUnit.HOURS); - - httpBuilder.addInterceptor(new AuthInterceptor()); - - if (BuildConfig.DEBUG) { - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); - interceptor.level(HttpLoggingInterceptor.Level.BASIC); - httpBuilder.addInterceptor(interceptor); - } - - okHttpClient = httpBuilder.build(); + .readTimeout(1, TimeUnit.HOURS) + .addInterceptor(new AuthInterceptor()) + .build(); } public OkHttpClient getOkHttpClient() { @@ -55,7 +39,6 @@ public class HttpManager { return credentials; } - private static HttpManager instance; public static HttpManager getInstance() { @@ -66,6 +49,10 @@ public class HttpManager { return instance; } + public static void setInstance(OkHttpClient client) { + instance.okHttpClient = client; + } + public class AuthInterceptor implements Interceptor { public AuthInterceptor() {