updating sample plugin to use new full screen interfaces.

This commit is contained in:
Derek Sollenberger
2009-12-07 16:31:54 -05:00
parent 579c7f19ac
commit e8454e7969

View File

@@ -35,6 +35,7 @@ import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.SurfaceHolder.Callback; import android.view.SurfaceHolder.Callback;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.webkit.plugin.FullScreenDrawingModel;
import android.webkit.plugin.NativePlugin; import android.webkit.plugin.NativePlugin;
import android.webkit.plugin.SurfaceDrawingModel; import android.webkit.plugin.SurfaceDrawingModel;
import android.widget.FrameLayout; import android.widget.FrameLayout;
@@ -51,6 +52,9 @@ public class SamplePlugin implements NativePlugin {
private int npp; private int npp;
private Context context; private Context context;
private SurfaceDrawingModel embeddedSurface;
private FullScreenDrawingModel fullScreenSurface;
private boolean validNPP = false; private boolean validNPP = false;
private Object nppLock = new Object(); private Object nppLock = new Object();
@@ -61,11 +65,17 @@ public class SamplePlugin implements NativePlugin {
} }
public SurfaceDrawingModel getEmbeddedSurface() { public SurfaceDrawingModel getEmbeddedSurface() {
return new EmbeddedSurface(); if (embeddedSurface == null) {
embeddedSurface = new EmbeddedSurface();
}
return embeddedSurface;
} }
public SurfaceDrawingModel getFullScreenSurface() { public FullScreenDrawingModel getFullScreenSurface() {
return new FullScreenSurface(); if (fullScreenSurface == null) {
fullScreenSurface = new FullScreenSurface();
}
return fullScreenSurface;
} }
// called by JNI // called by JNI
@@ -127,12 +137,15 @@ public class SamplePlugin implements NativePlugin {
int height = nativeGetSurfaceHeight(npp); int height = nativeGetSurfaceHeight(npp);
view.getHolder().setFixedSize(width, height); view.getHolder().setFixedSize(width, height);
} }
// ensure that the view system is aware that we will be drawing
view.setWillNotDraw(false);
return view; return view;
} }
} }
private class FullScreenSurface implements SurfaceDrawingModel { private class FullScreenSurface implements FullScreenDrawingModel {
public View getSurface() { public View getSurface() {
/* TODO make this aware of the plugin instance and get the video file /* 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.setMediaController(new MediaController(context));
video.requestFocus(); video.requestFocus();
// ensure that the view system is aware that we will be drawing
layout.setWillNotDraw(false);
return layout; return layout;
} }
public void onSurfaceRemoved() { }
} }
} }