Do not index NFC for search if NFC is not present
Bug: 35657617
Test: manual
Change-Id: I320b46d4d384611725d2dea628cf42180b8018ac
diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java
index 37a77f9..a54ba4e 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -19,6 +19,7 @@
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.nfc.NfcAdapter;
import android.os.Bundle;
@@ -45,6 +46,9 @@
public class PaymentSettings extends SettingsPreferenceFragment implements Indexable {
public static final String TAG = "PaymentSettings";
+
+ static final String PAYMENT_KEY = "payment";
+
private PaymentBackend mPaymentBackend;
@Override
@@ -66,7 +70,7 @@
if (appInfos != null && appInfos.size() > 0) {
NfcPaymentPreference preference =
new NfcPaymentPreference(getPrefContext(), mPaymentBackend);
- preference.setKey("payment");
+ preference.setKey(PAYMENT_KEY);
screen.addPreference(preference);
NfcForegroundPreference foreground = new NfcForegroundPreference(getPrefContext(),
mPaymentBackend);
@@ -154,5 +158,14 @@
result.add(data);
return result;
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ final PackageManager pm = context.getPackageManager();
+ if (pm.hasSystemFeature(PackageManager.FEATURE_NFC)) return null;
+ final List<String> nonVisibleKeys = new ArrayList<String>();
+ nonVisibleKeys.add(PAYMENT_KEY);
+ return nonVisibleKeys;
+ }
};
}