Remove wrapper for ConnectionManager/IPackageManager
Bug: 76167422 Test: robotests Change-Id: I5f051b0ce58b97a3cfd5d4bae469463dcd6d83ac
This commit is contained in:
@@ -19,6 +19,7 @@ import android.app.AppGlobals;
|
|||||||
import android.app.AppOpsManager;
|
import android.app.AppOpsManager;
|
||||||
import android.app.AppOpsManager.PackageOps;
|
import android.app.AppOpsManager.PackageOps;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -31,7 +32,6 @@ import android.util.SparseArray;
|
|||||||
|
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -47,7 +47,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
|||||||
|
|
||||||
private static final String TAG = "AppStateAppOpsBridge";
|
private static final String TAG = "AppStateAppOpsBridge";
|
||||||
|
|
||||||
private final IPackageManagerWrapper mIPackageManager;
|
private final IPackageManager mIPackageManager;
|
||||||
private final UserManager mUserManager;
|
private final UserManager mUserManager;
|
||||||
private final List<UserHandle> mProfiles;
|
private final List<UserHandle> mProfiles;
|
||||||
private final AppOpsManager mAppOpsManager;
|
private final AppOpsManager mAppOpsManager;
|
||||||
@@ -58,12 +58,12 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
|||||||
public AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
public AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
||||||
int appOpsOpCode, String[] permissions) {
|
int appOpsOpCode, String[] permissions) {
|
||||||
this(context, appState, callback, appOpsOpCode, permissions,
|
this(context, appState, callback, appOpsOpCode, permissions,
|
||||||
new IPackageManagerWrapper(AppGlobals.getPackageManager()));
|
AppGlobals.getPackageManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
||||||
int appOpsOpCode, String[] permissions, IPackageManagerWrapper packageManager) {
|
int appOpsOpCode, String[] permissions, IPackageManager packageManager) {
|
||||||
super(appState, callback);
|
super(appState, callback);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mIPackageManager = packageManager;
|
mIPackageManager = packageManager;
|
||||||
@@ -210,9 +210,10 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
|||||||
if (entriesForProfile == null) {
|
if (entriesForProfile == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked") final List<PackageInfo> packageInfos =
|
||||||
final List<PackageInfo> packageInfos = mIPackageManager
|
mIPackageManager
|
||||||
.getPackagesHoldingPermissions(mPermissions, 0, profileId).getList();
|
.getPackagesHoldingPermissions(mPermissions, 0,
|
||||||
|
profileId).getList();
|
||||||
final int packageInfoCount = packageInfos != null ? packageInfos.size() : 0;
|
final int packageInfoCount = packageInfos != null ? packageInfos.size() : 0;
|
||||||
for (int i = 0; i < packageInfoCount; i++) {
|
for (int i = 0; i < packageInfoCount; i++) {
|
||||||
final PackageInfo packageInfo = packageInfos.get(i);
|
final PackageInfo packageInfo = packageInfos.get(i);
|
||||||
|
@@ -17,12 +17,12 @@ package com.android.settings.applications;
|
|||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,11 +32,11 @@ import com.android.settingslib.wrapper.PackageManagerWrapper;
|
|||||||
public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
||||||
|
|
||||||
private final String[] mPermissions;
|
private final String[] mPermissions;
|
||||||
private final IPackageManagerWrapper mPackageManagerService;
|
private final IPackageManager mPackageManagerService;
|
||||||
private final DevicePolicyManager mDevicePolicyManager;
|
private final DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
public AppWithAdminGrantedPermissionsCounter(Context context, String[] permissions,
|
public AppWithAdminGrantedPermissionsCounter(Context context, String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||||
DevicePolicyManager devicePolicyManager) {
|
DevicePolicyManager devicePolicyManager) {
|
||||||
super(context, packageManager);
|
super(context, packageManager);
|
||||||
mPermissions = permissions;
|
mPermissions = permissions;
|
||||||
@@ -52,7 +52,7 @@ public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
|||||||
|
|
||||||
public static boolean includeInCount(String[] permissions,
|
public static boolean includeInCount(String[] permissions,
|
||||||
DevicePolicyManager devicePolicyManager, PackageManagerWrapper packageManager,
|
DevicePolicyManager devicePolicyManager, PackageManagerWrapper packageManager,
|
||||||
IPackageManagerWrapper packageManagerService, ApplicationInfo info) {
|
IPackageManager packageManagerService, ApplicationInfo info) {
|
||||||
if (info.targetSdkVersion >= Build.VERSION_CODES.M) {
|
if (info.targetSdkVersion >= Build.VERSION_CODES.M) {
|
||||||
// The app uses run-time permissions. Check whether one or more of the permissions were
|
// The app uses run-time permissions. Check whether one or more of the permissions were
|
||||||
// granted by enterprise policy.
|
// granted by enterprise policy.
|
||||||
|
@@ -18,9 +18,9 @@ package com.android.settings.applications;
|
|||||||
|
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,11 +29,11 @@ import com.android.settingslib.wrapper.PackageManagerWrapper;
|
|||||||
*/
|
*/
|
||||||
public abstract class AppWithAdminGrantedPermissionsLister extends AppLister {
|
public abstract class AppWithAdminGrantedPermissionsLister extends AppLister {
|
||||||
private final String[] mPermissions;
|
private final String[] mPermissions;
|
||||||
private final IPackageManagerWrapper mPackageManagerService;
|
private final IPackageManager mPackageManagerService;
|
||||||
private final DevicePolicyManager mDevicePolicyManager;
|
private final DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
public AppWithAdminGrantedPermissionsLister(String[] permissions,
|
public AppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||||
DevicePolicyManager devicePolicyManager, UserManager userManager) {
|
DevicePolicyManager devicePolicyManager, UserManager userManager) {
|
||||||
super(packageManager, userManager);
|
super(packageManager, userManager);
|
||||||
mPermissions = permissions;
|
mPermissions = permissions;
|
||||||
|
@@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ComponentInfo;
|
import android.content.pm.ComponentInfo;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
@@ -27,7 +28,6 @@ import android.os.RemoteException;
|
|||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -38,12 +38,12 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
|||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final PackageManagerWrapper mPm;
|
private final PackageManagerWrapper mPm;
|
||||||
private final IPackageManagerWrapper mPms;
|
private final IPackageManager mPms;
|
||||||
private final DevicePolicyManager mDpm;
|
private final DevicePolicyManager mDpm;
|
||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
|
|
||||||
public ApplicationFeatureProviderImpl(Context context, PackageManagerWrapper pm,
|
public ApplicationFeatureProviderImpl(Context context, PackageManagerWrapper pm,
|
||||||
IPackageManagerWrapper pms, DevicePolicyManager dpm) {
|
IPackageManager pms, DevicePolicyManager dpm) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
mPm = pm;
|
mPm = pm;
|
||||||
mPms = pms;
|
mPms = pms;
|
||||||
@@ -149,7 +149,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
|||||||
|
|
||||||
CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context,
|
CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context,
|
||||||
String[] permissions, PackageManagerWrapper packageManager,
|
String[] permissions, PackageManagerWrapper packageManager,
|
||||||
IPackageManagerWrapper packageManagerService,
|
IPackageManager packageManagerService,
|
||||||
DevicePolicyManager devicePolicyManager, NumberOfAppsCallback callback) {
|
DevicePolicyManager devicePolicyManager, NumberOfAppsCallback callback) {
|
||||||
super(context, permissions, packageManager, packageManagerService, devicePolicyManager);
|
super(context, permissions, packageManager, packageManagerService, devicePolicyManager);
|
||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
@@ -181,7 +181,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
|||||||
private ListOfAppsCallback mCallback;
|
private ListOfAppsCallback mCallback;
|
||||||
|
|
||||||
CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions,
|
CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||||
DevicePolicyManager devicePolicyManager, UserManager userManager,
|
DevicePolicyManager devicePolicyManager, UserManager userManager,
|
||||||
ListOfAppsCallback callback) {
|
ListOfAppsCallback callback) {
|
||||||
super(permissions, packageManager, packageManagerService, devicePolicyManager,
|
super(permissions, packageManager, packageManagerService, devicePolicyManager,
|
||||||
|
@@ -23,6 +23,7 @@ import android.content.Intent;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -32,7 +33,6 @@ import android.view.View;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.vpn2.VpnUtils;
|
import com.android.settings.vpn2.VpnUtils;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -44,13 +44,13 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
|||||||
private final DevicePolicyManager mDpm;
|
private final DevicePolicyManager mDpm;
|
||||||
private final PackageManagerWrapper mPm;
|
private final PackageManagerWrapper mPm;
|
||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
private final ConnectivityManagerWrapper mCm;
|
private final ConnectivityManager mCm;
|
||||||
private final Resources mResources;
|
private final Resources mResources;
|
||||||
|
|
||||||
private static final int MY_USER_ID = UserHandle.myUserId();
|
private static final int MY_USER_ID = UserHandle.myUserId();
|
||||||
|
|
||||||
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
||||||
PackageManagerWrapper pm, UserManager um, ConnectivityManagerWrapper cm,
|
PackageManagerWrapper pm, UserManager um, ConnectivityManager cm,
|
||||||
Resources resources) {
|
Resources resources) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
mDpm = dpm;
|
mDpm = dpm;
|
||||||
|
@@ -51,8 +51,6 @@ import com.android.settings.slices.SlicesFeatureProvider;
|
|||||||
import com.android.settings.slices.SlicesFeatureProviderImpl;
|
import com.android.settings.slices.SlicesFeatureProviderImpl;
|
||||||
import com.android.settings.users.UserFeatureProvider;
|
import com.android.settings.users.UserFeatureProvider;
|
||||||
import com.android.settings.users.UserFeatureProviderImpl;
|
import com.android.settings.users.UserFeatureProviderImpl;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -112,7 +110,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
if (mApplicationFeatureProvider == null) {
|
if (mApplicationFeatureProvider == null) {
|
||||||
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
||||||
new PackageManagerWrapper(context.getPackageManager()),
|
new PackageManagerWrapper(context.getPackageManager()),
|
||||||
new IPackageManagerWrapper(AppGlobals.getPackageManager()),
|
AppGlobals.getPackageManager(),
|
||||||
(DevicePolicyManager) context
|
(DevicePolicyManager) context
|
||||||
.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
||||||
}
|
}
|
||||||
@@ -134,8 +132,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
|
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
|
||||||
new PackageManagerWrapper(context.getPackageManager()),
|
new PackageManagerWrapper(context.getPackageManager()),
|
||||||
UserManager.get(context),
|
UserManager.get(context),
|
||||||
new ConnectivityManagerWrapper((ConnectivityManager) context
|
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
|
||||||
.getSystemService(Context.CONNECTIVITY_SERVICE)),
|
|
||||||
context.getResources());
|
context.getResources());
|
||||||
}
|
}
|
||||||
return mEnterprisePrivacyFeatureProvider;
|
return mEnterprisePrivacyFeatureProvider;
|
||||||
|
@@ -27,7 +27,6 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.android.internal.net.LegacyVpnInfo;
|
import com.android.internal.net.LegacyVpnInfo;
|
||||||
import com.android.internal.net.VpnConfig;
|
import com.android.internal.net.VpnConfig;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility functions for vpn.
|
* Utility functions for vpn.
|
||||||
@@ -89,7 +88,7 @@ public class VpnUtils {
|
|||||||
ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
|
ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAlwaysOnVpnSet(ConnectivityManagerWrapper cm, final int userId) {
|
public static boolean isAlwaysOnVpnSet(ConnectivityManager cm, final int userId) {
|
||||||
return cm.getAlwaysOnVpnPackageForUser(userId) != null;
|
return cm.getAlwaysOnVpnPackageForUser(userId) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,11 +34,10 @@ import android.widget.Toast;
|
|||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.widget.SwitchWidgetController;
|
import com.android.settings.widget.SwitchWidgetController;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
import com.android.settingslib.WirelessUtils;
|
import com.android.settingslib.WirelessUtils;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene
|
|||||||
|
|
||||||
private final SwitchWidgetController mSwitchWidget;
|
private final SwitchWidgetController mSwitchWidget;
|
||||||
private final WifiManager mWifiManager;
|
private final WifiManager mWifiManager;
|
||||||
private final ConnectivityManagerWrapper mConnectivityManager;
|
private final ConnectivityManager mConnectivityManager;
|
||||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -81,20 +80,20 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene
|
|||||||
|
|
||||||
public WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
public WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
||||||
MetricsFeatureProvider metricsFeatureProvider) {
|
MetricsFeatureProvider metricsFeatureProvider) {
|
||||||
this(context, switchWidget, metricsFeatureProvider, new ConnectivityManagerWrapper(
|
this(context, switchWidget, metricsFeatureProvider,
|
||||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)));
|
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
||||||
MetricsFeatureProvider metricsFeatureProvider,
|
MetricsFeatureProvider metricsFeatureProvider,
|
||||||
ConnectivityManagerWrapper connectivityManagerWrapper) {
|
ConnectivityManager connectivityManager) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mSwitchWidget = switchWidget;
|
mSwitchWidget = switchWidget;
|
||||||
mSwitchWidget.setListener(this);
|
mSwitchWidget.setListener(this);
|
||||||
mMetricsFeatureProvider = metricsFeatureProvider;
|
mMetricsFeatureProvider = metricsFeatureProvider;
|
||||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||||
mConnectivityManager = connectivityManagerWrapper;
|
mConnectivityManager = connectivityManager;
|
||||||
|
|
||||||
mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
||||||
// The order matters! We really should not depend on this. :(
|
// The order matters! We really should not depend on this. :(
|
||||||
|
@@ -64,7 +64,6 @@ import com.android.settings.search.SearchIndexableRaw;
|
|||||||
import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
|
import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
|
||||||
import com.android.settings.widget.SwitchBarController;
|
import com.android.settings.widget.SwitchBarController;
|
||||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
|
import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
|
||||||
@@ -852,9 +851,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
pref.getAccessPoint().saveWifiState(pref.getExtras());
|
pref.getAccessPoint().saveWifiState(pref.getExtras());
|
||||||
if (mCaptivePortalNetworkCallback != null
|
if (mCaptivePortalNetworkCallback != null
|
||||||
&& mCaptivePortalNetworkCallback.isCaptivePortal()) {
|
&& mCaptivePortalNetworkCallback.isCaptivePortal()) {
|
||||||
ConnectivityManagerWrapper connectivityManagerWrapper =
|
mConnectivityManager.startCaptivePortalApp(
|
||||||
new ConnectivityManagerWrapper(mConnectivityManager);
|
|
||||||
connectivityManagerWrapper.startCaptivePortalApp(
|
|
||||||
mCaptivePortalNetworkCallback.getNetwork());
|
mCaptivePortalNetworkCallback.getNetwork());
|
||||||
} else {
|
} else {
|
||||||
launchNetworkDetailsFragment(pref);
|
launchNetworkDetailsFragment(pref);
|
||||||
|
@@ -48,6 +48,7 @@ import android.text.TextUtils;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -60,7 +61,6 @@ import com.android.settings.wifi.WifiDetailPreference;
|
|||||||
import com.android.settings.wifi.WifiDialog;
|
import com.android.settings.wifi.WifiDialog;
|
||||||
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
||||||
import com.android.settings.wifi.WifiUtils;
|
import com.android.settings.wifi.WifiUtils;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
@@ -68,6 +68,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
|||||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
import com.android.settingslib.core.lifecycle.events.OnPause;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
|
|
||||||
import java.net.Inet4Address;
|
import java.net.Inet4Address;
|
||||||
import java.net.Inet6Address;
|
import java.net.Inet6Address;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
@@ -114,7 +115,6 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
static final String KEY_IPV6_ADDRESSES_PREF = "ipv6_addresses";
|
static final String KEY_IPV6_ADDRESSES_PREF = "ipv6_addresses";
|
||||||
|
|
||||||
private AccessPoint mAccessPoint;
|
private AccessPoint mAccessPoint;
|
||||||
private final ConnectivityManagerWrapper mConnectivityManagerWrapper;
|
|
||||||
private final ConnectivityManager mConnectivityManager;
|
private final ConnectivityManager mConnectivityManager;
|
||||||
private final Fragment mFragment;
|
private final Fragment mFragment;
|
||||||
private final Handler mHandler;
|
private final Handler mHandler;
|
||||||
@@ -152,10 +152,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION:
|
case WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION:
|
||||||
if (!intent.getBooleanExtra(WifiManager.EXTRA_MULTIPLE_NETWORKS_CHANGED,
|
if (!intent.getBooleanExtra(WifiManager.EXTRA_MULTIPLE_NETWORKS_CHANGED,
|
||||||
false /* defaultValue */)) {
|
false /* defaultValue */)) {
|
||||||
// only one network changed
|
// only one network changed
|
||||||
WifiConfiguration wifiConfiguration = intent
|
WifiConfiguration wifiConfiguration = intent
|
||||||
.getParcelableExtra(WifiManager.EXTRA_WIFI_CONFIGURATION);
|
.getParcelableExtra(WifiManager.EXTRA_WIFI_CONFIGURATION);
|
||||||
if (mAccessPoint.matches(wifiConfiguration)) {
|
if (mAccessPoint.matches(wifiConfiguration)) {
|
||||||
mWifiConfig = wifiConfiguration;
|
mWifiConfig = wifiConfiguration;
|
||||||
}
|
}
|
||||||
@@ -215,7 +215,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
public static WifiDetailPreferenceController newInstance(
|
public static WifiDetailPreferenceController newInstance(
|
||||||
AccessPoint accessPoint,
|
AccessPoint accessPoint,
|
||||||
ConnectivityManagerWrapper connectivityManagerWrapper,
|
ConnectivityManager connectivityManager,
|
||||||
Context context,
|
Context context,
|
||||||
Fragment fragment,
|
Fragment fragment,
|
||||||
Handler handler,
|
Handler handler,
|
||||||
@@ -223,14 +223,14 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
WifiManager wifiManager,
|
WifiManager wifiManager,
|
||||||
MetricsFeatureProvider metricsFeatureProvider) {
|
MetricsFeatureProvider metricsFeatureProvider) {
|
||||||
return new WifiDetailPreferenceController(
|
return new WifiDetailPreferenceController(
|
||||||
accessPoint, connectivityManagerWrapper, context, fragment, handler, lifecycle,
|
accessPoint, connectivityManager, context, fragment, handler, lifecycle,
|
||||||
wifiManager, metricsFeatureProvider, new IconInjector(context));
|
wifiManager, metricsFeatureProvider, new IconInjector(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
/* package */ WifiDetailPreferenceController(
|
/* package */ WifiDetailPreferenceController(
|
||||||
AccessPoint accessPoint,
|
AccessPoint accessPoint,
|
||||||
ConnectivityManagerWrapper connectivityManagerWrapper,
|
ConnectivityManager connectivityManager,
|
||||||
Context context,
|
Context context,
|
||||||
Fragment fragment,
|
Fragment fragment,
|
||||||
Handler handler,
|
Handler handler,
|
||||||
@@ -241,8 +241,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
mAccessPoint = accessPoint;
|
mAccessPoint = accessPoint;
|
||||||
mConnectivityManager = connectivityManagerWrapper.getConnectivityManager();
|
mConnectivityManager = connectivityManager;
|
||||||
mConnectivityManagerWrapper = connectivityManagerWrapper;
|
|
||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
mHandler = handler;
|
mHandler = handler;
|
||||||
mSignalStr = context.getResources().getStringArray(R.array.wifi_signal);
|
mSignalStr = context.getResources().getStringArray(R.array.wifi_signal);
|
||||||
@@ -326,7 +325,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
|
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
|
||||||
updateInfo();
|
updateInfo();
|
||||||
mContext.registerReceiver(mReceiver, mFilter);
|
mContext.registerReceiver(mReceiver, mFilter);
|
||||||
mConnectivityManagerWrapper.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
|
mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
|
||||||
mHandler);
|
mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -486,7 +485,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
private static String ipv4PrefixLengthToSubnetMask(int prefixLength) {
|
private static String ipv4PrefixLengthToSubnetMask(int prefixLength) {
|
||||||
try {
|
try {
|
||||||
InetAddress all = InetAddress.getByAddress(
|
InetAddress all = InetAddress.getByAddress(
|
||||||
new byte[]{(byte) 255, (byte) 255, (byte) 255, (byte) 255});
|
new byte[] {(byte) 255, (byte) 255, (byte) 255, (byte) 255});
|
||||||
return NetworkUtils.getNetworkPart(all, prefixLength).getHostAddress();
|
return NetworkUtils.getNetworkPart(all, prefixLength).getHostAddress();
|
||||||
} catch (UnknownHostException e) {
|
} catch (UnknownHostException e) {
|
||||||
return null;
|
return null;
|
||||||
@@ -538,7 +537,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
private void signIntoNetwork() {
|
private void signIntoNetwork() {
|
||||||
mMetricsFeatureProvider.action(
|
mMetricsFeatureProvider.action(
|
||||||
mFragment.getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
mFragment.getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
||||||
mConnectivityManagerWrapper.startCaptivePortalApp(mNetwork);
|
mConnectivityManager.startCaptivePortalApp(mNetwork);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -20,13 +20,10 @@ import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkPolicyManager;
|
|
||||||
import android.net.wifi.WifiConfiguration;
|
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.support.v7.preference.DropDownPreference;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -37,13 +34,11 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.wifi.WifiConfigUiBase;
|
import com.android.settings.wifi.WifiConfigUiBase;
|
||||||
import com.android.settings.wifi.WifiDialog;
|
import com.android.settings.wifi.WifiDialog;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,10 +121,10 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||||
mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
|
mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
|
||||||
mAccessPoint,
|
mAccessPoint,
|
||||||
new ConnectivityManagerWrapper(cm),
|
cm,
|
||||||
context,
|
context,
|
||||||
this,
|
this,
|
||||||
new Handler(Looper.getMainLooper()), // UI thread.
|
new Handler(Looper.getMainLooper()), // UI thread.
|
||||||
|
@@ -1,98 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2017 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wrapper;
|
|
||||||
|
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.ConnectivityManager.NetworkCallback;
|
|
||||||
import android.net.Network;
|
|
||||||
import android.net.NetworkRequest;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.net.ProxyInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class replicates a subset of the android.net.ConnectivityManager (CM). The class
|
|
||||||
* exists so that we can use a thin wrapper around the CM in production code and a mock in tests.
|
|
||||||
* We cannot directly mock or shadow the CM, because some of the methods we rely on are marked as
|
|
||||||
* hidden and are thus invisible to Robolectric.
|
|
||||||
*/
|
|
||||||
public class ConnectivityManagerWrapper {
|
|
||||||
|
|
||||||
private final ConnectivityManager mCm;
|
|
||||||
|
|
||||||
public ConnectivityManagerWrapper(ConnectivityManager cm) {
|
|
||||||
mCm = cm;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the real ConnectivityManager object wrapped by this wrapper.
|
|
||||||
*/
|
|
||||||
public ConnectivityManager getConnectivityManager() {
|
|
||||||
return mCm;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code ConnectivityManager.getAlwaysOnVpnPackageForUser()}.
|
|
||||||
*
|
|
||||||
* @see android.net.ConnectivityManager#getAlwaysOnVpnPackageForUser
|
|
||||||
*/
|
|
||||||
public String getAlwaysOnVpnPackageForUser(int userId) {
|
|
||||||
return mCm.getAlwaysOnVpnPackageForUser(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code ConnectivityManager.getGlobalProxy()}.
|
|
||||||
*
|
|
||||||
* @see android.net.ConnectivityManager#getGlobalProxy
|
|
||||||
*/
|
|
||||||
public ProxyInfo getGlobalProxy() {
|
|
||||||
return mCm.getGlobalProxy();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code ConnectivityManager.registerNetworkCallback()}.
|
|
||||||
*
|
|
||||||
* This is part of the ConnectivityManager public API in SDK 26 or above, but is not yet visible
|
|
||||||
* to the robolectric tests, which currently build with SDK 23.
|
|
||||||
* TODO: delete this once the robolectric tests build with SDK 26 or above.
|
|
||||||
*
|
|
||||||
* @see android.net.ConnectivityManager#registerNetworkCallback(NetworkRequest,NetworkCallback,Handler)
|
|
||||||
*/
|
|
||||||
public void registerNetworkCallback(NetworkRequest request, NetworkCallback callback,
|
|
||||||
Handler handler) {
|
|
||||||
mCm.registerNetworkCallback(request, callback, handler);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code ConnectivityManager.startCaptivePortalApp()}.
|
|
||||||
*
|
|
||||||
* This is part of the ConnectivityManager public API in SDK 26 or above, but is not yet visible
|
|
||||||
* to the robolectric tests, which currently build with SDK 23.
|
|
||||||
* TODO: delete this once the robolectric tests build with SDK 26 or above.
|
|
||||||
*
|
|
||||||
* @see android.net.ConnectivityManager#startCaptivePortalApp(Network)
|
|
||||||
*/
|
|
||||||
public void startCaptivePortalApp(Network network) {
|
|
||||||
mCm.startCaptivePortalApp(network);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@link ConnectivityManager#stopTethering}
|
|
||||||
*/
|
|
||||||
public void stopTethering(int type) {
|
|
||||||
mCm.stopTethering(type);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,97 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2017 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wrapper;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.IPackageManager;
|
|
||||||
import android.content.pm.PackageInfo;
|
|
||||||
import android.content.pm.ParceledListSlice;
|
|
||||||
import android.content.pm.ResolveInfo;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class replicates a subset of the android.content.pm.IPackageManager (PMS). The class
|
|
||||||
* exists so that we can use a thin wrapper around the PMS in production code and a mock in tests.
|
|
||||||
* We cannot directly mock or shadow the PMS, because some of the methods we rely on are newer than
|
|
||||||
* the API version supported by Robolectric.
|
|
||||||
*/
|
|
||||||
public class IPackageManagerWrapper {
|
|
||||||
|
|
||||||
private final IPackageManager mPms;
|
|
||||||
|
|
||||||
public IPackageManagerWrapper(IPackageManager pms) {
|
|
||||||
mPms = pms;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.checkUidPermission()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#checkUidPermission
|
|
||||||
*/
|
|
||||||
public int checkUidPermission(String permName, int uid) throws RemoteException {
|
|
||||||
return mPms.checkUidPermission(permName, uid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.findPersistentPreferredActivity()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#findPersistentPreferredActivity
|
|
||||||
*/
|
|
||||||
public ResolveInfo findPersistentPreferredActivity(Intent intent, int userId)
|
|
||||||
throws RemoteException {
|
|
||||||
return mPms.findPersistentPreferredActivity(intent, userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.getPackageInfo()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#getPackageInfo
|
|
||||||
*/
|
|
||||||
public PackageInfo getPackageInfo(String packageName, int flags, int userId)
|
|
||||||
throws RemoteException {
|
|
||||||
return mPms.getPackageInfo(packageName, flags, userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.getAppOpPermissionPackages()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#getAppOpPermissionPackages
|
|
||||||
*/
|
|
||||||
public String[] getAppOpPermissionPackages(String permissionName) throws RemoteException {
|
|
||||||
return mPms.getAppOpPermissionPackages(permissionName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.isPackageAvailable()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#isPackageAvailable
|
|
||||||
*/
|
|
||||||
public boolean isPackageAvailable(String packageName, int userId) throws RemoteException {
|
|
||||||
return mPms.isPackageAvailable(packageName, userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code IPackageManager.getPackagesHoldingPermissions()}.
|
|
||||||
*
|
|
||||||
* @see android.content.pm.IPackageManager#getPackagesHoldingPermissions
|
|
||||||
*/
|
|
||||||
public ParceledListSlice<PackageInfo> getPackagesHoldingPermissions(
|
|
||||||
String[] permissions, int flags, int userId) throws RemoteException {
|
|
||||||
return mPms.getPackagesHoldingPermissions(permissions, flags, userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -23,11 +23,11 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.AppOpsManager;
|
import android.app.AppOpsManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -41,7 +41,7 @@ public final class AppStateAppOpsBridgeTest {
|
|||||||
|
|
||||||
@Mock private Context mContext;
|
@Mock private Context mContext;
|
||||||
@Mock private UserManager mUserManager;
|
@Mock private UserManager mUserManager;
|
||||||
@Mock private IPackageManagerWrapper mPackageManagerService;
|
@Mock private IPackageManager mPackageManagerService;
|
||||||
@Mock private AppOpsManager mAppOpsManager;
|
@Mock private AppOpsManager mAppOpsManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -37,7 +38,6 @@ import android.os.UserHandle;
|
|||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -81,7 +81,7 @@ public final class AppWithAdminGrantedPermissionsCounterTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private PackageManagerWrapper mPackageManager;
|
private PackageManagerWrapper mPackageManager;
|
||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManager mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
|
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -34,7 +35,6 @@ import android.os.UserHandle;
|
|||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -78,7 +78,7 @@ public final class AppWithAdminGrantedPermissionsListerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private PackageManagerWrapper mPackageManager;
|
private PackageManagerWrapper mPackageManager;
|
||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManager mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.IPackageManager;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
@@ -33,7 +34,6 @@ import android.os.UserManager;
|
|||||||
|
|
||||||
import com.android.settings.testutils.ApplicationTestUtils;
|
import com.android.settings.testutils.ApplicationTestUtils;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -72,7 +72,7 @@ public final class ApplicationFeatureProviderImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private PackageManagerWrapper mPackageManager;
|
private PackageManagerWrapper mPackageManager;
|
||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManager mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
|
@@ -28,6 +28,7 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
import android.net.ProxyInfo;
|
import android.net.ProxyInfo;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
@@ -36,7 +37,6 @@ import android.text.SpannableStringBuilder;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -72,7 +72,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
private @Mock PackageManagerWrapper mPackageManagerWrapper;
|
private @Mock PackageManagerWrapper mPackageManagerWrapper;
|
||||||
private @Mock PackageManager mPackageManager;
|
private @Mock PackageManager mPackageManager;
|
||||||
private @Mock UserManager mUserManager;
|
private @Mock UserManager mUserManager;
|
||||||
private @Mock ConnectivityManagerWrapper mConnectivityManger;
|
private @Mock ConnectivityManager mConnectivityManger;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
|
|
||||||
private EnterprisePrivacyFeatureProvider mProvider;
|
private EnterprisePrivacyFeatureProvider mProvider;
|
||||||
|
@@ -20,8 +20,9 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -30,7 +31,7 @@ import org.junit.runner.RunWith;
|
|||||||
public final class VpnUtilsTest {
|
public final class VpnUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
public void testIsAlwaysOnVpnSet() {
|
public void testIsAlwaysOnVpnSet() {
|
||||||
final ConnectivityManagerWrapper cm = mock(ConnectivityManagerWrapper.class);
|
final ConnectivityManager cm = mock(ConnectivityManager.class);
|
||||||
when(cm.getAlwaysOnVpnPackageForUser(0)).thenReturn("com.example.vpn");
|
when(cm.getAlwaysOnVpnPackageForUser(0)).thenReturn("com.example.vpn");
|
||||||
assertThat(VpnUtils.isAlwaysOnVpnSet(cm, 0)).isTrue();
|
assertThat(VpnUtils.isAlwaysOnVpnSet(cm, 0)).isTrue();
|
||||||
|
|
||||||
|
@@ -26,7 +26,6 @@ import android.net.wifi.WifiManager;
|
|||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.widget.SwitchWidgetController;
|
import com.android.settings.widget.SwitchWidgetController;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -43,7 +42,7 @@ public class WifiEnablerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private WifiManager mWifiManager;
|
private WifiManager mWifiManager;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManagerWrapper mConnectivityManager;
|
private ConnectivityManager mConnectivityManager;
|
||||||
|
|
||||||
private WifiEnabler mEnabler;
|
private WifiEnabler mEnabler;
|
||||||
|
|
||||||
@@ -52,7 +51,7 @@ public class WifiEnablerTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
|
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
|
||||||
mEnabler = new WifiEnabler(mContext, mock(SwitchWidgetController.class),
|
mEnabler = new WifiEnabler(mContext, mock(SwitchWidgetController.class),
|
||||||
mock(MetricsFeatureProvider.class), mConnectivityManager);
|
mock(MetricsFeatureProvider.class), mConnectivityManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -51,7 +51,6 @@ import android.net.wifi.WifiInfo;
|
|||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.support.v7.preference.Preference;
|
|
||||||
import android.support.v7.preference.PreferenceCategory;
|
import android.support.v7.preference.PreferenceCategory;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -70,7 +69,6 @@ import com.android.settings.widget.ActionButtonPreference;
|
|||||||
import com.android.settings.widget.ActionButtonPreferenceTest;
|
import com.android.settings.widget.ActionButtonPreferenceTest;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settings.wifi.WifiDetailPreference;
|
import com.android.settings.wifi.WifiDetailPreference;
|
||||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
@@ -91,7 +89,6 @@ import java.net.Inet4Address;
|
|||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@@ -119,8 +116,6 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager mockConnectivityManager;
|
private ConnectivityManager mockConnectivityManager;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManagerWrapper mockConnectivityManagerWrapper;
|
|
||||||
@Mock
|
|
||||||
private Network mockNetwork;
|
private Network mockNetwork;
|
||||||
@Mock
|
@Mock
|
||||||
private NetworkInfo mockNetworkInfo;
|
private NetworkInfo mockNetworkInfo;
|
||||||
@@ -173,8 +168,6 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
private ArgumentCaptor<NetworkCallback> mCallbackCaptor;
|
private ArgumentCaptor<NetworkCallback> mCallbackCaptor;
|
||||||
@Captor
|
@Captor
|
||||||
private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
|
private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
|
||||||
@Captor
|
|
||||||
private ArgumentCaptor<Preference> mIpv6AddressCaptor;
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private Lifecycle mLifecycle;
|
private Lifecycle mLifecycle;
|
||||||
@@ -245,12 +238,9 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
|
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
|
||||||
when(mockAccessPoint.getLevel()).thenReturn(LEVEL);
|
when(mockAccessPoint.getLevel()).thenReturn(LEVEL);
|
||||||
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
|
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
|
||||||
|
|
||||||
when(mockConnectivityManagerWrapper.getConnectivityManager())
|
|
||||||
.thenReturn(mockConnectivityManager);
|
|
||||||
when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
|
when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
|
||||||
.thenReturn(mockNetworkInfo);
|
.thenReturn(mockNetworkInfo);
|
||||||
doNothing().when(mockConnectivityManagerWrapper).registerNetworkCallback(
|
doNothing().when(mockConnectivityManager).registerNetworkCallback(
|
||||||
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
||||||
mockButtonsPref = ActionButtonPreferenceTest.createMock();
|
mockButtonsPref = ActionButtonPreferenceTest.createMock();
|
||||||
when(mockButtonsPref.setButton1OnClickListener(mForgetClickListener.capture()))
|
when(mockButtonsPref.setButton1OnClickListener(mForgetClickListener.capture()))
|
||||||
@@ -281,7 +271,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
private WifiDetailPreferenceController newWifiDetailPreferenceController() {
|
private WifiDetailPreferenceController newWifiDetailPreferenceController() {
|
||||||
return new WifiDetailPreferenceController(
|
return new WifiDetailPreferenceController(
|
||||||
mockAccessPoint,
|
mockAccessPoint,
|
||||||
mockConnectivityManagerWrapper,
|
mockConnectivityManager,
|
||||||
mContext,
|
mContext,
|
||||||
mockFragment,
|
mockFragment,
|
||||||
null, // Handler
|
null, // Handler
|
||||||
@@ -362,7 +352,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
public void networkCallback_shouldBeRegisteredOnResume() {
|
public void networkCallback_shouldBeRegisteredOnResume() {
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
verify(mockConnectivityManagerWrapper, times(1)).registerNetworkCallback(
|
verify(mockConnectivityManager, times(1)).registerNetworkCallback(
|
||||||
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -779,8 +769,6 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
List<Preference> addrs = mIpv6AddressCaptor.getAllValues();
|
|
||||||
|
|
||||||
String expectedAddresses = String.join("\n",
|
String expectedAddresses = String.join("\n",
|
||||||
asString(Constants.IPV6_LINKLOCAL),
|
asString(Constants.IPV6_LINKLOCAL),
|
||||||
asString(Constants.IPV6_GLOBAL1),
|
asString(Constants.IPV6_GLOBAL1),
|
||||||
@@ -826,7 +814,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class);
|
ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class);
|
||||||
verify(mockButtonsPref).setButton2OnClickListener(captor.capture());
|
verify(mockButtonsPref).setButton2OnClickListener(captor.capture());
|
||||||
captor.getValue().onClick(null);
|
captor.getValue().onClick(null);
|
||||||
verify(mockConnectivityManagerWrapper).startCaptivePortalApp(mockNetwork);
|
verify(mockConnectivityManager).startCaptivePortalApp(mockNetwork);
|
||||||
verify(mockMetricsFeatureProvider)
|
verify(mockMetricsFeatureProvider)
|
||||||
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user