package com.umeng.comm.ui.imagepicker.domain; import java.util.List; import android.annotation.SuppressLint; import android.content.Context; import android.os.Handler; import android.os.Message; import com.umeng.comm.ui.imagepicker.PhotoSelectorActivity.OnLocalAlbumListener; import com.umeng.comm.ui.imagepicker.PhotoSelectorActivity.OnLocalReccentListener; import com.umeng.comm.ui.imagepicker.controller.AlbumController; import com.umeng.comm.ui.imagepicker.model.AlbumModel; import com.umeng.comm.ui.imagepicker.model.PhotoModel; // TODO Handler 的方式需要优化 @SuppressLint("HandlerLeak") public class PhotoSelectorDomain { private AlbumController albumController; public PhotoSelectorDomain(Context context) { albumController = new AlbumController(context); } /** * 获取最近的照片 * * @param listener */ public void getReccent(final OnLocalReccentListener listener) { final Handler handler = new Handler() { @SuppressWarnings("unchecked") @Override public void handleMessage(Message msg) { listener.onPhotoLoaded((List<PhotoModel>) msg.obj); } }; new Thread(new Runnable() { @Override public void run() { List<PhotoModel> photos = albumController.getCurrent(); Message msg = new Message(); msg.obj = photos; handler.sendMessage(msg); } }).start(); } /** * 更新相册 * * @param listener */ public void updateAlbum(final OnLocalAlbumListener listener) { final Handler handler = new Handler() { @SuppressWarnings("unchecked") @Override public void handleMessage(Message msg) { listener.onAlbumLoaded((List<AlbumModel>) msg.obj); } }; new Thread(new Runnable() { @Override public void run() { List<AlbumModel> albums = albumController.getAlbums(); Message msg = new Message(); msg.obj = albums; handler.sendMessage(msg); } }).start(); } /** * 获取某个相册中的图片 * * @param name * @param listener */ public void getAlbum(final String name, final OnLocalReccentListener listener) { final Handler handler = new Handler() { @SuppressWarnings("unchecked") @Override public void handleMessage(Message msg) { listener.onPhotoLoaded((List<PhotoModel>) msg.obj); } }; new Thread(new Runnable() { @Override public void run() { List<PhotoModel> photos = albumController.getAlbum(name); Message msg = new Message(); msg.obj = photos; handler.sendMessage(msg); } }).start(); } }