summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2018-11-30 16:45:02 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-11-30 16:45:02 +0000
commitb25a4d60e6d2178faff99ddfcd7c1541ea5aeadf (patch)
treec915b83f5454a26c727bc8deb96e97d9ec92983a
parent6fc3189e37b3b57bc7cd42c7920c1efdd9860c9b (diff)
parent1c7ae31e97f0d90b16dcbefff9c436601cba7007 (diff)
Merge "Nullify the default wallpaper component if it does not exist"
-rw-r--r--core/java/android/app/WallpaperManager.java28
1 files changed, 19 insertions, 9 deletions
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index e7ba2e6be5c2..b8c98420aada 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -1885,23 +1885,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;
}
/**