package jianshu.io.app.model;
import android.content.Context;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import it.gmariotti.cardslib.library.internal.Card;
import jianshu.io.app.adapter.JianshuCardArrayAdapter;
import jianshu.io.app.adapter.TimeStreamCardArrayAdapter;
import jianshu.io.app.model.datapool.DataPool;
import jianshu.io.app.model.datapool.HomePageDataPool;
import jianshu.io.app.model.datapool.HotPageDataPool;
import jianshu.io.app.model.datapool.TimeStreamDataPool;
/**
* Created by Administrator on 2014/5/15.
*/
public class StatePool {
private static StatePool instance;
private Map<String, Object[]> mStateMap = new HashMap<String, Object[]>();
private StatePool() {
}
public static StatePool getInstance() {
if(instance == null) {
instance = new StatePool();
}
return instance;
}
public void putListViewState(String url, Object state) {
mStateMap.get(url)[2] = state;
}
public Object[] getFragmentState(Context context, String url) {
if(mStateMap.containsKey(url)) {
return mStateMap.get(url);
} else {
Object[] result = new Object[3];
DataPool pool;
if(url.equals(HomePageDataPool.HOME_PAGE_URL)) {
pool = new HomePageDataPool();
} else if(url.equals(TimeStreamDataPool.TIMELINE_URL)) {
pool = new TimeStreamDataPool();
} else {
pool = new HotPageDataPool(url);
}
result[0] = pool;
if(url.equals(TimeStreamDataPool.TIMELINE_URL)) {
TimeStreamCardArrayAdapter adapter = new TimeStreamCardArrayAdapter(context, new ArrayList<Card>());
result[1] = adapter;
} else {
JianshuCardArrayAdapter adapter = new JianshuCardArrayAdapter(context, new ArrayList<Card>());
result[1] = adapter;
}
mStateMap.put(url, result);
return result;
}
}
public Object[] getState(String tag) {
if(mStateMap.containsKey(tag)) {
return mStateMap.get(tag);
}
return null;
}
public void putState(String tag, Object[] state) {
mStateMap.put(tag, state);
}
}