blob: b5ba6960cbff01a2ff3483e12b5233522c1892fa [file] [log] [blame]
package com.android.wallpaperpicker.tileinfo;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.PorterDuff;
import android.os.Process;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.android.wallpaperpicker.R;
import com.android.wallpaperpicker.WallpaperPickerActivity;
public class PickImageInfo extends WallpaperTileInfo {
@Override
public void onClick(WallpaperPickerActivity a) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT).setType("image/*");
a.startActivityForResultSafely(intent, WallpaperPickerActivity.IMAGE_PICK);
}
@Override
public View createView(Context context, LayoutInflater inflator, ViewGroup parent) {
mView = inflator.inflate(R.layout.wallpaper_picker_image_picker_item, parent, false);
// Make its background the last photo taken on external storage
Bitmap lastPhoto = getThumbnailOfLastPhoto(context);
if (lastPhoto != null) {
ImageView galleryThumbnailBg =
(ImageView) mView.findViewById(R.id.wallpaper_image);
galleryThumbnailBg.setImageBitmap(lastPhoto);
int colorOverlay = context.getResources().getColor(R.color.wallpaper_picker_translucent_gray);
galleryThumbnailBg.setColorFilter(colorOverlay, PorterDuff.Mode.SRC_ATOP);
}
mView.setTag(this);
return mView;
}
private Bitmap getThumbnailOfLastPhoto(Context context) {
boolean canReadExternalStorage = context.checkPermission(
Manifest.permission.READ_EXTERNAL_STORAGE, Process.myPid(), Process.myUid()) ==
PackageManager.PERMISSION_GRANTED;
if (!canReadExternalStorage) {
// MediaStore.Images.Media.EXTERNAL_CONTENT_URI requires
// the READ_EXTERNAL_STORAGE permission
return null;
}
Cursor cursor = MediaStore.Images.Media.query(context.getContentResolver(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN},
null, null, MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC LIMIT 1");
Bitmap thumb = null;
if (cursor != null) {
if (cursor.moveToNext()) {
int id = cursor.getInt(0);
thumb = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(),
id, MediaStore.Images.Thumbnails.MINI_KIND, null);
}
cursor.close();
}
return thumb;
}
}