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