Merge "Fix issue #3202866: system server crash"
diff --git a/api/current.xml b/api/current.xml
index ebfa842..0b80a90 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -212825,7 +212825,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="-2147483648"
+ value="16777216"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -212964,6 +212964,17 @@
  visibility="public"
 >
 </field>
+<field name="FLAG_SPLIT_TOUCH"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="8388608"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="FLAG_TOUCHABLE_WHEN_WAKING"
  type="int"
  transient="false"
@@ -246833,7 +246844,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="arg0" type="T">
+<parameter name="t" type="T">
 </parameter>
 </method>
 </interface>
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index d3a4f33..fbad2fe 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -1023,7 +1023,7 @@
             throw new IllegalStateException("Recursive entry to executePendingTransactions");
         }
         
-        if (Looper.myLooper() != Looper.getMainLooper()) {
+        if (Looper.myLooper() != mActivity.mHandler.getLooper()) {
             throw new IllegalStateException("Must be called from main thread of process");
         }
 
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index f9e7d18..a64ee9d 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -628,10 +628,18 @@
          * to which all subsequent touches of that pointer will go until that
          * pointer goes up thereby enabling touches with multiple pointers
          * to be split across multiple windows.
-         * 
-         * {@hide} */
+         */
         public static final int FLAG_SPLIT_TOUCH = 0x00800000;
+        
+        /**
+         * Indicates whether this window should be hardware accelerated.
+         * Requesting hardware acceleration does not guarantee it will happen.
+         */
+        public static final int FLAG_HARDWARE_ACCELERATED = 0x01000000;
 
+        // ----- HIDDEN FLAGS.
+        // These start at the high bit and go down.
+        
         /**
          * Flag for a window belonging to an activity that responds to {@link KeyEvent#KEYCODE_MENU}
          * and therefore needs a Menu key. For devices where Menu is a physical button this flag is
@@ -643,7 +651,7 @@
          *
          * {@hide}
          */
-        public static final int FLAG_NEEDS_MENU_KEY = 0x01000000;
+        public static final int FLAG_NEEDS_MENU_KEY = 0x08000000;
 
         /** Window flag: *sigh* The lock screen wants to continue running its
          * animation while it is fading.  A kind-of hack to allow this.  Maybe
@@ -664,12 +672,6 @@
          * it is created.
          * {@hide} */
         public static final int FLAG_SYSTEM_ERROR = 0x40000000;
-        
-        /**
-         * Indicates whether this window should be hardware accelerated.
-         * Requesting hardware acceleration does not guarantee it will happen.
-         */
-        public static final int FLAG_HARDWARE_ACCELERATED = 0x80000000;        
 
         /**
          * Given a particular set of window manager flags, determine whether