Merge "Change retail mode wallpaper (1/2)" into nyc-dr1-dev

This commit is contained in:
TreeHugger Robot
2016-08-22 22:55:12 +00:00
committed by Android (Google) Code Review
3 changed files with 22 additions and 7 deletions

View File

@@ -44,7 +44,7 @@ interface IWallpaperManager {
*/ */
ParcelFileDescriptor setWallpaper(String name, in String callingPackage, ParcelFileDescriptor setWallpaper(String name, in String callingPackage,
in Rect cropHint, boolean allowBackup, out Bundle extras, int which, in Rect cropHint, boolean allowBackup, out Bundle extras, int which,
IWallpaperManagerCallback completion); IWallpaperManagerCallback completion, int userId);
/** /**
* Set the live wallpaper. This only affects the system wallpaper. * Set the live wallpaper. This only affects the system wallpaper.

View File

@@ -48,6 +48,7 @@ import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.SystemProperties; import android.os.SystemProperties;
@@ -939,7 +940,8 @@ public class WallpaperManager {
/* Set the wallpaper to the default values */ /* Set the wallpaper to the default values */
ParcelFileDescriptor fd = sGlobals.mService.setWallpaper( ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(
"res:" + resources.getResourceName(resid), "res:" + resources.getResourceName(resid),
mContext.getOpPackageName(), null, false, result, which, completion); mContext.getOpPackageName(), null, false, result, which, completion,
UserHandle.myUserId());
if (fd != null) { if (fd != null) {
FileOutputStream fos = null; FileOutputStream fos = null;
boolean ok = false; boolean ok = false;
@@ -1040,6 +1042,19 @@ public class WallpaperManager {
public int setBitmap(Bitmap fullImage, Rect visibleCropHint, public int setBitmap(Bitmap fullImage, Rect visibleCropHint,
boolean allowBackup, @SetWallpaperFlags int which) boolean allowBackup, @SetWallpaperFlags int which)
throws IOException { throws IOException {
return setBitmap(fullImage, visibleCropHint, allowBackup, which,
UserHandle.myUserId());
}
/**
* Like {@link #setBitmap(Bitmap, Rect, boolean, int)}, but allows to pass in an explicit user
* id. If the user id doesn't match the user id the process is running under, calling this
* requires permission {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL}.
* @hide
*/
public int setBitmap(Bitmap fullImage, Rect visibleCropHint,
boolean allowBackup, @SetWallpaperFlags int which, int userId)
throws IOException {
validateRect(visibleCropHint); validateRect(visibleCropHint);
if (sGlobals.mService == null) { if (sGlobals.mService == null) {
Log.w(TAG, "WallpaperService not running"); Log.w(TAG, "WallpaperService not running");
@@ -1050,7 +1065,7 @@ public class WallpaperManager {
try { try {
ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null, ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null,
mContext.getOpPackageName(), visibleCropHint, allowBackup, mContext.getOpPackageName(), visibleCropHint, allowBackup,
result, which, completion); result, which, completion, userId);
if (fd != null) { if (fd != null) {
FileOutputStream fos = null; FileOutputStream fos = null;
try { try {
@@ -1176,7 +1191,7 @@ public class WallpaperManager {
try { try {
ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null, ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null,
mContext.getOpPackageName(), visibleCropHint, allowBackup, mContext.getOpPackageName(), visibleCropHint, allowBackup,
result, which, completion); result, which, completion, UserHandle.myUserId());
if (fd != null) { if (fd != null) {
FileOutputStream fos = null; FileOutputStream fos = null;
try { try {

View File

@@ -1350,7 +1350,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
@Override @Override
public ParcelFileDescriptor setWallpaper(String name, String callingPackage, public ParcelFileDescriptor setWallpaper(String name, String callingPackage,
Rect cropHint, boolean allowBackup, Bundle extras, int which, Rect cropHint, boolean allowBackup, Bundle extras, int which,
IWallpaperManagerCallback completion) { IWallpaperManagerCallback completion, int userId) {
userId = ActivityManager.handleIncomingUser(getCallingPid(), getCallingUid(), userId,
false /* all */, true /* full */, "changing wallpaper", null /* pkg */);
checkPermission(android.Manifest.permission.SET_WALLPAPER); checkPermission(android.Manifest.permission.SET_WALLPAPER);
if ((which & (FLAG_LOCK|FLAG_SYSTEM)) == 0) { if ((which & (FLAG_LOCK|FLAG_SYSTEM)) == 0) {
@@ -1374,8 +1376,6 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
} }
} }
final int userId = UserHandle.getCallingUserId();
synchronized (mLock) { synchronized (mLock) {
if (DEBUG) Slog.v(TAG, "setWallpaper which=0x" + Integer.toHexString(which)); if (DEBUG) Slog.v(TAG, "setWallpaper which=0x" + Integer.toHexString(which));
WallpaperData wallpaper; WallpaperData wallpaper;