summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gen <genli@google.com> 2024-07-29 14:50:18 -0700
committer Gen <genli@google.com> 2024-08-05 17:29:13 -0700
commita068f0f22a08654c538ace21093e1f50113dff6e (patch)
treedb5391cfc89cabc638784d598cd7009a3e67186d
parent28616ea86ffb6424aff52c1a754514bc7e8f39e5 (diff)
Complete DisabledWallpaperManager's stub APIs.
DisabledWallpaperManager is used to guard against inappropriate access to wallpaper APIs in case the caller didn't check for support using WallpaperManager#isWallpaperSupported. New APIs have been added to WallpaperManager but corresponding stubs were not added to DisabledWallpaperManager, leading to unguarded crashes. This CL completes the stubs and re-arranges the stubs in the order of their declaration for readability. Bug: 355307617 Test: Future proofing an unlikely path. Everything still works. Flag: EXEMPT bugfix Change-Id: I40cbe107fb87c6e5cf10550489eaffefc7b66503
-rw-r--r--core/java/android/app/DisabledWallpaperManager.java185
-rw-r--r--core/java/android/app/WallpaperManager.java2
2 files changed, 161 insertions, 26 deletions
diff --git a/core/java/android/app/DisabledWallpaperManager.java b/core/java/android/app/DisabledWallpaperManager.java
index 4a5836cef76d..b06fb9e2f284 100644
--- a/core/java/android/app/DisabledWallpaperManager.java
+++ b/core/java/android/app/DisabledWallpaperManager.java
@@ -15,11 +15,16 @@
*/
package android.app;
+import android.annotation.FloatRange;
import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Intent;
import android.graphics.Bitmap;
+import android.graphics.Point;
import android.graphics.Rect;
+import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
@@ -27,9 +32,12 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
import android.util.Log;
+import android.util.SparseArray;
import java.io.IOException;
import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
/**
* A no-op implementation of {@link WallpaperManager}.
@@ -54,29 +62,19 @@ final class DisabledWallpaperManager extends WallpaperManager {
private DisabledWallpaperManager() {
}
- @Override
- public boolean isWallpaperSupported() {
- return false;
+ @UnsupportedAppUsage
+ public IWallpaperManager getIWallpaperManager() {
+ return unsupported();
}
@Override
- public boolean isSetWallpaperAllowed() {
- return false;
- }
-
- private static <T> T unsupported() {
- if (DEBUG) Log.w(TAG, "unsupported method called; returning null", new Exception());
- return null;
- }
-
- private static boolean unsupportedBoolean() {
- if (DEBUG) Log.w(TAG, "unsupported method called; returning false", new Exception());
- return false;
+ public boolean isLockscreenLiveWallpaperEnabled() {
+ return unsupportedBoolean();
}
- private static int unsupportedInt() {
- if (DEBUG) Log.w(TAG, "unsupported method called; returning -1", new Exception());
- return -1;
+ @Override
+ public boolean shouldEnableWideColorGamut() {
+ return unsupportedBoolean();
}
@Override
@@ -122,6 +120,11 @@ final class DisabledWallpaperManager extends WallpaperManager {
}
@Override
+ public boolean wallpaperSupportsWcg(int which) {
+ return unsupportedBoolean();
+ }
+
+ @Override
public Bitmap getBitmap() {
return unsupported();
}
@@ -131,12 +134,61 @@ final class DisabledWallpaperManager extends WallpaperManager {
return unsupported();
}
+ @Nullable
+ public Bitmap getBitmap(boolean hardware, @SetWallpaperFlags int which) {
+ return unsupported();
+ }
+
@Override
public Bitmap getBitmapAsUser(int userId, boolean hardware) {
return unsupported();
}
@Override
+ public Bitmap getBitmapAsUser(int userId, boolean hardware, @SetWallpaperFlags int which) {
+ return unsupported();
+ }
+
+ @Override
+ public Bitmap getBitmapAsUser(int userId, boolean hardware,
+ @SetWallpaperFlags int which, boolean returnDefault) {
+ return unsupported();
+ }
+
+ @Override
+ public Rect peekBitmapDimensions() {
+ return unsupported();
+ }
+
+ @Override
+ public Rect peekBitmapDimensions(@SetWallpaperFlags int which) {
+ return unsupported();
+ }
+
+ @Nullable
+ public Rect peekBitmapDimensions(@SetWallpaperFlags int which, boolean returnDefault) {
+ return unsupported();
+ }
+
+ @Override
+ public List<Rect> getBitmapCrops(@NonNull List<Point> displaySizes,
+ @SetWallpaperFlags int which, boolean originalBitmap) {
+ return unsupported();
+ }
+
+ @Override
+ public List<Rect> getBitmapCrops(@NonNull Point bitmapSize, @NonNull List<Point> displaySizes,
+ @Nullable Map<Point, Rect> cropHints) {
+ return unsupported();
+ }
+
+ @Override
+ public WallpaperColors getWallpaperColors(@NonNull Bitmap bitmap,
+ @Nullable Map<Point, Rect> cropHints) {
+ return unsupported();
+ }
+
+ @Override
public ParcelFileDescriptor getWallpaperFile(int which) {
return unsupported();
}
@@ -173,6 +225,17 @@ final class DisabledWallpaperManager extends WallpaperManager {
}
@Override
+ public void addOnColorsChangedListener(@NonNull LocalWallpaperColorConsumer callback,
+ List<RectF> regions, int which) throws IllegalArgumentException {
+ unsupported();
+ }
+
+ @Override
+ public void removeOnColorsChangedListener(@NonNull LocalWallpaperColorConsumer callback) {
+ unsupported();
+ }
+
+ @Override
public ParcelFileDescriptor getWallpaperFile(int which, int userId) {
return unsupported();
}
@@ -192,23 +255,22 @@ final class DisabledWallpaperManager extends WallpaperManager {
return unsupported();
}
- @Override
- public ParcelFileDescriptor getWallpaperInfoFile() {
+ public WallpaperInfo getWallpaperInfoForUser(int userId) {
return unsupported();
}
@Override
- public WallpaperInfo getWallpaperInfoForUser(int userId) {
+ public WallpaperInfo getWallpaperInfo(@SetWallpaperFlags int which) {
return unsupported();
}
@Override
- public WallpaperInfo getWallpaperInfo(@SetWallpaperFlags int which) {
+ public WallpaperInfo getWallpaperInfo(@SetWallpaperFlags int which, int userId) {
return unsupported();
}
@Override
- public WallpaperInfo getWallpaperInfo(@SetWallpaperFlags int which, int userId) {
+ public ParcelFileDescriptor getWallpaperInfoFile() {
return unsupported();
}
@@ -264,6 +326,11 @@ final class DisabledWallpaperManager extends WallpaperManager {
return 0;
}
+ public int setBitmapWithCrops(@Nullable Bitmap fullImage, @NonNull Map<Point, Rect> cropHints,
+ boolean allowBackup, @SetWallpaperFlags int which) throws IOException {
+ return unsupportedInt();
+ }
+
@Override
public void setStream(InputStream bitmapData) throws IOException {
unsupported();
@@ -284,6 +351,19 @@ final class DisabledWallpaperManager extends WallpaperManager {
}
@Override
+ public int setStreamWithCrops(InputStream bitmapData, @NonNull Map<Point, Rect> cropHints,
+ boolean allowBackup, @SetWallpaperFlags int which) throws IOException {
+ return unsupportedInt();
+ }
+
+
+ @Override
+ public int setStreamWithCrops(InputStream bitmapData, @NonNull SparseArray<Rect> cropHints,
+ boolean allowBackup, @SetWallpaperFlags int which) throws IOException {
+ return unsupportedInt();
+ }
+
+ @Override
public boolean hasResourceWallpaper(int resid) {
return unsupportedBoolean();
}
@@ -328,12 +408,40 @@ final class DisabledWallpaperManager extends WallpaperManager {
return unsupportedBoolean();
}
+
+ @Override
+ public void setWallpaperDimAmount(@FloatRange(from = 0f, to = 1f) float dimAmount) {
+ unsupported();
+ }
+
+ @Override
+ public @FloatRange(from = 0f, to = 1f) float getWallpaperDimAmount() {
+ return unsupportedInt();
+ }
+
+ @Override
+ public boolean lockScreenWallpaperExists() {
+ return unsupportedBoolean();
+ }
+
@Override
public boolean setWallpaperComponent(ComponentName name, int userId) {
return unsupportedBoolean();
}
@Override
+ public boolean setWallpaperComponentWithFlags(@NonNull ComponentName name,
+ @SetWallpaperFlags int which) {
+ return unsupportedBoolean();
+ }
+
+ @Override
+ public boolean setWallpaperComponentWithFlags(@NonNull ComponentName name,
+ @SetWallpaperFlags int which, int userId) {
+ return unsupportedBoolean();
+ }
+
+ @Override
public void setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset) {
unsupported();
}
@@ -350,6 +458,21 @@ final class DisabledWallpaperManager extends WallpaperManager {
}
@Override
+ public void setWallpaperZoomOut(@NonNull IBinder windowToken, float zoom) {
+ unsupported();
+ }
+
+ @Override
+ public boolean isWallpaperSupported() {
+ return false;
+ }
+
+ @Override
+ public boolean isSetWallpaperAllowed() {
+ return false;
+ }
+
+ @Override
public void clearWallpaperOffsets(IBinder windowToken) {
unsupported();
}
@@ -369,8 +492,18 @@ final class DisabledWallpaperManager extends WallpaperManager {
return unsupportedBoolean();
}
- @Override
- public boolean wallpaperSupportsWcg(int which) {
- return unsupportedBoolean();
+ private static <T> T unsupported() {
+ if (DEBUG) Log.w(TAG, "unsupported method called; returning null", new Exception());
+ return null;
+ }
+
+ private static boolean unsupportedBoolean() {
+ if (DEBUG) Log.w(TAG, "unsupported method called; returning false", new Exception());
+ return false;
+ }
+
+ private static int unsupportedInt() {
+ if (DEBUG) Log.w(TAG, "unsupported method called; returning -1", new Exception());
+ return -1;
}
}
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 1a72df10fbd6..5903a7ff619c 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -123,6 +123,8 @@ import java.util.concurrent.TimeUnit;
* <p> An app can check whether wallpapers are supported for the current user, by calling
* {@link #isWallpaperSupported()}, and whether setting of wallpapers is allowed, by calling
* {@link #isSetWallpaperAllowed()}.
+ * Any public APIs added to WallpaperManager should have a corresponding stub in
+ * {@link DisabledWallpaperManager}.
*/
@SystemService(Context.WALLPAPER_SERVICE)
public class WallpaperManager {