/** * 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.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.graphics.drawable.Drawable; import android.view.KeyEvent; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.widget.ArrayAdapter; /** * * @author sihai * */ public class QuickActionsSubMenu implements OnClickListener, SubMenu { private final Context mContext; private final android.view.ContextMenu.ContextMenuInfo mContextMenuInfo; private CharSequence mHeaderTitle; private final QuickActionsMenuItem mItem; private final List mItems = new ArrayList(); private final android.view.MenuItem.OnMenuItemClickListener mOnMenuItemClickListener; public QuickActionsSubMenu(Context context, QuickActionsMenuItem quickactionsmenuitem, android.view.ContextMenu.ContextMenuInfo contextmenuinfo, android.view.MenuItem.OnMenuItemClickListener onmenuitemclicklistener) { mContext = context; mItem = quickactionsmenuitem; mContextMenuInfo = contextmenuinfo; mOnMenuItemClickListener = onmenuitemclicklistener; } private static List visible(List list) { int i = 0; Iterator iterator = list.iterator(); do { if(!iterator.hasNext()) break; if(((MenuItem)iterator.next()).isVisible()) i++; } while(true); if(i != list.size()) { ArrayList arraylist = new ArrayList(i); Iterator iterator1 = list.iterator(); do { if(!iterator1.hasNext()) break; MenuItem menuitem = (MenuItem)iterator1.next(); if(menuitem.isVisible()) arraylist.add(menuitem); } while(true); list = arraylist; } return list; } 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, mContext.getText(l)); } public final MenuItem add(int i, int j, int k, CharSequence charsequence) { QuickActionsMenuItem quickactionsmenuitem = new QuickActionsMenuItem(mContext, i, j, k, charsequence, mContextMenuInfo, mOnMenuItemClickListener); mItems.add(quickactionsmenuitem); return quickactionsmenuitem; } 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) { throw new UnsupportedOperationException(); } public final SubMenu addSubMenu(int i, int j, int k, int l) { throw new UnsupportedOperationException(); } public final SubMenu addSubMenu(int i, int j, int k, CharSequence charsequence) { throw new UnsupportedOperationException(); } public final SubMenu addSubMenu(CharSequence charsequence) { throw new UnsupportedOperationException(); } public final void clear() { mItems.clear(); } public final void clearHeader() { mHeaderTitle = null; } public final void close() { throw new UnsupportedOperationException(); } public final MenuItem findItem(int i) { for(Iterator iterator = mItems.iterator(); iterator.hasNext();) { QuickActionsMenuItem quickactionsmenuitem = (QuickActionsMenuItem)iterator.next(); if(i == quickactionsmenuitem.getItemId()) { return quickactionsmenuitem; } } return null; } public final MenuItem getItem() { return mItem; } public final MenuItem getItem(int i) { return (QuickActionsMenuItem)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; } public final void onClick(DialogInterface dialoginterface, int i) { ((QuickActionsMenuItem)((AlertDialog)dialoginterface).getListView().getAdapter().getItem(i)).invoke(); } 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 SubMenu setHeaderIcon(int i) { throw new UnsupportedOperationException(); } public final SubMenu setHeaderIcon(Drawable drawable) { throw new UnsupportedOperationException(); } public final SubMenu setHeaderTitle(int i) { return setHeaderTitle(mContext.getText(i)); } public final SubMenu setHeaderTitle(CharSequence charsequence) { mHeaderTitle = charsequence; return this; } public final SubMenu setHeaderView(View view) { throw new UnsupportedOperationException(); } public final SubMenu setIcon(int i) { throw new UnsupportedOperationException(); } public final SubMenu setIcon(Drawable drawable) { throw new UnsupportedOperationException(); } public final void setQwertyMode(boolean flag) { throw new UnsupportedOperationException(); } public final void show() { android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(mContext); List list = visible(mItems); builder.setAdapter(new ArrayAdapter(mContext, 0x1090003, 0x1020014, list), this); builder.setIcon(0x106000d); if(mHeaderTitle != null) builder.setTitle(mHeaderTitle); AlertDialog alertdialog = builder.create(); alertdialog.setCanceledOnTouchOutside(true); alertdialog.show(); } public final int size() { return mItems.size(); } }