feat: Verbose logging

This commit is contained in:
Ahmad Ansori Palembani 2024-09-02 09:40:54 +07:00
parent 1925a503d9
commit 5a1a7063b2
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
7 changed files with 30 additions and 5 deletions

View file

@ -11,6 +11,7 @@
-->
## Additions
- Sync DoH provider list with upstream (added Mullvad, Control D, Njalla, and Shecan)
- Added option to enable verbose logging
## Fixes
- Fixed only few DoH provider is actually being used (Cloudflare, Google, AdGuard, and Quad9)

View file

@ -44,6 +44,7 @@ import eu.kanade.tachiyomi.data.coil.TachiyomiImageDecoder
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.network.NetworkHelper
import eu.kanade.tachiyomi.network.NetworkPreferences
import eu.kanade.tachiyomi.ui.library.LibraryPresenter
import eu.kanade.tachiyomi.ui.recents.RecentsPresenter
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
@ -75,6 +76,7 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
val preferences: PreferencesHelper by injectLazy()
val basePreferences: BasePreferences by injectLazy()
val networkPreferences: NetworkPreferences by injectLazy()
private val disableIncognitoReceiver = DisableIncognitoReceiver()
@ -253,7 +255,7 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
crossfade(true)
allowRgb565(this@App.getSystemService<ActivityManager>()!!.isLowRamDevice)
allowHardware(true)
if (BuildConfig.DEBUG) {
if (networkPreferences.verboseLogging().get()) {
logger(DebugLogger())
}

View file

@ -4,13 +4,13 @@ import android.app.Application
import android.graphics.Bitmap
import android.net.Uri
import androidx.core.net.toFile
import co.touchlab.kermit.Logger
import coil3.imageLoader
import coil3.request.CachePolicy
import coil3.request.ImageRequest
import coil3.request.SuccessResult
import com.hippo.unifile.UniFile
import dev.icerock.moko.resources.StringResource
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Category
@ -35,6 +35,7 @@ import eu.kanade.tachiyomi.data.track.EnhancedTrackService
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackService
import eu.kanade.tachiyomi.domain.manga.models.Manga
import eu.kanade.tachiyomi.network.NetworkPreferences
import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
@ -112,6 +113,8 @@ class MangaDetailsPresenter(
private val updateChapter: UpdateChapter by injectLazy()
private val updateManga: UpdateManga by injectLazy()
private val networkPreferences: NetworkPreferences by injectLazy()
// private val currentMangaInternal: MutableStateFlow<Manga?> = MutableStateFlow(null)
// val currentManga get() = currentMangaInternal.asStateFlow()
@ -967,7 +970,7 @@ class MangaDetailsPresenter(
DiskUtil.scanMedia(preferences.context, file)
true
} catch (e: Exception) {
if (BuildConfig.DEBUG) e.printStackTrace()
if (networkPreferences.verboseLogging().get()) Logger.e(e) { "Unable to save cover" }
false
}
}

View file

@ -129,6 +129,12 @@ class SettingsAdvancedController : SettingsLegacyController() {
}
}
switchPreference {
bindTo(networkPreferences.verboseLogging())
titleRes = MR.strings.pref_verbose_logging
summaryRes = MR.strings.pref_verbose_logging_summary
}
preference {
key = "debug_info"
titleRes = MR.strings.pref_debug_info

View file

@ -1,6 +1,7 @@
package yokai.core.di
import android.app.Application
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.security.SecurityPreferences
@ -39,7 +40,12 @@ class PreferenceModule(val application: Application) : InjektModule {
addSingletonFactory { DownloadPreferences(get()) }
addSingletonFactory { NetworkPreferences(get()) }
addSingletonFactory {
NetworkPreferences(
get(),
BuildConfig.FLAVOR == "dev" || BuildConfig.DEBUG || BuildConfig.NIGHTLY,
)
}
addSingletonFactory { SecurityPreferences(get()) }

View file

@ -2,7 +2,12 @@ package eu.kanade.tachiyomi.network
import eu.kanade.tachiyomi.core.preference.PreferenceStore
class NetworkPreferences(private val preferenceStore: PreferenceStore) {
class NetworkPreferences(
private val preferenceStore: PreferenceStore,
private val verboseLogging: Boolean,
) {
fun verboseLogging() = preferenceStore.getBoolean("verbose_logging", verboseLogging)
fun dohProvider() = preferenceStore.getInt("doh_provider", -1)

View file

@ -799,6 +799,8 @@
<string name="saves_error_logs">Saves error logs to a file for sharing with the developers</string>
<string name="about_dont_kill_my_app">Some manufacturers have additional app restrictions that kill background services. This website has more info on how to fix it.</string>
<string name="crash_log_saved">Crash logs saved</string>
<string name="pref_verbose_logging">Verbose logging</string>
<string name="pref_verbose_logging_summary">Print verbose logs to system log (may reduces app performance)</string>
<string name="network">Network</string>
<string name="doh">DNS over HTTPS</string>
<string name="user_agent_string">Default user agent string</string>