| package com.android.wallpaperpicker.tileinfo; |
| |
| import android.content.res.Resources; |
| import android.graphics.Point; |
| import android.graphics.RectF; |
| import android.graphics.drawable.Drawable; |
| |
| import com.android.photos.BitmapRegionTileSource; |
| import com.android.photos.BitmapRegionTileSource.BitmapSource; |
| import com.android.wallpaperpicker.WallpaperCropActivity.CropViewScaleAndOffsetProvider; |
| import com.android.wallpaperpicker.WallpaperPickerActivity; |
| |
| public class ResourceWallpaperInfo extends DrawableThumbWallpaperInfo { |
| |
| private final Resources mResources; |
| private final int mResId; |
| |
| public ResourceWallpaperInfo(Resources res, int resId, Drawable thumb) { |
| super(thumb); |
| mResources = res; |
| mResId = resId; |
| } |
| |
| @Override |
| public void onClick(final WallpaperPickerActivity a) { |
| a.setWallpaperButtonEnabled(false); |
| final BitmapRegionTileSource.InputStreamSource bitmapSource = |
| new BitmapRegionTileSource.InputStreamSource(mResources, mResId, a); |
| a.setCropViewTileSource(bitmapSource, false, false, new CropViewScaleAndOffsetProvider() { |
| |
| @Override |
| public float getScale(Point wallpaperSize, RectF crop) { |
| return wallpaperSize.x /crop.width(); |
| } |
| |
| @Override |
| public float getParallaxOffset() { |
| return a.getWallpaperParallaxOffset(); |
| } |
| }, new Runnable() { |
| |
| @Override |
| public void run() { |
| if (bitmapSource.getLoadingState() == BitmapSource.State.LOADED) { |
| a.setWallpaperButtonEnabled(true); |
| } |
| } |
| }); |
| } |
| |
| @Override |
| public void onSave(WallpaperPickerActivity a) { |
| a.cropImageAndSetWallpaper(mResources, mResId, true /* shouldFadeOutOnFinish */); |
| } |
| |
| @Override |
| public boolean isSelectable() { |
| return true; |
| } |
| |
| @Override |
| public boolean isNamelessWallpaper() { |
| return true; |
| } |
| } |