Merge "Api change of DPM.setApplicationRestrictionsManagingPackage()" into nyc-dev
am: d3c0cf5
* commit 'd3c0cf50b6c8e71c0c409abcd3b8c32f98f7cb71':
Api change of DPM.setApplicationRestrictionsManagingPackage()
This commit is contained in:
@@ -5913,7 +5913,7 @@ package android.app.admin {
|
||||
method public boolean setAlwaysOnVpnPackage(android.content.ComponentName, java.lang.String);
|
||||
method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean);
|
||||
method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
|
||||
method public void setAutoTimeRequired(android.content.ComponentName, boolean);
|
||||
method public void setBluetoothContactSharingDisabled(android.content.ComponentName, boolean);
|
||||
method public void setCameraDisabled(android.content.ComponentName, boolean);
|
||||
|
||||
@@ -6061,7 +6061,7 @@ package android.app.admin {
|
||||
method public boolean setAlwaysOnVpnPackage(android.content.ComponentName, java.lang.String);
|
||||
method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean);
|
||||
method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
|
||||
method public void setAutoTimeRequired(android.content.ComponentName, boolean);
|
||||
method public void setBluetoothContactSharingDisabled(android.content.ComponentName, boolean);
|
||||
method public void setCameraDisabled(android.content.ComponentName, boolean);
|
||||
|
||||
@@ -5917,7 +5917,7 @@ package android.app.admin {
|
||||
method public boolean setAlwaysOnVpnPackage(android.content.ComponentName, java.lang.String);
|
||||
method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean);
|
||||
method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String);
|
||||
method public void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
|
||||
method public void setAutoTimeRequired(android.content.ComponentName, boolean);
|
||||
method public void setBluetoothContactSharingDisabled(android.content.ComponentName, boolean);
|
||||
method public void setCameraDisabled(android.content.ComponentName, boolean);
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.graphics.Bitmap;
|
||||
@@ -3980,18 +3981,21 @@ public class DevicePolicyManager {
|
||||
* {@code null} value or uninstalling the managing package.
|
||||
* <p>
|
||||
* The supplied application restriction managing package must be installed when calling this
|
||||
* API, otherwise an {@link IllegalArgumentException} will be thrown.
|
||||
* API, otherwise an {@link NameNotFoundException} will be thrown.
|
||||
*
|
||||
* @param admin Which {@link DeviceAdminReceiver} this request is associated with.
|
||||
* @param packageName The package name which will be given access to application restrictions
|
||||
* APIs. If {@code null} is given the current package will be cleared.
|
||||
* @throws SecurityException if {@code admin} is not a device or profile owner.
|
||||
* @throws NameNotFoundException if {@code packageName} is not found
|
||||
*/
|
||||
public void setApplicationRestrictionsManagingPackage(@NonNull ComponentName admin,
|
||||
@Nullable String packageName) {
|
||||
@Nullable String packageName) throws NameNotFoundException {
|
||||
if (mService != null) {
|
||||
try {
|
||||
mService.setApplicationRestrictionsManagingPackage(admin, packageName);
|
||||
if (!mService.setApplicationRestrictionsManagingPackage(admin, packageName)) {
|
||||
throw new NameNotFoundException(packageName);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ interface IDevicePolicyManager {
|
||||
|
||||
void setApplicationRestrictions(in ComponentName who, in String packageName, in Bundle settings);
|
||||
Bundle getApplicationRestrictions(in ComponentName who, in String packageName);
|
||||
void setApplicationRestrictionsManagingPackage(in ComponentName admin, in String packageName);
|
||||
boolean setApplicationRestrictionsManagingPackage(in ComponentName admin, in String packageName);
|
||||
String getApplicationRestrictionsManagingPackage(in ComponentName admin);
|
||||
boolean isCallerApplicationRestrictionsManagingPackage();
|
||||
|
||||
|
||||
@@ -6237,19 +6237,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setApplicationRestrictionsManagingPackage(ComponentName admin, String packageName) {
|
||||
public boolean setApplicationRestrictionsManagingPackage(ComponentName admin,
|
||||
String packageName) {
|
||||
Preconditions.checkNotNull(admin, "ComponentName is null");
|
||||
|
||||
final int userHandle = mInjector.userHandleGetCallingUserId();
|
||||
synchronized (this) {
|
||||
getActiveAdminForCallerLocked(admin, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
|
||||
if (packageName != null && !isPackageInstalledForUser(packageName, userHandle)) {
|
||||
throw new IllegalArgumentException("Package " + packageName + " is not installed "
|
||||
+ "on the current user");
|
||||
return false;
|
||||
}
|
||||
DevicePolicyData policy = getUserData(userHandle);
|
||||
policy.mApplicationRestrictionsManagingPackage = packageName;
|
||||
saveSettingsLocked(userHandle);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1117,9 +1117,9 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
dpm.setApplicationRestrictionsManagingPackage(admin1,
|
||||
nonExistAppRestrictionsManagerPackage);
|
||||
fail("Non-existent app set as app restriction manager.");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
} catch (PackageManager.NameNotFoundException expected) {
|
||||
MoreAsserts.assertContainsRegex(
|
||||
"is not installed on the current user", expected.getMessage());
|
||||
nonExistAppRestrictionsManagerPackage, expected.getMessage());
|
||||
}
|
||||
|
||||
// Let appRestrictionsManagerPackage manage app restrictions
|
||||
|
||||
Reference in New Issue
Block a user