Skip to content

Commit 12baac7

Browse files
authored
Merge pull request #19753 from wordpress-mobile/issue/19336-fix-crash-on-design-preview-screen
Fix a crash on the design preview screen
2 parents 9779ce2 + 0e3924b commit 12baac7

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

WordPress/src/main/java/org/wordpress/android/ui/layoutpicker/LayoutPreviewFragment.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ abstract class LayoutPreviewFragment : FullscreenBottomSheetDialogFragment() {
7575
private fun initViewModel() {
7676
this.viewModel = getViewModel()
7777

78-
viewModel.previewState.observe(viewLifecycleOwner, { state ->
78+
viewModel.previewState.observe(viewLifecycleOwner) { state ->
7979
when (state) {
8080
is Loading -> {
8181
binding?.desktopPreviewHint?.setVisible(false)
@@ -84,6 +84,7 @@ abstract class LayoutPreviewFragment : FullscreenBottomSheetDialogFragment() {
8484
binding?.errorView?.setVisible(false)
8585
binding?.webView?.loadUrl(state.url)
8686
}
87+
8788
is Loaded -> {
8889
binding?.progressBar?.setVisible(false)
8990
binding?.webView?.setVisible(true)
@@ -97,21 +98,22 @@ abstract class LayoutPreviewFragment : FullscreenBottomSheetDialogFragment() {
9798
)
9899
AniUtils.animateBottomBar(binding?.desktopPreviewHint, true)
99100
}
101+
100102
is Error -> {
101103
binding?.progressBar?.setVisible(false)
102104
binding?.webView?.setVisible(false)
103105
binding?.errorView?.setVisible(true)
104106
state.toast?.let { ToastUtils.showToast(requireContext(), it) }
105107
}
106108
}
107-
})
109+
}
108110

109111
// We're skipping the first emitted value since it derives from the view model initialization (`start` method)
110-
viewModel.previewMode.skip(1).observe(viewLifecycleOwner, { load() })
112+
viewModel.previewMode.skip(1).observe(viewLifecycleOwner) { load() }
111113

112-
viewModel.onPreviewModeButtonPressed.observe(viewLifecycleOwner, {
114+
viewModel.onPreviewModeButtonPressed.observe(viewLifecycleOwner) {
113115
previewModeSelectorPopup.show(viewModel)
114-
})
116+
}
115117

116118
binding?.previewTypeSelectorButton?.let {
117119
previewModeSelectorPopup = PreviewModeSelectorPopup(requireActivity(), it)
@@ -127,7 +129,7 @@ abstract class LayoutPreviewFragment : FullscreenBottomSheetDialogFragment() {
127129
binding?.webView?.webViewClient = object : WebViewClient() {
128130
override fun onPageFinished(view: WebView?, url: String?) {
129131
super.onPageFinished(view, url)
130-
if (view == null) return
132+
if (!isAdded || view == null) return
131133
val width = viewModel.selectedPreviewMode().previewWidth
132134
setWebViewWidth(view, width)
133135
val widthScript = context?.getString(R.string.web_preview_width_script, width)

0 commit comments

Comments
 (0)