protected void onFreeWheelEvent(IEvent event) {
   Log.i(CLASSTAG, event.getType());
   if (event.getType().equals(adConstants.EVENT_REQUEST_COMPLETE())) {
     Log.d(CLASSTAG, "ad request complete");
     try {
       Thread.sleep(5000);
     } catch (InterruptedException e) {
     }
     this.prerollSlots =
         adContext.getSlotsByTimePositionClass(adConstants.TIME_POSITION_CLASS_PREROLL());
     this.postrollSlots =
         adContext.getSlotsByTimePositionClass(adConstants.TIME_POSITION_CLASS_POSTROLL());
     this.showDisplayAd();
     this.prepareMidRoll();
     this.playAdSlot(adConstants.TIME_POSITION_CLASS_PREROLL());
   } else if (event.getType().equals(adConstants.EVENT_SLOT_ENDED())) {
     String customId = (String) event.getData().get(adConstants.INFO_KEY_CUSTOM_ID());
     ISlot endedSlot = adContext.getSlotByCustomId(customId);
     if (endedSlot.getTimePositionClass() == adConstants.TIME_POSITION_CLASS_PREROLL()
         || endedSlot.getTimePositionClass() == adConstants.TIME_POSITION_CLASS_POSTROLL()) {
       this.playAdSlot(endedSlot.getTimePositionClass());
     }
   } else if (event.getType().equals(adConstants.EVENT_REQUEST_CONTENT_VIDEO_RESUME())) {
     this.resumeMainVideo();
   } else if (event.getType().equals(adConstants.EVENT_REQUEST_CONTENT_VIDEO_PAUSE())) {
     this.pauseMainVideo();
   }
 }
  @Override
  public void onCompletion(MediaPlayer mp) {
    if (this.videoPlayer != null) {
      this.videoPlayer.setVisibility(View.GONE);
      this.videoBase.removeView(this.videoPlayer);
      this.videoPlayer = null;
    }

    if (this.adContext != null) {
      this.adContext.setVideoState(adConstants.VIDEO_STATE_COMPLETED());
      Log.d(CLASSTAG, "will play postroll");
      this.playAdSlot(adConstants.TIME_POSITION_CLASS_POSTROLL());
    } else {
      finish();
    }
  }
 public void playAdSlot(int tpc) {
   if (tpc == adConstants.TIME_POSITION_CLASS_PREROLL()) {
     if (!this.prerollSlots.isEmpty()) {
       ISlot slot = this.prerollSlots.remove(0);
       Log.d(CLASSTAG, "playing slot: " + slot.toString());
       slot.play();
     } else {
       this.playMainVideo();
     }
   } else if (tpc == adConstants.TIME_POSITION_CLASS_POSTROLL()) {
     if (!this.postrollSlots.isEmpty()) {
       ISlot slot = this.postrollSlots.remove(0);
       Log.d(CLASSTAG, "playing slot: " + slot.toString());
       slot.play();
     } else {
       this.finish();
     }
   }
 }