package com.iwedia.gui.listeners; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.util.Log; import com.iwedia.gui.components.A4TVMultimediaController; import com.iwedia.gui.multimedia.MultimediaGlobal; import com.iwedia.gui.multimedia.controller.MediaController; import com.iwedia.gui.multimedia.dlna.renderer.controller.RendererController; import com.iwedia.gui.osd.OSDGlobal; import com.iwedia.gui.osd.OSDHandlerHelper; public class A4TVVideoViewOnCompletionListener implements OnCompletionListener, MultimediaGlobal, OSDGlobal { private final String TAG = "A4TVVideoViewOnCompletionListener"; private static boolean mVideoViewError = false; private Activity mActivity = null; private MediaController mMediaController = null; private RendererController mRendererController = null; private int mDisplayId = 0; public A4TVVideoViewOnCompletionListener(Activity activity, MediaController mediaController, RendererController rendererController) { this.mActivity = activity; this.mMediaController = mediaController; this.mRendererController = rendererController; } @Override public void onCompletion(MediaPlayer mp) { Log.i(TAG, "VideoView OnCompletition"); if (!isVideoViewError()) { Log.i(TAG, "VideoView OnCompletition Accepted"); setVideoViewError(false); if (mRendererController.getmRendererState() == RENDERER_STATE_STOP && OSDHandlerHelper.getHandlerState() == CURL_HANDLER_STATE_MULTIMEDIA_CONTROLLER) { // /////////////////////////////////////// // MultimediaController Repeat // /////////////////////////////////////// switch (A4TVMultimediaController.getControlRepeatPosition()) { case A4TVMultimediaController.MULTIMEDIA_CONTROLLER_REPEAT_OFF: { A4TVMultimediaController.getControlProvider() .repeatOff(mDisplayId); break; } case A4TVMultimediaController.MULTIMEDIA_CONTROLLER_REPEAT_ONE: { A4TVMultimediaController.getControlProvider() .repeatOne(mDisplayId); break; } case A4TVMultimediaController.MULTIMEDIA_CONTROLLER_REPEAT_ALL: { A4TVMultimediaController.getControlProvider() .repeatAll(mDisplayId); break; } default: break; } } else if (mRendererController.getmRendererState() == RENDERER_STATE_STOP && OSDHandlerHelper.getHandlerState() == CURL_HANDLER_STATE_DO_NOTHING) { // DRM On Completion case - temp mMediaController.stop(0); mMediaController.startLiveStream(true); } else { mRendererController.onCompletion(); } } // //////////////////////////////////////// } public static boolean isVideoViewError() { return mVideoViewError; } public static void setVideoViewError(boolean mVideoViewError) { A4TVVideoViewOnCompletionListener.mVideoViewError = mVideoViewError; } }