1 package com.android.wallpaperpicker.tileinfo; 2 3 import android.content.res.Resources; 4 import android.graphics.Point; 5 import android.graphics.RectF; 6 import android.graphics.drawable.Drawable; 7 8 import com.android.photos.BitmapRegionTileSource; 9 import com.android.photos.BitmapRegionTileSource.BitmapSource; 10 import com.android.wallpaperpicker.WallpaperCropActivity.CropViewScaleAndOffsetProvider; 11 import com.android.wallpaperpicker.WallpaperPickerActivity; 12 13 public class ResourceWallpaperInfo extends DrawableThumbWallpaperInfo { 14 15 private final Resources mResources; 16 private final int mResId; 17 ResourceWallpaperInfo(Resources res, int resId, Drawable thumb)18 public ResourceWallpaperInfo(Resources res, int resId, Drawable thumb) { 19 super(thumb); 20 mResources = res; 21 mResId = resId; 22 } 23 24 @Override onClick(final WallpaperPickerActivity a)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 onSave(WallpaperPickerActivity a)52 public void onSave(WallpaperPickerActivity a) { 53 a.cropImageAndSetWallpaper(mResources, mResId, true /* shouldFadeOutOnFinish */); 54 } 55 56 @Override isSelectable()57 public boolean isSelectable() { 58 return true; 59 } 60 61 @Override isNamelessWallpaper()62 public boolean isNamelessWallpaper() { 63 return true; 64 } 65 }