Loading src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +13 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { private static final String SETTINGS_PACKAGE_NAME = "com.android.settings"; private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE"; @VisibleForTesting static final String KEY_CONNECTED_DEVICES = "connected_device_list"; Loading Loading @@ -72,8 +73,10 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true); String callingAppPackageName = PasswordUtils.getCallingAppPackageName( getActivity().getActivityToken()); String action = getIntent() != null ? getIntent().getAction() : ""; if (DEBUG) { Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName); Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName + ", action : " + action); } use(AvailableMediaDeviceGroupController.class).init(this); use(ConnectedDeviceGroupController.class).init(this); Loading @@ -81,9 +84,15 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { use(SlicePreferenceController.class).setSliceUri(nearbyEnabled ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri)) : null); use(DiscoverableFooterPreferenceController.class).setAlwaysDiscoverable( TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName) || TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName)); use(DiscoverableFooterPreferenceController.class) .setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action)); } @VisibleForTesting boolean isAlwaysDiscoverable(String callingAppPackageName, String action) { return TextUtils.equals(SLICE_ACTION, action) ? false : TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName) || TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName); } /** Loading tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -54,16 +54,24 @@ public class ConnectedDeviceDashboardFragmentTest { private static final String KEY_DISCOVERABLE_FOOTER = "discoverable_footer"; private static final String KEY_SEE_ALL = "previously_connected_devices_see_all"; private static final String KEY_ADD_BT_DEVICES = "add_bt_devices"; private static final String SETTINGS_PACKAGE_NAME = "com.android.settings"; private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE"; private static final String TEST_APP_NAME = "com.testapp.settings"; private static final String TEST_ACTION = "com.testapp.settings.ACTION_START"; @Mock private PackageManager mPackageManager; private Context mContext; private ConnectedDeviceDashboardFragment mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mFragment = new ConnectedDeviceDashboardFragment(); doReturn(mPackageManager).when(mContext).getPackageManager(); doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); } Loading @@ -87,6 +95,26 @@ public class ConnectedDeviceDashboardFragmentTest { KEY_NEARBY_DEVICES, KEY_DISCOVERABLE_FOOTER, KEY_SEE_ALL); } @Test public void isAlwaysDiscoverable_callingAppIsNotFromSystemApp_returnsFalse() { assertThat(mFragment.isAlwaysDiscoverable(TEST_APP_NAME, TEST_ACTION)).isFalse(); } @Test public void isAlwaysDiscoverable_callingAppIsFromSettings_returnsTrue() { assertThat(mFragment.isAlwaysDiscoverable(SETTINGS_PACKAGE_NAME, TEST_ACTION)).isTrue(); } @Test public void isAlwaysDiscoverable_callingAppIsFromSystemUI_returnsTrue() { assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, TEST_ACTION)).isTrue(); } @Test public void isAlwaysDiscoverable_actionIsFromSlice_returnsFalse() { assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, SLICE_ACTION)).isFalse(); } @Test public void getPreferenceControllers_containSlicePrefController() { final List<BasePreferenceController> controllers = Loading Loading
src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +13 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { private static final String SETTINGS_PACKAGE_NAME = "com.android.settings"; private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE"; @VisibleForTesting static final String KEY_CONNECTED_DEVICES = "connected_device_list"; Loading Loading @@ -72,8 +73,10 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true); String callingAppPackageName = PasswordUtils.getCallingAppPackageName( getActivity().getActivityToken()); String action = getIntent() != null ? getIntent().getAction() : ""; if (DEBUG) { Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName); Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName + ", action : " + action); } use(AvailableMediaDeviceGroupController.class).init(this); use(ConnectedDeviceGroupController.class).init(this); Loading @@ -81,9 +84,15 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { use(SlicePreferenceController.class).setSliceUri(nearbyEnabled ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri)) : null); use(DiscoverableFooterPreferenceController.class).setAlwaysDiscoverable( TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName) || TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName)); use(DiscoverableFooterPreferenceController.class) .setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action)); } @VisibleForTesting boolean isAlwaysDiscoverable(String callingAppPackageName, String action) { return TextUtils.equals(SLICE_ACTION, action) ? false : TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName) || TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName); } /** Loading
tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -54,16 +54,24 @@ public class ConnectedDeviceDashboardFragmentTest { private static final String KEY_DISCOVERABLE_FOOTER = "discoverable_footer"; private static final String KEY_SEE_ALL = "previously_connected_devices_see_all"; private static final String KEY_ADD_BT_DEVICES = "add_bt_devices"; private static final String SETTINGS_PACKAGE_NAME = "com.android.settings"; private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE"; private static final String TEST_APP_NAME = "com.testapp.settings"; private static final String TEST_ACTION = "com.testapp.settings.ACTION_START"; @Mock private PackageManager mPackageManager; private Context mContext; private ConnectedDeviceDashboardFragment mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mFragment = new ConnectedDeviceDashboardFragment(); doReturn(mPackageManager).when(mContext).getPackageManager(); doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); } Loading @@ -87,6 +95,26 @@ public class ConnectedDeviceDashboardFragmentTest { KEY_NEARBY_DEVICES, KEY_DISCOVERABLE_FOOTER, KEY_SEE_ALL); } @Test public void isAlwaysDiscoverable_callingAppIsNotFromSystemApp_returnsFalse() { assertThat(mFragment.isAlwaysDiscoverable(TEST_APP_NAME, TEST_ACTION)).isFalse(); } @Test public void isAlwaysDiscoverable_callingAppIsFromSettings_returnsTrue() { assertThat(mFragment.isAlwaysDiscoverable(SETTINGS_PACKAGE_NAME, TEST_ACTION)).isTrue(); } @Test public void isAlwaysDiscoverable_callingAppIsFromSystemUI_returnsTrue() { assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, TEST_ACTION)).isTrue(); } @Test public void isAlwaysDiscoverable_actionIsFromSlice_returnsFalse() { assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, SLICE_ACTION)).isFalse(); } @Test public void getPreferenceControllers_containSlicePrefController() { final List<BasePreferenceController> controllers = Loading