Ejemplo n.º 1
0
  private static void showPopupMenu(final View v, final Object context) {

    if (ActivityFactory.getMainActivity().getCurrentUser() == null) return;

    id_menu = (int) context;
    PopupMenu popupMenu = new PopupMenu(v.getContext(), v);
    popupMenu.inflate(R.menu.menu_item);

    if (ActivityFactory.getMainActivity().getCurrentUser().getPost() == IUser.Posts.Адміністратар)
      popupMenu.getMenu().setGroupVisible(R.id.group_admin, true);
    else {
      // TODO:change admin menu

    }

    popupMenu.setOnMenuItemClickListener(
        new PopupMenu.OnMenuItemClickListener() {

          @Override
          public boolean onMenuItemClick(MenuItem item) {
            IItem iItem = ActivityFactory.getMainActivity().getItem(id_menu);
            IUser iUser = ActivityFactory.getMainActivity().getCurrentUser();
            switch (item.getItemId()) {
              case R.id.menu_item_change:
                {
                  if (iItem.getUserId() == iUser.getId()) {
                    Bundle args = new Bundle();
                    args.putInt(IItem.ITEM_PARAM, (int) v.getTag());
                    ActivityFactory.getMainActivity()
                        .openFragment(iMainActivity.Fragments.ItemAdd, true, args);
                  }
                  return true;
                }
              case R.id.menu_item_user_set:
                {
                  Bundle args = new Bundle();
                  args.putInt(IItem.ITEM_PARAM, iItem.getId());
                  ActivityFactory.getMainActivity()
                      .openFragment(iMainActivity.Fragments.Users, true, args);
                  return true;
                }
              case R.id.menu_item_status_set:
                {
                  ActivityFactory.getMainActivity().setTempItem(iItem);
                  ActivityFactory.getMainActivity()
                      .openFragment(iMainActivity.Fragments.Status, true);

                  return true;
                }
              default:
                return false;
            }
          }
        });

    popupMenu.setOnDismissListener(
        new PopupMenu.OnDismissListener() {

          @Override
          public void onDismiss(PopupMenu menu) {}
        });
    popupMenu.show();
  }