Fix oauth crash

pull/820/head
Alex Baker 6 years ago
parent 840754f8e4
commit cc7a36f2da

@ -10,7 +10,6 @@ import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import io.reactivex.disposables.CompositeDisposable;
import javax.inject.Inject; import javax.inject.Inject;
import org.tasks.R; import org.tasks.R;
import org.tasks.data.GoogleTaskAccount; import org.tasks.data.GoogleTaskAccount;
@ -29,12 +28,11 @@ import org.tasks.play.AuthResultHandler;
*/ */
public class GtasksLoginActivity extends InjectingAppCompatActivity { public class GtasksLoginActivity extends InjectingAppCompatActivity {
private static final int RC_CHOOSE_ACCOUNT = 10988;
public static final String EXTRA_ERROR = "extra_error"; public static final String EXTRA_ERROR = "extra_error";
private static final int RC_CHOOSE_ACCOUNT = 10988;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject GoogleAccountManager googleAccountManager; @Inject GoogleAccountManager googleAccountManager;
@Inject GoogleTaskListDao googleTaskListDao; @Inject GoogleTaskListDao googleTaskListDao;
private CompositeDisposable disposables;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -57,18 +55,7 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity {
getAuthToken(account, pd); getAuthToken(account, pd);
} }
@Override
protected void onPause() {
super.onPause();
if (disposables != null) {
disposables.dispose();
}
}
private void getAuthToken(String a, final ProgressDialog pd) { private void getAuthToken(String a, final ProgressDialog pd) {
disposables =
new CompositeDisposable(
googleAccountManager.getTasksAuthToken( googleAccountManager.getTasksAuthToken(
this, this,
a, a,
@ -95,7 +82,7 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity {
DialogUtilities.dismissDialog(GtasksLoginActivity.this, pd); DialogUtilities.dismissDialog(GtasksLoginActivity.this, pd);
finish(); finish();
} }
})); });
} }
@Override @Override

@ -10,7 +10,6 @@ import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import io.reactivex.disposables.CompositeDisposable;
import javax.inject.Inject; import javax.inject.Inject;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
@ -28,12 +27,11 @@ import org.tasks.preferences.Preferences;
*/ */
public class DriveLoginActivity extends InjectingAppCompatActivity { public class DriveLoginActivity extends InjectingAppCompatActivity {
private static final int RC_CHOOSE_ACCOUNT = 10988;
public static final String EXTRA_ERROR = "extra_error"; public static final String EXTRA_ERROR = "extra_error";
private static final int RC_CHOOSE_ACCOUNT = 10988;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject GoogleAccountManager googleAccountManager; @Inject GoogleAccountManager googleAccountManager;
@Inject Preferences preferences; @Inject Preferences preferences;
private CompositeDisposable disposables;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -56,18 +54,7 @@ public class DriveLoginActivity extends InjectingAppCompatActivity {
getAuthToken(account, pd); getAuthToken(account, pd);
} }
@Override
protected void onPause() {
super.onPause();
if (disposables != null) {
disposables.dispose();
}
}
private void getAuthToken(String a, final ProgressDialog pd) { private void getAuthToken(String a, final ProgressDialog pd) {
disposables =
new CompositeDisposable(
googleAccountManager.getDriveAuthToken( googleAccountManager.getDriveAuthToken(
this, this,
a, a,
@ -86,7 +73,7 @@ public class DriveLoginActivity extends InjectingAppCompatActivity {
DialogUtilities.dismissDialog(DriveLoginActivity.this, pd); DialogUtilities.dismissDialog(DriveLoginActivity.this, pd);
finish(); finish();
} }
})); });
} }
@Override @Override

@ -9,6 +9,7 @@ import android.accounts.Account;
import android.accounts.AccountManager; import android.accounts.AccountManager;
import android.accounts.AuthenticatorException; import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException; import android.accounts.OperationCanceledException;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -18,7 +19,6 @@ import com.google.api.services.tasks.TasksScopes;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import io.reactivex.Single; import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
@ -83,20 +83,22 @@ public class GoogleAccountManager {
} }
} }
public Disposable getTasksAuthToken( public void getTasksAuthToken(
final Activity activity, final String accountName, final AuthResultHandler handler) { final Activity activity, final String accountName, final AuthResultHandler handler) {
return getToken(TasksScopes.TASKS, activity, accountName, handler); getToken(TasksScopes.TASKS, activity, accountName, handler);
} }
public Disposable getDriveAuthToken( public void getDriveAuthToken(
final Activity activity, final String accountName, final AuthResultHandler handler) { final Activity activity, final String accountName, final AuthResultHandler handler) {
return getToken(DriveScopes.DRIVE_FILE, activity, accountName, handler); getToken(DriveScopes.DRIVE_FILE, activity, accountName, handler);
} }
private Disposable getToken( @SuppressWarnings("ResultOfMethodCallIgnored")
@SuppressLint("CheckResult")
private void getToken(
String scope, Activity activity, String accountName, AuthResultHandler handler) { String scope, Activity activity, String accountName, AuthResultHandler handler) {
final Account account = getAccount(accountName); final Account account = getAccount(accountName);
return Single.fromCallable( Single.fromCallable(
() -> { () -> {
if (account == null) { if (account == null) {
throw new RuntimeException( throw new RuntimeException(

Loading…
Cancel
Save