Merge "Allow device and profile owners to set a user icon."
This commit is contained in:
committed by
Android (Google) Code Review
commit
2482100fed
@@ -5547,6 +5547,7 @@ package android.app.admin {
|
||||
method public int setStorageEncryption(android.content.ComponentName, boolean);
|
||||
method public void setUninstallBlocked(android.content.ComponentName, java.lang.String, boolean);
|
||||
method public boolean setUserEnabled(android.content.ComponentName);
|
||||
method public void setUserIcon(android.content.ComponentName, android.graphics.Bitmap);
|
||||
method public boolean switchUser(android.content.ComponentName, android.os.UserHandle);
|
||||
method public void uninstallAllUserCaCerts(android.content.ComponentName);
|
||||
method public void uninstallCaCert(android.content.ComponentName, byte[]);
|
||||
|
||||
@@ -5649,6 +5649,7 @@ package android.app.admin {
|
||||
method public int setStorageEncryption(android.content.ComponentName, boolean);
|
||||
method public void setUninstallBlocked(android.content.ComponentName, java.lang.String, boolean);
|
||||
method public boolean setUserEnabled(android.content.ComponentName);
|
||||
method public void setUserIcon(android.content.ComponentName, android.graphics.Bitmap);
|
||||
method public boolean switchUser(android.content.ComponentName, android.os.UserHandle);
|
||||
method public void uninstallAllUserCaCerts(android.content.ComponentName);
|
||||
method public void uninstallCaCert(android.content.ComponentName, byte[]);
|
||||
|
||||
@@ -28,6 +28,7 @@ import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.ProxyInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -3742,4 +3743,18 @@ public class DevicePolicyManager {
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by profile or device owners to set the current user's photo.
|
||||
*
|
||||
* @param admin Which {@link DeviceAdminReceiver} this request is associated with.
|
||||
* @param icon the bitmap to set as the photo.
|
||||
*/
|
||||
public void setUserIcon(ComponentName admin, Bitmap icon) {
|
||||
try {
|
||||
mService.setUserIcon(admin, icon);
|
||||
} catch (RemoteException re) {
|
||||
Log.w(TAG, "Could not set the user icon ", re);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ package android.app.admin;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.ProxyInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.PersistableBundle;
|
||||
@@ -205,4 +206,6 @@ interface IDevicePolicyManager {
|
||||
void clearDeviceInitializer(in ComponentName who);
|
||||
boolean setDeviceInitializer(in ComponentName who, in ComponentName initializer, String initializerName);
|
||||
String getDeviceInitializer();
|
||||
|
||||
void setUserIcon(in ComponentName admin, in Bitmap icon);
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.database.ContentObserver;
|
||||
import android.graphics.Bitmap;
|
||||
import android.hardware.usb.UsbManager;
|
||||
import android.media.AudioManager;
|
||||
import android.media.IAudioService;
|
||||
@@ -5491,6 +5492,22 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserIcon(ComponentName who, Bitmap icon) {
|
||||
synchronized (this) {
|
||||
Preconditions.checkNotNull(who, "ComponentName is null");
|
||||
getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
|
||||
|
||||
int userId = UserHandle.getCallingUserId();
|
||||
long id = Binder.clearCallingIdentity();
|
||||
try {
|
||||
mUserManager.setUserIcon(userId, icon);
|
||||
} finally {
|
||||
restoreCallingIdentity(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* We need to update the internal state of whether a user has completed setup once. After
|
||||
* that, we ignore any changes that reset the Settings.Secure.USER_SETUP_COMPLETE changes
|
||||
|
||||
Reference in New Issue
Block a user