fix bottom app bar issues 2

This commit is contained in:
deniscerri 2025-04-01 22:18:28 +02:00
parent 5287d5fa67
commit 71988fa246
No known key found for this signature in database
GPG key ID: 95C43D517D830350
5 changed files with 40 additions and 9 deletions

View file

@ -21,8 +21,12 @@ import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.children import androidx.core.view.children
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.setPadding
import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@ -537,7 +541,7 @@ class DownloadMultipleBottomSheetDialog : BottomSheetDialogFragment(), Configure
bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE) bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE)
bottomSheet.setContentView(R.layout.adjust_audio) bottomSheet.setContentView(R.layout.adjust_audio)
val sheetView = bottomSheet.findViewById<View>(android.R.id.content)!! val sheetView = bottomSheet.findViewById<View>(android.R.id.content)!!
sheetView.findViewById<View>(R.id.adjust).setPadding(10,padding,10,padding) sheetView.findViewById<View>(R.id.adjust).setPadding(padding)
val items = withContext(Dispatchers.IO){ val items = withContext(Dispatchers.IO){
downloadViewModel.getProcessingDownloads() downloadViewModel.getProcessingDownloads()
@ -619,7 +623,7 @@ class DownloadMultipleBottomSheetDialog : BottomSheetDialogFragment(), Configure
bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE) bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE)
bottomSheet.setContentView(R.layout.adjust_video) bottomSheet.setContentView(R.layout.adjust_video)
val sheetView = bottomSheet.findViewById<View>(android.R.id.content)!! val sheetView = bottomSheet.findViewById<View>(android.R.id.content)!!
sheetView.findViewById<View>(R.id.adjust).setPadding(10,padding,10,padding) sheetView.findViewById<View>(R.id.adjust).setPadding(padding)
val items = withContext(Dispatchers.IO){ val items = withContext(Dispatchers.IO){
downloadViewModel.getProcessingDownloads() downloadViewModel.getProcessingDownloads()
@ -761,6 +765,16 @@ class DownloadMultipleBottomSheetDialog : BottomSheetDialogFragment(), Configure
} }
override fun onResume() {
super.onResume()
ViewCompat.setOnApplyWindowInsetsListener(bottomAppBar) { view, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
// Prevent extra bottom padding
view.setPadding(view.paddingLeft, view.paddingTop, view.paddingRight, 0)
WindowInsetsCompat.CONSUMED
}
}
private fun toggleLoading(loading: Boolean){ private fun toggleLoading(loading: Boolean){
shimmerTitle.isVisible = loading shimmerTitle.isVisible = loading
title.isVisible = !loading title.isVisible = !loading

View file

@ -12,6 +12,8 @@ import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.children import androidx.core.view.children
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doAfterTextChanged
@ -53,6 +55,7 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
private lateinit var toTextInput: TextInputLayout private lateinit var toTextInput: TextInputLayout
private lateinit var count: TextView private lateinit var count: TextView
private lateinit var selectBetween: MenuItem private lateinit var selectBetween: MenuItem
private lateinit var bottomAppBar: BottomAppBar
private lateinit var resultItemIDs: List<Long> private lateinit var resultItemIDs: List<Long>
private var items = listOf<ResultItem>() private var items = listOf<ResultItem>()
@ -83,8 +86,10 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
behavior = BottomSheetBehavior.from(view.parent as View) behavior = BottomSheetBehavior.from(view.parent as View)
val displayMetrics = DisplayMetrics() val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
behavior.state = BottomSheetBehavior.STATE_EXPANDED if(resources.getBoolean(R.bool.isTablet) || resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE){
behavior.peekHeight = displayMetrics.heightPixels behavior.state = BottomSheetBehavior.STATE_EXPANDED
behavior.peekHeight = displayMetrics.heightPixels
}
} }
val progress = view.findViewById<LinearProgressIndicator>(R.id.loadingItemsProgress) val progress = view.findViewById<LinearProgressIndicator>(R.id.loadingItemsProgress)
@ -198,7 +203,7 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
true true
} }
val bottomAppBar = view.findViewById<BottomAppBar>(R.id.bottomAppBar) bottomAppBar = view.findViewById<BottomAppBar>(R.id.bottomAppBar)
bottomAppBar.setOnMenuItemClickListener { m: MenuItem -> bottomAppBar.setOnMenuItemClickListener { m: MenuItem ->
when(m.itemId) { when(m.itemId) {
R.id.invert_selected -> { R.id.invert_selected -> {
@ -252,6 +257,16 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
} }
override fun onResume() {
super.onResume()
ViewCompat.setOnApplyWindowInsetsListener(bottomAppBar) { view, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
// Prevent extra bottom padding
view.setPadding(view.paddingLeft, view.paddingTop, view.paddingRight, 0)
WindowInsetsCompat.CONSUMED
}
}
private fun checkRanges(start: String, end: String) : Boolean { private fun checkRanges(start: String, end: String) : Boolean {
fromTextInput.error = "" fromTextInput.error = ""

View file

@ -119,6 +119,7 @@
android:autoLink="all" android:autoLink="all"
android:text="@string/download" android:text="@string/download"
android:outlineProvider="none" android:outlineProvider="none"
android:stateListAnimator="@null"
app:icon="@drawable/ic_down" app:icon="@drawable/ic_down"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View file

@ -16,9 +16,8 @@
<com.google.android.material.bottomappbar.BottomAppBar <com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar" android:id="@+id/bottomAppBar"
style="@style/Widget.Material3.BottomAppBar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="60dp" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom"
app:menu="@menu/download_multiple_menu" /> app:menu="@menu/download_multiple_menu" />
@ -127,6 +126,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:autoLink="all" android:autoLink="all"
android:outlineProvider="none"
android:stateListAnimator="@null"
android:text="@string/download" android:text="@string/download"
app:icon="@drawable/ic_down" app:icon="@drawable/ic_down"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -176,7 +177,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="10dp" android:paddingTop="10dp"
android:paddingBottom="70dp" android:paddingBottom="85dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />

View file

@ -150,7 +150,7 @@
android:paddingTop="10dp" android:paddingTop="10dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="80dp" android:paddingBottom="85dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />