diff options
author | Diogo Ferreira <diogo@underdev.org> | 2015-03-28 21:46:52 +0000 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-10-25 11:49:21 +0200 |
commit | 44f97ceaad0af9ae0787887a5efc22d469f7676e (patch) | |
tree | 330d89b211ef73a68e5475de09e2b93636be9046 | |
parent | 53e92e7d26f7b6781930c73ef94745112fc85ec3 (diff) | |
download | android_packages_wallpapers_Basic-44f97ceaad0af9ae0787887a5efc22d469f7676e.tar.gz android_packages_wallpapers_Basic-44f97ceaad0af9ae0787887a5efc22d469f7676e.tar.bz2 android_packages_wallpapers_Basic-44f97ceaad0af9ae0787887a5efc22d469f7676e.zip |
PolarClock: Don't draw on invisible surfaces
This sometimes crashes the device when the activity is recreated
due to rotation or other reconfigurations.
In some events, namely when the surface visibility changes we
were drawing a frame which, depending on timing, might end up
locking/drawing/unlocking a surface that was previously destroyed
which would crash the app.
Change-Id: I6c4381ce03882658307386a351336894845966e3
-rw-r--r-- | src/com/android/wallpaper/polarclock/PolarClockWallpaper.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java b/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java index cba7b11..2ea62de 100644 --- a/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java +++ b/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java @@ -462,6 +462,10 @@ public class PolarClockWallpaper extends WallpaperService { return; } + if (!mVisible) { + return; + } + final SurfaceHolder holder = getSurfaceHolder(); final Rect frame = holder.getSurfaceFrame(); final int width = frame.width(); |