@Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
   mActivePosition = position;
   mMenuDrawer.setActiveView(view, position);
   mAdapter.setActivePosition(position);
   onMenuItemClicked(position, (Item) mAdapter.getItem(position));
 }
 static JComponent createMenuComponent(JComponent menu, ActionMap actionMap, List actions) {
   MenuAdapter menuAdapter = new MenuAdapter(menu);
   for (Object menuElement : actions) {
     if (MenuFactory.SEPARATOR.equals(menuElement)) {
       menuAdapter.addSeparator();
     } else if (menuElement instanceof Object[]) {
       Object[] items = (Object[]) menuElement;
       if (items.length > 1) {
         JMenu subMenu = new JMenu(items[0].toString());
         List<Object> keys = Arrays.asList(items).subList(1, items.length);
         createMenuComponent(subMenu, actionMap, keys);
         if (subMenu.getMenuComponents().length > 0) {
           menuAdapter.addSubMenu(subMenu);
         }
       }
     } else if (menuElement instanceof List) {
       List items = (List) menuElement;
       if (items.size() > 1) {
         JMenu subMenu = new JMenu(items.get(0).toString());
         List<List> keys = Arrays.asList(items).subList(1, items.size());
         createMenuComponent(subMenu, actionMap, keys);
         if (subMenu.getMenuComponents().length > 0) {
           menuAdapter.addSubMenu(subMenu);
         }
       }
     } else {
       Action action = actionMap.get(menuElement);
       if (action != null) {
         menuAdapter.add(action);
       }
     }
   }
   return trim(menuAdapter);
 }
  @Override
  public void updateMenuView(boolean cleared) {
    mHasContentWidth = false;

    if (mAdapter != null) {
      mAdapter.notifyDataSetChanged();
    }
  }
 private int measureContentWidth() {
   int i = 0;
   View view = null;
   int l = 0;
   MenuAdapter menuadapter = mAdapter;
   int k1 = android.view.View.MeasureSpec.makeMeasureSpec(0, 0);
   int l1 = android.view.View.MeasureSpec.makeMeasureSpec(0, 0);
   int i2 = menuadapter.getCount();
   int j = 0;
   do {
     int k;
     label0:
     {
       k = i;
       if (j < i2) {
         int i1 = menuadapter.getItemViewType(j);
         k = l;
         if (i1 != l) {
           k = i1;
           view = null;
         }
         if (mMeasureParent == null) {
           mMeasureParent = new FrameLayout(mContext);
         }
         view = menuadapter.getView(j, view, mMeasureParent);
         view.measure(k1, l1);
         l = view.getMeasuredWidth();
         if (l < mPopupMaxWidth) {
           break label0;
         }
         k = mPopupMaxWidth;
       }
       return k;
     }
     int j1 = i;
     if (l > i) {
       j1 = l;
     }
     j++;
     l = k;
     i = j1;
   } while (true);
 }
 @Subscribe
 public void loadSucceeded(LoadSucceededEvent event) {
   if (TASK_TAG.equals(event.tag)) {
     listOfLists.clear();
     listOfLists.addAll(event.listOfLists);
     menuAdapter.notifyDataSetChanged();
     foodListView.setVisibility(View.VISIBLE);
     progressLayout.setVisibility(View.GONE);
     errorLayout.setVisibility(View.GONE);
   }
 }
  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    if (adapter.getItem(position).tag.equals(MENU_MESSAGES)) {
      Intent intent = new Intent(getActivity(), MessagesActivity.class);
      getActivity().startActivityForResult(intent, 0);
      //            getActivity().overridePendingTransition(R.anim.right_to_left,
      // R.anim.left_to_right);
      getActivity().overridePendingTransition(R.anim.diagonaltranslate, R.anim.alpha);
    } else if (adapter.getItem(position).tag.equals(MENU_GAMES)) {
      Intent intent = new Intent(getActivity(), GamesActivity.class);
      getActivity().startActivityForResult(intent, 0);
      //            getActivity().overridePendingTransition(R.anim.right_to_left,
      // R.anim.left_to_right);
      getActivity().overridePendingTransition(R.anim.diagonaltranslate, R.anim.alpha);
    } else if (adapter.getItem(position).tag.equals(MENU_NEW_GAME)) {
      Intent intent = new Intent(getActivity(), NewGameActivity.class);
      getActivity().startActivityForResult(intent, 0);
      //            getActivity().overridePendingTransition(R.anim.right_to_left,
      // R.anim.right_to_left);
      getActivity().overridePendingTransition(R.anim.diagonaltranslate, R.anim.alpha);
    } else if (adapter.getItem(position).tag.equals("logout")) {
      getActivity()
          .getSharedPreferences("settings", Context.MODE_PRIVATE)
          .edit()
          .putBoolean("login", false)
          .apply();
      Log.d(
          "myLogs",
          getActivity()
                  .getSharedPreferences("settings", Context.MODE_PRIVATE)
                  .getBoolean("login", false)
              + " Login");
      Server.closeSocet();

      getActivity().setResult(MainActivity.RESULT_CLOSE_ALL);
      getActivity().finish();
    }
  } // onListItemClick()
 static JComponent createMenuComponent(JComponent menu, Collection items) {
   MenuAdapter menuAdapter = new MenuAdapter(menu);
   for (Iterator it = items.iterator(); it.hasNext(); ) {
     Object item = (Object) it.next();
     if (item instanceof Action) {
       menuAdapter.add((Action) item);
     } else if (item instanceof Action[]) {
       Action[] actions = (Action[]) item;
       if (actions.length > 1) {
         String name = (String) actions[0].getValue(Action.NAME);
         JMenu subMenu = menuAdapter.addSubMenu(name);
         List<Action> keys = Arrays.asList(actions).subList(1, actions.length);
         createMenuComponent(subMenu, keys);
       }
     } else if (item instanceof JMenuItem) {
       menuAdapter.add((JMenuItem) item);
     } else if (item instanceof JSeparator) {
       menuAdapter.addSeparator();
     }
   }
   return trim(menuAdapter);
 }
  @Override
  protected void onCreate(Bundle inState) {
    super.onCreate(inState);

    if (inState != null) {
      mActivePosition = inState.getInt(STATE_ACTIVE_POSITION);
    }

    mMenuDrawer =
        MenuDrawer.attach(this, MenuDrawer.Type.BEHIND, getDrawerPosition(), getDragMode());

    List<Object> items = new ArrayList<Object>();
    items.add(new Item("Item 1", R.drawable.ic_action_refresh_dark));
    items.add(new Item("Item 2", R.drawable.ic_action_select_all_dark));
    items.add(new Category("Cat 1"));
    items.add(new Item("Item 3", R.drawable.ic_action_refresh_dark));
    items.add(new Item("Item 4", R.drawable.ic_action_select_all_dark));
    items.add(new Category("Cat 2"));
    items.add(new Item("Item 5", R.drawable.ic_action_refresh_dark));
    items.add(new Item("Item 6", R.drawable.ic_action_select_all_dark));
    items.add(new Category("Cat 3"));
    items.add(new Item("Item 7", R.drawable.ic_action_refresh_dark));
    items.add(new Item("Item 8", R.drawable.ic_action_select_all_dark));
    items.add(new Category("Cat 4"));
    items.add(new Item("Item 9", R.drawable.ic_action_refresh_dark));
    items.add(new Item("Item 10", R.drawable.ic_action_select_all_dark));

    mList = new ListView(this);

    mAdapter = new MenuAdapter(this, items);
    mAdapter.setListener(this);
    mAdapter.setActivePosition(mActivePosition);

    mList.setAdapter(mAdapter);
    mList.setOnItemClickListener(mItemClickListener);

    mMenuDrawer.setMenuView(mList);
  }
 /**
  * Removes leading & trailing separators (if any).
  *
  * @param menuAdapter the source menu via our MenuAdapter
  * @return menu sans pointless separators (that separate nothing)
  */
 static JComponent trim(MenuAdapter menuAdapter) {
   int count = menuAdapter.getMenuComponentCount();
   if (count > 0) {
     Component firstComponent = menuAdapter.getMenuComponent(0);
     if (firstComponent instanceof JSeparator) {
       menuAdapter.remove(0);
     }
     int last = menuAdapter.getMenuComponentCount() - 1;
     Component lastComponent = menuAdapter.getMenuComponent(last);
     if (lastComponent instanceof JSeparator) {
       menuAdapter.remove(last);
     }
     if (count > menuAdapter.getMenuComponentCount()) trim(menuAdapter);
   }
   return menuAdapter.getComponent();
 }
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    adapter = new MenuAdapter(getActivity());
    adapter.add(new MenuItem(MENU_MESSAGES, 3 + ""));
    adapter.add(new MenuItem(MENU_GAMES, 28 + ""));
    adapter.add(new MenuItem(MENU_WARNINGS, 1 + ""));
    adapter.add(new MenuItem(MENU_PLAYERS, 155 + ""));
    adapter.add(new MenuItem(MENU_NEW_GAME, ""));
    adapter.add(new MenuItem(MENU_NEW_MESSAGE, ""));

    MenuItem logoutItem = new MenuItem("logout", "");
    logoutItem.setLoguot(true);
    adapter.add(logoutItem);

    setListAdapter(adapter);
  } // onActivityCreated()
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
   MenuAdapter adapter = mAdapter;
   adapter.mAdapterMenu.performItemAction(adapter.getItem(position), 0);
 }
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          // Adjust position if only one blog is in the app
          if (mListView.getHeaderViewsCount() > 0 && position > 0) position--;

          if (!mIsDotComBlog) position++;

          if (position == mActivePosition) {
            // Same row selected
            mMenuDrawer.closeMenu();
            return;
          }

          int activityTag = (Integer) view.getTag();

          mActivePosition = position;
          mAdapter.notifyDataSetChanged();
          Intent intent = null;

          SharedPreferences settings =
              PreferenceManager.getDefaultSharedPreferences(WPActionBarActivity.this);
          SharedPreferences.Editor editor = settings.edit();

          switch (activityTag) {
            case READER_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof ReaderActivity)) mShouldFinish = true;
              int readerBlogID = WordPress.wpDB.getWPCOMBlogID();
              if (WordPress.currentBlog.isDotcomFlag()) {
                intent = new Intent(WPActionBarActivity.this, ReaderActivity.class);
                intent.putExtra("id", readerBlogID);
                intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                editor.putInt("wp_pref_last_activity", READER_ACTIVITY);
              }
              break;
            case POSTS_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof PostsActivity)
                  || (WPActionBarActivity.this instanceof PagesActivity)) mShouldFinish = true;
              intent = new Intent(WPActionBarActivity.this, PostsActivity.class);
              intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              editor.putInt("wp_pref_last_activity", POSTS_ACTIVITY);
              break;
            case PAGES_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof PagesActivity)) mShouldFinish = true;
              intent = new Intent(WPActionBarActivity.this, PagesActivity.class);
              intent.putExtra("id", WordPress.currentBlog.getId());
              intent.putExtra("isNew", true);
              intent.putExtra("viewPages", true);
              intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              editor.putInt("wp_pref_last_activity", PAGES_ACTIVITY);
              break;
            case COMMENTS_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof CommentsActivity)) mShouldFinish = true;
              intent = new Intent(WPActionBarActivity.this, CommentsActivity.class);
              intent.putExtra("id", WordPress.currentBlog.getId());
              intent.putExtra("isNew", true);
              intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              editor.putInt("wp_pref_last_activity", COMMENTS_ACTIVITY);
              break;
              //                case STATS_ACTIVITY:
              //                    if (!(WPActionBarActivity.this instanceof StatsActivity))
              //                        mShouldFinish = true;
              //                    intent = new Intent(WPActionBarActivity.this,
              // StatsActivity.class);
              //                    intent.putExtra("id", WordPress.currentBlog.getId());
              //                    intent.putExtra("isNew",
              //                            true);
              //                    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              //                    editor.putInt("wp_pref_last_activity", STATS_ACTIVITY);
              //                    break;
            case QUICK_PHOTO_ACTIVITY:
              mShouldFinish = false;
              intent = new Intent(WPActionBarActivity.this, EditPostActivity.class);
              intent.putExtra(
                  "quick-media",
                  DeviceUtils.getInstance().hasCamera(getApplicationContext())
                      ? Constants.QUICK_POST_PHOTO_CAMERA
                      : Constants.QUICK_POST_PHOTO_LIBRARY);
              intent.putExtra("isNew", true);
              break;
            case QUICK_VIDEO_ACTIVITY:
              mShouldFinish = false;
              intent = new Intent(WPActionBarActivity.this, EditPostActivity.class);
              intent.putExtra(
                  "quick-media",
                  DeviceUtils.getInstance().hasCamera(getApplicationContext())
                      ? Constants.QUICK_POST_VIDEO_CAMERA
                      : Constants.QUICK_POST_VIDEO_LIBRARY);
              intent.putExtra("isNew", true);
              break;
            case VIEW_SITE_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof ViewSiteActivity)) mShouldFinish = true;
              intent = new Intent(WPActionBarActivity.this, ViewSiteActivity.class);
              intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              editor.putInt("wp_pref_last_activity", VIEW_SITE_ACTIVITY);
              break;
            case DASHBOARD_ACTIVITY:
              if (!(WPActionBarActivity.this instanceof DashboardActivity)) mShouldFinish = true;
              intent = new Intent(WPActionBarActivity.this, DashboardActivity.class);
              intent.putExtra("loadAdmin", true);
              intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
              editor.putInt("wp_pref_last_activity", DASHBOARD_ACTIVITY);
              break;
            case SETTINGS_ACTIVITY:
              // Settings shouldn't be launched with a delay, or close the drawer
              mShouldFinish = false;
              Intent settingsIntent =
                  new Intent(WPActionBarActivity.this, PreferencesActivity.class);
              startActivityForResult(settingsIntent, SETTINGS_REQUEST);
              return;
          }

          editor.commit();
          if (intent != null) {
            mMenuDrawer.closeMenu();
            startActivityWithDelay(intent);
          }
        }