From 908baebb626f74b1ccc47ba1cea9092ec4352a52 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 9 Nov 2020 19:43:01 +0200 Subject: [PATCH] Dark amoled theme --- .idea/dictionaries/admin.xml | 1 + .../org/koitharu/kotatsu/core/prefs/AppSettings.kt | 3 +++ .../java/org/koitharu/kotatsu/ui/base/BaseActivity.kt | 10 ++++++++++ .../kotatsu/ui/settings/MainSettingsFragment.kt | 4 +++- .../kotatsu/ui/settings/ReaderSettingsFragment.kt | 1 - app/src/main/res/values-night/colors.xml | 1 + app/src/main/res/values-night/themes.xml | 8 ++++++++ app/src/main/res/values-ru/strings.xml | 3 +++ app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/values/themes.xml | 3 +++ app/src/main/res/xml/pref_main.xml | 8 ++++++++ app/src/main/res/xml/pref_reader.xml | 3 ++- 13 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/values-night/themes.xml diff --git a/.idea/dictionaries/admin.xml b/.idea/dictionaries/admin.xml index 143df12e7..dce652d7a 100644 --- a/.idea/dictionaries/admin.xml +++ b/.idea/dictionaries/admin.xml @@ -1,6 +1,7 @@ + amoled chucker desu failsafe diff --git a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt index ea8ef8652..e45cbd7ff 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -36,6 +36,8 @@ class AppSettings private constructor(private val prefs: SharedPreferences) : AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM ) + val isAmoledTheme by BoolPreferenceDelegate(KEY_THEME_AMOLED, defaultValue = false) + val gridSize by IntPreferenceDelegate(KEY_GRID_SIZE, defaultValue = 100) val readerPageSwitch by StringSetPreferenceDelegate( @@ -126,6 +128,7 @@ class AppSettings private constructor(private val prefs: SharedPreferences) : const val KEY_LIST_MODE = "list_mode" const val KEY_APP_SECTION = "app_section" const val KEY_THEME = "theme" + const val KEY_THEME_AMOLED = "amoled_theme" const val KEY_SOURCES_ORDER = "sources_order" const val KEY_SOURCES_HIDDEN = "sources_hidden" const val KEY_TRAFFIC_WARNING = "traffic_warning" diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/base/BaseActivity.kt b/app/src/main/java/org/koitharu/kotatsu/ui/base/BaseActivity.kt index eb4f3565e..eb04d30c8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/base/BaseActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/base/BaseActivity.kt @@ -1,13 +1,23 @@ package org.koitharu.kotatsu.ui.base +import android.os.Bundle import android.view.MenuItem import android.view.View import androidx.appcompat.widget.Toolbar import moxy.MvpAppCompatActivity +import org.koin.android.ext.android.get import org.koitharu.kotatsu.R +import org.koitharu.kotatsu.core.prefs.AppSettings abstract class BaseActivity : MvpAppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + if (get().isAmoledTheme) { + setTheme(R.style.AppTheme_Amoled) + } + super.onCreate(savedInstanceState) + } + override fun setContentView(layoutResID: Int) { super.setContentView(layoutResID) setupToolbar() diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt index d759b2599..1a298b532 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt @@ -65,7 +65,6 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings), findPreference(AppSettings.KEY_ZOOM_MODE)?.let { it.entryValues = ZoomMode.values().names() it.setDefaultValue(ZoomMode.FIT_CENTER.name) - it.summaryProvider = ListPreference.SimpleSummaryProvider.getInstance() } findPreference(AppSettings.KEY_PROTECT_APP)?.isChecked = !settings.appPassword.isNullOrEmpty() @@ -88,6 +87,9 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings), AppSettings.KEY_THEME -> { AppCompatDelegate.setDefaultNightMode(settings.theme) } + AppSettings.KEY_THEME_AMOLED -> { + findPreference(key)?.setSummary(R.string.restart_required) + } AppSettings.KEY_LOCAL_STORAGE -> { findPreference(key)?.run { summary = settings.getStorageDir(context)?.getStorageName(context) diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/ReaderSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/ReaderSettingsFragment.kt index ba37ccd50..98d0e29ce 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/ReaderSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/settings/ReaderSettingsFragment.kt @@ -25,7 +25,6 @@ class ReaderSettingsFragment : BasePreferenceFragment(R.string.reader_settings) findPreference(AppSettings.KEY_ZOOM_MODE)?.let { it.entryValues = ZoomMode.values().names() it.setDefaultValue(ZoomMode.FIT_CENTER.name) - it.summaryProvider = ListPreference.SimpleSummaryProvider.getInstance() } } } \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 90847003f..7c668f4b4 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -2,6 +2,7 @@ #1565C0 #283593 + #1A237E #FF8A65 #99000000 #E57373 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 000000000..56a92601d --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c89b6adc3..59e2471ed 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -168,4 +168,7 @@ Подогнать по высоте Подогнать по ширине Исходный размер + Чёрная тёмная тема + Полезно для AMOLED экранов + Требуется перезапуск \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1884bedf1..c8b08fa48 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,6 +2,7 @@ #1976D2 #1565C0 + #283593 #EF5350 #424242 #212121 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9e7d47704..ba7b9331d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -170,4 +170,7 @@ Fit to height Fit to width Keep at start + Black dark theme + Useful for AMOLED screens + Restart required \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 721375513..cd631e285 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,9 +6,12 @@ @style/AppActionMode @style/PreferenceThemeOverlay + + +