public void toggleSubMenu() {
   if (popupLayout == null) {
     return;
   }
   if (showMenuRunnable != null) {
     AndroidUtilities.cancelRunOnUIThread(showMenuRunnable);
     showMenuRunnable = null;
   }
   if (popupWindow != null && popupWindow.isShowing()) {
     popupWindow.dismiss();
     return;
   }
   if (popupWindow == null) {
     popupWindow =
         new ActionBarPopupWindow(
             popupLayout,
             FrameLayout.LayoutParams.WRAP_CONTENT,
             FrameLayout.LayoutParams.WRAP_CONTENT);
     // popupWindow.setBackgroundDrawable(new BitmapDrawable());
     popupWindow.setAnimationStyle(R.style.PopupAnimation);
     popupWindow.setOutsideTouchable(true);
     popupWindow.setClippingEnabled(true);
     popupWindow.setInputMethodMode(ActionBarPopupWindow.INPUT_METHOD_NOT_NEEDED);
     popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED);
     popupLayout.measure(
         MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), MeasureSpec.AT_MOST),
         MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), MeasureSpec.AT_MOST));
     popupWindow.getContentView().setFocusableInTouchMode(true);
     popupWindow
         .getContentView()
         .setOnKeyListener(
             new OnKeyListener() {
               @Override
               public boolean onKey(View v, int keyCode, KeyEvent event) {
                 if (keyCode == KeyEvent.KEYCODE_MENU
                     && event.getRepeatCount() == 0
                     && event.getAction() == KeyEvent.ACTION_UP
                     && popupWindow != null
                     && popupWindow.isShowing()) {
                   popupWindow.dismiss();
                   return true;
                 }
                 return false;
               }
             });
   }
   popupWindow.setFocusable(true);
   if (popupLayout.getMeasuredWidth() == 0) {
     if (showFromBottom) {
       popupWindow.showAsDropDown(
           this,
           -popupLayout.getMeasuredWidth() + getMeasuredWidth() + AndroidUtilities.dp(14),
           getOffsetY());
       popupWindow.update(
           this,
           -popupLayout.getMeasuredWidth() + getMeasuredWidth() + AndroidUtilities.dp(14),
           getOffsetY(),
           -1,
           -1);
     } else {
       popupWindow.showAsDropDown(
           this,
           parentMenu.parentActionBar.getMeasuredWidth()
               - popupLayout.getMeasuredWidth()
               - getLeft()
               - parentMenu.getLeft(),
           getOffsetY());
       popupWindow.update(
           this,
           parentMenu.parentActionBar.getMeasuredWidth()
               - popupLayout.getMeasuredWidth()
               - getLeft()
               - parentMenu.getLeft(),
           getOffsetY(),
           -1,
           -1);
     }
   } else {
     if (showFromBottom) {
       popupWindow.showAsDropDown(
           this,
           -popupLayout.getMeasuredWidth() + getMeasuredWidth() + AndroidUtilities.dp(14),
           getOffsetY());
     } else {
       popupWindow.showAsDropDown(
           this,
           parentMenu.parentActionBar.getMeasuredWidth()
               - popupLayout.getMeasuredWidth()
               - getLeft()
               - parentMenu.getLeft(),
           getOffsetY());
     }
   }
 }