Source:
private void handleAuthorizationResponse(Intent intent) { AuthorizationResponse response = AuthorizationResponse.fromIntent(intent); AuthorizationException error = AuthorizationException.fromIntent(intent); final AuthState authState = new AuthState(response, error); if (response != null) { Log.i(GOOGLE_SIGN, String.format("Handled Authorization Response %s ", authState.toJsonString())); AuthorizationService service = new AuthorizationService(this); service.performTokenRequest(response.createTokenExchangeRequest(), new AuthorizationService.TokenResponseCallback() { @Override public void onTokenRequestCompleted(@Nullable TokenResponse tokenResponse, @Nullable AuthorizationException exception) { if (exception != null) { Log.w(GOOGLE_SIGN, "Token Exchange failed", exception); } else { if (tokenResponse != null) { authState.update(tokenResponse, exception); AuthorizationService mAuthorizationService = new AuthorizationService(LoginActivity.this); authState.performActionWithFreshTokens(mAuthorizationService, new AuthState.AuthStateAction() { @Override public void execute(@Nullable final String accessToken, @Nullable final String idToken, @Nullable AuthorizationException exception) { final AsyncLogin loginTask = new AsyncLogin(LoginActivity.this, "google-oauth2-token", idToken); loginTask.setCallback(new AsyncTaskCompleteListener() { @Override public void onTaskComplete(String result, JSONObject object) { Log.d("RECIEVED", "onTaskComplete: " + result); try { ((ZulipApp) getApplication()).setEmail(object.getString("email")); connectionProgressDialog.dismiss(); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onTaskFailure(String result) { connectionProgressDialog.dismiss(); } }); loginTask.execute(); } }); Log.i(GOOGLE_SIGN, String.format("Token Response [ Access Token: %s, ID Token: %s ]", tokenResponse.accessToken, tokenResponse.idToken)); } } } }); } }

Target:
private void handleAuthorizationResponse(Intent intent) { AuthorizationResponse response = AuthorizationResponse.fromIntent(intent); AuthorizationException error = AuthorizationException.fromIntent(intent); final AuthState authState = new AuthState(response, error); if (response != null) { Log.i(GOOGLE_SIGN, String.format("Handled Authorization Response %s ", authState.toJsonString())); AuthorizationService service = new AuthorizationService(this); service.performTokenRequest(response.createTokenExchangeRequest(), new AuthorizationService.TokenResponseCallback() { @Override public void onTokenRequestCompleted(@Nullable TokenResponse tokenResponse, @Nullable AuthorizationException exception) { if (exception != null) { Log.w(GOOGLE_SIGN, "Token Exchange failed", exception); } else { if (tokenResponse != null) { authState.update(tokenResponse, exception); AuthorizationService mAuthorizationService = new AuthorizationService(LoginActivity.this); authState.performActionWithFreshTokens(mAuthorizationService, new AuthState.AuthStateAction() { @Override public void execute(@Nullable final String accessToken, @Nullable final String idToken, @Nullable AuthorizationException exception) { final AsyncLogin loginTask = new AsyncLogin(LoginActivity.this, "google-oauth2-token", idToken, false); loginTask.setCallback(new AsyncTaskCompleteListener() { @Override public void onTaskComplete(String result, JSONObject object) { Log.d("RECIEVED", "onTaskComplete: " + result); try { ((ZulipApp) getApplication()).setEmail(object.getString("email")); connectionProgressDialog.dismiss(); } catch (JSONException e) { ZLog.logException(e); } } @Override public void onTaskFailure(String result) { connectionProgressDialog.dismiss(); } }); loginTask.execute(); } }); Log.i(GOOGLE_SIGN, String.format("Token Response [ Access Token: %s, ID Token: %s ]", tokenResponse.accessToken, tokenResponse.idToken)); } } } }); } }