Only reload the home page if the API has changed (performance)

This commit is contained in:
Luna712 2023-11-05 11:58:36 -07:00
parent 19d9034e65
commit 42a1f272a2
4 changed files with 11 additions and 8 deletions

View file

@ -68,7 +68,7 @@ object AccountHelper {
DataStoreHelper.accounts = currentAccounts.toTypedArray()
// Update UI
setAccount(getDefaultAccount(context), true)
setAccount(getDefaultAccount(context))
callback.invoke(null)
dialog?.dismissSafe()
}

View file

@ -17,7 +17,6 @@ import com.lagradost.cloudstream3.ui.AutofitRecyclerView
import com.lagradost.cloudstream3.ui.account.AccountAdapter.Companion.VIEW_TYPE_EDIT_ACCOUNT
import com.lagradost.cloudstream3.ui.account.AccountAdapter.Companion.VIEW_TYPE_SELECT_ACCOUNT
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
import com.lagradost.cloudstream3.utils.DataStoreHelper
import com.lagradost.cloudstream3.utils.DataStoreHelper.getAccounts
import com.lagradost.cloudstream3.utils.DataStoreHelper.setAccount
import com.lagradost.cloudstream3.utils.UIHelper.colorFromAttribute
@ -80,7 +79,7 @@ class AccountSelectActivity : AppCompatActivity() {
// We came from MainActivity, return there
// and switch to the edited account
if (isEditingFromMainActivity) {
setAccount(it, it.keyIndex != DataStoreHelper.selectedKeyIndex)
setAccount(it)
navigateToMainActivity()
}
},

View file

@ -53,7 +53,7 @@ class AccountViewModel : ViewModel() {
val currentHomePage = DataStoreHelper.currentHomePage
setAccount(account, false)
setAccount(account)
DataStoreHelper.currentHomePage = currentHomePage
DataStoreHelper.accounts = currentAccounts.toTypedArray()
@ -78,13 +78,13 @@ class AccountViewModel : ViewModel() {
// Pin is correct, proceed
_isAllowedLogin.postValue(true)
_selectedKeyIndex.postValue(account.keyIndex)
setAccount(account, true)
setAccount(account)
}
} else {
// No PIN set for the selected account, proceed
_isAllowedLogin.postValue(true)
_selectedKeyIndex.postValue(account.keyIndex)
setAccount(account, true)
setAccount(account)
}
}
}

View file

@ -149,12 +149,16 @@ object DataStoreHelper {
}
}
fun setAccount(account: Account, refreshHomePage: Boolean) {
fun setAccount(account: Account) {
val homepage = currentHomePage
selectedKeyIndex = account.keyIndex
showToast(context?.getString(R.string.logged_account, account.name) ?: account.name)
MainActivity.bookmarksUpdatedEvent(true)
MainActivity.reloadLibraryEvent(true)
if (refreshHomePage) {
val oldAccount = accounts.find { it.keyIndex == account.keyIndex }
if (oldAccount != null && currentHomePage != homepage) {
// This is not a new account, and the homepage has changed, reload it
MainActivity.reloadHomeEvent(true)
}
}