Loading src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ public class BluetoothMasterSwitchPreferenceController extends PreferenceControl implements OnSummaryChangeListener, LifecycleObserver, OnResume, OnPause, OnStart, OnStop { private static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth"; public static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth"; private LocalBluetoothManager mBluetoothManager; private MasterSwitchPreference mBtPreference; Loading src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +17 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.connecteddevice; import android.content.Context; import android.content.pm.PackageManager; import android.provider.SearchIndexableResource; import com.android.internal.logging.nano.MetricsProto; Loading Loading @@ -85,5 +86,20 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { sir.xmlResId = R.xml.connected_devices; return Arrays.asList(sir); } @Override public List<String> getNonIndexableKeys(Context context) { PackageManager pm = context.getPackageManager(); final List<String> keys = new ArrayList<String>(); if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) { keys.add(NfcPreferenceController.KEY_TOGGLE_NFC); keys.add(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } if (!pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { keys.add(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } return keys; } }; } src/com/android/settings/nfc/NfcPreferenceController.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import java.util.List; public class NfcPreferenceController extends PreferenceController implements LifecycleObserver, OnResume, OnPause { private static final String KEY_TOGGLE_NFC = "toggle_nfc"; private static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; public static final String KEY_TOGGLE_NFC = "toggle_nfc"; public static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; private NfcEnabler mNfcEnabler; private NfcAdapter mNfcAdapter; Loading tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java +54 −3 Original line number Diff line number Diff line Loading @@ -15,8 +15,12 @@ */ package com.android.settings.connecteddevice; import android.content.Context; import android.content.pm.PackageManager; import android.provider.SearchIndexableResource; import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController; import com.android.settings.nfc.NfcPreferenceController; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settingslib.drawer.CategoryKey; Loading @@ -24,22 +28,33 @@ import com.android.settingslib.drawer.CategoryKey; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import java.util.List; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class ConnectedDeviceDashboardFragmentTest { @Mock Context mContext; @Mock private PackageManager mManager; private ConnectedDeviceDashboardFragment mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); mFragment = new ConnectedDeviceDashboardFragment(); when(mContext.getPackageManager()).thenReturn(mManager); } @Test Loading @@ -50,11 +65,47 @@ public class ConnectedDeviceDashboardFragmentTest { @Test public void testSearchIndexProvider_shouldIndexResource() { final List<SearchIndexableResource> indexRes = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex( ShadowApplication.getInstance().getApplicationContext(), true /* enabled */); mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */); assertThat(indexRes).isNotNull(); assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId()); } @Test public void testSearchIndexProvider_NoNfc_KeyAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(false); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).contains(NfcPreferenceController.KEY_TOGGLE_NFC); assertThat(keys).contains(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } @Test public void testSearchIndexProvider_NFC_KeyNotAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).doesNotContain(NfcPreferenceController.KEY_TOGGLE_NFC); assertThat(keys).doesNotContain(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } @Test public void testSearchIndexProvider_NoBluetooth_KeyAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(false); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).contains(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } @Test public void testSearchIndexProvider_Bluetooth_KeyNotAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(true); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).doesNotContain(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } } Loading
src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ public class BluetoothMasterSwitchPreferenceController extends PreferenceControl implements OnSummaryChangeListener, LifecycleObserver, OnResume, OnPause, OnStart, OnStop { private static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth"; public static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth"; private LocalBluetoothManager mBluetoothManager; private MasterSwitchPreference mBtPreference; Loading
src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +17 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.connecteddevice; import android.content.Context; import android.content.pm.PackageManager; import android.provider.SearchIndexableResource; import com.android.internal.logging.nano.MetricsProto; Loading Loading @@ -85,5 +86,20 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { sir.xmlResId = R.xml.connected_devices; return Arrays.asList(sir); } @Override public List<String> getNonIndexableKeys(Context context) { PackageManager pm = context.getPackageManager(); final List<String> keys = new ArrayList<String>(); if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) { keys.add(NfcPreferenceController.KEY_TOGGLE_NFC); keys.add(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } if (!pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { keys.add(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } return keys; } }; }
src/com/android/settings/nfc/NfcPreferenceController.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import java.util.List; public class NfcPreferenceController extends PreferenceController implements LifecycleObserver, OnResume, OnPause { private static final String KEY_TOGGLE_NFC = "toggle_nfc"; private static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; public static final String KEY_TOGGLE_NFC = "toggle_nfc"; public static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; private NfcEnabler mNfcEnabler; private NfcAdapter mNfcAdapter; Loading
tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java +54 −3 Original line number Diff line number Diff line Loading @@ -15,8 +15,12 @@ */ package com.android.settings.connecteddevice; import android.content.Context; import android.content.pm.PackageManager; import android.provider.SearchIndexableResource; import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController; import com.android.settings.nfc.NfcPreferenceController; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settingslib.drawer.CategoryKey; Loading @@ -24,22 +28,33 @@ import com.android.settingslib.drawer.CategoryKey; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import java.util.List; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class ConnectedDeviceDashboardFragmentTest { @Mock Context mContext; @Mock private PackageManager mManager; private ConnectedDeviceDashboardFragment mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); mFragment = new ConnectedDeviceDashboardFragment(); when(mContext.getPackageManager()).thenReturn(mManager); } @Test Loading @@ -50,11 +65,47 @@ public class ConnectedDeviceDashboardFragmentTest { @Test public void testSearchIndexProvider_shouldIndexResource() { final List<SearchIndexableResource> indexRes = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex( ShadowApplication.getInstance().getApplicationContext(), true /* enabled */); mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */); assertThat(indexRes).isNotNull(); assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId()); } @Test public void testSearchIndexProvider_NoNfc_KeyAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(false); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).contains(NfcPreferenceController.KEY_TOGGLE_NFC); assertThat(keys).contains(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } @Test public void testSearchIndexProvider_NFC_KeyNotAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).doesNotContain(NfcPreferenceController.KEY_TOGGLE_NFC); assertThat(keys).doesNotContain(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); } @Test public void testSearchIndexProvider_NoBluetooth_KeyAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(false); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).contains(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } @Test public void testSearchIndexProvider_Bluetooth_KeyNotAdded() { when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(true); final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); assertThat(keys).isNotNull(); assertThat(keys).doesNotContain(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); } }