diff options
author | Nick Pelly <npelly@google.com> | 2011-03-22 10:14:36 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-22 10:14:36 -0700 |
commit | 14923862577ef785d20fc5c627248897c9eaddb6 (patch) | |
tree | ccff765f66f2432e691ccfdd0629265bdec1fd6a | |
parent | 03aa986e6b19e436c71801d2e5af6f44521a94ab (diff) | |
parent | e69f4267e1cdf5353fffa99a0d49f4c9069415b9 (diff) | |
download | frameworks_base-14923862577ef785d20fc5c627248897c9eaddb6.zip frameworks_base-14923862577ef785d20fc5c627248897c9eaddb6.tar.gz frameworks_base-14923862577ef785d20fc5c627248897c9eaddb6.tar.bz2 |
am e69f4267: Merge "NfcAdapterExtras: reset singleton state if initialization fails." into gingerbread
* commit 'e69f4267e1cdf5353fffa99a0d49f4c9069415b9':
NfcAdapterExtras: reset singleton state if initialization fails.
-rw-r--r-- | nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java index cf38bd1..ed1af49 100644 --- a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java +++ b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java @@ -57,7 +57,6 @@ public final class NfcAdapterExtras { // protected by NfcAdapterExtras.class, and final after first construction private static INfcAdapterExtras sService; - private static boolean sIsInitialized = false; private static NfcAdapterExtras sSingleton; private static NfcExecutionEnvironment sEmbeddedEe; private static CardEmulationRoute sRouteOff; @@ -74,14 +73,22 @@ public final class NfcAdapterExtras { */ public static NfcAdapterExtras get(NfcAdapter adapter) { synchronized(NfcAdapterExtras.class) { - if (!sIsInitialized) { - sIsInitialized = true; - sService = adapter.getNfcAdapterExtrasInterface(); - sEmbeddedEe = new NfcExecutionEnvironment(sService); - sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null); - sRouteOnWhenScreenOn = new CardEmulationRoute( - CardEmulationRoute.ROUTE_ON_WHEN_SCREEN_ON, sEmbeddedEe); - sSingleton = new NfcAdapterExtras(); + if (sSingleton == null) { + try { + sService = adapter.getNfcAdapterExtrasInterface(); + sEmbeddedEe = new NfcExecutionEnvironment(sService); + sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null); + sRouteOnWhenScreenOn = new CardEmulationRoute( + CardEmulationRoute.ROUTE_ON_WHEN_SCREEN_ON, sEmbeddedEe); + sSingleton = new NfcAdapterExtras(); + } finally { + if (sSingleton == null) { + sService = null; + sEmbeddedEe = null; + sRouteOff = null; + sRouteOnWhenScreenOn = null; + } + } } return sSingleton; } |