Do not index NFC for search if NFC is not present

Bug: 35657617
Test: manual
Change-Id: I320b46d4d384611725d2dea628cf42180b8018ac
This commit is contained in:
Andre Eisenbach
2017-02-23 12:10:03 -08:00
parent 4bc851b520
commit 4d03c5b489

View File

@@ -19,6 +19,7 @@ package com.android.settings.nfc;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources; import android.content.res.Resources;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.os.Bundle; import android.os.Bundle;
@@ -45,6 +46,9 @@ import java.util.List;
public class PaymentSettings extends SettingsPreferenceFragment implements Indexable { public class PaymentSettings extends SettingsPreferenceFragment implements Indexable {
public static final String TAG = "PaymentSettings"; public static final String TAG = "PaymentSettings";
static final String PAYMENT_KEY = "payment";
private PaymentBackend mPaymentBackend; private PaymentBackend mPaymentBackend;
@Override @Override
@@ -66,7 +70,7 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
if (appInfos != null && appInfos.size() > 0) { if (appInfos != null && appInfos.size() > 0) {
NfcPaymentPreference preference = NfcPaymentPreference preference =
new NfcPaymentPreference(getPrefContext(), mPaymentBackend); new NfcPaymentPreference(getPrefContext(), mPaymentBackend);
preference.setKey("payment"); preference.setKey(PAYMENT_KEY);
screen.addPreference(preference); screen.addPreference(preference);
NfcForegroundPreference foreground = new NfcForegroundPreference(getPrefContext(), NfcForegroundPreference foreground = new NfcForegroundPreference(getPrefContext(),
mPaymentBackend); mPaymentBackend);
@@ -154,5 +158,14 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
result.add(data); result.add(data);
return result; 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;
}
}; };
} }