/* 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.authenticator; import org.mozilla.gecko.background.common.log.Logger; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class FxAccountAuthenticatorService extends Service { public static final String LOG_TAG = FxAccountAuthenticatorService.class.getSimpleName(); // Lazily initialized by getAuthenticator. protected FxAccountAuthenticator accountAuthenticator; protected synchronized FxAccountAuthenticator getAuthenticator() { if (accountAuthenticator == null) { accountAuthenticator = new FxAccountAuthenticator(this); } return accountAuthenticator; } @Override public void onCreate() { Logger.debug(LOG_TAG, "onCreate"); accountAuthenticator = getAuthenticator(); } @Override public IBinder onBind(Intent intent) { Logger.debug(LOG_TAG, "onBind"); if (intent == null) { // Should never happen, but can -- Bug 1025937. return null; } if (!android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT.equals(intent.getAction())) { return null; } final FxAccountAuthenticator authenticator = getAuthenticator(); if (authenticator == null) { // Should never happen. return null; } return authenticator.getIBinder(); } }