package com.swifty.fillcolor.model;
import android.content.Context;
import android.os.AsyncTask;
import com.google.gson.Gson;
import com.swifty.fillcolor.MyApplication;
import com.swifty.fillcolor.listener.OnThemeListLoadListener;
import com.swifty.fillcolor.controller.main.ThemeListFragment;
import com.swifty.fillcolor.model.bean.ThemeBean;
import com.swifty.fillcolor.util.L;
import com.swifty.fillcolor.util.MyHttpClient;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Swifty.Wang on 2015/8/4.
*/
public class LoadListDataAsyn extends AsyncTask {
private OnThemeListLoadListener onThemeListLoadListener;
List<ThemeBean.Theme> themeList;
private String PageId = "pageid";
Context context;
@Override
protected Object doInBackground(Object[] objects) {
try {
int page = (int) objects[0];
if (objects[1] != null && objects[1] instanceof Context) {
context = (Context) objects[1];
}
MyHttpClient myHttpClient = new MyHttpClient();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(PageId, String.valueOf(page)));
String ret = myHttpClient.executePostRequest(MyApplication.ThemeListUrl, params);
Gson gson = new Gson();
themeList = gson.fromJson(ret, ThemeBean.class).getThemes();
//save to db
if (themeList != null) {
if (context != null) {
FCDBModel.getInstance().insertNewThemes(context, themeList);
}
} else {
return "FAILED";
}
return "SUCCESS";
} catch (Exception e) {
L.e(e.toString());
return "FAILED";
}
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if (ThemeListFragment.getInstance().isAdded() && onThemeListLoadListener != null) {
onThemeListLoadListener.onLoadFinish(themeList);
}
}
public void setOnThemeListLoadListener(OnThemeListLoadListener onThemeListLoadListener) {
this.onThemeListLoadListener = onThemeListLoadListener;
}
}