@@ -54,7 +54,7 @@ class HomepageSettingsDialog : DialogFragment() {
54
54
55
55
viewModel = ViewModelProvider (this @HomepageSettingsDialog, viewModelFactory)
56
56
.get(HomepageSettingsViewModel ::class .java)
57
- viewModel.uiState.observe(this @HomepageSettingsDialog, { uiState ->
57
+ viewModel.uiState.observe(this @HomepageSettingsDialog) { uiState ->
58
58
uiState?.let {
59
59
loadingPages.visibility = if (uiState.isLoading) View .VISIBLE else View .GONE
60
60
enablePositiveButton(uiState.isSaveEnabled)
@@ -65,34 +65,9 @@ class HomepageSettingsDialog : DialogFragment() {
65
65
loadingError.visibility = View .GONE
66
66
loadingError.text = null
67
67
}
68
- when (uiState.isClassicBlogState) {
69
- true -> {
70
- homepageSettingsRadioGroup.checkIfNotChecked(R .id.classic_blog)
71
- dropdownContainer.visibility = View .GONE
72
- }
73
- false -> {
74
- homepageSettingsRadioGroup.checkIfNotChecked(R .id.static_homepage)
75
- if (uiState.pageForPostsState != null && uiState.pageOnFrontState != null ) {
76
- dropdownContainer.visibility = View .VISIBLE
77
- setupDropdownItem(
78
- uiState.pageOnFrontState,
79
- selectedHomepage,
80
- viewModel::onPageOnFrontDialogOpened,
81
- viewModel::onPageOnFrontSelected
82
- )
83
- setupDropdownItem(
84
- uiState.pageForPostsState,
85
- selectedPostsPage,
86
- viewModel::onPageForPostsDialogOpened,
87
- viewModel::onPageForPostsSelected
88
- )
89
- } else {
90
- dropdownContainer.visibility = View .GONE
91
- }
92
- }
93
- }
68
+ isClassicBlogState(uiState)
94
69
}
95
- })
70
+ }
96
71
}
97
72
viewModel.dismissDialogEvent.observeEvent(this , {
98
73
requireDialog().dismiss()
@@ -101,6 +76,37 @@ class HomepageSettingsDialog : DialogFragment() {
101
76
return builder.create()
102
77
}
103
78
79
+ private fun SiteSettingsHomepageDialogBinding.isClassicBlogState (
80
+ uiState : HomepageSettingsUiState
81
+ ) {
82
+ when (uiState.isClassicBlogState) {
83
+ true -> {
84
+ homepageSettingsRadioGroup.checkIfNotChecked(R .id.classic_blog)
85
+ dropdownContainer.visibility = View .GONE
86
+ }
87
+ false -> {
88
+ homepageSettingsRadioGroup.checkIfNotChecked(R .id.static_homepage)
89
+ if (uiState.pageForPostsState != null && uiState.pageOnFrontState != null ) {
90
+ dropdownContainer.visibility = View .VISIBLE
91
+ setupDropdownItem(
92
+ uiState.pageOnFrontState,
93
+ selectedHomepage,
94
+ viewModel::onPageOnFrontDialogOpened,
95
+ viewModel::onPageOnFrontSelected
96
+ )
97
+ setupDropdownItem(
98
+ uiState.pageForPostsState,
99
+ selectedPostsPage,
100
+ viewModel::onPageForPostsDialogOpened,
101
+ viewModel::onPageForPostsSelected
102
+ )
103
+ } else {
104
+ dropdownContainer.visibility = View .GONE
105
+ }
106
+ }
107
+ }
108
+ }
109
+
104
110
private fun enablePositiveButton (enabled : Boolean ) {
105
111
val button = (dialog as AlertDialog ).getButton(AlertDialog .BUTTON_POSITIVE )
106
112
button.isEnabled = enabled
0 commit comments