/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import android.app.Dialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
import com.galaxy.meetup.client.android.R;
/**
*
* @author sihai
*
*/
public class QuickActionsContextMenu extends Dialog implements ContextMenu {
private final android.view.ContextMenu.ContextMenuInfo mContextMenuInfo;
private final List mItems = new ArrayList();
private boolean mLeftAligned;
private final android.view.MenuItem.OnMenuItemClickListener mOnMenuItemClickListener;
private boolean mShowAbove;
private boolean mVertical;
QuickActionsContextMenu(Context context, android.view.ContextMenu.ContextMenuInfo contextmenuinfo, android.view.MenuItem.OnMenuItemClickListener onmenuitemclicklistener, boolean flag, boolean flag1, boolean flag2)
{
super(context, R.style.QuickActions);
mLeftAligned = flag;
mVertical = flag2;
mShowAbove = flag1;
mContextMenuInfo = contextmenuinfo;
mOnMenuItemClickListener = onmenuitemclicklistener;
Window window = getWindow();
window.clearFlags(2);
window.setLayout(-1, -2);
int i;
if(flag)
{
if(flag1)
i = R.drawable.tooltip_top_left_background;
else
i = R.drawable.tooltip_bottom_left_background;
} else
if(flag1)
i = R.drawable.tooltip_top_right_background;
else
i = R.drawable.tooltip_bottom_right_background;
window.setBackgroundDrawableResource(i);
setCanceledOnTouchOutside(true);
}
public QuickActionsMenuItem add(int i, int j, int k, CharSequence charsequence)
{
QuickActionsMenuItem quickactionsmenuitem = new QuickActionsMenuItem(getContext(), i, j, k, charsequence, mContextMenuInfo, mOnMenuItemClickListener);
mItems.add(quickactionsmenuitem);
return quickactionsmenuitem;
}
public final MenuItem add(int i)
{
return add(0, 0, 0, i);
}
public final MenuItem add(int i, int j, int k, int l)
{
return add(i, j, k, getContext().getText(l));
}
public final MenuItem add(CharSequence charsequence)
{
return add(0, 0, 0, charsequence);
}
public final int addIntentOptions(int i, int j, int k, ComponentName componentname, Intent aintent[], Intent intent, int l,
MenuItem amenuitem[])
{
throw new UnsupportedOperationException();
}
public final SubMenu addSubMenu(int i)
{
return addSubMenu(0, 0, 0, i);
}
public final SubMenu addSubMenu(int i, int j, int k, int l)
{
return addSubMenu(i, j, k, getContext().getText(l));
}
public final SubMenu addSubMenu(int i, int j, int k, CharSequence charsequence)
{
Context context = getContext();
QuickActionsMenuItem quickactionsmenuitem = add(i, j, k, charsequence);
QuickActionsSubMenu quickactionssubmenu = new QuickActionsSubMenu(context, quickactionsmenuitem, mContextMenuInfo, mOnMenuItemClickListener);
quickactionsmenuitem.setSubMenu(quickactionssubmenu);
return quickactionssubmenu;
}
public final SubMenu addSubMenu(CharSequence charsequence)
{
return addSubMenu(0, 0, 0, charsequence);
}
public final void clear()
{
mItems.clear();
}
public final void clearHeader()
{
}
public final void close()
{
dismiss();
}
public final MenuItem findItem(int i) {
MenuItem menuitem;
QuickActionsMenuItem qm = null;
for(Iterator iterator = mItems.iterator(); iterator.hasNext();) {
qm = (QuickActionsMenuItem)iterator.next();
if(i == ((MenuItem) (qm)).getItemId()) {
return qm;
} else if(((MenuItem) (qm)).hasSubMenu()) {
menuitem = ((MenuItem) (qm)).getSubMenu().findItem(i);
if(null != menuitem) {
return menuitem;
}
}
}
return null;
}
public final MenuItem getItem(int i)
{
return (MenuItem)mItems.get(i);
}
public final boolean hasVisibleItems() {
for(Iterator iterator = mItems.iterator(); iterator.hasNext();) {
if(((QuickActionsMenuItem)iterator.next()).isVisible()) {
return true;
}
}
return false;
}
public final boolean isShortcutKey(int i, KeyEvent keyevent)
{
return false;
}
protected final void onCreate(Bundle bundle)
{
super.onCreate(bundle);
int i;
int j;
Context context;
ViewGroup viewgroup;
LayoutInflater layoutinflater;
Iterator iterator;
if(mVertical)
i = R.layout.quick_actions_dialog_vertical;
else
i = R.layout.quick_actions_dialog;
setContentView(i);
if(mVertical)
j = R.layout.quick_actions_item_vertical;
else
j = R.layout.quick_actions_item;
context = getContext();
viewgroup = (ViewGroup)findViewById(R.id.quick_actions_buttons);
layoutinflater = LayoutInflater.from(context);
iterator = mItems.iterator();
do
{
if(!iterator.hasNext())
break;
Drawable drawable;
int k;
final QuickActionsMenuItem item = (QuickActionsMenuItem)iterator.next();
if(item.isVisible())
{
Button button;
CharSequence charsequence;
if(viewgroup.getChildCount() != 0)
{
if(mVertical)
k = R.layout.quick_actions_divider_horizontal;
else
k = R.layout.quick_actions_divider_vertical;
layoutinflater.inflate(k, viewgroup, true);
}
button = (Button)layoutinflater.inflate(j, viewgroup, false);
charsequence = item.getTitle();
drawable = item.getIcon();
if(drawable != null)
{
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
button.setText((new StringBuilder(" ")).append(charsequence).toString());
} else
{
button.setText(charsequence);
}
button.setCompoundDrawables(drawable, null, null, null);
button.setEnabled(item.isEnabled());
button.setOnClickListener(new android.view.View.OnClickListener() {
public final void onClick(View view)
{
item.invoke();
dismiss();
}
});
viewgroup.addView(button);
}
} while(true);
}
public final boolean onTouchEvent(MotionEvent motionevent)
{
boolean flag = true;
if(!super.onTouchEvent(motionevent))
if(motionevent.getAction() == 0)
dismiss();
else
flag = false;
return flag;
}
public final boolean performIdentifierAction(int i, int j)
{
return false;
}
public final boolean performShortcut(int i, KeyEvent keyevent, int j)
{
return false;
}
public final void removeGroup(int i)
{
throw new UnsupportedOperationException();
}
public final void removeItem(int i)
{
mItems.remove(findItem(i));
}
public final void setGroupCheckable(int i, boolean flag, boolean flag1)
{
throw new UnsupportedOperationException();
}
public final void setGroupEnabled(int i, boolean flag)
{
throw new UnsupportedOperationException();
}
public final void setGroupVisible(int i, boolean flag)
{
throw new UnsupportedOperationException();
}
public final ContextMenu setHeaderIcon(int i)
{
return this;
}
public final ContextMenu setHeaderIcon(Drawable drawable)
{
return this;
}
public final ContextMenu setHeaderTitle(int i)
{
return this;
}
public final ContextMenu setHeaderTitle(CharSequence charsequence)
{
return this;
}
public final ContextMenu setHeaderView(View view)
{
return this;
}
public final void setQwertyMode(boolean flag)
{
}
final void showAnchoredAt(int i, int j)
{
Window window = getWindow();
android.view.WindowManager.LayoutParams layoutparams = window.getAttributes();
int k;
int l;
byte byte0;
if(mShowAbove)
k = 80;
else
k = 48;
layoutparams.gravity = k;
layoutparams.y = j;
l = layoutparams.gravity;
if(mLeftAligned)
byte0 = 3;
else
byte0 = 5;
layoutparams.gravity = byte0 | l;
layoutparams.x = i;
window.setAttributes(layoutparams);
show();
}
public final int size()
{
return mItems.size();
}
}