Hide Google Drive / OneDrive file settings if unavailable
This commit is contained in:
parent
e0515b4432
commit
168ab729a1
@ -140,71 +140,75 @@ fun FileSearchSettingsScreen() {
|
|||||||
enabled = owncloudAccount != null
|
enabled = owncloudAccount != null
|
||||||
)
|
)
|
||||||
|
|
||||||
val onedrive by viewModel.onedrive.observeAsState()
|
if (viewModel.microsoftAvailable) {
|
||||||
val microsoftAccount by viewModel.microsoftAccount.observeAsState()
|
val onedrive by viewModel.onedrive.observeAsState()
|
||||||
AnimatedVisibility(microsoftAccount == null) {
|
val microsoftAccount by viewModel.microsoftAccount.observeAsState()
|
||||||
Banner(
|
AnimatedVisibility(microsoftAccount == null) {
|
||||||
text = stringResource(R.string.no_account_microsoft),
|
Banner(
|
||||||
icon = Icons.Rounded.AccountBox,
|
text = stringResource(R.string.no_account_microsoft),
|
||||||
primaryAction = {
|
icon = Icons.Rounded.AccountBox,
|
||||||
TextButton(onClick = {
|
primaryAction = {
|
||||||
viewModel.login(
|
TextButton(onClick = {
|
||||||
context as AppCompatActivity,
|
viewModel.login(
|
||||||
AccountType.Microsoft
|
context as AppCompatActivity,
|
||||||
)
|
AccountType.Microsoft
|
||||||
}) {
|
)
|
||||||
Text(
|
}) {
|
||||||
stringResource(R.string.connect_account),
|
Text(
|
||||||
)
|
stringResource(R.string.connect_account),
|
||||||
}
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
modifier = Modifier.padding(16.dp)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
SwitchPreference(
|
||||||
|
title = stringResource(R.string.preference_search_onedrive),
|
||||||
|
summary = microsoftAccount?.let {
|
||||||
|
stringResource(R.string.preference_search_onedrive_summary, it.userName)
|
||||||
|
} ?: stringResource(R.string.preference_summary_not_logged_in),
|
||||||
|
value = onedrive == true && microsoftAccount != null,
|
||||||
|
onValueChanged = {
|
||||||
|
viewModel.setOneDrive(it)
|
||||||
},
|
},
|
||||||
modifier = Modifier.padding(16.dp)
|
enabled = microsoftAccount != null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
SwitchPreference(
|
|
||||||
title = stringResource(R.string.preference_search_onedrive),
|
|
||||||
summary = microsoftAccount?.let {
|
|
||||||
stringResource(R.string.preference_search_onedrive_summary, it.userName)
|
|
||||||
} ?: stringResource(R.string.preference_summary_not_logged_in),
|
|
||||||
value = onedrive == true && microsoftAccount != null,
|
|
||||||
onValueChanged = {
|
|
||||||
viewModel.setOneDrive(it)
|
|
||||||
},
|
|
||||||
enabled = microsoftAccount != null
|
|
||||||
)
|
|
||||||
|
|
||||||
val gdrive by viewModel.gdrive.observeAsState()
|
if (viewModel.googleAvailable) {
|
||||||
val googleAccount by viewModel.googleAccount.observeAsState()
|
val gdrive by viewModel.gdrive.observeAsState()
|
||||||
AnimatedVisibility(googleAccount == null) {
|
val googleAccount by viewModel.googleAccount.observeAsState()
|
||||||
Banner(
|
AnimatedVisibility(googleAccount == null) {
|
||||||
text = stringResource(R.string.no_account_google),
|
Banner(
|
||||||
icon = Icons.Rounded.AccountBox,
|
text = stringResource(R.string.no_account_google),
|
||||||
primaryAction = {
|
icon = Icons.Rounded.AccountBox,
|
||||||
TextButton(onClick = {
|
primaryAction = {
|
||||||
viewModel.login(
|
TextButton(onClick = {
|
||||||
context as AppCompatActivity,
|
viewModel.login(
|
||||||
AccountType.Google
|
context as AppCompatActivity,
|
||||||
)
|
AccountType.Google
|
||||||
}) {
|
)
|
||||||
Text(
|
}) {
|
||||||
stringResource(R.string.connect_account),
|
Text(
|
||||||
)
|
stringResource(R.string.connect_account),
|
||||||
}
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
modifier = Modifier.padding(16.dp)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
SwitchPreference(
|
||||||
|
title = stringResource(R.string.preference_search_gdrive),
|
||||||
|
summary = googleAccount?.let {
|
||||||
|
stringResource(R.string.preference_search_gdrive_summary, it.userName)
|
||||||
|
} ?: stringResource(R.string.preference_summary_not_logged_in),
|
||||||
|
value = gdrive == true && googleAccount != null,
|
||||||
|
onValueChanged = {
|
||||||
|
viewModel.setGdrive(it)
|
||||||
},
|
},
|
||||||
modifier = Modifier.padding(16.dp)
|
enabled = googleAccount != null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
SwitchPreference(
|
|
||||||
title = stringResource(R.string.preference_search_gdrive),
|
|
||||||
summary = googleAccount?.let {
|
|
||||||
stringResource(R.string.preference_search_gdrive_summary, it.userName)
|
|
||||||
} ?: stringResource(R.string.preference_summary_not_logged_in),
|
|
||||||
value = gdrive == true && googleAccount != null,
|
|
||||||
onValueChanged = {
|
|
||||||
viewModel.setGdrive(it)
|
|
||||||
},
|
|
||||||
enabled = googleAccount != null
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,6 +30,9 @@ class FileSearchSettingsScreenVM : ViewModel(), KoinComponent {
|
|||||||
val microsoftAccount = MutableLiveData<Account?>(null)
|
val microsoftAccount = MutableLiveData<Account?>(null)
|
||||||
val googleAccount = MutableLiveData<Account?>(null)
|
val googleAccount = MutableLiveData<Account?>(null)
|
||||||
|
|
||||||
|
val microsoftAvailable = accountsRepository.isSupported(AccountType.Microsoft)
|
||||||
|
val googleAvailable = accountsRepository.isSupported(AccountType.Google)
|
||||||
|
|
||||||
fun onResume() {
|
fun onResume() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
nextcloudAccount.value =
|
nextcloudAccount.value =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user