From 51dc2ac0466a919d35033a0c7039b38a6ab48533 Mon Sep 17 00:00:00 2001 From: ztimms73 Date: Sat, 15 May 2021 08:56:03 +0300 Subject: [PATCH] Added the option to hide or not toolbar when scrolling --- .../java/org/koitharu/kotatsu/base/ui/BaseActivity.kt | 8 ++++++++ .../java/org/koitharu/kotatsu/core/prefs/AppSettings.kt | 3 +++ .../org/koitharu/kotatsu/settings/MainSettingsFragment.kt | 3 +++ app/src/main/res/values-be/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/pref_main.xml | 6 ++++++ 7 files changed, 23 insertions(+) diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt index b695d0bb2..d032ec3e9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt @@ -15,6 +15,8 @@ import androidx.core.content.ContextCompat import androidx.core.graphics.Insets import androidx.core.view.* import androidx.viewbinding.ViewBinding +import com.google.android.material.appbar.AppBarLayout +import com.google.android.material.appbar.AppBarLayout.LayoutParams.* import org.koin.android.ext.android.get import org.koitharu.kotatsu.BuildConfig import org.koitharu.kotatsu.R @@ -57,7 +59,13 @@ abstract class BaseActivity : AppCompatActivity(), OnApplyWindo this.binding = binding super.setContentView(binding.root) (binding.root.findViewById(R.id.toolbar) as? Toolbar)?.let(this::setSupportActionBar) + val params = (binding.root.findViewById(R.id.toolbar) as? Toolbar)?.layoutParams as AppBarLayout.LayoutParams ViewCompat.setOnApplyWindowInsetsListener(binding.root, this) + if (get().isToolbarHideWhenScrolling) { + params.scrollFlags = SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS + } else { + params.scrollFlags = SCROLL_FLAG_NO_SCROLL + } } override fun onApplyWindowInsets(v: View, insets: WindowInsetsCompat): WindowInsetsCompat { 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 2c2839576..7fc34cc4e 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 @@ -41,6 +41,8 @@ class AppSettings private constructor(private val prefs: SharedPreferences) : val isAmoledTheme by BoolPreferenceDelegate(KEY_THEME_AMOLED, defaultValue = false) + val isToolbarHideWhenScrolling by BoolPreferenceDelegate(KEY_HIDE_TOOLBAR, defaultValue = true) + var gridSize by IntPreferenceDelegate(KEY_GRID_SIZE, defaultValue = 100) val readerPageSwitch by StringSetPreferenceDelegate( @@ -147,6 +149,7 @@ class AppSettings private constructor(private val prefs: SharedPreferences) : const val KEY_APP_SECTION = "app_section" const val KEY_THEME = "theme" const val KEY_THEME_AMOLED = "amoled_theme" + const val KEY_HIDE_TOOLBAR = "hide_toolbar" 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/settings/MainSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt index c1a4a104d..388059e99 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt @@ -73,6 +73,9 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings), AppSettings.KEY_THEME_AMOLED -> { findPreference(key)?.setSummary(R.string.restart_required) } + AppSettings.KEY_HIDE_TOOLBAR -> { + 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/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index e45ea42ec..926f62a66 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -207,4 +207,5 @@ Калі ласка, увядзіце пароль, які спатрэбіцца пры запуску прыкладання Пацвярджаць Пароль павінен змяшчаць не менш за 4 сімвалаў + Схаваць загаловак пры прагортцы \ 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 36eddaf03..3765820e9 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -205,4 +205,5 @@ Введите пароль, который вам понадобится при запуске приложения Confirm Пароль должен содержать не менее 4 символов + Прятать заголовок при прокрутке \ 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 161e209c5..6f5e7da6f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -207,4 +207,5 @@ Enter password that will be required when the application starts Confirm Password must be at least 4 characters + Hide toolbar when scrolling \ 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 index 9d69e6c5f..a8613f904 100644 --- a/app/src/main/res/xml/pref_main.xml +++ b/app/src/main/res/xml/pref_main.xml @@ -20,6 +20,12 @@ android:title="@string/black_dark_theme" app:iconSpaceReserved="false" /> + +