summaryrefslogtreecommitdiffstats
path: root/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java')
-rw-r--r--mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java
new file mode 100644
index 000000000..d138e6c45
--- /dev/null
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/FxAccountAuthenticatorService.java
@@ -0,0 +1,55 @@
+/* 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 <code>getAuthenticator</code>.
+ 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();
+ }
+}