Skip to content

Commit ff034ae

Browse files
author
Thomas Horta
authored
Merge pull request #19744 from wordpress-mobile/issue/19335-nullpointerexception-in-personalizationviewmodel
Fixes: Personalization viewmodel start crash
2 parents a50702c + 6f2c73d commit ff034ae

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

WordPress/src/main/java/org/wordpress/android/ui/mysite/personalization/PersonalizationActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class PersonalizationActivity : AppCompatActivity() {
6868
PersonalizationScreen()
6969
}
7070
}
71+
viewModel.onSelectedSiteMissing.observe(this) { finish() }
7172
}
7273

7374
@Composable

WordPress/src/main/java/org/wordpress/android/ui/mysite/personalization/PersonalizationViewModel.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.wordpress.android.ui.mysite.personalization
22

3+
import androidx.lifecycle.LiveData
4+
import androidx.lifecycle.MutableLiveData
35
import androidx.lifecycle.viewModelScope
46
import dagger.hilt.android.lifecycle.HiltViewModel
57
import kotlinx.coroutines.CoroutineDispatcher
@@ -21,15 +23,23 @@ class PersonalizationViewModel @Inject constructor(
2123
val uiState = dashboardCardPersonalizationViewModelSlice.uiState
2224
val shortcutsState = shortcutsPersonalizationViewModelSlice.uiState
2325

26+
private val _onSelectedSiteMissing = MutableLiveData<Unit>()
27+
val onSelectedSiteMissing = _onSelectedSiteMissing as LiveData<Unit>
28+
2429
init {
2530
shortcutsPersonalizationViewModelSlice.initialize(viewModelScope)
2631
dashboardCardPersonalizationViewModelSlice.initialize(viewModelScope)
2732
}
2833

2934
fun start() {
30-
val siteId = selectedSiteRepository.getSelectedSite()!!.siteId
31-
dashboardCardPersonalizationViewModelSlice.start(siteId)
32-
shortcutsPersonalizationViewModelSlice.start(selectedSiteRepository.getSelectedSite()!!)
35+
val site = selectedSiteRepository.getSelectedSite()
36+
if (site == null) {
37+
_onSelectedSiteMissing.value = Unit
38+
return
39+
}
40+
41+
dashboardCardPersonalizationViewModelSlice.start(site.siteId)
42+
shortcutsPersonalizationViewModelSlice.start(site)
3343
}
3444

3545
fun onCardToggled(cardType: CardType, enabled: Boolean) {

0 commit comments

Comments
 (0)