blob: 79dd1b21ccb40fb9ea1fafc15deb03be152549ff [file] [log] [blame]
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;
}
}