package com.tuit.ar.activities.timeline; import java.util.ArrayList; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.tuit.ar.R; import com.tuit.ar.activities.NewDirectMessage; import com.tuit.ar.activities.Timeline; import com.tuit.ar.api.Twitter; public class DirectMessages extends Timeline { ArrayList<com.tuit.ar.models.DirectMessage> tweets; protected static final int DM_MENU_NEW_DIRECT_MESSAGE = 0; protected static final int DM_MENU_DELETE = 1; protected static final int DM_MENU_SHOW_PROFILE = 2; protected static final int DM_MENU_OPEN_LINKS = 3; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(getString(R.string.directMessages)); tweets = getTimeline().getTweets(); this.setListAdapter(timelineAdapter = new TimelineAdapter<com.tuit.ar.models.DirectMessage>(this, tweets)); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_NEW_DIRECT_MESSAGE, 0, R.string.newDirectMessage); menu.add(0, MENU_REFRESH, 0, R.string.refresh); menu.add(0, MENU_FRIENDS, 0, R.string.friends); menu.add(0, MENU_REPLIES, 0, R.string.replies); menu.add(0, MENU_FAVORITES, 0, R.string.favorites); menu.add(0, MENU_PREFERENCES, 0, R.string.preferences); menu.add(0, MENU_MY_PROFILE, 0, R.string.profile); return true; } protected com.tuit.ar.models.timeline.DirectMessages getTimeline() { return com.tuit.ar.models.timeline.DirectMessages.getInstance(Twitter.getInstance().getDefaultAccount()); } public void timelineHasChanged(com.tuit.ar.models.Timeline timeline) { if (tweets.size() == 0) tweets.addAll(getTimeline().getTweets()); else tweets.addAll(0, getTimeline().getTweetsNewerThan(tweets.get(0))); if (isVisible) timelineAdapter.notifyDataSetChanged(); } protected void onListItemClick (ListView l, View v, int position, long id) { final com.tuit.ar.models.DirectMessage tweet = (com.tuit.ar.models.DirectMessage) tweets.get(position); new AlertDialog.Builder(this). setTitle(getString(R.string.executeAction)). setItems(R.array.dmOptions, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case DM_MENU_NEW_DIRECT_MESSAGE: { Intent intent = new Intent(getApplicationContext(), NewDirectMessage.class); intent.putExtra("to_user", tweet.getUsername()); startActivity(intent); break; } case DM_MENU_DELETE: { new AlertDialog.Builder(DirectMessages.this) .setMessage(R.string.confirmDeleteDm) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { try { tweet.deleteFromServer(); tweet.delete(); } catch (Exception e) { Toast.makeText(DirectMessages.this, getString(R.string.unableToDeleteDm), Toast.LENGTH_SHORT).show(); } } }) .setNegativeButton(R.string.no, null) .show(); break; } case DM_MENU_SHOW_PROFILE: { showProfile(tweet.getSender()); break; } case DM_MENU_OPEN_LINKS: { openLinksInBrowser(tweet); break; } } } } ).show(); } }