private void showHandleIfNeeded() {
   if (!mIsShowing) {
     mIsShowing = true;
     mHandle.show();
     setHandleVisibility(HandleView.VISIBLE);
   }
 }
 @Override
 public void hide() {
   if (mIsShowing) {
     if (mHandle != null) mHandle.hide();
     mIsShowing = false;
   }
 }
 int getHandleY() {
   return mHandle.getAdjustedPositionY();
 }
 /** Sets the handle to the given visibility. */
 public void setHandleVisibility(int visibility) {
   mHandle.setVisibility(visibility);
 }
 /** If the handle is not visible, sets its visibility to View.VISIBLE and begins fading it in. */
 public void beginHandleFadeIn() {
   mHandle.beginFadeIn();
 }
 /**
  * Moves the handle so that it points at the given coordinates.
  *
  * @param x Handle x in physical pixels.
  * @param y Handle y in physical pixels.
  */
 public void setHandlePosition(float x, float y) {
   mHandle.positionAt((int) x, (int) y);
 }
 void showPastePopup() {
   if (mIsShowing) {
     mHandle.showPastePopupWindow();
   }
 }