void switchToNormalMode() {
    if (mDisplayMode == DisplayMode.NORMAL) {
      return;
    }
    if (mDisplayMode == DisplayMode.FULLSCREEN) {
      handleFullscreenMode(false);
    }
    Logging.out(LOG_TAG, "switchToNormalMode", LogLevel.DEBUG);
    mDisplayMode = DisplayMode.NORMAL;

    LoopMeBannerView initialView = ((LoopMeBanner) mAd).getBannerView();
    initialView.setVisibility(View.VISIBLE);

    if (mMinimizedView != null && mMinimizedView.getParent() != null) {
      ((ViewGroup) mMinimizedView.getParent()).removeView(mMinimizedView);
      rebuildView(initialView);
      mMinimizedView.removeAllViews();
    }

    mAdView.setOnTouchListener(
        new View.OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {
            return (event.getAction() == MotionEvent.ACTION_MOVE);
          }
        });
  }
 private void configMinimizedViewLayoutParams(LoopMeBannerView bannerView) {
   LayoutParams lp = (LayoutParams) bannerView.getLayoutParams();
   lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
   lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
   lp.bottomMargin = mMinimizedMode.getMarginBottom();
   lp.rightMargin = mMinimizedMode.getMarginRight();
   bannerView.setLayoutParams(lp);
 }
 void destroyMinimizedView() {
   if (mMinimizedView != null) {
     if (mMinimizedView.getParent() != null) {
       ((ViewGroup) mMinimizedView.getParent()).removeView(mMinimizedView);
     }
     mMinimizedView.removeAllViews();
     mMinimizedView = null;
   }
 }
  @SuppressLint("NewApi")
  private void addBordersToView(LoopMeBannerView bannerView) {
    ShapeDrawable drawable = new ShapeDrawable(new RectShape());
    drawable.getPaint().setColor(Color.BLACK);
    drawable.getPaint().setStyle(Style.FILL_AND_STROKE);
    drawable.getPaint().setAntiAlias(true);

    bannerView.setPadding(2, 2, 2, 2);
    if (Build.VERSION.SDK_INT < 16) {
      bannerView.setBackgroundDrawable(drawable);
    } else {
      bannerView.setBackground(drawable);
    }
  }
  void switchToMinimizedMode() {
    if (mDisplayMode == DisplayMode.MINIMIZED) {
      if (getCurrentVideoState() == VideoState.PAUSED) {
        setWebViewState(WebviewState.VISIBLE);
      }
      return;
    }
    Logging.out(LOG_TAG, "switchToMinimizedMode", LogLevel.DEBUG);
    mDisplayMode = DisplayMode.MINIMIZED;

    int width = mMinimizedMode.getWidth();
    int height = mMinimizedMode.getHeight();
    mMinimizedView = new LoopMeBannerView(mAdView.getContext(), width, height);

    rebuildView(mMinimizedView);
    addBordersToView(mMinimizedView);

    if (mAdView.getCurrentWebViewState() == WebviewState.HIDDEN) {
      mMinimizedView.setAlpha(0);
    }

    mMinimizedMode.getRootView().addView(mMinimizedView);
    configMinimizedViewLayoutParams(mMinimizedView);

    setWebViewState(WebviewState.VISIBLE);

    mAdView.setOnTouchListener(
        new SwipeListener(
            width,
            new SwipeListener.Listener() {
              @Override
              public void onSwipe(boolean toRight) {
                mAdView.setWebViewState(WebviewState.HIDDEN);

                Animation anim = AnimationUtils.makeOutAnimation(mAd.getContext(), toRight);
                anim.setDuration(200);
                mMinimizedView.startAnimation(anim);

                switchToNormalMode();
                mMinimizedMode = null;
              }
            }));
  }