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 androidx.activity.result.contract.ActivityResultContracts
import androidx.core.os.bundleOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.children
import androidx.core.view.isVisible
import androidx.core.view.setPadding
import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
@ -537,7 +541,7 @@ class DownloadMultipleBottomSheetDialog : BottomSheetDialogFragment(), Configure
bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE)
bottomSheet.setContentView(R.layout.adjust_audio)
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){
downloadViewModel.getProcessingDownloads()
@ -619,7 +623,7 @@ class DownloadMultipleBottomSheetDialog : BottomSheetDialogFragment(), Configure
bottomSheet.requestWindowFeature(Window.FEATURE_NO_TITLE)
bottomSheet.setContentView(R.layout.adjust_video)
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){
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){
shimmerTitle.isVisible = loading
title.isVisible = !loading

View file

@ -12,6 +12,8 @@ import android.view.MenuItem
import android.view.View
import android.widget.TextView
import androidx.core.os.bundleOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.children
import androidx.core.view.isVisible
import androidx.core.widget.doAfterTextChanged
@ -53,6 +55,7 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
private lateinit var toTextInput: TextInputLayout
private lateinit var count: TextView
private lateinit var selectBetween: MenuItem
private lateinit var bottomAppBar: BottomAppBar
private lateinit var resultItemIDs: List<Long>
private var items = listOf<ResultItem>()
@ -83,8 +86,10 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
behavior = BottomSheetBehavior.from(view.parent as View)
val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
behavior.state = BottomSheetBehavior.STATE_EXPANDED
behavior.peekHeight = displayMetrics.heightPixels
if(resources.getBoolean(R.bool.isTablet) || resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE){
behavior.state = BottomSheetBehavior.STATE_EXPANDED
behavior.peekHeight = displayMetrics.heightPixels
}
}
val progress = view.findViewById<LinearProgressIndicator>(R.id.loadingItemsProgress)
@ -198,7 +203,7 @@ class SelectPlaylistItemsDialog : BottomSheetDialogFragment(), PlaylistAdapter.O
true
}
val bottomAppBar = view.findViewById<BottomAppBar>(R.id.bottomAppBar)
bottomAppBar = view.findViewById<BottomAppBar>(R.id.bottomAppBar)
bottomAppBar.setOnMenuItemClickListener { m: MenuItem ->
when(m.itemId) {
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 {
fromTextInput.error = ""

View file

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

View file

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

View file

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