Refactor BaseBottomSheetDialog to set maxWidth with newer API

This commit is contained in:
arkon
2021-05-19 22:20:32 -04:00
parent 17c321286d
commit 940c5b3838
7 changed files with 55 additions and 39 deletions

View File

@@ -2,17 +2,31 @@ package eu.kanade.tachiyomi.widget.sheet
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
import eu.kanade.tachiyomi.R
open class BaseBottomSheetDialog(context: Context) : BottomSheetDialog(context) {
abstract class BaseBottomSheetDialog(context: Context) : BottomSheetDialog(context) {
internal lateinit var sheetBehavior: BottomSheetBehavior<*>
abstract fun createView(inflater: LayoutInflater): View
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val rootView = createView(layoutInflater)
setContentView(rootView)
sheetBehavior = BottomSheetBehavior.from(rootView.parent as ViewGroup)
// Enforce max width for tablets
val width = context.resources.getDimensionPixelSize(R.dimen.bottom_sheet_width)
if (width > 0) {
window?.setLayout(width, ViewGroup.LayoutParams.MATCH_PARENT)
sheetBehavior.maxWidth = width
}
}
}

View File

@@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.widget.sheet
import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import eu.kanade.tachiyomi.databinding.CommonTabbedSheetBinding
@@ -8,15 +9,17 @@ import eu.kanade.tachiyomi.widget.ViewPagerAdapter
abstract class TabbedBottomSheetDialog(private val activity: Activity) : BaseBottomSheetDialog(activity) {
val binding = CommonTabbedSheetBinding.inflate(activity.layoutInflater)
lateinit var binding: CommonTabbedSheetBinding
override fun createView(inflater: LayoutInflater): View {
binding = CommonTabbedSheetBinding.inflate(activity.layoutInflater)
init {
val adapter = LibrarySettingsSheetAdapter()
binding.pager.offscreenPageLimit = 2
binding.pager.adapter = adapter
binding.tabs.setupWithViewPager(binding.pager)
setContentView(binding.root)
return binding.root
}
abstract fun getTabViews(): List<View>