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.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 @@ import java.util.List;
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 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
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 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
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;
}
};
}