1748dfe025b128ea88ba626c8bfb7da315d5af29cSunny Goyalpackage com.android.wallpaperpicker.tileinfo;
24428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
34428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport android.content.res.Resources;
44428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport android.graphics.Point;
54428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport android.graphics.RectF;
64428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport android.graphics.drawable.Drawable;
713d3a076ce25c531c450d139b37b3e5bbd6964e1Tony Wickham
84428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport com.android.photos.BitmapRegionTileSource;
94428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalimport com.android.photos.BitmapRegionTileSource.BitmapSource;
10748dfe025b128ea88ba626c8bfb7da315d5af29cSunny Goyalimport com.android.wallpaperpicker.WallpaperCropActivity.CropViewScaleAndOffsetProvider;
11748dfe025b128ea88ba626c8bfb7da315d5af29cSunny Goyalimport com.android.wallpaperpicker.WallpaperPickerActivity;
124428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
134428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyalpublic class ResourceWallpaperInfo extends DrawableThumbWallpaperInfo {
144428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
154428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    private final Resources mResources;
164428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    private final int mResId;
174428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
184428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    public ResourceWallpaperInfo(Resources res, int resId, Drawable thumb) {
194428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        super(thumb);
204428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        mResources = res;
214428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        mResId = resId;
224428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    }
234428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
244428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    @Override
254428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    public void onClick(final WallpaperPickerActivity a) {
264428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        a.setWallpaperButtonEnabled(false);
27841a502864d307341945eae62569b92cada93e75Sunny Goyal        final BitmapRegionTileSource.InputStreamSource bitmapSource =
28841a502864d307341945eae62569b92cada93e75Sunny Goyal                new BitmapRegionTileSource.InputStreamSource(mResources, mResId, a);
2913d3a076ce25c531c450d139b37b3e5bbd6964e1Tony Wickham        a.setCropViewTileSource(bitmapSource, false, false, new CropViewScaleAndOffsetProvider() {
304428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
314428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal            @Override
3213d3a076ce25c531c450d139b37b3e5bbd6964e1Tony Wickham            public float getScale(Point wallpaperSize, RectF crop) {
3313d3a076ce25c531c450d139b37b3e5bbd6964e1Tony Wickham                return wallpaperSize.x /crop.width();
344428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal            }
357bd5e80dc5e26102e59b300dec8dfd8abd9184b4Tony Wickham
367bd5e80dc5e26102e59b300dec8dfd8abd9184b4Tony Wickham            @Override
377bd5e80dc5e26102e59b300dec8dfd8abd9184b4Tony Wickham            public float getParallaxOffset() {
387bd5e80dc5e26102e59b300dec8dfd8abd9184b4Tony Wickham                return a.getWallpaperParallaxOffset();
397bd5e80dc5e26102e59b300dec8dfd8abd9184b4Tony Wickham            }
404428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        }, new Runnable() {
414428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
424428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal            @Override
434428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal            public void run() {
444428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal                if (bitmapSource.getLoadingState() == BitmapSource.State.LOADED) {
454428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal                    a.setWallpaperButtonEnabled(true);
464428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal                }
474428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal            }
484428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        });
494428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    }
504428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
514428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    @Override
524428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    public void onSave(WallpaperPickerActivity a) {
5339d389f406185d91b588c4caf3225749fd2afdcfTony Wickham        a.cropImageAndSetWallpaper(mResources, mResId, true /* shouldFadeOutOnFinish */);
544428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    }
554428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
564428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    @Override
574428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    public boolean isSelectable() {
584428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        return true;
594428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    }
604428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal
614428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    @Override
624428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    public boolean isNamelessWallpaper() {
634428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal        return true;
644428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal    }
654428db78eed5d453c3bb376e6e28977c21b1c9ddSunny Goyal}