am c4d5d026: Add new window manager type for a hacking second-level media surface.

Merge commit 'c4d5d02667af6989a3121072871f6a4b1e68b594'

* commit 'c4d5d02667af6989a3121072871f6a4b1e68b594':
  Add new window manager type for a hacking second-level media surface.
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 49e4e4c..e70c94c 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -101,6 +101,8 @@
     static final int KEEP_SCREEN_ON_MSG = 1;
     static final int GET_NEW_SURFACE_MSG = 2;
     
+    int mWindowType = WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA;
+    
     boolean mIsCreating = false;
 
     final Handler mHandler = new Handler() {
@@ -286,6 +288,15 @@
         super.dispatchDraw(canvas);
     }
 
+    /**
+     * Hack to allow special layering of windows.  The type is one of the
+     * types in WindowManager.LayoutParams.  This is a hack so:
+     * @hide
+     */
+    public void setWindowType(int type) {
+        mWindowType = type;
+    }
+    
     private void updateWindow(boolean force) {
         if (!mHaveFrame) {
             return;
@@ -343,7 +354,7 @@
 
                 if (mWindow == null) {
                     mWindow = new MyWindow(this);
-                    mLayout.type = WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA;
+                    mLayout.type = mWindowType;
                     mLayout.gravity = Gravity.LEFT|Gravity.TOP;
                     mSession.add(mWindow, mLayout,
                             mVisible ? VISIBLE : GONE, mContentInsets);
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index b0e738c..d7457a0 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -376,8 +376,14 @@
                     String title;
                     if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA) {
                         title="Media";
+                    } else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA_OVERLAY) {
+                        title="MediaOvr";
                     } else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_PANEL) {
                         title="Panel";
+                    } else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL) {
+                        title="SubPanel";
+                    } else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG) {
+                        title="AtchDlg";
                     } else {
                         title=Integer.toString(wp.type);
                     }
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 72ef0ad..ec2069c 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -210,6 +210,15 @@
         public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW+3;
         
         /**
+         * Window type: window for showing overlays on top of media windows.
+         * These windows are displayed between TYPE_APPLICATION_MEDIA and the
+         * application window.  They should be translucent to be useful.  This
+         * is a big ugly hack so:
+         * @hide
+         */
+        public static final int TYPE_APPLICATION_MEDIA_OVERLAY  = FIRST_SUB_WINDOW+4;
+    
+        /**
          * End of types of sub-windows.
          */
         public static final int LAST_SUB_WINDOW         = 1999;