package net.dev123.yibo.service.listener;
import net.dev123.mblog.entity.Status;
import net.dev123.yibo.MicroBlogActivity;
import net.dev123.yibo.R;
import android.content.Context;
import android.content.Intent;
import android.text.ClipboardManager;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.widget.Toast;
public class MicroBlogStatusContextMenuListener implements
OnCreateContextMenuListener {
public static final int CONTEXT_MENU_MENU_COPY_TWEET = 0;
public static final int CONTEXT_MENU_MENU_COPY_RETWEET = 1;
public static final int CONTEXT_MENU_MENU_VIEW_RETWEET = 2;
private Status status;
public MicroBlogStatusContextMenuListener(Status status) {
this.status = status;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if (status == null) {
return;
}
final Context context = v.getContext();
int order = 0;
menu.setHeaderTitle(R.string.menu_title_blog);
MenuItem copytweetMenu = menu.add(
0, CONTEXT_MENU_MENU_COPY_TWEET, order++, R.string.menu_blog_copy_tweet
);
copytweetMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
ClipboardManager clip = (ClipboardManager)context
.getSystemService(Context.CLIPBOARD_SERVICE);
String statusText = status.getText();
clip.setText(statusText);
Toast.makeText(context, R.string.msg_blog_copy, Toast.LENGTH_SHORT).show();
return false;
}
});
final Status retweet = status.getRetweetedStatus();
if (retweet != null) {
MenuItem copyRetweetMenu = menu.add(
0, CONTEXT_MENU_MENU_COPY_RETWEET, order++, R.string.menu_blog_copy_retweet
);
copyRetweetMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
ClipboardManager clip = (ClipboardManager)context
.getSystemService(Context.CLIPBOARD_SERVICE);
String statusText = retweet.getText();
clip.setText(statusText);
Toast.makeText(context, R.string.msg_blog_copy, Toast.LENGTH_SHORT).show();
return false;
}
});
MenuItem showRetweetMenu = menu.add(
0, CONTEXT_MENU_MENU_VIEW_RETWEET, order++, R.string.menu_blog_show_origin
);
Intent showRetweetIntent = new Intent(context, MicroBlogActivity.class);
showRetweetIntent.putExtra("STATUS", retweet);
showRetweetMenu.setIntent(showRetweetIntent);
}
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
}