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

Commit 47d3cfe6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip Wi-Fi hotspot in Settings Widgets" into udc-dev

parents 7cc36256 ef811795
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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;
+23 −11
Original line number Diff line number Diff line
@@ -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(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;