package com.mcxiaoke.minicat.fragment;
import android.app.Activity;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import com.mcxiaoke.minicat.AppContext;
import com.mcxiaoke.minicat.adapter.StatusCursorAdapter;
import com.mcxiaoke.minicat.api.Paging;
import com.mcxiaoke.minicat.controller.DataController;
import com.mcxiaoke.minicat.dao.model.StatusModel;
import com.mcxiaoke.minicat.service.SyncService;
import com.mcxiaoke.minicat.util.Utils;
/**
* @author mcxiaoke
* @version 4.0 2013.05.18
*/
public class UserTimelineFragment extends BaseTimlineFragment implements
OnClickListener {
private static final String TAG = UserTimelineFragment.class.getSimpleName();
private String userId;
public static UserTimelineFragment newInstance(String userId) {
return newInstance(userId, false);
}
public static UserTimelineFragment newInstance(String userId, boolean refresh) {
Bundle args = new Bundle();
args.putString("id", userId);
args.putBoolean("refresh", refresh);
UserTimelineFragment fragment = new UserTimelineFragment();
fragment.setArguments(args);
if (AppContext.DEBUG) {
Log.d(TAG, "newInstance() " + fragment);
}
return fragment;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return DataController
.getUserTimelineCursorLoader(getActivity(), userId);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@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() userId=" + userId + " doGetMore=" + doGetMore
+ " paging=" + p + " type=" + getType());
}
SyncService.getTimeline(getActivity(), getType(), handler, userId, p);
}
@Override
protected int getType() {
return StatusModel.TYPE_USER;
}
@Override
protected void parseArguments(Bundle data) {
userId = data.getString("id");
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
((StatusCursorAdapter) getAdapter()).setColored(false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
}
@Override
public String getTitle() {
return "时间线";
}
}