1package com.android.wallpaperpicker.tileinfo; 2 3import android.content.res.Resources; 4import android.graphics.Point; 5import android.graphics.RectF; 6import android.graphics.drawable.Drawable; 7 8import com.android.photos.BitmapRegionTileSource; 9import com.android.photos.BitmapRegionTileSource.BitmapSource; 10import com.android.wallpaperpicker.WallpaperCropActivity.CropViewScaleAndOffsetProvider; 11import com.android.wallpaperpicker.WallpaperPickerActivity; 12 13public class ResourceWallpaperInfo extends DrawableThumbWallpaperInfo { 14 15 private final Resources mResources; 16 private final int mResId; 17 18 public ResourceWallpaperInfo(Resources res, int resId, Drawable thumb) { 19 super(thumb); 20 mResources = res; 21 mResId = resId; 22 } 23 24 @Override 25 public void onClick(final WallpaperPickerActivity a) { 26 a.setWallpaperButtonEnabled(false); 27 final BitmapRegionTileSource.InputStreamSource bitmapSource = 28 new BitmapRegionTileSource.InputStreamSource(mResources, mResId, a); 29 a.setCropViewTileSource(bitmapSource, false, false, new CropViewScaleAndOffsetProvider() { 30 31 @Override 32 public float getScale(Point wallpaperSize, RectF crop) { 33 return wallpaperSize.x /crop.width(); 34 } 35 36 @Override 37 public float getParallaxOffset() { 38 return a.getWallpaperParallaxOffset(); 39 } 40 }, new Runnable() { 41 42 @Override 43 public void run() { 44 if (bitmapSource.getLoadingState() == BitmapSource.State.LOADED) { 45 a.setWallpaperButtonEnabled(true); 46 } 47 } 48 }); 49 } 50 51 @Override 52 public void onSave(WallpaperPickerActivity a) { 53 a.cropImageAndSetWallpaper(mResources, mResId, true /* shouldFadeOutOnFinish */); 54 } 55 56 @Override 57 public boolean isSelectable() { 58 return true; 59 } 60 61 @Override 62 public boolean isNamelessWallpaper() { 63 return true; 64 } 65}