From 032d671c383988c90aeddccf2070fbcabee978ad Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 19 Mar 2020 13:16:33 +0200 Subject: [PATCH] Add Chucker for debug --- .idea/dictionaries/admin.xml | 1 + .idea/jarRepositories.xml | 5 +++++ app/build.gradle | 4 +++- app/libs/.gitkeep | 1 + app/libs/okhttpprofiler-1.0.7.aar | Bin 9203 -> 0 bytes .../java/org/koitharu/kotatsu/KotatsuApp.kt | 21 +++++++++++++++--- build.gradle | 3 +++ 7 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 app/libs/.gitkeep delete mode 100644 app/libs/okhttpprofiler-1.0.7.aar diff --git a/.idea/dictionaries/admin.xml b/.idea/dictionaries/admin.xml index c84c310d4..07b4b61db 100644 --- a/.idea/dictionaries/admin.xml +++ b/.idea/dictionaries/admin.xml @@ -1,6 +1,7 @@ + chucker desu koin kotatsu diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index a5f05cd8c..237047402 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -21,5 +21,10 @@ \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ce22781e2..d38008c97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -90,7 +90,9 @@ dependencies { implementation 'com.tomclaw.cache:cache:1.0' debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.2' + debugImplementation 'com.github.ChuckerTeam.Chucker:library:3.1.2' + releaseImplementation 'com.github.ChuckerTeam.Chucker:library-no-op:3.1.2' testImplementation 'junit:junit:4.13' - testImplementation 'org.json:json:20180813' + testImplementation 'org.json:json:20190722' } \ No newline at end of file diff --git a/app/libs/.gitkeep b/app/libs/.gitkeep new file mode 100644 index 000000000..8d1c8b69c --- /dev/null +++ b/app/libs/.gitkeep @@ -0,0 +1 @@ + diff --git a/app/libs/okhttpprofiler-1.0.7.aar b/app/libs/okhttpprofiler-1.0.7.aar deleted file mode 100644 index 53c8c5cc4a5a86a3c685f228f4c122d9c826be80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9203 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 ZzltbG!+iXE0sH5R`}2C)KUWYC{|AAk5tRS{ diff --git a/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt b/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt index 53327f67b..2a1390478 100644 --- a/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt +++ b/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt @@ -6,9 +6,9 @@ import androidx.room.Room import coil.Coil import coil.ImageLoader import coil.util.CoilUtils -import com.itkacher.okhttpprofiler.OkHttpProfilerInterceptor +import com.chuckerteam.chucker.api.ChuckerCollector +import com.chuckerteam.chucker.api.ChuckerInterceptor import okhttp3.OkHttpClient -import okhttp3.internal.userAgent import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.core.context.startKoin @@ -31,10 +31,17 @@ class KotatsuApp : Application() { PersistentCookieJar(SetCookieCache(), SharedPrefsCookiePersistor(applicationContext)) } + private val chuckerCollector by lazy(LazyThreadSafetyMode.NONE) { + ChuckerCollector(applicationContext) + } + override fun onCreate() { super.onCreate() initKoin() initCoil() + if (BuildConfig.DEBUG) { + initErrorHandler() + } AppCompatDelegate.setDefaultNightMode(AppSettings(this).theme) } @@ -79,6 +86,14 @@ class KotatsuApp : Application() { }) } + private fun initErrorHandler() { + val exceptionHandler = Thread.getDefaultUncaughtExceptionHandler() + Thread.setDefaultUncaughtExceptionHandler { t, e -> + chuckerCollector.onError("CRASH", e) + exceptionHandler?.uncaughtException(t, e) + } + } + private fun okHttp() = OkHttpClient.Builder().apply { connectTimeout(20, TimeUnit.SECONDS) readTimeout(60, TimeUnit.SECONDS) @@ -86,7 +101,7 @@ class KotatsuApp : Application() { cookieJar(cookieJar) addInterceptor(UserAgentInterceptor) if (BuildConfig.DEBUG) { - addInterceptor(OkHttpProfilerInterceptor()) + addInterceptor(ChuckerInterceptor(applicationContext, collector = chuckerCollector)) } } diff --git a/build.gradle b/build.gradle index aaa2d2e8f..cbdeef496 100644 --- a/build.gradle +++ b/build.gradle @@ -18,6 +18,9 @@ allprojects { repositories { google() jcenter() + maven { + url 'https://jitpack.io' + } } }