Merge "Skip Wi-Fi hotspot in Settings Widgets" into udc-dev am: 47d3cfe635
am: 91737c0b3b
am: d19f4f85fd
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23517077 Change-Id: I748f8989347cc703c941e6bb41008f22e70d7627 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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(info).hasSize(0);
|
||||
assertThat(mController.queryShortcuts()).hasSize(0);
|
||||
}
|
||||
|
||||
private void setupOneHandedModeActivityInfo() {
|
||||
final ResolveInfo ri = new ResolveInfo();
|
||||
@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(mController.queryShortcuts()).hasSize(0);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
|
Reference in New Issue
Block a user