am 1bce9e25: am 01588aca: Merge "Preserve invariant that sService is not null (although NfcAdapter.get() can return null)" into gingerbread
* commit '1bce9e25b6979780d849096059ef73507bdda250': Preserve invariant that sService is not null (although NfcAdapter.get() can return null)
This commit is contained in:
@@ -67,7 +67,11 @@ public final class NfcAdapterExtras {
|
||||
|
||||
/** get service handles */
|
||||
private static void initService() {
|
||||
sService = sAdapter.getNfcAdapterExtrasInterface();
|
||||
final INfcAdapterExtras service = sAdapter.getNfcAdapterExtrasInterface();
|
||||
if (service != null) {
|
||||
// Leave stale rather than receive a null value.
|
||||
sService = service;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -84,18 +88,19 @@ public final class NfcAdapterExtras {
|
||||
if (sSingleton == null) {
|
||||
try {
|
||||
sAdapter = adapter;
|
||||
sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null);
|
||||
sSingleton = new NfcAdapterExtras();
|
||||
sEmbeddedEe = new NfcExecutionEnvironment(sSingleton);
|
||||
sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null);
|
||||
sRouteOnWhenScreenOn = new CardEmulationRoute(
|
||||
CardEmulationRoute.ROUTE_ON_WHEN_SCREEN_ON, sEmbeddedEe);
|
||||
initService();
|
||||
} finally {
|
||||
if (sSingleton == null) {
|
||||
sService = null;
|
||||
sEmbeddedEe = null;
|
||||
sRouteOff = null;
|
||||
if (sService == null) {
|
||||
sRouteOnWhenScreenOn = null;
|
||||
sRouteOff = null;
|
||||
sEmbeddedEe = null;
|
||||
sSingleton = null;
|
||||
sAdapter = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user