From ef01439ded3b81d39ab9ee361dd5d2547df3b408 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sun, 9 Jan 2022 01:14:36 +0100 Subject: [PATCH] Add export log to debug settings screen --- i18n/src/main/res/values-de/strings.xml | 1 + i18n/src/main/res/values/strings.xml | 1 + .../ui/settings/debug/DebugSettingsScreen.kt | 30 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/i18n/src/main/res/values-de/strings.xml b/i18n/src/main/res/values-de/strings.xml index e197dc7d..7b6fd8e1 100644 --- a/i18n/src/main/res/values-de/strings.xml +++ b/i18n/src/main/res/values-de/strings.xml @@ -440,6 +440,7 @@ Crash-Reporter Fehler- und Absturzberichte + Log-Datei exportieren Auf Musik-Apps begrenzen Mediensitzungen von Apps ignorieren, die keine Musik-Apps sind diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 2f2d3c9e..483d4b02 100644 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -478,6 +478,7 @@ Crash reporter Error and crash reports + Export log file Restrict to music apps Ignore media sessions of apps that are not music apps diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt index fb7d6248..d1d81138 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt @@ -1,16 +1,24 @@ package de.mm20.launcher2.ui.settings.debug +import android.content.Intent import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.core.content.FileProvider import de.mm20.launcher2.crashreporter.CrashReporter +import de.mm20.launcher2.debug.DebugInformationDumper +import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.preferences.Preference import de.mm20.launcher2.ui.component.preferences.PreferenceScreen +import kotlinx.coroutines.launch +import java.io.File @Composable fun DebugSettingsScreen() { val context = LocalContext.current + val scope = rememberCoroutineScope() PreferenceScreen( stringResource(R.string.preference_screen_debug) ) { @@ -21,6 +29,28 @@ fun DebugSettingsScreen() { onClick = { context.startActivity(CrashReporter.getLaunchIntent()) }) + + Preference( + title = stringResource(R.string.preference_export_log), + onClick = { + scope.launch { + val path = DebugInformationDumper().dump(context) + context.tryStartActivity( + Intent.createChooser( + Intent(Intent.ACTION_SEND).apply { + type = "text/plain" + putExtra( + Intent.EXTRA_STREAM, FileProvider.getUriForFile( + context, + context.applicationContext.packageName + ".fileprovider", + File(path) + ) + ) + }, null + ) + ) + } + }) } } } \ No newline at end of file