From 2c07b97e01c5eb48b679bbfd8ff0db280b9823aa Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Tue, 4 Jan 2022 21:30:07 +0100 Subject: [PATCH] Add debug settings screen and move widget settings to sub screen --- .../fragment/PreferencesCalendarFragment.kt | 2 +- .../fragment/PreferencesWeatherFragment.kt | 2 +- app/src/main/res/xml/preferences_main.xml | 4 +-- i18n/src/main/res/values-de/strings.xml | 15 +++++++-- i18n/src/main/res/values/strings.xml | 15 +++++++-- .../ui/screens/settings/SettingsMainScreen.kt | 4 +-- .../launcher2/ui/settings/SettingsActivity.kt | 10 +++++- .../ui/settings/debug/DebugSettingsScreen.kt | 26 ++++++++++++++++ .../settings/debug/DebugSettingsScreenVM.kt | 10 ++++++ .../ui/settings/main/MainSettingsScreen.kt | 29 +++++++++-------- .../WeatherWidgetSettingsScreen.kt | 2 +- .../settings/widgets/WidgetsSettingsScreen.kt | 31 +++++++++++++++++++ 12 files changed, 123 insertions(+), 27 deletions(-) create mode 100644 ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt create mode 100644 ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreenVM.kt create mode 100644 ui/src/main/java/de/mm20/launcher2/ui/settings/widgets/WidgetsSettingsScreen.kt diff --git a/app/src/main/java/de/mm20/launcher2/fragment/PreferencesCalendarFragment.kt b/app/src/main/java/de/mm20/launcher2/fragment/PreferencesCalendarFragment.kt index 621847fa..488a82a4 100644 --- a/app/src/main/java/de/mm20/launcher2/fragment/PreferencesCalendarFragment.kt +++ b/app/src/main/java/de/mm20/launcher2/fragment/PreferencesCalendarFragment.kt @@ -108,7 +108,7 @@ class PreferencesCalendarFragment : PreferenceFragmentCompat() { override fun onResume() { super.onResume() - (activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_calendar) + (activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_calendarwidget) hasCalendarPermission = requireActivity().checkPermission(Manifest.permission.READ_CALENDAR) && requireActivity().checkPermission(Manifest.permission.WRITE_CALENDAR) } diff --git a/app/src/main/java/de/mm20/launcher2/fragment/PreferencesWeatherFragment.kt b/app/src/main/java/de/mm20/launcher2/fragment/PreferencesWeatherFragment.kt index a721e5a0..d03b01b6 100644 --- a/app/src/main/java/de/mm20/launcher2/fragment/PreferencesWeatherFragment.kt +++ b/app/src/main/java/de/mm20/launcher2/fragment/PreferencesWeatherFragment.kt @@ -146,7 +146,7 @@ class PreferencesWeatherFragment : PreferenceFragmentCompat() { override fun onResume() { super.onResume() - (activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_weather) + (activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_weatherwidget) } } diff --git a/app/src/main/res/xml/preferences_main.xml b/app/src/main/res/xml/preferences_main.xml index 7b1c88a2..c049360d 100644 --- a/app/src/main/res/xml/preferences_main.xml +++ b/app/src/main/res/xml/preferences_main.xml @@ -19,12 +19,12 @@ app:icon="@drawable/ic_pref_weather" app:key="screen_weather" app:summary="@string/preference_screen_weather_summary" - app:title="@string/preference_screen_weather" /> + app:title="@string/preference_screen_weatherwidget" /> + app:title="@string/preference_screen_calendarwidget" /> Version, Entwickler, Open-Source-Lizenzen Design, Symbole, Suchleiste, Systemleisten Provider, Einheiten, Standort - Wetter Standort Automatischer Standort GPS und Ortungsdienste verwenden, um Standort automatisch zu ermitteln @@ -160,7 +159,7 @@ Dynamischer Hintergrund Hintergrundfarbe an Symbol anpassen Widget - Kalender + Kalender Kalender, Widgets Kalender Berechtigung fehlt @@ -343,7 +342,6 @@ OneDrive Telegram-Gruppe F-Droid-Repository - Crash-Reporter Plug-Ins Plug-Ins aktivieren oder deaktivieren Installierte Plug-Ins @@ -424,4 +422,15 @@ Gewähren Standortzugriff wird benötigt, um den Standort automatisch zu ermitteln Standort festlegen + + Debug + Werkzeuge zur Fehlerbehebung + + Widgets + Widgets konfigurieren + + Wetter + + Crash-Reporter + Fehler- und Absturzberichte \ No newline at end of file diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 3621d044..12461065 100644 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -83,7 +83,6 @@ Version, Developer, Open source licenses Theme, Icons, Search bar, System bars Provider, Units, location - Weather Location Automatic location Use GPS and location services to determine location automatically @@ -210,7 +209,7 @@ Dynamic background Adjust background color to icon Widget - Calendar + Calendar Calendars, Widget settings Calendars Permission denied @@ -342,7 +341,6 @@ OneDrive Telegram group F-Droid repository - Crash reporter Plugins Enable or disable plugins Installed plugins @@ -462,4 +460,15 @@ Grant Location access is required to determine the location automatically Set location + + Debug + Troubleshooting tools + + Widgets + Configure widgets + + Weather + + Crash reporter + Error and crash reports diff --git a/ui/src/main/java/de/mm20/launcher2/ui/screens/settings/SettingsMainScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/screens/settings/SettingsMainScreen.kt index c83ae0eb..5490fb53 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/screens/settings/SettingsMainScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/screens/settings/SettingsMainScreen.kt @@ -42,12 +42,12 @@ fun SettingsMainScreen() { ) Preference( icon = Icons.Rounded.LightMode, - title = stringResource(id = R.string.preference_screen_weather), + title = stringResource(id = R.string.preference_screen_weatherwidget), summary = stringResource(id = R.string.preference_screen_weather_summary) ) Preference( icon = Icons.Rounded.Today, - title = stringResource(id = R.string.preference_screen_calendar), + title = stringResource(id = R.string.preference_screen_calendarwidget), summary = stringResource(id = R.string.preference_screen_calendar_summary) ) Preference( diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt index d3a8c9a5..b720ca40 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt @@ -23,9 +23,11 @@ import de.mm20.launcher2.ui.base.BaseActivity import de.mm20.launcher2.ui.locals.LocalNavController import de.mm20.launcher2.ui.settings.about.AboutSettingsScreen import de.mm20.launcher2.ui.settings.appearance.AppearanceSettingsScreen +import de.mm20.launcher2.ui.settings.debug.DebugSettingsScreen import de.mm20.launcher2.ui.settings.license.LicenseScreen import de.mm20.launcher2.ui.settings.main.MainSettingsScreen import de.mm20.launcher2.ui.settings.weatherwidget.WeatherWidgetSettingsScreen +import de.mm20.launcher2.ui.settings.widgets.WidgetsSettingsScreen class SettingsActivity : BaseActivity() { @@ -81,12 +83,18 @@ class SettingsActivity : BaseActivity() { composable("settings/appearance") { AppearanceSettingsScreen() } - composable("settings/weather") { + composable("settings/widgets") { + WidgetsSettingsScreen() + } + composable("settings/widgets/weather") { WeatherWidgetSettingsScreen() } composable("settings/about") { AboutSettingsScreen() } + composable("settings/debug") { + DebugSettingsScreen() + } composable( "settings/license?library={libraryName}", arguments = listOf(navArgument("libraryName") { 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 new file mode 100644 index 00000000..fb7d6248 --- /dev/null +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreen.kt @@ -0,0 +1,26 @@ +package de.mm20.launcher2.ui.settings.debug + +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import de.mm20.launcher2.crashreporter.CrashReporter +import de.mm20.launcher2.ui.R +import de.mm20.launcher2.ui.component.preferences.Preference +import de.mm20.launcher2.ui.component.preferences.PreferenceScreen + +@Composable +fun DebugSettingsScreen() { + val context = LocalContext.current + PreferenceScreen( + stringResource(R.string.preference_screen_debug) + ) { + item { + Preference( + title = stringResource(R.string.preference_crash_reporter), + summary = stringResource(R.string.preference_crash_reporter_summary), + onClick = { + context.startActivity(CrashReporter.getLaunchIntent()) + }) + } + } +} \ No newline at end of file diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreenVM.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreenVM.kt new file mode 100644 index 00000000..8691412c --- /dev/null +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/debug/DebugSettingsScreenVM.kt @@ -0,0 +1,10 @@ +package de.mm20.launcher2.ui.settings.debug + +import androidx.lifecycle.ViewModel +import org.koin.core.component.KoinComponent + +class DebugSettingsScreenVM: ViewModel(), KoinComponent { + fun exportLog() { + + } +} \ No newline at end of file diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt index 7c54b001..ce323693 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt @@ -35,6 +35,14 @@ fun MainSettingsScreen() { title = stringResource(id = R.string.preference_screen_search), summary = stringResource(id = R.string.preference_screen_search_summary) ) + Preference( + icon = Icons.Rounded.Widgets, + title = stringResource(id = R.string.preference_screen_widgets), + summary = stringResource(id = R.string.preference_screen_widgets_summary), + onClick = { + navController?.navigate("settings/widgets") + } + ) Preference( icon = Icons.Rounded.NotificationBadge, title = stringResource(id = R.string.preference_screen_badges), @@ -43,19 +51,6 @@ fun MainSettingsScreen() { navController?.navigate("settings/badges") } ) - Preference( - icon = Icons.Rounded.LightMode, - title = stringResource(id = R.string.preference_screen_weather), - summary = stringResource(id = R.string.preference_screen_weather_summary), - onClick = { - navController?.navigate("settings/weather") - } - ) - Preference( - icon = Icons.Rounded.Today, - title = stringResource(id = R.string.preference_screen_calendar), - summary = stringResource(id = R.string.preference_screen_calendar_summary) - ) Preference( icon = Icons.Rounded.AccountBox, title = stringResource(id = R.string.preference_screen_services), @@ -64,6 +59,14 @@ fun MainSettingsScreen() { navController?.navigate("settings/accounts") } ) + Preference( + icon = Icons.Rounded.BugReport, + title = stringResource(id = R.string.preference_screen_debug), + summary = stringResource(id = R.string.preference_screen_debug_summary), + onClick = { + navController?.navigate("settings/debug") + } + ) Preference( icon = Icons.Rounded.Info, title = stringResource(id = R.string.preference_screen_about), diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt index 8f3c8f41..7e4798a5 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt @@ -23,7 +23,7 @@ fun WeatherWidgetSettingsScreen() { val viewModel: WeatherWidgetSettingsScreenVM = viewModel() val context = LocalContext.current - PreferenceScreen(title = stringResource(R.string.preference_screen_weather)) { + PreferenceScreen(title = stringResource(R.string.preference_screen_weatherwidget)) { item { PreferenceCategory { val weatherProvider by viewModel.weatherProvider.observeAsState() diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/widgets/WidgetsSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/widgets/WidgetsSettingsScreen.kt new file mode 100644 index 00000000..adcfc723 --- /dev/null +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/widgets/WidgetsSettingsScreen.kt @@ -0,0 +1,31 @@ +package de.mm20.launcher2.ui.settings.widgets + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.LightMode +import androidx.compose.material.icons.rounded.Today +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import de.mm20.launcher2.ui.R +import de.mm20.launcher2.ui.component.preferences.Preference +import de.mm20.launcher2.ui.component.preferences.PreferenceScreen +import de.mm20.launcher2.ui.locals.LocalNavController + +@Composable +fun WidgetsSettingsScreen() { + val navController = LocalNavController.current + PreferenceScreen(title = stringResource(R.string.preference_screen_widgets)) { + item { + Preference( + title = stringResource(R.string.preference_screen_weatherwidget), + icon = Icons.Rounded.LightMode, + onClick = { + navController?.navigate("settings/widgets/weather") + } + ) + Preference( + title = stringResource(R.string.preference_screen_calendarwidget), + icon = Icons.Rounded.Today + ) + } + } +} \ No newline at end of file