summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorSantiago Etchebehere <santie@google.com>2021-04-07 15:59:32 -0700
committerSantiago Etchebehere <santie@google.com>2021-04-09 03:14:26 +0000
commit8a884b22a40341126c7a4b9eb814eb52e439670f (patch)
tree358c6d1dbb44534ab057a1168296a9efcf2d52e1 /core/java/android
parent5cf8e9d2263094c7b5561b271e949088a485c1dd (diff)
Provide access to a mirror of WallpaperEngine SurfaceControl
Bug: 179127643 Test: manual: tested behavior of wallpaper preview in older WallpaperPicker apk and new version Change-Id: I3b66cbdf2198228e990fae6400d019da91bc93c9
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/wallpaper/IWallpaperEngine.aidl28
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java5
2 files changed, 20 insertions, 13 deletions
diff --git a/core/java/android/service/wallpaper/IWallpaperEngine.aidl b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
index fbb449d3875e..81af6a220444 100644
--- a/core/java/android/service/wallpaper/IWallpaperEngine.aidl
+++ b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
@@ -21,27 +21,29 @@ import android.app.WallpaperColors;
import android.graphics.Rect;
import android.graphics.RectF;
import android.view.MotionEvent;
+import android.view.SurfaceControl;
import android.os.Bundle;
/**
* @hide
*/
-oneway interface IWallpaperEngine {
- void setDesiredSize(int width, int height);
- void setDisplayPadding(in Rect padding);
+interface IWallpaperEngine {
+ oneway void setDesiredSize(int width, int height);
+ oneway void setDisplayPadding(in Rect padding);
@UnsupportedAppUsage
- void setVisibility(boolean visible);
- void setInAmbientMode(boolean inAmbientDisplay, long animationDuration);
+ oneway void setVisibility(boolean visible);
+ oneway void setInAmbientMode(boolean inAmbientDisplay, long animationDuration);
@UnsupportedAppUsage
- void dispatchPointer(in MotionEvent event);
+ oneway void dispatchPointer(in MotionEvent event);
@UnsupportedAppUsage
- void dispatchWallpaperCommand(String action, int x, int y,
+ oneway void dispatchWallpaperCommand(String action, int x, int y,
int z, in Bundle extras);
- void requestWallpaperColors();
+ oneway void requestWallpaperColors();
@UnsupportedAppUsage
- void destroy();
- void setZoomOut(float scale);
- void scalePreview(in Rect positionInWindow);
- void removeLocalColorsAreas(in List<RectF> regions);
- void addLocalColorsAreas(in List<RectF> regions);
+ oneway void destroy();
+ oneway void setZoomOut(float scale);
+ oneway void scalePreview(in Rect positionInWindow);
+ oneway void removeLocalColorsAreas(in List<RectF> regions);
+ oneway void addLocalColorsAreas(in List<RectF> regions);
+ SurfaceControl mirrorSurfaceControl();
}
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 71784ef0b4d6..d89c29a5a360 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -1982,6 +1982,11 @@ public abstract class WallpaperService extends Service {
mCaller.sendMessage(msg);
}
+ @Nullable
+ public SurfaceControl mirrorSurfaceControl() {
+ return mEngine == null ? null : SurfaceControl.mirrorSurface(mEngine.mSurfaceControl);
+ }
+
private void doDetachEngine() {
mActiveEngines.remove(mEngine);
mEngine.detach();