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