private void showContextMenuFromView(
      final View openingView,
      int feedItem,
      FeedContextMenu.OnFeedContextMenuItemClickListener listener) {
    if (!isContextMenuShowing) {
      isContextMenuShowing = true;
      contextMenuView = new FeedContextMenu(openingView.getContext());
      contextMenuView.bindToItem(feedItem);
      contextMenuView.addOnAttachStateChangeListener(this);
      contextMenuView.setOnFeedMenuItemClickListener(listener);

      ((ViewGroup) openingView.getRootView().findViewById(android.R.id.content))
          .addView(contextMenuView);

      contextMenuView
          .getViewTreeObserver()
          .addOnPreDrawListener(
              new ViewTreeObserver.OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
                  contextMenuView.getViewTreeObserver().removeOnPreDrawListener(this);
                  setupContextMenuInitialPosition(openingView);
                  performShowAnimation();
                  return false;
                }
              });
    }
  }