Merge pi-qpr1-release PQ1A.181105.017.A1 to pi-platform-release
Change-Id: I8d9acd18dbe3448a55e7d2236cf65eae679d0672
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
old mode 100755
new mode 100644
index 18589d8..feabd30
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -514,6 +514,14 @@
Context.SECURE_ELEMENT_SERVICE));
}
+ private boolean isSEServiceAvailable() {
+ if (mSEService == null) {
+ mSEService = ISecureElementService.Stub.asInterface(ServiceManager.getService(
+ Context.SECURE_ELEMENT_SERVICE));
+ }
+ return (mSEService != null);
+ }
+
void initSoundPool() {
synchronized (this) {
if (mSoundPool == null) {
@@ -1759,10 +1767,9 @@
paramsBuilder.setTechMask(techMask);
paramsBuilder.setEnableLowPowerDiscovery(false);
paramsBuilder.setEnableP2p(false);
- } else {
}
- if (mIsHceCapable && mReaderModeParams == null) {
+ if (mIsHceCapable && mScreenState >= ScreenStateHelper.SCREEN_STATE_ON_LOCKED && mReaderModeParams == null) {
// Host routing is always enabled at lock screen or later, provided we aren't in reader mode
paramsBuilder.setEnableHostRouting(true);
}
@@ -2241,7 +2248,7 @@
}
private void sendOffHostTransactionEvent(byte[] aid, byte[] data, byte[] readerByteArray) {
- if (mSEService == null || mNfcEventInstalledPackages.isEmpty()) {
+ if (!isSEServiceAvailable() || mNfcEventInstalledPackages.isEmpty()) {
return;
}
@@ -2281,7 +2288,7 @@
/* Returns the list of packages that have access to NFC Events on any SE */
private ArrayList<String> getSEAccessAllowedPackages() {
- if (mSEService == null || mNfcEventInstalledPackages.isEmpty()) {
+ if (!isSEServiceAvailable() || mNfcEventInstalledPackages.isEmpty()) {
return null;
}
String[] readers = null;