summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Zacharia <george.zcharia@gmail.com>2023-07-02 14:32:08 +0530
committerGeorge Zacharia <george.zcharia@gmail.com>2023-07-02 14:32:08 +0530
commitfd7ab8d3677f8532919cbe73577a7489375875ee (patch)
tree42fbcc8f3a2b48a1967ea7913df6e72a22cf671c
parentf192a3643a83565a4b37445ff8399e2268977569 (diff)
parent4bb0b6b97a2ba7aa181e9417221f90060fb1117f (diff)
Merge tag 'android-13.0.0_r52' of https://android.googlesource.com/platform/packages/apps/Nfc into HEAD
Android 13.0.0 Release 52 (TQ3A.230605.012) Change-Id: I70ed2200da904fc36459abc4f14e2450c741a0dd
-rw-r--r--res/values-bg/strings.xml2
-rw-r--r--res/values-fa/strings.xml2
-rw-r--r--res/values-my/strings.xml2
-rw-r--r--res/values-nb/strings.xml2
-rw-r--r--res/values-sv/strings.xml2
-rw-r--r--res/values-te/strings.xml4
-rw-r--r--res/values-zh-rCN/strings.xml2
-rw-r--r--src/com/android/nfc/ForegroundUtils.java110
-rw-r--r--src/com/android/nfc/NfcDispatcher.java14
-rw-r--r--src/com/android/nfc/NfcService.java10
-rwxr-xr-xsrc/com/android/nfc/P2pLinkManager.java4
-rw-r--r--src/com/android/nfc/cardemulation/EnabledNfcFServices.java5
-rw-r--r--src/com/android/nfc/cardemulation/PreferredServices.java4
13 files changed, 79 insertions, 84 deletions
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 09040059..bc85bc1b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="78565911793142902">"Nfc Service"</string>
+ <string name="app_name" msgid="78565911793142902">"Услуга NFC"</string>
<string name="nfcUserLabel" msgid="7708535817084357357">"NFC"</string>
<string name="accessibility_nfc_enabled" msgid="7796246979948787735">"NFC е активирана."</string>
<string name="tap_to_beam" msgid="5819197866281059878">"Докоснете за излъчване"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index eddc2c50..628bddd7 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -35,7 +35,7 @@
<string name="could_not_use_app" msgid="8137587876138569083">"نتوانست از <xliff:g id="APP">%1$s</xliff:g> استفاده کند."</string>
<string name="pay_with" msgid="5531545488795798945">"پرداخت با"</string>
<string name="complete_with" msgid="6797459104103012992">"تکمیل با"</string>
- <string name="default_pay_app_removed" msgid="4108250545457437360">"سرویس ترجیحی شما برای ضربه و پرداخت حذف شده است. سرویس دیگری را انتخاب می‌کنید؟"</string>
+ <string name="default_pay_app_removed" msgid="4108250545457437360">"سرویس ترجیحی شما برای «پرداخت با یک ضربه» حذف شده است. سرویس دیگری انتخاب می‌کنید؟"</string>
<string name="ask_nfc_tap" msgid="2925239870458286340">"برای تکمیل، روی دستگاه دیگری ضربه بزنید"</string>
<string name="wifi_connect" msgid="6250727951843550671">"اتصال"</string>
<string name="status_unable_to_connect" msgid="9183908200295307657">"اتصال به شبکه ممکن نیست"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 48e666fb..f879c6de 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="78565911793142902">"Nfc ဆားဗစ်"</string>
+ <string name="app_name" msgid="78565911793142902">"Nfc ဝန်ဆောင်မှု"</string>
<string name="nfcUserLabel" msgid="7708535817084357357">"NFC"</string>
<string name="accessibility_nfc_enabled" msgid="7796246979948787735">"NFC ရရှိသည်"</string>
<string name="tap_to_beam" msgid="5819197866281059878">"ဘင်းမ်လုပ်ရန် တို့ပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 854d4e3b..e594a6ff 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -35,7 +35,7 @@
<string name="could_not_use_app" msgid="8137587876138569083">"Kunne ikke bruke <xliff:g id="APP">%1$s</xliff:g>."</string>
<string name="pay_with" msgid="5531545488795798945">"Betal med"</string>
<string name="complete_with" msgid="6797459104103012992">"Fullfør med"</string>
- <string name="default_pay_app_removed" msgid="4108250545457437360">"Den foretrukne tjenesten din for berøringsbetaling har blitt fjernet. Vil du velge en annen?"</string>
+ <string name="default_pay_app_removed" msgid="4108250545457437360">"Den foretrukne tjenesten din for kontaktløs betaling er fjernet. Vil du velge en annen?"</string>
<string name="ask_nfc_tap" msgid="2925239870458286340">"Trykk på en annen enhet for å fullføre"</string>
<string name="wifi_connect" msgid="6250727951843550671">"Koble til"</string>
<string name="status_unable_to_connect" msgid="9183908200295307657">"Kunne ikke koble til nettverket"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index b8e659d7..9dcf4c35 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -35,7 +35,7 @@
<string name="could_not_use_app" msgid="8137587876138569083">"Det gick inte att använda <xliff:g id="APP">%1$s</xliff:g>."</string>
<string name="pay_with" msgid="5531545488795798945">"Betala med"</string>
<string name="complete_with" msgid="6797459104103012992">"Slutför med"</string>
- <string name="default_pay_app_removed" msgid="4108250545457437360">"Standardtjänsten för snudda och betala har tagits bort. Vill du välja en annan?"</string>
+ <string name="default_pay_app_removed" msgid="4108250545457437360">"Standardtjänsten för blippa och betala har tagits bort. Vill du välja en annan?"</string>
<string name="ask_nfc_tap" msgid="2925239870458286340">"Slutför genom att trycka på en annan enhet"</string>
<string name="wifi_connect" msgid="6250727951843550671">"Anslut"</string>
<string name="status_unable_to_connect" msgid="9183908200295307657">"Det gick inte att ansluta till nätverket"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 873704af..7ae4a0b1 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="78565911793142902">"Nfc సేవ"</string>
+ <string name="app_name" msgid="78565911793142902">"Nfc సర్వీస్"</string>
<string name="nfcUserLabel" msgid="7708535817084357357">"Nfc"</string>
<string name="accessibility_nfc_enabled" msgid="7796246979948787735">"NFC ప్రారంభించబడింది."</string>
<string name="tap_to_beam" msgid="5819197866281059878">"ప్రసారం చేయడానికి నొక్కండి"</string>
@@ -44,7 +44,7 @@
<string name="prompt_connect_to_network" msgid="8511683573657516114">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> నెట్‌వర్క్‌కు కనెక్ట్ చేయాలా?"</string>
<string name="beam_requires_nfc_enabled" msgid="2800366967218600534">"Android Beam కోసం NFC ప్రారంభించబడటం అవసరం. మీరు దాన్ని ప్రారంభించాలనుకుంటున్నారా?"</string>
<string name="android_beam" msgid="1666446406999492763">"Android Beam"</string>
- <string name="beam_requires_external_storage_permission" msgid="8798337545702206901">"అప్లికేషన్ బాహ్య నిల్వ అనుమతిని కలిగి లేదు. దీనికి ఈ ఫైల్‌ని బీమ్ చేయడం అవసరమవుతుంది"</string>
+ <string name="beam_requires_external_storage_permission" msgid="8798337545702206901">"అప్లికేషన్ బాహ్య స్టోరేజ్‌ అనుమతిని కలిగి లేదు. దీనికి ఈ ఫైల్‌ని బీమ్ చేయడం అవసరమవుతుంది"</string>
<string name="title_confirm_url_open" msgid="8069968913244794478">"లింక్‌ని తెరవాలా?"</string>
<string name="summary_confirm_url_open" product="tablet" msgid="3353502750736192055">"మీ టాబ్లెట్ NFC ద్వారా లింక్‌ని పొందింది:"</string>
<string name="summary_confirm_url_open" product="default" msgid="1246398412196449226">"మీ ఫోన్ NFC ద్వారా లింక్‌ని పొందింది:"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index be14e656..1068ca96 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="78565911793142902">"NFC服务"</string>
+ <string name="app_name" msgid="78565911793142902">"NFC 服务"</string>
<string name="nfcUserLabel" msgid="7708535817084357357">"NFC"</string>
<string name="accessibility_nfc_enabled" msgid="7796246979948787735">"NFC已开启。"</string>
<string name="tap_to_beam" msgid="5819197866281059878">"点按即可传输"</string>
diff --git a/src/com/android/nfc/ForegroundUtils.java b/src/com/android/nfc/ForegroundUtils.java
index 4ecec4b1..fb661181 100644
--- a/src/com/android/nfc/ForegroundUtils.java
+++ b/src/com/android/nfc/ForegroundUtils.java
@@ -16,9 +16,6 @@
package com.android.nfc;
import android.app.ActivityManager;
-import android.app.IActivityManager;
-import android.app.IProcessObserver;
-import android.os.RemoteException;
import android.os.SystemProperties;
import android.util.Log;
import android.util.SparseArray;
@@ -27,10 +24,10 @@ import android.util.SparseBooleanArray;
import java.util.ArrayList;
import java.util.List;
-public class ForegroundUtils extends IProcessObserver.Stub {
+public class ForegroundUtils implements ActivityManager.OnUidImportanceListener {
static final boolean DBG = SystemProperties.getBoolean("persist.nfc.debug_enabled", false);;
private final String TAG = "ForegroundUtils";
- private final IActivityManager mIActivityManager;
+ private final ActivityManager mActivityManager;
private final Object mLock = new Object();
// We need to keep track of the individual PIDs per UID,
@@ -41,17 +38,20 @@ public class ForegroundUtils extends IProcessObserver.Stub {
private final SparseArray<List<Callback>> mBackgroundCallbacks =
new SparseArray<List<Callback>>();
+ private final SparseBooleanArray mForegroundUids = new SparseBooleanArray();
+
private static class Singleton {
- private static final ForegroundUtils INSTANCE = new ForegroundUtils();
+ private static ForegroundUtils sInstance = null;
}
- private ForegroundUtils() {
- mIActivityManager = ActivityManager.getService();
+ private ForegroundUtils(ActivityManager am) {
+ mActivityManager = am;
try {
- mIActivityManager.registerProcessObserver(this);
- } catch (RemoteException e) {
+ mActivityManager.addOnUidImportanceListener(this,
+ ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND);
+ } catch (Exception e) {
// Should not happen!
- Log.e(TAG, "ForegroundUtils: could not get IActivityManager");
+ Log.e(TAG, "ForegroundUtils: could not register UidImportanceListener");
}
}
@@ -59,8 +59,17 @@ public class ForegroundUtils extends IProcessObserver.Stub {
void onUidToBackground(int uid);
}
- public static ForegroundUtils getInstance() {
- return Singleton.INSTANCE;
+ /**
+ * Get an instance of the ForegroundUtils sinleton
+ *
+ * @param am The ActivityManager instance for initialization
+ * @return the instance
+ */
+ public static ForegroundUtils getInstance(ActivityManager am) {
+ if (Singleton.sInstance == null) {
+ Singleton.sInstance = new ForegroundUtils(am);
+ }
+ return Singleton.sInstance;
}
/**
@@ -103,27 +112,26 @@ public class ForegroundUtils extends IProcessObserver.Stub {
* if none are found.
*/
public List<Integer> getForegroundUids() {
- ArrayList<Integer> uids = new ArrayList<Integer>(mForegroundUidPids.size());
+ ArrayList<Integer> uids = new ArrayList<Integer>(mForegroundUids.size());
synchronized (mLock) {
- for (int i = 0; i < mForegroundUidPids.size(); i++) {
- uids.add(mForegroundUidPids.keyAt(i));
+ for (int i = 0; i < mForegroundUids.size(); i++) {
+ if (mForegroundUids.valueAt(i)) {
+ uids.add(mForegroundUids.keyAt(i));
+ }
}
}
return uids;
}
private boolean isInForegroundLocked(int uid) {
- if (mForegroundUidPids.get(uid) != null)
+ if (mForegroundUids.get(uid)) {
return true;
- if (DBG) Log.d(TAG, "Checking UID:" + Integer.toString(uid));
- try {
- // If the onForegroundActivitiesChanged() has not yet been called,
- // check whether the UID is in an active state to use the NFC.
- return mIActivityManager.isUidActive(uid, NfcApplication.NFC_PROCESS);
- } catch (RemoteException e) {
- Log.e(TAG, "ForegroundUtils: could not get isUidActive");
}
- return false;
+ if (DBG) Log.d(TAG, "Checking UID:" + Integer.toString(uid));
+ // If the onForegroundActivitiesChanged() has not yet been called,
+ // check whether the UID is in an active state to use the NFC.
+ return (mActivityManager.getUidImportance(uid)
+ == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND);
}
private void handleUidToBackground(int uid) {
@@ -145,55 +153,35 @@ public class ForegroundUtils extends IProcessObserver.Stub {
}
@Override
- public void onForegroundActivitiesChanged(int pid, int uid,
- boolean hasForegroundActivities) throws RemoteException {
+ public void onUidImportance(int uid, int importance) {
boolean uidToBackground = false;
synchronized (mLock) {
- SparseBooleanArray foregroundPids = mForegroundUidPids.get(uid,
- new SparseBooleanArray());
- if (hasForegroundActivities) {
- foregroundPids.put(pid, true);
- } else {
- foregroundPids.delete(pid);
+ if (importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_GONE) {
+ mForegroundUids.delete(uid);
+ mBackgroundCallbacks.remove(uid);
+ if (DBG) Log.d(TAG, "UID: " + Integer.toString(uid) + " deleted.");
+ return;
}
- if (foregroundPids.size() == 0) {
- mForegroundUidPids.remove(uid);
- uidToBackground = true;
+ if (importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
+ mForegroundUids.put(uid, true);
} else {
- mForegroundUidPids.put(uid, foregroundPids);
+ if (mForegroundUids.get(uid)) {
+ uidToBackground = true;
+ mForegroundUids.put(uid, false);
+ }
}
}
if (uidToBackground) {
handleUidToBackground(uid);
}
if (DBG) {
- if (DBG) Log.d(TAG, "Foreground changed, PID: " + Integer.toString(pid) + " UID: " +
- Integer.toString(uid) + " foreground: " +
- hasForegroundActivities);
+ Log.d(TAG, "Foreground UID status:");
synchronized (mLock) {
- Log.d(TAG, "Foreground UID/PID combinations:");
- for (int i = 0; i < mForegroundUidPids.size(); i++) {
- int foregroundUid = mForegroundUidPids.keyAt(i);
- SparseBooleanArray foregroundPids = mForegroundUidPids.get(foregroundUid);
- if (foregroundPids.size() == 0) {
- Log.e(TAG, "No PIDS associated with foreground UID!");
- }
- for (int j = 0; j < foregroundPids.size(); j++)
- Log.d(TAG, "UID: " + Integer.toString(foregroundUid) + " PID: " +
- Integer.toString(foregroundPids.keyAt(j)));
+ for (int j = 0; j < mForegroundUids.size(); j++) {
+ Log.d(TAG, "UID: " + Integer.toString(mForegroundUids.keyAt(j))
+ + " is in foreground: " + Boolean.toString(mForegroundUids.valueAt(j)));
}
}
}
}
-
- @Override
- public void onForegroundServicesChanged(int pid, int uid, int fgServiceTypes) {
- }
-
- @Override
- public void onProcessDied(int pid, int uid) throws RemoteException {
- if (DBG) Log.d(TAG, "Process died; UID " + Integer.toString(uid) + " PID " +
- Integer.toString(pid));
- onForegroundActivitiesChanged(pid, uid, false);
- }
}
diff --git a/src/com/android/nfc/NfcDispatcher.java b/src/com/android/nfc/NfcDispatcher.java
index e079d6d6..e8f2c504 100644
--- a/src/com/android/nfc/NfcDispatcher.java
+++ b/src/com/android/nfc/NfcDispatcher.java
@@ -19,7 +19,6 @@ package com.android.nfc;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
-import android.app.IActivityManager;
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException;
import android.bluetooth.BluetoothAdapter;
@@ -45,7 +44,6 @@ import android.os.Handler;
import android.os.Message;
import android.os.Messenger;
import android.os.Process;
-import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
@@ -83,7 +81,6 @@ class NfcDispatcher {
static final int DISPATCH_UNLOCK = 3;
private final Context mContext;
- private final IActivityManager mIActivityManager;
private final RegisteredComponentCache mTechListFilters;
private final ContentResolver mContentResolver;
private final HandoverDataParser mHandoverDataParser;
@@ -107,7 +104,6 @@ class NfcDispatcher {
HandoverDataParser handoverDataParser,
boolean provisionOnly) {
mContext = context;
- mIActivityManager = ActivityManager.getService();
mTechListFilters = new RegisteredComponentCache(mContext,
NfcAdapter.ACTION_TECH_DISCOVERED, NfcAdapter.ACTION_TECH_DISCOVERED);
mContentResolver = context.getContentResolver();
@@ -116,7 +112,8 @@ class NfcDispatcher {
mNfcUnlockManager = NfcUnlockManager.getInstance();
mDeviceSupportsBluetooth = BluetoothAdapter.getDefaultAdapter() != null;
mForegroundUid = Process.INVALID_UID;
- mForegroundUtils = ForegroundUtils.getInstance();
+ mForegroundUtils = ForegroundUtils.getInstance(
+ context.getSystemService(ActivityManager.class));
synchronized (this) {
mProvisioningOnly = provisionOnly;
}
@@ -783,9 +780,10 @@ class NfcDispatcher {
* resumeAppSwitches().
*/
void resumeAppSwitches() {
- try {
- mIActivityManager.resumeAppSwitches();
- } catch (RemoteException e) { }
+ //// Should be auto resumed after S
+ // try {
+ // mIActivityManager.resumeAppSwitches();
+ // } catch (RemoteException e) { }
}
/** Returns true if the tech list filter matches the techs on the tag */
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index aadbf1c5..8608437f 100644
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -251,6 +251,7 @@ public class NfcService implements DeviceHostListener {
VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
private final UserManager mUserManager;
+ private final ActivityManager mActivityManager;
private static int nci_version = NCI_VERSION_1_0;
// NFC Execution Environment
@@ -536,9 +537,10 @@ public class NfcService implements DeviceHostListener {
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "NfcService:mRequireUnlockWakeLock");
- mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
- mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ mKeyguard = mContext.getSystemService(KeyguardManager.class);
+ mUserManager = mContext.getSystemService(UserManager.class);
+ mActivityManager = mContext.getSystemService(ActivityManager.class);
+ mVibrator = mContext.getSystemService(Vibrator.class);
mVibrationEffect = VibrationEffect.createOneShot(200, VibrationEffect.DEFAULT_AMPLITUDE);
mScreenState = mScreenStateHelper.checkScreenState();
@@ -603,7 +605,7 @@ public class NfcService implements DeviceHostListener {
if (mIsHceCapable) {
mCardEmulationManager = new CardEmulationManager(mContext);
}
- mForegroundUtils = ForegroundUtils.getInstance();
+ mForegroundUtils = ForegroundUtils.getInstance(mActivityManager);
mIsSecureNfcCapable = mNfcAdapter.deviceSupportsNfcSecure();
mIsSecureNfcEnabled =
diff --git a/src/com/android/nfc/P2pLinkManager.java b/src/com/android/nfc/P2pLinkManager.java
index fc39c0ac..b5edb209 100755
--- a/src/com/android/nfc/P2pLinkManager.java
+++ b/src/com/android/nfc/P2pLinkManager.java
@@ -16,6 +16,7 @@
package com.android.nfc;
+import android.app.ActivityManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
@@ -282,7 +283,8 @@ class P2pLinkManager implements Handler.Callback, P2pEventListener.Callback {
mDefaultRwSize = defaultRwSize;
mLlcpServicesConnected = false;
mNdefCallbackUid = -1;
- mForegroundUtils = ForegroundUtils.getInstance();
+ mForegroundUtils = ForegroundUtils.getInstance(
+ context.getSystemService(ActivityManager.class));
}
/**
diff --git a/src/com/android/nfc/cardemulation/EnabledNfcFServices.java b/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
index 734dd0d7..d6362988 100644
--- a/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
+++ b/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
@@ -15,6 +15,7 @@
*/
package com.android.nfc.cardemulation;
+import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.nfc.cardemulation.NfcFServiceInfo;
@@ -38,7 +39,7 @@ public class EnabledNfcFServices implements com.android.nfc.ForegroundUtils.Call
final RegisteredNfcFServicesCache mNfcFServiceCache;
final RegisteredT3tIdentifiersCache mT3tIdentifiersCache;
final Callback mCallback;
- final ForegroundUtils mForegroundUtils = ForegroundUtils.getInstance();
+ final ForegroundUtils mForegroundUtils;
final Handler mHandler = new Handler(Looper.getMainLooper());
final Object mLock = new Object();
@@ -62,6 +63,8 @@ public class EnabledNfcFServices implements com.android.nfc.ForegroundUtils.Call
RegisteredT3tIdentifiersCache t3tIdentifiersCache, Callback callback) {
if (DBG) Log.d(TAG, "EnabledNfcFServices");
mContext = context;
+ mForegroundUtils = ForegroundUtils.getInstance(
+ context.getSystemService(ActivityManager.class));
mNfcFServiceCache = nfcFServiceCache;
mT3tIdentifiersCache = t3tIdentifiersCache;
mCallback = callback;
diff --git a/src/com/android/nfc/cardemulation/PreferredServices.java b/src/com/android/nfc/cardemulation/PreferredServices.java
index 1f9b880a..d6e2fa69 100644
--- a/src/com/android/nfc/cardemulation/PreferredServices.java
+++ b/src/com/android/nfc/cardemulation/PreferredServices.java
@@ -67,7 +67,7 @@ public class PreferredServices implements com.android.nfc.ForegroundUtils.Callba
final RegisteredServicesCache mServiceCache;
final RegisteredAidCache mAidCache;
final Callback mCallback;
- final ForegroundUtils mForegroundUtils = ForegroundUtils.getInstance();
+ final ForegroundUtils mForegroundUtils;
final Handler mHandler = new Handler(Looper.getMainLooper());
final class PaymentDefaults {
@@ -105,6 +105,8 @@ public class PreferredServices implements com.android.nfc.ForegroundUtils.Callba
public PreferredServices(Context context, RegisteredServicesCache serviceCache,
RegisteredAidCache aidCache, Callback callback) {
mContext = context;
+ mForegroundUtils = ForegroundUtils.getInstance(
+ context.getSystemService(ActivityManager.class));
mServiceCache = serviceCache;
mAidCache = aidCache;
mCallback = callback;