diff options
author | Michael Jurka <mikejurka@google.com> | 2013-09-26 16:59:58 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-26 16:59:58 +0000 |
commit | 1b495f5298d4648adab0b24dca7a3bc5267bf710 (patch) | |
tree | edd584557c5c2066c1164e90f5471b7e1be07d2d /src/com | |
parent | a2f665f4f7dc60aa0ea97e20027a79e796241356 (diff) | |
parent | db84e82a0a098c821b7a4f419293770277a24a34 (diff) | |
download | android_packages_apps_Trebuchet-1b495f5298d4648adab0b24dca7a3bc5267bf710.tar.gz android_packages_apps_Trebuchet-1b495f5298d4648adab0b24dca7a3bc5267bf710.tar.bz2 android_packages_apps_Trebuchet-1b495f5298d4648adab0b24dca7a3bc5267bf710.zip |
Merge "Add default wallpaper to picker" into jb-ub-now-indigo-rose
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/launcher3/SavedWallpaperImages.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher3/WallpaperPickerActivity.java | 51 |
2 files changed, 47 insertions, 11 deletions
diff --git a/src/com/android/launcher3/SavedWallpaperImages.java b/src/com/android/launcher3/SavedWallpaperImages.java index 7cd82f075..531672a04 100644 --- a/src/com/android/launcher3/SavedWallpaperImages.java +++ b/src/com/android/launcher3/SavedWallpaperImages.java @@ -36,7 +36,6 @@ import android.widget.ListAdapter; import com.android.photos.BitmapRegionTileSource; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -104,6 +103,7 @@ public class SavedWallpaperImages extends BaseAdapter implements ListAdapter { while (result.moveToNext()) { String filename = result.getString(1); File file = new File(mContext.getFilesDir(), filename); + Bitmap thumb = BitmapFactory.decodeFile(file.getAbsolutePath()); if (thumb != null) { mImages.add(new SavedWallpaperTile(result.getInt(0), new BitmapDrawable(thumb))); @@ -185,12 +185,11 @@ public class SavedWallpaperImages extends BaseAdapter implements ListAdapter { imageFileStream.write(imageBytes); imageFileStream.close(); - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - thumbnail.compress(Bitmap.CompressFormat.JPEG, 95, stream); File thumbFile = File.createTempFile("wallpaperthumb", "", mContext.getFilesDir()); FileOutputStream thumbFileStream = mContext.openFileOutput(thumbFile.getName(), Context.MODE_PRIVATE); - thumbFileStream.write(stream.toByteArray()); + thumbnail.compress(Bitmap.CompressFormat.JPEG, 95, thumbFileStream); + thumbFileStream.close(); SQLiteDatabase db = mDb.getWritableDatabase(); ContentValues values = new ContentValues(); diff --git a/src/com/android/launcher3/WallpaperPickerActivity.java b/src/com/android/launcher3/WallpaperPickerActivity.java index 7f82a2f0c..ef94fe86e 100644 --- a/src/com/android/launcher3/WallpaperPickerActivity.java +++ b/src/com/android/launcher3/WallpaperPickerActivity.java @@ -29,11 +29,12 @@ import android.content.res.Resources; import android.database.Cursor; import android.database.DataSetObserver; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Point; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.RectF; -import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; import android.net.Uri; @@ -58,6 +59,8 @@ import android.widget.ListAdapter; import com.android.photos.BitmapRegionTileSource; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -471,7 +474,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity { new BitmapCropTask(context, res, resId, null, width, height, false, true, null); } Point bounds = cropTask.getImageBounds(); - if (bounds == null) { + if (bounds == null || bounds.x == 0 || bounds.y == 0) { return null; } @@ -555,14 +558,48 @@ public class WallpaperPickerActivity extends WallpaperCropActivity { } catch (PackageManager.NameNotFoundException e) { } } - //TODO: add default wallpaper - //Resources sysRes = Resources.getSystem(); - //int resId = sysRes.getIdentifier("default_wallpaper", "drawable", "android"); - //bundledWallpapers.add( - // new ResourceWallpaperInfo(sysRes, resId, new ColorDrawable(0xFFFF0000))); + + // Add an entry for the default wallpaper (stored in system resources) + ResourceWallpaperInfo defaultWallpaperInfo = getDefaultWallpaperInfo(); + if (defaultWallpaperInfo != null) { + bundledWallpapers.add(0, defaultWallpaperInfo); + } return bundledWallpapers; } + private ResourceWallpaperInfo getDefaultWallpaperInfo() { + Resources sysRes = Resources.getSystem(); + int resId = sysRes.getIdentifier("default_wallpaper", "drawable", "android"); + + File defaultThumbFile = new File(getFilesDir(), "default_thumb.jpg"); + Bitmap thumb = null; + boolean defaultWallpaperExists = false; + if (defaultThumbFile.exists()) { + thumb = BitmapFactory.decodeFile(defaultThumbFile.getAbsolutePath()); + defaultWallpaperExists = true; + } else { + Point defaultThumbSize = getDefaultThumbnailSize(getResources()); + thumb = createThumbnail(defaultThumbSize, this, null, null, sysRes, resId, false); + if (thumb != null) { + try { + defaultThumbFile.createNewFile(); + FileOutputStream thumbFileStream = + openFileOutput(defaultThumbFile.getName(), Context.MODE_PRIVATE); + thumb.compress(Bitmap.CompressFormat.JPEG, 95, thumbFileStream); + thumbFileStream.close(); + defaultWallpaperExists = true; + } catch (IOException e) { + Log.e(TAG, "Error while writing default wallpaper thumbnail to file " + e); + defaultThumbFile.delete(); + } + } + } + if (defaultWallpaperExists) { + return new ResourceWallpaperInfo(sysRes, resId, new BitmapDrawable(thumb)); + } + return null; + } + public Pair<ApplicationInfo, Integer> getWallpaperArrayResourceId() { // Context.getPackageName() may return the "original" package name, // com.android.launcher3; Resources needs the real package name, |