Clean up integration settings screen
This commit is contained in:
parent
56578b238d
commit
d55fe64075
@ -46,30 +46,9 @@ import de.mm20.launcher2.ui.locals.LocalNavController
|
||||
@Composable
|
||||
fun IntegrationsSettingsScreen() {
|
||||
val viewModel: IntegrationsSettingsScreenVM = viewModel()
|
||||
val context = LocalContext.current
|
||||
val lifecycleOwner = LocalLifecycleOwner.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)) {
|
||||
if (loading) {
|
||||
item {
|
||||
LinearProgressIndicator(
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
}
|
||||
item {
|
||||
Preference(
|
||||
title = stringResource(R.string.preference_weather_integration),
|
||||
|
||||
@ -1,13 +1,8 @@
|
||||
package de.mm20.launcher2.ui.settings.integrations
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
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.AccountsRepository
|
||||
import kotlinx.coroutines.launch
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
@ -15,33 +10,4 @@ class IntegrationsSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
private val accountsRepository: AccountsRepository by inject()
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user