OSDN Git Service

Do not index NFC for search if NFC is not present
authorAndre Eisenbach <eisenbach@google.com>
Thu, 23 Feb 2017 20:10:03 +0000 (12:10 -0800)
committerAndre Eisenbach <eisenbach@google.com>
Thu, 23 Feb 2017 20:45:57 +0000 (12:45 -0800)
Bug: 35657617
Test: manual
Change-Id: I320b46d4d384611725d2dea628cf42180b8018ac

src/com/android/settings/nfc/PaymentSettings.java

index 37a77f9..a54ba4e 100644 (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;
+            }
     };
 }