summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Aurélien Pomini <pomini@google.com> 2023-06-13 13:27:02 +0000
committer Aurélien Pomini <pomini@google.com> 2023-06-13 14:13:54 +0000
commit461834045b99cf53836cbfeb0b6453d0407f44ed (patch)
tree43f4db4ecb35df0bcd44a403379bb62e33d51f78
parentcceba8e25c21f1dc9b06115670ff8677ae628ec3 (diff)
Only force wallpaper visibility events for wearOS
This puts the ag/21736290 logic under a isWearOs flag. Visibility events should only be sent when there are actual visibility changes, except for this specific wearOS case. Bug: 285631818 Test: atest WallpaperManagerTest Test: put logs and check visibility events Change-Id: Icb63e3291c342fede3d601e084b192cb5a7d9b04
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 4e086c2ad134..dbc1be141571 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -44,6 +44,7 @@ import android.app.WallpaperManager;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.BLASTBufferQueue;
import android.graphics.Bitmap;
@@ -190,6 +191,9 @@ public abstract class WallpaperService extends Service {
private Handler mBackgroundHandler;
private HandlerThread mBackgroundThread;
+ // TODO (b/287037772) remove this flag and the forceReport argument in reportVisibility
+ private boolean mIsWearOs;
+
static final class WallpaperCommand {
String action;
int x;
@@ -2282,7 +2286,8 @@ public abstract class WallpaperService extends Service {
@Override
public void onDisplayChanged(int displayId) {
if (mDisplay.getDisplayId() == displayId) {
- boolean forceReport = mDisplay.getState() != Display.STATE_DOZE_SUSPEND;
+ boolean forceReport = mIsWearOs
+ && mDisplay.getState() != Display.STATE_DOZE_SUSPEND;
reportVisibility(forceReport);
}
}
@@ -2734,6 +2739,7 @@ public abstract class WallpaperService extends Service {
mBackgroundThread = new HandlerThread("DefaultWallpaperLocalColorExtractor");
mBackgroundThread.start();
mBackgroundHandler = new Handler(mBackgroundThread.getLooper());
+ mIsWearOs = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);
super.onCreate();
Trace.endSection();
}