Home | History | Annotate | Download | only in tileinfo
      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 
     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 }