Merge "Make Nfc/Beam searchable based on feature availability" into pi-dev
diff --git a/src/com/android/settings/nfc/BaseNfcPreferenceController.java b/src/com/android/settings/nfc/BaseNfcPreferenceController.java
index b945738..33d75fa 100644
--- a/src/com/android/settings/nfc/BaseNfcPreferenceController.java
+++ b/src/com/android/settings/nfc/BaseNfcPreferenceController.java
@@ -67,7 +67,7 @@
@Override
public void updateNonIndexableKeys(List<String> keys) {
- if (isAvailable()) {
+ if (!isAvailable()) {
keys.add(getPreferenceKey());
}
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index 0230540..9064179 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -78,7 +78,6 @@
final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(mContext);
- assertThat(niks).containsExactly(KEY_CONNECTED_DEVICES, KEY_AVAILABLE_DEVICES,
- NfcPreferenceController.KEY_TOGGLE_NFC);
+ assertThat(niks).containsExactly(KEY_CONNECTED_DEVICES, KEY_AVAILABLE_DEVICES);
}
}
diff --git a/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java
index cb18b5a..df5bb64 100644
--- a/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java
@@ -41,6 +41,9 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class AndroidBeamPreferenceControllerTest {
@@ -132,4 +135,24 @@
mAndroidBeamController.onResume();
assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
}
+
+ @Test
+ public void updateNonIndexableKeys_available_shouldNotUpdate() {
+ when(mNfcAdapter.isEnabled()).thenReturn(true);
+ final List<String> keys = new ArrayList<>();
+
+ mAndroidBeamController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).isEmpty();
+ }
+
+ @Test
+ public void updateNonIndexableKeys_notAvailable_shouldUpdate() {
+ ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null);
+ final List<String> keys = new ArrayList<>();
+
+ mAndroidBeamController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).hasSize(1);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
index cd90820..802e199 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
@@ -39,6 +39,9 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class NfcPreferenceControllerTest {
@@ -134,4 +137,24 @@
mNfcController.onResume();
assertThat(mNfcPreference.isChecked()).isFalse();
}
+
+ @Test
+ public void updateNonIndexableKeys_available_shouldNotUpdate() {
+ when(mNfcAdapter.isEnabled()).thenReturn(true);
+ final List<String> keys = new ArrayList<>();
+
+ mNfcController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).isEmpty();
+ }
+
+ @Test
+ public void updateNonIndexableKeys_notAvailable_shouldUpdate() {
+ ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null);
+ final List<String> keys = new ArrayList<>();
+
+ mNfcController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).hasSize(1);
+ }
}