@Override
 public void onGlobalLayout() {
   if (isShowingPopup()) {
     if (!isShown()) {
       getListPopupWindow().dismiss();
     } else {
       getListPopupWindow().show();
       if (mProvider != null) {
         mProvider.subUiVisibilityChanged(true);
       }
     }
   }
 }
  /**
   * Shows the popup no matter if it was already showing.
   *
   * @param maxActivityCount The max number of activities to display.
   */
  private void showPopupUnchecked(int maxActivityCount) {
    if (mAdapter.getDataModel() == null) {
      throw new IllegalStateException("No data model. Did you call #setDataModel?");
    }

    getViewTreeObserver().addOnGlobalLayoutListener(mOnGlobalLayoutListener);

    final boolean defaultActivityButtonShown = mDefaultActivityButton.getVisibility() == VISIBLE;

    final int activityCount = mAdapter.getActivityCount();
    final int maxActivityCountOffset = defaultActivityButtonShown ? 1 : 0;
    if (maxActivityCount != ActivityChooserViewAdapter.MAX_ACTIVITY_COUNT_UNLIMITED
        && activityCount > maxActivityCount + maxActivityCountOffset) {
      mAdapter.setShowFooterView(true);
      mAdapter.setMaxActivityCount(maxActivityCount - 1);
    } else {
      mAdapter.setShowFooterView(false);
      mAdapter.setMaxActivityCount(maxActivityCount);
    }

    IcsListPopupWindow popupWindow = getListPopupWindow();
    if (!popupWindow.isShowing()) {
      if (mIsSelectingDefaultActivity || !defaultActivityButtonShown) {
        mAdapter.setShowDefaultActivity(true, defaultActivityButtonShown);
      } else {
        mAdapter.setShowDefaultActivity(false, false);
      }
      final int contentWidth = Math.min(mAdapter.measureContentWidth(), mListPopupMaxWidth);
      popupWindow.setContentWidth(contentWidth);
      popupWindow.show();
      if (mProvider != null) {
        mProvider.subUiVisibilityChanged(true);
      }
      popupWindow
          .getListView()
          .setContentDescription(
              mContext.getString(R.string.abs__activitychooserview_choose_application));
    }
  }