Skip to content

Commit ad6bb23

Browse files
committed
Refactor: Extract isClassicBlogState() method for home page settings dialog
1 parent 92b9021 commit ad6bb23

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

WordPress/src/main/java/org/wordpress/android/ui/prefs/homepage/HomepageSettingsDialog.kt

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class HomepageSettingsDialog : DialogFragment() {
5454

5555
viewModel = ViewModelProvider(this@HomepageSettingsDialog, viewModelFactory)
5656
.get(HomepageSettingsViewModel::class.java)
57-
viewModel.uiState.observe(this@HomepageSettingsDialog, { uiState ->
57+
viewModel.uiState.observe(this@HomepageSettingsDialog) { uiState ->
5858
uiState?.let {
5959
loadingPages.visibility = if (uiState.isLoading) View.VISIBLE else View.GONE
6060
enablePositiveButton(uiState.isSaveEnabled)
@@ -65,34 +65,9 @@ class HomepageSettingsDialog : DialogFragment() {
6565
loadingError.visibility = View.GONE
6666
loadingError.text = null
6767
}
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)
9469
}
95-
})
70+
}
9671
}
9772
viewModel.dismissDialogEvent.observeEvent(this, {
9873
requireDialog().dismiss()
@@ -101,6 +76,37 @@ class HomepageSettingsDialog : DialogFragment() {
10176
return builder.create()
10277
}
10378

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+
104110
private fun enablePositiveButton(enabled: Boolean) {
105111
val button = (dialog as AlertDialog).getButton(AlertDialog.BUTTON_POSITIVE)
106112
button.isEnabled = enabled

0 commit comments

Comments
 (0)