@@ -7,13 +7,13 @@ import android.view.View
77import android.view.ViewGroup
88import android.widget.FrameLayout
99import androidx.fragment.app.viewModels
10- import androidx.recyclerview.widget.LinearLayoutManager
1110import com.google.android.material.bottomsheet.BottomSheetBehavior
1211import com.google.android.material.bottomsheet.BottomSheetDialog
1312import com.google.android.material.bottomsheet.BottomSheetDialogFragment
1413import dagger.hilt.android.AndroidEntryPoint
1514import org.wordpress.android.R
1615import org.wordpress.android.databinding.JetpackPoweredBottomSheetBinding
16+ import org.wordpress.android.databinding.JetpackPoweredExpandedBottomSheetBinding
1717import org.wordpress.android.ui.ActivityLauncherWrapper
1818import org.wordpress.android.ui.ActivityLauncherWrapper.Companion.JETPACK_PACKAGE_NAME
1919import org.wordpress.android.ui.main.WPMainNavigationView.PageType
@@ -22,51 +22,63 @@ import org.wordpress.android.ui.main.WPMainNavigationView.PageType.NOTIFS
2222import org.wordpress.android.ui.main.WPMainNavigationView.PageType.READER
2323import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredDialogAction.DismissDialog
2424import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredDialogAction.OpenPlayStore
25- import org.wordpress.android.util.extensions.disableAnimation
2625import org.wordpress.android.util.extensions.exhaustive
2726import javax.inject.Inject
2827
2928@AndroidEntryPoint
3029class JetpackPoweredBottomSheetFragment : BottomSheetDialogFragment () {
31- @Inject lateinit var adapter: JetpackPoweredAdapter
3230 @Inject lateinit var activityLauncherWrapper: ActivityLauncherWrapper
3331 private val viewModel: JetpackPoweredDialogViewModel by viewModels()
32+ private var fullScreen: Boolean = false
33+
34+ override fun onCreate (savedInstanceState : Bundle ? ) {
35+ super .onCreate(savedInstanceState)
36+ fullScreen = arguments?.getBoolean(KEY_FULL_SCREEN , false ) ? : false
37+ }
3438
3539 override fun onCreateView (
3640 inflater : LayoutInflater ,
3741 container : ViewGroup ? ,
3842 savedInstanceState : Bundle ?
3943 ): View ? {
40- return inflater.inflate(R .layout.jetpack_powered_bottom_sheet, container)
44+ val layout = if (fullScreen) {
45+ R .layout.jetpack_powered_expanded_bottom_sheet
46+ } else {
47+ R .layout.jetpack_powered_bottom_sheet
48+ }
49+
50+ return inflater.inflate(layout, container)
4151 }
4252
4353 override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
4454 super .onViewCreated(view, savedInstanceState)
4555
46- with (JetpackPoweredBottomSheetBinding .bind(view)) {
47- initializeViews()
48- setupObservers()
49- }
50- }
51-
52- private fun JetpackPoweredBottomSheetBinding.initializeViews () {
53- contentRecyclerView.layoutManager = LinearLayoutManager (requireActivity())
54- contentRecyclerView.adapter = adapter
55- contentRecyclerView.disableAnimation()
56-
57- primaryButton.setOnClickListener { viewModel.openJetpackAppDownloadLink() }
58-
59- val fullScreen = arguments?.getBoolean(KEY_FULL_SCREEN , false ) ? : false
60-
6156 if (fullScreen) {
62- secondaryButton.visibility = View .VISIBLE
63- val pageType = arguments?.getSerializable(KEY_SITE_SCREEN ) as ? PageType ? : MY_SITE
64- secondaryButton.text = when (pageType) {
65- MY_SITE -> getString(R .string.wp_jetpack_continue_to_stats)
66- READER -> getString(R .string.wp_jetpack_continue_to_reader)
67- NOTIFS -> getString(R .string.wp_jetpack_continue_to_notifications)
57+ with (JetpackPoweredExpandedBottomSheetBinding .bind(view)) {
58+ when (arguments?.getSerializable(KEY_SITE_SCREEN ) as ? PageType ? : MY_SITE ) {
59+ MY_SITE -> {
60+ title.text = getString(R .string.wp_jetpack_powered_stats_powered_by_jetpack)
61+ caption.text = getString(R .string.wp_jetpack_powered_stats_powered_by_jetpack_caption)
62+ secondaryButton.text = getString(R .string.wp_jetpack_continue_to_stats)
63+ }
64+ READER -> {
65+ title.text = getString(R .string.wp_jetpack_powered_reader_powered_by_jetpack)
66+ caption.text = getString(R .string.wp_jetpack_powered_reader_powered_by_jetpack_caption)
67+ secondaryButton.text = getString(R .string.wp_jetpack_continue_to_reader)
68+ }
69+ NOTIFS -> {
70+ title.text = getString(R .string.wp_jetpack_powered_notifications_powered_by_jetpack)
71+ caption.text = getString(R .string.wp_jetpack_powered_notifications_powered_by_jetpack_caption)
72+ secondaryButton.text = getString(R .string.wp_jetpack_continue_to_notifications)
73+ }
74+ }
75+ primaryButton.setOnClickListener { viewModel.openJetpackAppDownloadLink() }
76+ secondaryButton.setOnClickListener { viewModel.dismissBottomSheet() }
77+ }
78+ } else {
79+ with (JetpackPoweredBottomSheetBinding .bind(view)) {
80+ primaryButton.setOnClickListener { viewModel.openJetpackAppDownloadLink() }
6881 }
69- secondaryButton.setOnClickListener { viewModel.dismissBottomSheet() }
7082 }
7183
7284 (dialog as ? BottomSheetDialog )?.apply {
@@ -81,15 +93,11 @@ class JetpackPoweredBottomSheetFragment : BottomSheetDialogFragment() {
8193 expandBottomSheet(bottomSheetBehavior)
8294 }
8395 }
84- }
85-
86- private fun JetpackPoweredBottomSheetBinding.setupObservers () {
87- viewModel.start()
8896
89- viewModel.uiState.observe(this @JetpackPoweredBottomSheetFragment) { uiState ->
90- adapter.submitList(uiState?.uiItems ? : listOf ())
91- }
97+ setupObservers()
98+ }
9299
100+ private fun setupObservers () {
93101 viewModel.action.observe(viewLifecycleOwner) { action ->
94102 when (action) {
95103 is OpenPlayStore -> {
0 commit comments