summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Lucas Dupin <dupin@google.com> 2023-03-03 15:53:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-03 15:53:05 +0000
commita9ac5f5c8855554f2ab3a5f74e423ed11fe2dc5b (patch)
tree8f77457c9939becc4f1336bb13b13b48171acdd4
parentc7a54c4e517eb08bd9a46ef7596acf8995fefba0 (diff)
parent6e73ba324693f3e47a7a94a41335e67961a84818 (diff)
Merge "wallpaper: add reportVisibility(forceReport)" into udc-dev
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java57
1 files changed, 38 insertions, 19 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index f53abce1d1ea..26bc5d12d3b9 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -1543,14 +1543,14 @@ public abstract class WallpaperService extends Service {
void doVisibilityChanged(boolean visible) {
if (!mDestroyed) {
mVisible = visible;
- reportVisibility();
+ reportVisibility(false);
if (mReportedVisible) processLocalColors();
} else {
AnimationHandler.requestAnimatorsEnabled(visible, this);
}
}
- void reportVisibility() {
+ void reportVisibility(boolean forceReport) {
if (mScreenshotSurfaceControl != null && mVisible) {
if (DEBUG) Log.v(TAG, "Frozen so don't report visibility change");
return;
@@ -1558,10 +1558,29 @@ public abstract class WallpaperService extends Service {
if (!mDestroyed) {
mDisplayState = mDisplay == null ? Display.STATE_UNKNOWN : mDisplay.getState();
boolean visible = mVisible && mDisplayState != Display.STATE_OFF;
- if (mReportedVisible != visible) {
+ if (DEBUG) {
+ Log.v(
+ TAG,
+ "reportVisibility"
+ + " mReportedVisible="
+ + mReportedVisible
+ + " mVisible="
+ + mVisible
+ + " mDisplayState="
+ + mDisplayState);
+ }
+ if (mReportedVisible != visible || forceReport) {
mReportedVisible = visible;
- if (DEBUG) Log.v(TAG, "onVisibilityChanged(" + visible
- + "): " + this);
+ if (DEBUG) {
+ Log.v(
+ TAG,
+ "onVisibilityChanged("
+ + visible
+ + "): "
+ + this
+ + " forceReport="
+ + forceReport);
+ }
if (visible) {
// If becoming visible, in preview mode the surface
// may have been destroyed so now we need to make
@@ -2205,22 +2224,22 @@ public abstract class WallpaperService extends Service {
}
}
- private final DisplayListener mDisplayListener = new DisplayListener() {
- @Override
- public void onDisplayChanged(int displayId) {
- if (mDisplay.getDisplayId() == displayId) {
- reportVisibility();
- }
- }
+ private final DisplayListener mDisplayListener =
+ new DisplayListener() {
+ @Override
+ public void onDisplayChanged(int displayId) {
+ if (mDisplay.getDisplayId() == displayId) {
+ boolean forceReport = mDisplay.getState() != Display.STATE_DOZE_SUSPEND;
+ reportVisibility(forceReport);
+ }
+ }
- @Override
- public void onDisplayRemoved(int displayId) {
- }
+ @Override
+ public void onDisplayRemoved(int displayId) {}
- @Override
- public void onDisplayAdded(int displayId) {
- }
- };
+ @Override
+ public void onDisplayAdded(int displayId) {}
+ };
private Surface getOrCreateBLASTSurface(int width, int height, int format) {
Surface ret = null;