Merge "Differentiate between clicks for focus and actual clicks." into honeycomb
diff --git a/api/current.xml b/api/current.xml
index 38ee9f63..53ab70c 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -1471,17 +1471,6 @@
  visibility="public"
 >
 </constructor>
-<field name="accelerate_cubic_interpolator"
- type="int"
- transient="false"
- volatile="false"
- value="17432589"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="accelerate_decelerate_interpolator"
  type="int"
  transient="false"
@@ -1504,17 +1493,6 @@
  visibility="public"
 >
 </field>
-<field name="accelerate_quint_interpolator"
- type="int"
- transient="false"
- volatile="false"
- value="17432591"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="anticipate_interpolator"
  type="int"
  transient="false"
@@ -1559,17 +1537,6 @@
  visibility="public"
 >
 </field>
-<field name="decelerate_cubic_interpolator"
- type="int"
- transient="false"
- volatile="false"
- value="17432590"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="decelerate_interpolator"
  type="int"
  transient="false"
@@ -1581,17 +1548,6 @@
  visibility="public"
 >
 </field>
-<field name="decelerate_quint_interpolator"
- type="int"
- transient="false"
- volatile="false"
- value="17432592"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="fade_in"
  type="int"
  transient="false"
@@ -11037,6 +10993,28 @@
  visibility="public"
 >
 </field>
+<field name="windowMinWidthMajor"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843608"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="windowMinWidthMinor"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843609"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="windowNoDisplay"
  type="int"
  transient="false"
@@ -11451,6 +11429,28 @@
  visibility="public"
 >
 </field>
+<field name="dialog_min_width_major"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="17104899"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="dialog_min_width_minor"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="17104900"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="thumbnail_height"
  type="int"
  transient="false"
@@ -14442,6 +14442,34 @@
 >
 </constructor>
 </class>
+<class name="R.mipmap"
+ extends="java.lang.Object"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="R.mipmap"
+ type="android.R.mipmap"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<field name="sym_def_app_icon"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="17629184"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
 <class name="R.plurals"
  extends="java.lang.Object"
  abstract="false"
@@ -14832,7 +14860,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974050"
+ value="16974053"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -14843,7 +14871,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974052"
+ value="16974055"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -14854,7 +14882,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974051"
+ value="16974054"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -14865,7 +14893,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974053"
+ value="16974056"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -14876,7 +14904,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974055"
+ value="16974058"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -14887,7 +14915,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974054"
+ value="16974057"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15206,7 +15234,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973949"
+ value="16973952"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15217,7 +15245,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973950"
+ value="16973953"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15334,22 +15362,11 @@
  visibility="public"
 >
 </field>
-<field name="Theme_Dialog_NoFrame"
- type="int"
- transient="false"
- volatile="false"
- value="16973930"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="Theme_Holo"
  type="int"
  transient="false"
  volatile="false"
- value="16973932"
+ value="16973931"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15360,7 +15377,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973937"
+ value="16973936"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15371,7 +15388,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973943"
+ value="16973944"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15382,18 +15399,18 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973944"
+ value="16973945"
  static="true"
  final="true"
  deprecated="not deprecated"
  visibility="public"
 >
 </field>
-<field name="Theme_Holo_Dialog_Alert"
+<field name="Theme_Holo_Dialog_MinWidth"
  type="int"
  transient="false"
  volatile="false"
- value="16973941"
+ value="16973937"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15411,18 +15428,7 @@
  visibility="public"
 >
 </field>
-<field name="Theme_Holo_Light"
- type="int"
- transient="false"
- volatile="false"
- value="16973936"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_Light_Dialog"
+<field name="Theme_Holo_Dialog_NoActionBar_MinWidth"
  type="int"
  transient="false"
  volatile="false"
@@ -15433,62 +15439,7 @@
  visibility="public"
 >
 </field>
-<field name="Theme_Holo_Light_DialogWhenLarge"
- type="int"
- transient="false"
- volatile="false"
- value="16973945"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_Light_DialogWhenLarge_NoActionBar"
- type="int"
- transient="false"
- volatile="false"
- value="16973946"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_Light_Dialog_Alert"
- type="int"
- transient="false"
- volatile="false"
- value="16973942"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_Light_Dialog_NoActionBar"
- type="int"
- transient="false"
- volatile="false"
- value="16973940"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_NoActionBar"
- type="int"
- transient="false"
- volatile="false"
- value="16973934"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="Theme_Holo_NoActionBar_Fullscreen"
+<field name="Theme_Holo_Light"
  type="int"
  transient="false"
  volatile="false"
@@ -15499,7 +15450,29 @@
  visibility="public"
 >
 </field>
-<field name="Theme_Holo_Wallpaper"
+<field name="Theme_Holo_Light_Dialog"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973940"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Light_DialogWhenLarge"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973946"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Light_DialogWhenLarge_NoActionBar"
  type="int"
  transient="false"
  volatile="false"
@@ -15510,7 +15483,73 @@
  visibility="public"
 >
 </field>
-<field name="Theme_Holo_Wallpaper_NoTitleBar"
+<field name="Theme_Holo_Light_Dialog_MinWidth"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973941"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Light_Dialog_NoActionBar"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973942"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Light_Dialog_NoActionBar_MinWidth"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973943"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Light_Panel"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973949"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_NoActionBar"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973933"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_NoActionBar_Fullscreen"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973934"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Panel"
  type="int"
  transient="false"
  volatile="false"
@@ -15521,6 +15560,28 @@
  visibility="public"
 >
 </field>
+<field name="Theme_Holo_Wallpaper"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973950"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Wallpaper_NoTitleBar"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973951"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="Theme_InputMethod"
  type="int"
  transient="false"
