From 46bc8e7c13256dff54eff7a01d3921703b4589ca Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Sat, 21 Feb 2026 16:50:18 +0100 Subject: [PATCH] . --- .../ytdl/ui/more/settings/SettingsActivity.kt | 30 ++++++++++------- app/src/main/res/layout/activity_settings.xml | 32 +++++++++++-------- app/src/main/res/layout/plugin_item.xml | 6 ++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/SettingsActivity.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/SettingsActivity.kt index a3903434..afabafcb 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/SettingsActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/SettingsActivity.kt @@ -92,7 +92,9 @@ class SettingsActivity : BaseActivity(), SettingHost { } onBackPressedDispatcher.addCallback(this) { - if (navController.currentDestination?.id == R.id.mainSettingsFragment) { + if (binding.searchView.isShowing) { + binding.searchView.hide() + } else if (navController.currentDestination?.id == R.id.mainSettingsFragment) { navController.popBackStack() finishAndRemoveTask() }else{ @@ -113,26 +115,30 @@ class SettingsActivity : BaseActivity(), SettingHost { if (binding.collapsingToolbar.title != getString(R.string.settings)) return@addOnOffsetChangedListener val totalScrollRange = appBarLayout.totalScrollRange - // Avoid division by zero if (totalScrollRange == 0) return@addOnOffsetChangedListener val percentage = Math.abs(verticalOffset).toFloat() / totalScrollRange + val isCollapsed = percentage > 0.8f // 1. Handle Menu Icon Visibility - val isCollapsed = percentage > 0.8f toolbar.menu.findItem(R.id.search)?.isVisible = isCollapsed - // 2. Handle SearchBar Visibility and Space - if (isCollapsed) { - if (searchBar.visibility != View.GONE) { - searchBar.visibility = View.GONE + // 2. Handle SearchBar + when { + percentage >= 1f -> { + // Fully collapsed — safe to GONE now, jump isn't visible + if (searchBar.visibility != View.GONE) searchBar.visibility = View.GONE + } + percentage > 0.8f -> { + // Mid-collapse — hide visually but keep space to avoid jump + searchBar.visibility = View.INVISIBLE + searchBar.alpha = 0f } - } else { - if (searchBar.visibility != View.VISIBLE) { - searchBar.visibility = View.VISIBLE + else -> { + // Expanding — restore and fade in/out + if (searchBar.visibility != View.VISIBLE) searchBar.visibility = View.VISIBLE + searchBar.alpha = 1f - (percentage * 1.2f).coerceAtMost(1f) } - // Fade it out as we scroll up - searchBar.alpha = 1f - (percentage * 1.2f).coerceAtMost(1f) } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 0b68368c..896b83f7 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -8,6 +8,23 @@ android:fitsSystemWindows="true" tools:context=".ui.more.settings.SettingsActivity"> + + + + + + @@ -65,18 +83,4 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/plugin_item.xml b/app/src/main/res/layout/plugin_item.xml index 5b372f0b..8011bc27 100644 --- a/app/src/main/res/layout/plugin_item.xml +++ b/app/src/main/res/layout/plugin_item.xml @@ -92,12 +92,11 @@ Not installed Bundled If enabled, metadata fields will follow your app language and even affect format selection by preferring dubbed versions instead of original + Installed