package com.distantfuture.videos.misc; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.PopupMenu; import com.distantfuture.videos.R; import com.distantfuture.videos.imageutils.ToolbarIcons; public class VideoMenuView extends ImageView { private static Drawable sharedDrawable; public Long mId; private VideoMenuViewListener mListener; public VideoMenuView(Context context, AttributeSet attrs) { super(context, attrs); if (sharedDrawable == null) { sharedDrawable = ToolbarIcons.iconBitmap(getContext(), ToolbarIcons.IconID.OVERFLOW, 0xffdddddd, 30); sharedDrawable.setAlpha(200); // 0-255 } setImageDrawable(sharedDrawable); final PopupMenu popupMenu = new PopupMenu(getContext(), this); popupMenu.inflate(R.menu.video_menu); setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popupMenu.show(); } }); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.video_menu_youtube: if (mListener != null) mListener.showVideoOnYouTube(mId); break; case R.id.video_menu_hide: if (mListener != null) mListener.hideVideo(mId); break; } return true; } }); } public void setListener(VideoMenuViewListener listener) { mListener = listener; } public interface VideoMenuViewListener { public void showVideoInfo(Long itemId); public void showVideoOnYouTube(Long itemId); public void hideVideo(Long itemId); } }