@@ -15547,7 +15608,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973933"
+ value="16973932"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15635,7 +15696,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973931"
+ value="16973930"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15767,7 +15828,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973951"
+ value="16973954"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15778,7 +15839,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973953"
+ value="16973956"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15789,7 +15850,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973957"
+ value="16973960"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15800,7 +15861,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973956"
+ value="16973959"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15866,7 +15927,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974065"
+ value="16974068"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15954,7 +16015,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974057"
+ value="16974060"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -15976,7 +16037,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973958"
+ value="16973961"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16009,7 +16070,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973959"
+ value="16973962"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16020,7 +16081,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974001"
+ value="16974004"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16031,7 +16092,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973996"
+ value="16973999"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16042,7 +16103,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974000"
+ value="16974003"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16053,7 +16114,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973997"
+ value="16974000"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16064,7 +16125,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973998"
+ value="16974001"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16075,7 +16136,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973999"
+ value="16974002"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16086,7 +16147,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973965"
+ value="16973968"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16097,7 +16158,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973960"
+ value="16973963"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16108,7 +16169,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974047"
+ value="16974050"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16119,7 +16180,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973962"
+ value="16973965"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16130,7 +16191,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973961"
+ value="16973964"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16141,7 +16202,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973963"
+ value="16973966"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16152,7 +16213,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974066"
+ value="16974069"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16163,7 +16224,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973966"
+ value="16973969"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16174,7 +16235,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973983"
+ value="16973986"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16185,7 +16246,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973987"
+ value="16973990"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16196,7 +16257,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973991"
+ value="16973994"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16207,7 +16268,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973992"
+ value="16973995"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16218,7 +16279,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973968"
+ value="16973971"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16229,7 +16290,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974060"
+ value="16974063"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16240,7 +16301,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973969"
+ value="16973972"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16251,7 +16312,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973970"
+ value="16973973"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16262,7 +16323,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973985"
+ value="16973988"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16273,7 +16334,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973971"
+ value="16973974"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16284,7 +16345,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974061"
+ value="16974064"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16295,7 +16356,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974059"
+ value="16974062"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16306,7 +16367,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974002"
+ value="16974005"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16317,7 +16378,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974046"
+ value="16974049"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16328,7 +16389,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974042"
+ value="16974045"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16339,7 +16400,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974045"
+ value="16974048"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16350,7 +16411,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974043"
+ value="16974046"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16361,7 +16422,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974044"
+ value="16974047"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16372,7 +16433,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974008"
+ value="16974011"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16383,7 +16444,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974003"
+ value="16974006"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16394,7 +16455,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974005"
+ value="16974008"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16405,7 +16466,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974004"
+ value="16974007"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16416,7 +16477,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974006"
+ value="16974009"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16427,7 +16488,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974067"
+ value="16974070"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16438,7 +16499,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974009"
+ value="16974012"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16449,7 +16510,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974029"
+ value="16974032"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16460,7 +16521,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974033"
+ value="16974036"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16471,7 +16532,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974037"
+ value="16974040"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16482,7 +16543,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974038"
+ value="16974041"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16493,7 +16554,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974011"
+ value="16974014"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16504,7 +16565,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974063"
+ value="16974066"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16515,7 +16576,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974012"
+ value="16974015"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16526,7 +16587,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974013"
+ value="16974016"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16537,7 +16598,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974031"
+ value="16974034"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16548,7 +16609,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974014"
+ value="16974017"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16559,7 +16620,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974064"
+ value="16974067"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16570,7 +16631,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974062"
+ value="16974065"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16581,7 +16642,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974040"
+ value="16974043"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16592,7 +16653,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974015"
+ value="16974018"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16603,7 +16664,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974010"
+ value="16974013"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16614,7 +16675,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974041"
+ value="16974044"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16625,7 +16686,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974016"
+ value="16974019"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16636,7 +16697,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974017"
+ value="16974020"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16647,7 +16708,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974018"
+ value="16974021"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16658,7 +16719,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974022"
+ value="16974025"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16669,7 +16730,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974021"
+ value="16974024"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16680,7 +16741,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974024"
+ value="16974027"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16691,7 +16752,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974019"
+ value="16974022"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16702,7 +16763,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974023"
+ value="16974026"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16713,7 +16774,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974020"
+ value="16974023"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16724,7 +16785,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974026"
+ value="16974029"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16735,7 +16796,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974027"
+ value="16974030"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16746,7 +16807,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974028"
+ value="16974031"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16757,7 +16818,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974030"
+ value="16974033"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16768,7 +16829,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974025"
+ value="16974028"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16779,7 +16840,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974032"
+ value="16974035"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16790,7 +16851,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974049"
+ value="16974052"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16801,7 +16862,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974034"
+ value="16974037"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16812,7 +16873,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974007"
+ value="16974010"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16823,7 +16884,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974039"
+ value="16974042"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16834,7 +16895,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974035"
+ value="16974038"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16845,7 +16906,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974036"
+ value="16974039"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16856,7 +16917,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973994"
+ value="16973997"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16867,7 +16928,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973972"
+ value="16973975"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16878,7 +16939,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973967"
+ value="16973970"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16889,7 +16950,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973995"
+ value="16973998"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16900,7 +16961,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973973"
+ value="16973976"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16911,7 +16972,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973974"
+ value="16973977"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16922,7 +16983,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973975"
+ value="16973978"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16933,7 +16994,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973978"
+ value="16973981"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16944,7 +17005,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973976"
+ value="16973979"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16955,7 +17016,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973977"
+ value="16973980"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16966,7 +17027,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973980"
+ value="16973983"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16977,7 +17038,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973981"
+ value="16973984"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16988,7 +17049,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973982"
+ value="16973985"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -16999,7 +17060,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973984"
+ value="16973987"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17010,7 +17071,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973979"
+ value="16973982"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17021,7 +17082,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973986"
+ value="16973989"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17032,7 +17093,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974048"
+ value="16974051"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17043,7 +17104,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973988"
+ value="16973991"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17054,7 +17115,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973964"
+ value="16973967"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17065,7 +17126,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973993"
+ value="16973996"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17076,7 +17137,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973989"
+ value="16973992"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17087,7 +17148,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973990"
+ value="16973993"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17109,7 +17170,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974058"
+ value="16974061"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17120,7 +17181,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16974056"
+ value="16974059"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17153,7 +17214,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973954"
+ value="16973957"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17208,7 +17269,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973955"
+ value="16973958"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -17351,7 +17412,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16973952"
+ value="16973955"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -28641,21 +28702,6 @@
  synchronized="false"
  static="false"
  final="false"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="activity" type="android.app.Activity">
-</parameter>
-<parameter name="tag" type="java.lang.String">
-</parameter>
-</method>
-<method name="show"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -166345,6 +166391,60 @@
 <parameter name="b" type="android.graphics.Bitmap">
 </parameter>
 </method>
+<method name="createCubemapFromCubeFaces"
+ return="android.renderscript.Allocation"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="rs" type="android.renderscript.RenderScript">
+</parameter>
+<parameter name="xpos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="xneg" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="ypos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="yneg" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="zpos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="zneg" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="mips" type="android.renderscript.Allocation.MipmapControl">
+</parameter>
+<parameter name="usage" type="int">
+</parameter>
+</method>
+<method name="createCubemapFromCubeFaces"
+ return="android.renderscript.Allocation"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="rs" type="android.renderscript.RenderScript">
+</parameter>
+<parameter name="xpos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="xneg" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="ypos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="yneg" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="zpos" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="zneg" type="android.graphics.Bitmap">
+</parameter>
+</method>
 <method name="createFromBitmap"
  return="android.renderscript.Allocation"
  abstract="false"
