1ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdonpackage com.android.ex.photo.loaders; 2ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 34f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerianimport android.content.res.Resources; 4ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdonimport android.graphics.Bitmap; 54f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerianimport android.graphics.drawable.BitmapDrawable; 64f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerianimport android.graphics.drawable.Drawable; 7ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 8ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdonpublic interface PhotoBitmapLoaderInterface { 9ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 10ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public void setPhotoUri(String photoUri); 11ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 12ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public void forceLoad(); 13ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 14ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public static class BitmapResult { 15ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public static final int STATUS_SUCCESS = 0; 16ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public static final int STATUS_EXCEPTION = 1; 17ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon 184f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian public Drawable drawable; 19ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public Bitmap bitmap; 20ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon public int status; 214f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian 227887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein /** 237887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein * Returns a drawable to be used in the {@link com.android.ex.photo.views.PhotoView}. 247887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein * Should return null if the drawable is not ready to be shown (for instance, if 257887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein * the underlying bitmap is null). 267887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein */ 274f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian public Drawable getDrawable(Resources resources) { 284f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian if (resources == null) { 294f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian throw new IllegalArgumentException("resources can not be null!"); 304f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian } 314f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian 324f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian if (drawable != null) { 337887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein return drawable; 344f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian } 354f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian 367887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein // Don't create a new drawable if there's no bitmap. PhotoViewFragment regards 377887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein // a null drawable as a signal to keep showing the loading stuff. 387887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein // b/12348405. 397887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein if (bitmap == null) { 407887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein return null; 417887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein } 427887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein 437887d9694aef23e4a0165b338726e6a9690a709aAndrew Sapperstein return new BitmapDrawable(resources, bitmap); 444f49ea6da326194dffa0348a83d8110ac30d92e4Matt Keoshkerian } 45ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon } 46ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6faMartin Hibdon} 47