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}