package com.iwedia.gui.pip; import android.app.Activity; import android.util.Log; import android.webkit.WebView; import android.widget.RelativeLayout; import com.iwedia.gui.MainActivity; import com.iwedia.gui.R; public class PiPController { private final String TAG = "PiPController"; private final boolean DEBUG = true; private Activity mActivity = null; private PiPView mPiPPView = null; private WebView mWebView = null; private int mPiPControllerState = PiPState.PIP_CONTROLLER_STATE_STOP; public static class PiPState { public static final int PIP_CONTROLLER_STATE_STOP = 0; public static final int PIP_CONTROLLER_STATE_PLAY = 1; } public static class PiPMode { public static final int PIP_VIDEO = 1; public static final int PIP_WEB_VIEW = 2; } public PiPController(Activity activity, PiPView view) { mActivity = activity; mPiPPView = view; setmPiPControllerState(PiPState.PIP_CONTROLLER_STATE_STOP); } public void play(String uriString, int source) { switch (source) { /** Video View */ case PiPMode.PIP_VIDEO: { if (MainActivity.activity.getSecondaryVideoView().isPlaying() != false) { stop(); } if (DEBUG) { Log.d(TAG, "Play video in PiP"); } MainActivity.activity.playMultimediaVideo(uriString, 1); } break; /** Web View */ case PiPMode.PIP_WEB_VIEW: { if (mPiPPView.isPlaying() != false) { stop(); } if (DEBUG) { Log.d(TAG, "PiP using Web View"); } RelativeLayout layout = (RelativeLayout) MainActivity.activity .findViewById(R.id.a4tv_main); mWebView = new WebView(mActivity); layout.addView(mWebView); mPiPPView.setUri(uriString); mPiPPView.attachView(mWebView); mPiPPView.setViewRectangle(640, 0, 640, 360); mPiPPView.start(); } break; default: break; } } public void stop() { if (mPiPPView.isPlaying() == true) { if (DEBUG) { Log.d(TAG, "Stop PiP"); } MainActivity.activity.getSecondaryVideoView().pause(); MainActivity.activity.getSecondaryVideoView().stopPlayback(); // // WebView PIP // if (mWebView != null) { // RelativeLayout layout = (RelativeLayout) // MainActivity.activity.findViewById(R.id.a4tv_main); // layout.removeView(mWebView); // mPiPPView.stop(); // mWebView.destroy(); // mWebView = null; // } else { // if (MainActivity.activity.getRendererController().isPiPMode()) // MainActivity.activity.getRendererController().stop(); // else // mPiPPView.stop(); // } } } public int getmPiPControllerState() { return mPiPControllerState; } public void setmPiPControllerState(int mPiPControllerState) { this.mPiPControllerState = mPiPControllerState; } }