Merge "Change retail mode wallpaper (1/2)" into nyc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c7136b3b3c
@@ -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.
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user