From 74ebc7bdc4e1d6dabdf172dbc6104e252dfc66af Mon Sep 17 00:00:00 2001 From: Matte23 Date: Fri, 30 Oct 2020 13:13:54 +0100 Subject: [PATCH] Fix circular not downloaded after first start --- .../viewmodels/CircularLetterViewModel.kt | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt b/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt index e78ca54..946144a 100644 --- a/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt +++ b/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt @@ -31,16 +31,10 @@ class CircularLetterViewModel internal constructor( private val circularRepository: CircularRepository, application: Application ) : AndroidViewModel(application), SharedPreferences.OnSharedPreferenceChangeListener { - private val preferenceManager = PreferenceManager.getDefaultSharedPreferences(application) + private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(application) private val schoolID = - MutableLiveData(preferenceManager.getString("school", "0")?.toInt() ?: 0) - - init { - updateCirculars() - - preferenceManager.registerOnSharedPreferenceChangeListener(this) - } + MutableLiveData(sharedPreferences.getString("school", "0")?.toInt() ?: 0) val query = MutableLiveData("") val circulars: LiveData> = @@ -59,6 +53,13 @@ class CircularLetterViewModel internal constructor( val circularsUpdated = MutableLiveData().apply { value = false } private var isNotUpdating = true + init { + if (!sharedPreferences.getBoolean("first_start", true)) + updateCirculars() + + sharedPreferences.registerOnSharedPreferenceChangeListener(this) + } + fun updateCirculars() { if (isNotUpdating) { viewModelScope.launch { @@ -75,7 +76,12 @@ class CircularLetterViewModel internal constructor( } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { - if (key == "school") - schoolID.postValue(preferenceManager.getString("school", "0")?.toInt() ?: 0) + val firstStart = sharedPreferences?.getBoolean("first_start", true) ?: true + + if (!firstStart && key == "school" || key == "first_start") { + schoolID.postValue(sharedPreferences?.getString("school", "0")?.toInt() ?: 0) + + updateCirculars() + } } }