diff --git a/core/java/android/app/DialogFragment.java b/core/java/android/app/DialogFragment.java
index 72a455e..6194240 100644
--- a/core/java/android/app/DialogFragment.java
+++ b/core/java/android/app/DialogFragment.java
@@ -207,16 +207,6 @@
     }
 
     /**
-     * @deprecated Please use {@link #show(FragmentManager, String)}.
-     */
-    @Deprecated
-    public void show(Activity activity, String tag) {
-        FragmentTransaction ft = activity.getFragmentManager().openTransaction();
-        ft.add(this, tag);
-        ft.commit();
-    }
-
-    /**
      * Display the dialog, adding the fragment to the given FragmentManager.  This
      * is a convenience for explicitly creating a transaction, adding the
      * fragment to it with the given tag, and committing it.  This does
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index c8ca080..b2937ba 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -2630,14 +2630,8 @@
 
         int priority = sa.getInt(
                 com.android.internal.R.styleable.AndroidManifestIntentFilter_priority, 0);
-        if (priority > 0 && isActivity && (flags&PARSE_IS_SYSTEM) == 0) {
-            Log.w(TAG, "Activity with priority > 0, forcing to 0 at "
-                    + mArchiveSourcePath + " "
-                    + parser.getPositionDescription());
-            priority = 0;
-        }
         outInfo.setPriority(priority);
-        
+
         TypedValue v = sa.peekValue(
                 com.android.internal.R.styleable.AndroidManifestIntentFilter_label);
         if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
diff --git a/core/java/android/webkit/JniUtil.java b/core/java/android/webkit/JniUtil.java
index 704d4da..62b415c 100644
--- a/core/java/android/webkit/JniUtil.java
+++ b/core/java/android/webkit/JniUtil.java
@@ -17,8 +17,13 @@
 package android.webkit;
 
 import android.content.Context;
+import android.net.Uri;
+import android.util.Log;
+
+import java.io.InputStream;
 
 class JniUtil {
+    private static final String LOGTAG = "webkit";
     private JniUtil() {} // Utility class, do not instantiate.
 
     // Used by the Chromium HTTP stack.
@@ -69,6 +74,75 @@
         return sCacheDirectory;
     }
 
+    private static final String ANDROID_CONTENT = "content:";
+
+    /**
+     * Called by JNI. Calculates the size of an input stream by reading it.
+     * @return long The size of the stream
+     */
+    private static synchronized long contentUrlSize(String url) {
+        // content://
+        if (url.startsWith(ANDROID_CONTENT)) {
+            try {
+                // Strip off mimetype, for compatibility with ContentLoader.java
+                // If we don't do this, we can fail to load Gmail attachments,
+                // because the URL being loaded doesn't exactly match the URL we
+                // have permission to read.
+                int mimeIndex = url.lastIndexOf('?');
+                if (mimeIndex != -1) {
+                    url = url.substring(0, mimeIndex);
+                }
+                Uri uri = Uri.parse(url);
+                InputStream is = sContext.getContentResolver().openInputStream(uri);
+                byte[] buffer = new byte[1024];
+                int n;
+                long size = 0;
+                try {
+                    while ((n = is.read(buffer)) != -1) {
+                        size += n;
+                    }
+                } finally {
+                    is.close();
+                }
+                return size;
+            } catch (Exception e) {
+                Log.e(LOGTAG, "Exception: " + url);
+                return 0;
+            }
+        } else {
+            return 0;
+        }
+    }
+
+    /**
+     * Called by JNI.
+     *
+     * @return  Opened input stream to content
+     * TODO: Make all content loading use this instead of BrowserFrame.java
+     */
+    private static synchronized InputStream contentUrlStream(String url) {
+        // content://
+        if (url.startsWith(ANDROID_CONTENT)) {
+            try {
+                // Strip off mimetype, for compatibility with ContentLoader.java
+                // If we don't do this, we can fail to load Gmail attachments,
+                // because the URL being loaded doesn't exactly match the URL we
+                // have permission to read.
+                int mimeIndex = url.lastIndexOf('?');
+                if (mimeIndex != -1) {
+                    url = url.substring(0, mimeIndex);
+                }
+                Uri uri = Uri.parse(url);
+                return sContext.getContentResolver().openInputStream(uri);
+            } catch (Exception e) {
+                Log.e(LOGTAG, "Exception: " + url);
+                return null;
+            }
+        } else {
+            return null;
+        }
+    }
+
     /**
      * Returns true if we're using the Chromium HTTP stack.
      *
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index b28a3f0..7eaab82 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -5536,8 +5536,9 @@
                             + "mPreventDefault = " + mPreventDefault
                             + " mDeferTouchProcess = " + mDeferTouchProcess
                             + " mTouchMode = " + mTouchMode);
+                } else {
+                    mVelocityTracker.addMovement(ev);
                 }
-                mVelocityTracker.addMovement(ev);
                 if (mSelectingText && mSelectionStarted) {
                     if (DebugFlags.WEB_VIEW) {
                         Log.v(LOGTAG, "extend=" + contentX + "," + contentY);
@@ -5776,8 +5777,9 @@
                                         + mPreventDefault
                                         + " mDeferTouchProcess = "
                                         + mDeferTouchProcess);
+                            } else {
+                                mVelocityTracker.addMovement(ev);
                             }
-                            mVelocityTracker.addMovement(ev);
                             // set to MOTIONLESS_IGNORE so that it won't keep
                             // removing and sending message in
                             // drawCoreAndCursorRing()
@@ -5852,6 +5854,11 @@
 
         final ScaleGestureDetector detector =
             mZoomManager.getMultiTouchGestureDetector();
+
+        // A few apps use WebView but don't instantiate gesture detector.
+        // We don't need to support multi touch for them.
+        if (detector == null) return false;
+
         int action = ev.getAction();
         float x = ev.getX();
         float y = ev.getY();
diff --git a/core/res/res/anim/accelerate_cubic_interpolator.xml b/core/res/res/anim/accelerate_cubic_interpolator.xml
deleted file mode 100644
index 90f62da..0000000
--- a/core/res/res/anim/accelerate_cubic_interpolator.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-
-<accelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
-        android:factor="1.5" />
diff --git a/core/res/res/anim/accelerate_quint_interpolator.xml b/core/res/res/anim/accelerate_quint_interpolator.xml
deleted file mode 100644
index cd3595c..0000000
--- a/core/res/res/anim/accelerate_quint_interpolator.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-
-<accelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
-        android:factor="2.5" />
diff --git a/core/res/res/anim/decelerate_cubic_interpolator.xml b/core/res/res/anim/decelerate_cubic_interpolator.xml
deleted file mode 100644
index 550a591..0000000
--- a/core/res/res/anim/decelerate_cubic_interpolator.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-
-<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
-        android:factor="1.5" />
diff --git a/core/res/res/anim/decelerate_quint_interpolator.xml b/core/res/res/anim/decelerate_quint_interpolator.xml
deleted file mode 100644
index 7545b17..0000000
--- a/core/res/res/anim/decelerate_quint_interpolator.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-
-<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
-        android:factor="2.5" />
diff --git a/core/res/res/layout-xlarge/alert_dialog.xml b/core/res/res/layout-xlarge/alert_dialog.xml
deleted file mode 100644
index 9444206..0000000
--- a/core/res/res/layout-xlarge/alert_dialog.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/apps/common/res/layout/alert_dialog.xml
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<com.android.internal.widget.WeightedLinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/parentPanel"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:paddingTop="9dip"
-    android:paddingBottom="3dip"
-    android:paddingLeft="3dip"
-    android:paddingRight="1dip"
-    android:majorWeightMin="0.45"
-    android:minorWeightMin="0.72">
-
-    <LinearLayout android:id="@+id/topPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="54dip"
-        android:orientation="vertical">
-        <LinearLayout android:id="@+id/title_template"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_vertical"
-            android:layout_marginTop="6dip"
-            android:layout_marginBottom="9dip"
-            android:layout_marginLeft="10dip"
-            android:layout_marginRight="10dip">
-            <ImageView android:id="@+id/icon"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top"
-                android:paddingTop="6dip"
-                android:paddingRight="10dip"
-                android:src="@drawable/ic_dialog_info" />
-            <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
-                style="?android:attr/textAppearanceLarge"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
-        </LinearLayout>
-        <ImageView android:id="@+id/titleDivider"
-            android:layout_width="match_parent"
-            android:layout_height="1dip"
-            android:visibility="gone"
-            android:scaleType="fitXY"
-            android:gravity="fill_horizontal"
-            android:src="@android:drawable/divider_horizontal_dark" />
-        <!-- If the client uses a customTitle, it will be added here. -->
-    </LinearLayout>
-
-    <LinearLayout android:id="@+id/contentPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:orientation="vertical">
-        <ScrollView android:id="@+id/scrollView"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="2dip"
-            android:paddingBottom="12dip"
-            android:paddingLeft="14dip"
-            android:paddingRight="10dip">
-            <TextView android:id="@+id/message"
-                style="?android:attr/textAppearanceMedium"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:padding="5dip" />
-        </ScrollView>
-    </LinearLayout>
-
-    <FrameLayout android:id="@+id/customPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1">
-        <FrameLayout android:id="@+android:id/custom"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="5dip"
-            android:paddingBottom="5dip" />
-    </FrameLayout>
-
-    <LinearLayout android:id="@+id/buttonPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="54dip"
-        android:orientation="vertical" >
-        <LinearLayout
-            style="?android:attr/buttonBarStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingTop="4dip"
-            android:paddingLeft="2dip"
-            android:paddingRight="2dip"
-            android:measureWithLargestChild="true">
-            <LinearLayout android:id="@+id/leftSpacer"
-                android:layout_weight="0.25"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:visibility="gone" />
-            <Button android:id="@+id/button1"
-                android:layout_width="0dip"
-                android:layout_gravity="left"
-                android:layout_weight="1"
-                style="?android:attr/buttonBarButtonStyle"
-                android:maxLines="2"
-                android:layout_height="wrap_content" />
-            <Button android:id="@+id/button3"
-                android:layout_width="0dip"
-                android:layout_gravity="center_horizontal"
-                android:layout_weight="1"
-                style="?android:attr/buttonBarButtonStyle"
-                android:maxLines="2"
-                android:layout_height="wrap_content" />
-            <Button android:id="@+id/button2"
-                android:layout_width="0dip"
-                android:layout_gravity="right"
-                android:layout_weight="1"
-                style="?android:attr/buttonBarButtonStyle"
-                android:maxLines="2"
-                android:layout_height="wrap_content" />
-            <LinearLayout android:id="@+id/rightSpacer"
-                android:layout_width="0dip"
-                android:layout_weight="0.25"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:visibility="gone" />
-        </LinearLayout>
-     </LinearLayout>
-</com.android.internal.widget.WeightedLinearLayout>
diff --git a/core/res/res/layout-xlarge/alert_dialog_holo.xml b/core/res/res/layout-xlarge/alert_dialog_holo.xml
deleted file mode 100644
index 2ebe7cd..0000000
--- a/core/res/res/layout-xlarge/alert_dialog_holo.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<com.android.internal.widget.WeightedLinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/parentPanel"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:majorWeightMin="0.45"
-    android:minorWeightMin="0.72">
-
-    <LinearLayout android:id="@+id/topPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="64dip"
-        android:orientation="vertical">
-        <ImageView android:id="@+id/titleDividerTop"
-            android:layout_width="match_parent"
-            android:layout_height="4dip"
-            android:visibility="gone"
-            android:scaleType="fitXY"
-            android:gravity="fill_horizontal"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            android:src="@android:drawable/divider_strong_holo" />
-        <LinearLayout android:id="@+id/title_template"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_vertical"
-            android:layout_marginTop="8dip"
-            android:layout_marginBottom="8dip"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="32dip">
-            <ImageView android:id="@+id/icon"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingRight="16dip"
-                android:src="@null" />
-            <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
-                style="?android:attr/textAppearanceMedium"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
-        </LinearLayout>
-        <ImageView android:id="@+id/titleDivider"
-            android:layout_width="match_parent"
-            android:layout_height="4dip"
-            android:visibility="gone"
-            android:scaleType="fitXY"
-            android:gravity="fill_horizontal"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            android:src="@android:drawable/divider_strong_holo" />
-        <!-- If the client uses a customTitle, it will be added here. -->
-    </LinearLayout>
-
-    <LinearLayout android:id="@+id/contentPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:orientation="vertical">
-        <ScrollView android:id="@+id/scrollView"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="16dip"
-            android:layout_marginRight="16dip"
-            android:paddingTop="32dip"
-            android:paddingBottom="32dip"
-            android:clipToPadding="false">
-            <TextView android:id="@+id/message"
-                style="?android:attr/textAppearanceMedium"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingLeft="16dip"
-                android:paddingRight="16dip" />
-        </ScrollView>
-    </LinearLayout>
-
-    <FrameLayout android:id="@+id/customPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1">
-        <FrameLayout android:id="@+android:id/custom"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dip"
-            android:paddingBottom="8dip"
-            android:paddingLeft="32dip"
-            android:paddingRight="32dip" />
-    </FrameLayout>
-
-    <LinearLayout android:id="@+id/buttonPanel"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="54dip"
-        android:orientation="vertical"
-        android:divider="?android:attr/dividerHorizontal"
-        android:showDividers="beginning"
-        android:dividerPadding="16dip">
-        <LinearLayout
-            style="?android:attr/buttonBarStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="2dip"
-            android:paddingRight="2dip"
-            android:measureWithLargestChild="true">
-            <LinearLayout android:id="@+id/leftSpacer"
-                android:layout_weight="0.25"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:visibility="gone" />
-            <Button android:id="@+id/button1"
-                android:layout_width="0dip"
-                android:layout_gravity="left"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:layout_height="wrap_content" />
-            <Button android:id="@+id/button3"
-                android:layout_width="0dip"
-                android:layout_gravity="center_horizontal"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:layout_height="wrap_content" />
-            <Button android:id="@+id/button2"
-                android:layout_width="0dip"
-                android:layout_gravity="right"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:layout_height="wrap_content" />
-            <LinearLayout android:id="@+id/rightSpacer"
-                android:layout_width="0dip"
-                android:layout_weight="0.25"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:visibility="gone" />
-        </LinearLayout>
-     </LinearLayout>
-</com.android.internal.widget.WeightedLinearLayout>
diff --git a/core/res/res/layout/alert_dialog.xml b/core/res/res/layout/alert_dialog.xml
index a1498f7..4477e07 100644
--- a/core/res/res/layout/alert_dialog.xml
+++ b/core/res/res/layout/alert_dialog.xml
@@ -18,7 +18,7 @@
 */
 -->
 
