Loading src/com/android/settings/emergency/EmergencyGestureEntrypointPreferenceController.java +11 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen @Override public void updateState(Preference preference) { super.updateState(preference); final boolean canHandleClicks = !mUseCustomIntent || mIntent != null; final boolean canHandleClicks = canHandleClicks(); if (preference != null) { preference.setEnabled(canHandleClicks); } Loading @@ -86,6 +86,9 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen if (!isConfigEnabled) { return UNSUPPORTED_ON_DEVICE; } if (!canHandleClicks()) { return UNSUPPORTED_ON_DEVICE; } return AVAILABLE; } Loading Loading @@ -117,6 +120,13 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen return mUseCustomIntent; } /** * Whether or not this setting can react to user click */ private boolean canHandleClicks() { return !mUseCustomIntent || mIntent != null; } private boolean canResolveIntent(Intent intent) { final ResolveInfo resolveActivity = mContext.getPackageManager() .resolveActivity(intent, 0); Loading tests/robotests/src/com/android/settings/emergency/EmergencyGestureEntrypointPreferenceControllerTest.java +36 −14 Original line number Diff line number Diff line Loading @@ -52,14 +52,13 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { private Context mContext; private ShadowPackageManager mPackageManager; private EmergencyGestureEntrypointPreferenceController mController; private static final String PREF_KEY = "gesture_emergency_button"; @Before public void setUp() { mContext = ApplicationProvider.getApplicationContext(); mPackageManager = Shadows.shadowOf(mContext.getPackageManager()); mController = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); } @After Loading @@ -69,24 +68,18 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { @Test public void constructor_hasCustomPackageConfig_shouldSetIntent() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.packageName = TEST_PKG_NAME; info.activityInfo.name = TEST_CLASS_NAME; mPackageManager.addResolveInfoForIntent(SETTING_INTENT, info); SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); SettingsShadowResources.overrideResource( R.string.emergency_gesture_settings_package, TEST_PKG_NAME); prepareCustomIntent(); mController = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(mController.mIntent).isNotNull(); assertThat(controller.mIntent).isNotNull(); } @Test Loading @@ -94,8 +87,10 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test Loading @@ -103,7 +98,34 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.FALSE); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_noSuitableIntent_shouldReturnUnsupported() { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); // Provide override package name but don't provide resolvable intent SettingsShadowResources.overrideResource( R.string.emergency_gesture_settings_package, TEST_PKG_NAME); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); private void prepareCustomIntent() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.packageName = TEST_PKG_NAME; info.activityInfo.name = TEST_CLASS_NAME; mPackageManager.addResolveInfoForIntent(SETTING_INTENT, info); } } Loading
src/com/android/settings/emergency/EmergencyGestureEntrypointPreferenceController.java +11 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen @Override public void updateState(Preference preference) { super.updateState(preference); final boolean canHandleClicks = !mUseCustomIntent || mIntent != null; final boolean canHandleClicks = canHandleClicks(); if (preference != null) { preference.setEnabled(canHandleClicks); } Loading @@ -86,6 +86,9 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen if (!isConfigEnabled) { return UNSUPPORTED_ON_DEVICE; } if (!canHandleClicks()) { return UNSUPPORTED_ON_DEVICE; } return AVAILABLE; } Loading Loading @@ -117,6 +120,13 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen return mUseCustomIntent; } /** * Whether or not this setting can react to user click */ private boolean canHandleClicks() { return !mUseCustomIntent || mIntent != null; } private boolean canResolveIntent(Intent intent) { final ResolveInfo resolveActivity = mContext.getPackageManager() .resolveActivity(intent, 0); Loading
tests/robotests/src/com/android/settings/emergency/EmergencyGestureEntrypointPreferenceControllerTest.java +36 −14 Original line number Diff line number Diff line Loading @@ -52,14 +52,13 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { private Context mContext; private ShadowPackageManager mPackageManager; private EmergencyGestureEntrypointPreferenceController mController; private static final String PREF_KEY = "gesture_emergency_button"; @Before public void setUp() { mContext = ApplicationProvider.getApplicationContext(); mPackageManager = Shadows.shadowOf(mContext.getPackageManager()); mController = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); } @After Loading @@ -69,24 +68,18 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { @Test public void constructor_hasCustomPackageConfig_shouldSetIntent() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.packageName = TEST_PKG_NAME; info.activityInfo.name = TEST_CLASS_NAME; mPackageManager.addResolveInfoForIntent(SETTING_INTENT, info); SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); SettingsShadowResources.overrideResource( R.string.emergency_gesture_settings_package, TEST_PKG_NAME); prepareCustomIntent(); mController = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(mController.mIntent).isNotNull(); assertThat(controller.mIntent).isNotNull(); } @Test Loading @@ -94,8 +87,10 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test Loading @@ -103,7 +98,34 @@ public class EmergencyGestureEntrypointPreferenceControllerTest { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.FALSE); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_noSuitableIntent_shouldReturnUnsupported() { SettingsShadowResources.overrideResource( R.bool.config_show_emergency_gesture_settings, Boolean.TRUE); // Provide override package name but don't provide resolvable intent SettingsShadowResources.overrideResource( R.string.emergency_gesture_settings_package, TEST_PKG_NAME); EmergencyGestureEntrypointPreferenceController controller = new EmergencyGestureEntrypointPreferenceController(mContext, PREF_KEY); assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); private void prepareCustomIntent() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.packageName = TEST_PKG_NAME; info.activityInfo.name = TEST_CLASS_NAME; mPackageManager.addResolveInfoForIntent(SETTING_INTENT, info); } }