From 034196b9fa50bae5b95eb010ac038bc9907fa8b1 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Thu, 25 Jun 2020 18:52:18 +0200 Subject: [PATCH] Add setting to manually enable/disable night mode (fixes #35) --- .../vonforst/evmap/fragment/SettingsFragment.kt | 14 ++++++++++++++ .../vonforst/evmap/storage/PreferenceDataSource.kt | 3 +++ app/src/main/res/values-de/arrays.xml | 5 +++++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values/arrays.xml | 10 ++++++++++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/settings.xml | 8 ++++++++ 7 files changed, 44 insertions(+) diff --git a/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt index ed9ff76f..18acb20a 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt @@ -3,6 +3,7 @@ package net.vonforst.evmap.fragment import android.content.SharedPreferences import android.os.Bundle import android.view.View +import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.widget.Toolbar import androidx.navigation.fragment.findNavController import androidx.navigation.ui.setupWithNavController @@ -10,13 +11,17 @@ import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import net.vonforst.evmap.MapsActivity import net.vonforst.evmap.R +import net.vonforst.evmap.storage.PreferenceDataSource class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { + private lateinit var prefs: PreferenceDataSource + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val toolbar = view.findViewById(R.id.toolbar) as Toolbar + prefs = PreferenceDataSource(requireContext()) val navController = findNavController() toolbar.setupWithNavController( @@ -43,6 +48,15 @@ class SettingsFragment : PreferenceFragmentCompat(), it.startActivity(it.intent); } } + "darkmode" -> { + AppCompatDelegate.setDefaultNightMode( + when (prefs.darkmode) { + "on" -> AppCompatDelegate.MODE_NIGHT_YES + "off" -> AppCompatDelegate.MODE_NIGHT_NO + else -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM + } + ) + } } } diff --git a/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt b/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt index 1fc53b65..6c560599 100644 --- a/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt +++ b/app/src/main/java/net/vonforst/evmap/storage/PreferenceDataSource.kt @@ -39,4 +39,7 @@ class PreferenceDataSource(context: Context) { val language: String get() = sp.getString("language", "default")!! + + val darkmode: String + get() = sp.getString("darkmode", "default")!! } \ No newline at end of file diff --git a/app/src/main/res/values-de/arrays.xml b/app/src/main/res/values-de/arrays.xml index bc97baa4..22a4ff1c 100644 --- a/app/src/main/res/values-de/arrays.xml +++ b/app/src/main/res/values-de/arrays.xml @@ -5,4 +5,9 @@ Englisch Deutsch + + Geräteeinstellung verwenden + immer an + immer aus + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 161286cc..27fa741c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -92,6 +92,8 @@ OK Sprache App-Sprache ändern + Dunkles Design + Einstellen, wann der Nachtmodus genutzt wird Ladesäulen konnten nicht geladen werden Wiederholen 24 Stunden geöffnet diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 823cb663..b1a9c8d1 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -10,4 +10,14 @@ en de + + Device default + always on + always off + + + default + on + off + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3480706f..0688c242 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -91,6 +91,8 @@ OK Language Change the app language + Dark mode + Set when dark mode is activated Could not load charging stations Retry Available 24/7 diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index e37feb9e..ea0a28ee 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -18,5 +18,13 @@ android:defaultValue="default" android:summary="@string/pref_language_summary" /> + + \ No newline at end of file