From 865f3b96929d397b5695e069eae6581643d86fee Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 10 Oct 2024 09:15:22 +0200 Subject: [PATCH] Added setting to enable/disable logs printing in system logcat --- .../java/org/linphone/core/CoreContext.kt | 21 ++++++++---- .../ui/main/help/viewmodel/HelpViewModel.kt | 15 +++++++++ .../main/res/layout/help_debug_fragment.xml | 32 +++++++++++++++++-- app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 62 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index ab44ebebc..a8c4921e1 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -347,6 +347,8 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C } } + private var logcatEnabled: Boolean = corePreferences.printLogsInLogcat + private val loggingServiceListener = object : LoggingServiceListenerStub() { @WorkerThread override fun onLogMessageWritten( @@ -355,12 +357,14 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C level: LogLevel, message: String ) { - when (level) { - LogLevel.Error -> android.util.Log.e(domain, message) - LogLevel.Warning -> android.util.Log.w(domain, message) - LogLevel.Message -> android.util.Log.i(domain, message) - LogLevel.Fatal -> android.util.Log.wtf(domain, message) - else -> android.util.Log.d(domain, message) + if (logcatEnabled) { + when (level) { + LogLevel.Error -> android.util.Log.e(domain, message) + LogLevel.Warning -> android.util.Log.w(domain, message) + LogLevel.Message -> android.util.Log.i(domain, message) + LogLevel.Fatal -> android.util.Log.wtf(domain, message) + else -> android.util.Log.d(domain, message) + } } FirebaseCrashlytics.getInstance().log("[$domain] [${level.name}] $message") } @@ -842,4 +846,9 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C val sdkUserAgent = "$sdkVersion ($sdkBranch)" core.setUserAgent(userAgent, sdkUserAgent) } + + @WorkerThread + fun enableLogcat(enable: Boolean) { + logcatEnabled = enable + } } diff --git a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt index 2e821abd7..7175b2e3e 100644 --- a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt @@ -32,6 +32,7 @@ import org.linphone.R import org.linphone.contacts.ContactLoader.Companion.NATIVE_ADDRESS_BOOK_FRIEND_LIST import org.linphone.core.Core import org.linphone.core.CoreListenerStub +import org.linphone.core.Factory import org.linphone.core.VersionUpdateCheckResult import org.linphone.core.tools.Log import org.linphone.ui.GenericViewModel @@ -44,6 +45,8 @@ class HelpViewModel @UiThread constructor() : GenericViewModel() { private const val TAG = "[Help ViewModel]" } + val logcat = MutableLiveData() + val version = MutableLiveData() val appVersion = MutableLiveData() @@ -146,6 +149,7 @@ class HelpViewModel @UiThread constructor() : GenericViewModel() { coreContext.postOnCoreThread { core -> core.addListener(coreListener) + logcat.postValue(corePreferences.printLogsInLogcat) checkUpdateAvailable.postValue(corePreferences.checkForUpdateServerUrl.isNotEmpty()) uploadLogsAvailable.postValue(!core.logCollectionUploadServerUrl.isNullOrEmpty()) } @@ -160,6 +164,17 @@ class HelpViewModel @UiThread constructor() : GenericViewModel() { } } + @UiThread + fun toggleLogcat() { + val newValue = logcat.value == false + coreContext.postOnCoreThread { + corePreferences.printLogsInLogcat = newValue + coreContext.enableLogcat(newValue) + Factory.instance().enableLogcatLogs(newValue) + logcat.postValue(newValue) + } + } + @UiThread fun cleanLogs() { coreContext.postOnCoreThread { core -> diff --git a/app/src/main/res/layout/help_debug_fragment.xml b/app/src/main/res/layout/help_debug_fragment.xml index d0fd36c41..42a926fc5 100644 --- a/app/src/main/res/layout/help_debug_fragment.xml +++ b/app/src/main/res/layout/help_debug_fragment.xml @@ -54,6 +54,34 @@ app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintTop_toTopOf="parent"/> + + + + + app:layout_constraintTop_toBottomOf="@id/logcat_switch" /> Une nouvelle version %s est disponible. Voulez-vous mettre à jour ? Quitter l\'application Dépannage + Imprimer les journaux dans logcat Nettoyer les journaux Partager les journaux Version de l\'application diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae274cea2..d10928761 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -200,6 +200,7 @@ A new version %s is available. Do you want to update? Quit app Troubleshooting + Print logs in logcat Clean logs Share logs App version