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 }