Merge "Skip Data usage in Settings Widgets" into udc-qpr-dev am: 60afc1259f
am: 33b6032bb2
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24575008 Change-Id: I192fa19976ca932cabbf744915f6e4568ca391ac Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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);
|
||||||
|
@@ -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;
|
||||||
@@ -192,6 +199,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();
|
||||||
|
Reference in New Issue
Block a user