Clean up integration settings screen

This commit is contained in:
MM20 2024-06-15 23:07:01 +02:00
parent 56578b238d
commit d55fe64075
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 0 additions and 55 deletions

View File

@ -46,30 +46,9 @@ import de.mm20.launcher2.ui.locals.LocalNavController
@Composable @Composable
fun IntegrationsSettingsScreen() { fun IntegrationsSettingsScreen() {
val viewModel: IntegrationsSettingsScreenVM = viewModel() val viewModel: IntegrationsSettingsScreenVM = viewModel()
val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current
val navController = LocalNavController.current val navController = LocalNavController.current
LaunchedEffect(null) {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
viewModel.onResume()
}
}
val owncloudUser by viewModel.owncloudUser
val nextcloudUser by viewModel.nextcloudUser
val googleUser by viewModel.googleUser
val loading by viewModel.loading
PreferenceScreen(title = stringResource(R.string.preference_screen_integrations)) { PreferenceScreen(title = stringResource(R.string.preference_screen_integrations)) {
if (loading) {
item {
LinearProgressIndicator(
modifier = Modifier.fillMaxWidth()
)
}
}
item { item {
Preference( Preference(
title = stringResource(R.string.preference_weather_integration), title = stringResource(R.string.preference_weather_integration),

View File

@ -1,13 +1,8 @@
package de.mm20.launcher2.ui.settings.integrations package de.mm20.launcher2.ui.settings.integrations
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import de.mm20.launcher2.accounts.Account
import de.mm20.launcher2.accounts.AccountType import de.mm20.launcher2.accounts.AccountType
import de.mm20.launcher2.accounts.AccountsRepository import de.mm20.launcher2.accounts.AccountsRepository
import kotlinx.coroutines.launch
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
@ -15,33 +10,4 @@ class IntegrationsSettingsScreenVM : ViewModel(), KoinComponent {
private val accountsRepository: AccountsRepository by inject() private val accountsRepository: AccountsRepository by inject()
val isGoogleAvailable = accountsRepository.isSupported(AccountType.Google) val isGoogleAvailable = accountsRepository.isSupported(AccountType.Google)
val googleUser = mutableStateOf<Account?>(null)
val nextcloudUser = mutableStateOf<Account?>(null)
val owncloudUser = mutableStateOf<Account?>(null)
val loading = mutableStateOf(true)
fun onResume() {
viewModelScope.launch {
loading.value = true
googleUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Google)
nextcloudUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Nextcloud)
owncloudUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Owncloud)
loading.value = false
}
}
fun signIn(activity: AppCompatActivity, accountType: AccountType) {
accountsRepository.signin(activity, accountType)
}
fun signOut(accountType: AccountType) {
accountsRepository.signout(accountType)
when(accountType){
AccountType.Google -> googleUser.value = null
AccountType.Nextcloud -> nextcloudUser.value = null
AccountType.Owncloud -> owncloudUser.value = null
}
}
} }