diff options
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/fxa/sync/FxAccountProfileService.java')
-rw-r--r-- | mobile/android/services/src/main/java/org/mozilla/gecko/fxa/sync/FxAccountProfileService.java | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/sync/FxAccountProfileService.java b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/sync/FxAccountProfileService.java deleted file mode 100644 index 7f03eff1c..000000000 --- a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/sync/FxAccountProfileService.java +++ /dev/null @@ -1,107 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.gecko.fxa.sync; - -import android.accounts.AccountManager; -import android.app.Activity; -import android.app.IntentService; -import android.content.Intent; -import android.os.Bundle; -import android.os.ResultReceiver; - -import org.mozilla.gecko.background.common.log.Logger; -import org.mozilla.gecko.background.fxa.FxAccountUtils; -import org.mozilla.gecko.background.fxa.oauth.FxAccountAbstractClient; -import org.mozilla.gecko.background.fxa.oauth.FxAccountAbstractClientException; -import org.mozilla.gecko.background.fxa.profile.FxAccountProfileClient10; -import org.mozilla.gecko.fxa.FxAccountConstants; -import org.mozilla.gecko.sync.ExtendedJSONObject; - -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; - -public class FxAccountProfileService extends IntentService { - private static final String LOG_TAG = "FxAccountProfileService"; - private static final Executor EXECUTOR_SERVICE = Executors.newSingleThreadExecutor(); - public static final String KEY_AUTH_TOKEN = "auth_token"; - public static final String KEY_PROFILE_SERVER_URI = "profileServerURI"; - public static final String KEY_RESULT_RECEIVER = "resultReceiver"; - public static final String KEY_RESULT_STRING = "RESULT_STRING"; - - public FxAccountProfileService() { - super("FxAccountProfileService"); - } - - @Override - protected void onHandleIntent(Intent intent) { - final String authToken = intent.getStringExtra(KEY_AUTH_TOKEN); - final String profileServerURI = intent.getStringExtra(KEY_PROFILE_SERVER_URI); - final ResultReceiver resultReceiver = intent.getParcelableExtra(KEY_RESULT_RECEIVER); - - if (resultReceiver == null) { - Logger.warn(LOG_TAG, "Result receiver must not be null; ignoring intent."); - return; - } - - if (authToken == null || authToken.length() == 0) { - Logger.warn(LOG_TAG, "Invalid Auth Token"); - sendResult("Invalid Auth Token", resultReceiver, Activity.RESULT_CANCELED); - return; - } - - if (profileServerURI == null || profileServerURI.length() == 0) { - Logger.warn(LOG_TAG, "Invalid profile Server Endpoint"); - sendResult("Invalid profile Server Endpoint", resultReceiver, Activity.RESULT_CANCELED); - return; - } - - // This delegate fetches the profile avatar json. - FxAccountProfileClient10.RequestDelegate<ExtendedJSONObject> delegate = new FxAccountAbstractClient.RequestDelegate<ExtendedJSONObject>() { - @Override - public void handleError(Exception e) { - Logger.error(LOG_TAG, "Error fetching Account profile.", e); - sendResult("Error fetching Account profile.", resultReceiver, Activity.RESULT_CANCELED); - } - - @Override - public void handleFailure(FxAccountAbstractClientException.FxAccountAbstractClientRemoteException e) { - Logger.warn(LOG_TAG, "Failed to fetch Account profile.", e); - - if (e.isInvalidAuthentication()) { - // The profile server rejected the cached oauth token! Invalidate it. - // A new token will be generated upon next request. - Logger.info(LOG_TAG, "Invalidating oauth token after 401!"); - AccountManager.get(FxAccountProfileService.this).invalidateAuthToken(FxAccountConstants.ACCOUNT_TYPE, authToken); - } - - sendResult("Failed to fetch Account profile.", resultReceiver, Activity.RESULT_CANCELED); - } - - @Override - public void handleSuccess(ExtendedJSONObject result) { - if (result != null){ - FxAccountUtils.pii(LOG_TAG, "Profile server return profile: " + result.toJSONString()); - sendResult(result.toJSONString(), resultReceiver, Activity.RESULT_OK); - } - } - }; - - FxAccountProfileClient10 client = new FxAccountProfileClient10(profileServerURI, EXECUTOR_SERVICE); - try { - client.profile(authToken, delegate); - } catch (Exception e) { - Logger.error(LOG_TAG, "Got exception fetching profile.", e); - delegate.handleError(e); - } - } - - private void sendResult(final String result, final ResultReceiver resultReceiver, final int code) { - if (resultReceiver != null) { - final Bundle bundle = new Bundle(); - bundle.putString(KEY_RESULT_STRING, result); - resultReceiver.send(code, bundle); - } - } -} |