package com.mcxiaoke.minicat.fragment;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import com.mcxiaoke.bus.Bus;
import com.mcxiaoke.bus.annotation.BusReceiver;
import com.mcxiaoke.minicat.AppContext;
import com.mcxiaoke.minicat.api.Paging;
import com.mcxiaoke.minicat.controller.DataController;
import com.mcxiaoke.minicat.dao.model.StatusModel;
import com.mcxiaoke.minicat.service.StatusUpdateEvent;
import com.mcxiaoke.minicat.service.SyncService;
import com.mcxiaoke.minicat.util.Utils;
/**
* @author mcxiaoke
* @version 1.3 2012.03.19
*/
public class HomeTimelineFragment extends BaseTimlineFragment {
private static final String TAG = HomeTimelineFragment.class
.getSimpleName();
public static HomeTimelineFragment newInstance() {
return newInstance(false);
}
public static HomeTimelineFragment newInstance(boolean refresh) {
Bundle args = new Bundle();
args.putBoolean("refresh", refresh);
HomeTimelineFragment fragment = new HomeTimelineFragment();
fragment.setArguments(args);
if (AppContext.DEBUG) {
Log.d(TAG, "newInstance() " + fragment);
}
return fragment;
}
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bus.getDefault().register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
Bus.getDefault().unregister(this);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// getActivity().setTitle("我的主页");
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return DataController.getTimelineCursorLoader(getActivity(),
StatusModel.TYPE_HOME);
}
@Override
protected void doFetch(boolean doGetMore) {
final ResultHandler handler = new ResultHandler(this);
final Cursor cursor = getCursor();
Paging p = new Paging();
if (doGetMore) {
p.maxId = Utils.getMaxId(cursor);
} else {
p.sinceId = Utils.getSinceId(cursor);
}
if (AppContext.DEBUG) {
Log.d(TAG, "doFetch() doGetMore=" + doGetMore + " Paging=" + p);
}
SyncService.getTimeline(getActivity(), StatusModel.TYPE_HOME,
handler, p);
}
@Override
protected int getType() {
return StatusModel.TYPE_HOME;
}
@Override
public String getTitle() {
return "主页";
}
@BusReceiver
public void onEvent(StatusUpdateEvent event) {
if (AppContext.DEBUG) {
Log.d(TAG, "onEvent StatusUpdateEvent ");
}
Utils.notify(getActivity(), "消息发送成功");
doRefresh();
}
}