summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java33
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java8
2 files changed, 16 insertions, 25 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java
index ad97ef4a79bc..ef43702e97b8 100644
--- a/packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java
+++ b/packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java
@@ -45,7 +45,6 @@ import androidx.annotation.NonNull;
import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.dagger.qualifiers.Background;
-import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.util.concurrency.DelayableExecutor;
import com.android.systemui.wallpapers.canvas.WallpaperLocalColorExtractor;
@@ -57,7 +56,6 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.Executor;
import javax.inject.Inject;
@@ -88,17 +86,12 @@ public class ImageWallpaper extends WallpaperService {
private final DelayableExecutor mBackgroundExecutor;
private static final int DELAY_UNLOAD_BITMAP = 2000;
- @Main
- private final Executor mMainExecutor;
-
@Inject
public ImageWallpaper(FeatureFlags featureFlags,
- @Background DelayableExecutor backgroundExecutor,
- @Main Executor mainExecutor) {
+ @Background DelayableExecutor backgroundExecutor) {
super();
mFeatureFlags = featureFlags;
mBackgroundExecutor = backgroundExecutor;
- mMainExecutor = mainExecutor;
}
@Override
@@ -662,13 +655,9 @@ public class ImageWallpaper extends WallpaperService {
loadWallpaperAndDrawFrameInternal();
} else {
mBitmapUsages++;
-
- // drawing is done on the main thread
- mMainExecutor.execute(() -> {
- drawFrameOnCanvas(mBitmap);
- reportEngineShown(false);
- unloadBitmapIfNotUsed();
- });
+ drawFrameOnCanvas(mBitmap);
+ reportEngineShown(false);
+ unloadBitmapIfNotUsedInternal();
}
}
@@ -706,11 +695,15 @@ public class ImageWallpaper extends WallpaperService {
private void unloadBitmapIfNotUsedSynchronized() {
synchronized (mLock) {
- mBitmapUsages -= 1;
- if (mBitmapUsages <= 0) {
- mBitmapUsages = 0;
- unloadBitmapInternal();
- }
+ unloadBitmapIfNotUsedInternal();
+ }
+ }
+
+ private void unloadBitmapIfNotUsedInternal() {
+ mBitmapUsages -= 1;
+ if (mBitmapUsages <= 0) {
+ mBitmapUsages = 0;
+ unloadBitmapInternal();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java b/packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java
index 379bb28ae032..30dc0d20600f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/wallpapers/ImageWallpaperTest.java
@@ -108,7 +108,6 @@ public class ImageWallpaperTest extends SysuiTestCase {
private FeatureFlags mFeatureFlags;
FakeSystemClock mFakeSystemClock = new FakeSystemClock();
- FakeExecutor mFakeMainExecutor = new FakeExecutor(mFakeSystemClock);
FakeExecutor mFakeBackgroundExecutor = new FakeExecutor(mFakeSystemClock);
private CountDownLatch mEventCountdown;
@@ -163,7 +162,7 @@ public class ImageWallpaperTest extends SysuiTestCase {
}
private ImageWallpaper createImageWallpaper() {
- return new ImageWallpaper(mFeatureFlags, mFakeBackgroundExecutor, mFakeMainExecutor) {
+ return new ImageWallpaper(mFeatureFlags, mFakeBackgroundExecutor) {
@Override
public Engine onCreateEngine() {
return new GLEngine(mHandler) {
@@ -242,7 +241,7 @@ public class ImageWallpaperTest extends SysuiTestCase {
private ImageWallpaper createImageWallpaperCanvas() {
- return new ImageWallpaper(mFeatureFlags, mFakeBackgroundExecutor, mFakeMainExecutor) {
+ return new ImageWallpaper(mFeatureFlags, mFakeBackgroundExecutor) {
@Override
public Engine onCreateEngine() {
return new CanvasEngine() {
@@ -315,11 +314,10 @@ public class ImageWallpaperTest extends SysuiTestCase {
assertThat(mFakeBackgroundExecutor.numPending()).isAtLeast(1);
int n = 0;
- while (mFakeBackgroundExecutor.numPending() + mFakeMainExecutor.numPending() >= 1) {
+ while (mFakeBackgroundExecutor.numPending() >= 1) {
n++;
assertThat(n).isAtMost(10);
mFakeBackgroundExecutor.runNextReady();
- mFakeMainExecutor.runNextReady();
mFakeSystemClock.advanceTime(1000);
}