Loading src/com/android/settings/shortcut/CreateShortcutPreferenceController.java +13 −0 Original line number Diff line number Diff line Loading @@ -46,10 +46,12 @@ import androidx.preference.PreferenceGroup; import com.android.settings.R; import com.android.settings.Settings; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.Settings.WifiTetherSettingsActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.core.BasePreferenceController; import com.android.settings.gestures.OneHandedSettingsUtils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wifi.WifiUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; Loading Loading @@ -192,6 +194,12 @@ public class CreateShortcutPreferenceController extends BasePreferenceController continue; } } if (info.activityInfo.name.endsWith(WifiTetherSettingsActivity.class.getSimpleName())) { if (!canShowWifiHotspot()) { Log.d(TAG, "Skipping Wi-Fi hotspot settings:" + info.activityInfo); continue; } } if (!info.activityInfo.applicationInfo.isSystemApp()) { Log.d(TAG, "Skipping non-system app: " + info.activityInfo); continue; Loading @@ -202,6 +210,11 @@ public class CreateShortcutPreferenceController extends BasePreferenceController return shortcuts; } @VisibleForTesting boolean canShowWifiHotspot() { return WifiUtils.canShowWifiHotspot(mContext); } private void logCreateShortcut(ResolveInfo info) { if (info == null || info.activityInfo == null) { return; Loading tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java +23 −11 Original line number Diff line number Diff line Loading @@ -84,7 +84,7 @@ public class CreateShortcutPreferenceControllerTest { mShadowConnectivityManager = ShadowConnectivityManager.getShadow(); mShadowConnectivityManager.setTetheringSupported(true); mController = new CreateShortcutPreferenceController(mContext, "key"); mController = spy(new CreateShortcutPreferenceController(mContext, "key")); mController.setActivity(mHost); } Loading Loading @@ -159,27 +159,39 @@ public class CreateShortcutPreferenceControllerTest { @Test public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() { SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true"); setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName()); setupOneHandedModeActivityInfo(); final List<ResolveInfo> info = mController.queryShortcuts(); assertThat(info).hasSize(1); assertThat(mController.queryShortcuts()).hasSize(1); } @Test public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() { SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false"); setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName()); setupOneHandedModeActivityInfo(); final List<ResolveInfo> info = mController.queryShortcuts(); assertThat(mController.queryShortcuts()).hasSize(0); } @Test public void queryShortcuts_configShowWifiHotspot_ShouldEnableShortcuts() { when(mController.canShowWifiHotspot()).thenReturn(true); setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName()); assertThat(mController.queryShortcuts()).hasSize(1); } @Test public void queryShortcuts_configNotShowWifiHotspot_ShouldDisableShortcuts() { when(mController.canShowWifiHotspot()).thenReturn(false); setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName()); assertThat(info).hasSize(0); assertThat(mController.queryShortcuts()).hasSize(0); } private void setupOneHandedModeActivityInfo() { final ResolveInfo ri = new ResolveInfo(); private void setupActivityInfo(String name) { ResolveInfo ri = new ResolveInfo(); ri.activityInfo = new ActivityInfo(); ri.activityInfo.name = Settings.OneHandedSettingsActivity.class.getSimpleName(); ri.activityInfo.name = name; ri.activityInfo.applicationInfo = new ApplicationInfo(); ri.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM; Loading Loading
src/com/android/settings/shortcut/CreateShortcutPreferenceController.java +13 −0 Original line number Diff line number Diff line Loading @@ -46,10 +46,12 @@ import androidx.preference.PreferenceGroup; import com.android.settings.R; import com.android.settings.Settings; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.Settings.WifiTetherSettingsActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.core.BasePreferenceController; import com.android.settings.gestures.OneHandedSettingsUtils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wifi.WifiUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; Loading Loading @@ -192,6 +194,12 @@ public class CreateShortcutPreferenceController extends BasePreferenceController continue; } } if (info.activityInfo.name.endsWith(WifiTetherSettingsActivity.class.getSimpleName())) { if (!canShowWifiHotspot()) { Log.d(TAG, "Skipping Wi-Fi hotspot settings:" + info.activityInfo); continue; } } if (!info.activityInfo.applicationInfo.isSystemApp()) { Log.d(TAG, "Skipping non-system app: " + info.activityInfo); continue; Loading @@ -202,6 +210,11 @@ public class CreateShortcutPreferenceController extends BasePreferenceController return shortcuts; } @VisibleForTesting boolean canShowWifiHotspot() { return WifiUtils.canShowWifiHotspot(mContext); } private void logCreateShortcut(ResolveInfo info) { if (info == null || info.activityInfo == null) { return; Loading
tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java +23 −11 Original line number Diff line number Diff line Loading @@ -84,7 +84,7 @@ public class CreateShortcutPreferenceControllerTest { mShadowConnectivityManager = ShadowConnectivityManager.getShadow(); mShadowConnectivityManager.setTetheringSupported(true); mController = new CreateShortcutPreferenceController(mContext, "key"); mController = spy(new CreateShortcutPreferenceController(mContext, "key")); mController.setActivity(mHost); } Loading Loading @@ -159,27 +159,39 @@ public class CreateShortcutPreferenceControllerTest { @Test public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() { SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true"); setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName()); setupOneHandedModeActivityInfo(); final List<ResolveInfo> info = mController.queryShortcuts(); assertThat(info).hasSize(1); assertThat(mController.queryShortcuts()).hasSize(1); } @Test public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() { SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false"); setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName()); setupOneHandedModeActivityInfo(); final List<ResolveInfo> info = mController.queryShortcuts(); assertThat(mController.queryShortcuts()).hasSize(0); } @Test public void queryShortcuts_configShowWifiHotspot_ShouldEnableShortcuts() { when(mController.canShowWifiHotspot()).thenReturn(true); setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName()); assertThat(mController.queryShortcuts()).hasSize(1); } @Test public void queryShortcuts_configNotShowWifiHotspot_ShouldDisableShortcuts() { when(mController.canShowWifiHotspot()).thenReturn(false); setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName()); assertThat(info).hasSize(0); assertThat(mController.queryShortcuts()).hasSize(0); } private void setupOneHandedModeActivityInfo() { final ResolveInfo ri = new ResolveInfo(); private void setupActivityInfo(String name) { ResolveInfo ri = new ResolveInfo(); ri.activityInfo = new ActivityInfo(); ri.activityInfo.name = Settings.OneHandedSettingsActivity.class.getSimpleName(); ri.activityInfo.name = name; ri.activityInfo.applicationInfo = new ApplicationInfo(); ri.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM; Loading