Merge pull request #2748 from deltachat/adb/issue-2747

do oauth and provider info checks in background
This commit is contained in:
Asiel Díaz Benítez 2023-10-22 08:21:16 -04:00 committed by GitHub
commit 676e79a43f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,6 +25,7 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
@ -375,7 +376,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
return oauth2started; return oauth2started;
} }
private static class PrecheckOauth2AsyncTask extends ProgressDialogAsyncTask<Void, Void, Void> { private static class PrecheckOauth2AsyncTask extends AsyncTask<Void, Void, Void> {
private final WeakReference<RegistrationActivity> activityWeakReference; private final WeakReference<RegistrationActivity> activityWeakReference;
private final String email; private final String email;
private final SettableFuture<Boolean> oauth2started; private final SettableFuture<Boolean> oauth2started;
@ -383,14 +384,11 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
private @NonNull String oauth2url = ""; private @NonNull String oauth2url = "";
public PrecheckOauth2AsyncTask(RegistrationActivity activity, String email, SettableFuture<Boolean> oauth2started) { public PrecheckOauth2AsyncTask(RegistrationActivity activity, String email, SettableFuture<Boolean> oauth2started) {
super(activity, null, activity.getString(R.string.login_oauth2_checking_addr, email)); super();
this.activityWeakReference = new WeakReference<>(activity); this.activityWeakReference = new WeakReference<>(activity);
this.email = email; this.email = email;
this.oauth2started = oauth2started; this.oauth2started = oauth2started;
this.dcContext = DcHelper.getContext(activity); this.dcContext = DcHelper.getContext(activity);
setCancelable(dialog -> {
oauth2started.set(false);
});
} }
@Override @Override
protected Void doInBackground(Void... voids) { protected Void doInBackground(Void... voids) {
@ -428,7 +426,9 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
} }
private void updateProviderInfo() { private void updateProviderInfo() {
Util.runOnBackground(() -> {
provider = getContext(this).getProviderFromEmailWithDns(emailInput.getText().toString()); provider = getContext(this).getProviderFromEmailWithDns(emailInput.getText().toString());
Util.runOnMain(() -> {
if (provider!=null) { if (provider!=null) {
Resources res = getResources(); Resources res = getResources();
providerHint.setText(provider.getBeforeLoginHint()); providerHint.setText(provider.getBeforeLoginHint());
@ -454,18 +454,16 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
} else { } else {
providerLayout.setVisibility(View.GONE); providerLayout.setVisibility(View.GONE);
} }
});
});
} }
private void maybeCleanProviderInfo() { private void maybeCleanProviderInfo() {
if (provider!=null && providerLayout.getVisibility()==View.VISIBLE) { if (provider!=null && providerLayout.getVisibility()==View.VISIBLE) {
DcProvider newProvider = getContext(this).getProviderFromEmailWithDns(emailInput.getText().toString());
if (newProvider == null
|| !newProvider.getOverviewPage().equals(provider.getOverviewPage())) {
provider = null; provider = null;
providerLayout.setVisibility(View.GONE); providerLayout.setVisibility(View.GONE);
} }
} }
}
private void onProviderLink() { private void onProviderLink() {
if (provider!=null) { if (provider!=null) {