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

Commit ea5b55ca authored by Jason Chang's avatar Jason Chang Committed by Android (Google) Code Review
Browse files

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

parents a46d6dce 24782cf8
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));
    }
}