-<com.android.internal.widget.WeightedLinearLayout
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/parentPanel"
     android:layout_width="match_parent"
@@ -27,9 +27,7 @@
     android:paddingTop="9dip"
     android:paddingBottom="3dip"
     android:paddingLeft="3dip"
-    android:paddingRight="1dip"
-    android:majorWeightMin="0.65"
-    android:minorWeightMin="0.9">
+    android:paddingRight="1dip">
 
     <LinearLayout android:id="@+id/topPanel"
         android:layout_width="match_parent"
@@ -150,4 +148,4 @@
                 android:visibility="gone" />
         </LinearLayout>
      </LinearLayout>
-</com.android.internal.widget.WeightedLinearLayout>
+</LinearLayout>
diff --git a/core/res/res/layout/alert_dialog_holo.xml b/core/res/res/layout/alert_dialog_holo.xml
index 187504e..1002c4b 100644
--- a/core/res/res/layout/alert_dialog_holo.xml
+++ b/core/res/res/layout/alert_dialog_holo.xml
@@ -17,14 +17,12 @@
 */
 -->
 
-<com.android.internal.widget.WeightedLinearLayout
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/parentPanel"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:majorWeightMin="0.65"
-    android:minorWeightMin="0.9">
+    android:orientation="vertical">
 
     <LinearLayout android:id="@+id/topPanel"
         android:layout_width="match_parent"
@@ -159,4 +157,4 @@
                 android:visibility="gone" />
         </LinearLayout>
      </LinearLayout>
