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
|
@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),
|
||||||
|
|||||||
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user