diff options
| author | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:32:08 +0530 |
|---|---|---|
| committer | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:32:08 +0530 |
| commit | fd7ab8d3677f8532919cbe73577a7489375875ee (patch) | |
| tree | 42fbcc8f3a2b48a1967ea7913df6e72a22cf671c | |
| parent | f192a3643a83565a4b37445ff8399e2268977569 (diff) | |
| parent | 4bb0b6b97a2ba7aa181e9417221f90060fb1117f (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.xml | 2 | ||||
| -rw-r--r-- | res/values-fa/strings.xml | 2 | ||||
| -rw-r--r-- | res/values-my/strings.xml | 2 | ||||
| -rw-r--r-- | res/values-nb/strings.xml | 2 | ||||
| -rw-r--r-- | res/values-sv/strings.xml | 2 | ||||
| -rw-r--r-- | res/values-te/strings.xml | 4 | ||||
| -rw-r--r-- | res/values-zh-rCN/strings.xml | 2 | ||||
| -rw-r--r-- | src/com/android/nfc/ForegroundUtils.java | 110 | ||||
| -rw-r--r-- | src/com/android/nfc/NfcDispatcher.java | 14 | ||||
| -rw-r--r-- | src/com/android/nfc/NfcService.java | 10 | ||||
| -rwxr-xr-x | src/com/android/nfc/P2pLinkManager.java | 4 | ||||
| -rw-r--r-- | src/com/android/nfc/cardemulation/EnabledNfcFServices.java | 5 | ||||
| -rw-r--r-- | src/com/android/nfc/cardemulation/PreferredServices.java | 4 |
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; |