-</com.android.internal.widget.WeightedLinearLayout>
+</LinearLayout>
diff --git a/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png
new file mode 100644
index 0000000..d915d41
--- /dev/null
+++ b/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png
Binary files differ
diff --git a/core/res/res/mipmap-hdpi/sym_def_app_icon.png b/core/res/res/mipmap-hdpi/sym_def_app_icon.png
new file mode 100644
index 0000000..075d908
--- /dev/null
+++ b/core/res/res/mipmap-hdpi/sym_def_app_icon.png
Binary files differ
diff --git a/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png
new file mode 100644
index 0000000..d88250a
--- /dev/null
+++ b/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png
Binary files differ
diff --git a/core/res/res/mipmap-ldpi/sym_def_app_icon.png b/core/res/res/mipmap-ldpi/sym_def_app_icon.png
new file mode 100644
index 0000000..2c205c8
--- /dev/null
+++ b/core/res/res/mipmap-ldpi/sym_def_app_icon.png
Binary files differ
diff --git a/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png
new file mode 100644
index 0000000..47306683f
--- /dev/null
+++ b/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png
Binary files differ
diff --git a/core/res/res/mipmap-mdpi/sym_def_app_icon.png b/core/res/res/mipmap-mdpi/sym_def_app_icon.png
new file mode 100644
index 0000000..9777d11
--- /dev/null
+++ b/core/res/res/mipmap-mdpi/sym_def_app_icon.png
Binary files differ
diff --git a/core/res/res/values-large/dimens.xml b/core/res/res/values-large/dimens.xml
new file mode 100644
index 0000000..5691548
--- /dev/null
+++ b/core/res/res/values-large/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources>
+    <item type="dimen" name="dialog_min_width_major">55%</item>
+    <item type="dimen" name="dialog_min_width_minor">80%</item>
+</resources>
diff --git a/core/res/res/values-large/themes.xml b/core/res/res/values-large/themes.xml
index f5c35f6..9e3e0bb 100644
--- a/core/res/res/values-large/themes.xml
+++ b/core/res/res/values-large/themes.xml
@@ -18,17 +18,17 @@
 -->
 <resources>
     <style name="Theme.Holo.DialogWhenLarge"
-            parent="@android:style/Theme.Holo.Dialog">
+            parent="@android:style/Theme.Holo.Dialog.MinWidth">
         <item name="preferencePanelStyle">@style/PreferencePanel.Dialog</item>
     </style>
     <style name="Theme.Holo.DialogWhenLarge.NoActionBar"
-            parent="@android:style/Theme.Holo.Dialog.NoActionBar">
+            parent="@android:style/Theme.Holo.Dialog.NoActionBar.MinWidth">
         <item name="preferencePanelStyle">@style/PreferencePanel.Dialog</item>
     </style>
     <style name="Theme.Holo.Light.DialogWhenLarge"
-            parent="@android:style/Theme.Holo.Light.Dialog">
+            parent="@android:style/Theme.Holo.Light.Dialog.MinWidth">
     </style>
     <style name="Theme.Holo.Light.DialogWhenLarge.NoActionBar"
-            parent="@android:style/Theme.Holo.Light.Dialog.NoActionBar">
+            parent="@android:style/Theme.Holo.Light.Dialog.NoActionBar.MinWidth">
     </style>
 </resources>
diff --git a/core/res/res/values-xlarge/dimens.xml b/core/res/res/values-xlarge/dimens.xml
index 18090ba..5b0ea30 100644
--- a/core/res/res/values-xlarge/dimens.xml
+++ b/core/res/res/values-xlarge/dimens.xml
@@ -43,4 +43,7 @@
     <dimen name="app_icon_size">64dip</dimen>
     <!-- Minimum width of the search view text entry area. -->
     <dimen name="search_view_text_min_width">192dip</dimen>
+
+    <item type="dimen" name="dialog_min_width_major">45%</item>
+    <item type="dimen" name="dialog_min_width_minor">72%</item>
 </resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index fb269a6..c297751 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -1339,6 +1339,16 @@
         <attr name="windowActionModeOverlay" />
         <attr name="windowActionBarOverlay" />
         <attr name="windowEnableSplitTouch" />
+        <!-- The minimum width the window is allowed to be, along the major
+             axis of the screen.  That is, when in landscape.  Can be either
+             an absolute dimension or a fraction of the screen size in that
+             dimension. -->
+        <attr name="windowMinWidthMajor" format="dimension|fraction" />
+        <!-- The minimum width the window is allowed to be, along the minor
+             axis of the screen.  That is, when in portrait.  Can be either
+             an absolute dimension or a fraction of the screen size in that
+             dimension. -->
+        <attr name="windowMinWidthMinor" format="dimension|fraction" />
     </declare-styleable>
 
     <!-- The set of attributes that describe a AlertDialog's theme. -->
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 53d4e42..e5b6563 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -58,4 +58,14 @@
     <dimen name="preference_screen_side_margin_negative">0dp</dimen>
     <!-- Preference widget area width (to the left of the text) -->
     <dimen name="preference_widget_width">56dp</dimen>
+
+    <!-- The platform's desired minimum size for a dialog's width when it
+         is along the major axis (that is the screen is landscape).  This may
+         be either a fraction or a dimension. -->
+    <item type="dimen" name="dialog_min_width_major">65%</item>
+
+    <!-- The platform's desired minimum size for a dialog's width when it
+         is along the minor axis (that is the screen is portrait).  This may
+         be either a fraction or a dimension. -->
+    <item type="dimen" name="dialog_min_width_minor">95%</item>
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index e124d9d..6d79569 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1422,6 +1422,8 @@
   <public type="attr" name="horizontalScrollViewStyle" />
   <public type="attr" name="layerType" />
   <public type="attr" name="alertDialogIcon" />
+  <public type="attr" name="windowMinWidthMajor" />
+  <public type="attr" name="windowMinWidthMinor" />
 
   <!-- A simple fade-in animation. -->
   <public type="animator" name="fade_in" id="0x010b0000" />
@@ -1458,21 +1460,15 @@
        sinusoidal pattern. -->
   <public type="interpolator" name="cycle" />
 
-  <!-- Acceleration curve matching a cubic ease in function. -->
-  <public type="anim" name="accelerate_cubic_interpolator" />
-  <!-- Acceleration curve matching a cubic ease out function. -->
-  <public type="anim" name="decelerate_cubic_interpolator" />
-  <!-- Acceleration curve matching a quint ease in function. -->
-  <public type="anim" name="accelerate_quint_interpolator" />
-  <!-- Acceleration curve matching a quint ease out function. -->
-  <public type="anim" name="decelerate_quint_interpolator" />
-
   <public type="id" name="home" />
   <!-- Context menu ID for the "Select text..." menu item to switch to text
        selection context mode in text views. -->
   <public type="id" name="selectTextMode" />
   <public type="id" name="up" />
 
+  <public type="dimen" name="dialog_min_width_major" />
+  <public type="dimen" name="dialog_min_width_minor" />
+
   <!-- Standard content view for a {@link android.app.ListFragment}.
        If you are implementing a subclass of ListFragment with your
        own customized content, you can include this layout in that
@@ -1494,7 +1490,6 @@
   <public type="layout" name="simple_list_item_activated_2" />
 
   <public type="style" name="Theme.WithActionBar" />
