Loading src/com/android/settings/shortcut/CreateShortcutPreferenceController.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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)); } } Loading
src/com/android/settings/shortcut/CreateShortcutPreferenceController.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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)); } }