Delay initialization of GoogleCredential

pull/935/head
Alex Baker 5 years ago
parent 8fd3ff4ea8
commit 0be631af4f

@ -38,7 +38,7 @@ public class GtasksInvoker {
private final GoogleAccountManager googleAccountManager; private final GoogleAccountManager googleAccountManager;
private final Preferences preferences; private final Preferences preferences;
private final DebugNetworkInterceptor interceptor; private final DebugNetworkInterceptor interceptor;
private final GoogleCredential credential = new GoogleCredential(); @Nullable private final GoogleCredential credential;
private final String account; private final String account;
private final Tasks service; private final Tasks service;
@ -54,6 +54,7 @@ public class GtasksInvoker {
this.interceptor = interceptor; this.interceptor = interceptor;
account = null; account = null;
service = null; service = null;
credential = null;
} }
private GtasksInvoker( private GtasksInvoker(
@ -67,6 +68,7 @@ public class GtasksInvoker {
this.preferences = preferences; this.preferences = preferences;
this.interceptor = interceptor; this.interceptor = interceptor;
this.account = account; this.account = account;
credential = new GoogleCredential();
service = service =
new Tasks.Builder(new NetHttpTransport(), new JacksonFactory(), credential) new Tasks.Builder(new NetHttpTransport(), new JacksonFactory(), credential)
@ -79,7 +81,7 @@ public class GtasksInvoker {
} }
private void checkToken() { private void checkToken() {
if (Strings.isNullOrEmpty(credential.getAccessToken())) { if (credential != null && Strings.isNullOrEmpty(credential.getAccessToken())) {
Bundle bundle = googleAccountManager.getAccessToken(account, TasksScopes.TASKS); Bundle bundle = googleAccountManager.getAccessToken(account, TasksScopes.TASKS);
credential.setAccessToken( credential.setAccessToken(
bundle != null ? bundle.getString(AccountManager.KEY_AUTHTOKEN) : null); bundle != null ? bundle.getString(AccountManager.KEY_AUTHTOKEN) : null);

Loading…
Cancel
Save