-  <public type="style" name="Theme.Dialog.NoFrame" />
   <public type="style" name="Theme.NoTitleBar.OverlayActionModes" />
 
   <public type="style" name="Theme.Holo" />
@@ -1503,15 +1498,19 @@
   <public type="style" name="Theme.Holo.NoActionBar.Fullscreen" />
   <public type="style" name="Theme.Holo.Light" />
   <public type="style" name="Theme.Holo.Dialog" />
+  <public type="style" name="Theme.Holo.Dialog.MinWidth" />
   <public type="style" name="Theme.Holo.Dialog.NoActionBar" />
+  <public type="style" name="Theme.Holo.Dialog.NoActionBar.MinWidth" />
   <public type="style" name="Theme.Holo.Light.Dialog" />
+  <public type="style" name="Theme.Holo.Light.Dialog.MinWidth" />
   <public type="style" name="Theme.Holo.Light.Dialog.NoActionBar" />
-  <public type="style" name="Theme.Holo.Dialog.Alert" />
-  <public type="style" name="Theme.Holo.Light.Dialog.Alert" />
+  <public type="style" name="Theme.Holo.Light.Dialog.NoActionBar.MinWidth" />
   <public type="style" name="Theme.Holo.DialogWhenLarge" />
   <public type="style" name="Theme.Holo.DialogWhenLarge.NoActionBar" />
   <public type="style" name="Theme.Holo.Light.DialogWhenLarge" />
   <public type="style" name="Theme.Holo.Light.DialogWhenLarge.NoActionBar" />
+  <public type="style" name="Theme.Holo.Panel" />
+  <public type="style" name="Theme.Holo.Light.Panel" />
   <public type="style" name="Theme.Holo.Wallpaper" />
   <public type="style" name="Theme.Holo.Wallpaper.NoTitleBar" />
 
@@ -1635,6 +1634,9 @@
   <public type="style" name="Widget.CalendarView" />
   <public type="style" name="Widget.Holo.CalendarView" />
   <public type="style" name="Widget.Holo.Light.CalendarView" />
+
   <public type="string" name="selectTextMode" />
 
+  <!-- Default icon for applications that don't specify an icon. -->
+  <public type="mipmap" name="sym_def_app_icon" id="0x010d0000" />
 </resources>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 94a58f0..2aaac66 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -563,6 +563,7 @@
         <item name="android:colorBackgroundCacheHint">@null</item>
         <item name="android:windowFrame">@null</item>
         <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
         <item name="android:windowIsFloating">true</item>
         <item name="android:backgroundDimEnabled">false</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -578,6 +579,23 @@
         <item name="android:colorBackgroundCacheHint">@null</item>
         <item name="android:windowFrame">@null</item>
         <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:backgroundDimEnabled">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+    </style>
+
+    <!-- Default holo dark theme for panel windows.  This removes all extraneous
+         window decorations, so you basically have an empty rectangle in which
+         to place your content.  It makes the window floating, with a transparent
+         background, and turns off dimming behind the window. -->
+    <style name="Theme.Holo.Panel">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
         <item name="android:windowIsFloating">true</item>
         <item name="android:backgroundDimEnabled">false</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -593,6 +611,7 @@
         <item name="android:colorBackgroundCacheHint">@null</item>
         <item name="android:windowFrame">@null</item>
         <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
         <item name="android:windowIsFloating">true</item>
         <item name="android:backgroundDimEnabled">false</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -1266,12 +1285,26 @@
         <item name="textAppearanceInverse">@android:style/TextAppearance.Holo.Inverse</item>
     </style>
 
+    <!-- Variation of Theme.Holo.Dialog that has a nice minumum width for
+         a regular dialog. -->
+    <style name="Theme.Holo.Dialog.MinWidth">
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
+    </style>
+
     <!-- Variation of Theme.Holo.Dialog that does not include a title bar. -->
     <style name="Theme.Holo.Dialog.NoActionBar">
         <item name="android:windowActionBar">false</item>
         <item name="android:windowNoTitle">true</item>
     </style>
 
+    <!-- Variation of Theme.Holo.Dialog.NoActionVar that has a nice minumum width for
+         a regular dialog. -->
+    <style name="Theme.Holo.Dialog.NoActionBar.MinWidth">
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
+    </style>
+
     <!-- Variation of Theme.Holo.Dialog that does not include a frame (or background).
          The view hierarchy of the dialog is responsible for drawing all of
          its pixels. -->
@@ -1294,6 +1327,8 @@
         <item name="windowBackground">@android:color/transparent</item>
         <item name="windowTitleStyle">@android:style/DialogWindowTitle.Holo</item>
         <item name="windowContentOverlay">@null</item>
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
     </style>
 
     <!-- Theme for a window that will be displayed either full-screen on
@@ -1336,12 +1371,26 @@
         <item name="textAppearanceInverse">@android:style/TextAppearance.Holo.Light.Inverse</item>
     </style>
 
+    <!-- Variation of Theme.Holo.Light.Dialog that has a nice minumum width for
+         a regular dialog. -->
+    <style name="Theme.Holo.Light.Dialog.MinWidth">
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
+    </style>
+
     <!-- Variation of Theme.Holo.Light.Dialog that does not include a title bar. -->
     <style name="Theme.Holo.Light.Dialog.NoActionBar">
         <item name="android:windowActionBar">false</item>
         <item name="android:windowNoTitle">true</item>
     </style>
 
+    <!-- Variation of Theme.Holo.Light.Dialog.NoActionBar that has a nice minumum width for
+         a regular dialog. -->
+    <style name="Theme.Holo.Light.Dialog.NoActionBar.MinWidth">
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
+    </style>
+
     <!-- Theme for a window that will be displayed either full-screen on
          smaller screens (small, normal) or as a dialog on larger screens
          (large, xlarge). -->
@@ -1364,6 +1413,8 @@
         <item name="windowBackground">@android:color/transparent</item>
         <item name="windowTitleStyle">@android:style/DialogWindowTitle.Holo.Light</item>
         <item name="windowContentOverlay">@null</item>
+        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
+        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_major</item>
     </style>
 
     <!-- Default holographic (dark) for windows that want to have the user's selected
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java
index 40c9a96..abe66726 100644
--- a/graphics/java/android/renderscript/Allocation.java
+++ b/graphics/java/android/renderscript/Allocation.java
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-
 import android.content.res.Resources;
 import android.content.res.AssetManager;
 import android.graphics.Bitmap;
@@ -470,7 +469,7 @@
             throw new RSIllegalArgumentException("Cubemap height must be multiple of 6");
         }
         if (width / 6 != height) {
-            throw new RSIllegalArgumentException("Only square cobe map faces supported");
+            throw new RSIllegalArgumentException("Only square cube map faces supported");
         }
         boolean isPow2 = (height & (height - 1)) == 0;
         if (!isPow2) {
@@ -492,11 +491,73 @@
         return new Allocation(id, rs, t, usage);
     }
 
