package com.example.twitterclient.activities;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.example.twitterclient.R;
import com.example.twitterclient.adapters.TweetListAdapter;
import com.example.twitterclient.apps.TwitterApp;
import com.example.twitterclient.fragments.TimelineFragment;
import com.example.twitterclient.models.Tweet;
import com.example.twitterclient.models.User;
public class TimelineActivity extends SherlockFragmentActivity implements
ActionBar.TabListener,
TweetListAdapter.HandlesTweet {
TimelineFragment activeFragment;
public void startComposeActivity(MenuItem item) {
Intent intent = new Intent(this, ComposeActivity.class);
startActivity(intent);
}
public void createTabs(Bundle savedInstanceState) {
ActionBar actionBar = getSupportActionBar();
if (actionBar == null) return;
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
for (TimelineFragment.TimelineType type : TimelineFragment.TimelineType.values()) {
if (type == TimelineFragment.TimelineType.USER) continue;
TimelineFragment tag = new TimelineFragment(type);
actionBar.addTab(actionBar
.newTab().setText(TimelineFragment.getNameResource(type))
.setIcon(TimelineFragment.getIconResource(type))
.setTag(tag).setTabListener(this)
);
}
if (savedInstanceState == null)
actionBar.selectTab(actionBar.getTabAt(0));
}
public void startCurrentProfileActivity(MenuItem item) {
Intent intent = new Intent(this, ProfileActivity.class);
intent.putExtra("id", TwitterApp.getCurrentUser().getId());
startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timeline);
createTabs(savedInstanceState);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
activeFragment.loadNewerTweets();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu_timeline, menu);
return true;
}
@Override
public void onError(Throwable error) {
Toast.makeText(this, "Error: " + error.getMessage(), Toast.LENGTH_LONG).show();
Log.e("FIXME", "TimelineType Error", error);
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
TimelineFragment fragment = (TimelineFragment) tab.getTag();
ft.replace(R.id.timelineLayout, fragment);
activeFragment = fragment;
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public User getCurrentUser() {
return TwitterApp.getCurrentUser();
}
@Override
public void onProfileClick(User user) {
Intent intent = new Intent(this, ProfileActivity.class);
intent.putExtra("id", user.getId());
startActivity(intent);
}
@Override
public void onReplyClick(Tweet tweet) {
Intent intent = new Intent(this, ComposeActivity.class);
intent.putExtra("reply_to_id", tweet.getId());
startActivity(intent);
}
}