Add checking if device should not support One-handed mode

shortcut widget

Check One-handed mode system property to enable/disable
One-handed mode shortcut widget.

Bug: 223754076

Test: manually add One-handed mode settings widget to check
Test: make RunSettingsRoboTests ROBOTEST_FILTER=
"com.android.settings.shortcut.CreateShortcutPreferenceControllerTest"

Change-Id: I5b8f8e56d49be666967d2af66258b20ee5778205
This commit is contained in:
Jason Chang
2022-03-17 20:29:18 +08:00
parent 4b6e468047
commit 24782cf8c3
2 changed files with 43 additions and 0 deletions

View File

@@ -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));
}
}