From e8454e7969c4bc34d6f4a98ff27ffbf8dde20e4f Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Mon, 7 Dec 2009 16:31:54 -0500 Subject: [PATCH] updating sample plugin to use new full screen interfaces. --- .../android/sampleplugin/SamplePlugin.java | 28 +++++++++++++++---- 1 file 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() { } } }