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

Commit abb753d2 authored by Jason Chang's avatar Jason Chang Committed by Automerger Merge Worker
Browse files

Merge "Add checking if device should not support One-handed mode shortcut...

Merge "Add checking if device should not support One-handed mode shortcut widget" into tm-dev am: ea5b55ca

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

Change-Id: If5ab31f60c663fe8373d4d434b7ce24c4e94b3f3
parents 6bfb9f50 ea5b55ca
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -44,8 +44,10 @@ import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroup;

import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.gestures.OneHandedSettingsUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

@@ -178,6 +180,12 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
            return null;
        }
        for (ResolveInfo info : activities) {
            if (info.activityInfo.name.contains(
                    Settings.OneHandedSettingsActivity.class.getSimpleName())) {
                if (!OneHandedSettingsUtils.isSupportOneHandedMode()) {
                    continue;
                }
            }
            if (info.activityInfo.name.endsWith(TetherSettingsActivity.class.getSimpleName())) {
                if (!mConnectivityManager.isTetheringSupported()) {
                    continue;
+35 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.os.SystemProperties;

import com.android.settings.Settings;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
@@ -62,6 +63,8 @@ import java.util.List;
@Config(shadows = ShadowConnectivityManager.class)
public class CreateShortcutPreferenceControllerTest {

    static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode";

    @Mock
    private ShortcutManager mShortcutManager;
    @Mock
@@ -152,4 +155,36 @@ public class CreateShortcutPreferenceControllerTest {
        assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
        assertThat(info.get(1).activityInfo).isEqualTo(ri1.activityInfo);
    }

    @Test
    public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() {
        SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true");

        setupOneHandedModeActivityInfo();
        final List<ResolveInfo> info = mController.queryShortcuts();

        assertThat(info).hasSize(1);
    }

    @Test
    public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() {
        SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false");

        setupOneHandedModeActivityInfo();
        final List<ResolveInfo> info = mController.queryShortcuts();

        assertThat(info).hasSize(0);
    }

    private void setupOneHandedModeActivityInfo() {
        final ResolveInfo ri = new ResolveInfo();
        ri.activityInfo = new ActivityInfo();
        ri.activityInfo.name = Settings.OneHandedSettingsActivity.class.getSimpleName();
        ri.activityInfo.applicationInfo = new ApplicationInfo();
        ri.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;

        mPackageManager.setResolveInfosForIntent(
                new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
                Arrays.asList(ri));
    }
}