Merge "VideoEditor:Clear Surface API addition" into honeycomb
diff --git a/api/11.xml b/api/11.xml
index 52d48b6..6ed9d22 100644
--- a/api/11.xml
+++ b/api/11.xml
@@ -9926,6 +9926,28 @@
visibility="public"
>
</field>
+<field name="textEditSideNoPasteWindowLayout"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843615"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="textEditSidePasteWindowLayout"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843614"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="textFilterEnabled"
type="int"
transient="false"
@@ -14915,7 +14937,7 @@
type="int"
transient="false"
volatile="false"
- value="16974054"
+ value="16974053"
static="true"
final="true"
deprecated="not deprecated"
@@ -14926,7 +14948,7 @@
type="int"
transient="false"
volatile="false"
- value="16974056"
+ value="16974055"
static="true"
final="true"
deprecated="not deprecated"
@@ -14937,7 +14959,7 @@
type="int"
transient="false"
volatile="false"
- value="16974055"
+ value="16974054"
static="true"
final="true"
deprecated="not deprecated"
@@ -14948,7 +14970,7 @@
type="int"
transient="false"
volatile="false"
- value="16974057"
+ value="16974056"
static="true"
final="true"
deprecated="not deprecated"
@@ -14959,7 +14981,7 @@
type="int"
transient="false"
volatile="false"
- value="16974059"
+ value="16974058"
static="true"
final="true"
deprecated="not deprecated"
@@ -14970,7 +14992,7 @@
type="int"
transient="false"
volatile="false"
- value="16974058"
+ value="16974057"
static="true"
final="true"
deprecated="not deprecated"
@@ -15289,7 +15311,7 @@
type="int"
transient="false"
volatile="false"
- value="16973953"
+ value="16973952"
static="true"
final="true"
deprecated="not deprecated"
@@ -15300,7 +15322,7 @@
type="int"
transient="false"
volatile="false"
- value="16973954"
+ value="16973953"
static="true"
final="true"
deprecated="not deprecated"
@@ -15432,7 +15454,7 @@
type="int"
transient="false"
volatile="false"
- value="16973936"
+ value="16973935"
static="true"
final="true"
deprecated="not deprecated"
@@ -15443,7 +15465,7 @@
type="int"
transient="false"
volatile="false"
- value="16973944"
+ value="16973943"
static="true"
final="true"
deprecated="not deprecated"
@@ -15454,7 +15476,7 @@
type="int"
transient="false"
volatile="false"
- value="16973945"
+ value="16973944"
static="true"
final="true"
deprecated="not deprecated"
@@ -15465,7 +15487,7 @@
type="int"
transient="false"
volatile="false"
- value="16973937"
+ value="16973936"
static="true"
final="true"
deprecated="not deprecated"
@@ -15476,7 +15498,7 @@
type="int"
transient="false"
volatile="false"
- value="16973938"
+ value="16973937"
static="true"
final="true"
deprecated="not deprecated"
@@ -15487,7 +15509,7 @@
type="int"
transient="false"
volatile="false"
- value="16973939"
+ value="16973938"
static="true"
final="true"
deprecated="not deprecated"
@@ -15498,7 +15520,7 @@
type="int"
transient="false"
volatile="false"
- value="16973952"
+ value="16973951"
static="true"
final="true"
deprecated="not deprecated"
@@ -15509,7 +15531,7 @@
type="int"
transient="false"
volatile="false"
- value="16973935"
+ value="16973934"
static="true"
final="true"
deprecated="not deprecated"
@@ -15520,7 +15542,7 @@
type="int"
transient="false"
volatile="false"
- value="16973940"
+ value="16973939"
static="true"
final="true"
deprecated="not deprecated"
@@ -15531,7 +15553,7 @@
type="int"
transient="false"
volatile="false"
- value="16973946"
+ value="16973945"
static="true"
final="true"
deprecated="not deprecated"
@@ -15542,7 +15564,7 @@
type="int"
transient="false"
volatile="false"
- value="16973947"
+ value="16973946"
static="true"
final="true"
deprecated="not deprecated"
@@ -15553,7 +15575,7 @@
type="int"
transient="false"
volatile="false"
- value="16973941"
+ value="16973940"
static="true"
final="true"
deprecated="not deprecated"
@@ -15564,7 +15586,7 @@
type="int"
transient="false"
volatile="false"
- value="16973942"
+ value="16973941"
static="true"
final="true"
deprecated="not deprecated"
@@ -15575,7 +15597,7 @@
type="int"
transient="false"
volatile="false"
- value="16973943"
+ value="16973942"
static="true"
final="true"
deprecated="not deprecated"
@@ -15586,7 +15608,7 @@
type="int"
transient="false"
volatile="false"
- value="16973949"
+ value="16973948"
static="true"
final="true"
deprecated="not deprecated"
@@ -15597,7 +15619,7 @@
type="int"
transient="false"
volatile="false"
- value="16973933"
+ value="16973932"
static="true"
final="true"
deprecated="not deprecated"
@@ -15608,7 +15630,7 @@
type="int"
transient="false"
volatile="false"
- value="16973934"
+ value="16973933"
static="true"
final="true"
deprecated="not deprecated"
@@ -15619,7 +15641,7 @@
type="int"
transient="false"
volatile="false"
- value="16973948"
+ value="16973947"
static="true"
final="true"
deprecated="not deprecated"
@@ -15630,7 +15652,7 @@
type="int"
transient="false"
volatile="false"
- value="16973950"
+ value="16973949"
static="true"
final="true"
deprecated="not deprecated"
@@ -15641,7 +15663,7 @@
type="int"
transient="false"
volatile="false"
- value="16973951"
+ value="16973950"
static="true"
final="true"
deprecated="not deprecated"
@@ -15670,17 +15692,6 @@
visibility="public"
>
</field>
-<field name="Theme_Light_Holo"
- type="int"
- transient="false"
- volatile="false"
- value="16973932"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
<field name="Theme_Light_NoTitleBar"
type="int"
transient="false"
@@ -15894,7 +15905,7 @@
type="int"
transient="false"
volatile="false"
- value="16973955"
+ value="16973954"
static="true"
final="true"
deprecated="not deprecated"
@@ -15905,7 +15916,7 @@
type="int"
transient="false"
volatile="false"
- value="16973957"
+ value="16973956"
static="true"
final="true"
deprecated="not deprecated"
@@ -15916,7 +15927,7 @@
type="int"
transient="false"
volatile="false"
- value="16973961"
+ value="16973960"
static="true"
final="true"
deprecated="not deprecated"
@@ -15927,7 +15938,7 @@
type="int"
transient="false"
volatile="false"
- value="16973960"
+ value="16973959"
static="true"
final="true"
deprecated="not deprecated"
@@ -15993,7 +16004,7 @@
type="int"
transient="false"
volatile="false"
- value="16974060"
+ value="16974059"
static="true"
final="true"
deprecated="not deprecated"
@@ -16048,7 +16059,7 @@
type="int"
transient="false"
volatile="false"
- value="16974063"
+ value="16974062"
static="true"
final="true"
deprecated="not deprecated"
@@ -16103,7 +16114,7 @@
type="int"
transient="false"
volatile="false"
- value="16973962"
+ value="16973961"
static="true"
final="true"
deprecated="not deprecated"
@@ -16136,7 +16147,7 @@
type="int"
transient="false"
volatile="false"
- value="16973963"
+ value="16973962"
static="true"
final="true"
deprecated="not deprecated"
@@ -16147,7 +16158,7 @@
type="int"
transient="false"
volatile="false"
- value="16974005"
+ value="16974004"
static="true"
final="true"
deprecated="not deprecated"
@@ -16158,7 +16169,7 @@
type="int"
transient="false"
volatile="false"
- value="16974000"
+ value="16973999"
static="true"
final="true"
deprecated="not deprecated"
@@ -16169,7 +16180,7 @@
type="int"
transient="false"
volatile="false"
- value="16974004"
+ value="16974003"
static="true"
final="true"
deprecated="not deprecated"
@@ -16180,7 +16191,7 @@
type="int"
transient="false"
volatile="false"
- value="16974001"
+ value="16974000"
static="true"
final="true"
deprecated="not deprecated"
@@ -16191,7 +16202,7 @@
type="int"
transient="false"
volatile="false"
- value="16974002"
+ value="16974001"
static="true"
final="true"
deprecated="not deprecated"
@@ -16202,7 +16213,7 @@
type="int"
transient="false"
volatile="false"
- value="16974003"
+ value="16974002"
static="true"
final="true"
deprecated="not deprecated"
@@ -16213,7 +16224,7 @@
type="int"
transient="false"
volatile="false"
- value="16973969"
+ value="16973968"
static="true"
final="true"
deprecated="not deprecated"
@@ -16224,7 +16235,7 @@
type="int"
transient="false"
volatile="false"
- value="16973964"
+ value="16973963"
static="true"
final="true"
deprecated="not deprecated"
@@ -16235,7 +16246,7 @@
type="int"
transient="false"
volatile="false"
- value="16974051"
+ value="16974050"
static="true"
final="true"
deprecated="not deprecated"
@@ -16246,7 +16257,7 @@
type="int"
transient="false"
volatile="false"
- value="16973966"
+ value="16973965"
static="true"
final="true"
deprecated="not deprecated"
@@ -16257,7 +16268,7 @@
type="int"
transient="false"
volatile="false"
- value="16973965"
+ value="16973964"
static="true"
final="true"
deprecated="not deprecated"
@@ -16268,7 +16279,7 @@
type="int"
transient="false"
volatile="false"
- value="16973967"
+ value="16973966"
static="true"
final="true"
deprecated="not deprecated"
@@ -16279,7 +16290,7 @@
type="int"
transient="false"
volatile="false"
- value="16974061"
+ value="16974060"
static="true"
final="true"
deprecated="not deprecated"
@@ -16290,7 +16301,7 @@
type="int"
transient="false"
volatile="false"
- value="16973970"
+ value="16973969"
static="true"
final="true"
deprecated="not deprecated"
@@ -16301,7 +16312,7 @@
type="int"
transient="false"
volatile="false"
- value="16973987"
+ value="16973986"
static="true"
final="true"
deprecated="not deprecated"
@@ -16312,7 +16323,7 @@
type="int"
transient="false"
volatile="false"
- value="16973991"
+ value="16973990"
static="true"
final="true"
deprecated="not deprecated"
@@ -16323,7 +16334,7 @@
type="int"
transient="false"
volatile="false"
- value="16974064"
+ value="16974063"
static="true"
final="true"
deprecated="not deprecated"
@@ -16334,7 +16345,7 @@
type="int"
transient="false"
volatile="false"
- value="16973995"
+ value="16973994"
static="true"
final="true"
deprecated="not deprecated"
@@ -16345,7 +16356,7 @@
type="int"
transient="false"
volatile="false"
- value="16973996"
+ value="16973995"
static="true"
final="true"
deprecated="not deprecated"
@@ -16356,7 +16367,7 @@
type="int"
transient="false"
volatile="false"
- value="16973972"
+ value="16973971"
static="true"
final="true"
deprecated="not deprecated"
@@ -16367,7 +16378,7 @@
type="int"
transient="false"
volatile="false"
- value="16973973"
+ value="16973972"
static="true"
final="true"
deprecated="not deprecated"
@@ -16378,7 +16389,7 @@
type="int"
transient="false"
volatile="false"
- value="16973974"
+ value="16973973"
static="true"
final="true"
deprecated="not deprecated"
@@ -16389,7 +16400,7 @@
type="int"
transient="false"
volatile="false"
- value="16973989"
+ value="16973988"
static="true"
final="true"
deprecated="not deprecated"
@@ -16400,7 +16411,7 @@
type="int"
transient="false"
volatile="false"
- value="16973975"
+ value="16973974"
static="true"
final="true"
deprecated="not deprecated"
@@ -16411,7 +16422,7 @@
type="int"
transient="false"
volatile="false"
- value="16974006"
+ value="16974005"
static="true"
final="true"
deprecated="not deprecated"
@@ -16422,7 +16433,7 @@
type="int"
transient="false"
volatile="false"
- value="16974050"
+ value="16974049"
static="true"
final="true"
deprecated="not deprecated"
@@ -16433,7 +16444,7 @@
type="int"
transient="false"
volatile="false"
- value="16974046"
+ value="16974045"
static="true"
final="true"
deprecated="not deprecated"
@@ -16444,7 +16455,7 @@
type="int"
transient="false"
volatile="false"
- value="16974049"
+ value="16974048"
static="true"
final="true"
deprecated="not deprecated"
@@ -16455,7 +16466,7 @@
type="int"
transient="false"
volatile="false"
- value="16974047"
+ value="16974046"
static="true"
final="true"
deprecated="not deprecated"
@@ -16466,7 +16477,7 @@
type="int"
transient="false"
volatile="false"
- value="16974048"
+ value="16974047"
static="true"
final="true"
deprecated="not deprecated"
@@ -16477,7 +16488,7 @@
type="int"
transient="false"
volatile="false"
- value="16974012"
+ value="16974011"
static="true"
final="true"
deprecated="not deprecated"
@@ -16488,7 +16499,7 @@
type="int"
transient="false"
volatile="false"
- value="16974007"
+ value="16974006"
static="true"
final="true"
deprecated="not deprecated"
@@ -16499,7 +16510,7 @@
type="int"
transient="false"
volatile="false"
- value="16974009"
+ value="16974008"
static="true"
final="true"
deprecated="not deprecated"
@@ -16510,7 +16521,7 @@
type="int"
transient="false"
volatile="false"
- value="16974008"
+ value="16974007"
static="true"
final="true"
deprecated="not deprecated"
@@ -16521,7 +16532,7 @@
type="int"
transient="false"
volatile="false"
- value="16974010"
+ value="16974009"
static="true"
final="true"
deprecated="not deprecated"
@@ -16532,7 +16543,7 @@
type="int"
transient="false"
volatile="false"
- value="16974062"
+ value="16974061"
static="true"
final="true"
deprecated="not deprecated"
@@ -16543,7 +16554,7 @@
type="int"
transient="false"
volatile="false"
- value="16974013"
+ value="16974012"
static="true"
final="true"
deprecated="not deprecated"
@@ -16554,7 +16565,7 @@
type="int"
transient="false"
volatile="false"
- value="16974033"
+ value="16974032"
static="true"
final="true"
deprecated="not deprecated"
@@ -16565,7 +16576,7 @@
type="int"
transient="false"
volatile="false"
- value="16974037"
+ value="16974036"
static="true"
final="true"
deprecated="not deprecated"
@@ -16576,7 +16587,7 @@
type="int"
transient="false"
volatile="false"
- value="16974041"
+ value="16974040"
static="true"
final="true"
deprecated="not deprecated"
@@ -16587,7 +16598,7 @@
type="int"
transient="false"
volatile="false"
- value="16974042"
+ value="16974041"
static="true"
final="true"
deprecated="not deprecated"
@@ -16598,7 +16609,7 @@
type="int"
transient="false"
volatile="false"
- value="16974015"
+ value="16974014"
static="true"
final="true"
deprecated="not deprecated"
@@ -16609,7 +16620,7 @@
type="int"
transient="false"
volatile="false"
- value="16974016"
+ value="16974015"
static="true"
final="true"
deprecated="not deprecated"
@@ -16620,7 +16631,7 @@
type="int"
transient="false"
volatile="false"
- value="16974017"
+ value="16974016"
static="true"
final="true"
deprecated="not deprecated"
@@ -16631,7 +16642,7 @@
type="int"
transient="false"
volatile="false"
- value="16974035"
+ value="16974034"
static="true"
final="true"
deprecated="not deprecated"
@@ -16642,7 +16653,7 @@
type="int"
transient="false"
volatile="false"
- value="16974018"
+ value="16974017"
static="true"
final="true"
deprecated="not deprecated"
@@ -16653,7 +16664,7 @@
type="int"
transient="false"
volatile="false"
- value="16974044"
+ value="16974043"
static="true"
final="true"
deprecated="not deprecated"
@@ -16664,7 +16675,7 @@
type="int"
transient="false"
volatile="false"
- value="16974019"
+ value="16974018"
static="true"
final="true"
deprecated="not deprecated"
@@ -16675,7 +16686,7 @@
type="int"
transient="false"
volatile="false"
- value="16974014"
+ value="16974013"
static="true"
final="true"
deprecated="not deprecated"
@@ -16686,7 +16697,7 @@
type="int"
transient="false"
volatile="false"
- value="16974045"
+ value="16974044"
static="true"
final="true"
deprecated="not deprecated"
@@ -16697,7 +16708,7 @@
type="int"
transient="false"
volatile="false"
- value="16974020"
+ value="16974019"
static="true"
final="true"
deprecated="not deprecated"
@@ -16708,7 +16719,7 @@
type="int"
transient="false"
volatile="false"
- value="16974021"
+ value="16974020"
static="true"
final="true"
deprecated="not deprecated"
@@ -16719,7 +16730,7 @@
type="int"
transient="false"
volatile="false"
- value="16974022"
+ value="16974021"
static="true"
final="true"
deprecated="not deprecated"
@@ -16730,7 +16741,7 @@
type="int"
transient="false"
volatile="false"
- value="16974026"
+ value="16974025"
static="true"
final="true"
deprecated="not deprecated"
@@ -16741,7 +16752,7 @@
type="int"
transient="false"
volatile="false"
- value="16974025"
+ value="16974024"
static="true"
final="true"
deprecated="not deprecated"
@@ -16752,7 +16763,7 @@
type="int"
transient="false"
volatile="false"
- value="16974028"
+ value="16974027"
static="true"
final="true"
deprecated="not deprecated"
@@ -16763,7 +16774,7 @@
type="int"
transient="false"
volatile="false"
- value="16974023"
+ value="16974022"
static="true"
final="true"
deprecated="not deprecated"
@@ -16774,7 +16785,7 @@
type="int"
transient="false"
volatile="false"
- value="16974027"
+ value="16974026"
static="true"
final="true"
deprecated="not deprecated"
@@ -16785,7 +16796,7 @@
type="int"
transient="false"
volatile="false"
- value="16974024"
+ value="16974023"
static="true"
final="true"
deprecated="not deprecated"
@@ -16796,7 +16807,7 @@
type="int"
transient="false"
volatile="false"
- value="16974030"
+ value="16974029"
static="true"
final="true"
deprecated="not deprecated"
@@ -16807,7 +16818,7 @@
type="int"
transient="false"
volatile="false"
- value="16974031"
+ value="16974030"
static="true"
final="true"
deprecated="not deprecated"
@@ -16818,7 +16829,7 @@
type="int"
transient="false"
volatile="false"
- value="16974032"
+ value="16974031"
static="true"
final="true"
deprecated="not deprecated"
@@ -16829,7 +16840,7 @@
type="int"
transient="false"
volatile="false"
- value="16974034"
+ value="16974033"
static="true"
final="true"
deprecated="not deprecated"
@@ -16840,7 +16851,7 @@
type="int"
transient="false"
volatile="false"
- value="16974029"
+ value="16974028"
static="true"
final="true"
deprecated="not deprecated"
@@ -16851,7 +16862,7 @@
type="int"
transient="false"
volatile="false"
- value="16974036"
+ value="16974035"
static="true"
final="true"
deprecated="not deprecated"
@@ -16862,7 +16873,7 @@
type="int"
transient="false"
volatile="false"
- value="16974053"
+ value="16974052"
static="true"
final="true"
deprecated="not deprecated"
@@ -16873,7 +16884,7 @@
type="int"
transient="false"
volatile="false"
- value="16974038"
+ value="16974037"
static="true"
final="true"
deprecated="not deprecated"
@@ -16884,7 +16895,7 @@
type="int"
transient="false"
volatile="false"
- value="16974011"
+ value="16974010"
static="true"
final="true"
deprecated="not deprecated"
@@ -16895,7 +16906,7 @@
type="int"
transient="false"
volatile="false"
- value="16974043"
+ value="16974042"
static="true"
final="true"
deprecated="not deprecated"
@@ -16906,7 +16917,7 @@
type="int"
transient="false"
volatile="false"
- value="16974039"
+ value="16974038"
static="true"
final="true"
deprecated="not deprecated"
@@ -16917,7 +16928,7 @@
type="int"
transient="false"
volatile="false"
- value="16974040"
+ value="16974039"
static="true"
final="true"
deprecated="not deprecated"
@@ -16928,7 +16939,7 @@
type="int"
transient="false"
volatile="false"
- value="16973998"
+ value="16973997"
static="true"
final="true"
deprecated="not deprecated"
@@ -16939,7 +16950,7 @@
type="int"
transient="false"
volatile="false"
- value="16973976"
+ value="16973975"
static="true"
final="true"
deprecated="not deprecated"
@@ -16950,7 +16961,7 @@
type="int"
transient="false"
volatile="false"
- value="16973971"
+ value="16973970"
static="true"
final="true"
deprecated="not deprecated"
@@ -16961,7 +16972,7 @@
type="int"
transient="false"
volatile="false"
- value="16973999"
+ value="16973998"
static="true"
final="true"
deprecated="not deprecated"
@@ -16972,7 +16983,7 @@
type="int"
transient="false"
volatile="false"
- value="16973977"
+ value="16973976"
static="true"
final="true"
deprecated="not deprecated"
@@ -16983,7 +16994,7 @@
type="int"
transient="false"
volatile="false"
- value="16973978"
+ value="16973977"
static="true"
final="true"
deprecated="not deprecated"
@@ -16994,7 +17005,7 @@
type="int"
transient="false"
volatile="false"
- value="16973979"
+ value="16973978"
static="true"
final="true"
deprecated="not deprecated"
@@ -17005,7 +17016,7 @@
type="int"
transient="false"
volatile="false"
- value="16973982"
+ value="16973981"
static="true"
final="true"
deprecated="not deprecated"
@@ -17016,7 +17027,7 @@
type="int"
transient="false"
volatile="false"
- value="16973980"
+ value="16973979"
static="true"
final="true"
deprecated="not deprecated"
@@ -17027,7 +17038,7 @@
type="int"
transient="false"
volatile="false"
- value="16973981"
+ value="16973980"
static="true"
final="true"
deprecated="not deprecated"
@@ -17038,7 +17049,7 @@
type="int"
transient="false"
volatile="false"
- value="16973984"
+ value="16973983"
static="true"
final="true"
deprecated="not deprecated"
@@ -17049,7 +17060,7 @@
type="int"
transient="false"
volatile="false"
- value="16973985"
+ value="16973984"
static="true"
final="true"
deprecated="not deprecated"
@@ -17060,7 +17071,7 @@
type="int"
transient="false"
volatile="false"
- value="16973986"
+ value="16973985"
static="true"
final="true"
deprecated="not deprecated"
@@ -17071,7 +17082,7 @@
type="int"
transient="false"
volatile="false"
- value="16973988"
+ value="16973987"
static="true"
final="true"
deprecated="not deprecated"
@@ -17082,7 +17093,7 @@
type="int"
transient="false"
volatile="false"
- value="16973983"
+ value="16973982"
static="true"
final="true"
deprecated="not deprecated"
@@ -17093,7 +17104,7 @@
type="int"
transient="false"
volatile="false"
- value="16973990"
+ value="16973989"
static="true"
final="true"
deprecated="not deprecated"
@@ -17104,7 +17115,7 @@
type="int"
transient="false"
volatile="false"
- value="16974052"
+ value="16974051"
static="true"
final="true"
deprecated="not deprecated"
@@ -17115,7 +17126,7 @@
type="int"
transient="false"
volatile="false"
- value="16973992"
+ value="16973991"
static="true"
final="true"
deprecated="not deprecated"
@@ -17126,7 +17137,7 @@
type="int"
transient="false"
volatile="false"
- value="16973968"
+ value="16973967"
static="true"
final="true"
deprecated="not deprecated"
@@ -17137,7 +17148,7 @@
type="int"
transient="false"
volatile="false"
- value="16973997"
+ value="16973996"
static="true"
final="true"
deprecated="not deprecated"
@@ -17148,7 +17159,7 @@
type="int"
transient="false"
volatile="false"
- value="16973993"
+ value="16973992"
static="true"
final="true"
deprecated="not deprecated"
@@ -17159,7 +17170,7 @@
type="int"
transient="false"
volatile="false"
- value="16973994"
+ value="16973993"
static="true"
final="true"
deprecated="not deprecated"
@@ -17203,7 +17214,7 @@
type="int"
transient="false"
volatile="false"
- value="16973958"
+ value="16973957"
static="true"
final="true"
deprecated="not deprecated"
@@ -17258,7 +17269,7 @@
type="int"
transient="false"
volatile="false"
- value="16973959"
+ value="16973958"
static="true"
final="true"
deprecated="not deprecated"
@@ -17401,7 +17412,7 @@
type="int"
transient="false"
volatile="false"
- value="16973956"
+ value="16973955"
static="true"
final="true"
deprecated="not deprecated"
@@ -60581,6 +60592,17 @@
visibility="public"
>
</field>
+<field name="FEATURE_FAKETOUCH"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""android.hardware.faketouch""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FEATURE_LIVE_WALLPAPER"
type="java.lang.String"
transient="false"
@@ -138493,11 +138515,22 @@
visibility="public"
>
</field>
+<field name="GINGERBREAD_MR1"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="10"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="HONEYCOMB"
type="int"
transient="false"
volatile="false"
- value="10000"
+ value="11"
static="true"
final="true"
deprecated="not deprecated"
@@ -234839,6 +234872,17 @@
visibility="public"
>
</method>
+<method name="getDisplayZoomControls"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="getDomStorageEnabled"
return="boolean"
abstract="false"
@@ -235333,6 +235377,19 @@
<parameter name="zoom" type="android.webkit.WebSettings.ZoomDensity">
</parameter>
</method>
+<method name="setDisplayZoomControls"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="enabled" type="boolean">
+</parameter>
+</method>
<method name="setDomStorageEnabled"
return="void"
abstract="false"
@@ -260249,7 +260306,7 @@
deprecated="not deprecated"
visibility="public"
>
-<parameter name="t" type="T">
+<parameter name="arg0" type="T">
</parameter>
</method>
</interface>
diff --git a/api/current.xml b/api/current.xml
index 9520f19..b3f03a6 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -14937,7 +14937,7 @@
type="int"
transient="false"
volatile="false"
- value="16974054"
+ value="16974053"
static="true"
final="true"
deprecated="not deprecated"
@@ -14948,7 +14948,7 @@
type="int"
transient="false"
volatile="false"
- value="16974056"
+ value="16974055"
static="true"
final="true"
deprecated="not deprecated"
@@ -14959,7 +14959,7 @@
type="int"
transient="false"
volatile="false"
- value="16974055"
+ value="16974054"
static="true"
final="true"
deprecated="not deprecated"
@@ -14970,7 +14970,7 @@
type="int"
transient="false"
volatile="false"
- value="16974057"
+ value="16974056"
static="true"
final="true"
deprecated="not deprecated"
@@ -14981,7 +14981,7 @@
type="int"
transient="false"
volatile="false"
- value="16974059"
+ value="16974058"
static="true"
final="true"
deprecated="not deprecated"
@@ -14992,7 +14992,7 @@
type="int"
transient="false"
volatile="false"
- value="16974058"
+ value="16974057"
static="true"
final="true"
deprecated="not deprecated"
@@ -15311,7 +15311,7 @@
type="int"
transient="false"
volatile="false"
- value="16973953"
+ value="16973952"
static="true"
final="true"
deprecated="not deprecated"
@@ -15322,7 +15322,7 @@
type="int"
transient="false"
volatile="false"
- value="16973954"
+ value="16973953"
static="true"
final="true"
deprecated="not deprecated"
@@ -15454,7 +15454,7 @@
type="int"
transient="false"
volatile="false"
- value="16973936"
+ value="16973935"
static="true"
final="true"
deprecated="not deprecated"
@@ -15465,7 +15465,7 @@
type="int"
transient="false"
volatile="false"
- value="16973944"
+ value="16973943"
static="true"
final="true"
deprecated="not deprecated"
@@ -15476,7 +15476,7 @@
type="int"
transient="false"
volatile="false"
- value="16973945"
+ value="16973944"
static="true"
final="true"
deprecated="not deprecated"
@@ -15487,7 +15487,7 @@
type="int"
transient="false"
volatile="false"
- value="16973937"
+ value="16973936"
static="true"
final="true"
deprecated="not deprecated"
@@ -15498,7 +15498,7 @@
type="int"
transient="false"
volatile="false"
- value="16973938"
+ value="16973937"
static="true"
final="true"
deprecated="not deprecated"
@@ -15509,7 +15509,7 @@
type="int"
transient="false"
volatile="false"
- value="16973939"
+ value="16973938"
static="true"
final="true"
deprecated="not deprecated"
@@ -15520,7 +15520,7 @@
type="int"
transient="false"
volatile="false"
- value="16973952"
+ value="16973951"
static="true"
final="true"
deprecated="not deprecated"
@@ -15531,7 +15531,7 @@
type="int"
transient="false"
volatile="false"
- value="16973935"
+ value="16973934"
static="true"
final="true"
deprecated="not deprecated"
@@ -15542,7 +15542,7 @@
type="int"
transient="false"
volatile="false"
- value="16973940"
+ value="16973939"
static="true"
final="true"
deprecated="not deprecated"
@@ -15553,7 +15553,7 @@
type="int"
transient="false"
volatile="false"
- value="16973946"
+ value="16973945"
static="true"
final="true"
deprecated="not deprecated"
@@ -15564,7 +15564,7 @@
type="int"
transient="false"
volatile="false"
- value="16973947"
+ value="16973946"
static="true"
final="true"
deprecated="not deprecated"
@@ -15575,7 +15575,7 @@
type="int"
transient="false"
volatile="false"
- value="16973941"
+ value="16973940"
static="true"
final="true"
deprecated="not deprecated"
@@ -15586,7 +15586,7 @@
type="int"
transient="false"
volatile="false"
- value="16973942"
+ value="16973941"
static="true"
final="true"
deprecated="not deprecated"
@@ -15597,7 +15597,7 @@
type="int"
transient="false"
volatile="false"
- value="16973943"
+ value="16973942"
static="true"
final="true"
deprecated="not deprecated"
@@ -15608,7 +15608,7 @@
type="int"
transient="false"
volatile="false"
- value="16973949"
+ value="16973948"
static="true"
final="true"
deprecated="not deprecated"
@@ -15619,7 +15619,7 @@
type="int"
transient="false"
volatile="false"
- value="16973933"
+ value="16973932"
static="true"
final="true"
deprecated="not deprecated"
@@ -15630,7 +15630,7 @@
type="int"
transient="false"
volatile="false"
- value="16973934"
+ value="16973933"
static="true"
final="true"
deprecated="not deprecated"
@@ -15641,7 +15641,7 @@
type="int"
transient="false"
volatile="false"
- value="16973948"
+ value="16973947"
static="true"
final="true"
deprecated="not deprecated"
@@ -15652,7 +15652,7 @@
type="int"
transient="false"
volatile="false"
- value="16973950"
+ value="16973949"
static="true"
final="true"
deprecated="not deprecated"
@@ -15663,7 +15663,7 @@
type="int"
transient="false"
volatile="false"
- value="16973951"
+ value="16973950"
static="true"
final="true"
deprecated="not deprecated"
@@ -15692,17 +15692,6 @@
visibility="public"
>
</field>
-<field name="Theme_Light_Holo"
- type="int"
- transient="false"
- volatile="false"
- value="16973932"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
<field name="Theme_Light_NoTitleBar"
type="int"
transient="false"
@@ -15916,7 +15905,7 @@
type="int"
transient="false"
volatile="false"
- value="16973955"
+ value="16973954"
static="true"
final="true"
deprecated="not deprecated"
@@ -15927,7 +15916,7 @@
type="int"
transient="false"
volatile="false"
- value="16973957"
+ value="16973956"
static="true"
final="true"
deprecated="not deprecated"
@@ -15938,7 +15927,7 @@
type="int"
transient="false"
volatile="false"
- value="16973961"
+ value="16973960"
static="true"
final="true"
deprecated="not deprecated"
@@ -15949,7 +15938,7 @@
type="int"
transient="false"
volatile="false"
- value="16973960"
+ value="16973959"
static="true"
final="true"
deprecated="not deprecated"
@@ -16015,7 +16004,7 @@
type="int"
transient="false"
volatile="false"
- value="16974060"
+ value="16974059"
static="true"
final="true"
deprecated="not deprecated"
@@ -16070,7 +16059,7 @@
type="int"
transient="false"
volatile="false"
- value="16974063"
+ value="16974062"
static="true"
final="true"
deprecated="not deprecated"
@@ -16125,7 +16114,7 @@
type="int"
transient="false"
volatile="false"
- value="16973962"
+ value="16973961"
static="true"
final="true"
deprecated="not deprecated"
@@ -16158,7 +16147,7 @@
type="int"
transient="false"
volatile="false"
- value="16973963"
+ value="16973962"
static="true"
final="true"
deprecated="not deprecated"
@@ -16169,7 +16158,7 @@
type="int"
transient="false"
volatile="false"
- value="16974005"
+ value="16974004"
static="true"
final="true"
deprecated="not deprecated"
@@ -16180,7 +16169,7 @@
type="int"
transient="false"
volatile="false"
- value="16974000"
+ value="16973999"
static="true"
final="true"
deprecated="not deprecated"
@@ -16191,7 +16180,7 @@
type="int"
transient="false"
volatile="false"
- value="16974004"
+ value="16974003"
static="true"
final="true"
deprecated="not deprecated"
@@ -16202,7 +16191,7 @@
type="int"
transient="false"
volatile="false"
- value="16974001"
+ value="16974000"
static="true"
final="true"
deprecated="not deprecated"
@@ -16213,7 +16202,7 @@
type="int"
transient="false"
volatile="false"
- value="16974002"
+ value="16974001"
static="true"
final="true"
deprecated="not deprecated"
@@ -16224,7 +16213,7 @@
type="int"
transient="false"
volatile="false"
- value="16974003"
+ value="16974002"
static="true"
final="true"
deprecated="not deprecated"
@@ -16235,7 +16224,7 @@
type="int"
transient="false"
volatile="false"
- value="16973969"
+ value="16973968"
static="true"
final="true"
deprecated="not deprecated"
@@ -16246,7 +16235,7 @@
type="int"
transient="false"
volatile="false"
- value="16973964"
+ value="16973963"
static="true"
final="true"
deprecated="not deprecated"
@@ -16257,7 +16246,7 @@
type="int"
transient="false"
volatile="false"
- value="16974051"
+ value="16974050"
static="true"
final="true"
deprecated="not deprecated"
@@ -16268,7 +16257,7 @@
type="int"
transient="false"
volatile="false"
- value="16973966"
+ value="16973965"
static="true"
final="true"
deprecated="not deprecated"
@@ -16279,7 +16268,7 @@
type="int"
transient="false"
volatile="false"
- value="16973965"
+ value="16973964"
static="true"
final="true"
deprecated="not deprecated"
@@ -16290,7 +16279,7 @@
type="int"
transient="false"
volatile="false"
- value="16973967"
+ value="16973966"
static="true"
final="true"
deprecated="not deprecated"
@@ -16301,7 +16290,7 @@
type="int"
transient="false"
volatile="false"
- value="16974061"
+ value="16974060"
static="true"
final="true"
deprecated="not deprecated"
@@ -16312,7 +16301,7 @@
type="int"
transient="false"
volatile="false"
- value="16973970"
+ value="16973969"
static="true"
final="true"
deprecated="not deprecated"
@@ -16323,7 +16312,7 @@
type="int"
transient="false"
volatile="false"
- value="16973987"
+ value="16973986"
static="true"
final="true"
deprecated="not deprecated"
@@ -16334,7 +16323,7 @@
type="int"
transient="false"
volatile="false"
- value="16973991"
+ value="16973990"
static="true"
final="true"
deprecated="not deprecated"
@@ -16345,7 +16334,7 @@
type="int"
transient="false"
volatile="false"
- value="16974064"
+ value="16974063"
static="true"
final="true"
deprecated="not deprecated"
@@ -16356,7 +16345,7 @@
type="int"
transient="false"
volatile="false"
- value="16973995"
+ value="16973994"
static="true"
final="true"
deprecated="not deprecated"
@@ -16367,7 +16356,7 @@
type="int"
transient="false"
volatile="false"
- value="16973996"
+ value="16973995"
static="true"
final="true"
deprecated="not deprecated"
@@ -16378,7 +16367,7 @@
type="int"
transient="false"
volatile="false"
- value="16973972"
+ value="16973971"
static="true"
final="true"
deprecated="not deprecated"
@@ -16389,7 +16378,7 @@
type="int"
transient="false"
volatile="false"
- value="16973973"
+ value="16973972"
static="true"
final="true"
deprecated="not deprecated"
@@ -16400,7 +16389,7 @@
type="int"
transient="false"
volatile="false"
- value="16973974"
+ value="16973973"
static="true"
final="true"
deprecated="not deprecated"
@@ -16411,7 +16400,7 @@
type="int"
transient="false"
volatile="false"
- value="16973989"
+ value="16973988"
static="true"
final="true"
deprecated="not deprecated"
@@ -16422,7 +16411,7 @@
type="int"
transient="false"
volatile="false"
- value="16973975"
+ value="16973974"
static="true"
final="true"
deprecated="not deprecated"
@@ -16433,7 +16422,7 @@
type="int"
transient="false"
volatile="false"
- value="16974006"
+ value="16974005"
static="true"
final="true"
deprecated="not deprecated"
@@ -16444,7 +16433,7 @@
type="int"
transient="false"
volatile="false"
- value="16974050"
+ value="16974049"
static="true"
final="true"
deprecated="not deprecated"
@@ -16455,7 +16444,7 @@
type="int"
transient="false"
volatile="false"
- value="16974046"
+ value="16974045"
static="true"
final="true"
deprecated="not deprecated"
@@ -16466,7 +16455,7 @@
type="int"
transient="false"
volatile="false"
- value="16974049"
+ value="16974048"
static="true"
final="true"
deprecated="not deprecated"
@@ -16477,7 +16466,7 @@
type="int"
transient="false"
volatile="false"
- value="16974047"
+ value="16974046"
static="true"
final="true"
deprecated="not deprecated"
@@ -16488,7 +16477,7 @@
type="int"
transient="false"
volatile="false"
- value="16974048"
+ value="16974047"
static="true"
final="true"
deprecated="not deprecated"
@@ -16499,7 +16488,7 @@
type="int"
transient="false"
volatile="false"
- value="16974012"
+ value="16974011"
static="true"
final="true"
deprecated="not deprecated"
@@ -16510,7 +16499,7 @@
type="int"
transient="false"
volatile="false"
- value="16974007"
+ value="16974006"
static="true"
final="true"
deprecated="not deprecated"
@@ -16521,7 +16510,7 @@
type="int"
transient="false"
volatile="false"
- value="16974009"
+ value="16974008"
static="true"
final="true"
deprecated="not deprecated"
@@ -16532,7 +16521,7 @@
type="int"
transient="false"
volatile="false"
- value="16974008"
+ value="16974007"
static="true"
final="true"
deprecated="not deprecated"
@@ -16543,7 +16532,7 @@
type="int"
transient="false"
volatile="false"
- value="16974010"
+ value="16974009"
static="true"
final="true"
deprecated="not deprecated"
@@ -16554,7 +16543,7 @@
type="int"
transient="false"
volatile="false"
- value="16974062"
+ value="16974061"
static="true"
final="true"
deprecated="not deprecated"
@@ -16565,7 +16554,7 @@
type="int"
transient="false"
volatile="false"
- value="16974013"
+ value="16974012"
static="true"
final="true"
deprecated="not deprecated"
@@ -16576,7 +16565,7 @@
type="int"
transient="false"
volatile="false"
- value="16974033"
+ value="16974032"
static="true"
final="true"
deprecated="not deprecated"
@@ -16587,7 +16576,7 @@
type="int"
transient="false"
volatile="false"
- value="16974037"
+ value="16974036"
static="true"
final="true"
deprecated="not deprecated"
@@ -16598,7 +16587,7 @@
type="int"
transient="false"
volatile="false"
- value="16974041"
+ value="16974040"
static="true"
final="true"
deprecated="not deprecated"
@@ -16609,7 +16598,7 @@
type="int"
transient="false"
volatile="false"
- value="16974042"
+ value="16974041"
static="true"
final="true"
deprecated="not deprecated"
@@ -16620,7 +16609,7 @@
type="int"
transient="false"
volatile="false"
- value="16974015"
+ value="16974014"
static="true"
final="true"
deprecated="not deprecated"
@@ -16631,7 +16620,7 @@
type="int"
transient="false"
volatile="false"
- value="16974016"
+ value="16974015"
static="true"
final="true"
deprecated="not deprecated"
@@ -16642,7 +16631,7 @@
type="int"
transient="false"
volatile="false"
- value="16974017"
+ value="16974016"
static="true"
final="true"
deprecated="not deprecated"
@@ -16653,7 +16642,7 @@
type="int"
transient="false"
volatile="false"
- value="16974035"
+ value="16974034"
static="true"
final="true"
deprecated="not deprecated"
@@ -16664,7 +16653,7 @@
type="int"
transient="false"
volatile="false"
- value="16974018"
+ value="16974017"
static="true"
final="true"
deprecated="not deprecated"
@@ -16675,7 +16664,7 @@
type="int"
transient="false"
volatile="false"
- value="16974044"
+ value="16974043"
static="true"
final="true"
deprecated="not deprecated"
@@ -16686,7 +16675,7 @@
type="int"
transient="false"
volatile="false"
- value="16974019"
+ value="16974018"
static="true"
final="true"
deprecated="not deprecated"
@@ -16697,7 +16686,7 @@
type="int"
transient="false"
volatile="false"
- value="16974014"
+ value="16974013"
static="true"
final="true"
deprecated="not deprecated"
@@ -16708,7 +16697,7 @@
type="int"
transient="false"
volatile="false"
- value="16974045"
+ value="16974044"
static="true"
final="true"
deprecated="not deprecated"
@@ -16719,7 +16708,7 @@
type="int"
transient="false"
volatile="false"
- value="16974020"
+ value="16974019"
static="true"
final="true"
deprecated="not deprecated"
@@ -16730,7 +16719,7 @@
type="int"
transient="false"
volatile="false"
- value="16974021"
+ value="16974020"
static="true"
final="true"
deprecated="not deprecated"
@@ -16741,7 +16730,7 @@
type="int"
transient="false"
volatile="false"
- value="16974022"
+ value="16974021"
static="true"
final="true"
deprecated="not deprecated"
@@ -16752,7 +16741,7 @@
type="int"
transient="false"
volatile="false"
- value="16974026"
+ value="16974025"
static="true"
final="true"
deprecated="not deprecated"
@@ -16763,7 +16752,7 @@
type="int"
transient="false"
volatile="false"
- value="16974025"
+ value="16974024"
static="true"
final="true"
deprecated="not deprecated"
@@ -16774,7 +16763,7 @@
type="int"
transient="false"
volatile="false"
- value="16974028"
+ value="16974027"
static="true"
final="true"
deprecated="not deprecated"
@@ -16785,7 +16774,7 @@
type="int"
transient="false"
volatile="false"
- value="16974023"
+ value="16974022"
static="true"
final="true"
deprecated="not deprecated"
@@ -16796,7 +16785,7 @@
type="int"
transient="false"
volatile="false"
- value="16974027"
+ value="16974026"
static="true"
final="true"
deprecated="not deprecated"
@@ -16807,7 +16796,7 @@
type="int"
transient="false"
volatile="false"
- value="16974024"
+ value="16974023"
static="true"
final="true"
deprecated="not deprecated"
@@ -16818,7 +16807,7 @@
type="int"
transient="false"
volatile="false"
- value="16974030"
+ value="16974029"
static="true"
final="true"
deprecated="not deprecated"
@@ -16829,7 +16818,7 @@
type="int"
transient="false"
volatile="false"
- value="16974031"
+ value="16974030"
static="true"
final="true"
deprecated="not deprecated"
@@ -16840,7 +16829,7 @@
type="int"
transient="false"
volatile="false"
- value="16974032"
+ value="16974031"
static="true"
final="true"
deprecated="not deprecated"
@@ -16851,7 +16840,7 @@
type="int"
transient="false"
volatile="false"
- value="16974034"
+ value="16974033"
static="true"
final="true"
deprecated="not deprecated"
@@ -16862,7 +16851,7 @@
type="int"
transient="false"
volatile="false"
- value="16974029"
+ value="16974028"
static="true"
final="true"
deprecated="not deprecated"
@@ -16873,7 +16862,7 @@
type="int"
transient="false"
volatile="false"
- value="16974036"
+ value="16974035"
static="true"
final="true"
deprecated="not deprecated"
@@ -16884,7 +16873,7 @@
type="int"
transient="false"
volatile="false"
- value="16974053"
+ value="16974052"
static="true"
final="true"
deprecated="not deprecated"
@@ -16895,7 +16884,7 @@
type="int"
transient="false"
volatile="false"
- value="16974038"
+ value="16974037"
static="true"
final="true"
deprecated="not deprecated"
@@ -16906,7 +16895,7 @@
type="int"
transient="false"
volatile="false"
- value="16974011"
+ value="16974010"
static="true"
final="true"
deprecated="not deprecated"
@@ -16917,7 +16906,7 @@
type="int"
transient="false"
volatile="false"
- value="16974043"
+ value="16974042"
static="true"
final="true"
deprecated="not deprecated"
@@ -16928,7 +16917,7 @@
type="int"
transient="false"
volatile="false"
- value="16974039"
+ value="16974038"
static="true"
final="true"
deprecated="not deprecated"
@@ -16939,7 +16928,7 @@
type="int"
transient="false"
volatile="false"
- value="16974040"
+ value="16974039"
static="true"
final="true"
deprecated="not deprecated"
@@ -16950,7 +16939,7 @@
type="int"
transient="false"
volatile="false"
- value="16973998"
+ value="16973997"
static="true"
final="true"
deprecated="not deprecated"
@@ -16961,7 +16950,7 @@
type="int"
transient="false"
volatile="false"
- value="16973976"
+ value="16973975"
static="true"
final="true"
deprecated="not deprecated"
@@ -16972,7 +16961,7 @@
type="int"
transient="false"
volatile="false"
- value="16973971"
+ value="16973970"
static="true"
final="true"
deprecated="not deprecated"
@@ -16983,7 +16972,7 @@
type="int"
transient="false"
volatile="false"
- value="16973999"
+ value="16973998"
static="true"
final="true"
deprecated="not deprecated"
@@ -16994,7 +16983,7 @@
type="int"
transient="false"
volatile="false"
- value="16973977"
+ value="16973976"
static="true"
final="true"
deprecated="not deprecated"
@@ -17005,7 +16994,7 @@
type="int"
transient="false"
volatile="false"
- value="16973978"
+ value="16973977"
static="true"
final="true"
deprecated="not deprecated"
@@ -17016,7 +17005,7 @@
type="int"
transient="false"
volatile="false"
- value="16973979"
+ value="16973978"
static="true"
final="true"
deprecated="not deprecated"
@@ -17027,7 +17016,7 @@
type="int"
transient="false"
volatile="false"
- value="16973982"
+ value="16973981"
static="true"
final="true"
deprecated="not deprecated"
@@ -17038,7 +17027,7 @@
type="int"
transient="false"
volatile="false"
- value="16973980"
+ value="16973979"
static="true"
final="true"
deprecated="not deprecated"
@@ -17049,7 +17038,7 @@
type="int"
transient="false"
volatile="false"
- value="16973981"
+ value="16973980"
static="true"
final="true"
deprecated="not deprecated"
@@ -17060,7 +17049,7 @@
type="int"
transient="false"
volatile="false"
- value="16973984"
+ value="16973983"
static="true"
final="true"
deprecated="not deprecated"
@@ -17071,7 +17060,7 @@
type="int"
transient="false"
volatile="false"
- value="16973985"
+ value="16973984"
static="true"
final="true"
deprecated="not deprecated"
@@ -17082,7 +17071,7 @@
type="int"
transient="false"
volatile="false"
- value="16973986"
+ value="16973985"
static="true"
final="true"
deprecated="not deprecated"
@@ -17093,7 +17082,7 @@
type="int"
transient="false"
volatile="false"
- value="16973988"
+ value="16973987"
static="true"
final="true"
deprecated="not deprecated"
@@ -17104,7 +17093,7 @@
type="int"
transient="false"
volatile="false"
- value="16973983"
+ value="16973982"
static="true"
final="true"
deprecated="not deprecated"
@@ -17115,7 +17104,7 @@
type="int"
transient="false"
volatile="false"
- value="16973990"
+ value="16973989"
static="true"
final="true"
deprecated="not deprecated"
@@ -17126,7 +17115,7 @@
type="int"
transient="false"
volatile="false"
- value="16974052"
+ value="16974051"
static="true"
final="true"
deprecated="not deprecated"
@@ -17137,7 +17126,7 @@
type="int"
transient="false"
volatile="false"
- value="16973992"
+ value="16973991"
static="true"
final="true"
deprecated="not deprecated"
@@ -17148,7 +17137,7 @@
type="int"
transient="false"
volatile="false"
- value="16973968"
+ value="16973967"
static="true"
final="true"
deprecated="not deprecated"
@@ -17159,7 +17148,7 @@
type="int"
transient="false"
volatile="false"
- value="16973997"
+ value="16973996"
static="true"
final="true"
deprecated="not deprecated"
@@ -17170,7 +17159,7 @@
type="int"
transient="false"
volatile="false"
- value="16973993"
+ value="16973992"
static="true"
final="true"
deprecated="not deprecated"
@@ -17181,7 +17170,7 @@
type="int"
transient="false"
volatile="false"
- value="16973994"
+ value="16973993"
static="true"
final="true"
deprecated="not deprecated"
@@ -17225,7 +17214,7 @@
type="int"
transient="false"
volatile="false"
- value="16973958"
+ value="16973957"
static="true"
final="true"
deprecated="not deprecated"
@@ -17280,7 +17269,7 @@
type="int"
transient="false"
volatile="false"
- value="16973959"
+ value="16973958"
static="true"
final="true"
deprecated="not deprecated"
@@ -17423,7 +17412,7 @@
type="int"
transient="false"
volatile="false"
- value="16973956"
+ value="16973955"
static="true"
final="true"
deprecated="not deprecated"
@@ -60603,6 +60592,17 @@
visibility="public"
>
</field>
+<field name="FEATURE_FAKETOUCH"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""android.hardware.faketouch""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FEATURE_LIVE_WALLPAPER"
type="java.lang.String"
transient="false"
@@ -138515,11 +138515,22 @@
visibility="public"
>
</field>
+<field name="GINGERBREAD_MR1"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="10"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="HONEYCOMB"
type="int"
transient="false"
volatile="false"
- value="10000"
+ value="11"
static="true"
final="true"
deprecated="not deprecated"
@@ -214812,6 +214823,19 @@
<parameter name="selected" type="boolean">
</parameter>
</method>
+<method name="dispatchSystemUiVisibilityChanged"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="visibility" type="int">
+</parameter>
+</method>
<method name="dispatchTouchEvent"
return="boolean"
abstract="false"
@@ -215865,6 +215889,19 @@
visibility="protected"
>
</method>
+<method name="getSystemUiVisibility"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="visibility" type="int">
+</parameter>
+</method>
<method name="getTag"
return="java.lang.Object"
abstract="false"
@@ -218115,6 +218152,19 @@
<parameter name="l" type="android.view.View.OnLongClickListener">
</parameter>
</method>
+<method name="setOnSystemUiVisibilityChangeListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="l" type="android.view.View.OnSystemUiVisibilityChangeListener">
+</parameter>
+</method>
<method name="setOnTouchListener"
return="void"
abstract="false"
@@ -218368,6 +218418,19 @@
<parameter name="soundEffectsEnabled" type="boolean">
</parameter>
</method>
+<method name="setSystemUiVisibility"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="visibility" type="int">
+</parameter>
+</method>
<method name="setTag"
return="void"
abstract="false"
@@ -219375,6 +219438,28 @@
visibility="public"
>
</field>
+<field name="STATUS_BAR_HIDDEN"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="STATUS_BAR_VISIBLE"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="0"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="VIEW_LOG_TAG"
type="java.lang.String"
transient="false"
@@ -219793,6 +219878,27 @@
</parameter>
</method>
</interface>
+<interface name="View.OnSystemUiVisibilityChangeListener"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="onSystemUiVisibilityChange"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="visibility" type="int">
+</parameter>
+</method>
+</interface>
<interface name="View.OnTouchListener"
abstract="true"
static="true"
@@ -260295,7 +260401,7 @@
deprecated="not deprecated"
visibility="public"
>
-<parameter name="t" type="T">
+<parameter name="arg0" type="T">
</parameter>
</method>
</interface>
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index 03a98d1..60213f8 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -696,7 +696,7 @@
final Intent intent = mCurIntent;
mCurIntent = null;
- if (receiver == null) {
+ if (receiver == null || !mRegistered) {
if (mRegistered && ordered) {
if (ActivityThread.DEBUG_BROADCAST) Slog.i(ActivityThread.TAG,
"Finishing null broadcast to " + mReceiver);
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 6e9cdbe..a589216 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -832,6 +832,18 @@
/**
* Feature for {@link #getSystemAvailableFeatures} and
+ * {@link #hasSystemFeature}: The device does not have a touch screen, but
+ * does support touch emulation for basic events. For instance, the
+ * device might use a mouse or remote control to drive a cursor, and
+ * emulate basic touch pointer events like down, up, drag, etc. All
+ * devices that support android.hardware.touchscreen or a sub-feature are
+ * presumed to also support faketouch.
+ */
+ @SdkConstant(SdkConstantType.FEATURE)
+ public static final String FEATURE_FAKETOUCH = "android.hardware.faketouch";
+
+ /**
+ * Feature for {@link #getSystemAvailableFeatures} and
* {@link #hasSystemFeature}: The device supports live wallpapers.
*/
@SdkConstant(SdkConstantType.FEATURE)
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index 35f1c58..8d2607a 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -197,12 +197,17 @@
public static final int FROYO = 8;
/**
- * Newest version of Android, version 2.3.
+ * November 2010: Android 2.3
*/
public static final int GINGERBREAD = 9;
+
+ /**
+ * Almost newest version of Android, version 2.3.3.
+ */
+ public static final int GINGERBREAD_MR1 = 10;
/**
- * Next next version of Android.
+ * Newest version of Android, version 3.0.
*
* <p>Applications targeting this or a later release will get these
* new changes in behavior:</p>
@@ -211,7 +216,7 @@
* {@link android.R.style#Theme_Holo}.
* <li> The activity lifecycle has changed slightly as per
* {@link android.app.Activity}.
- * <li> When an application requires a permission to access on of
+ * <li> When an application requires a permission to access one of
* its components (activity, receiver, service, provider), this
* permission is no longer enforced when the application wants to
* access its own component. This means it can require a permission
@@ -219,7 +224,7 @@
* component.
* </ul>
*/
- public static final int HONEYCOMB = CUR_DEVELOPMENT;
+ public static final int HONEYCOMB = 11;
}
/** The type of build, like "user" or "eng". */
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java
index e47dc93..f6c5e0b 100644
--- a/core/java/android/view/GLES20Canvas.java
+++ b/core/java/android/view/GLES20Canvas.java
@@ -525,9 +525,15 @@
@Override
public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter,
Paint paint) {
- throw new UnsupportedOperationException();
+ boolean hasModifier = setupModifiers(paint);
+ nDrawArc(mRenderer, oval.left, oval.top, oval.right, oval.bottom, startAngle, sweepAngle,
+ useCenter, paint.mNativePaint);
+ if (hasModifier) nResetModifiers(mRenderer);
}
+ private native void nDrawArc(int renderer, float left, float top, float right, float bottom,
+ float startAngle, float sweepAngle, boolean useCenter, int paint);
+
@Override
public void drawARGB(int a, int r, int g, int b) {
drawColor((a & 0xFF) << 24 | (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF));
@@ -705,9 +711,14 @@
@Override
public void drawOval(RectF oval, Paint paint) {
- throw new UnsupportedOperationException();
+ boolean hasModifier = setupModifiers(paint);
+ nDrawOval(mRenderer, oval.left, oval.top, oval.right, oval.bottom, paint.mNativePaint);
+ if (hasModifier) nResetModifiers(mRenderer);
}
+ private native void nDrawOval(int renderer, float left, float top, float right, float bottom,
+ int paint);
+
@Override
public void drawPaint(Paint paint) {
final Rect r = mClipBounds;
@@ -765,12 +776,12 @@
@Override
public void drawPosText(char[] text, int index, int count, float[] pos, Paint paint) {
- throw new UnsupportedOperationException();
+ // TODO: Implement
}
@Override
public void drawPosText(String text, float[] pos, Paint paint) {
- throw new UnsupportedOperationException();
+ // TODO: Implement
}
@Override
@@ -879,12 +890,12 @@
@Override
public void drawTextOnPath(char[] text, int index, int count, Path path, float hOffset,
float vOffset, Paint paint) {
- throw new UnsupportedOperationException();
+ // TODO: Implement
}
@Override
public void drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) {
- throw new UnsupportedOperationException();
+ // TODO: Implement
}
@Override
diff --git a/core/java/android/view/IWindow.aidl b/core/java/android/view/IWindow.aidl
index 85a8c1a..0e482d6 100644
--- a/core/java/android/view/IWindow.aidl
+++ b/core/java/android/view/IWindow.aidl
@@ -70,4 +70,9 @@
* Drag/drop events
*/
void dispatchDragEvent(in DragEvent event);
+
+ /**
+ * System chrome visibility changes
+ */
+ void dispatchSystemUiVisibilityChanged(int visibility);
}
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 8bdc1f8..51653df 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -187,4 +187,9 @@
* Create a screenshot of the applications currently displayed.
*/
Bitmap screenshotApplications(IBinder appToken, int maxWidth, int maxHeight);
+
+ /**
+ * Called by the status bar to notify Views of changes to System UI visiblity.
+ */
+ void statusBarVisibilityChanged(int visibility);
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 469bbaa..6d5fd2c 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -48,6 +48,7 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.util.AttributeSet;
@@ -1697,6 +1698,20 @@
public static final int OVER_SCROLL_NEVER = 2;
/**
+ * View has requested the status bar to be visible (the default).
+ *
+ * @see setSystemUiVisibility
+ */
+ public static final int STATUS_BAR_VISIBLE = 0;
+
+ /**
+ * View has requested the status bar to be visible (the default).
+ *
+ * @see setSystemUiVisibility
+ */
+ public static final int STATUS_BAR_HIDDEN = 0x00000001;
+
+ /**
* Controls the over-scroll mode for this view.
* See {@link #overScrollBy(int, int, int, int, int, int, int, int, boolean)},
* {@link #OVER_SCROLL_ALWAYS}, {@link #OVER_SCROLL_IF_CONTENT_SCROLLS},
@@ -1735,6 +1750,12 @@
int mPrivateFlags;
/**
+ * This view's request for the visibility of the status bar.
+ * @hide
+ */
+ int mSystemUiVisibility;
+
+ /**
* Count of how many windows this view has been attached to.
*/
int mWindowAttachCount;
@@ -2037,6 +2058,8 @@
private OnDragListener mOnDragListener;
+ private OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener;
+
/**
* The application environment this view lives in.
* This field should be made private, so it is hidden from the SDK.
@@ -4706,17 +4729,22 @@
}
void performCollectViewAttributes(int visibility) {
- //noinspection PointlessBitwiseExpression
- if (((visibility | mViewFlags) & (VISIBILITY_MASK | KEEP_SCREEN_ON))
- == (VISIBLE | KEEP_SCREEN_ON)) {
- mAttachInfo.mKeepScreenOn = true;
+ if ((visibility & VISIBILITY_MASK) == VISIBLE) {
+ if ((mViewFlags & KEEP_SCREEN_ON) == KEEP_SCREEN_ON) {
+ mAttachInfo.mKeepScreenOn = true;
+ }
+ mAttachInfo.mSystemUiVisibility |= mSystemUiVisibility;
+ if (mOnSystemUiVisibilityChangeListener != null) {
+ mAttachInfo.mHasSystemUiListeners = true;
+ }
}
}
void needGlobalAttributesUpdate(boolean force) {
- AttachInfo ai = mAttachInfo;
+ final AttachInfo ai = mAttachInfo;
if (ai != null) {
- if (ai.mKeepScreenOn || force) {
+ if (force || ai.mKeepScreenOn || (ai.mSystemUiVisibility != 0)
+ || ai.mHasSystemUiListeners) {
ai.mRecomputeGlobalAttributes = true;
}
}
@@ -5301,7 +5329,7 @@
}
if ((changed & KEEP_SCREEN_ON) != 0) {
- if (mParent != null) {
+ if (mParent != null && mAttachInfo != null && !mAttachInfo.mRecomputeGlobalAttributes) {
mParent.recomputeViewAttributes(this);
}
}
@@ -10618,6 +10646,40 @@
}
/**
+ * Request that the visibility of the status bar be changed.
+ */
+ public void setSystemUiVisibility(int visibility) {
+ if (visibility != mSystemUiVisibility) {
+ mSystemUiVisibility = visibility;
+ if (mParent != null && mAttachInfo != null && !mAttachInfo.mRecomputeGlobalAttributes) {
+ mParent.recomputeViewAttributes(this);
+ }
+ }
+ }
+
+ /**
+ * Returns the status bar visibility that this view has requested.
+ */
+ public int getSystemUiVisibility(int visibility) {
+ return mSystemUiVisibility;
+ }
+
+ public void setOnSystemUiVisibilityChangeListener(OnSystemUiVisibilityChangeListener l) {
+ mOnSystemUiVisibilityChangeListener = l;
+ if (mParent != null && mAttachInfo != null && !mAttachInfo.mRecomputeGlobalAttributes) {
+ mParent.recomputeViewAttributes(this);
+ }
+ }
+
+ /**
+ */
+ public void dispatchSystemUiVisibilityChanged(int visibility) {
+ if (mOnSystemUiVisibilityChangeListener != null) {
+ mOnSystemUiVisibilityChangeListener.onSystemUiVisibilityChange(visibility);
+ }
+ }
+
+ /**
* !!! TODO: real docs
*
* The base class implementation makes the shadow the same size and appearance
@@ -11307,6 +11369,22 @@
void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo);
}
+ /**
+ * Interface definition for a callback to be invoked when the status bar changes
+ * visibility.
+ *
+ * @see #setOnSystemUiVisibilityChangeListener
+ */
+ public interface OnSystemUiVisibilityChangeListener {
+ /**
+ * Called when the status bar changes visibility because of a call to
+ * {@link #setSystemUiVisibility}.
+ *
+ * @param visibility {@link #STATUS_BAR_VISIBLE} or {@link #STATUS_BAR_HIDDEN}.
+ */
+ public void onSystemUiVisibilityChange(int visibility);
+ }
+
private final class UnsetPressedState implements Runnable {
public void run() {
setPressed(false);
@@ -11525,6 +11603,17 @@
boolean mKeepScreenOn;
/**
+ * Bitwise-or of all of the values that views have passed to setSystemUiVisibility().
+ */
+ int mSystemUiVisibility;
+
+ /**
+ * True if a view in this hierarchy has an OnSystemUiVisibilityChangeListener
+ * attached.
+ */
+ boolean mHasSystemUiListeners;
+
+ /**
* Set if the visibility of any views has changed.
*/
boolean mViewVisibilityChanged;
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 6b41ce5..edad494 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -17,6 +17,7 @@
package android.view;
import android.content.Context;
+import android.content.res.Configuration;
import android.util.DisplayMetrics;
import android.util.SparseArray;
@@ -217,22 +218,29 @@
private ViewConfiguration(Context context) {
final DisplayMetrics metrics = context.getResources().getDisplayMetrics();
final float density = metrics.density;
+ final float sizeAndDensity;
+ if (context.getResources().getConfiguration().isLayoutSizeAtLeast(
+ Configuration.SCREENLAYOUT_SIZE_XLARGE)) {
+ sizeAndDensity = density * 1.5f;
+ } else {
+ sizeAndDensity = density;
+ }
- mEdgeSlop = (int) (density * EDGE_SLOP + 0.5f);
- mFadingEdgeLength = (int) (density * FADING_EDGE_LENGTH + 0.5f);
+ mEdgeSlop = (int) (sizeAndDensity * EDGE_SLOP + 0.5f);
+ mFadingEdgeLength = (int) (sizeAndDensity * FADING_EDGE_LENGTH + 0.5f);
mMinimumFlingVelocity = (int) (density * MINIMUM_FLING_VELOCITY + 0.5f);
mMaximumFlingVelocity = (int) (density * MAXIMUM_FLING_VELOCITY + 0.5f);
mScrollbarSize = (int) (density * SCROLL_BAR_SIZE + 0.5f);
- mTouchSlop = (int) (density * TOUCH_SLOP + 0.5f);
- mPagingTouchSlop = (int) (density * PAGING_TOUCH_SLOP + 0.5f);
- mDoubleTapSlop = (int) (density * DOUBLE_TAP_SLOP + 0.5f);
- mWindowTouchSlop = (int) (density * WINDOW_TOUCH_SLOP + 0.5f);
+ mTouchSlop = (int) (sizeAndDensity * TOUCH_SLOP + 0.5f);
+ mPagingTouchSlop = (int) (sizeAndDensity * PAGING_TOUCH_SLOP + 0.5f);
+ mDoubleTapSlop = (int) (sizeAndDensity * DOUBLE_TAP_SLOP + 0.5f);
+ mWindowTouchSlop = (int) (sizeAndDensity * WINDOW_TOUCH_SLOP + 0.5f);
// Size of the screen in bytes, in ARGB_8888 format
mMaximumDrawingCacheSize = 4 * metrics.widthPixels * metrics.heightPixels;
- mOverscrollDistance = (int) (density * OVERSCROLL_DISTANCE + 0.5f);
- mOverflingDistance = (int) (density * OVERFLING_DISTANCE + 0.5f);
+ mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f);
+ mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);
}
/**
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 115431e..d6c8ad6 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -860,8 +860,10 @@
* {@inheritDoc}
*/
public void recomputeViewAttributes(View child) {
- ViewParent parent = mParent;
- if (parent != null) parent.recomputeViewAttributes(this);
+ if (mAttachInfo != null && !mAttachInfo.mRecomputeGlobalAttributes) {
+ ViewParent parent = mParent;
+ if (parent != null) parent.recomputeViewAttributes(this);
+ }
}
@Override
@@ -1070,6 +1072,18 @@
return child.mCanAcceptDrop;
}
+ @Override
+ public void dispatchSystemUiVisibilityChanged(int visible) {
+ super.dispatchSystemUiVisibilityChanged(visible);
+
+ final int count = mChildrenCount;
+ final View[] children = mChildren;
+ for (int i=0; i <count; i++) {
+ final View child = children[i];
+ child.dispatchSystemUiVisibilityChanged(visible);
+ }
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index ad101f8..d932141 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -718,6 +718,7 @@
attachInfo.mWindowVisibility = viewVisibility;
attachInfo.mRecomputeGlobalAttributes = false;
attachInfo.mKeepScreenOn = false;
+ attachInfo.mSystemUiVisibility = 0;
viewVisibilityChanged = false;
mLastConfiguration.setTo(host.getResources().getConfiguration());
host.dispatchAttachedToWindow(attachInfo, 0);
@@ -891,14 +892,17 @@
}
if (attachInfo.mRecomputeGlobalAttributes) {
- //Log.i(TAG, "Computing screen on!");
+ //Log.i(TAG, "Computing view hierarchy attributes!");
attachInfo.mRecomputeGlobalAttributes = false;
- boolean oldVal = attachInfo.mKeepScreenOn;
+ boolean oldScreenOn = attachInfo.mKeepScreenOn;
+ int oldVis = attachInfo.mSystemUiVisibility;
attachInfo.mKeepScreenOn = false;
+ attachInfo.mSystemUiVisibility = 0;
+ attachInfo.mHasSystemUiListeners = false;
host.dispatchCollectViewAttributes(0);
- if (attachInfo.mKeepScreenOn != oldVal) {
+ if (attachInfo.mKeepScreenOn != oldScreenOn ||
+ attachInfo.mSystemUiVisibility != oldVis) {
params = lp;
- //Log.i(TAG, "Keep screen on changed: " + attachInfo.mKeepScreenOn);
}
}
@@ -980,6 +984,8 @@
if (attachInfo.mKeepScreenOn) {
params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
}
+ params.systemUiVisibility = attachInfo.mSystemUiVisibility;
+ params.hasSystemUiListeners = attachInfo.mHasSystemUiListeners;
}
if (DEBUG_LAYOUT) {
Log.i(TAG, "host=w:" + host.getMeasuredWidth() + ", h:" +
@@ -1133,7 +1139,7 @@
if (DEBUG_LAYOUT) Log.v(TAG, "Ooops, something changed! mWidth="
+ mWidth + " measuredWidth=" + host.getMeasuredWidth()
+ " mHeight=" + mHeight
- + " measuredHeight" + host.getMeasuredHeight()
+ + " measuredHeight=" + host.getMeasuredHeight()
+ " coveredInsetsChanged=" + contentInsetsChanged);
// Ask host how big it wants to be
@@ -1895,6 +1901,7 @@
public final static int CLOSE_SYSTEM_DIALOGS = 1014;
public final static int DISPATCH_DRAG_EVENT = 1015;
public final static int DISPATCH_DRAG_LOCATION_EVENT = 1016;
+ public final static int DISPATCH_SYSTEM_UI_VISIBILITY = 1017;
@Override
public void handleMessage(Message msg) {
@@ -2057,6 +2064,9 @@
event.mLocalState = mLocalDragState; // only present when this app called startDrag()
handleDragEvent(event);
} break;
+ case DISPATCH_SYSTEM_UI_VISIBILITY: {
+ handleDispatchSystemUiVisibilityChanged(msg.arg1);
+ } break;
}
}
@@ -2826,6 +2836,11 @@
event.recycle();
}
+ public void handleDispatchSystemUiVisibilityChanged(int visibility) {
+ if (mView == null) return;
+ mView.dispatchSystemUiVisibilityChanged(visibility);
+ }
+
public void getLastTouchPoint(Point outLocation) {
outLocation.x = (int) mLastTouchPoint.x;
outLocation.y = (int) mLastTouchPoint.y;
@@ -3141,6 +3156,10 @@
sendMessage(msg);
}
+ public void dispatchSystemUiVisibilityChanged(int visibility) {
+ sendMessage(obtainMessage(DISPATCH_SYSTEM_UI_VISIBILITY, visibility, 0));
+ }
+
/**
* The window is getting focus so if there is anything focused/selected
* send an {@link AccessibilityEvent} to announce that.
@@ -3359,6 +3378,14 @@
viewRoot.dispatchDragEvent(event);
}
}
+
+ @Override
+ public void dispatchSystemUiVisibilityChanged(int visibility) {
+ final ViewRoot viewRoot = mViewRoot.get();
+ if (viewRoot != null) {
+ viewRoot.dispatchSystemUiVisibilityChanged(visibility);
+ }
+ }
}
/**
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 8eb4269..491a79f 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -950,7 +950,22 @@
* will be used.
*/
public int screenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-
+
+ /**
+ * Control the visibility of the status bar.
+ * @hide
+ */
+ public int systemUiVisibility;
+
+ /**
+ * Get callbacks about the system ui visibility changing.
+ *
+ * TODO: Maybe there should be a bitfield of optional callbacks that we need.
+ *
+ * @hide
+ */
+ public boolean hasSystemUiListeners;
+
public LayoutParams() {
super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
type = TYPE_APPLICATION;
@@ -1030,6 +1045,8 @@
out.writeString(packageName);
TextUtils.writeToParcel(mTitle, out, parcelableFlags);
out.writeInt(screenOrientation);
+ out.writeInt(systemUiVisibility);
+ out.writeInt(hasSystemUiListeners ? 1 : 0);
}
public static final Parcelable.Creator<LayoutParams> CREATOR
@@ -1065,6 +1082,8 @@
packageName = in.readString();
mTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
screenOrientation = in.readInt();
+ systemUiVisibility = in.readInt();
+ hasSystemUiListeners = in.readInt() != 0;
}
@SuppressWarnings({"PointlessBitwiseExpression"})
@@ -1082,6 +1101,10 @@
public static final int SCREEN_BRIGHTNESS_CHANGED = 1<<11;
/** {@hide} */
public static final int BUTTON_BRIGHTNESS_CHANGED = 1<<12;
+ /** {@hide} */
+ public static final int SYSTEM_UI_VISIBILITY_CHANGED = 1<<13;
+ /** {@hide} */
+ public static final int SYSTEM_UI_LISTENER_CHANGED = 1<<14;
// internal buffer to backup/restore parameters under compatibility mode.
private int[] mCompatibilityParamsBackup = null;
@@ -1189,6 +1212,16 @@
changes |= SCREEN_ORIENTATION_CHANGED;
}
+ if (systemUiVisibility != o.systemUiVisibility) {
+ systemUiVisibility = o.systemUiVisibility;
+ changes |= SYSTEM_UI_VISIBILITY_CHANGED;
+ }
+
+ if (hasSystemUiListeners != o.hasSystemUiListeners) {
+ hasSystemUiListeners = o.hasSystemUiListeners;
+ changes |= SYSTEM_UI_LISTENER_CHANGED;
+ }
+
return changes;
}
@@ -1261,6 +1294,14 @@
if ((flags & FLAG_COMPATIBLE_WINDOW) != 0) {
sb.append(" compatible=true");
}
+ if (systemUiVisibility != 0) {
+ sb.append(" sysui=0x");
+ sb.append(Integer.toHexString(systemUiVisibility));
+ }
+ if (hasSystemUiListeners) {
+ sb.append(" sysuil=");
+ sb.append(hasSystemUiListeners);
+ }
sb.append('}');
return sb.toString();
}
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index e8d67da..ad06902 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -695,6 +695,12 @@
* immediately.
*/
public boolean allowAppAnimationsLw();
+
+
+ /**
+ * A new window has been focused.
+ */
+ public void focusChanged(WindowState lastFocus, WindowState newFocus);
/**
* Called after the screen turns off.
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index a65de13..665f9e7 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -1095,9 +1095,8 @@
*/
private boolean contentFits() {
final int childCount = getChildCount();
- if (childCount != mItemCount) {
- return false;
- }
+ if (childCount == 0) return true;
+ if (childCount != mItemCount) return false;
return getChildAt(0).getTop() >= 0 && getChildAt(childCount - 1).getBottom() <= mBottom;
}
diff --git a/core/java/com/android/internal/os/SamplingProfilerIntegration.java b/core/java/com/android/internal/os/SamplingProfilerIntegration.java
index bfef275..8c256e0 100644
--- a/core/java/com/android/internal/os/SamplingProfilerIntegration.java
+++ b/core/java/com/android/internal/os/SamplingProfilerIntegration.java
@@ -16,22 +16,21 @@
package com.android.internal.os;
+import android.content.pm.PackageInfo;
+import android.os.Build;
+import android.os.SystemProperties;
+import android.util.Log;
import dalvik.system.SamplingProfiler;
-
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.ThreadFactory;
-
-import android.content.pm.PackageInfo;
-import android.util.Log;
-import android.os.*;
+import java.util.concurrent.atomic.AtomicBoolean;
+import libcore.io.IoUtils;
/**
* Integrates the framework with Dalvik's sampling profiler.
@@ -162,19 +161,16 @@
PrintStream out = null;
try {
out = new PrintStream(new BufferedOutputStream(new FileOutputStream(path)));
- } catch (IOException e) {
- Log.e(TAG, "Could not open " + path + ":" + e);
- return;
- }
- try {
generateSnapshotHeader(name, packageInfo, out);
- INSTANCE.writeHprofData(out);
- } finally {
- out.close();
- }
- if (out.checkError()) {
- Log.e(TAG, "Error writing snapshot.");
+ new SamplingProfiler.AsciiHprofWriter(INSTANCE.getHprofData(), out).write();
+ if (out.checkError()) {
+ throw new IOException();
+ }
+ } catch (IOException e) {
+ Log.e(TAG, "Error writing snapshot to " + path, e);
return;
+ } finally {
+ IoUtils.closeQuietly(out);
}
// set file readable to the world so that SamplingProfilerService
// can put it to dropbox
diff --git a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java
index d2e53b3..78688ee 100644
--- a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java
+++ b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java
@@ -41,6 +41,9 @@
* Default built-in wallpaper that simply shows a static image.
*/
public class ImageWallpaper extends WallpaperService {
+ private static final String TAG = "ImageWallpaper";
+ private static final boolean DEBUG = false;
+
WallpaperManager mWallpaperManager;
private HandlerThread mThread;
@@ -77,10 +80,19 @@
float mXOffset;
float mYOffset;
+ boolean mVisible = true;
+ boolean mRedrawNeeded;
+ boolean mOffsetsChanged;
+ int mLastXTranslation;
+ int mLastYTranslation;
+
class WallpaperObserver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
- updateWallpaper();
- drawFrame();
+ synchronized (mLock) {
+ updateWallpaperLocked();
+ drawFrameLocked(true, false);
+ }
+
// Assume we are the only one using the wallpaper in this
// process, and force a GC now to release the old wallpaper.
System.gc();
@@ -93,7 +105,10 @@
IntentFilter filter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
mReceiver = new WallpaperObserver();
registerReceiver(mReceiver, filter);
- updateWallpaper();
+
+ synchronized (mLock) {
+ updateWallpaperLocked();
+ }
surfaceHolder.setSizeFromLayout();
}
@@ -105,9 +120,12 @@
@Override
public void onVisibilityChanged(boolean visible) {
- drawFrame();
+ synchronized (mLock) {
+ mVisible = visible;
+ drawFrameLocked(false, false);
+ }
}
-
+
@Override
public void onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
@@ -117,15 +135,27 @@
public void onOffsetsChanged(float xOffset, float yOffset,
float xOffsetStep, float yOffsetStep,
int xPixels, int yPixels) {
- mXOffset = xOffset;
- mYOffset = yOffset;
- drawFrame();
+ synchronized (mLock) {
+ if (mXOffset != xOffset || mYOffset != yOffset) {
+ if (DEBUG) {
+ Log.d(TAG, "Offsets changed to (" + xOffset + "," + yOffset + ").");
+ }
+ mXOffset = xOffset;
+ mYOffset = yOffset;
+ drawFrameLocked(false, true);
+ } else {
+ drawFrameLocked(false, false);
+ }
+ }
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
super.onSurfaceChanged(holder, format, width, height);
- drawFrame();
+
+ synchronized (mLock) {
+ drawFrameLocked(true, false);
+ }
}
@Override
@@ -137,25 +167,59 @@
public void onSurfaceDestroyed(SurfaceHolder holder) {
super.onSurfaceDestroyed(holder);
}
-
- void drawFrame() {
+
+ void drawFrameLocked(boolean redrawNeeded, boolean offsetsChanged) {
+ mRedrawNeeded |= redrawNeeded;
+ mOffsetsChanged |= offsetsChanged;
+
+ if (!mVisible) {
+ if (DEBUG) {
+ Log.d(TAG, "Suppressed drawFrame since wallpaper is not visible.");
+ }
+ return;
+ }
+ if (!mRedrawNeeded && !mOffsetsChanged) {
+ if (DEBUG) {
+ Log.d(TAG, "Suppressed drawFrame since redraw is not needed "
+ + "and offsets have not changed.");
+ }
+ return;
+ }
+
SurfaceHolder sh = getSurfaceHolder();
+ final Rect frame = sh.getSurfaceFrame();
+ final Drawable background = mBackground;
+ final int dw = frame.width();
+ final int dh = frame.height();
+ final int bw = background != null ? background.getIntrinsicWidth() : 0;
+ final int bh = background != null ? background.getIntrinsicHeight() : 0;
+ final int availw = dw - bw;
+ final int availh = dh - bh;
+ int xPixels = availw < 0 ? (int)(availw * mXOffset + .5f) : (availw / 2);
+ int yPixels = availh < 0 ? (int)(availh * mYOffset + .5f) : (availh / 2);
+
+ mOffsetsChanged = false;
+ if (!mRedrawNeeded
+ && xPixels == mLastXTranslation && yPixels == mLastYTranslation) {
+ if (DEBUG) {
+ Log.d(TAG, "Suppressed drawFrame since the image has not "
+ + "actually moved an integral number of pixels.");
+ }
+ return;
+ }
+ mRedrawNeeded = false;
+ mLastXTranslation = xPixels;
+ mLastYTranslation = yPixels;
+
Canvas c = sh.lockCanvas();
if (c != null) {
- final Rect frame = sh.getSurfaceFrame();
- synchronized (mLock) {
- final Drawable background = mBackground;
- final int dw = frame.width();
- final int dh = frame.height();
- final int bw = background != null ? background.getIntrinsicWidth() : 0;
- final int bh = background != null ? background.getIntrinsicHeight() : 0;
- final int availw = dw-bw;
- final int availh = dh-bh;
- int xPixels = availw < 0 ? (int)(availw*mXOffset+.5f) : (availw/2);
- int yPixels = availh < 0 ? (int)(availh*mYOffset+.5f) : (availh/2);
+ try {
+ if (DEBUG) {
+ Log.d(TAG, "Redrawing: xPixels=" + xPixels + ", yPixels=" + yPixels);
+ }
c.translate(xPixels, yPixels);
- if (availw<0 || availh<0) {
+ if (availw < 0 || availh < 0) {
c.save(Canvas.CLIP_SAVE_FLAG);
c.clipRect(0, 0, bw, bh, Op.DIFFERENCE);
c.drawColor(0xff000000);
@@ -164,35 +228,35 @@
if (background != null) {
background.draw(c);
}
+ } finally {
+ sh.unlockCanvasAndPost(c);
}
- sh.unlockCanvasAndPost(c);
}
}
- void updateWallpaper() {
- synchronized (mLock) {
- Throwable exception = null;
+ void updateWallpaperLocked() {
+ Throwable exception = null;
+ try {
+ mBackground = mWallpaperManager.getFastDrawable();
+ } catch (RuntimeException e) {
+ exception = e;
+ } catch (OutOfMemoryError e) {
+ exception = e;
+ }
+ if (exception != null) {
+ mBackground = null;
+ // Note that if we do fail at this, and the default wallpaper can't
+ // be loaded, we will go into a cycle. Don't do a build where the
+ // default wallpaper can't be loaded.
+ Log.w(TAG, "Unable to load wallpaper!", exception);
try {
- mBackground = mWallpaperManager.getFastDrawable();
- } catch (RuntimeException e) {
- exception = e;
- } catch (OutOfMemoryError e) {
- exception = e;
- }
- if (exception != null) {
- mBackground = null;
- // Note that if we do fail at this, and the default wallpaper can't
- // be loaded, we will go into a cycle. Don't do a build where the
- // default wallpaper can't be loaded.
- Log.w("ImageWallpaper", "Unable to load wallpaper!", exception);
- try {
- mWallpaperManager.clear();
- } catch (IOException ex) {
- // now we're really screwed.
- Log.w("ImageWallpaper", "Unable reset to default wallpaper!", ex);
- }
+ mWallpaperManager.clear();
+ } catch (IOException ex) {
+ // now we're really screwed.
+ Log.w(TAG, "Unable reset to default wallpaper!", ex);
}
}
+ mRedrawNeeded = true;
}
}
}
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index f86b72d..d83a534 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -45,5 +45,5 @@
int uid, int initialPid, String message);
void onClearAllNotifications();
void onNotificationClear(String pkg, String tag, int id);
- void setLightsOn(boolean on);
+ void setSystemUiVisibility(int vis);
}
diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java
index d5213db..c41b2cb 100644
--- a/core/java/com/android/internal/view/BaseIWindow.java
+++ b/core/java/com/android/internal/view/BaseIWindow.java
@@ -73,6 +73,9 @@
public void dispatchDragEvent(DragEvent event) {
}
+ public void dispatchSystemUiVisibilityChanged(int visibility) {
+ }
+
public void dispatchWallpaperCommand(String action, int x, int y,
int z, Bundle extras, boolean sync) {
if (sync) {
diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java
index bb0c752..71af115 100644
--- a/core/java/com/android/internal/widget/ActionBarContextView.java
+++ b/core/java/com/android/internal/widget/ActionBarContextView.java
@@ -278,18 +278,13 @@
availableWidth = measureChildView(mClose, availableWidth, childSpecHeight, 0);
}
- if (mTitleLayout != null && mCustomView == null) {
- availableWidth = measureChildView(mTitleLayout, availableWidth, childSpecHeight, 0);
+ if (mMenuView != null) {
+ availableWidth = measureChildView(mMenuView, availableWidth,
+ childSpecHeight, 0);
}
- final int childCount = getChildCount();
- for (int i = 0; i < childCount; i++) {
- final View child = getChildAt(i);
- if (child == mClose || child == mTitleLayout || child == mCustomView) {
- continue;
- }
-
- availableWidth = measureChildView(child, availableWidth, childSpecHeight, 0);
+ if (mTitleLayout != null && mCustomView == null) {
+ availableWidth = measureChildView(mTitleLayout, availableWidth, childSpecHeight, 0);
}
if (mCustomView != null) {
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index d44d4a5..3c3f14b 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -30,6 +30,7 @@
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
import android.text.TextUtils.TruncateAt;
import android.util.AttributeSet;
import android.util.Log;
@@ -351,6 +352,8 @@
mTitle = title;
if (mTitleView != null) {
mTitleView.setText(title);
+ mTitleLayout.setVisibility(TextUtils.isEmpty(mTitle) && TextUtils.isEmpty(mSubtitle) ?
+ GONE : VISIBLE);
}
if (mLogoNavItem != null) {
mLogoNavItem.setTitle(title);
@@ -366,6 +369,8 @@
if (mSubtitleView != null) {
mSubtitleView.setText(subtitle);
mSubtitleView.setVisibility(subtitle != null ? VISIBLE : GONE);
+ mTitleLayout.setVisibility(TextUtils.isEmpty(mTitle) && TextUtils.isEmpty(mSubtitle) ?
+ GONE : VISIBLE);
}
}
@@ -636,7 +641,7 @@
rightOfCenter -= mMenuView.getMeasuredWidth();
}
- boolean showTitle = mTitleLayout != null &&
+ boolean showTitle = mTitleLayout != null && mTitleLayout.getVisibility() != GONE &&
(mDisplayOptions & ActionBar.DISPLAY_SHOW_TITLE) != 0;
if (showTitle) {
availableWidth = measureChildView(mTitleLayout, availableWidth, childSpecHeight, 0);
@@ -768,7 +773,7 @@
x += positionChild(mHomeLayout, x, y, contentHeight);
}
- final boolean showTitle = mTitleLayout != null &&
+ final boolean showTitle = mTitleLayout != null && mTitleLayout.getVisibility() != GONE &&
(mDisplayOptions & ActionBar.DISPLAY_SHOW_TITLE) != 0;
if (showTitle) {
x += positionChild(mTitleLayout, x, y, contentHeight);
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index 554e336f..8d074af 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -326,6 +326,18 @@
renderer->drawCircle(x, y, radius, paint);
}
+static void android_view_GLES20Canvas_drawOval(JNIEnv* env, jobject canvas,
+ OpenGLRenderer* renderer, jfloat left, jfloat top, jfloat right, jfloat bottom,
+ SkPaint* paint) {
+ renderer->drawOval(left, top, right, bottom, paint);
+}
+
+static void android_view_GLES20Canvas_drawArc(JNIEnv* env, jobject canvas,
+ OpenGLRenderer* renderer, jfloat left, jfloat top, jfloat right, jfloat bottom,
+ jfloat startAngle, jfloat sweepAngle, jboolean useCenter, SkPaint* paint) {
+ renderer->drawArc(left, top, right, bottom, startAngle, sweepAngle, useCenter, paint);
+}
+
static void android_view_GLES20Canvas_drawRects(JNIEnv* env, jobject canvas,
OpenGLRenderer* renderer, SkRegion* region, SkPaint* paint) {
SkRegion::Iterator it(*region);
@@ -602,6 +614,9 @@
{ "nDrawRects", "(III)V", (void*) android_view_GLES20Canvas_drawRects },
{ "nDrawRoundRect", "(IFFFFFFI)V", (void*) android_view_GLES20Canvas_drawRoundRect },
{ "nDrawCircle", "(IFFFI)V", (void*) android_view_GLES20Canvas_drawCircle },
+ { "nDrawOval", "(IFFFFI)V", (void*) android_view_GLES20Canvas_drawOval },
+ { "nDrawArc", "(IFFFFFFZI)V", (void*) android_view_GLES20Canvas_drawArc },
+
{ "nDrawPath", "(III)V", (void*) android_view_GLES20Canvas_drawPath },
{ "nDrawLines", "(I[FIII)V", (void*) android_view_GLES20Canvas_drawLines },
diff --git a/core/res/res/anim/activity_close_enter.xml b/core/res/res/anim/activity_close_enter.xml
index d525127..4260c08 100644
--- a/core/res/res/anim/activity_close_enter.xml
+++ b/core/res/res/anim/activity_close_enter.xml
@@ -18,14 +18,14 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:zAdjustment="normal"
+ android:zAdjustment="top"
android:shareInterpolator="false">
<scale android:fromXScale="0.975" android:toXScale="1.0"
android:fromYScale="0.975" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:interpolator="@interpolator/decelerate_quint"
android:duration="@android:integer/config_activityDefaultDur" />
- <alpha android:fromAlpha=".75" android:toAlpha="1.0"
+ <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@interpolator/decelerate_cubic"
android:duration="@android:integer/config_activityDefaultDur"/>
</set>
\ No newline at end of file
diff --git a/core/res/res/anim/activity_close_exit.xml b/core/res/res/anim/activity_close_exit.xml
index ab7adcb..8c97ee8 100644
--- a/core/res/res/anim/activity_close_exit.xml
+++ b/core/res/res/anim/activity_close_exit.xml
@@ -18,14 +18,11 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:zAdjustment="top"
+ android:zAdjustment="normal"
android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.075"
android:fromYScale="1.0" android:toYScale="1.075"
android:pivotX="50%p" android:pivotY="50%p"
android:interpolator="@interpolator/decelerate_quint"
android:duration="@android:integer/config_activityDefaultDur" />
- <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
- android:interpolator="@interpolator/decelerate_cubic"
- android:duration="@android:integer/config_activityDefaultDur"/>
</set>
\ No newline at end of file
diff --git a/core/res/res/anim/activity_open_enter.xml b/core/res/res/anim/activity_open_enter.xml
index 90f8520..5f6ac68 100644
--- a/core/res/res/anim/activity_open_enter.xml
+++ b/core/res/res/anim/activity_open_enter.xml
@@ -18,14 +18,11 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:zAdjustment="top"
+ android:zAdjustment="normal"
android:shareInterpolator="false">
<scale android:fromXScale="1.125" android:toXScale="1.0"
android:fromYScale="1.125" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:interpolator="@interpolator/decelerate_quint"
android:duration="@android:integer/config_activityDefaultDur" />
- <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
- android:interpolator="@interpolator/decelerate_cubic"
- android:duration="@android:integer/config_activityDefaultDur"/>
</set>
\ No newline at end of file
diff --git a/core/res/res/anim/activity_open_exit.xml b/core/res/res/anim/activity_open_exit.xml
index 30a1dec..08b22b9 100644
--- a/core/res/res/anim/activity_open_exit.xml
+++ b/core/res/res/anim/activity_open_exit.xml
@@ -18,14 +18,14 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:zAdjustment="normal"
+ android:zAdjustment="top"
android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="0.975"
android:fromYScale="1.0" android:toYScale="0.975"
android:pivotX="50%p" android:pivotY="50%p"
android:interpolator="@interpolator/linear"
android:duration="@android:integer/config_activityDefaultDur" />
- <alpha android:fromAlpha="1.0" android:toAlpha="0.75"
+ <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@interpolator/decelerate_cubic"
android:duration="@android:integer/config_activityDefaultDur"/>
</set>
\ No newline at end of file
diff --git a/core/res/res/anim/task_open_enter.xml b/core/res/res/anim/task_open_enter.xml
index e3e8585..b3b3fd1 100644
--- a/core/res/res/anim/task_open_enter.xml
+++ b/core/res/res/anim/task_open_enter.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale=".9" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/anim/task_open_exit.xml b/core/res/res/anim/task_open_exit.xml
index 5f03516..763b581 100644
--- a/core/res/res/anim/task_open_exit.xml
+++ b/core/res/res/anim/task_open_exit.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale="1.0" android:toYScale="0.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/anim/wallpaper_close_enter.xml b/core/res/res/anim/wallpaper_close_enter.xml
index 42a9d38..e05345d 100644
--- a/core/res/res/anim/wallpaper_close_enter.xml
+++ b/core/res/res/anim/wallpaper_close_enter.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale=".9" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/anim/wallpaper_intra_close_enter.xml b/core/res/res/anim/wallpaper_intra_close_enter.xml
index 42a9d38..e05345d 100644
--- a/core/res/res/anim/wallpaper_intra_close_enter.xml
+++ b/core/res/res/anim/wallpaper_intra_close_enter.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale=".9" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/anim/wallpaper_intra_open_exit.xml b/core/res/res/anim/wallpaper_intra_open_exit.xml
index c750047..47ea0b4 100644
--- a/core/res/res/anim/wallpaper_intra_open_exit.xml
+++ b/core/res/res/anim/wallpaper_intra_open_exit.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale="1.0" android:toYScale="0.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/anim/wallpaper_open_exit.xml b/core/res/res/anim/wallpaper_open_exit.xml
index c750047..47ea0b4 100644
--- a/core/res/res/anim/wallpaper_open_exit.xml
+++ b/core/res/res/anim/wallpaper_open_exit.xml
@@ -18,7 +18,7 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:shareInterpolator="false">
+ android:detachWallpaper="true" android:shareInterpolator="false">
<scale android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale="1.0" android:toYScale="0.0"
android:pivotX="50%p" android:pivotY="50%p"
diff --git a/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_dark.png
index c0f0d167..46194d8 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_light.png
index ba03d28..fe11736 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_dark.png
index a320240..f312dc4 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_light.png
index 7f48c54..b7a8c5f 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_focused_holo_dark.png
index 82b7ba7..a11b128 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_focused_holo_light.png
index 69ecf05..40091d1 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_holo_dark.png
index 4148ac4..00175ba 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_holo_light.png
index 2cc946f..f8a34dc 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
index c18e18b..5b9a889 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
index 258c3d3..7f3426f 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_selected_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_selected_holo_dark.png
deleted file mode 100644
index f819928..0000000
--- a/core/res/res/drawable-hdpi/btn_check_off_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_selected_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_selected_holo_light.png
deleted file mode 100644
index 57cb512..0000000
--- a/core/res/res/drawable-hdpi/btn_check_off_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_dark.png
index e63e5a5..9f57be8 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_light.png
index 37415e0..1a26bf6 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_dark.png
index 77a3115..9e74f82 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_light.png
index 51993e3..8143700 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_focused_holo_dark.png
index 817adf7..c641801 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_focused_holo_light.png
index 6459240..895b61d 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_holo_dark.png
index d0c4415..c0ffb41 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_holo_light.png
index af84d4b..466adf2 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
index 1333cb1..fc542d9 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
index 4413328..a5f8f93 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_selected_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_selected_holo_dark.png
deleted file mode 100644
index e758aab..0000000
--- a/core/res/res/drawable-hdpi/btn_check_on_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_selected_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_selected_holo_light.png
deleted file mode 100644
index 2edf656..0000000
--- a/core/res/res/drawable-hdpi/btn_check_on_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_group_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_group_holo_dark.9.png
new file mode 100644
index 0000000..b86c65a
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_group_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_group_holo_light.9.png b/core/res/res/drawable-hdpi/btn_group_holo_light.9.png
new file mode 100644
index 0000000..1248e88
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_group_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_dark.png
deleted file mode 100644
index 4fdf5ce..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_light.png
deleted file mode 100644
index e70f8c3..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_disabled_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_dark.png
deleted file mode 100644
index c28d6cd..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_light.png
deleted file mode 100644
index ebf4da6..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_disabled_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_dark.png
deleted file mode 100644
index 9a5455c..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_light.png
deleted file mode 100644
index 9648df2..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_focused_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_dark.png
deleted file mode 100644
index cd59fab..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_light.png
deleted file mode 100644
index 4da6192..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_focused_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_dark.png
deleted file mode 100644
index f18c6da..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_light.png
deleted file mode 100644
index 70afefc..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_normal_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_dark.png
deleted file mode 100644
index fdf1586..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_light.png
deleted file mode 100644
index 457038a6..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_normal_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_dark.png
new file mode 100644
index 0000000..39f1ca4
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_light.png
new file mode 100644
index 0000000..0456759
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_dark.png
new file mode 100644
index 0000000..ccd468c
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_light.png
new file mode 100644
index 0000000..44a0b53
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_dark.png
new file mode 100644
index 0000000..20cfc23
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_light.png
new file mode 100644
index 0000000..c05dcd3
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_holo_dark.png
index dd18b7a..328f662 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_holo_light.png
index 66d538f..1a15177 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
index 4e777f8..c91b76f 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
index 6062033..4764c67 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_dark.png
deleted file mode 100644
index 683a883..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_light.png
deleted file mode 100644
index 19524ff..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_off_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_dark.png
new file mode 100644
index 0000000..5997c2d
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_light.png
new file mode 100644
index 0000000..ee6c869
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_dark.png
new file mode 100644
index 0000000..f052e67
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_light.png
new file mode 100644
index 0000000..247d306
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_dark.png
new file mode 100644
index 0000000..f95f155
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_light.png
new file mode 100644
index 0000000..7bebc96
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_radio_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_holo_dark.png
index 2e1111b..0231925 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_holo_light.png
index 90639ec..cfde3cb 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
index 1907215..0296a62e 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
index b51c7ad..6970012 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_dark.png
deleted file mode 100644
index 06d39cc..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_light.png
deleted file mode 100644
index 06a4314..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_on_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_dark.png
deleted file mode 100644
index aa10966..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_light.png
deleted file mode 100644
index 8eaf738..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_pressed_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_dark.png
deleted file mode 100644
index 674cc55..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_light.png
deleted file mode 100644
index b4f8800..0000000
--- a/core/res/res/drawable-hdpi/btn_radio_pressed_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/toast_frame.9.png b/core/res/res/drawable-hdpi/toast_frame.9.png
index 7f830bc..8f5d811 100644
--- a/core/res/res/drawable-hdpi/toast_frame.9.png
+++ b/core/res/res/drawable-hdpi/toast_frame.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/toast_frame_holo.9.png b/core/res/res/drawable-hdpi/toast_frame_holo.9.png
new file mode 100644
index 0000000..7f830bc
--- /dev/null
+++ b/core/res/res/drawable-hdpi/toast_frame_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_dark.png
index 7e58392..031a54b 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_light.png
index d5c1f7c..538e43c 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_dark.png
index b6eec97..e988577 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_light.png
index 1bc34b6..156714e 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_focused_holo_dark.png
index 894836f..3538aab 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_focused_holo_light.png
index ae81a5e..edc3f64 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_holo_dark.png
index b03f356..d20b2aa 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_holo_light.png
index 9dbbd49..a80c349 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
index 0f9f4f0..64bda76 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
index 77ad452..39c9ea4 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_selected_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_selected_holo_dark.png
deleted file mode 100644
index 89ea3a8..0000000
--- a/core/res/res/drawable-mdpi/btn_check_off_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_selected_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_selected_holo_light.png
deleted file mode 100644
index 3fa45d9..0000000
--- a/core/res/res/drawable-mdpi/btn_check_off_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_dark.png
index 28bf7f6..6db6c5d 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_light.png
index bb2d314..595261f 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_dark.png
index 8cf4554..f1129ef 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_light.png
index ba37f93..c49dcc9 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_focused_holo_dark.png
index 1fca094..423076c 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_focused_holo_light.png
index 21c33f0..e8b9a3b 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_holo_dark.png
index ca4d509..e33fbab 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_holo_light.png
index 158f3a1..8fdb342 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
index 84733fb..6690f64 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
index 67a15d2..b7df43e 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_selected_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_selected_holo_dark.png
deleted file mode 100644
index 5b93f8b..0000000
--- a/core/res/res/drawable-mdpi/btn_check_on_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_selected_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_selected_holo_light.png
deleted file mode 100644
index 74ab250..0000000
--- a/core/res/res/drawable-mdpi/btn_check_on_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_group_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_group_holo_dark.9.png
new file mode 100644
index 0000000..9541252
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_group_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_group_holo_light.9.png b/core/res/res/drawable-mdpi/btn_group_holo_light.9.png
new file mode 100644
index 0000000..bf4f9b2
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_group_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_dark.png
deleted file mode 100644
index f937182..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_light.png
deleted file mode 100644
index 4c35fb3..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_disabled_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_dark.png
deleted file mode 100644
index af38a4f..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_light.png
deleted file mode 100644
index a368602..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_disabled_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_dark.png
deleted file mode 100644
index 695d0b9..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_light.png
deleted file mode 100644
index 6467bea..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_focused_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_dark.png
deleted file mode 100644
index 813a069..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_light.png
deleted file mode 100644
index fe80d69..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_focused_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_dark.png
deleted file mode 100644
index 5b6d906..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_light.png
deleted file mode 100644
index e5132ef..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_normal_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_dark.png
deleted file mode 100644
index e216d35..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_light.png
deleted file mode 100644
index ed3946a..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_normal_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off.png b/core/res/res/drawable-mdpi/btn_radio_off.png
index cf76ace..ef7130d 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_dark.png
new file mode 100644
index 0000000..480ef44
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_light.png
new file mode 100644
index 0000000..eaac916
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_dark.png
new file mode 100644
index 0000000..712b267
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_light.png
new file mode 100644
index 0000000..e692b38
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_dark.png
new file mode 100644
index 0000000..2f27022
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_light.png
new file mode 100644
index 0000000..20a98b3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_holo_dark.png
index a3cef04..93edad2 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_holo_light.png
index e8def55..c67e9fb 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_pressed.png b/core/res/res/drawable-mdpi/btn_radio_off_pressed.png
index e03561a..f7b77c3 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_pressed.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
index 1a9310b..46ebc0d6 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
index bc28b5b..8052955 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_selected.png b/core/res/res/drawable-mdpi/btn_radio_off_selected.png
index b3aa94e..5a0d4889 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_selected.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_selected.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_dark.png
deleted file mode 100644
index 2b0ddd1..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_light.png
deleted file mode 100644
index 745cf19..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_off_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on.png b/core/res/res/drawable-mdpi/btn_radio_on.png
index 5f978c0..e13e6396 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_dark.png
new file mode 100644
index 0000000..7bd4276
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_light.png
new file mode 100644
index 0000000..0473f84
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_dark.png
new file mode 100644
index 0000000..d92d7ee
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_light.png
new file mode 100644
index 0000000..f10cbd3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_dark.png
new file mode 100644
index 0000000..3ec97a3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_light.png
new file mode 100644
index 0000000..6624511
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_radio_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_holo_dark.png
index 9954500..7826205 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_holo_light.png
index fa67a43..ed5acc9 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_pressed.png b/core/res/res/drawable-mdpi/btn_radio_on_pressed.png
index a0636fe..ae50c20 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_pressed.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
index c15c310..fad9d2a 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
index aa07c5a..f5d5453 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_selected.png b/core/res/res/drawable-mdpi/btn_radio_on_selected.png
index b510d47..3e704aa 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_selected.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_selected.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_dark.png
deleted file mode 100644
index e96a74f..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_light.png
deleted file mode 100644
index c51c96c..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_on_selected_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_dark.png
deleted file mode 100644
index 9ab32d1..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_light.png
deleted file mode 100644
index 7175853..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_pressed_off_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_dark.png
deleted file mode 100644
index a6fa7b6..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_light.png
deleted file mode 100644
index e7a634d..0000000
--- a/core/res/res/drawable-mdpi/btn_radio_pressed_on_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/toast_frame.9.png b/core/res/res/drawable-mdpi/toast_frame.9.png
index 911f86d..08c4f86 100755
--- a/core/res/res/drawable-mdpi/toast_frame.9.png
+++ b/core/res/res/drawable-mdpi/toast_frame.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/toast_frame_holo.9.png b/core/res/res/drawable-mdpi/toast_frame_holo.9.png
new file mode 100755
index 0000000..911f86d
--- /dev/null
+++ b/core/res/res/drawable-mdpi/toast_frame_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable/btn_check_holo_dark.xml b/core/res/res/drawable/btn_check_holo_dark.xml
index a163c2e..cbdf44e 100644
--- a/core/res/res/drawable/btn_check_holo_dark.xml
+++ b/core/res/res/drawable/btn_check_holo_dark.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 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.
@@ -34,10 +34,10 @@
<item android:state_checked="true" android:state_focused="true"
android:state_enabled="true"
- android:drawable="@drawable/btn_check_on_selected_holo_dark" />
+ android:drawable="@drawable/btn_check_on_focused_holo_dark" />
<item android:state_checked="false" android:state_focused="true"
android:state_enabled="true"
- android:drawable="@drawable/btn_check_off_selected_holo_dark" />
+ android:drawable="@drawable/btn_check_off_focused_holo_dark" />
<item android:state_checked="false"
android:state_enabled="true"
diff --git a/core/res/res/drawable/btn_check_holo_light.xml b/core/res/res/drawable/btn_check_holo_light.xml
index 5c49456..c8c2bee 100644
--- a/core/res/res/drawable/btn_check_holo_light.xml
+++ b/core/res/res/drawable/btn_check_holo_light.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 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.
@@ -34,10 +34,10 @@
<item android:state_checked="true" android:state_focused="true"
android:state_enabled="true"
- android:drawable="@drawable/btn_check_on_selected_holo_light" />
+ android:drawable="@drawable/btn_check_on_focused_holo_light" />
<item android:state_checked="false" android:state_focused="true"
android:state_enabled="true"
- android:drawable="@drawable/btn_check_off_selected_holo_light" />
+ android:drawable="@drawable/btn_check_off_focused_holo_light" />
<item android:state_checked="false"
android:state_enabled="true"
diff --git a/core/res/res/drawable/btn_radio_holo_dark.xml b/core/res/res/drawable/btn_radio_holo_dark.xml
index 8984f6d..e35d570 100644
--- a/core/res/res/drawable/btn_radio_holo_dark.xml
+++ b/core/res/res/drawable/btn_radio_holo_dark.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 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.
@@ -16,20 +16,44 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_window_focused="false"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_on_holo_dark" />
<item android:state_checked="false" android:state_window_focused="false"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_off_holo_dark" />
<item android:state_checked="true" android:state_pressed="true"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_on_pressed_holo_dark" />
<item android:state_checked="false" android:state_pressed="true"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_off_pressed_holo_dark" />
<item android:state_checked="true" android:state_focused="true"
- android:drawable="@drawable/btn_radio_on_selected_holo_dark" />
+ android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_on_focused_holo_dark" />
<item android:state_checked="false" android:state_focused="true"
- android:drawable="@drawable/btn_radio_off_selected_holo_dark" />
+ android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_off_focused_holo_dark" />
- <item android:state_checked="false" android:drawable="@drawable/btn_radio_off_holo_dark" />
- <item android:state_checked="true" android:drawable="@drawable/btn_radio_on_holo_dark" />
+ <item android:state_checked="false" android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_off_holo_dark" />
+ <item android:state_checked="true" android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_on_holo_dark" />
+
+ <!-- Disabled states -->
+
+ <item android:state_checked="true" android:state_window_focused="false"
+ android:drawable="@drawable/btn_radio_on_disabled_holo_dark" />
+ <item android:state_checked="false" android:state_window_focused="false"
+ android:drawable="@drawable/btn_radio_off_disabled_holo_dark" />
+
+ <item android:state_checked="true" android:state_focused="true"
+ android:drawable="@drawable/btn_radio_on_disabled_focused_holo_dark" />
+ <item android:state_checked="false" android:state_focused="true"
+ android:drawable="@drawable/btn_radio_off_disabled_focused_holo_dark" />
+
+ <item android:state_checked="false" android:drawable="@drawable/btn_radio_off_disabled_holo_dark" />
+ <item android:state_checked="true" android:drawable="@drawable/btn_radio_on_disabled_holo_dark" />
+
</selector>
diff --git a/core/res/res/drawable/btn_radio_holo_light.xml b/core/res/res/drawable/btn_radio_holo_light.xml
index 001508c..e2f1f84 100644
--- a/core/res/res/drawable/btn_radio_holo_light.xml
+++ b/core/res/res/drawable/btn_radio_holo_light.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 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.
@@ -16,20 +16,44 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_window_focused="false"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_on_holo_light" />
<item android:state_checked="false" android:state_window_focused="false"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_off_holo_light" />
<item android:state_checked="true" android:state_pressed="true"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_on_pressed_holo_light" />
<item android:state_checked="false" android:state_pressed="true"
+ android:state_enabled="true"
android:drawable="@drawable/btn_radio_off_pressed_holo_light" />
<item android:state_checked="true" android:state_focused="true"
- android:drawable="@drawable/btn_radio_on_selected_holo_light" />
+ android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_on_focused_holo_light" />
<item android:state_checked="false" android:state_focused="true"
- android:drawable="@drawable/btn_radio_off_selected_holo_light" />
+ android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_off_focused_holo_light" />
- <item android:state_checked="false" android:drawable="@drawable/btn_radio_off_holo_light" />
- <item android:state_checked="true" android:drawable="@drawable/btn_radio_on_holo_light" />
+ <item android:state_checked="false" android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_off_holo_light" />
+ <item android:state_checked="true" android:state_enabled="true"
+ android:drawable="@drawable/btn_radio_on_holo_light" />
+
+ <!-- Disabled states -->
+
+ <item android:state_checked="true" android:state_window_focused="false"
+ android:drawable="@drawable/btn_radio_on_disabled_holo_light" />
+ <item android:state_checked="false" android:state_window_focused="false"
+ android:drawable="@drawable/btn_radio_off_disabled_holo_light" />
+
+ <item android:state_checked="true" android:state_focused="true"
+ android:drawable="@drawable/btn_radio_on_disabled_focused_holo_light" />
+ <item android:state_checked="false" android:state_focused="true"
+ android:drawable="@drawable/btn_radio_off_disabled_focused_holo_light" />
+
+ <item android:state_checked="false" android:drawable="@drawable/btn_radio_off_disabled_holo_light" />
+ <item android:state_checked="true" android:drawable="@drawable/btn_radio_on_disabled_holo_light" />
+
</selector>
diff --git a/core/res/res/layout-xlarge/keyguard_screen_password_landscape.xml b/core/res/res/layout-xlarge/keyguard_screen_password_landscape.xml
index 5ea43dc..c1149e3 100644
--- a/core/res/res/layout-xlarge/keyguard_screen_password_landscape.xml
+++ b/core/res/res/layout-xlarge/keyguard_screen_password_landscape.xml
@@ -61,6 +61,7 @@
android:textSize="24sp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@drawable/lockscreen_password_field_dark"
+ android:hint="@string/keyguard_password_entry_touch_hint"
android:textColor="#ffffffff"
/>
diff --git a/core/res/res/layout-xlarge/keyguard_screen_password_portrait.xml b/core/res/res/layout-xlarge/keyguard_screen_password_portrait.xml
index 8a059f5..fab69d8 100644
--- a/core/res/res/layout-xlarge/keyguard_screen_password_portrait.xml
+++ b/core/res/res/layout-xlarge/keyguard_screen_password_portrait.xml
@@ -57,6 +57,7 @@
android:layout_marginBottom="5dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@drawable/lockscreen_password_field_dark"
+ android:hint="@string/keyguard_password_entry_touch_hint"
android:textColor="#ffffffff"
/>
diff --git a/core/res/res/layout/transient_notification.xml b/core/res/res/layout/transient_notification.xml
index 12b67f1..21d58aa 100644
--- a/core/res/res/layout/transient_notification.xml
+++ b/core/res/res/layout/transient_notification.xml
@@ -22,7 +22,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:background="@drawable/toast_frame">
+ android:background="?android:attr/toastFrameBackground">
<TextView
android:id="@android:id/message"
diff --git a/core/res/res/menu/webview_copy.xml b/core/res/res/menu/webview_copy.xml
index 41ad06a..2761fec 100644
--- a/core/res/res/menu/webview_copy.xml
+++ b/core/res/res/menu/webview_copy.xml
@@ -18,26 +18,26 @@
<item android:id="@+id/copy"
android:icon="?android:attr/actionModeCopyDrawable"
android:title="@string/copy"
- android:showAsAction="always|withText"
+ android:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/share"
android:icon="@drawable/ic_menu_share"
android:title="@string/share"
- android:showAsAction="always|withText"
+ android:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/select_all"
android:title="@string/selectAll"
- android:showAsAction="always|withText"
+ android:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/find"
android:icon="@drawable/ic_menu_find"
android:title="@string/find"
- android:showAsAction="always|withText"
+ android:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/websearch"
android:icon="@drawable/ic_menu_search"
android:title="@string/websearch"
- android:showAsAction="always|withText"
+ android:showAsAction="ifRoom|withText"
/>
</menu>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index e76692a..c808a07 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -690,6 +690,9 @@
<!-- Style for buttons without an explicit border, often used in groups. -->
<attr name="borderlessButtonStyle" format="reference" />
+ <!-- Background to use for toasts -->
+ <attr name="toastFrameBackground" format="reference" />
+
<!-- ============================ -->
<!-- SearchView styles and assets -->
<!-- ============================ -->
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index e6552dfc..ae269df 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1279,7 +1279,7 @@
<public type="style" name="TextAppearance.StatusBar.EventContent.Title" id="0x01030068" />
<!-- ===============================================================
- Resources proposed for Honeycomb.
+ Resources added in version 11 of the platform (Honeycomb / 3.0).
=============================================================== -->
<eat-comment />
<public type="attr" name="allContactsName" />
@@ -1428,6 +1428,8 @@
<public type="attr" name="windowCloseOnTouchOutside" />
<public type="attr" name="datePickerStyle" />
<public type="attr" name="calendarViewStyle" />
+ <public type="attr" name="textEditSidePasteWindowLayout" />
+ <public type="attr" name="textEditSideNoPasteWindowLayout" />
<!-- A simple fade-in animation. -->
<public type="animator" name="fade_in" id="0x010b0000" />
@@ -1498,7 +1500,6 @@
<public type="style" name="Theme.NoTitleBar.OverlayActionModes" />
<public type="style" name="Theme.Holo" />
- <public type="style" name="Theme.Light.Holo" />
<public type="style" name="Theme.Holo.NoActionBar" />
<public type="style" name="Theme.Holo.NoActionBar.Fullscreen" />
<public type="style" name="Theme.Holo.Light" />
@@ -1633,8 +1634,6 @@
<public type="style" name="Widget.Holo.Light.CalendarView" />
<public type="style" name="Widget.DatePicker" />
<public type="style" name="Widget.Holo.DatePicker" />
- <public type="attr" name="textEditSidePasteWindowLayout" />
- <public type="attr" name="textEditSideNoPasteWindowLayout" />
<public type="string" name="selectTextMode" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 496e254..529111e 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1637,6 +1637,9 @@
Displayed in one line in a large font. -->
<string name="keyguard_password_enter_pin_code">Enter PIN code</string>
+ <!-- Displayed as hint in passwordEntry EditText on PasswordUnlockScreen [CHAR LIMIT=30]-->
+ <string name="keyguard_password_entry_touch_hint"><font size="17">Touch to enter password</font></string>
+
<!-- Instructions telling the user to enter their text password to unlock the keyguard.
Displayed in one line in a large font. -->
<string name="keyguard_password_enter_password_code">Enter password to unlock</string>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 4d7e2ce..36dec8e 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -1432,11 +1432,11 @@
<item name="divider">?android:attr/dividerVertical</item>
<item name="showDividers">middle</item>
<item name="dividerPadding">8dip</item>
- <item name="background">@android:drawable/btn_default_holo_dark</item>
+ <item name="background">@android:drawable/btn_group_holo_dark</item>
</style>
<style name="Holo.SegmentedButton" parent="SegmentedButton">
- <item name="android:background">@android:drawable/btn_default_holo_dark</item>
+ <item name="android:background">@android:drawable/btn_group_holo_dark</item>
</style>
<style name="Holo.ButtonBar.AlertDialog">
@@ -1817,7 +1817,7 @@
</style>
<style name="Holo.Light.ButtonBar" parent="Holo.ButtonBar">
- <item name="android:background">@android:drawable/btn_default_holo_light</item>
+ <item name="android:background">@android:drawable/btn_group_holo_light</item>
</style>
<style name="Holo.Light.ButtonBar.AlertDialog">
@@ -1825,7 +1825,7 @@
</style>
<style name="Holo.Light.SegmentedButton" parent="SegmentedButton">
- <item name="android:background">@android:drawable/btn_default_holo_light</item>
+ <item name="android:background">@android:drawable/btn_group_holo_light</item>
</style>
<style name="Widget.Holo.Light.TextView" parent="Widget.TextView">
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index e6e23aa..08542bf 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -149,6 +149,8 @@
<item name="alertDialogTheme">@android:style/Theme.Dialog.Alert</item>
<item name="alertDialogCenterButtons">true</item>
<item name="alertDialogIcon">@android:drawable/ic_dialog_alert</item>
+
+ <item name="toastFrameBackground">@android:drawable/toast_frame</item>
<!-- Panel attributes -->
<item name="panelBackground">@android:drawable/menu_background</item>
@@ -863,6 +865,8 @@
<item name="alertDialogTheme">@android:style/Theme.Holo.Dialog.Alert</item>
<item name="alertDialogCenterButtons">false</item>
<item name="alertDialogIcon">@android:drawable/ic_dialog_alert_holo_dark</item>
+
+ <item name="toastFrameBackground">@android:drawable/toast_frame_holo</item>
<!-- Panel attributes -->
<item name="panelBackground">@android:drawable/menu_background</item>
@@ -1132,6 +1136,8 @@
<item name="alertDialogCenterButtons">false</item>
<item name="alertDialogTheme">@android:style/Theme.Holo.Light.Dialog.Alert</item>
<item name="alertDialogIcon">@android:drawable/ic_dialog_alert_holo_light</item>
+
+ <item name="toastFrameBackground">@android:drawable/toast_frame_holo</item>
<!-- Panel attributes -->
<item name="panelBackground">@android:drawable/menu_background</item>
@@ -1271,10 +1277,6 @@
</style>
- <!-- Development legacy name; if you're using this, switch. -->
- <style name="Theme.Light.Holo" parent="Theme.Holo.Light">
- </style>
-
<!-- Variant of the holographic (dark) theme with no action bar. -->
<style name="Theme.Holo.NoActionBar">
<item name="android:windowActionBar">false</item>
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 89e725a..00b06e0 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -1240,7 +1240,11 @@
VertexMode(int nativeInt) {
this.nativeInt = nativeInt;
}
- final int nativeInt;
+
+ /**
+ * @hide
+ */
+ public final int nativeInt;
}
/**
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index 24585d5..0a9335f 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -162,6 +162,9 @@
PathCache pathCache;
RoundRectShapeCache roundRectShapeCache;
CircleShapeCache circleShapeCache;
+ OvalShapeCache ovalShapeCache;
+ RectShapeCache rectShapeCache;
+ ArcShapeCache arcShapeCache;
PatchCache patchCache;
TextDropShadowCache dropShadowCache;
FboCache fboCache;
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index df446f9..ffd3be4 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -107,6 +107,8 @@
"DrawRect",
"DrawRoundRect",
"DrawCircle",
+ "DrawOval",
+ "DrawArc",
"DrawPath",
"DrawLines",
"DrawText",
@@ -323,6 +325,7 @@
renderer.drawBitmapMesh(bitmap, meshWidth, meshHeight, vertices, colors, getPaint());
}
+ break;
case DrawPatch: {
int32_t* xDivs = NULL;
int32_t* yDivs = NULL;
@@ -358,6 +361,15 @@
renderer.drawCircle(getFloat(), getFloat(), getFloat(), getPaint());
}
break;
+ case DrawOval: {
+ renderer.drawOval(getFloat(), getFloat(), getFloat(), getFloat(), getPaint());
+ }
+ break;
+ case DrawArc: {
+ renderer.drawArc(getFloat(), getFloat(), getFloat(), getFloat(),
+ getFloat(), getFloat(), getInt() == 1, getPaint());
+ }
+ break;
case DrawPath: {
renderer.drawPath(getPath(), getPaint());
}
@@ -473,6 +485,12 @@
SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
mSaveCount = 1;
mSnapshot->setClip(0.0f, 0.0f, mWidth, mHeight);
+ mRestoreSaveCount = -1;
+}
+
+void DisplayListRenderer::finish() {
+ insertRestoreToCount();
+ OpenGLRenderer::finish();
}
void DisplayListRenderer::acquireContext() {
@@ -497,8 +515,7 @@
}
void DisplayListRenderer::restoreToCount(int saveCount) {
- addOp(DisplayList::RestoreToCount);
- addInt(saveCount);
+ mRestoreSaveCount = saveCount;
OpenGLRenderer::restoreToCount(saveCount);
}
@@ -658,6 +675,22 @@
addPaint(paint);
}
+void DisplayListRenderer::drawOval(float left, float top, float right, float bottom,
+ SkPaint* paint) {
+ addOp(DisplayList::DrawOval);
+ addBounds(left, top, right, bottom);
+ addPaint(paint);
+}
+
+void DisplayListRenderer::drawArc(float left, float top, float right, float bottom,
+ float startAngle, float sweepAngle, bool useCenter, SkPaint* paint) {
+ addOp(DisplayList::DrawOval);
+ addBounds(left, top, right, bottom);
+ addPoint(startAngle, sweepAngle);
+ addInt(useCenter ? 1 : 0);
+ addPaint(paint);
+}
+
void DisplayListRenderer::drawPath(SkPath* path, SkPaint* paint) {
addOp(DisplayList::DrawPath);
addPath(path);
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 7f9db8a..35bb163 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -113,6 +113,8 @@
DrawRect,
DrawRoundRect,
DrawCircle,
+ DrawOval,
+ DrawArc,
DrawPath,
DrawLines,
DrawText,
@@ -238,6 +240,7 @@
void setViewport(int width, int height);
void prepare(bool opaque);
+ void finish();
void acquireContext();
void releaseContext();
@@ -278,6 +281,9 @@
void drawRoundRect(float left, float top, float right, float bottom,
float rx, float ry, SkPaint* paint);
void drawCircle(float x, float y, float radius, SkPaint* paint);
+ void drawOval(float left, float top, float right, float bottom, SkPaint* paint);
+ void drawArc(float left, float top, float right, float bottom,
+ float startAngle, float sweepAngle, bool useCenter, SkPaint* paint);
void drawPath(SkPath* path, SkPaint* paint);
void drawLines(float* points, int count, SkPaint* paint);
void drawText(const char* text, int bytesCount, int count, float x, float y, SkPaint* paint);
@@ -318,7 +324,16 @@
}
private:
+ void insertRestoreToCount() {
+ if (mRestoreSaveCount >= 0) {
+ mWriter.writeInt(DisplayList::RestoreToCount);
+ addInt(mRestoreSaveCount);
+ mRestoreSaveCount = -1;
+ }
+ }
+
inline void addOp(DisplayList::Op drawOp) {
+ insertRestoreToCount();
mWriter.writeInt(drawOp);
}
@@ -461,6 +476,8 @@
DisplayList *mDisplayList;
+ int mRestoreSaveCount;
+
friend class DisplayList;
}; // class DisplayListRenderer
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 92aa4bd..e8dc9f6 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1094,10 +1094,10 @@
SkXfermode::Mode mode;
getAlphaAndMode(paint, &alpha, &mode);
- // TODO: Support the colors array
const uint32_t count = meshWidth * meshHeight * 6;
- TextureVertex mesh[count];
+ // TODO: Support the colors array
+ TextureVertex mesh[count];
TextureVertex* vertex = mesh;
for (int32_t y = 0; y < meshHeight; y++) {
for (int32_t x = 0; x < meshWidth; x++) {
@@ -1360,14 +1360,7 @@
drawColorRect(clip.left, clip.top, clip.right, clip.bottom, color, mode, true);
}
-void OpenGLRenderer::drawRoundRect(float left, float top, float right, float bottom,
- float rx, float ry, SkPaint* paint) {
- if (mSnapshot->isIgnored()) return;
-
- glActiveTexture(gTextureUnits[0]);
-
- const PathTexture* texture = mCaches.roundRectShapeCache.getRoundRect(
- right - left, bottom - top, rx, ry, paint);
+void OpenGLRenderer::drawShape(float left, float top, const PathTexture* texture, SkPaint* paint) {
if (!texture) return;
const AutoTexture autoCleanup(texture);
@@ -1377,22 +1370,62 @@
drawPathTexture(texture, x, y, paint);
}
+void OpenGLRenderer::drawRoundRect(float left, float top, float right, float bottom,
+ float rx, float ry, SkPaint* paint) {
+ if (mSnapshot->isIgnored()) return;
+
+ glActiveTexture(gTextureUnits[0]);
+ const PathTexture* texture = mCaches.roundRectShapeCache.getRoundRect(
+ right - left, bottom - top, rx, ry, paint);
+ drawShape(left, top, texture, paint);
+}
+
void OpenGLRenderer::drawCircle(float x, float y, float radius, SkPaint* paint) {
if (mSnapshot->isIgnored()) return;
glActiveTexture(gTextureUnits[0]);
-
const PathTexture* texture = mCaches.circleShapeCache.getCircle(radius, paint);
- if (!texture) return;
- const AutoTexture autoCleanup(texture);
+ drawShape(x - radius, y - radius, texture, paint);
+}
- const float left = (x - radius) + texture->left - texture->offset;
- const float top = (y - radius) + texture->top - texture->offset;
+void OpenGLRenderer::drawOval(float left, float top, float right, float bottom, SkPaint* paint) {
+ if (mSnapshot->isIgnored()) return;
- drawPathTexture(texture, left, top, paint);
+ glActiveTexture(gTextureUnits[0]);
+ const PathTexture* texture = mCaches.ovalShapeCache.getOval(right - left, bottom - top, paint);
+ drawShape(left, top, texture, paint);
+}
+
+void OpenGLRenderer::drawArc(float left, float top, float right, float bottom,
+ float startAngle, float sweepAngle, bool useCenter, SkPaint* paint) {
+ if (mSnapshot->isIgnored()) return;
+
+ if (fabs(sweepAngle) >= 360.0f) {
+ drawOval(left, top, right, bottom, paint);
+ return;
+ }
+
+ glActiveTexture(gTextureUnits[0]);
+ const PathTexture* texture = mCaches.arcShapeCache.getArc(right - left, bottom - top,
+ startAngle, sweepAngle, useCenter, paint);
+ drawShape(left, top, texture, paint);
+}
+
+void OpenGLRenderer::drawRectAsShape(float left, float top, float right, float bottom,
+ SkPaint* paint) {
+ if (mSnapshot->isIgnored()) return;
+
+ glActiveTexture(gTextureUnits[0]);
+ const PathTexture* texture = mCaches.rectShapeCache.getRect(right - left, bottom - top, paint);
+ drawShape(left, top, texture, paint);
}
void OpenGLRenderer::drawRect(float left, float top, float right, float bottom, SkPaint* p) {
+ if (p->getStyle() != SkPaint::kFill_Style) {
+ drawRectAsShape(left, top, right, bottom, p);
+ return;
+ }
+
if (quickReject(left, top, right, bottom)) {
return;
}
@@ -1706,12 +1739,17 @@
if (underlineWidth > 0.0f) {
const float textSize = paint->getTextSize();
- const float strokeWidth = textSize * kStdUnderline_Thickness;
+ // TODO: Support stroke width < 1.0f when we have AA lines
+ const float strokeWidth = fmax(textSize * kStdUnderline_Thickness, 1.0f);
const float left = x - offsetX;
float top = 0.0f;
- const int pointsCount = 4 * (flags & SkPaint::kStrikeThruText_Flag ? 2 : 1);
+ int linesCount = 0;
+ if (flags & SkPaint::kUnderlineText_Flag) linesCount++;
+ if (flags & SkPaint::kStrikeThruText_Flag) linesCount++;
+
+ const int pointsCount = 4 * linesCount;
float points[pointsCount];
int currentPoint = 0;
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 42e93ad..eec3750 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -112,6 +112,9 @@
virtual void drawRoundRect(float left, float top, float right, float bottom,
float rx, float ry, SkPaint* paint);
virtual void drawCircle(float x, float y, float radius, SkPaint* paint);
+ virtual void drawOval(float left, float top, float right, float bottom, SkPaint* paint);
+ virtual void drawArc(float left, float top, float right, float bottom,
+ float startAngle, float sweepAngle, bool useCenter, SkPaint* paint);
virtual void drawPath(SkPath* path, SkPaint* paint);
virtual void drawLines(float* points, int count, SkPaint* paint);
virtual void drawText(const char* text, int bytesCount, int count, float x, float y,
@@ -277,6 +280,9 @@
void drawColorRect(float left, float top, float right, float bottom,
int color, SkXfermode::Mode mode, bool ignoreTransform = false);
+ void drawShape(float left, float top, const PathTexture* texture, SkPaint* paint);
+ void drawRectAsShape(float left, float top, float right, float bottom, SkPaint* p);
+
/**
* Draws a textured rectangle with the specified texture. The specified coordinates
* are transformed by the current snapshot's transform matrix.
diff --git a/libs/hwui/ShapeCache.cpp b/libs/hwui/ShapeCache.cpp
index b78eecb..0d7cd9c 100644
--- a/libs/hwui/ShapeCache.cpp
+++ b/libs/hwui/ShapeCache.cpp
@@ -68,5 +68,82 @@
return texture;
}
+///////////////////////////////////////////////////////////////////////////////
+// Ovals
+///////////////////////////////////////////////////////////////////////////////
+
+OvalShapeCache::OvalShapeCache(): ShapeCache<OvalShapeCacheEntry>(
+ "oval", PROPERTY_SHAPE_CACHE_SIZE, DEFAULT_SHAPE_CACHE_SIZE) {
+}
+
+PathTexture* OvalShapeCache::getOval(float width, float height, SkPaint* paint) {
+ OvalShapeCacheEntry entry(width, height, paint);
+ PathTexture* texture = get(entry);
+
+ if (!texture) {
+ SkPath path;
+ SkRect r;
+ r.set(0.0f, 0.0f, width, height);
+ path.addOval(r, SkPath::kCW_Direction);
+
+ texture = addTexture(entry, &path, paint);
+ }
+
+ return texture;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Rects
+///////////////////////////////////////////////////////////////////////////////
+
+RectShapeCache::RectShapeCache(): ShapeCache<RectShapeCacheEntry>(
+ "rect", PROPERTY_SHAPE_CACHE_SIZE, DEFAULT_SHAPE_CACHE_SIZE) {
+}
+
+PathTexture* RectShapeCache::getRect(float width, float height, SkPaint* paint) {
+ RectShapeCacheEntry entry(width, height, paint);
+ PathTexture* texture = get(entry);
+
+ if (!texture) {
+ SkPath path;
+ path.addRect(0.0f, 0.0f, width, height, SkPath::kCW_Direction);
+
+ texture = addTexture(entry, &path, paint);
+ }
+
+ return texture;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Arcs
+///////////////////////////////////////////////////////////////////////////////
+
+ArcShapeCache::ArcShapeCache(): ShapeCache<ArcShapeCacheEntry>(
+ "arc", PROPERTY_SHAPE_CACHE_SIZE, DEFAULT_SHAPE_CACHE_SIZE) {
+}
+
+PathTexture* ArcShapeCache::getArc(float width, float height,
+ float startAngle, float sweepAngle, bool useCenter, SkPaint* paint) {
+ ArcShapeCacheEntry entry(width, height, startAngle, sweepAngle, useCenter, paint);
+ PathTexture* texture = get(entry);
+
+ if (!texture) {
+ SkPath path;
+ SkRect r;
+ r.set(0.0f, 0.0f, width, height);
+ if (useCenter) {
+ path.moveTo(r.centerX(), r.centerY());
+ }
+ path.arcTo(r, startAngle, sweepAngle, !useCenter);
+ if (useCenter) {
+ path.close();
+ }
+
+ texture = addTexture(entry, &path, paint);
+ }
+
+ return texture;
+}
+
}; // namespace uirenderer
}; // namespace android
diff --git a/libs/hwui/ShapeCache.h b/libs/hwui/ShapeCache.h
index c627931..e535466 100644
--- a/libs/hwui/ShapeCache.h
+++ b/libs/hwui/ShapeCache.h
@@ -76,6 +76,7 @@
struct ShapeCacheEntry {
enum ShapeType {
kShapeNone,
+ kShapeRect,
kShapeRoundRect,
kShapeCircle,
kShapeOval,
@@ -216,6 +217,122 @@
uint32_t mRadius;
}; // CircleShapeCacheEntry
+struct OvalShapeCacheEntry: public ShapeCacheEntry {
+ OvalShapeCacheEntry(float width, float height, SkPaint* paint):
+ ShapeCacheEntry(ShapeCacheEntry::kShapeOval, paint) {
+ mWidth = *(uint32_t*) &width;
+ mHeight = *(uint32_t*) &height;
+ }
+
+ OvalShapeCacheEntry(): ShapeCacheEntry() {
+ mWidth = mHeight = 0;
+ }
+
+ OvalShapeCacheEntry(const OvalShapeCacheEntry& entry):
+ ShapeCacheEntry(entry) {
+ mWidth = entry.mWidth;
+ mHeight = entry.mHeight;
+ }
+
+ bool lessThan(const ShapeCacheEntry& r) const {
+ const OvalShapeCacheEntry& rhs = (const OvalShapeCacheEntry&) r;
+ LTE_INT(mWidth) {
+ LTE_INT(mHeight) {
+ return false;
+ }
+ }
+ return false;
+ }
+
+private:
+ uint32_t mWidth;
+ uint32_t mHeight;
+}; // OvalShapeCacheEntry
+
+struct RectShapeCacheEntry: public ShapeCacheEntry {
+ RectShapeCacheEntry(float width, float height, SkPaint* paint):
+ ShapeCacheEntry(ShapeCacheEntry::kShapeRect, paint) {
+ mWidth = *(uint32_t*) &width;
+ mHeight = *(uint32_t*) &height;
+ }
+
+ RectShapeCacheEntry(): ShapeCacheEntry() {
+ mWidth = mHeight = 0;
+ }
+
+ RectShapeCacheEntry(const RectShapeCacheEntry& entry):
+ ShapeCacheEntry(entry) {
+ mWidth = entry.mWidth;
+ mHeight = entry.mHeight;
+ }
+
+ bool lessThan(const ShapeCacheEntry& r) const {
+ const RectShapeCacheEntry& rhs = (const RectShapeCacheEntry&) r;
+ LTE_INT(mWidth) {
+ LTE_INT(mHeight) {
+ return false;
+ }
+ }
+ return false;
+ }
+
+private:
+ uint32_t mWidth;
+ uint32_t mHeight;
+}; // RectShapeCacheEntry
+
+struct ArcShapeCacheEntry: public ShapeCacheEntry {
+ ArcShapeCacheEntry(float width, float height, float startAngle, float sweepAngle,
+ bool useCenter, SkPaint* paint):
+ ShapeCacheEntry(ShapeCacheEntry::kShapeArc, paint) {
+ mWidth = *(uint32_t*) &width;
+ mHeight = *(uint32_t*) &height;
+ mStartAngle = *(uint32_t*) &startAngle;
+ mSweepAngle = *(uint32_t*) &sweepAngle;
+ mUseCenter = useCenter ? 1 : 0;
+ }
+
+ ArcShapeCacheEntry(): ShapeCacheEntry() {
+ mWidth = 0;
+ mHeight = 0;
+ mStartAngle = 0;
+ mSweepAngle = 0;
+ mUseCenter = 0;
+ }
+
+ ArcShapeCacheEntry(const ArcShapeCacheEntry& entry):
+ ShapeCacheEntry(entry) {
+ mWidth = entry.mWidth;
+ mHeight = entry.mHeight;
+ mStartAngle = entry.mStartAngle;
+ mSweepAngle = entry.mSweepAngle;
+ mUseCenter = entry.mUseCenter;
+ }
+
+ bool lessThan(const ShapeCacheEntry& r) const {
+ const ArcShapeCacheEntry& rhs = (const ArcShapeCacheEntry&) r;
+ LTE_INT(mWidth) {
+ LTE_INT(mHeight) {
+ LTE_INT(mStartAngle) {
+ LTE_INT(mSweepAngle) {
+ LTE_INT(mUseCenter) {
+ return false;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+private:
+ uint32_t mWidth;
+ uint32_t mHeight;
+ uint32_t mStartAngle;
+ uint32_t mSweepAngle;
+ uint32_t mUseCenter;
+}; // ArcShapeCacheEntry
+
/**
* A simple LRU shape cache. The cache has a maximum size expressed in bytes.
* Any texture added to the cache causing the cache to grow beyond the maximum
@@ -289,8 +406,29 @@
CircleShapeCache();
PathTexture* getCircle(float radius, SkPaint* paint);
-}; // class RoundRectShapeCache
+}; // class CircleShapeCache
+class OvalShapeCache: public ShapeCache<OvalShapeCacheEntry> {
+public:
+ OvalShapeCache();
+
+ PathTexture* getOval(float width, float height, SkPaint* paint);
+}; // class OvalShapeCache
+
+class RectShapeCache: public ShapeCache<RectShapeCacheEntry> {
+public:
+ RectShapeCache();
+
+ PathTexture* getRect(float width, float height, SkPaint* paint);
+}; // class RectShapeCache
+
+class ArcShapeCache: public ShapeCache<ArcShapeCacheEntry> {
+public:
+ ArcShapeCache();
+
+ PathTexture* getArc(float width, float height, float startAngle, float sweepAngle,
+ bool useCenter, SkPaint* paint);
+}; // class ArcShapeCache
///////////////////////////////////////////////////////////////////////////////
// Constructors/destructor
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index 6fc2ddb..e560b8f 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -60,7 +60,7 @@
mCache.setOnEntryRemovedListener(this);
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &mMaxTextureSize);
- LOGD(" Maximum texture dimension is %d pixels", mMaxTextureSize);
+ INIT_LOGD(" Maximum texture dimension is %d pixels", mMaxTextureSize);
mDebugEnabled = readDebugLevel() & kDebugCaches;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessController.java
index 521467a..b794826 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessController.java
@@ -80,7 +80,7 @@
setMode(automatic ? Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
: Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
if (!automatic) {
- final int val = value + value + MINIMUM_BACKLIGHT;
+ final int val = value + MINIMUM_BACKLIGHT;
setBrightness(val);
if (!tracking) {
AsyncTask.execute(new Runnable() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index a3a58ed..c2f74f0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -564,17 +564,28 @@
if (DEBUG) Slog.d(TAG, "hiding shadows (lights on)");
mBarContents.setVisibility(View.VISIBLE);
mShadow.setVisibility(View.GONE);
+ notifyLightsChanged(true);
break;
case MSG_HIDE_CHROME:
if (DEBUG) Slog.d(TAG, "showing shadows (lights out)");
animateCollapse();
mBarContents.setVisibility(View.GONE);
mShadow.setVisibility(View.VISIBLE);
+ notifyLightsChanged(false);
break;
}
}
}
+ private void notifyLightsChanged(boolean shown) {
+ try {
+ Slog.d(TAG, "lights " + (shown?"on":"out"));
+ mWindowManager.statusBarVisibilityChanged(
+ shown ? View.STATUS_BAR_VISIBLE : View.STATUS_BAR_HIDDEN);
+ } catch (RemoteException ex) {
+ }
+ }
+
public void addIcon(String slot, int index, int viewIndex, StatusBarIcon icon) {
if (DEBUG) Slog.d(TAG, "addIcon(" + slot + ") -> " + icon);
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index c313713b..6a1d199 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -885,15 +885,7 @@
final Menu parentMenu = subMenu.getRootMenu();
final PanelFeatureState panel = findMenuPanel(parentMenu);
- /*
- * Use the panel open state to determine whether this is coming from an open panel
- * or an action button. If it's an open panel we want to use MenuDialogHelper.
- * If it's closed we want to grab the relevant view and create a popup anchored to it.
- */
- if (panel.isOpen) {
- // The window manager will give us a valid window token
- new MenuDialogHelper(subMenu).show(null);
- } else if (hasFeature(FEATURE_ACTION_BAR)) {
+ if (hasFeature(FEATURE_ACTION_BAR) && panel.featureId == FEATURE_OPTIONS_PANEL) {
mDecor.post(new Runnable() {
public void run() {
mActionButtonPopup = new ActionButtonSubmenu(getContext(), subMenu);
@@ -904,6 +896,9 @@
}
}
});
+ } else {
+ // The window manager will give us a valid window token
+ new MenuDialogHelper(subMenu).show(null);
}
return true;
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 747242f..67e0e67 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -34,6 +34,7 @@
import android.database.ContentObserver;
import android.graphics.PixelFormat;
import android.graphics.Rect;
+import android.os.Binder;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
@@ -270,7 +271,10 @@
int mPointerLocationMode = 0;
PointerLocationView mPointerLocationView = null;
InputChannel mPointerLocationInputChannel;
-
+
+ // The last window we were told about in focusChanged.
+ WindowState mFocusedWindow;
+
private final InputHandler mPointerLocationInputHandler = new BaseInputHandler() {
@Override
public void handleMotion(MotionEvent event, InputQueue.FinishedCallback finishedCallback) {
@@ -1953,7 +1957,9 @@
mKeyguardMediator.setHidden(false);
}
}
-
+
+ updateSystemUiVisibility();
+
// update since mAllowLockscreenWhenOn might have changed
updateLockScreenTimeout();
return changes;
@@ -1993,6 +1999,11 @@
return true;
}
+ public void focusChanged(WindowState lastFocus, WindowState newFocus) {
+ mFocusedWindow = newFocus;
+ updateSystemUiVisibility();
+ }
+
/** {@inheritDoc} */
public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) {
// lid changed state
@@ -2481,10 +2492,12 @@
return mSeascapeRotation;
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
//return either landscape rotation based on the sensor
- mOrientationListener.setAllow180Rotation(false);
+ mOrientationListener.setAllow180Rotation(
+ isLandscapeOrSeascape(Surface.ROTATION_180));
return getCurrentLandscapeRotation(lastRotation);
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:
- mOrientationListener.setAllow180Rotation(true);
+ mOrientationListener.setAllow180Rotation(
+ !isLandscapeOrSeascape(Surface.ROTATION_180));
return getCurrentPortraitRotation(lastRotation);
}
@@ -2836,6 +2849,34 @@
return mScreenOn;
}
+ private void updateSystemUiVisibility() {
+ // If there is no window focused, there will be nobody to handle the events
+ // anyway, so just hang on in whatever state we're in until things settle down.
+ if (mFocusedWindow != null) {
+ final int visibility = mFocusedWindow.getAttrs().systemUiVisibility;
+ mHandler.post(new Runnable() {
+ public void run() {
+ if (mStatusBarService == null) {
+ mStatusBarService = IStatusBarService.Stub.asInterface(
+ ServiceManager.getService("statusbar"));
+ }
+ if (mStatusBarService != null) {
+ // need to assume status bar privileges to invoke lights on
+ long origId = Binder.clearCallingIdentity();
+ try {
+ mStatusBarService.setSystemUiVisibility(visibility);
+ } catch (RemoteException e) {
+ // not much to be done
+ mStatusBarService = null;
+ } finally {
+ Binder.restoreCallingIdentity(origId);
+ }
+ }
+ }
+ });
+ }
+ }
+
public void dump(String prefix, FileDescriptor fd, PrintWriter pw, String[] args) {
pw.print(prefix); pw.print("mSafeMode="); pw.print(mSafeMode);
pw.print(" mSystemRead="); pw.println(mSystemReady);
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java
index 4931cc7..5a36417 100644
--- a/services/java/com/android/server/AlarmManagerService.java
+++ b/services/java/com/android/server/AlarmManagerService.java
@@ -661,7 +661,8 @@
remove(mTimeTickSender);
mClockReceiver.scheduleTimeTickEvent();
Intent intent = new Intent(Intent.ACTION_TIME_CHANGED);
- intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
+ | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
mContext.sendBroadcast(intent);
}
diff --git a/services/java/com/android/server/LightsService.java b/services/java/com/android/server/LightsService.java
index 9b57735..21f2bcf 100644
--- a/services/java/com/android/server/LightsService.java
+++ b/services/java/com/android/server/LightsService.java
@@ -24,12 +24,12 @@
import android.os.Message;
import android.util.Slog;
-import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class LightsService {
private static final String TAG = "LightsService";
+ private static final boolean DEBUG = false;
static final int LIGHT_ID_BACKLIGHT = 0;
static final int LIGHT_ID_KEYBOARD = 1;
@@ -115,6 +115,8 @@
private void setLightLocked(int color, int mode, int onMS, int offMS, int brightnessMode) {
if (color != mColor || mode != mMode || onMS != mOnMS || offMS != mOffMS) {
+ if (DEBUG) Slog.v(TAG, "setLight #" + mId + ": color=#"
+ + Integer.toHexString(color));
mColor = color;
mMode = mode;
mOnMS = onMS;
diff --git a/services/java/com/android/server/StatusBarManagerService.java b/services/java/com/android/server/StatusBarManagerService.java
index cbfa4ee..50ea3fa 100644
--- a/services/java/com/android/server/StatusBarManagerService.java
+++ b/services/java/com/android/server/StatusBarManagerService.java
@@ -32,6 +32,7 @@
import android.os.Handler;
import android.os.SystemClock;
import android.util.Slog;
+import android.view.View;
import com.android.internal.statusbar.IStatusBar;
import com.android.internal.statusbar.IStatusBarService;
@@ -308,10 +309,11 @@
* app keeps trying to turn it on. For now they can just fight it out. Having
* these two separte inputs will allow us to keep that change local to here. --joeo
*/
- public void setLightsOn(boolean lightsOn) {
+ public void setSystemUiVisibility(int vis) {
enforceStatusBarService();
synchronized (mLock) {
+ final boolean lightsOn = (vis & View.STATUS_BAR_HIDDEN) == 0;
updateLightsOnLocked(lightsOn);
}
}
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index d2a1786..eeb224c 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -396,6 +396,8 @@
int mLastRotationFlags;
ArrayList<IRotationWatcher> mRotationWatchers
= new ArrayList<IRotationWatcher>();
+ int mDeferredRotation;
+ int mDeferredRotationAnimFlags;
boolean mLayoutNeeded = true;
boolean mAnimationPending = false;
@@ -516,10 +518,6 @@
ArrayList<WindowState> mNotifiedWindows;
boolean mDragInProgress;
- boolean mPerformDeferredRotation;
- int mRotation;
- int mAnimFlags;
-
private final Region mTmpRegion = new Region();
DragState(IBinder token, Surface surface, int flags, IBinder localWin) {
@@ -541,7 +539,6 @@
mData = null;
mThumbOffsetX = mThumbOffsetY = 0;
mNotifiedWindows = null;
- mPerformDeferredRotation = false;
}
void register() {
@@ -683,24 +680,15 @@
mInputMonitor.setUpdateInputWindowsNeededLw();
mInputMonitor.updateInputWindowsLw();
- // Retain the parameters of any deferred rotation operation so
- // that we can perform it after the reset / unref of the drag state
- final boolean performRotation = mPerformDeferredRotation;
- final int rotation = mRotation;
- final int animFlags = mAnimFlags;
-
// free our resources and drop all the object references
mDragState.reset();
mDragState = null;
- // Now that we've officially ended the drag, execute any
- // deferred rotation
- if (performRotation) {
- if (DEBUG_ORIENTATION) Slog.d(TAG, "Performing post-drag rotation");
- boolean changed = setRotationUncheckedLocked(rotation, animFlags, false);
- if (changed) {
- sendNewConfiguration();
- }
+ if (DEBUG_ORIENTATION) Slog.d(TAG, "Performing post-drag rotation");
+ boolean changed = setRotationUncheckedLocked(
+ WindowManagerPolicy.USE_LAST_ROTATION, 0, false);
+ if (changed) {
+ sendNewConfiguration();
}
}
@@ -836,12 +824,6 @@
return touchedWin;
}
-
- void setDeferredRotation(int rotation, int animFlags) {
- mRotation = rotation;
- mAnimFlags = animFlags;
- mPerformDeferredRotation = true;
- }
}
DragState mDragState = null;
@@ -5168,21 +5150,30 @@
* MUST CALL setNewConfiguration() TO UNFREEZE THE SCREEN.
*/
public boolean setRotationUncheckedLocked(int rotation, int animFlags, boolean inTransaction) {
- if (mDragState != null) {
+ if (mDragState != null || mScreenRotationAnimation != null) {
// Potential rotation during a drag. Don't do the rotation now, but make
// a note to perform the rotation later.
- if (DEBUG_ORIENTATION) Slog.v(TAG, "Deferring rotation during drag");
- mDragState.setDeferredRotation(rotation, animFlags);
+ if (DEBUG_ORIENTATION) Slog.v(TAG, "Deferring rotation.");
+ if (rotation != WindowManagerPolicy.USE_LAST_ROTATION) {
+ mDeferredRotation = rotation;
+ mDeferredRotationAnimFlags = animFlags;
+ }
return false;
}
boolean changed;
if (rotation == WindowManagerPolicy.USE_LAST_ROTATION) {
+ if (mDeferredRotation != WindowManagerPolicy.USE_LAST_ROTATION) {
+ rotation = mDeferredRotation;
+ mRequestedRotation = rotation;
+ mLastRotationFlags = mDeferredRotationAnimFlags;
+ }
rotation = mRequestedRotation;
} else {
mRequestedRotation = rotation;
mLastRotationFlags = animFlags;
}
+ mDeferredRotation = WindowManagerPolicy.USE_LAST_ROTATION;
if (DEBUG_ORIENTATION) Slog.v(TAG, "Overwriting rotation value from " + rotation);
rotation = mPolicy.rotationForOrientationLw(mForcedAppOrientation,
mRotation, mDisplayEnabled);
@@ -8891,6 +8882,8 @@
// Ignore if process has died.
}
}
+
+ mPolicy.focusChanged(lastFocus, newFocus);
}
} break;
@@ -9515,7 +9508,7 @@
final AppWindowToken atoken = win.mAppToken;
final boolean gone = win.mViewVisibility == View.GONE
|| !win.mRelayoutCalled
- || win.mRootToken.hidden
+ || (atoken == null && win.mRootToken.hidden)
|| (atoken != null && atoken.hiddenRequested)
|| win.mAttachedHidden
|| win.mExiting || win.mDestroying;
@@ -9634,6 +9627,7 @@
boolean focusDisplayed = false;
boolean animating = false;
boolean createWatermark = false;
+ boolean updateRotation = false;
if (mFxSession == null) {
mFxSession = new SurfaceSession();
@@ -9731,6 +9725,7 @@
animating = true;
} else {
mScreenRotationAnimation = null;
+ updateRotation = true;
}
}
}
@@ -10313,11 +10308,8 @@
+ ": new=" + w.mShownFrame + ", old="
+ w.mLastShownFrame);
- boolean resize;
int width, height;
if ((w.mAttrs.flags & w.mAttrs.FLAG_SCALED) != 0) {
- resize = w.mLastRequestedWidth != w.mRequestedWidth ||
- w.mLastRequestedHeight != w.mRequestedHeight;
// for a scaled surface, we just want to use
// the requested size.
width = w.mRequestedWidth;
@@ -10325,58 +10317,61 @@
w.mLastRequestedWidth = width;
w.mLastRequestedHeight = height;
w.mLastShownFrame.set(w.mShownFrame);
- try {
- if (SHOW_TRANSACTIONS) logSurface(w,
- "POS " + w.mShownFrame.left
- + ", " + w.mShownFrame.top, null);
- w.mSurfaceX = w.mShownFrame.left;
- w.mSurfaceY = w.mShownFrame.top;
- w.mSurface.setPosition(w.mShownFrame.left, w.mShownFrame.top);
- } catch (RuntimeException e) {
- Slog.w(TAG, "Error positioning surface in " + w, e);
- if (!recoveringMemory) {
- reclaimSomeSurfaceMemoryLocked(w, "position");
- }
- }
} else {
- resize = !w.mLastShownFrame.equals(w.mShownFrame);
width = w.mShownFrame.width();
height = w.mShownFrame.height();
w.mLastShownFrame.set(w.mShownFrame);
}
- if (resize) {
- if (width < 1) width = 1;
- if (height < 1) height = 1;
- if (w.mSurface != null) {
+ if (w.mSurface != null) {
+ if (w.mSurfaceX != w.mShownFrame.left
+ || w.mSurfaceY != w.mShownFrame.top) {
try {
if (SHOW_TRANSACTIONS) logSurface(w,
- "POS " + w.mShownFrame.left + ","
- + w.mShownFrame.top + " SIZE "
- + w.mShownFrame.width() + "x"
+ "POS " + w.mShownFrame.left
+ + ", " + w.mShownFrame.top, null);
+ w.mSurfaceX = w.mShownFrame.left;
+ w.mSurfaceY = w.mShownFrame.top;
+ w.mSurface.setPosition(w.mShownFrame.left, w.mShownFrame.top);
+ } catch (RuntimeException e) {
+ Slog.w(TAG, "Error positioning surface of " + w
+ + " pos=(" + w.mShownFrame.left
+ + "," + w.mShownFrame.top + ")", e);
+ if (!recoveringMemory) {
+ reclaimSomeSurfaceMemoryLocked(w, "position");
+ }
+ }
+ }
+
+ if (width < 1) {
+ width = 1;
+ }
+ if (height < 1) {
+ height = 1;
+ }
+
+ if (w.mSurfaceW != width || w.mSurfaceH != height) {
+ try {
+ if (SHOW_TRANSACTIONS) logSurface(w,
+ "SIZE " + w.mShownFrame.width() + "x"
+ w.mShownFrame.height(), null);
w.mSurfaceResized = true;
w.mSurfaceW = width;
w.mSurfaceH = height;
w.mSurface.setSize(width, height);
- w.mSurfaceX = w.mShownFrame.left;
- w.mSurfaceY = w.mShownFrame.top;
- w.mSurface.setPosition(w.mShownFrame.left,
- w.mShownFrame.top);
} catch (RuntimeException e) {
// If something goes wrong with the surface (such
// as running out of memory), don't take down the
// entire system.
- Slog.e(TAG, "Failure updating surface of " + w
- + " size=(" + width + "x" + height
- + "), pos=(" + w.mShownFrame.left
- + "," + w.mShownFrame.top + ")", e);
+ Slog.e(TAG, "Error resizing surface of " + w
+ + " size=(" + width + "x" + height + ")", e);
if (!recoveringMemory) {
reclaimSomeSurfaceMemoryLocked(w, "size");
}
}
}
}
+
if (!w.mAppFreezing && w.mLayoutSeq == mLayoutSeq) {
w.mContentInsetsChanged =
!w.mLastContentInsets.equals(w.mContentInsets);
@@ -10393,11 +10388,21 @@
if (localLOGV) Slog.v(TAG, "Resizing " + w
+ ": configChanged=" + configChanged
+ " last=" + w.mLastFrame + " frame=" + w.mFrame);
- if (!w.mLastFrame.equals(w.mFrame)
+ boolean frameChanged = !w.mLastFrame.equals(w.mFrame);
+ if (frameChanged
|| w.mContentInsetsChanged
|| w.mVisibleInsetsChanged
|| w.mSurfaceResized
|| configChanged) {
+ if (DEBUG_RESIZE || DEBUG_ORIENTATION) {
+ Slog.v(TAG, "Resize reasons: "
+ + "frameChanged=" + frameChanged
+ + " contentInsetsChanged=" + w.mContentInsetsChanged
+ + " visibleInsetsChanged=" + w.mVisibleInsetsChanged
+ + " surfaceResized=" + w.mSurfaceResized
+ + " configChanged=" + configChanged);
+ }
+
w.mLastFrame.set(w.mFrame);
w.mLastContentInsets.set(w.mContentInsets);
w.mLastVisibleInsets.set(w.mVisibleInsets);
@@ -10882,6 +10887,15 @@
mTurnOnScreen = false;
}
+ if (updateRotation) {
+ if (DEBUG_ORIENTATION) Slog.d(TAG, "Performing post-rotate rotation");
+ boolean changed = setRotationUncheckedLocked(
+ WindowManagerPolicy.USE_LAST_ROTATION, 0, false);
+ if (changed) {
+ sendNewConfiguration();
+ }
+ }
+
// Check to see if we are now in a state where the screen should
// be enabled, because the window obscured flags have changed.
enableScreenIfNeededLocked();
@@ -11208,6 +11222,8 @@
Debug.stopMethodTracing();
}
+ boolean updateRotation = false;
+
if (CUSTOM_SCREEN_ROTATION) {
if (mScreenRotationAnimation != null) {
if (mScreenRotationAnimation.dismiss(MAX_ANIMATION_DURATION,
@@ -11215,6 +11231,7 @@
requestAnimationLocked(0);
} else {
mScreenRotationAnimation = null;
+ updateRotation = true;
}
}
} else {
@@ -11241,6 +11258,15 @@
2000);
mScreenFrozenLock.release();
+
+ if (updateRotation) {
+ if (DEBUG_ORIENTATION) Slog.d(TAG, "Performing post-rotate rotation");
+ boolean changed = setRotationUncheckedLocked(
+ WindowManagerPolicy.USE_LAST_ROTATION, 0, false);
+ if (changed) {
+ sendNewConfiguration();
+ }
+ }
}
static int getPropertyInt(String[] tokens, int index, int defUnits, int defDps,
@@ -11434,6 +11460,23 @@
}
@Override
+ public void statusBarVisibilityChanged(int visibility) {
+ synchronized (mWindowMap) {
+ final int N = mWindows.size();
+ for (int i = 0; i < N; i++) {
+ WindowState ws = mWindows.get(i);
+ try {
+ if (ws.getAttrs().hasSystemUiListeners) {
+ ws.mClient.dispatchSystemUiVisibilityChanged(visibility);
+ }
+ } catch (RemoteException e) {
+ // so sorry
+ }
+ }
+ }
+ }
+
+ @Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
if (mContext.checkCallingOrSelfPermission("android.permission.DUMP")
!= PackageManager.PERMISSION_GRANTED) {
@@ -11619,6 +11662,8 @@
pw.print(" mRotation="); pw.print(mRotation);
pw.print(", mForcedAppOrientation="); pw.print(mForcedAppOrientation);
pw.print(", mRequestedRotation="); pw.println(mRequestedRotation);
+ pw.print(" mDeferredRotation="); pw.print(mDeferredRotation);
+ pw.print(", mDeferredRotationAnimFlags="); pw.print(mDeferredRotationAnimFlags);
pw.print(" mAnimationPending="); pw.print(mAnimationPending);
pw.print(" mWindowAnimationScale="); pw.print(mWindowAnimationScale);
pw.print(" mTransitionWindowAnimationScale="); pw.println(mTransitionAnimationScale);
diff --git a/services/java/com/android/server/am/ActivityRecord.java b/services/java/com/android/server/am/ActivityRecord.java
index 3dc3965..0fb30ff 100644
--- a/services/java/com/android/server/am/ActivityRecord.java
+++ b/services/java/com/android/server/am/ActivityRecord.java
@@ -60,7 +60,8 @@
final String processName; // process where this component wants to run
final String taskAffinity; // as per ActivityInfo.taskAffinity
final boolean stateNotNeeded; // As per ActivityInfo.flags
- final boolean fullscreen; // covers the full screen?
+ final boolean fullscreen; // covers the full screen?
+ final boolean noDisplay; // activity is not displayed?
final boolean componentSpecified; // did caller specifiy an explicit component?
final boolean isHomeActivity; // do we consider this to be a home activity?
final String baseDir; // where activity source (resources etc) located
@@ -165,12 +166,13 @@
pw.print(" finishing="); pw.println(finishing);
pw.print(prefix); pw.print("keysPaused="); pw.print(keysPaused);
pw.print(" inHistory="); pw.print(inHistory);
- pw.print(" immersive="); pw.print(immersive);
- pw.print(" launchMode="); pw.println(launchMode);
- pw.print(prefix); pw.print("fullscreen="); pw.print(fullscreen);
pw.print(" visible="); pw.print(visible);
pw.print(" sleeping="); pw.print(sleeping);
pw.print(" idle="); pw.println(idle);
+ pw.print(prefix); pw.print("fullscreen="); pw.print(fullscreen);
+ pw.print(" noDisplay="); pw.print(noDisplay);
+ pw.print(" immersive="); pw.print(immersive);
+ pw.print(" launchMode="); pw.println(launchMode);
pw.print(prefix); pw.print("frozenBeforeDestroy="); pw.print(frozenBeforeDestroy);
pw.print(" thumbnailNeeded="); pw.println(thumbnailNeeded);
if (launchTime != 0 || startTime != 0) {
@@ -282,6 +284,8 @@
com.android.internal.R.styleable.Window_windowIsFloating, false)
&& !ent.array.getBoolean(
com.android.internal.R.styleable.Window_windowIsTranslucent, false);
+ noDisplay = ent != null && ent.array.getBoolean(
+ com.android.internal.R.styleable.Window_windowNoDisplay, false);
if (!_componentSpecified || _launchedFromUid == Process.myUid()
|| _launchedFromUid == 0) {
@@ -318,6 +322,7 @@
processName = null;
packageName = null;
fullscreen = true;
+ noDisplay = false;
isHomeActivity = false;
immersive = false;
}
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 3761928..2040cbd 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -750,6 +750,10 @@
}
public final Bitmap screenshotActivities(ActivityRecord who) {
+ if (who.noDisplay) {
+ return null;
+ }
+
Resources res = mService.mContext.getResources();
int w = mThumbnailWidth;
int h = mThumbnailHeight;
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
index 833d559..8f98cbb 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
@@ -22,10 +22,7 @@
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
import android.os.Bundle;
-import android.util.Log;
import android.view.View;
@SuppressWarnings({"UnusedDeclaration"})
@@ -41,11 +38,30 @@
static class BitmapMeshView extends View {
private Paint mBitmapPaint;
private final Bitmap mBitmap1;
+ private float[] mVertices;
+ private int[] mColors;
BitmapMeshView(Context c) {
super(c);
mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1);
+
+ final float width = mBitmap1.getWidth() / 3.0f;
+ final float height = mBitmap1.getHeight() / 3.0f;
+
+ mVertices = new float[] {
+ 0.0f, 0.0f, width, 0.0f, width * 2, 0.0f, width * 3, 0.0f,
+ 0.0f, height, width, height, width * 2, height, width * 4, height,
+ 0.0f, height * 2, width, height * 2, width * 2, height * 2, width * 3, height * 2,
+ 0.0f, height * 4, width, height * 4, width * 2, height * 4, width * 4, height * 4,
+ };
+
+ mColors = new int[] {
+ 0xffff0000, 0xff00ff00, 0xff0000ff, 0xffff0000,
+ 0xff0000ff, 0xffff0000, 0xff00ff00, 0xff00ff00,
+ 0xff00ff00, 0xff0000ff, 0xffff0000, 0xff00ff00,
+ 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00ff0000,
+ };
}
@Override
@@ -54,14 +70,10 @@
canvas.drawARGB(255, 255, 255, 255);
canvas.translate(100, 100);
- final float width = mBitmap1.getWidth() / 3.0f;
- final float height = mBitmap1.getHeight() / 3.0f;
- canvas.drawBitmapMesh(mBitmap1, 3, 3, new float[] {
- 0.0f, 0.0f, width, 0.0f, width * 2, 0.0f, width * 3, 0.0f,
- 0.0f, height, width, height, width * 2, height, width * 4, height,
- 0.0f, height * 2, width, height * 2, width * 2, height * 2, width * 3, height * 2,
- 0.0f, height * 4, width, height * 4, width * 2, height * 4, width * 4, height * 4,
- }, 0, null, 0, null);
+ canvas.drawBitmapMesh(mBitmap1, 3, 3, mVertices, 0, null, 0, null);
+
+ canvas.translate(400, 0);
+ canvas.drawBitmapMesh(mBitmap1, 3, 3, mVertices, 0, mColors, 0, null);
}
}
}
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
index 536a669..97e5526 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
@@ -38,6 +38,8 @@
private Paint mStrokePaint;
private Paint mFillPaint;
private RectF mRect;
+ private RectF mOval;
+ private RectF mArc;
ShapesView(Context c) {
super(c);
@@ -60,6 +62,9 @@
mFillPaint.setAntiAlias(true);
mFillPaint.setColor(0xff0000ff);
mFillPaint.setStyle(Paint.Style.FILL);
+
+ mOval = new RectF(0.0f, 0.0f, 80.0f, 45.0f);
+ mArc = new RectF(0.0f, 0.0f, 100.0f, 120.0f);
}
@Override
@@ -87,6 +92,50 @@
canvas.translate(0.0f, 110.0f);
canvas.drawCircle(80.0f, 45.0f, 45.0f, mFillPaint);
canvas.restore();
+
+ canvas.save();
+ canvas.translate(450.0f, 50.0f);
+ canvas.drawOval(mOval, mNormalPaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawOval(mOval, mStrokePaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawOval(mOval, mFillPaint);
+ canvas.restore();
+
+ canvas.save();
+ canvas.translate(625.0f, 50.0f);
+ canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mNormalPaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mStrokePaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mFillPaint);
+ canvas.restore();
+
+ canvas.save();
+ canvas.translate(825.0f, 50.0f);
+ canvas.drawArc(mArc, -30.0f, 70.0f, true, mNormalPaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawArc(mArc, -30.0f, 70.0f, true, mStrokePaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawArc(mArc, -30.0f, 70.0f, true, mFillPaint);
+ canvas.restore();
+
+ canvas.save();
+ canvas.translate(950.0f, 50.0f);
+ canvas.drawArc(mArc, 30.0f, 100.0f, false, mNormalPaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawArc(mArc, 30.0f, 100.0f, false, mStrokePaint);
+
+ canvas.translate(0.0f, 110.0f);
+ canvas.drawArc(mArc, 30.0f, 100.0f, false, mFillPaint);
+ canvas.restore();
}
}
}
diff --git a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java
index 563f28c..5fd946e 100644
--- a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java
+++ b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java
@@ -27,6 +27,8 @@
import android.app.Notification;
import android.app.NotificationManager;
import android.app.StatusBarManager;
+import android.content.Context;
+import android.util.AttributeSet;
import android.os.Vibrator;
import android.os.Bundle;
import android.os.Handler;
@@ -36,6 +38,7 @@
import android.widget.RemoteViews;
import android.widget.Toast;
import android.os.PowerManager;
+import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -46,6 +49,13 @@
NotificationManager mNotificationManager;
Handler mHandler = new Handler();
+ View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener
+ = new View.OnSystemUiVisibilityChangeListener() {
+ public void onSystemUiVisibilityChange(int visibility) {
+ Log.d(TAG, "onSystemUiVisibilityChange visibility=" + visibility);
+ }
+ };
+
@Override
protected String tag() {
return TAG;
@@ -60,6 +70,20 @@
}
private Test[] mTests = new Test[] {
+ new Test("STATUS_BAR_HIDDEN") {
+ public void run() {
+ View v = findViewById(android.R.id.list);
+ v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
+ v.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener);
+ }
+ },
+ new Test("not STATUS_BAR_HIDDEN") {
+ public void run() {
+ View v = findViewById(android.R.id.list);
+ v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);
+ v.setOnSystemUiVisibilityChangeListener(null);
+ }
+ },
new Test("Double Remove") {
public void run() {
Log.d(TAG, "set 0");
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 196b06c..5339566 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -1322,6 +1322,22 @@
}
}
} else if (strcmp16(block.getElementName(&len), string_array16.string()) == 0) {
+ // Check whether these strings need valid formats.
+ // (simplified form of what string16 does above)
+ size_t n = block.getAttributeCount();
+ for (size_t i = 0; i < n; i++) {
+ size_t length;
+ const uint16_t* attr = block.getAttributeName(i, &length);
+ if (strcmp16(attr, translatable16.string()) == 0
+ || strcmp16(attr, formatted16.string()) == 0) {
+ const uint16_t* value = block.getAttributeStringValue(i, &length);
+ if (strcmp16(value, false16.string()) == 0) {
+ curIsFormatted = false;
+ break;
+ }
+ }
+ }
+
curTag = &string_array16;
curType = array16;
curFormat = ResTable_map::TYPE_REFERENCE|ResTable_map::TYPE_STRING;
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
index 4a7ab58..a8da377 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
@@ -86,6 +86,10 @@
// pass for now.
}
+ public void dispatchSystemUiVisibilityChanged(int visibility) {
+ // pass for now.
+ }
+
public IBinder asBinder() {
// pass for now.
return null;