package com.swifty.fillcolor.model;
import android.content.Context;
import android.os.AsyncTask;
import com.swifty.fillcolor.listener.OnLoadCacheImageListener;
import com.swifty.fillcolor.listener.OnLoadUserPaintListener;
import com.swifty.fillcolor.controller.main.UserFragment;
import com.swifty.fillcolor.model.bean.CacheImageBean;
import com.swifty.fillcolor.model.bean.LocalImageBean;
import com.swifty.fillcolor.util.FileUtils;
import com.swifty.fillcolor.util.L;
import java.util.List;
/**
* Created by Swifty.Wang on 2015/9/1.
*/
public class UserFragmentModel {
private static UserFragmentModel ourInstance;
Context context;
AsyncTask asyncTask;
public static UserFragmentModel getInstance(Context context) {
if (ourInstance == null) {
ourInstance = new UserFragmentModel(context);
}
return ourInstance;
}
private UserFragmentModel(Context context) {
this.context = context;
}
public void obtainLocalPaintList(OnLoadUserPaintListener onLoadUserPaintListener) {
asyncTask = new LoadLocalPaintsAsyn();
asyncTask.execute(onLoadUserPaintListener);
}
public void obtainCacheImageList(Context context, OnLoadCacheImageListener onLoadCacheImageListener) {
asyncTask = new LoadCacheImagesAsyn();
asyncTask.execute(onLoadCacheImageListener, context);
}
private class LoadLocalPaintsAsyn extends AsyncTask {
OnLoadUserPaintListener onLoadUserPaintListener;
@Override
protected Object doInBackground(Object[] objects) {
L.e("load local data");
onLoadUserPaintListener = (OnLoadUserPaintListener) objects[0];
return FileUtils.obtainLocalImages();
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
L.e(o.toString());
if (UserFragment.getInstance().isAdded() && onLoadUserPaintListener != null) {
onLoadUserPaintListener.loadUserPaintFinished((List<LocalImageBean>) o);
}
}
}
private class LoadCacheImagesAsyn extends AsyncTask {
OnLoadCacheImageListener onLoadCacheImageListener;
Context context;
@Override
protected Object doInBackground(Object[] params) {
onLoadCacheImageListener = (OnLoadCacheImageListener) params[0];
context = (Context) params[1];
List<CacheImageBean> cacheImageBeans;
cacheImageBeans = FCDBModel.getInstance().readHaveCacheImages(context);
return cacheImageBeans;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if (UserFragment.getInstance().isAdded() && onLoadCacheImageListener != null) {
onLoadCacheImageListener.loadCacheImageSuccess((List<CacheImageBean>) o);
}
}
}
}