@@ -2,20 +2,17 @@ package com.redmadrobot.debug_panel_core.inapp
22
33import android.app.Dialog
44import android.os.Bundle
5- import android.view.View
65import android.view.ViewGroup
76import android.widget.FrameLayout
8- import androidx.annotation.NonNull
97import androidx.appcompat.view.ContextThemeWrapper
108import androidx.fragment.app.FragmentManager
119import com.google.android.material.bottomsheet.BottomSheetBehavior
1210import com.google.android.material.bottomsheet.BottomSheetDialog
1311import com.google.android.material.bottomsheet.BottomSheetDialogFragment
1412import com.google.android.material.tabs.TabLayoutMediator
1513import com.redmadrobot.debug_panel_core.extension.getAllPlugins
16- import com.redmadrobot.panel_core.R
17- import kotlinx.android.synthetic.main.bottom_sheet_debug_panel.view.*
18-
14+ import com.redmadrobot.panel_core.databinding.BottomSheetDebugPanelBinding
15+ import com.redmadrobot.debug_panel_common.R as CommonR
1916
2017internal class DebugBottomSheet : BottomSheetDialogFragment () {
2118
@@ -29,30 +26,35 @@ internal class DebugBottomSheet : BottomSheetDialogFragment() {
2926 }
3027 }
3128
32- private var dialogView: View ? = null
29+ private var _binding : BottomSheetDebugPanelBinding ? = null
30+ private val binding get() = checkNotNull(_binding )
3331
34- @NonNull
3532 override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog {
3633 /* set DebugPanelTheme*/
3734 val dialog = super .onCreateDialog(savedInstanceState)
38- val contextThemeWrapper = ContextThemeWrapper (activity, R .style.DebugPanelTheme )
35+ val contextThemeWrapper = ContextThemeWrapper (activity, CommonR .style.DebugPanelTheme )
3936 val localInflater = dialog.layoutInflater.cloneInContext(contextThemeWrapper)
4037
41- dialogView = localInflater .inflate(R .layout.bottom_sheet_debug_panel, null )
38+ _binding = BottomSheetDebugPanelBinding .inflate(localInflater )
4239 dialog.setOnShowListener {
4340 setBottomSheetSize()
4441 }
45- dialog.setContentView(requireNotNull(dialogView) )
46- setViews(requireNotNull(dialogView) )
42+ dialog.setContentView(binding.root )
43+ setViews(binding )
4744 return dialog
4845 }
4946
50- private fun setViews (dialogView : View ) {
47+ override fun onDestroyView () {
48+ super .onDestroyView()
49+ _binding = null
50+ }
51+
52+ private fun setViews (binding : BottomSheetDebugPanelBinding ) {
5153 val plugins = getAllPlugins()
5254 /* Only Plugins with Fragment*/
5355 .filter { it.getFragment() != null }
5456
55- dialogView.debug_sheet_viewpager .adapter = DebugSheetViewPagerAdapter (
57+ binding.debugSheetViewpager .adapter = DebugSheetViewPagerAdapter (
5658 requireActivity(),
5759 plugins
5860 )
@@ -62,14 +64,14 @@ internal class DebugBottomSheet : BottomSheetDialogFragment() {
6264 }
6365
6466 TabLayoutMediator (
65- dialogView.debug_sheet_tab_layout ,
66- dialogView.debug_sheet_viewpager ,
67+ binding.debugSheetTabLayout ,
68+ binding.debugSheetViewpager ,
6769 tabConfigurationStrategy
6870 ).attach()
6971 }
7072
7173 private fun setBottomSheetSize () {
72- val dialogContainer = dialogView? .parent as ? FrameLayout
74+ val dialogContainer = binding.root .parent as ? FrameLayout
7375 dialogContainer?.apply {
7476 layoutParams?.height = ViewGroup .LayoutParams .MATCH_PARENT
7577 requestLayout()
0 commit comments