diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-01-11 08:14:03 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-01-11 08:14:03 +0000 |
commit | d2399c45e3079815ca7abad74ca5bf47c1549f1e (patch) | |
tree | 9009046c0b45d9da15ce36c07f33fc6e26ce2aae | |
parent | c6d9e530b7a74f5765f5dd6203e22c1ff88cc195 (diff) | |
parent | 3f3c8f812e812438c4fcb81c539794f37aeb49c3 (diff) | |
download | base-d2399c45e3079815ca7abad74ca5bf47c1549f1e.tar.gz |
Snap for 5224434 from 3f3c8f812e812438c4fcb81c539794f37aeb49c3 to pi-b4s4-release
Change-Id: I4af5c2fbc9aea84fa60db914cbf38227bf1cb479
-rw-r--r-- | core/java/android/app/WallpaperManager.java | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index fde756c13234..a81546dc1d47 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -1874,23 +1874,33 @@ public class WallpaperManager { * @hide */ public static ComponentName getDefaultWallpaperComponent(Context context) { + ComponentName cn = null; + String flat = SystemProperties.get(PROP_WALLPAPER_COMPONENT); if (!TextUtils.isEmpty(flat)) { - final ComponentName cn = ComponentName.unflattenFromString(flat); - if (cn != null) { - return cn; + cn = ComponentName.unflattenFromString(flat); + } + + if (cn == null) { + flat = context.getString(com.android.internal.R.string.default_wallpaper_component); + if (!TextUtils.isEmpty(flat)) { + cn = ComponentName.unflattenFromString(flat); } } - flat = context.getString(com.android.internal.R.string.default_wallpaper_component); - if (!TextUtils.isEmpty(flat)) { - final ComponentName cn = ComponentName.unflattenFromString(flat); - if (cn != null) { - return cn; + // Check if the package exists + if (cn != null) { + try { + final PackageManager packageManager = context.getPackageManager(); + packageManager.getPackageInfo(cn.getPackageName(), + PackageManager.MATCH_DIRECT_BOOT_AWARE + | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); + } catch (PackageManager.NameNotFoundException e) { + cn = null; } } - return null; + return cn; } /** |