-    static public Allocation createCubemapFromBitmap(RenderScript rs, Bitmap b) {
+    static public Allocation createCubemapFromBitmap(RenderScript rs,
+                                                     Bitmap b) {
         return createCubemapFromBitmap(rs, b, MipmapControl.MIPMAP_NONE,
                                        USAGE_GRAPHICS_TEXTURE);
     }
 
+    static public Allocation createCubemapFromCubeFaces(RenderScript rs,
+                                                        Bitmap xpos,
+                                                        Bitmap xneg,
+                                                        Bitmap ypos,
+                                                        Bitmap yneg,
+                                                        Bitmap zpos,
+                                                        Bitmap zneg,
+                                                        MipmapControl mips,
+                                                        int usage) {
+        int height = xpos.getHeight();
+        if (xpos.getWidth() != height ||
+            xneg.getWidth() != height || xneg.getHeight() != height ||
+            ypos.getWidth() != height || ypos.getHeight() != height ||
+            yneg.getWidth() != height || yneg.getHeight() != height ||
+            zpos.getWidth() != height || zpos.getHeight() != height ||
+            zneg.getWidth() != height || zneg.getHeight() != height) {
+            throw new RSIllegalArgumentException("Only square cube map faces supported");
+        }
+        boolean isPow2 = (height & (height - 1)) == 0;
+        if (!isPow2) {
+            throw new RSIllegalArgumentException("Only power of 2 cube faces supported");
+        }
+
+        Element e = elementFromBitmap(rs, xpos);
+        Type.Builder tb = new Type.Builder(rs, e);
+        tb.setX(height);
+        tb.setY(height);
+        tb.setFaces(true);
+        tb.setMipmaps(mips == MipmapControl.MIPMAP_FULL);
+        Type t = tb.create();
+        Allocation cubemap = Allocation.createTyped(rs, t, mips, usage);
+
+        AllocationAdapter adapter = AllocationAdapter.create2D(rs, cubemap);
+        adapter.setFace(Type.CubemapFace.POSITVE_X);
+        adapter.copyFrom(xpos);
+        adapter.setFace(Type.CubemapFace.NEGATIVE_X);
+        adapter.copyFrom(xneg);
+        adapter.setFace(Type.CubemapFace.POSITVE_Y);
+        adapter.copyFrom(ypos);
+        adapter.setFace(Type.CubemapFace.NEGATIVE_Y);
+        adapter.copyFrom(yneg);
+        adapter.setFace(Type.CubemapFace.POSITVE_Z);
+        adapter.copyFrom(zpos);
+        adapter.setFace(Type.CubemapFace.NEGATIVE_Z);
+        adapter.copyFrom(zneg);
+
+        return cubemap;
+    }
+
+    static public Allocation createCubemapFromCubeFaces(RenderScript rs,
+                                                        Bitmap xpos,
+                                                        Bitmap xneg,
+                                                        Bitmap ypos,
+                                                        Bitmap yneg,
+                                                        Bitmap zpos,
+                                                        Bitmap zneg) {
+        return createCubemapFromCubeFaces(rs, xpos, xneg, ypos, yneg,
+                                          zpos, zneg, MipmapControl.MIPMAP_NONE,
+                                          USAGE_GRAPHICS_TEXTURE);
+    }
+
     static public Allocation createFromBitmapResource(RenderScript rs,
                                                       Resources res,
                                                       int id,
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp
index 673ade2..d6b90e6 100644
--- a/libs/rs/rsAllocation.cpp
+++ b/libs/rs/rsAllocation.cpp
@@ -28,6 +28,8 @@
 
 #include "utils/StopWatch.h"
 
+static void rsaAllocationGenerateScriptMips(RsContext con, RsAllocation va);
+
 using namespace android;
 using namespace android::renderscript;
 
@@ -699,13 +701,7 @@
     if (texAlloc->getIsScript()) {
         memcpy(texAlloc->getPtr(), data, s);
         if (genMips) {
-            Adapter2D adapt(rsc, texAlloc);
-            Adapter2D adapt2(rsc, texAlloc);
-            for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
-                adapt.setLOD(lod);
-                adapt2.setLOD(lod + 1);
-                mip(adapt2, adapt);
-            }
+            rsaAllocationGenerateScriptMips(rsc, texAlloc);
         }
     } else {
         texAlloc->upload2DTexture(false, data);
@@ -770,6 +766,23 @@
 }
 }
 
+static void rsaAllocationGenerateScriptMips(RsContext con, RsAllocation va) {
+    Context *rsc = static_cast<Context *>(con);
+    Allocation *texAlloc = static_cast<Allocation *>(va);
+    uint32_t numFaces = texAlloc->getType()->getDimFaces() ? 6 : 1;
+    for (uint32_t face = 0; face < numFaces; face ++) {
+        Adapter2D adapt(rsc, texAlloc);
+        Adapter2D adapt2(rsc, texAlloc);
+        adapt.setFace(face);
+        adapt2.setFace(face);
+        for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
+            adapt.setLOD(lod);
+            adapt2.setLOD(lod + 1);
+            mip(adapt2, adapt);
+        }
+    }
+}
+
 const void * rsaAllocationGetType(RsContext con, RsAllocation va) {
     Allocation *a = static_cast<Allocation *>(va);
     a->getType()->incUserRef();
@@ -802,13 +815,7 @@
 
     memcpy(texAlloc->getPtr(), data, t->getDimX() * t->getDimY() * t->getElementSizeBytes());
     if (mips == RS_ALLOCATION_MIPMAP_FULL) {
-        Adapter2D adapt(rsc, texAlloc);
-        Adapter2D adapt2(rsc, texAlloc);
-        for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
-            adapt.setLOD(lod);
-            adapt2.setLOD(lod + 1);
-            mip(adapt2, adapt);
-        }
+        rsaAllocationGenerateScriptMips(rsc, texAlloc);
     }
 
     texAlloc->deferedUploadToTexture(rsc);
@@ -846,18 +853,10 @@
 
         // Move the data pointer to the next cube face
         sourcePtr += copySize;
+    }
 
-        if (mips == RS_ALLOCATION_MIPMAP_FULL) {
-            Adapter2D adapt(rsc, texAlloc);
-            Adapter2D adapt2(rsc, texAlloc);
-            adapt.setFace(face);
-            adapt2.setFace(face);
-            for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
-                adapt.setLOD(lod);
-                adapt2.setLOD(lod + 1);
-                mip(adapt2, adapt);
-            }
-        }
+    if (mips == RS_ALLOCATION_MIPMAP_FULL) {
+        rsaAllocationGenerateScriptMips(rsc, texAlloc);
     }
 
     texAlloc->deferedUploadToTexture(rsc);
diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp
index 0bb3a86..00a4dd5e 100644
--- a/media/libstagefright/MP3Extractor.cpp
+++ b/media/libstagefright/MP3Extractor.cpp
@@ -228,22 +228,47 @@
 
     off64_t pos = *inout_pos;
     bool valid = false;
+
+    const size_t kMaxReadBytes = 1024;
+    const size_t kMaxBytesChecked = 128 * 1024;
+    uint8_t buf[kMaxReadBytes];
+    ssize_t bytesToRead = kMaxReadBytes;
+    ssize_t totalBytesRead = 0;
+    ssize_t remainingBytes = 0;
+    bool reachEOS = false;
+    uint8_t *tmp = buf;
+
     do {
-        if (pos >= *inout_pos + 128 * 1024) {
+        if (pos >= *inout_pos + kMaxBytesChecked) {
             // Don't scan forever.
             LOGV("giving up at offset %ld", pos);
             break;
         }
 
-        uint8_t tmp[4];
-        if (source->readAt(pos, tmp, 4) != 4) {
-            break;
+        if (remainingBytes < 4) {
+            if (reachEOS) {
+                break;
+            } else {
+                memcpy(buf, tmp, remainingBytes);
+                bytesToRead = kMaxReadBytes - remainingBytes;
+                totalBytesRead = source->readAt(pos, buf + remainingBytes, bytesToRead);
+                if (totalBytesRead <= 0) {
+                    break;
+                }
+                reachEOS = (totalBytesRead != bytesToRead);
+                totalBytesRead += remainingBytes;
+                remainingBytes = totalBytesRead;
+                tmp = buf;
+                continue;
+            }
         }
 
         uint32_t header = U32_AT(tmp);
 
         if (match_header != 0 && (header & kMask) != (match_header & kMask)) {
             ++pos;
+            ++tmp;
+            --remainingBytes;
             continue;
         }
 
@@ -253,6 +278,8 @@
                     header, &frame_size,
                     &sample_rate, &num_channels, &bitrate)) {
             ++pos;
+            ++tmp;
+            --remainingBytes;
             continue;
         }
 
@@ -303,6 +330,8 @@
         }
 
         ++pos;
