diff options
author | Matt Garnes <matt@cyngn.com> | 2015-01-16 18:48:23 +0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-01-16 12:00:16 +0000 |
commit | 19a8ed552e7453939c68ea7389f73412759f2e81 (patch) | |
tree | c91051f4af35e16171dc832f484b6bd00e6b2405 /WallpaperPicker | |
parent | 3f1f8fbfed868f864cf92138053c1160b3729682 (diff) | |
download | android_packages_apps_Trebuchet-19a8ed552e7453939c68ea7389f73412759f2e81.tar.gz android_packages_apps_Trebuchet-19a8ed552e7453939c68ea7389f73412759f2e81.tar.bz2 android_packages_apps_Trebuchet-19a8ed552e7453939c68ea7389f73412759f2e81.zip |
Present default built-in wallpapers in WallPaperPicker.
If the given resource package name has been overriden by aapt,
WallpaperPickerActivity can fail to find the built in default
wallpapers. Retrieve these with the package name directly instead.
Change-Id: I00fea3a46f13defe61056c5b9013a6f1b5457aec
Diffstat (limited to 'WallpaperPicker')
-rwxr-xr-x | WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java index a90cdbaae..e4fa637bc 100755 --- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java +++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java @@ -1017,6 +1017,11 @@ public class WallpaperPickerActivity extends WallpaperCropActivity { addWallpapers(bundled, wallpaperRes, r.first.packageName, r.second); } catch (PackageManager.NameNotFoundException e) { } + } else { + // Fall back to searching in our resources with the given package name if + // The above search fails. If the resource is not found, none will be added. + final String packageName = getResources().getResourcePackageName(R.array.wallpapers); + addWallpapers(bundled, getResources(), packageName, R.array.wallpapers); } if (partner == null || !partner.hideDefaultWallpaper()) { @@ -1136,21 +1141,26 @@ public class WallpaperPickerActivity extends WallpaperCropActivity { private void addWallpapers(ArrayList<WallpaperTileInfo> known, Resources res, String packageName, int listResId) { - final String[] extras = res.getStringArray(listResId); - for (String extra : extras) { - int resId = res.getIdentifier(extra, "drawable", packageName); - if (resId != 0) { - final int thumbRes = res.getIdentifier(extra + "_small", "drawable", packageName); - - if (thumbRes != 0) { - ResourceWallpaperInfo wallpaperInfo = - new ResourceWallpaperInfo(res, resId, res.getDrawable(thumbRes)); - known.add(wallpaperInfo); - // Log.d(TAG, "add: [" + packageName + "]: " + extra + " (" + res + ")"); + try { + final String[] extras = res.getStringArray(listResId); + for (String extra : extras) { + int resId = res.getIdentifier(extra, "drawable", packageName); + if (resId != 0) { + final int thumbRes = res.getIdentifier(extra + "_small", "drawable", + packageName); + + if (thumbRes != 0) { + ResourceWallpaperInfo wallpaperInfo = + new ResourceWallpaperInfo(res, resId, res.getDrawable(thumbRes)); + known.add(wallpaperInfo); + // Log.d(TAG, "add: [" + packageName + "]: " + extra + " (" + res + ")"); + } + } else { + Log.e(TAG, "Couldn't find wallpaper " + extra); } - } else { - Log.e(TAG, "Couldn't find wallpaper " + extra); } + } catch (Resources.NotFoundException e) { + Log.e(TAG, "No wallpapers found, resource could not be located + " + listResId); } } |