OAuth behavior improvement

This commit is contained in:
M66B 2023-03-05 14:44:07 +01:00
parent aac99e0182
commit ef906c1be0
1 changed files with 19 additions and 28 deletions

View File

@ -336,13 +336,7 @@ public class FragmentOAuth extends FragmentBase {
etTenant.clearFocus();
Helper.hideKeyboard(view);
etName.setEnabled(false);
etEmail.setEnabled(false);
etTenant.setEnabled(false);
cbInboundOnly.setEnabled(false);
cbPop.setEnabled(false);
cbRecent.setEnabled(false);
cbUpdate.setEnabled(false);
setEnabled(false);
btnOAuth.setEnabled(false);
pbOAuth.setVisibility(View.VISIBLE);
hideError();
@ -494,13 +488,7 @@ public class FragmentOAuth extends FragmentBase {
private void onHandleOAuth(@NonNull Intent data) {
try {
etName.setEnabled(true);
etEmail.setEnabled(true);
etTenant.setEnabled(true);
cbInboundOnly.setEnabled(true);
cbPop.setEnabled(true);
cbRecent.setEnabled(true);
cbUpdate.setEnabled(true);
setEnabled(true);
Log.breadcrumb("onHandleOAuth", "id", id);
@ -517,6 +505,11 @@ public class FragmentOAuth extends FragmentBase {
final EmailProvider provider = EmailProvider.getProvider(getContext(), id);
EmailProvider.OAuth oauth = (auth.state.endsWith(":graph") ? provider.graph : provider.oauth);
if (provider.graph != null &&
provider.graph.enabled &&
!auth.state.endsWith(":graph"))
setEnabled(false);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
String json = prefs.getString("oauth." + auth.state, null);
prefs.edit().remove("oauth." + auth.state).apply();
@ -1034,17 +1027,21 @@ public class FragmentOAuth extends FragmentBase {
}
private void onHandleCancel() {
etName.setEnabled(true);
etEmail.setEnabled(true);
etTenant.setEnabled(true);
cbInboundOnly.setEnabled(true);
cbPop.setEnabled(true);
cbRecent.setEnabled(true);
cbUpdate.setEnabled(true);
setEnabled(true);
btnOAuth.setEnabled(true);
pbOAuth.setVisibility(View.GONE);
}
private void setEnabled(boolean enabled) {
etName.setEnabled(enabled);
etEmail.setEnabled(enabled);
etTenant.setEnabled(enabled);
cbInboundOnly.setEnabled(enabled);
cbPop.setEnabled(enabled);
cbRecent.setEnabled(enabled);
cbUpdate.setEnabled(enabled);
}
private void showError(Throwable ex) {
Log.e(ex);
@ -1079,13 +1076,7 @@ public class FragmentOAuth extends FragmentBase {
btnHelp.setVisibility(provider != null && provider.link != null ? View.VISIBLE : View.GONE);
etName.setEnabled(true);
etEmail.setEnabled(true);
etTenant.setEnabled(true);
cbInboundOnly.setEnabled(true);
cbPop.setEnabled(true);
cbRecent.setEnabled(true);
cbUpdate.setEnabled(true);
setEnabled(true);
btnOAuth.setEnabled(true);
pbOAuth.setVisibility(View.GONE);