Remove wrapper for device policy manager
Bug: 76167422 Test: robotests Change-Id: I69dc7341cf1ff408bc24c2a062586cef25b7b918
This commit is contained in:
@@ -94,7 +94,6 @@ import com.android.internal.app.UnlaunchableAppActivity;
|
|||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@@ -874,7 +873,7 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
* @param packageName package to check about
|
* @param packageName package to check about
|
||||||
*/
|
*/
|
||||||
public static boolean isProfileOrDeviceOwner(UserManager userManager,
|
public static boolean isProfileOrDeviceOwner(UserManager userManager,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager, String packageName) {
|
DevicePolicyManager devicePolicyManager, String packageName) {
|
||||||
List<UserInfo> userInfos = userManager.getUsers();
|
List<UserInfo> userInfos = userManager.getUsers();
|
||||||
if (devicePolicyManager.isDeviceOwnerAppOnAnyUser(packageName)) {
|
if (devicePolicyManager.isDeviceOwnerAppOnAnyUser(packageName)) {
|
||||||
return true;
|
return true;
|
||||||
|
@@ -25,7 +25,6 @@ import android.app.Activity;
|
|||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.app.admin.DevicePolicyManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -37,13 +36,11 @@ import android.view.View;
|
|||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
|
||||||
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;
|
||||||
import com.android.settings.applications.LayoutPreference;
|
import com.android.settings.applications.LayoutPreference;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
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.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -58,26 +55,17 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
|||||||
private Account mAccount;
|
private Account mAccount;
|
||||||
private Fragment mParentFragment;
|
private Fragment mParentFragment;
|
||||||
private UserHandle mUserHandle;
|
private UserHandle mUserHandle;
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
|
||||||
|
|
||||||
public RemoveAccountPreferenceController(Context context, Fragment parent) {
|
public RemoveAccountPreferenceController(Context context, Fragment parent) {
|
||||||
this(context, parent, new DevicePolicyManagerWrapper(
|
|
||||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
RemoveAccountPreferenceController(Context context, Fragment parent,
|
|
||||||
DevicePolicyManagerWrapper dpm) {
|
|
||||||
super(context);
|
super(context);
|
||||||
mParentFragment = parent;
|
mParentFragment = parent;
|
||||||
mDpm = dpm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
final LayoutPreference removeAccountPreference =
|
final LayoutPreference removeAccountPreference =
|
||||||
(LayoutPreference) screen.findPreference(KEY_REMOVE_ACCOUNT);
|
(LayoutPreference) screen.findPreference(KEY_REMOVE_ACCOUNT);
|
||||||
Button removeAccountButton = (Button) removeAccountPreference.findViewById(R.id.button);
|
Button removeAccountButton = (Button) removeAccountPreference.findViewById(R.id.button);
|
||||||
removeAccountButton.setOnClickListener(this);
|
removeAccountButton.setOnClickListener(this);
|
||||||
}
|
}
|
||||||
@@ -96,7 +84,7 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (mUserHandle != null) {
|
if (mUserHandle != null) {
|
||||||
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
|
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
|
||||||
UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier());
|
UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier());
|
||||||
if (admin != null) {
|
if (admin != null) {
|
||||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
|
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
|
||||||
return;
|
return;
|
||||||
@@ -148,11 +136,11 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
|||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
return new AlertDialog.Builder(context)
|
return new AlertDialog.Builder(context)
|
||||||
.setTitle(R.string.really_remove_account_title)
|
.setTitle(R.string.really_remove_account_title)
|
||||||
.setMessage(R.string.really_remove_account_message)
|
.setMessage(R.string.really_remove_account_message)
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.setPositiveButton(R.string.remove_account_label, this)
|
.setPositiveButton(R.string.remove_account_label, this)
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -174,7 +162,7 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
|||||||
boolean failed = true;
|
boolean failed = true;
|
||||||
try {
|
try {
|
||||||
if (future.getResult()
|
if (future.getResult()
|
||||||
.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) {
|
.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) {
|
||||||
failed = false;
|
failed = false;
|
||||||
}
|
}
|
||||||
} catch (OperationCanceledException e) {
|
} catch (OperationCanceledException e) {
|
||||||
@@ -216,10 +204,10 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
|||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
|
|
||||||
return new AlertDialog.Builder(context)
|
return new AlertDialog.Builder(context)
|
||||||
.setTitle(R.string.really_remove_account_title)
|
.setTitle(R.string.really_remove_account_title)
|
||||||
.setMessage(R.string.remove_account_failed)
|
.setMessage(R.string.remove_account_failed)
|
||||||
.setPositiveButton(android.R.string.ok, null)
|
.setPositiveButton(android.R.string.ok, null)
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -47,7 +47,6 @@ import com.android.settings.applications.manageapplications.ManageApplications;
|
|||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
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;
|
||||||
@@ -75,7 +74,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
protected String mPackageName;
|
protected String mPackageName;
|
||||||
|
|
||||||
protected IUsbManager mUsbManager;
|
protected IUsbManager mUsbManager;
|
||||||
protected DevicePolicyManagerWrapper mDpm;
|
protected DevicePolicyManager mDpm;
|
||||||
protected UserManager mUserManager;
|
protected UserManager mUserManager;
|
||||||
protected PackageManager mPm;
|
protected PackageManager mPm;
|
||||||
|
|
||||||
@@ -94,8 +93,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
.getApplicationFeatureProvider(activity);
|
.getApplicationFeatureProvider(activity);
|
||||||
mState = ApplicationsState.getInstance(activity.getApplication());
|
mState = ApplicationsState.getInstance(activity.getApplication());
|
||||||
mSession = mState.newSession(this, getLifecycle());
|
mSession = mState.newSession(this, getLifecycle());
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
|
||||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||||
mPm = activity.getPackageManager();
|
mPm = activity.getPackageManager();
|
||||||
IBinder b = ServiceManager.getService(Context.USB_SERVICE);
|
IBinder b = ServiceManager.getService(Context.USB_SERVICE);
|
||||||
@@ -161,10 +159,10 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void setIntentAndFinish(boolean finish, boolean appChanged) {
|
protected void setIntentAndFinish(boolean finish, boolean appChanged) {
|
||||||
if (localLOGV) Log.i(TAG, "appChanged="+appChanged);
|
if (localLOGV) Log.i(TAG, "appChanged=" + appChanged);
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.putExtra(ManageApplications.APP_CHG, appChanged);
|
intent.putExtra(ManageApplications.APP_CHG, appChanged);
|
||||||
SettingsActivity sa = (SettingsActivity)getActivity();
|
SettingsActivity sa = (SettingsActivity) getActivity();
|
||||||
sa.finishPreferencePanel(Activity.RESULT_OK, intent);
|
sa.finishPreferencePanel(Activity.RESULT_OK, intent);
|
||||||
mFinishing = true;
|
mFinishing = true;
|
||||||
}
|
}
|
||||||
@@ -176,6 +174,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean refreshUi();
|
protected abstract boolean refreshUi();
|
||||||
|
|
||||||
protected abstract AlertDialog createDialog(int id, int errorCode);
|
protected abstract AlertDialog createDialog(int id, int errorCode);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -22,7 +22,6 @@ 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.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -34,11 +33,11 @@ public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
|||||||
|
|
||||||
private final String[] mPermissions;
|
private final String[] mPermissions;
|
||||||
private final IPackageManagerWrapper mPackageManagerService;
|
private final IPackageManagerWrapper mPackageManagerService;
|
||||||
private final DevicePolicyManagerWrapper mDevicePolicyManager;
|
private final DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
public AppWithAdminGrantedPermissionsCounter(Context context, String[] permissions,
|
public AppWithAdminGrantedPermissionsCounter(Context context, String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager) {
|
DevicePolicyManager devicePolicyManager) {
|
||||||
super(context, packageManager);
|
super(context, packageManager);
|
||||||
mPermissions = permissions;
|
mPermissions = permissions;
|
||||||
mPackageManagerService = packageManagerService;
|
mPackageManagerService = packageManagerService;
|
||||||
@@ -52,7 +51,7 @@ public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean includeInCount(String[] permissions,
|
public static boolean includeInCount(String[] permissions,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager, PackageManagerWrapper packageManager,
|
DevicePolicyManager devicePolicyManager, PackageManagerWrapper packageManager,
|
||||||
IPackageManagerWrapper packageManagerService, ApplicationInfo info) {
|
IPackageManagerWrapper 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
|
||||||
@@ -70,7 +69,7 @@ public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
|||||||
// permissions and was installed by enterprise policy, implicitly granting permissions.
|
// permissions and was installed by enterprise policy, implicitly granting permissions.
|
||||||
if (packageManager.getInstallReason(info.packageName,
|
if (packageManager.getInstallReason(info.packageName,
|
||||||
new UserHandle(UserHandle.getUserId(info.uid)))
|
new UserHandle(UserHandle.getUserId(info.uid)))
|
||||||
!= PackageManager.INSTALL_REASON_POLICY) {
|
!= PackageManager.INSTALL_REASON_POLICY) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
@@ -16,9 +16,10 @@
|
|||||||
|
|
||||||
package com.android.settings.applications;
|
package com.android.settings.applications;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -29,11 +30,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 IPackageManagerWrapper mPackageManagerService;
|
||||||
private final DevicePolicyManagerWrapper mDevicePolicyManager;
|
private final DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
public AppWithAdminGrantedPermissionsLister(String[] permissions,
|
public AppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager, UserManager userManager) {
|
DevicePolicyManager devicePolicyManager, UserManager userManager) {
|
||||||
super(packageManager, userManager);
|
super(packageManager, userManager);
|
||||||
mPermissions = permissions;
|
mPermissions = permissions;
|
||||||
mPackageManagerService = packageManagerService;
|
mPackageManagerService = packageManagerService;
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.applications;
|
package com.android.settings.applications;
|
||||||
|
|
||||||
|
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;
|
||||||
@@ -26,7 +27,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.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -39,11 +39,11 @@ 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 IPackageManagerWrapper mPms;
|
||||||
private final DevicePolicyManagerWrapper 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, DevicePolicyManagerWrapper dpm) {
|
IPackageManagerWrapper pms, DevicePolicyManager dpm) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
mPm = pm;
|
mPm = pm;
|
||||||
mPms = pms;
|
mPms = pms;
|
||||||
@@ -150,7 +150,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
|||||||
CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context,
|
CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context,
|
||||||
String[] permissions, PackageManagerWrapper packageManager,
|
String[] permissions, PackageManagerWrapper packageManager,
|
||||||
IPackageManagerWrapper packageManagerService,
|
IPackageManagerWrapper packageManagerService,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager, NumberOfAppsCallback callback) {
|
DevicePolicyManager devicePolicyManager, NumberOfAppsCallback callback) {
|
||||||
super(context, permissions, packageManager, packageManagerService, devicePolicyManager);
|
super(context, permissions, packageManager, packageManagerService, devicePolicyManager);
|
||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
}
|
}
|
||||||
@@ -182,7 +182,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
|||||||
|
|
||||||
CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions,
|
CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||||
DevicePolicyManagerWrapper devicePolicyManager, UserManager userManager,
|
DevicePolicyManager devicePolicyManager, UserManager userManager,
|
||||||
ListOfAppsCallback callback) {
|
ListOfAppsCallback callback) {
|
||||||
super(permissions, packageManager, packageManagerService, devicePolicyManager,
|
super(permissions, packageManager, packageManagerService, devicePolicyManager,
|
||||||
userManager);
|
userManager);
|
||||||
|
@@ -44,7 +44,6 @@ import com.android.settings.applications.ApplicationFeatureProvider;
|
|||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.ActionButtonPreference;
|
import com.android.settings.widget.ActionButtonPreference;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
@@ -67,7 +66,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
private final ApplicationFeatureProvider mApplicationFeatureProvider;
|
private final ApplicationFeatureProvider mApplicationFeatureProvider;
|
||||||
|
|
||||||
private int mUserId;
|
private int mUserId;
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private PackageManager mPm;
|
private PackageManager mPm;
|
||||||
|
|
||||||
@@ -94,7 +93,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return AppUtils.isInstant(mParent.getPackageInfo().applicationInfo)
|
return AppUtils.isInstant(mParent.getPackageInfo().applicationInfo)
|
||||||
? DISABLED_FOR_USER : AVAILABLE;
|
? DISABLED_FOR_USER : AVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -112,8 +111,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
mPm = mContext.getPackageManager();
|
mPm = mContext.getPackageManager();
|
||||||
}
|
}
|
||||||
if (mDpm == null) {
|
if (mDpm == null) {
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
(DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
|
||||||
}
|
}
|
||||||
if (mUserManager == null) {
|
if (mUserManager == null) {
|
||||||
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
||||||
@@ -125,7 +123,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
final List<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
|
final List<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
|
||||||
mPm.getHomeActivities(homeActivities);
|
mPm.getHomeActivities(homeActivities);
|
||||||
mHomePackages.clear();
|
mHomePackages.clear();
|
||||||
for (int i = 0; i< homeActivities.size(); i++) {
|
for (int i = 0; i < homeActivities.size(); i++) {
|
||||||
final ResolveInfo ri = homeActivities.get(i);
|
final ResolveInfo ri = homeActivities.get(i);
|
||||||
final String activityPkg = ri.activityInfo.packageName;
|
final String activityPkg = ri.activityInfo.packageName;
|
||||||
mHomePackages.add(activityPkg);
|
mHomePackages.add(activityPkg);
|
||||||
@@ -187,7 +185,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
enabled = false;
|
enabled = false;
|
||||||
} else {
|
} else {
|
||||||
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
|
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
|
||||||
ComponentName currentDefaultHome = mPm.getHomeActivities(homeActivities);
|
ComponentName currentDefaultHome = mPm.getHomeActivities(homeActivities);
|
||||||
if (currentDefaultHome == null) {
|
if (currentDefaultHome == null) {
|
||||||
// No preferred default, so permit uninstall only when
|
// No preferred default, so permit uninstall only when
|
||||||
// there is more than one candidate
|
// there is more than one candidate
|
||||||
@@ -284,7 +282,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
Log.w(TAG, "User can't force stop device admin");
|
Log.w(TAG, "User can't force stop device admin");
|
||||||
updateForceStopButton(false);
|
updateForceStopButton(false);
|
||||||
} else if (mPm.isPackageStateProtected(packageInfo.packageName,
|
} else if (mPm.isPackageStateProtected(packageInfo.packageName,
|
||||||
UserHandle.getUserId(appEntry.info.uid))) {
|
UserHandle.getUserId(appEntry.info.uid))) {
|
||||||
Log.w(TAG, "User can't force stop protected packages");
|
Log.w(TAG, "User can't force stop protected packages");
|
||||||
updateForceStopButton(false);
|
updateForceStopButton(false);
|
||||||
} else if (AppUtils.isInstant(packageInfo.applicationInfo)) {
|
} else if (AppUtils.isInstant(packageInfo.applicationInfo)) {
|
||||||
@@ -298,7 +296,7 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
|||||||
} else {
|
} else {
|
||||||
final Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
|
final Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
|
||||||
Uri.fromParts("package", appEntry.info.packageName, null));
|
Uri.fromParts("package", appEntry.info.packageName, null));
|
||||||
intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { appEntry.info.packageName });
|
intent.putExtra(Intent.EXTRA_PACKAGES, new String[] {appEntry.info.packageName});
|
||||||
intent.putExtra(Intent.EXTRA_UID, appEntry.info.uid);
|
intent.putExtra(Intent.EXTRA_UID, appEntry.info.uid);
|
||||||
intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(appEntry.info.uid));
|
intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(appEntry.info.uid));
|
||||||
Log.d(TAG, "Sending broadcast to query restart status for "
|
Log.d(TAG, "Sending broadcast to query restart status for "
|
||||||
|
@@ -55,7 +55,6 @@ import com.android.settings.applications.manageapplications.ManageApplications;
|
|||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
@@ -122,7 +121,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
private int mUserId;
|
private int mUserId;
|
||||||
private String mPackageName;
|
private String mPackageName;
|
||||||
|
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private PackageManager mPm;
|
private PackageManager mPm;
|
||||||
|
|
||||||
@@ -198,8 +197,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
mFinishing = false;
|
mFinishing = false;
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
|
||||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||||
mPm = activity.getPackageManager();
|
mPm = activity.getPackageManager();
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@ package com.android.settings.display;
|
|||||||
|
|
||||||
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
@@ -25,7 +26,6 @@ import android.util.Log;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.TimeoutListPreference;
|
import com.android.settings.TimeoutListPreference;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
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.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -61,7 +61,8 @@ public class TimeoutPreferenceController extends AbstractPreferenceController im
|
|||||||
final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
|
final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
|
||||||
SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
|
SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
|
||||||
timeoutListPreference.setValue(String.valueOf(currentTimeout));
|
timeoutListPreference.setValue(String.valueOf(currentTimeout));
|
||||||
final DevicePolicyManagerWrapper dpm = DevicePolicyManagerWrapper.from(mContext);
|
final DevicePolicyManager dpm =
|
||||||
|
(DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
if (dpm != null) {
|
if (dpm != null) {
|
||||||
final RestrictedLockUtils.EnforcedAdmin admin =
|
final RestrictedLockUtils.EnforcedAdmin admin =
|
||||||
RestrictedLockUtils.checkIfMaximumTimeToLockIsSet(mContext);
|
RestrictedLockUtils.checkIfMaximumTimeToLockIsSet(mContext);
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.enterprise;
|
package com.android.settings.enterprise;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -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.settings.wrapper.ConnectivityManagerWrapper;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -41,7 +41,7 @@ import java.util.List;
|
|||||||
public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFeatureProvider {
|
public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFeatureProvider {
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final DevicePolicyManagerWrapper 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 ConnectivityManagerWrapper mCm;
|
||||||
@@ -49,7 +49,7 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
|||||||
|
|
||||||
private static final int MY_USER_ID = UserHandle.myUserId();
|
private static final int MY_USER_ID = UserHandle.myUserId();
|
||||||
|
|
||||||
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManagerWrapper dpm,
|
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
||||||
PackageManagerWrapper pm, UserManager um, ConnectivityManagerWrapper cm,
|
PackageManagerWrapper pm, UserManager um, ConnectivityManagerWrapper cm,
|
||||||
Resources resources) {
|
Resources resources) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
|
@@ -54,7 +54,6 @@ import com.android.settings.fuelgauge.anomaly.AnomalyUtils;
|
|||||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -116,7 +115,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
private AppButtonsPreferenceController mAppButtonsPreferenceController;
|
private AppButtonsPreferenceController mAppButtonsPreferenceController;
|
||||||
private BackgroundActivityPreferenceController mBackgroundActivityPreferenceController;
|
private BackgroundActivityPreferenceController mBackgroundActivityPreferenceController;
|
||||||
|
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
private List<Anomaly> mAnomalies;
|
private List<Anomaly> mAnomalies;
|
||||||
@@ -167,7 +166,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
.launch();
|
.launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static @UserIdInt int getUserIdToLaunchAdvancePowerUsageDetail(BatterySipper bs) {
|
private static @UserIdInt
|
||||||
|
int getUserIdToLaunchAdvancePowerUsageDetail(BatterySipper bs) {
|
||||||
if (bs.drainType == BatterySipper.DrainType.USER) {
|
if (bs.drainType == BatterySipper.DrainType.USER) {
|
||||||
return ActivityManager.getCurrentUser();
|
return ActivityManager.getCurrentUser();
|
||||||
}
|
}
|
||||||
@@ -206,8 +206,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
super.onAttach(activity);
|
super.onAttach(activity);
|
||||||
|
|
||||||
mState = ApplicationsState.getInstance(getActivity().getApplication());
|
mState = ApplicationsState.getInstance(getActivity().getApplication());
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
|
||||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||||
mPackageManager = activity.getPackageManager();
|
mPackageManager = activity.getPackageManager();
|
||||||
mBatteryUtils = BatteryUtils.getInstance(getContext());
|
mBatteryUtils = BatteryUtils.getInstance(getContext());
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.fuelgauge;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -50,7 +51,6 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.ActionButtonPreference;
|
import com.android.settings.widget.ActionButtonPreference;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
@@ -102,7 +102,7 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
private final int mRequestRemoveDeviceAdmin;
|
private final int mRequestRemoveDeviceAdmin;
|
||||||
|
|
||||||
private ApplicationsState.Session mSession;
|
private ApplicationsState.Session mSession;
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private PackageManager mPm;
|
private PackageManager mPm;
|
||||||
private SettingsActivity mActivity;
|
private SettingsActivity mActivity;
|
||||||
@@ -118,7 +118,7 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
public AppButtonsPreferenceController(SettingsActivity activity, Fragment fragment,
|
public AppButtonsPreferenceController(SettingsActivity activity, Fragment fragment,
|
||||||
Lifecycle lifecycle, String packageName, ApplicationsState state,
|
Lifecycle lifecycle, String packageName, ApplicationsState state,
|
||||||
DevicePolicyManagerWrapper dpm, UserManager userManager,
|
DevicePolicyManager dpm, UserManager userManager,
|
||||||
PackageManager packageManager, int requestUninstall, int requestRemoveDeviceAdmin) {
|
PackageManager packageManager, int requestUninstall, int requestRemoveDeviceAdmin) {
|
||||||
super(activity);
|
super(activity);
|
||||||
|
|
||||||
@@ -477,7 +477,7 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
} else {
|
} else {
|
||||||
Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
|
Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
|
||||||
Uri.fromParts("package", mAppEntry.info.packageName, null));
|
Uri.fromParts("package", mAppEntry.info.packageName, null));
|
||||||
intent.putExtra(Intent.EXTRA_PACKAGES, new String[]{mAppEntry.info.packageName});
|
intent.putExtra(Intent.EXTRA_PACKAGES, new String[] {mAppEntry.info.packageName});
|
||||||
intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
|
intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
|
||||||
intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
|
intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
|
||||||
Log.d(TAG, "Sending broadcast to query restart status for "
|
Log.d(TAG, "Sending broadcast to query restart status for "
|
||||||
|
@@ -30,7 +30,6 @@ import com.android.settings.fuelgauge.batterytip.BatteryTipDialogFragment;
|
|||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
||||||
|
|
||||||
@@ -48,7 +47,7 @@ public class BackgroundActivityPreferenceController extends AbstractPreferenceCo
|
|||||||
private final UserManager mUserManager;
|
private final UserManager mUserManager;
|
||||||
private final int mUid;
|
private final int mUid;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
DevicePolicyManagerWrapper mDpm;
|
DevicePolicyManager mDpm;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
BatteryUtils mBatteryUtils;
|
BatteryUtils mBatteryUtils;
|
||||||
private InstrumentedPreferenceFragment mFragment;
|
private InstrumentedPreferenceFragment mFragment;
|
||||||
@@ -66,8 +65,7 @@ public class BackgroundActivityPreferenceController extends AbstractPreferenceCo
|
|||||||
super(context);
|
super(context);
|
||||||
mPowerWhitelistBackend = backend;
|
mPowerWhitelistBackend = backend;
|
||||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
|
||||||
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||||
mUid = uid;
|
mUid = uid;
|
||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
|
@@ -52,7 +52,6 @@ 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.ConnectivityManagerWrapper;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
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;
|
||||||
@@ -114,8 +113,8 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
||||||
new PackageManagerWrapper(context.getPackageManager()),
|
new PackageManagerWrapper(context.getPackageManager()),
|
||||||
new IPackageManagerWrapper(AppGlobals.getPackageManager()),
|
new IPackageManagerWrapper(AppGlobals.getPackageManager()),
|
||||||
new DevicePolicyManagerWrapper((DevicePolicyManager) context
|
(DevicePolicyManager) context
|
||||||
.getSystemService(Context.DEVICE_POLICY_SERVICE)));
|
.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
||||||
}
|
}
|
||||||
return mApplicationFeatureProvider;
|
return mApplicationFeatureProvider;
|
||||||
}
|
}
|
||||||
@@ -132,8 +131,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
|
public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
|
||||||
if (mEnterprisePrivacyFeatureProvider == null) {
|
if (mEnterprisePrivacyFeatureProvider == null) {
|
||||||
mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(context,
|
mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(context,
|
||||||
new DevicePolicyManagerWrapper((DevicePolicyManager) context
|
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
|
||||||
.getSystemService(Context.DEVICE_POLICY_SERVICE)),
|
|
||||||
new PackageManagerWrapper(context.getPackageManager()),
|
new PackageManagerWrapper(context.getPackageManager()),
|
||||||
UserManager.get(context),
|
UserManager.get(context),
|
||||||
new ConnectivityManagerWrapper((ConnectivityManager) context
|
new ConnectivityManagerWrapper((ConnectivityManager) context
|
||||||
|
@@ -32,7 +32,6 @@ import com.android.settings.TimeoutListPreference;
|
|||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.security.trustagent.TrustAgentManager;
|
import com.android.settings.security.trustagent.TrustAgentManager;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
|
||||||
@@ -44,14 +43,14 @@ public class LockAfterTimeoutPreferenceController extends AbstractPreferenceCont
|
|||||||
private final int mUserId;
|
private final int mUserId;
|
||||||
private final LockPatternUtils mLockPatternUtils;
|
private final LockPatternUtils mLockPatternUtils;
|
||||||
private final TrustAgentManager mTrustAgentManager;
|
private final TrustAgentManager mTrustAgentManager;
|
||||||
private final DevicePolicyManagerWrapper mDPM;
|
private final DevicePolicyManager mDPM;
|
||||||
|
|
||||||
public LockAfterTimeoutPreferenceController(Context context, int userId,
|
public LockAfterTimeoutPreferenceController(Context context, int userId,
|
||||||
LockPatternUtils lockPatternUtils) {
|
LockPatternUtils lockPatternUtils) {
|
||||||
super(context);
|
super(context);
|
||||||
mUserId = userId;
|
mUserId = userId;
|
||||||
mLockPatternUtils = lockPatternUtils;
|
mLockPatternUtils = lockPatternUtils;
|
||||||
mDPM = DevicePolicyManagerWrapper.from(context);
|
mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
mTrustAgentManager = FeatureFactory.getFactory(context)
|
mTrustAgentManager = FeatureFactory.getFactory(context)
|
||||||
.getSecurityFeatureProvider().getTrustAgentManager();
|
.getSecurityFeatureProvider().getTrustAgentManager();
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -25,7 +26,6 @@ import android.net.wifi.WifiConfiguration;
|
|||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
public class WifiUtils {
|
public class WifiUtils {
|
||||||
@@ -69,7 +69,8 @@ public class WifiUtils {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final DevicePolicyManagerWrapper dpm = DevicePolicyManagerWrapper.from(context);
|
final DevicePolicyManager dpm =
|
||||||
|
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
final PackageManagerWrapper pm = new PackageManagerWrapper(context.getPackageManager());
|
final PackageManagerWrapper pm = new PackageManagerWrapper(context.getPackageManager());
|
||||||
|
|
||||||
// Check if device has DPM capability. If it has and dpm is still null, then we
|
// Check if device has DPM capability. If it has and dpm is still null, then we
|
||||||
|
@@ -1,229 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2016 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.annotation.NonNull;
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.annotation.UserIdInt;
|
|
||||||
import android.app.admin.DevicePolicyManager;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.UserHandle;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class replicates a subset of the android.app.admin.DevicePolicyManager (DPM). The
|
|
||||||
* class exists so that we can use a thin wrapper around the DPM in production code and a mock
|
|
||||||
* in tests. We cannot directly mock or shadow the DPM, because some of the methods we rely on are
|
|
||||||
* newer than the API version supported by Robolectric.
|
|
||||||
*/
|
|
||||||
public class DevicePolicyManagerWrapper {
|
|
||||||
private final DevicePolicyManager mDpm;
|
|
||||||
|
|
||||||
public DevicePolicyManagerWrapper(DevicePolicyManager dpm) {
|
|
||||||
mDpm = dpm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static @Nullable DevicePolicyManagerWrapper from(Context context) {
|
|
||||||
DevicePolicyManager dpm =
|
|
||||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
|
||||||
return dpm == null ? null : new DevicePolicyManagerWrapper(dpm);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getActiveAdminsAsUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getActiveAdminsAsUser
|
|
||||||
*/
|
|
||||||
public @Nullable List<ComponentName> getActiveAdminsAsUser(int userId) {
|
|
||||||
return mDpm.getActiveAdminsAsUser(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getMaximumFailedPasswordsForWipe()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getMaximumFailedPasswordsForWipe
|
|
||||||
*/
|
|
||||||
public int getMaximumFailedPasswordsForWipe(@Nullable ComponentName admin, int userHandle) {
|
|
||||||
return mDpm.getMaximumFailedPasswordsForWipe(admin, userHandle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnCallingUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getDeviceOwnerComponentOnCallingUser
|
|
||||||
*/
|
|
||||||
public ComponentName getDeviceOwnerComponentOnCallingUser() {
|
|
||||||
return mDpm.getDeviceOwnerComponentOnCallingUser();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnAnyUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getDeviceOwnerComponentOnAnyUser
|
|
||||||
*/
|
|
||||||
public ComponentName getDeviceOwnerComponentOnAnyUser() {
|
|
||||||
return mDpm.getDeviceOwnerComponentOnAnyUser();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getProfileOwnerAsUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getProfileOwnerAsUser
|
|
||||||
*/
|
|
||||||
public @Nullable ComponentName getProfileOwnerAsUser(final int userId) {
|
|
||||||
return mDpm.getProfileOwnerAsUser(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getDeviceOwnerNameOnAnyUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getDeviceOwnerNameOnAnyUser
|
|
||||||
*/
|
|
||||||
public CharSequence getDeviceOwnerOrganizationName() {
|
|
||||||
return mDpm.getDeviceOwnerOrganizationName();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getPermissionGrantState()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getPermissionGrantState
|
|
||||||
*/
|
|
||||||
public int getPermissionGrantState(@Nullable ComponentName admin, String packageName,
|
|
||||||
String permission) {
|
|
||||||
return mDpm.getPermissionGrantState(admin, packageName, permission);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.isSecurityLoggingEnabled()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#isSecurityLoggingEnabled
|
|
||||||
*/
|
|
||||||
public boolean isSecurityLoggingEnabled(@Nullable ComponentName admin) {
|
|
||||||
return mDpm.isSecurityLoggingEnabled(admin);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.isNetworkLoggingEnabled()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#isNetworkLoggingEnabled
|
|
||||||
*/
|
|
||||||
public boolean isNetworkLoggingEnabled(@Nullable ComponentName admin) {
|
|
||||||
return mDpm.isNetworkLoggingEnabled(admin);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getLastSecurityLogRetrievalTime()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getLastSecurityLogRetrievalTime
|
|
||||||
*/
|
|
||||||
public long getLastSecurityLogRetrievalTime() {
|
|
||||||
return mDpm.getLastSecurityLogRetrievalTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getLastBugReportRequestTime()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getLastBugReportRequestTime
|
|
||||||
*/
|
|
||||||
public long getLastBugReportRequestTime() {
|
|
||||||
return mDpm.getLastBugReportRequestTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getLastNetworkLogRetrievalTime()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getLastNetworkLogRetrievalTime
|
|
||||||
*/
|
|
||||||
public long getLastNetworkLogRetrievalTime() {
|
|
||||||
return mDpm.getLastNetworkLogRetrievalTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.isCurrentInputMethodSetByOwner()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#isCurrentInputMethodSetByOwner
|
|
||||||
*/
|
|
||||||
public boolean isCurrentInputMethodSetByOwner() {
|
|
||||||
return mDpm.isCurrentInputMethodSetByOwner();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.getOwnerInstalledCaCerts()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getOwnerInstalledCaCerts
|
|
||||||
*/
|
|
||||||
public List<String> getOwnerInstalledCaCerts(@NonNull UserHandle user) {
|
|
||||||
return mDpm.getOwnerInstalledCaCerts(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.isDeviceOwnerAppOnAnyUser()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#isDeviceOwnerAppOnAnyUser
|
|
||||||
*/
|
|
||||||
public boolean isDeviceOwnerAppOnAnyUser(String packageName) {
|
|
||||||
return mDpm.isDeviceOwnerAppOnAnyUser(packageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.packageHasActiveAdmins()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#packageHasActiveAdmins
|
|
||||||
*/
|
|
||||||
public boolean packageHasActiveAdmins(String packageName) {
|
|
||||||
return mDpm.packageHasActiveAdmins(packageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.isUninstallInQueue()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#isUninstallInQueue
|
|
||||||
*/
|
|
||||||
public boolean isUninstallInQueue(String packageName) {
|
|
||||||
return mDpm.isUninstallInQueue(packageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager.createAdminSupportIntent()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#createAdminSupportIntent(String)
|
|
||||||
*/
|
|
||||||
public Intent createAdminSupportIntent(@NonNull String restriction) {
|
|
||||||
return mDpm.createAdminSupportIntent(restriction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager#getDeviceOwnerUserId()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getDeviceOwnerUserId()
|
|
||||||
*/
|
|
||||||
public int getDeviceOwnerUserId() {
|
|
||||||
return mDpm.getDeviceOwnerUserId();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls {@code DevicePolicyManager#getMaximumTimeToLock()}.
|
|
||||||
*
|
|
||||||
* @see DevicePolicyManager#getMaximumTimeToLock(ComponentName, int)
|
|
||||||
*/
|
|
||||||
public long getMaximumTimeToLock(@Nullable ComponentName admin, @UserIdInt int userHandle) {
|
|
||||||
return mDpm.getMaximumTimeToLock(admin, userHandle);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -17,7 +17,6 @@
|
|||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Matchers.anyString;
|
import static org.mockito.Matchers.anyString;
|
||||||
@@ -28,6 +27,7 @@ import static org.mockito.Mockito.spy;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -48,7 +48,6 @@ import android.widget.EditText;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -74,7 +73,7 @@ public class UtilsTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager connectivityManager;
|
private ConnectivityManager connectivityManager;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
|
@@ -50,10 +50,6 @@ import com.android.settings.testutils.shadow.ShadowAccountManager;
|
|||||||
import com.android.settings.testutils.shadow.ShadowContentResolver;
|
import com.android.settings.testutils.shadow.ShadowContentResolver;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -64,12 +60,14 @@ import org.robolectric.RuntimeEnvironment;
|
|||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.shadows.ShadowApplication;
|
import org.robolectric.shadows.ShadowApplication;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(
|
@Config(shadows = {
|
||||||
shadows = {
|
|
||||||
ShadowUserManager.class,
|
ShadowUserManager.class,
|
||||||
ShadowDevicePolicyManager.class
|
ShadowDevicePolicyManager.class
|
||||||
})
|
})
|
||||||
public class RemoveAccountPreferenceControllerTest {
|
public class RemoveAccountPreferenceControllerTest {
|
||||||
|
|
||||||
private static final String KEY_REMOVE_ACCOUNT = "remove_account";
|
private static final String KEY_REMOVE_ACCOUNT = "remove_account";
|
||||||
@@ -78,8 +76,6 @@ public class RemoveAccountPreferenceControllerTest {
|
|||||||
@Mock(answer = RETURNS_DEEP_STUBS)
|
@Mock(answer = RETURNS_DEEP_STUBS)
|
||||||
private AccountManager mAccountManager;
|
private AccountManager mAccountManager;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
|
||||||
@Mock
|
|
||||||
private PreferenceFragment mFragment;
|
private PreferenceFragment mFragment;
|
||||||
@Mock
|
@Mock
|
||||||
private PreferenceManager mPreferenceManager;
|
private PreferenceManager mPreferenceManager;
|
||||||
@@ -105,10 +101,10 @@ public class RemoveAccountPreferenceControllerTest {
|
|||||||
when(mFragment.getFragmentManager()).thenReturn(mFragmentManager);
|
when(mFragment.getFragmentManager()).thenReturn(mFragmentManager);
|
||||||
when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
|
when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
|
||||||
when(mAccountManager.getAuthenticatorTypesAsUser(anyInt()))
|
when(mAccountManager.getAuthenticatorTypesAsUser(anyInt()))
|
||||||
.thenReturn(new AuthenticatorDescription[0]);
|
.thenReturn(new AuthenticatorDescription[0]);
|
||||||
when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
|
when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
|
||||||
mController = new RemoveAccountPreferenceController(RuntimeEnvironment.application,
|
mController = new RemoveAccountPreferenceController(RuntimeEnvironment.application,
|
||||||
mFragment, mDevicePolicyManager);
|
mFragment);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -128,8 +124,8 @@ public class RemoveAccountPreferenceControllerTest {
|
|||||||
mController.onClick(null);
|
mController.onClick(null);
|
||||||
|
|
||||||
verify(mFragmentTransaction).add(
|
verify(mFragmentTransaction).add(
|
||||||
any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
|
any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
|
||||||
eq(TAG_REMOVE_ACCOUNT_DIALOG));
|
eq(TAG_REMOVE_ACCOUNT_DIALOG));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -141,20 +137,20 @@ public class RemoveAccountPreferenceControllerTest {
|
|||||||
|
|
||||||
List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
|
List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
|
||||||
enforcingUsers.add(new UserManager.EnforcingUser(userId,
|
enforcingUsers.add(new UserManager.EnforcingUser(userId,
|
||||||
UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
|
UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
|
||||||
ComponentName componentName = new ComponentName("test", "test");
|
ComponentName componentName = new ComponentName("test", "test");
|
||||||
// Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
|
// Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
|
||||||
ShadowUserManager.getShadow().setUserRestrictionSources(
|
ShadowUserManager.getShadow().setUserRestrictionSources(
|
||||||
UserManager.DISALLOW_MODIFY_ACCOUNTS,
|
UserManager.DISALLOW_MODIFY_ACCOUNTS,
|
||||||
UserHandle.of(userId),
|
UserHandle.of(userId),
|
||||||
enforcingUsers);
|
enforcingUsers);
|
||||||
ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(componentName);
|
ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(componentName);
|
||||||
|
|
||||||
mController.onClick(null);
|
mController.onClick(null);
|
||||||
|
|
||||||
verify(mFragmentTransaction, never()).add(
|
verify(mFragmentTransaction, never()).add(
|
||||||
any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
|
any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
|
||||||
eq(TAG_REMOVE_ACCOUNT_DIALOG));
|
eq(TAG_REMOVE_ACCOUNT_DIALOG));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -168,11 +164,11 @@ public class RemoveAccountPreferenceControllerTest {
|
|||||||
Account account = new Account("Account11", "com.acct1");
|
Account account = new Account("Account11", "com.acct1");
|
||||||
UserHandle userHandle = new UserHandle(10);
|
UserHandle userHandle = new UserHandle(10);
|
||||||
RemoveAccountPreferenceController.ConfirmRemoveAccountDialog dialog =
|
RemoveAccountPreferenceController.ConfirmRemoveAccountDialog dialog =
|
||||||
RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.show(
|
RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.show(
|
||||||
mFragment, account, userHandle);
|
mFragment, account, userHandle);
|
||||||
dialog.onCreate(new Bundle());
|
dialog.onCreate(new Bundle());
|
||||||
dialog.onClick(null, 0);
|
dialog.onClick(null, 0);
|
||||||
verify(mAccountManager).removeAccountAsUser(eq(account), nullable(Activity.class),
|
verify(mAccountManager).removeAccountAsUser(eq(account), nullable(Activity.class),
|
||||||
nullable(AccountManagerCallback.class), nullable(Handler.class), eq(userHandle));
|
nullable(AccountManagerCallback.class), nullable(Handler.class), eq(userHandle));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,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.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -84,7 +83,7 @@ public final class AppWithAdminGrantedPermissionsCounterTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManagerWrapper mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
private int mAppCount = -1;
|
private int mAppCount = -1;
|
||||||
private ApplicationInfo mApp1;
|
private ApplicationInfo mApp1;
|
||||||
@@ -214,13 +213,13 @@ public final class AppWithAdminGrantedPermissionsCounterTest {
|
|||||||
// * app5 uses install-time permissions. It was installed by the admin but did not request
|
// * app5 uses install-time permissions. It was installed by the admin but did not request
|
||||||
// any of the permissions. It should not be counted.
|
// any of the permissions. It should not be counted.
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
||||||
| PackageManager.MATCH_ANY_USER,
|
| PackageManager.MATCH_ANY_USER,
|
||||||
MAIN_USER_ID)).thenReturn(Arrays.asList(mApp1, mApp2, mApp3, mApp4, mApp5));
|
MAIN_USER_ID)).thenReturn(Arrays.asList(mApp1, mApp2, mApp3, mApp4, mApp5));
|
||||||
// The second user has one app installed. This app uses run-time permissions. It has been
|
// The second user has one app installed. This app uses run-time permissions. It has been
|
||||||
// granted both permissions by the admin. It should be counted.
|
// granted both permissions by the admin. It should be counted.
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
||||||
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(mApp6));
|
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(mApp6));
|
||||||
|
|
||||||
// app3 and app5 were installed by enterprise policy.
|
// app3 and app5 were installed by enterprise policy.
|
||||||
@@ -250,7 +249,7 @@ public final class AppWithAdminGrantedPermissionsCounterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class AppWithAdminGrantedPermissionsCounterTestable
|
private class AppWithAdminGrantedPermissionsCounterTestable
|
||||||
extends AppWithAdminGrantedPermissionsCounter {
|
extends AppWithAdminGrantedPermissionsCounter {
|
||||||
private AppWithAdminGrantedPermissionsCounterTestable(String[] permissions) {
|
private AppWithAdminGrantedPermissionsCounterTestable(String[] permissions) {
|
||||||
super(mContext, permissions, mPackageManager, mPackageManagerService,
|
super(mContext, permissions, mPackageManager, mPackageManagerService,
|
||||||
mDevicePolicyManager);
|
mDevicePolicyManager);
|
||||||
|
@@ -34,7 +34,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.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -81,7 +80,7 @@ public final class AppWithAdminGrantedPermissionsListerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManagerWrapper mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
private List<UserAppInfo> mAppList = Collections.emptyList();
|
private List<UserAppInfo> mAppList = Collections.emptyList();
|
||||||
|
|
||||||
@@ -109,14 +108,14 @@ public final class AppWithAdminGrantedPermissionsListerTest {
|
|||||||
// * app5 uses install-time permissions. It was installed by the admin but did not request
|
// * app5 uses install-time permissions. It was installed by the admin but did not request
|
||||||
// any of the permissions. It should not be listed.
|
// any of the permissions. It should not be listed.
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
||||||
| PackageManager.MATCH_ANY_USER,
|
| PackageManager.MATCH_ANY_USER,
|
||||||
MAIN_USER_ID)).thenReturn(Arrays.asList(
|
MAIN_USER_ID)).thenReturn(Arrays.asList(
|
||||||
buildInfo(APP_1_UID, APP_1, 0 /* flags */, Build.VERSION_CODES.M),
|
buildInfo(APP_1_UID, APP_1, 0 /* flags */, Build.VERSION_CODES.M),
|
||||||
buildInfo(APP_2_UID, APP_2, 0 /* flags */, Build.VERSION_CODES.M),
|
buildInfo(APP_2_UID, APP_2, 0 /* flags */, Build.VERSION_CODES.M),
|
||||||
buildInfo(APP_3_UID, APP_3, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP),
|
buildInfo(APP_3_UID, APP_3, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP),
|
||||||
buildInfo(APP_4_UID, APP_4, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP),
|
buildInfo(APP_4_UID, APP_4, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP),
|
||||||
buildInfo(APP_5_UID, APP_5, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP)));
|
buildInfo(APP_5_UID, APP_5, 0 /* flags */, Build.VERSION_CODES.LOLLIPOP)));
|
||||||
|
|
||||||
// Grant run-time permissions as appropriate.
|
// Grant run-time permissions as appropriate.
|
||||||
when(mDevicePolicyManager.getPermissionGrantState(null, APP_1, PERMISSION_1))
|
when(mDevicePolicyManager.getPermissionGrantState(null, APP_1, PERMISSION_1))
|
||||||
@@ -164,9 +163,9 @@ public final class AppWithAdminGrantedPermissionsListerTest {
|
|||||||
// The second user has one app installed. This app uses run-time permissions. It has been
|
// The second user has one app installed. This app uses run-time permissions. It has been
|
||||||
// granted both permissions by the admin. It should be listed.
|
// granted both permissions by the admin. It should be listed.
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
||||||
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(
|
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(
|
||||||
buildInfo(APP_6_UID, APP_6, 0 /* flags */, Build.VERSION_CODES.M)));
|
buildInfo(APP_6_UID, APP_6, 0 /* flags */, Build.VERSION_CODES.M)));
|
||||||
|
|
||||||
// Grant run-time permissions as appropriate.
|
// Grant run-time permissions as appropriate.
|
||||||
when(mDevicePolicyManager.getPermissionGrantState(eq(null), eq(APP_6), anyObject()))
|
when(mDevicePolicyManager.getPermissionGrantState(eq(null), eq(APP_6), anyObject()))
|
||||||
|
@@ -33,7 +33,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.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
@@ -75,7 +74,7 @@ public final class ApplicationFeatureProviderImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private IPackageManagerWrapper mPackageManagerService;
|
private IPackageManagerWrapper mPackageManagerService;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
private ApplicationFeatureProvider mProvider;
|
private ApplicationFeatureProvider mProvider;
|
||||||
|
|
||||||
@@ -258,16 +257,16 @@ public final class ApplicationFeatureProviderImplTest {
|
|||||||
new UserInfo(MANAGED_PROFILE_ID, "managed profile", 0)));
|
new UserInfo(MANAGED_PROFILE_ID, "managed profile", 0)));
|
||||||
|
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
|
||||||
| PackageManager.MATCH_ANY_USER,
|
| PackageManager.MATCH_ANY_USER,
|
||||||
MAIN_USER_ID)).thenReturn(Arrays.asList(
|
MAIN_USER_ID)).thenReturn(Arrays.asList(
|
||||||
ApplicationTestUtils.buildInfo(APP_1_UID, APP_1, 0 /* flags */,
|
ApplicationTestUtils.buildInfo(APP_1_UID, APP_1, 0 /* flags */,
|
||||||
Build.VERSION_CODES.M)));
|
Build.VERSION_CODES.M)));
|
||||||
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
|
||||||
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
|
||||||
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(
|
MANAGED_PROFILE_ID)).thenReturn(Arrays.asList(
|
||||||
ApplicationTestUtils.buildInfo(APP_2_UID, APP_2, 0 /* flags */,
|
ApplicationTestUtils.buildInfo(APP_2_UID, APP_2, 0 /* flags */,
|
||||||
Build.VERSION_CODES.LOLLIPOP)));
|
Build.VERSION_CODES.LOLLIPOP)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ResolveInfo createResolveInfo(String packageName) {
|
private ResolveInfo createResolveInfo(String packageName) {
|
||||||
|
@@ -17,7 +17,6 @@
|
|||||||
package com.android.settings.applications.appinfo;
|
package com.android.settings.applications.appinfo;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.argThat;
|
import static org.mockito.ArgumentMatchers.argThat;
|
||||||
@@ -28,6 +27,7 @@ import static org.mockito.Mockito.spy;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -47,7 +47,6 @@ import com.android.settings.testutils.FakeFeatureFactory;
|
|||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.widget.ActionButtonPreference;
|
import com.android.settings.widget.ActionButtonPreference;
|
||||||
import com.android.settings.widget.ActionButtonPreferenceTest;
|
import com.android.settings.widget.ActionButtonPreferenceTest;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
@@ -74,7 +73,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
@Mock
|
@Mock
|
||||||
private AppInfoDashboardFragment mFragment;
|
private AppInfoDashboardFragment mFragment;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -108,7 +107,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_notInstantApp_shouldReturnAvailable() {
|
public void getAvailabilityStatus_notInstantApp_shouldReturnAvailable() {
|
||||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||||
(InstantAppDataProvider) (i -> false));
|
(InstantAppDataProvider) (i -> false));
|
||||||
|
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.AVAILABLE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.AVAILABLE);
|
||||||
}
|
}
|
||||||
@@ -116,7 +115,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_isInstantApp_shouldReturnDisabled() {
|
public void getAvailabilityStatus_isInstantApp_shouldReturnDisabled() {
|
||||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||||
(InstantAppDataProvider) (i -> true));
|
(InstantAppDataProvider) (i -> true));
|
||||||
|
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.DISABLED_FOR_USER);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.DISABLED_FOR_USER);
|
||||||
}
|
}
|
||||||
@@ -220,7 +219,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void checkForceStop_isStateProtected_shouldDisableForceStop() {
|
public void checkForceStop_isStateProtected_shouldDisableForceStop() {
|
||||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||||
(InstantAppDataProvider) (i -> false));
|
(InstantAppDataProvider) (i -> false));
|
||||||
final String packageName = "Package1";
|
final String packageName = "Package1";
|
||||||
final PackageInfo packageInfo = new PackageInfo();
|
final PackageInfo packageInfo = new PackageInfo();
|
||||||
packageInfo.packageName = packageName;
|
packageInfo.packageName = packageName;
|
||||||
@@ -228,7 +227,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
appInfo.uid = 42;
|
appInfo.uid = 42;
|
||||||
appInfo.sourceDir = "source";
|
appInfo.sourceDir = "source";
|
||||||
final ApplicationsState.AppEntry appEntry = new ApplicationsState.AppEntry(
|
final ApplicationsState.AppEntry appEntry = new ApplicationsState.AppEntry(
|
||||||
mContext, appInfo, 0);
|
mContext, appInfo, 0);
|
||||||
when(mPackageManager.isPackageStateProtected(packageName, 0)).thenReturn(true);
|
when(mPackageManager.isPackageStateProtected(packageName, 0)).thenReturn(true);
|
||||||
|
|
||||||
mController.checkForceStop(appEntry, packageInfo);
|
mController.checkForceStop(appEntry, packageInfo);
|
||||||
@@ -278,7 +277,7 @@ public class AppActionButtonPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.checkForceStop(appEntry, packageInfo);
|
mController.checkForceStop(appEntry, packageInfo);
|
||||||
|
|
||||||
verify(mContext).sendOrderedBroadcastAsUser(argThat(intent-> intent != null
|
verify(mContext).sendOrderedBroadcastAsUser(argThat(intent -> intent != null
|
||||||
&& intent.getAction().equals(Intent.ACTION_QUERY_PACKAGE_RESTART)),
|
&& intent.getAction().equals(Intent.ACTION_QUERY_PACKAGE_RESTART)),
|
||||||
any(UserHandle.class), nullable(String.class), any(BroadcastReceiver.class),
|
any(UserHandle.class), nullable(String.class), any(BroadcastReceiver.class),
|
||||||
nullable(Handler.class), anyInt(), nullable(String.class), nullable(Bundle.class));
|
nullable(Handler.class), anyInt(), nullable(String.class), nullable(Bundle.class));
|
||||||
|
@@ -17,7 +17,8 @@
|
|||||||
package com.android.settings.applications.appinfo;
|
package com.android.settings.applications.appinfo;
|
||||||
|
|
||||||
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment.ARG_PACKAGE_NAME;
|
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment.ARG_PACKAGE_NAME;
|
||||||
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment.UNINSTALL_ALL_USERS_MENU;
|
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment
|
||||||
|
.UNINSTALL_ALL_USERS_MENU;
|
||||||
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment.UNINSTALL_UPDATES;
|
import static com.android.settings.applications.appinfo.AppInfoDashboardFragment.UNINSTALL_UPDATES;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
@@ -31,6 +32,7 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
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.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -45,7 +47,6 @@ import android.view.MenuItem;
|
|||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||||
@@ -75,7 +76,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private SettingsActivity mActivity;
|
private SettingsActivity mActivity;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
@Mock
|
@Mock
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
|
|
||||||
@@ -249,7 +250,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getNumberOfUserWithPackageInstalled_twoUsersInstalled_shouldReturnTwo()
|
public void getNumberOfUserWithPackageInstalled_twoUsersInstalled_shouldReturnTwo()
|
||||||
throws PackageManager.NameNotFoundException{
|
throws PackageManager.NameNotFoundException {
|
||||||
final String packageName = "Package1";
|
final String packageName = "Package1";
|
||||||
final int userID1 = 1;
|
final int userID1 = 1;
|
||||||
final int userID2 = 2;
|
final int userID2 = 2;
|
||||||
@@ -273,7 +274,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getNumberOfUserWithPackageInstalled_oneUserInstalled_shouldReturnOne()
|
public void getNumberOfUserWithPackageInstalled_oneUserInstalled_shouldReturnOne()
|
||||||
throws PackageManager.NameNotFoundException{
|
throws PackageManager.NameNotFoundException {
|
||||||
final String packageName = "Package1";
|
final String packageName = "Package1";
|
||||||
final int userID1 = 1;
|
final int userID1 = 1;
|
||||||
final int userID2 = 2;
|
final int userID2 = 2;
|
||||||
@@ -311,7 +312,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
@Test
|
@Test
|
||||||
public void startAppInfoFragment_noCrashOnNullArgs() {
|
public void startAppInfoFragment_noCrashOnNullArgs() {
|
||||||
final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class);
|
final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class);
|
||||||
final SettingsActivity sa = mock (SettingsActivity.class);
|
final SettingsActivity sa = mock(SettingsActivity.class);
|
||||||
when(caller.getActivity()).thenReturn(sa);
|
when(caller.getActivity()).thenReturn(sa);
|
||||||
when(caller.getContext()).thenReturn(sa);
|
when(caller.getContext()).thenReturn(sa);
|
||||||
final AppEntry appEntry = mock(AppEntry.class);
|
final AppEntry appEntry = mock(AppEntry.class);
|
||||||
@@ -324,7 +325,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
@Test
|
@Test
|
||||||
public void startAppInfoFragment_includesNewAndOldArgs() {
|
public void startAppInfoFragment_includesNewAndOldArgs() {
|
||||||
final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class);
|
final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class);
|
||||||
final SettingsActivity sa = mock (SettingsActivity.class);
|
final SettingsActivity sa = mock(SettingsActivity.class);
|
||||||
when(caller.getContext()).thenReturn(sa);
|
when(caller.getContext()).thenReturn(sa);
|
||||||
final AppEntry appEntry = mock(AppEntry.class);
|
final AppEntry appEntry = mock(AppEntry.class);
|
||||||
appEntry.info = mock(ApplicationInfo.class);
|
appEntry.info = mock(ApplicationInfo.class);
|
||||||
@@ -339,10 +340,10 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
|
|
||||||
verify(caller).startActivityForResult(intent.capture(), any(Integer.class));
|
verify(caller).startActivityForResult(intent.capture(), any(Integer.class));
|
||||||
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
|
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
|
||||||
.containsKey("test"))
|
.containsKey("test"))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
|
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
|
||||||
.containsKey(ARG_PACKAGE_NAME))
|
.containsKey(ARG_PACKAGE_NAME))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ import android.provider.Settings;
|
|||||||
|
|
||||||
import com.android.settings.TimeoutListPreference;
|
import com.android.settings.TimeoutListPreference;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManagerWrapper;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -50,7 +50,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(shadows = ShadowDevicePolicyManagerWrapper.class)
|
@Config(shadows = ShadowDevicePolicyManager.class)
|
||||||
public class TimeoutPreferenceControllerTest {
|
public class TimeoutPreferenceControllerTest {
|
||||||
|
|
||||||
private static final int TIMEOUT = 30;
|
private static final int TIMEOUT = 30;
|
||||||
@@ -93,7 +93,7 @@ public class TimeoutPreferenceControllerTest {
|
|||||||
final int profileUserId = UserHandle.myUserId();
|
final int profileUserId = UserHandle.myUserId();
|
||||||
final long timeout = 10000;
|
final long timeout = 10000;
|
||||||
when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
|
when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
|
||||||
ShadowDevicePolicyManagerWrapper.setMaximumTimeToLock(profileUserId, timeout);
|
ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(profileUserId, timeout);
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
verify(mPreference).removeUnusableTimeouts(timeout, null);
|
verify(mPreference).removeUnusableTimeouts(timeout, null);
|
||||||
@@ -104,7 +104,7 @@ public class TimeoutPreferenceControllerTest {
|
|||||||
final int profileUserId = UserHandle.myUserId();
|
final int profileUserId = UserHandle.myUserId();
|
||||||
final long timeout = 100;
|
final long timeout = 100;
|
||||||
when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
|
when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
|
||||||
ShadowDevicePolicyManagerWrapper.setMaximumTimeToLock(profileUserId, timeout);
|
ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(profileUserId, timeout);
|
||||||
|
|
||||||
int userId = UserHandle.myUserId();
|
int userId = UserHandle.myUserId();
|
||||||
List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
|
List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
|
||||||
@@ -124,8 +124,8 @@ public class TimeoutPreferenceControllerTest {
|
|||||||
ArgumentCaptor<EnforcedAdmin> adminCaptor = ArgumentCaptor.forClass(EnforcedAdmin.class);
|
ArgumentCaptor<EnforcedAdmin> adminCaptor = ArgumentCaptor.forClass(EnforcedAdmin.class);
|
||||||
|
|
||||||
verify(mPreference, times(2))
|
verify(mPreference, times(2))
|
||||||
.removeUnusableTimeouts(longCaptor.capture(), adminCaptor.capture());
|
.removeUnusableTimeouts(longCaptor.capture(), adminCaptor.capture());
|
||||||
assertEquals(0, (long)longCaptor.getValue());
|
assertEquals(0, (long) longCaptor.getValue());
|
||||||
assertTrue(adminCaptor.getValue() != null);
|
assertTrue(adminCaptor.getValue() != null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -94,7 +94,7 @@ public class ActionDisabledByAdminDialogHelperTest {
|
|||||||
mHelper.showAdminPolicies(admin, mActivity);
|
mHelper.showAdminPolicies(admin, mActivity);
|
||||||
final Intent intent = mActivityShadow.getNextStartedActivity();
|
final Intent intent = mActivityShadow.getNextStartedActivity();
|
||||||
assertEquals(intent.getComponent(), new ComponentName(mActivity,
|
assertEquals(intent.getComponent(), new ComponentName(mActivity,
|
||||||
Settings.DeviceAdminSettingsActivity.class.getName()));
|
Settings.DeviceAdminSettingsActivity.class.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -139,9 +139,7 @@ public class ActionDisabledByAdminDialogHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetAdminSupportDetails() {
|
public void testSetAdminSupportDetails() {
|
||||||
final DevicePolicyManager dpm = RuntimeEnvironment.application.getSystemService(
|
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||||
DevicePolicyManager.class);
|
|
||||||
final ShadowDevicePolicyManager dpmShadow = Shadow.extract(dpm);
|
|
||||||
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
||||||
UserManager.class);
|
UserManager.class);
|
||||||
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
||||||
@@ -165,9 +163,7 @@ public class ActionDisabledByAdminDialogHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetAdminSupportDetailsNotAdmin() {
|
public void testSetAdminSupportDetailsNotAdmin() {
|
||||||
final DevicePolicyManager dpm = RuntimeEnvironment.application.getSystemService(
|
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||||
DevicePolicyManager.class);
|
|
||||||
final ShadowDevicePolicyManager dpmShadow = Shadow.extract(dpm);
|
|
||||||
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
||||||
UserManager.class);
|
UserManager.class);
|
||||||
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
||||||
|
@@ -21,6 +21,7 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -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.settings.wrapper.ConnectivityManagerWrapper;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -68,7 +68,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
private List<UserInfo> mProfiles = new ArrayList<>();
|
private List<UserInfo> mProfiles = new ArrayList<>();
|
||||||
|
|
||||||
private @Mock Context mContext;
|
private @Mock Context mContext;
|
||||||
private @Mock DevicePolicyManagerWrapper mDevicePolicyManager;
|
private @Mock DevicePolicyManager mDevicePolicyManager;
|
||||||
private @Mock PackageManagerWrapper mPackageManagerWrapper;
|
private @Mock PackageManagerWrapper mPackageManagerWrapper;
|
||||||
private @Mock PackageManager mPackageManager;
|
private @Mock PackageManager mPackageManager;
|
||||||
private @Mock UserManager mUserManager;
|
private @Mock UserManager mUserManager;
|
||||||
|
@@ -34,6 +34,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
|
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.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -46,7 +47,6 @@ import com.android.settings.SettingsActivity;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.widget.ActionButtonPreference;
|
import com.android.settings.widget.ActionButtonPreference;
|
||||||
import com.android.settings.widget.ActionButtonPreferenceTest;
|
import com.android.settings.widget.ActionButtonPreferenceTest;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||||
@@ -87,7 +87,7 @@ public class AppButtonsPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private PackageManager mPackageManger;
|
private PackageManager mPackageManger;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
@Mock
|
@Mock
|
||||||
private ActivityManager mAm;
|
private ActivityManager mAm;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -367,7 +367,7 @@ public class AppButtonsPreferenceControllerTest {
|
|||||||
* {@link ButtonActionDialogFragment.AppButtonsDialogListener}
|
* {@link ButtonActionDialogFragment.AppButtonsDialogListener}
|
||||||
*/
|
*/
|
||||||
public static class TestFragment extends Fragment
|
public static class TestFragment extends Fragment
|
||||||
implements ButtonActionDialogFragment.AppButtonsDialogListener {
|
implements ButtonActionDialogFragment.AppButtonsDialogListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleDialogClick(int type) {
|
public void handleDialogClick(int type) {
|
||||||
|
@@ -38,7 +38,6 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -74,7 +73,7 @@ public class BackgroundActivityPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManagerWrapper mDevicePolicyManagerWrapper;
|
private DevicePolicyManager mDevicePolicyManagerWrapper;
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private AdvancedPowerUsageDetail mFragment;
|
private AdvancedPowerUsageDetail mFragment;
|
||||||
@Mock
|
@Mock
|
||||||
|
@@ -34,7 +34,7 @@ import com.android.settings.TimeoutListPreference;
|
|||||||
import com.android.settings.security.trustagent.TrustAgentManager;
|
import com.android.settings.security.trustagent.TrustAgentManager;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManagerWrapper;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -47,7 +47,7 @@ import org.robolectric.annotation.Config;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(shadows = ShadowDevicePolicyManagerWrapper.class)
|
@Config(shadows = ShadowDevicePolicyManager.class)
|
||||||
public class LockAfterTimeoutPreferenceControllerTest {
|
public class LockAfterTimeoutPreferenceControllerTest {
|
||||||
|
|
||||||
private static final int TEST_USER_ID = 0;
|
private static final int TEST_USER_ID = 0;
|
||||||
@@ -120,11 +120,11 @@ public class LockAfterTimeoutPreferenceControllerTest {
|
|||||||
when(um.getProfiles(userId)).thenReturn(Collections.emptyList());
|
when(um.getProfiles(userId)).thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
// Fake list of timeout values.
|
// Fake list of timeout values.
|
||||||
when(mPreference.getEntries()).thenReturn(new CharSequence[] {"10"} );
|
when(mPreference.getEntries()).thenReturn(new CharSequence[] {"10"});
|
||||||
when(mPreference.getEntryValues()).thenReturn(new CharSequence[] {"10000"} );
|
when(mPreference.getEntryValues()).thenReturn(new CharSequence[] {"10000"});
|
||||||
|
|
||||||
Settings.System.putInt(mContext.getContentResolver(), SCREEN_OFF_TIMEOUT, displayTimeout);
|
Settings.System.putInt(mContext.getContentResolver(), SCREEN_OFF_TIMEOUT, displayTimeout);
|
||||||
ShadowDevicePolicyManagerWrapper.setMaximumTimeToLock(userId, adminTimeout);
|
ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(userId, adminTimeout);
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
|
@@ -2,33 +2,35 @@ package com.android.settings.testutils.shadow;
|
|||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
import android.annotation.UserIdInt;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Implementation;
|
import org.robolectric.annotation.Implementation;
|
||||||
import org.robolectric.annotation.Implements;
|
import org.robolectric.annotation.Implements;
|
||||||
|
import org.robolectric.shadow.api.Shadow;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import org.robolectric.shadow.api.Shadow;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This shadow if using {@link ShadowDevicePolicyManagerWrapper} is not possible.
|
|
||||||
*/
|
|
||||||
@Implements(DevicePolicyManager.class)
|
@Implements(DevicePolicyManager.class)
|
||||||
public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDevicePolicyManager {
|
public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDevicePolicyManager {
|
||||||
|
|
||||||
|
private final Map<Integer, Long> mProfileTimeouts = new HashMap<>();
|
||||||
private Map<Integer, CharSequence> mSupportMessagesMap = new HashMap<>();
|
private Map<Integer, CharSequence> mSupportMessagesMap = new HashMap<>();
|
||||||
private boolean mIsAdminActiveAsUser = false;
|
private boolean mIsAdminActiveAsUser = false;
|
||||||
ComponentName mDeviceOwnerComponentName;
|
ComponentName mDeviceOwnerComponentName;
|
||||||
|
private int mDeviceOwnerUserId = -1;
|
||||||
|
|
||||||
public void setShortSupportMessageForUser(ComponentName admin, int userHandle, String message) {
|
public void setShortSupportMessageForUser(ComponentName admin, int userHandle, String message) {
|
||||||
mSupportMessagesMap.put(Objects.hash(admin, userHandle), message);
|
mSupportMessagesMap.put(Objects.hash(admin, userHandle), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Implementation
|
@Implementation
|
||||||
public @Nullable CharSequence getShortSupportMessageForUser(@NonNull ComponentName admin,
|
public @Nullable
|
||||||
|
CharSequence getShortSupportMessageForUser(@NonNull ComponentName admin,
|
||||||
int userHandle) {
|
int userHandle) {
|
||||||
return mSupportMessagesMap.get(Objects.hash(admin, userHandle));
|
return mSupportMessagesMap.get(Objects.hash(admin, userHandle));
|
||||||
}
|
}
|
||||||
@@ -38,20 +40,39 @@ public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDev
|
|||||||
return mIsAdminActiveAsUser;
|
return mIsAdminActiveAsUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public int getDeviceOwnerUserId() {
|
||||||
|
return mDeviceOwnerUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public long getMaximumTimeToLock(ComponentName admin, @UserIdInt int userHandle) {
|
||||||
|
return mProfileTimeouts.getOrDefault(userHandle, 0L);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public ComponentName getDeviceOwnerComponentOnAnyUser() {
|
||||||
|
return mDeviceOwnerComponentName;
|
||||||
|
}
|
||||||
|
|
||||||
public void setIsAdminActiveAsUser(boolean active) {
|
public void setIsAdminActiveAsUser(boolean active) {
|
||||||
mIsAdminActiveAsUser = active;
|
mIsAdminActiveAsUser = active;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ShadowDevicePolicyManager getShadow() {
|
public void setDeviceOwnerUserId(int id) {
|
||||||
return (ShadowDevicePolicyManager) Shadow.extract(
|
mDeviceOwnerUserId = id;
|
||||||
RuntimeEnvironment.application.getSystemService(DevicePolicyManager.class));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComponentName getDeviceOwnerComponentOnAnyUser() {
|
public void setMaximumTimeToLock(@UserIdInt int userHandle, Long timeout) {
|
||||||
return mDeviceOwnerComponentName;
|
mProfileTimeouts.put(userHandle, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeviceOwnerComponentOnAnyUser(ComponentName admin) {
|
public void setDeviceOwnerComponentOnAnyUser(ComponentName admin) {
|
||||||
mDeviceOwnerComponentName = admin;
|
mDeviceOwnerComponentName = admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ShadowDevicePolicyManager getShadow() {
|
||||||
|
return (ShadowDevicePolicyManager) Shadow.extract(
|
||||||
|
RuntimeEnvironment.application.getSystemService(DevicePolicyManager.class));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,65 +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.testutils.shadow;
|
|
||||||
|
|
||||||
import android.annotation.UserIdInt;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
|
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|
||||||
|
|
||||||
import org.robolectric.annotation.Implementation;
|
|
||||||
import org.robolectric.annotation.Implements;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shadow for {@link DevicePolicyManagerWrapper} to allow stubbing hidden methods.
|
|
||||||
*/
|
|
||||||
@Implements(DevicePolicyManagerWrapper.class)
|
|
||||||
public class ShadowDevicePolicyManagerWrapper {
|
|
||||||
private static ComponentName deviceOComponentName = null;
|
|
||||||
private static int deviceOwnerUserId = -1;
|
|
||||||
private static final Map<Integer, Long> profileTimeouts = new HashMap<>();
|
|
||||||
|
|
||||||
@Implementation
|
|
||||||
public ComponentName getDeviceOwnerComponentOnAnyUser() {
|
|
||||||
return deviceOComponentName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Implementation
|
|
||||||
public int getDeviceOwnerUserId() {
|
|
||||||
return deviceOwnerUserId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Implementation
|
|
||||||
public long getMaximumTimeToLock(ComponentName admin, @UserIdInt int userHandle) {
|
|
||||||
return profileTimeouts.getOrDefault(userHandle, 0L);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setDeviceOComponentName(ComponentName deviceOComponentName) {
|
|
||||||
ShadowDevicePolicyManagerWrapper.deviceOComponentName = deviceOComponentName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setDeviceOwnerUserId(int deviceOwnerUserId) {
|
|
||||||
ShadowDevicePolicyManagerWrapper.deviceOwnerUserId = deviceOwnerUserId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setMaximumTimeToLock(@UserIdInt int userHandle, Long timeout) {
|
|
||||||
profileTimeouts.put(userHandle, timeout);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -63,7 +63,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.applications.LayoutPreference;
|
import com.android.settings.applications.LayoutPreference;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.testutils.shadow.ShadowBidiFormatter;
|
import com.android.settings.testutils.shadow.ShadowBidiFormatter;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManagerWrapper;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
||||||
import com.android.settings.testutils.shadow.ShadowPackageManagerWrapper;
|
import com.android.settings.testutils.shadow.ShadowPackageManagerWrapper;
|
||||||
import com.android.settings.widget.ActionButtonPreference;
|
import com.android.settings.widget.ActionButtonPreference;
|
||||||
@@ -96,10 +96,10 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(shadows = {
|
@Config(shadows = {
|
||||||
ShadowDevicePolicyManagerWrapper.class,
|
ShadowDevicePolicyManager.class,
|
||||||
ShadowEntityHeaderController.class,
|
ShadowEntityHeaderController.class,
|
||||||
ShadowPackageManagerWrapper.class,
|
ShadowPackageManagerWrapper.class,
|
||||||
ShadowBidiFormatter.class
|
ShadowBidiFormatter.class
|
||||||
})
|
})
|
||||||
public class WifiDetailPreferenceControllerTest {
|
public class WifiDetailPreferenceControllerTest {
|
||||||
|
|
||||||
@@ -372,7 +372,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
mController.onPause();
|
mController.onPause();
|
||||||
|
|
||||||
verify(mockConnectivityManager, times(1))
|
verify(mockConnectivityManager, times(1))
|
||||||
.unregisterNetworkCallback(mCallbackCaptor.getValue());
|
.unregisterNetworkCallback(mCallbackCaptor.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -469,16 +469,16 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void dnsServersPref_shouldHaveDetailTextSet() throws UnknownHostException {
|
public void dnsServersPref_shouldHaveDetailTextSet() throws UnknownHostException {
|
||||||
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,4,4}));
|
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[] {8, 8, 4, 4}));
|
||||||
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,8,8}));
|
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[] {8, 8, 8, 8}));
|
||||||
mLinkProperties.addDnsServer(Constants.IPV6_DNS);
|
mLinkProperties.addDnsServer(Constants.IPV6_DNS);
|
||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
verify(mockDnsPref).setDetailText(
|
verify(mockDnsPref).setDetailText(
|
||||||
"8.8.4.4\n" +
|
"8.8.4.4\n" +
|
||||||
"8.8.8.8\n" +
|
"8.8.8.8\n" +
|
||||||
Constants.IPV6_DNS.getHostAddress());
|
Constants.IPV6_DNS.getHostAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -591,8 +591,8 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
updateLinkProperties(lp);
|
updateLinkProperties(lp);
|
||||||
inOrder.verify(mockDnsPref).setDetailText(
|
inOrder.verify(mockDnsPref).setDetailText(
|
||||||
Constants.IPV6_DNS.getHostAddress() + "\n" +
|
Constants.IPV6_DNS.getHostAddress() + "\n" +
|
||||||
Constants.IPV4_DNS1.getHostAddress() + "\n" +
|
Constants.IPV4_DNS1.getHostAddress() + "\n" +
|
||||||
Constants.IPV4_DNS2.getHostAddress());
|
Constants.IPV4_DNS2.getHostAddress());
|
||||||
inOrder.verify(mockDnsPref).setVisible(true);
|
inOrder.verify(mockDnsPref).setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -693,8 +693,8 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
mockWifiConfig.creatorUid = doUid;
|
mockWifiConfig.creatorUid = doUid;
|
||||||
ComponentName doComponent = new ComponentName(doPackage, "some.Class");
|
ComponentName doComponent = new ComponentName(doPackage, "some.Class");
|
||||||
ShadowPackageManagerWrapper.setPackageUidAsUser(doPackage, doUserId, doUid);
|
ShadowPackageManagerWrapper.setPackageUidAsUser(doPackage, doUserId, doUid);
|
||||||
ShadowDevicePolicyManagerWrapper.setDeviceOComponentName(doComponent);
|
ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(doComponent);
|
||||||
ShadowDevicePolicyManagerWrapper.setDeviceOwnerUserId(doUserId);
|
ShadowDevicePolicyManager.getShadow().setDeviceOwnerUserId(doUserId);
|
||||||
|
|
||||||
Settings.Global.putInt(mContext.getContentResolver(),
|
Settings.Global.putInt(mContext.getContentResolver(),
|
||||||
Settings.Global.WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN, 1);
|
Settings.Global.WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN, 1);
|
||||||
@@ -779,7 +779,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
List <Preference> addrs = mIpv6AddressCaptor.getAllValues();
|
List<Preference> addrs = mIpv6AddressCaptor.getAllValues();
|
||||||
|
|
||||||
String expectedAddresses = String.join("\n",
|
String expectedAddresses = String.join("\n",
|
||||||
asString(Constants.IPV6_LINKLOCAL),
|
asString(Constants.IPV6_LINKLOCAL),
|
||||||
@@ -840,6 +840,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
verify(mockAccessPoint, times(2)).getLevel();
|
verify(mockAccessPoint, times(2)).getLevel();
|
||||||
verify(mockIconInjector, times(1)).getIcon(anyInt());
|
verify(mockIconInjector, times(1)).getIcon(anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRefreshRssiViews_shouldUpdateOnLevelChange() {
|
public void testRefreshRssiViews_shouldUpdateOnLevelChange() {
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
Reference in New Issue
Block a user