diff options
-rw-r--r-- | samples/BrowserPlugin/src/com/android/sampleplugin/SamplePlugin.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/samples/BrowserPlugin/src/com/android/sampleplugin/SamplePlugin.java b/samples/BrowserPlugin/src/com/android/sampleplugin/SamplePlugin.java index e202ad5c5..207c9ec13 100644 --- a/samples/BrowserPlugin/src/com/android/sampleplugin/SamplePlugin.java +++ b/samples/BrowserPlugin/src/com/android/sampleplugin/SamplePlugin.java @@ -35,6 +35,7 @@ import android.view.View; import android.view.WindowManager; import android.view.SurfaceHolder.Callback; import android.view.ViewGroup.LayoutParams; +import android.webkit.plugin.FullScreenDrawingModel; import android.webkit.plugin.NativePlugin; import android.webkit.plugin.SurfaceDrawingModel; import android.widget.FrameLayout; @@ -51,6 +52,9 @@ public class SamplePlugin implements NativePlugin { private int npp; private Context context; + private SurfaceDrawingModel embeddedSurface; + private FullScreenDrawingModel fullScreenSurface; + private boolean validNPP = false; private Object nppLock = new Object(); @@ -61,11 +65,17 @@ public class SamplePlugin implements NativePlugin { } public SurfaceDrawingModel getEmbeddedSurface() { - return new EmbeddedSurface(); + if (embeddedSurface == null) { + embeddedSurface = new EmbeddedSurface(); + } + return embeddedSurface; } - public SurfaceDrawingModel getFullScreenSurface() { - return new FullScreenSurface(); + public FullScreenDrawingModel getFullScreenSurface() { + if (fullScreenSurface == null) { + fullScreenSurface = new FullScreenSurface(); + } + return fullScreenSurface; } // called by JNI @@ -127,12 +137,15 @@ public class SamplePlugin implements NativePlugin { int height = nativeGetSurfaceHeight(npp); view.getHolder().setFixedSize(width, height); } - + + // ensure that the view system is aware that we will be drawing + view.setWillNotDraw(false); + return view; } } - private class FullScreenSurface implements SurfaceDrawingModel { + private class FullScreenSurface implements FullScreenDrawingModel { public View getSurface() { /* TODO make this aware of the plugin instance and get the video file @@ -168,7 +181,12 @@ public class SamplePlugin implements NativePlugin { video.setMediaController(new MediaController(context)); video.requestFocus(); + // ensure that the view system is aware that we will be drawing + layout.setWillNotDraw(false); + return layout; } + + public void onSurfaceRemoved() { } } } |