Loading core/java/android/app/WallpaperManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -1571,11 +1571,28 @@ public class WallpaperManager { */ @Nullable public Rect peekBitmapDimensions(@SetWallpaperFlags int which, boolean returnDefault) { if (multiCrop()) { return peekBitmapDimensionsAsUser(which, returnDefault, mContext.getUserId()); } checkExactlyOneWallpaperFlagSet(which); return sGlobals.peekWallpaperDimensions(mContext, returnDefault, which, mContext.getUserId()); } /** * Overload of {@link #peekBitmapDimensions(int, boolean)} with a userId argument. * TODO(b/360120606): remove the SuppressWarnings * @hide */ @SuppressWarnings("AndroidFrameworkContextUserId") @FlaggedApi(FLAG_MULTI_CROP) @Nullable public Rect peekBitmapDimensionsAsUser(@SetWallpaperFlags int which, boolean returnDefault, int userId) { checkExactlyOneWallpaperFlagSet(which); return sGlobals.peekWallpaperDimensions(mContext, returnDefault, which, userId); } /** * For the current user, given a list of display sizes, return a list of rectangles representing * the area of the current wallpaper that would be shown for each of these sizes. Loading packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.app.WallpaperManager.FLAG_SYSTEM; import static android.app.WallpaperManager.SetWallpaperFlags; import static com.android.systemui.Flags.fixImageWallpaperCrashSurfaceAlreadyReleased; import static com.android.window.flags.Flags.multiCrop; import static com.android.window.flags.Flags.offloadColorExtraction; import android.annotation.Nullable; Loading Loading @@ -190,7 +191,10 @@ public class ImageWallpaper extends WallpaperService { } mWallpaperManager = getDisplayContext().getSystemService(WallpaperManager.class); mSurfaceHolder = surfaceHolder; Rect dimensions = mWallpaperManager.peekBitmapDimensions(getSourceFlag(), true); Rect dimensions = !multiCrop() ? mWallpaperManager.peekBitmapDimensions(getSourceFlag(), true) : mWallpaperManager.peekBitmapDimensionsAsUser(getSourceFlag(), true, mUserTracker.getUserId()); int width = Math.max(MIN_SURFACE_WIDTH, dimensions.width()); int height = Math.max(MIN_SURFACE_HEIGHT, dimensions.height()); mSurfaceHolder.setFixedSize(width, height); Loading packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -223,8 +223,11 @@ public class ImageWallpaperTest extends SysuiTestCase { } private void setBitmapDimensions(int bitmapWidth, int bitmapHeight) { // TODO(b/281648899) remove the when(mWallpaperManager.peekBitmapDimensions(...)) when(mWallpaperManager.peekBitmapDimensions(anyInt(), anyBoolean())) .thenReturn(new Rect(0, 0, bitmapWidth, bitmapHeight)); when(mWallpaperManager.peekBitmapDimensionsAsUser(anyInt(), anyBoolean(), anyInt())) .thenReturn(new Rect(0, 0, bitmapWidth, bitmapHeight)); when(mWallpaperBitmap.getWidth()).thenReturn(bitmapWidth); when(mWallpaperBitmap.getHeight()).thenReturn(bitmapHeight); } Loading Loading
core/java/android/app/WallpaperManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -1571,11 +1571,28 @@ public class WallpaperManager { */ @Nullable public Rect peekBitmapDimensions(@SetWallpaperFlags int which, boolean returnDefault) { if (multiCrop()) { return peekBitmapDimensionsAsUser(which, returnDefault, mContext.getUserId()); } checkExactlyOneWallpaperFlagSet(which); return sGlobals.peekWallpaperDimensions(mContext, returnDefault, which, mContext.getUserId()); } /** * Overload of {@link #peekBitmapDimensions(int, boolean)} with a userId argument. * TODO(b/360120606): remove the SuppressWarnings * @hide */ @SuppressWarnings("AndroidFrameworkContextUserId") @FlaggedApi(FLAG_MULTI_CROP) @Nullable public Rect peekBitmapDimensionsAsUser(@SetWallpaperFlags int which, boolean returnDefault, int userId) { checkExactlyOneWallpaperFlagSet(which); return sGlobals.peekWallpaperDimensions(mContext, returnDefault, which, userId); } /** * For the current user, given a list of display sizes, return a list of rectangles representing * the area of the current wallpaper that would be shown for each of these sizes. Loading
packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.app.WallpaperManager.FLAG_SYSTEM; import static android.app.WallpaperManager.SetWallpaperFlags; import static com.android.systemui.Flags.fixImageWallpaperCrashSurfaceAlreadyReleased; import static com.android.window.flags.Flags.multiCrop; import static com.android.window.flags.Flags.offloadColorExtraction; import android.annotation.Nullable; Loading Loading @@ -190,7 +191,10 @@ public class ImageWallpaper extends WallpaperService { } mWallpaperManager = getDisplayContext().getSystemService(WallpaperManager.class); mSurfaceHolder = surfaceHolder; Rect dimensions = mWallpaperManager.peekBitmapDimensions(getSourceFlag(), true); Rect dimensions = !multiCrop() ? mWallpaperManager.peekBitmapDimensions(getSourceFlag(), true) : mWallpaperManager.peekBitmapDimensionsAsUser(getSourceFlag(), true, mUserTracker.getUserId()); int width = Math.max(MIN_SURFACE_WIDTH, dimensions.width()); int height = Math.max(MIN_SURFACE_HEIGHT, dimensions.height()); mSurfaceHolder.setFixedSize(width, height); Loading
packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -223,8 +223,11 @@ public class ImageWallpaperTest extends SysuiTestCase { } private void setBitmapDimensions(int bitmapWidth, int bitmapHeight) { // TODO(b/281648899) remove the when(mWallpaperManager.peekBitmapDimensions(...)) when(mWallpaperManager.peekBitmapDimensions(anyInt(), anyBoolean())) .thenReturn(new Rect(0, 0, bitmapWidth, bitmapHeight)); when(mWallpaperManager.peekBitmapDimensionsAsUser(anyInt(), anyBoolean(), anyInt())) .thenReturn(new Rect(0, 0, bitmapWidth, bitmapHeight)); when(mWallpaperBitmap.getWidth()).thenReturn(bitmapWidth); when(mWallpaperBitmap.getHeight()).thenReturn(bitmapHeight); } Loading