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

Commit 33b6032b authored by SongFerng Wang's avatar SongFerng Wang Committed by Automerger Merge Worker
Browse files

Merge "Skip Data usage in Settings Widgets" into udc-qpr-dev am: 60afc125

parents e4d9d80f 60afc125
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -45,11 +45,14 @@ import androidx.preference.PreferenceGroup;


import com.android.settings.R;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Settings;
import com.android.settings.Settings.DataUsageSummaryActivity;
import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.Settings.WifiTetherSettingsActivity;
import com.android.settings.Settings.WifiTetherSettingsActivity;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.gestures.OneHandedSettingsUtils;
import com.android.settings.gestures.OneHandedSettingsUtils;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.wifi.WifiUtils;
import com.android.settings.wifi.WifiUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -204,12 +207,24 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
                Log.d(TAG, "Skipping non-system app: " + info.activityInfo);
                Log.d(TAG, "Skipping non-system app: " + info.activityInfo);
                continue;
                continue;
            }
            }
            if (info.activityInfo.name.endsWith(DataUsageSummaryActivity.class.getSimpleName())) {
                if (!canShowDataUsage()) {
                    Log.d(TAG, "Skipping data usage settings:" + info.activityInfo);
                    continue;
                }
            }
            shortcuts.add(info);
            shortcuts.add(info);
        }
        }
        Collections.sort(shortcuts, SHORTCUT_COMPARATOR);
        Collections.sort(shortcuts, SHORTCUT_COMPARATOR);
        return shortcuts;
        return shortcuts;
    }
    }


    @VisibleForTesting
    boolean canShowDataUsage() {
        return SubscriptionUtil.isSimHardwareVisible(mContext)
                && !MobileNetworkUtils.isMobileNetworkUserRestricted(mContext);
    }

    @VisibleForTesting
    @VisibleForTesting
    boolean canShowWifiHotspot() {
    boolean canShowWifiHotspot() {
        return WifiUtils.canShowWifiHotspot(mContext);
        return WifiUtils.canShowWifiHotspot(mContext);
+71 −0
Original line number Original line Diff line number Diff line
@@ -36,8 +36,11 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.content.pm.ShortcutManager;
import android.content.res.Resources;
import android.os.SystemProperties;
import android.os.SystemProperties;
import android.os.UserManager;


import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Settings;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;


@@ -69,6 +72,10 @@ public class CreateShortcutPreferenceControllerTest {
    private ShortcutManager mShortcutManager;
    private ShortcutManager mShortcutManager;
    @Mock
    @Mock
    private Activity mHost;
    private Activity mHost;
    @Mock
    private Resources mResources;
    @Mock
    private UserManager mUserManager;


    private Context mContext;
    private Context mContext;
    private ShadowConnectivityManager mShadowConnectivityManager;
    private ShadowConnectivityManager mShadowConnectivityManager;
@@ -188,6 +195,70 @@ public class CreateShortcutPreferenceControllerTest {
        assertThat(mController.queryShortcuts()).hasSize(0);
        assertThat(mController.queryShortcuts()).hasSize(0);
    }
    }


    @Test
    public void queryShortcuts_configShowDataUsage_ShouldEnableShortcuts() {
        doReturn(true).when(mController).canShowDataUsage();
        setupActivityInfo(Settings.DataUsageSummaryActivity.class.getSimpleName());

        assertThat(mController.queryShortcuts()).hasSize(1);
    }

    @Test
    public void queryShortcuts_configNotShowDataUsage_ShouldDisableShortcuts() {
        doReturn(false).when(mController).canShowDataUsage();
        setupActivityInfo(Settings.DataUsageSummaryActivity.class.getSimpleName());

        assertThat(mController.queryShortcuts()).hasSize(0);
    }

    @Test
    public void canShowDataUsage_configShowDataUsage_returnTrue() {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mUserManager.isGuestUser()).thenReturn(false);
        when(mUserManager.hasUserRestriction(
                UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(false);

        assertThat(mController.canShowDataUsage()).isTrue();
    }

    @Test
    public void canShowDataUsage_noSimCapability_returnFalse() {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(false);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mUserManager.isGuestUser()).thenReturn(false);
        when(mUserManager.hasUserRestriction(
                UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(false);

        assertThat(mController.canShowDataUsage()).isFalse();
    }

    @Test
    public void canShowDataUsage_isGuestUser_returnFalse() {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mUserManager.isGuestUser()).thenReturn(true);
        when(mUserManager.hasUserRestriction(
                UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(false);

        assertThat(mController.canShowDataUsage()).isFalse();
    }

    @Test
    public void canShowDataUsage_isMobileNetworkUserRestricted_returnFalse() {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mUserManager.isGuestUser()).thenReturn(false);
        when(mUserManager.hasUserRestriction(
                UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(true);

        assertThat(mController.canShowDataUsage()).isFalse();
    }

    private void setupActivityInfo(String name) {
    private void setupActivityInfo(String name) {
        ResolveInfo ri = new ResolveInfo();
        ResolveInfo ri = new ResolveInfo();
        ri.activityInfo = new ActivityInfo();
        ri.activityInfo = new ActivityInfo();