diff options
| author | Joe Onorato <joeo@google.com> | 2010-11-09 12:27:07 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-09 12:27:07 -0800 |
| commit | cee976bebc4ff6e9cdaa879eb911775118d6db01 (patch) | |
| tree | 6951ec8f1c29e5809b559a79d1fad72d7d6eacbb /core/java | |
| parent | 0ba75bb22c2992f649ee5f7605a2b45442ad4862 (diff) | |
| parent | 30693374e8497c83b40592893160a95b428e0c22 (diff) | |
| download | frameworks_base-cee976bebc4ff6e9cdaa879eb911775118d6db01.zip frameworks_base-cee976bebc4ff6e9cdaa879eb911775118d6db01.tar.gz frameworks_base-cee976bebc4ff6e9cdaa879eb911775118d6db01.tar.bz2 | |
Merge "If the image wallpaper fails to load, including via an OutOfMemoryError because of a big bitmap, reset to the default."
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/service/wallpaper/ImageWallpaper.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java index e961116..d2e53b3 100644 --- a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java +++ b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java @@ -16,6 +16,8 @@ package com.android.internal.service.wallpaper; +import java.io.IOException; + import com.android.internal.view.WindowManagerPolicyThread; import android.app.WallpaperManager; @@ -169,10 +171,26 @@ public class ImageWallpaper extends WallpaperService { void updateWallpaper() { synchronized (mLock) { + Throwable exception = null; try { mBackground = mWallpaperManager.getFastDrawable(); } catch (RuntimeException e) { - Log.w("ImageWallpaper", "Unable to load wallpaper!", e); + exception = e; + } catch (OutOfMemoryError e) { + exception = e; + } + if (exception != null) { + mBackground = null; + // Note that if we do fail at this, and the default wallpaper can't + // be loaded, we will go into a cycle. Don't do a build where the + // default wallpaper can't be loaded. + Log.w("ImageWallpaper", "Unable to load wallpaper!", exception); + try { + mWallpaperManager.clear(); + } catch (IOException ex) { + // now we're really screwed. + Log.w("ImageWallpaper", "Unable reset to default wallpaper!", ex); + } } } } |
