Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3042a14e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Hide esos setting if no app provides esos functionality" into sc-dev am: 16fa7736

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13428621

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I72fbe5e7620c0ffd7f877e342c3ed026273ef944
parents c1247a11 16fa7736
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -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);
        }
@@ -86,6 +86,9 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen
        if (!isConfigEnabled) {
            return UNSUPPORTED_ON_DEVICE;
        }
        if (!canHandleClicks()) {
            return UNSUPPORTED_ON_DEVICE;
        }
        return AVAILABLE;
    }

@@ -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);
+36 −14
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
@@ -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);
    }
}