+        ++tmp;
+        --remainingBytes;
     } while (!valid);
 
     return valid;
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index 6232afd..1fc2e6c 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -15,6 +15,9 @@
 
 package com.android.internal.policy.impl;
 
+import static android.view.View.MeasureSpec.AT_MOST;
+import static android.view.View.MeasureSpec.EXACTLY;
+import static android.view.View.MeasureSpec.getMode;
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
 import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
 import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
@@ -52,6 +55,7 @@
 import android.os.Parcelable;
 import android.util.AndroidRuntimeException;
 import android.util.Config;
+import android.util.DisplayMetrics;
 import android.util.EventLog;
 import android.util.Log;
 import android.util.SparseArray;
@@ -72,6 +76,7 @@
 import android.view.ViewStub;
 import android.view.Window;
 import android.view.WindowManager;
+import android.view.View.MeasureSpec;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 import android.view.animation.Animation;
@@ -98,7 +103,10 @@
      * Simple callback used by the context menu and its submenus. The options
      * menu submenus do not use this (their behavior is more complex).
      */
-    DialogMenuCallback mContextMenuCallback = new DialogMenuCallback(FEATURE_CONTEXT_MENU);
+    final DialogMenuCallback mContextMenuCallback = new DialogMenuCallback(FEATURE_CONTEXT_MENU);
+
+    final TypedValue mMinWidthMajor = new TypedValue();
+    final TypedValue mMinWidthMinor = new TypedValue();
 
     // This is the top-level view of the window, containing the window decor.
     private DecorView mDecor;
@@ -1866,6 +1874,45 @@
         }
 
         @Override
+        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+            final DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
+            final boolean isPortrait = metrics.widthPixels < metrics.heightPixels;
+
+            final int widthMode = getMode(widthMeasureSpec);
+
+            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+            int width = getMeasuredWidth();
+            boolean measure = false;
+
+            widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, EXACTLY);
+
+            final TypedValue tv = isPortrait ? mMinWidthMinor : mMinWidthMajor;
+
+            if (widthMode == AT_MOST && tv.type != TypedValue.TYPE_NULL) {
+                final int min;
+                if (tv.type == TypedValue.TYPE_DIMENSION) {
+                    min = (int)tv.getDimension(metrics);
+                } else if (tv.type == TypedValue.TYPE_FRACTION) {
+                    min = (int)tv.getFraction(metrics.widthPixels, metrics.widthPixels);
+                } else {
+                    min = 0;
+                }
+
+                if (width < min) {
+                    widthMeasureSpec = MeasureSpec.makeMeasureSpec(min, EXACTLY);
+                    measure = true;
+                }
+            }
+
+            // TODO: Support height?
+
+            if (measure) {
+                super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+            }
+        }
+
+        @Override
         public void draw(Canvas canvas) {
             super.draw(canvas);
 
@@ -2274,6 +2321,9 @@
             setFlags(FLAG_SPLIT_TOUCH, FLAG_SPLIT_TOUCH&(~getForcedWindowFlags()));
         }
 
+        a.getValue(com.android.internal.R.styleable.Window_windowMinWidthMajor, mMinWidthMajor);
+        a.getValue(com.android.internal.R.styleable.Window_windowMinWidthMinor, mMinWidthMinor);
+
         if (getContext().getApplicationInfo().targetSdkVersion
                 < android.os.Build.VERSION_CODES.HONEYCOMB) {
             addFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);
diff --git a/services/java/com/android/server/IntentResolver.java b/services/java/com/android/server/IntentResolver.java
index e47de13..a8b2840 100644
--- a/services/java/com/android/server/IntentResolver.java
+++ b/services/java/com/android/server/IntentResolver.java
@@ -346,7 +346,7 @@
 
         int num = 0;
         while (i.hasNext()) {
-            String name = (String)i.next();
+            String name = i.next();
             num++;
             if (localLOGV) Slog.v(TAG, prefix + name);
             String baseName = name;
@@ -395,7 +395,7 @@
 
         int num = 0;
         while (i.hasNext()) {
-            String name = (String)i.next();
+            String name = i.next();
             num++;
             if (localLOGV) Slog.v(TAG, prefix + name);
             String baseName = name;
@@ -534,8 +534,8 @@
     // Sorts a List of IntentFilter objects into descending priority order.
     private static final Comparator mResolvePrioritySorter = new Comparator() {
         public int compare(Object o1, Object o2) {
-            float q1 = ((IntentFilter)o1).getPriority();
-            float q2 = ((IntentFilter)o2).getPriority();
+            final int q1 = ((IntentFilter) o1).getPriority();
+            final int q2 = ((IntentFilter) o2).getPriority();
             return (q1 > q2) ? -1 : ((q1 < q2) ? 1 : 0);
         }
     };
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index e323b3b..b196f74 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -2882,13 +2882,13 @@
         SharedUserSetting suid = null;
         PackageSetting pkgSetting = null;
 
-        if ((pkg.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) == 0) {
+        if (!isSystemApp(pkg)) {
             // Only system apps can use these features.
             pkg.mOriginalPackages = null;
             pkg.mRealPackage = null;
             pkg.mAdoptPermissions = null;
         }
-        
+
         synchronized (mPackages) {
             // Check all shared libraries and map to their actual file path.
             if (pkg.usesLibraries != null || pkg.usesOptionalLibraries != null) {
@@ -4080,6 +4080,7 @@
         }
 
         public final void addActivity(PackageParser.Activity a, String type) {
+            final boolean systemApp = isSystemApp(a.info.applicationInfo);
             mActivities.put(a.getComponentName(), a);
             if (SHOW_INFO || Config.LOGV) Log.v(
                 TAG, "  " + type + " " +
@@ -4088,6 +4089,11 @@
             int NI = a.intents.size();
             for (int j=0; j<NI; j++) {
                 PackageParser.ActivityIntentInfo intent = a.intents.get(j);
+                if (!systemApp && intent.getPriority() > 0 && "activity".equals(type)) {
+                    intent.setPriority(0);
+                    Log.w(TAG, "Package " + a.info.applicationInfo.packageName + " has activity "
+                            + a.className + " with priority > 0, forcing to 0");
+                }
                 if (SHOW_INFO || Config.LOGV) {
                     Log.v(TAG, "    IntentFilter:");
                     intent.dump(new LogPrinter(Log.VERBOSE, TAG), "      ");
@@ -6026,6 +6032,10 @@
         return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
     }
 
+    private static boolean isSystemApp(ApplicationInfo info) {
+        return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+    }
+
     private static boolean isUpdatedSystemApp(PackageParser.Package pkg) {
         return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
     }