From 1314c601b2a367be670627c545afb2504d4fd0a4 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 28 Mar 2020 19:40:43 +0200 Subject: [PATCH] Simplify settings --- app/build.gradle | 2 +- .../ui/reader/SimpleSettingsActivity.kt | 4 +- .../ui/settings/AboutSettingsFragment.kt | 12 ---- ...ngsFragment.kt => MainSettingsFragment.kt} | 41 +++++++---- .../kotatsu/ui/settings/SettingsActivity.kt | 29 +------- .../ui/settings/SettingsHeadersFragment.kt | 13 ---- .../res/layout-w600dp/activity_settings.xml | 38 ++++------ app/src/main/res/values-ru/strings.xml | 2 + app/src/main/res/values/constants.xml | 1 + app/src/main/res/values/strings.xml | 2 + app/src/main/res/xml/pref_about.xml | 14 ---- app/src/main/res/xml/pref_appearance.xml | 34 --------- app/src/main/res/xml/pref_headers.xml | 30 -------- app/src/main/res/xml/pref_main.xml | 69 +++++++++++++++++++ 14 files changed, 120 insertions(+), 171 deletions(-) delete mode 100644 app/src/main/java/org/koitharu/kotatsu/ui/settings/AboutSettingsFragment.kt rename app/src/main/java/org/koitharu/kotatsu/ui/settings/{AppearanceSettingsFragment.kt => MainSettingsFragment.kt} (69%) delete mode 100644 app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsHeadersFragment.kt delete mode 100644 app/src/main/res/xml/pref_about.xml delete mode 100644 app/src/main/res/xml/pref_appearance.xml delete mode 100644 app/src/main/res/xml/pref_headers.xml create mode 100644 app/src/main/res/xml/pref_main.xml diff --git a/app/build.gradle b/app/build.gradle index 5c96257d5..0f90635f4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { minSdkVersion 21 targetSdkVersion 29 versionCode gitCommits - versionName '0.1.1' + versionName '0.1.2' buildConfigField 'String', 'GIT_BRANCH', "\"${gitBranch}\"" diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/reader/SimpleSettingsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/ui/reader/SimpleSettingsActivity.kt index 756b36ffa..175756b4a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/reader/SimpleSettingsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/reader/SimpleSettingsActivity.kt @@ -6,8 +6,8 @@ import android.os.Bundle import androidx.fragment.app.commit import org.koitharu.kotatsu.R import org.koitharu.kotatsu.ui.common.BaseActivity +import org.koitharu.kotatsu.ui.settings.MainSettingsFragment import org.koitharu.kotatsu.ui.settings.ReaderSettingsFragment -import org.koitharu.kotatsu.ui.settings.SettingsHeadersFragment class SimpleSettingsActivity : BaseActivity() { @@ -19,7 +19,7 @@ class SimpleSettingsActivity : BaseActivity() { supportFragmentManager.commit { replace(R.id.container, when(section) { SECTION_READER -> ReaderSettingsFragment() - else -> SettingsHeadersFragment() + else -> MainSettingsFragment() }) } } diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/AboutSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/AboutSettingsFragment.kt deleted file mode 100644 index aa687a78f..000000000 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/AboutSettingsFragment.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.koitharu.kotatsu.ui.settings - -import android.os.Bundle -import org.koitharu.kotatsu.R -import org.koitharu.kotatsu.ui.common.BasePreferenceFragment - -class AboutSettingsFragment : BasePreferenceFragment(R.string.about_app) { - - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - addPreferencesFromResource(R.xml.pref_about) - } -} \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/AppearanceSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt similarity index 69% rename from app/src/main/java/org/koitharu/kotatsu/ui/settings/AppearanceSettingsFragment.kt rename to app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt index 58c9944c4..3b1ef5f90 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/AppearanceSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/settings/MainSettingsFragment.kt @@ -5,21 +5,24 @@ import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatDelegate import androidx.collection.arrayMapOf +import androidx.preference.MultiSelectListPreference import androidx.preference.Preference +import androidx.preference.PreferenceScreen import androidx.preference.SeekBarPreference import org.koitharu.kotatsu.R +import org.koitharu.kotatsu.core.model.MangaSource import org.koitharu.kotatsu.core.prefs.ListMode import org.koitharu.kotatsu.ui.common.BasePreferenceFragment import org.koitharu.kotatsu.ui.main.list.ListModeSelectDialog +import org.koitharu.kotatsu.ui.settings.utils.MultiSummaryProvider -class AppearanceSettingsFragment : BasePreferenceFragment(R.string.appearance), +class MainSettingsFragment : BasePreferenceFragment(R.string.settings), SharedPreferences.OnSharedPreferenceChangeListener { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - addPreferencesFromResource(R.xml.pref_appearance) - + addPreferencesFromResource(R.xml.pref_main) findPreference(R.string.key_list_mode)?.summary = - listModes[settings.listMode]?.let(::getString) + LIST_MODES[settings.listMode]?.let(::getString) findPreference(R.string.key_grid_size)?.run { summary = "%d%%".format(value) setOnPreferenceChangeListener { preference, newValue -> @@ -27,6 +30,24 @@ class AppearanceSettingsFragment : BasePreferenceFragment(R.string.appearance), true } } + findPreference(R.string.key_reader_switchers)?.summaryProvider = + MultiSummaryProvider(R.string.gestures_only) + findPreference(R.string.key_remote_sources)?.run { + val total = MangaSource.values().size - 1 + summary = getString( + R.string.enabled_d_from_d, total - settings.hiddenSources.size, total + ) + } + } + + override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { + when (key) { + getString(R.string.key_list_mode) -> findPreference(R.string.key_list_mode)?.summary = + LIST_MODES[settings.listMode]?.let(::getString) + getString(R.string.key_theme) -> { + AppCompatDelegate.setDefaultNightMode(settings.theme) + } + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -49,19 +70,9 @@ class AppearanceSettingsFragment : BasePreferenceFragment(R.string.appearance), } } - override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { - when (key) { - getString(R.string.key_list_mode) -> findPreference(R.string.key_list_mode)?.summary = - listModes[settings.listMode]?.let(::getString) - getString(R.string.key_theme) -> { - AppCompatDelegate.setDefaultNightMode(settings.theme) - } - } - } - private companion object { - val listModes = arrayMapOf( + val LIST_MODES = arrayMapOf( ListMode.DETAILED_LIST to R.string.detailed_list, ListMode.GRID to R.string.grid, ListMode.LIST to R.string.list diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsActivity.kt index 9e49a1ad6..d96609a95 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsActivity.kt @@ -3,11 +3,9 @@ package org.koitharu.kotatsu.ui.settings import android.content.Context import android.content.Intent import android.os.Bundle -import androidx.fragment.app.FragmentManager import androidx.fragment.app.commit import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import kotlinx.android.synthetic.main.activity_settings.* import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.model.MangaSource import org.koitharu.kotatsu.ui.common.BaseActivity @@ -20,48 +18,25 @@ class SettingsActivity : BaseActivity(), setContentView(R.layout.activity_settings) supportActionBar?.setDisplayHomeAsUpEnabled(true) - val isTablet = container_side != null if (supportFragmentManager.findFragmentById(R.id.container) == null) { supportFragmentManager.commit { - if (isTablet) { - replace(R.id.container_side, SettingsHeadersFragment()) - replace(R.id.container, AppearanceSettingsFragment()) - } else { - replace(R.id.container, SettingsHeadersFragment()) - } + replace(R.id.container, MainSettingsFragment()) } } } override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean { val fm = supportFragmentManager - if (container_side != null && caller is SettingsHeadersFragment) { - fm.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) - } val fragment = fm.fragmentFactory.instantiate(classLoader, pref.fragment) fragment.arguments = pref.extras fragment.setTargetFragment(caller, 0) fm.commit { replace(R.id.container, fragment) - if (container_side == null || caller !is SettingsHeadersFragment) { - addToBackStack(null) - } + addToBackStack(null) } return true } - override fun onTitleChanged(title: CharSequence?, color: Int) { - if (container_side == null) { - super.onTitleChanged(title, color) - } else { - if (supportFragmentManager.backStackEntryCount == 0) { - supportActionBar?.subtitle = null - } else { - supportActionBar?.subtitle = title - } - } - } - fun openMangaSourceSettings(mangaSource: MangaSource) { supportFragmentManager.commit { replace(R.id.container, SourceSettingsFragment.newInstance(mangaSource)) diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsHeadersFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsHeadersFragment.kt deleted file mode 100644 index 670befdc0..000000000 --- a/app/src/main/java/org/koitharu/kotatsu/ui/settings/SettingsHeadersFragment.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.koitharu.kotatsu.ui.settings - -import android.os.Bundle -import org.koitharu.kotatsu.R -import org.koitharu.kotatsu.ui.common.BasePreferenceFragment - -class SettingsHeadersFragment : BasePreferenceFragment(R.string.settings) { - - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - addPreferencesFromResource(R.xml.pref_headers) - } - -} \ No newline at end of file diff --git a/app/src/main/res/layout-w600dp/activity_settings.xml b/app/src/main/res/layout-w600dp/activity_settings.xml index 3ebfadc14..8d031bc79 100644 --- a/app/src/main/res/layout-w600dp/activity_settings.xml +++ b/app/src/main/res/layout-w600dp/activity_settings.xml @@ -1,19 +1,18 @@ - @@ -26,23 +25,16 @@ - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/appbar" + app:layout_constraintWidth_percent="0.6" + android:layout_marginTop="12dp" + android:layout_marginBottom="12dp" + android:layout_width="0dp" + android:layout_height="0dp"> - \ No newline at end of file + \ 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 787cc3676..241763581 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -111,4 +111,6 @@ Открыть в браузере В этой манге %d глав. Вы уверены, что хотите сохранить их все? Сохранить мангу + Уведомления + Включено %1$d из %2$d \ No newline at end of file diff --git a/app/src/main/res/values/constants.xml b/app/src/main/res/values/constants.xml index 5655e111c..2afde4b7e 100644 --- a/app/src/main/res/values/constants.xml +++ b/app/src/main/res/values/constants.xml @@ -10,6 +10,7 @@ search_history_clear reading_history_clear grid_size + remote_sources reader_switchers app_update app_update_auto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f1b662c3d..4ea2d4002 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -112,4 +112,6 @@ Open in browser This manga has %d chapters. Are you want to save all of it? Save manga + Notifications + Enabled %1$d from %2$d \ No newline at end of file diff --git a/app/src/main/res/xml/pref_about.xml b/app/src/main/res/xml/pref_about.xml deleted file mode 100644 index 60d0c0a42..000000000 --- a/app/src/main/res/xml/pref_about.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/pref_appearance.xml b/app/src/main/res/xml/pref_appearance.xml deleted file mode 100644 index 481f311f8..000000000 --- a/app/src/main/res/xml/pref_appearance.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/pref_headers.xml b/app/src/main/res/xml/pref_headers.xml deleted file mode 100644 index 53e6ccad8..000000000 --- a/app/src/main/res/xml/pref_headers.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/pref_main.xml b/app/src/main/res/xml/pref_main.xml new file mode 100644 index 000000000..dc81c5758 --- /dev/null +++ b/app/src/main/res/xml/pref_main.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file