Merge "update notepad menu icons with new styles for GB (20% smaller)" into gingerbread
diff --git a/apps/Fallback/res/values-ar/strings.xml b/apps/Fallback/res/values-ar/strings.xml
new file mode 100644
index 0000000..a695d8c
--- /dev/null
+++ b/apps/Fallback/res/values-ar/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"إجراء غير متاح"</string>
+ <string name="error" msgid="6539615832923362301">"هذا الإجراء غير متاح حاليًا."</string>
+</resources>
diff --git a/apps/Fallback/res/values-bg/strings.xml b/apps/Fallback/res/values-bg/strings.xml
new file mode 100644
index 0000000..2aaded2
--- /dev/null
+++ b/apps/Fallback/res/values-bg/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Неподдържано действие"</string>
+ <string name="error" msgid="6539615832923362301">"Понастоящем това действие не се поддържа."</string>
+</resources>
diff --git a/apps/Fallback/res/values-ca/strings.xml b/apps/Fallback/res/values-ca/strings.xml
new file mode 100644
index 0000000..c17ae77
--- /dev/null
+++ b/apps/Fallback/res/values-ca/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Acció no compatible"</string>
+ <string name="error" msgid="6539615832923362301">"Aquesta acció no és compatible actualment."</string>
+</resources>
diff --git a/apps/Fallback/res/values-en-rGB/strings.xml b/apps/Fallback/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..a7c82cb
--- /dev/null
+++ b/apps/Fallback/res/values-en-rGB/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Unsupported action"</string>
+ <string name="error" msgid="6539615832923362301">"That action is not currently supported."</string>
+</resources>
diff --git a/apps/Fallback/res/values-fa/strings.xml b/apps/Fallback/res/values-fa/strings.xml
new file mode 100644
index 0000000..6f6c60f
--- /dev/null
+++ b/apps/Fallback/res/values-fa/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"بازگشت"</string>
+ <string name="title" msgid="8156274565006125136">"عملکرد پشتیبانی نشده"</string>
+ <string name="error" msgid="6539615832923362301">"آن عملکرد در حال حاضر پشتیبانی نمی شود."</string>
+</resources>
diff --git a/apps/Fallback/res/values-fi/strings.xml b/apps/Fallback/res/values-fi/strings.xml
new file mode 100644
index 0000000..124eb73
--- /dev/null
+++ b/apps/Fallback/res/values-fi/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Toiminto ei ole tuettu"</string>
+ <string name="error" msgid="6539615832923362301">"Toiminto ei ole tuettu tällä hetkellä."</string>
+</resources>
diff --git a/apps/Fallback/res/values-hr/strings.xml b/apps/Fallback/res/values-hr/strings.xml
new file mode 100644
index 0000000..6b8fdc3
--- /dev/null
+++ b/apps/Fallback/res/values-hr/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Pričuvna aplikacija"</string>
+ <string name="title" msgid="8156274565006125136">"Nepodržana radnja"</string>
+ <string name="error" msgid="6539615832923362301">"Ova radnja trenutno nije podržana."</string>
+</resources>
diff --git a/apps/Fallback/res/values-hu/strings.xml b/apps/Fallback/res/values-hu/strings.xml
new file mode 100644
index 0000000..4c9ede6
--- /dev/null
+++ b/apps/Fallback/res/values-hu/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Tartalék"</string>
+ <string name="title" msgid="8156274565006125136">"Nem támogatott művelet"</string>
+ <string name="error" msgid="6539615832923362301">"Ez a művelet jelenleg nem támogatott."</string>
+</resources>
diff --git a/apps/Fallback/res/values-in/strings.xml b/apps/Fallback/res/values-in/strings.xml
new file mode 100644
index 0000000..0bfaf16
--- /dev/null
+++ b/apps/Fallback/res/values-in/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Tindakan yang tidak didukung"</string>
+ <string name="error" msgid="6539615832923362301">"Saat ini tindakan tersebut tidak didukung."</string>
+</resources>
diff --git a/apps/Fallback/res/values-iw/strings.xml b/apps/Fallback/res/values-iw/strings.xml
new file mode 100644
index 0000000..671919b
--- /dev/null
+++ b/apps/Fallback/res/values-iw/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"החזרה"</string>
+ <string name="title" msgid="8156274565006125136">"פעולה לא נתמכת"</string>
+ <string name="error" msgid="6539615832923362301">"הפעולה אינה נתמכת בשלב זה."</string>
+</resources>
diff --git a/apps/Fallback/res/values-lt/strings.xml b/apps/Fallback/res/values-lt/strings.xml
new file mode 100644
index 0000000..c715f42
--- /dev/null
+++ b/apps/Fallback/res/values-lt/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Nepalaikomas veiksmas"</string>
+ <string name="error" msgid="6539615832923362301">"Šis veiksmas šiuo metu nepalaikomas."</string>
+</resources>
diff --git a/apps/Fallback/res/values-lv/strings.xml b/apps/Fallback/res/values-lv/strings.xml
new file mode 100644
index 0000000..63b3384
--- /dev/null
+++ b/apps/Fallback/res/values-lv/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Atkāpšanās"</string>
+ <string name="title" msgid="8156274565006125136">"Darbība netiek atbalstīta"</string>
+ <string name="error" msgid="6539615832923362301">"Šī darbība pašlaik netiek atbalstīta."</string>
+</resources>
diff --git a/apps/Fallback/res/values-rm/strings.xml b/apps/Fallback/res/values-rm/strings.xml
new file mode 100644
index 0000000..c699f25
--- /dev/null
+++ b/apps/Fallback/res/values-rm/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Acziun betg sustegnida"</string>
+ <string name="error" msgid="6539615832923362301">"Questa acziun na vegn actualmain betg sustegnida."</string>
+</resources>
diff --git a/apps/Fallback/res/values-ro/strings.xml b/apps/Fallback/res/values-ro/strings.xml
new file mode 100644
index 0000000..222de48
--- /dev/null
+++ b/apps/Fallback/res/values-ro/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Alternativă"</string>
+ <string name="title" msgid="8156274565006125136">"Acţiune neacceptată"</string>
+ <string name="error" msgid="6539615832923362301">"Această acţiune nu este acceptată în prezent."</string>
+</resources>
diff --git a/apps/Fallback/res/values-sk/strings.xml b/apps/Fallback/res/values-sk/strings.xml
new file mode 100644
index 0000000..97ad356
--- /dev/null
+++ b/apps/Fallback/res/values-sk/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Záloha"</string>
+ <string name="title" msgid="8156274565006125136">"Akcia nie je podporovaná"</string>
+ <string name="error" msgid="6539615832923362301">"Táto akcia momentálne nie je podporovaná."</string>
+</resources>
diff --git a/apps/Fallback/res/values-sl/strings.xml b/apps/Fallback/res/values-sl/strings.xml
new file mode 100644
index 0000000..322f466
--- /dev/null
+++ b/apps/Fallback/res/values-sl/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Nadomestni program"</string>
+ <string name="title" msgid="8156274565006125136">"Dejanje ni podprto."</string>
+ <string name="error" msgid="6539615832923362301">"To dejanje trenutno še ni podprto."</string>
+</resources>
diff --git a/apps/Fallback/res/values-sr/strings.xml b/apps/Fallback/res/values-sr/strings.xml
new file mode 100644
index 0000000..c58ba4f
--- /dev/null
+++ b/apps/Fallback/res/values-sr/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Заменска апликација"</string>
+ <string name="title" msgid="8156274565006125136">"Неподржана радња"</string>
+ <string name="error" msgid="6539615832923362301">"Та радња тренутно није подржана."</string>
+</resources>
diff --git a/apps/Fallback/res/values-th/strings.xml b/apps/Fallback/res/values-th/strings.xml
new file mode 100644
index 0000000..3c9cd8a
--- /dev/null
+++ b/apps/Fallback/res/values-th/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"การทำงานไม่ได้รับการสนับสนุน"</string>
+ <string name="error" msgid="6539615832923362301">"การทำงานนี้ยังไม่ได้รับการสนับสนุนในปัจจุบัน"</string>
+</resources>
diff --git a/apps/Fallback/res/values-tl/strings.xml b/apps/Fallback/res/values-tl/strings.xml
new file mode 100644
index 0000000..c2f8b99
--- /dev/null
+++ b/apps/Fallback/res/values-tl/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Fallback"</string>
+ <string name="title" msgid="8156274565006125136">"Hindi suportadong pagkilos"</string>
+ <string name="error" msgid="6539615832923362301">"Hindi kasalukuyang suportado ang pagkilos na iyon."</string>
+</resources>
diff --git a/apps/Fallback/res/values-uk/strings.xml b/apps/Fallback/res/values-uk/strings.xml
new file mode 100644
index 0000000..62a722c
--- /dev/null
+++ b/apps/Fallback/res/values-uk/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Авар.режим"</string>
+ <string name="title" msgid="8156274565006125136">"Непідтримувана дія"</string>
+ <string name="error" msgid="6539615832923362301">"Дія наразі не підтримується."</string>
+</resources>
diff --git a/apps/Fallback/res/values-vi/strings.xml b/apps/Fallback/res/values-vi/strings.xml
new file mode 100644
index 0000000..56c21ae
--- /dev/null
+++ b/apps/Fallback/res/values-vi/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="appTitle" msgid="161410001913116606">"Dự phòng"</string>
+ <string name="title" msgid="8156274565006125136">"Tác vụ không được hỗ trợ"</string>
+ <string name="error" msgid="6539615832923362301">"Tác vụ đó hiện không được hỗ trợ."</string>
+</resources>
diff --git a/build/sdk.atree b/build/sdk.atree
index 35d34dd..65d4ea5 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -72,12 +72,12 @@
prebuilt/android-arm/kernel/kernel-qemu platforms/${PLATFORM_NAME}/images/kernel-qemu
# emulator skins from sdk.git
-sdk/emulator/skins/QVGA platforms/${PLATFORM_NAME}/skins/QVGA
-sdk/emulator/skins/WQVGA432 platforms/${PLATFORM_NAME}/skins/WQVGA432
-sdk/emulator/skins/WQVGA400 platforms/${PLATFORM_NAME}/skins/WQVGA400
-sdk/emulator/skins/HVGA platforms/${PLATFORM_NAME}/skins/HVGA
-sdk/emulator/skins/WVGA800 platforms/${PLATFORM_NAME}/skins/WVGA800
-sdk/emulator/skins/WVGA854 platforms/${PLATFORM_NAME}/skins/WVGA854
+development/tools/emulator/skins/QVGA platforms/${PLATFORM_NAME}/skins/QVGA
+development/tools/emulator/skins/WQVGA432 platforms/${PLATFORM_NAME}/skins/WQVGA432
+development/tools/emulator/skins/WQVGA400 platforms/${PLATFORM_NAME}/skins/WQVGA400
+development/tools/emulator/skins/HVGA platforms/${PLATFORM_NAME}/skins/HVGA
+development/tools/emulator/skins/WVGA800 platforms/${PLATFORM_NAME}/skins/WVGA800
+development/tools/emulator/skins/WVGA854 platforms/${PLATFORM_NAME}/skins/WVGA854
# Platform SDK properties
sdk/files/sdk.properties platforms/${PLATFORM_NAME}/sdk.properties
@@ -146,17 +146,18 @@
# PLEASE KEEP THE SAMPLES IN ALPHABETICAL ORDER.
#
development/samples/AccessibilityService samples/${PLATFORM_NAME}/AccessibilityService
+development/samples/AccelerometerPlay samples/${PLATFORM_NAME}/AccelerometerPlay
development/samples/ApiDemos samples/${PLATFORM_NAME}/ApiDemos
development/samples/BackupRestore samples/${PLATFORM_NAME}/BackupRestore
development/samples/BluetoothChat samples/${PLATFORM_NAME}/BluetoothChat
development/samples/ContactManager samples/${PLATFORM_NAME}/ContactManager
development/samples/CrossCompatibility samples/${PLATFORM_NAME}/CrossCompatibility
development/samples/CubeLiveWallpaper samples/${PLATFORM_NAME}/CubeLiveWallpaper
-development/samples/HeavyWeight samples/${PLATFORM_NAME}/HeavyWeight
development/samples/Home samples/${PLATFORM_NAME}/Home
development/samples/JetBoy samples/${PLATFORM_NAME}/JetBoy
development/samples/LunarLander samples/${PLATFORM_NAME}/LunarLander
development/samples/MultiResolution samples/${PLATFORM_NAME}/MultiResolution
+development/samples/NFCDemo samples/${PLATFORM_NAME}/NFCDemo
development/samples/NotePad samples/${PLATFORM_NAME}/NotePad
development/samples/SampleSyncAdapter samples/${PLATFORM_NAME}/SampleSyncAdapter
development/samples/SearchableDictionary samples/${PLATFORM_NAME}/SearchableDictionary
diff --git a/ndk/platforms/android-3/arch-arm/include/asm/byteorder.h b/ndk/platforms/android-3/arch-arm/include/asm/byteorder.h
index 4da37bf..b869695 100644
--- a/ndk/platforms/android-3/arch-arm/include/asm/byteorder.h
+++ b/ndk/platforms/android-3/arch-arm/include/asm/byteorder.h
@@ -22,7 +22,7 @@
#ifndef __thumb__
if (!__builtin_constant_p(x)) {
- asm ("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x));
+ __asm__ ("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x));
} else
#endif
t = x ^ ((x << 16) | (x >> 16));
diff --git a/ndk/platforms/android-3/include/netinet/in.h b/ndk/platforms/android-3/include/netinet/in.h
index 0ebd926..7a4b6c7 100644
--- a/ndk/platforms/android-3/include/netinet/in.h
+++ b/ndk/platforms/android-3/include/netinet/in.h
@@ -38,6 +38,8 @@
#define IPPORT_RESERVED 1024
+#define INET_ADDRSTRLEN 16
+
extern int bindresvport (int sd, struct sockaddr_in *sin);
static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
diff --git a/ndk/platforms/android-3/include/netinet/in6.h b/ndk/platforms/android-3/include/netinet/in6.h
index 2f5fee1..e756583 100644
--- a/ndk/platforms/android-3/include/netinet/in6.h
+++ b/ndk/platforms/android-3/include/netinet/in6.h
@@ -74,6 +74,9 @@
#define IPV6_ADDR_MC_SCOPE(a) \
((a)->s6_addr[1] & 0x0f)
+#define IN6_IS_ADDR_MC_NODELOCAL(a) \
+ (IN6_IS_ADDR_MULTICAST(a) && \
+ (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_NODELOCAL))
#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && \
(IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_LINKLOCAL))
@@ -83,7 +86,9 @@
#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && \
(IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_ORGLOCAL))
-
+#define IN6_IS_ADDR_MC_GLOBAL(a) \
+ (IN6_IS_ADDR_MULTICAST(a) && \
+ (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_GLOBAL))
#define IN6_ARE_ADDR_EQUAL(a, b) \
(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)
diff --git a/ndk/platforms/android-9/arch-arm/lib/libEGL.so b/ndk/platforms/android-9/arch-arm/lib/libEGL.so
index f63b64c..3d8c151 100644
--- a/ndk/platforms/android-9/arch-arm/lib/libEGL.so
+++ b/ndk/platforms/android-9/arch-arm/lib/libEGL.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-arm/lib/libOpenSLES.so b/ndk/platforms/android-9/arch-arm/lib/libOpenSLES.so
index 1e7c180..3f2ae90 100755
--- a/ndk/platforms/android-9/arch-arm/lib/libOpenSLES.so
+++ b/ndk/platforms/android-9/arch-arm/lib/libOpenSLES.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-arm/lib/libandroid.so b/ndk/platforms/android-9/arch-arm/lib/libandroid.so
index 1ac0a9c..32d907b 100644
--- a/ndk/platforms/android-9/arch-arm/lib/libandroid.so
+++ b/ndk/platforms/android-9/arch-arm/lib/libandroid.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-arm/symbols/libEGL.so.txt b/ndk/platforms/android-9/arch-arm/symbols/libEGL.so.txt
new file mode 100644
index 0000000..cc71131
--- /dev/null
+++ b/ndk/platforms/android-9/arch-arm/symbols/libEGL.so.txt
@@ -0,0 +1,40 @@
+eglBindAPI
+eglBindTexImage
+eglChooseConfig
+eglCopyBuffers
+eglCreateContext
+eglCreateImageKHR
+eglCreatePbufferFromClientBuffer
+eglCreatePbufferSurface
+eglCreatePixmapSurface
+eglCreateWindowSurface
+eglDestroyContext
+eglDestroyImageKHR
+eglDestroySurface
+eglGetConfigAttrib
+eglGetConfigs
+eglGetCurrentContext
+eglGetCurrentDisplay
+eglGetCurrentSurface
+eglGetDisplay
+eglGetError
+eglGetProcAddress
+eglInitialize
+eglLockSurfaceKHR
+eglMakeCurrent
+eglQueryAPI
+eglQueryContext
+eglQueryString
+eglQuerySurface
+eglReleaseTexImage
+eglReleaseThread
+eglSetSwapRectangleANDROID
+eglSurfaceAttrib
+eglSwapBuffers
+eglSwapInterval
+eglTerminate
+eglUnlockSurfaceKHR
+eglWaitClient
+eglWaitGL
+eglWaitNative
+
diff --git a/ndk/platforms/android-9/arch-arm/symbols/libOpenSLES.so.txt b/ndk/platforms/android-9/arch-arm/symbols/libOpenSLES.so.txt
index e7ccafb..b42d1ee 100644
--- a/ndk/platforms/android-9/arch-arm/symbols/libOpenSLES.so.txt
+++ b/ndk/platforms/android-9/arch-arm/symbols/libOpenSLES.so.txt
@@ -1,3 +1,6 @@
+slCreateEngine
+slQueryNumSupportedEngineInterfaces
+slQuerySupportedEngineInterfaces
SL_IID_3DCOMMIT
SL_IID_3DDOPPLER
SL_IID_3DGROUPING
@@ -47,6 +50,3 @@
SL_IID_VIRTUALIZER
SL_IID_VISUALIZATION
SL_IID_VOLUME
-slCreateEngine
-slQueryNumSupportedEngineInterfaces
-slQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-9/arch-arm/symbols/libandroid.so.txt b/ndk/platforms/android-9/arch-arm/symbols/libandroid.so.txt
new file mode 100644
index 0000000..e6d17fe
--- /dev/null
+++ b/ndk/platforms/android-9/arch-arm/symbols/libandroid.so.txt
@@ -0,0 +1,149 @@
+AAssetDir_close
+AAssetDir_getNextFileName
+AAssetDir_rewind
+AAssetManager_fromJava
+AAssetManager_open
+AAssetManager_openDir
+AAsset_close
+AAsset_getBuffer
+AAsset_getLength
+AAsset_getRemainingLength
+AAsset_isAllocated
+AAsset_openFileDescriptor
+AAsset_read
+AAsset_seek
+AConfiguration_copy
+AConfiguration_delete
+AConfiguration_diff
+AConfiguration_fromAssetManager
+AConfiguration_getCountry
+AConfiguration_getDensity
+AConfiguration_getKeyboard
+AConfiguration_getKeysHidden
+AConfiguration_getLanguage
+AConfiguration_getMcc
+AConfiguration_getMnc
+AConfiguration_getNavHidden
+AConfiguration_getNavigation
+AConfiguration_getOrientation
+AConfiguration_getScreenLong
+AConfiguration_getScreenSize
+AConfiguration_getSdkVersion
+AConfiguration_getTouchscreen
+AConfiguration_getUiModeNight
+AConfiguration_getUiModeType
+AConfiguration_isBetterThan
+AConfiguration_match
+AConfiguration_new
+AConfiguration_setCountry
+AConfiguration_setDensity
+AConfiguration_setKeyboard
+AConfiguration_setKeysHidden
+AConfiguration_setLanguage
+AConfiguration_setMcc
+AConfiguration_setMnc
+AConfiguration_setNavHidden
+AConfiguration_setNavigation
+AConfiguration_setOrientation
+AConfiguration_setScreenLong
+AConfiguration_setScreenSize
+AConfiguration_setSdkVersion
+AConfiguration_setTouchscreen
+AConfiguration_setUiModeNight
+AConfiguration_setUiModeType
+AInputEvent_getDeviceId
+AInputEvent_getSource
+AInputEvent_getType
+AInputQueue_attachLooper
+AInputQueue_detachLooper
+AInputQueue_finishEvent
+AInputQueue_getEvent
+AInputQueue_hasEvents
+AInputQueue_preDispatchEvent
+AKeyEvent_getAction
+AKeyEvent_getDownTime
+AKeyEvent_getEventTime
+AKeyEvent_getFlags
+AKeyEvent_getKeyCode
+AKeyEvent_getMetaState
+AKeyEvent_getRepeatCount
+AKeyEvent_getScanCode
+ALooper_acquire
+ALooper_addFd
+ALooper_forThread
+ALooper_pollAll
+ALooper_pollOnce
+ALooper_prepare
+ALooper_release
+ALooper_removeFd
+ALooper_wake
+AMotionEvent_getAction
+AMotionEvent_getDownTime
+AMotionEvent_getEdgeFlags
+AMotionEvent_getEventTime
+AMotionEvent_getFlags
+AMotionEvent_getHistoricalEventTime
+AMotionEvent_getHistoricalPressure
+AMotionEvent_getHistoricalSize
+AMotionEvent_getHistoricalX
+AMotionEvent_getHistoricalY
+AMotionEvent_getHistorySize
+AMotionEvent_getMetaState
+AMotionEvent_getOrientation
+AMotionEvent_getPointerCount
+AMotionEvent_getPointerId
+AMotionEvent_getPressure
+AMotionEvent_getRawX
+AMotionEvent_getRawY
+AMotionEvent_getSize
+AMotionEvent_getToolMajor
+AMotionEvent_getToolMinor
+AMotionEvent_getTouchMajor
+AMotionEvent_getTouchMinor
+AMotionEvent_getX
+AMotionEvent_getXOffset
+AMotionEvent_getXPrecision
+AMotionEvent_getY
+AMotionEvent_getYOffset
+AMotionEvent_getYPrecision
+ANativeActivity_finish
+ANativeActivity_hideSoftInput
+ANativeActivity_setWindowFlags
+ANativeActivity_setWindowFormat
+ANativeActivity_showSoftInput
+ANativeWindow_acquire
+ANativeWindow_fromSurface
+ANativeWindow_getFormat
+ANativeWindow_getHeight
+ANativeWindow_getWidth
+ANativeWindow_lock
+ANativeWindow_release
+ANativeWindow_setBuffersGeometry
+ANativeWindow_unlockAndPost
+AObbInfo_delete
+AObbInfo_getFlags
+AObbInfo_getPackageName
+AObbInfo_getVersion
+AObbScanner_getObbInfo
+ASensorEventQueue_disableSensor
+ASensorEventQueue_enableSensor
+ASensorEventQueue_getEvents
+ASensorEventQueue_hasEvents
+ASensorEventQueue_setEventRate
+ASensorManager_createEventQueue
+ASensorManager_destroyEventQueue
+ASensorManager_getDefaultSensor
+ASensorManager_getInstance
+ASensorManager_getSensorList
+ASensor_getMinDelay
+ASensor_getName
+ASensor_getResolution
+ASensor_getType
+ASensor_getVendor
+AStorageManager_delete
+AStorageManager_getMountedObbPath
+AStorageManager_isObbMounted
+AStorageManager_mountObb
+AStorageManager_new
+AStorageManager_unmountObb
+
diff --git a/ndk/platforms/android-9/include/EGL/eglext.h b/ndk/platforms/android-9/include/EGL/eglext.h
index b121158..1ffcd56 100644
--- a/ndk/platforms/android-9/include/EGL/eglext.h
+++ b/ndk/platforms/android-9/include/EGL/eglext.h
@@ -229,14 +229,6 @@
#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
#endif
-#ifndef EGL_ANDROID_get_render_buffer
-#define EGL_ANDROID_get_render_buffer 1
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLClientBuffer EGLAPIENTRY eglGetRenderBufferANDROID(EGLDisplay dpy, EGLSurface draw);
-#endif
-typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETRENDERBUFFERANDROIDPROC) (EGLDisplay dpy, EGLSurface draw);
-#endif
-
#ifndef EGL_ANDROID_swap_rectangle
#define EGL_ANDROID_swap_rectangle 1
#ifdef EGL_EGLEXT_PROTOTYPES
diff --git a/ndk/platforms/android-9/include/EGL/eglplatform.h b/ndk/platforms/android-9/include/EGL/eglplatform.h
index e6c250d..bfac71b 100644
--- a/ndk/platforms/android-9/include/EGL/eglplatform.h
+++ b/ndk/platforms/android-9/include/EGL/eglplatform.h
@@ -78,18 +78,7 @@
typedef void *EGLNativeWindowType;
typedef void *EGLNativePixmapType;
-#elif defined(__unix__) && !defined(__ANDROID__)
-
-/* X11 (tentative) */
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef Display *EGLNativeDisplayType;
-typedef Pixmap EGLNativePixmapType;
-typedef Window EGLNativeWindowType;
-
-
-#elif defined(__ANDROID__)
+#elif defined(__ANDROID__) || defined(ANDROID)
#include <android/native_window.h>
@@ -99,6 +88,16 @@
typedef struct egl_native_pixmap_t* EGLNativePixmapType;
typedef void* EGLNativeDisplayType;
+#elif defined(__unix__)
+
+/* X11 (tentative) */
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+typedef Display *EGLNativeDisplayType;
+typedef Pixmap EGLNativePixmapType;
+typedef Window EGLNativeWindowType;
+
#else
#error "Platform not recognized"
#endif
diff --git a/ndk/platforms/android-9/include/android/asset_manager.h b/ndk/platforms/android-9/include/android/asset_manager.h
index 3ad0f99..4fa0ef3 100644
--- a/ndk/platforms/android-9/include/android/asset_manager.h
+++ b/ndk/platforms/android-9/include/android/asset_manager.h
@@ -18,9 +18,9 @@
#ifndef ANDROID_ASSET_MANAGER_H
#define ANDROID_ASSET_MANAGER_H
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
struct AAssetManager;
typedef struct AAssetManager AAssetManager;
@@ -130,6 +130,9 @@
int AAsset_isAllocated(AAsset* asset);
-__END_DECLS
-#endif /* ANDROID_ASSET_MANAGER_H */
+#ifdef __cplusplus
+};
+#endif
+
+#endif // ANDROID_ASSET_MANAGER_H
diff --git a/ndk/platforms/android-9/include/android/asset_manager_jni.h b/ndk/platforms/android-9/include/android/asset_manager_jni.h
index 073434b..aec2d3c 100644
--- a/ndk/platforms/android-9/include/android/asset_manager_jni.h
+++ b/ndk/platforms/android-9/include/android/asset_manager_jni.h
@@ -21,7 +21,9 @@
#include <android/asset_manager.h>
#include <jni.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* Given a Dalvik AssetManager object, obtain the corresponding native AAssetManager
@@ -31,6 +33,8 @@
*/
AAssetManager* AAssetManager_fromJava(JNIEnv* env, jobject assetManager);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_ASSET_MANAGER_JNI_H */
+#endif // ANDROID_ASSET_MANAGER_JNI_H
diff --git a/ndk/platforms/android-9/include/android/configuration.h b/ndk/platforms/android-9/include/android/configuration.h
index 4c85b12..99e8f97 100644
--- a/ndk/platforms/android-9/include/android/configuration.h
+++ b/ndk/platforms/android-9/include/android/configuration.h
@@ -19,7 +19,9 @@
#include <android/asset_manager.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
struct AConfiguration;
typedef struct AConfiguration AConfiguration;
@@ -310,6 +312,8 @@
int32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test,
AConfiguration* requested);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_CONFIGURATION_H */
+#endif // ANDROID_CONFIGURATION_H
diff --git a/ndk/platforms/android-9/include/android/input.h b/ndk/platforms/android-9/include/android/input.h
index ae96c50..7df13c3 100644
--- a/ndk/platforms/android-9/include/android/input.h
+++ b/ndk/platforms/android-9/include/android/input.h
@@ -45,7 +45,9 @@
#include <android/keycodes.h>
#include <android/looper.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Key states (may be returned by queries about the current state of a
@@ -304,6 +306,8 @@
AINPUT_SOURCE_MOUSE = 0x00002000 | AINPUT_SOURCE_CLASS_POINTER,
AINPUT_SOURCE_TRACKBALL = 0x00010000 | AINPUT_SOURCE_CLASS_NAVIGATION,
AINPUT_SOURCE_TOUCHPAD = 0x00100000 | AINPUT_SOURCE_CLASS_POSITION,
+
+ AINPUT_SOURCE_ANY = 0xffffff00,
};
/*
@@ -675,6 +679,8 @@
*/
void AInputQueue_finishEvent(AInputQueue* queue, AInputEvent* event, int handled);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
-#endif /* _ANDROID_INPUT_H */
+#endif // _ANDROID_INPUT_H
diff --git a/ndk/platforms/android-9/include/android/keycodes.h b/ndk/platforms/android-9/include/android/keycodes.h
index be0550a..496eccc 100644
--- a/ndk/platforms/android-9/include/android/keycodes.h
+++ b/ndk/platforms/android-9/include/android/keycodes.h
@@ -33,10 +33,11 @@
* - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
*/
-#include <sys/cdefs.h>
#include <sys/types.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Key codes.
@@ -158,6 +159,8 @@
// Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
};
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
-#endif /* _ANDROID_KEYCODES_H */
+#endif // _ANDROID_KEYCODES_H
diff --git a/ndk/platforms/android-9/include/android/looper.h b/ndk/platforms/android-9/include/android/looper.h
index 9b7438b..a9d8426 100644
--- a/ndk/platforms/android-9/include/android/looper.h
+++ b/ndk/platforms/android-9/include/android/looper.h
@@ -18,9 +18,9 @@
#ifndef ANDROID_LOOPER_H
#define ANDROID_LOOPER_H
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* ALooper
@@ -248,6 +248,8 @@
*/
int ALooper_removeFd(ALooper* looper, int fd);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_NATIVE_WINDOW_H */
+#endif // ANDROID_NATIVE_WINDOW_H
diff --git a/ndk/platforms/android-9/include/android/native_activity.h b/ndk/platforms/android-9/include/android/native_activity.h
index 0bff86d..d89bc8b 100644
--- a/ndk/platforms/android-9/include/android/native_activity.h
+++ b/ndk/platforms/android-9/include/android/native_activity.h
@@ -19,7 +19,6 @@
#define ANDROID_NATIVE_ACTIVITY_H
#include <stdint.h>
-#include <sys/cdefs.h>
#include <sys/types.h>
#include <jni.h>
@@ -28,7 +27,9 @@
#include <android/input.h>
#include <android/native_window.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
struct ANativeActivityCallbacks;
@@ -67,17 +68,17 @@
* Path to this application's internal data directory.
*/
const char* internalDataPath;
-
+
/**
* Path to this application's external (removable/mountable) data directory.
*/
const char* externalDataPath;
-
+
/**
* The platform's SDK version code.
*/
int32_t sdkVersion;
-
+
/**
* This is the native instance of the application. It is not used by
* the framework, but can be set by the application to its own instance
@@ -104,13 +105,13 @@
* for more information.
*/
void (*onStart)(ANativeActivity* activity);
-
+
/**
* NativeActivity has resumed. See Java documentation for Activity.onResume()
* for more information.
*/
void (*onResume)(ANativeActivity* activity);
-
+
/**
* Framework is asking NativeActivity to save its current instance state.
* See Java documentation for Activity.onSaveInstanceState() for more
@@ -121,19 +122,19 @@
* entities (pointers to memory, file descriptors, etc).
*/
void* (*onSaveInstanceState)(ANativeActivity* activity, size_t* outSize);
-
+
/**
* NativeActivity has paused. See Java documentation for Activity.onPause()
* for more information.
*/
void (*onPause)(ANativeActivity* activity);
-
+
/**
* NativeActivity has stopped. See Java documentation for Activity.onStop()
* for more information.
*/
void (*onStop)(ANativeActivity* activity);
-
+
/**
* NativeActivity is being destroyed. See Java documentation for Activity.onDestroy()
* for more information.
@@ -145,7 +146,7 @@
* for example, to pause a game when it loses input focus.
*/
void (*onWindowFocusChanged)(ANativeActivity* activity, int hasFocus);
-
+
/**
* The drawing window for this native activity has been created. You
* can use the given native window object to start drawing.
@@ -176,13 +177,13 @@
* returning from here.
*/
void (*onNativeWindowDestroyed)(ANativeActivity* activity, ANativeWindow* window);
-
+
/**
* The input queue for this native activity's window has been created.
* You can use the given input queue to start retrieving input events.
*/
void (*onInputQueueCreated)(ANativeActivity* activity, AInputQueue* queue);
-
+
/**
* The input queue for this native activity's window is being destroyed.
* You should no longer try to reference this object upon returning from this
@@ -287,6 +288,9 @@
*/
void ANativeActivity_hideSoftInput(ANativeActivity* activity, uint32_t flags);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_NATIVE_ACTIVITY_H */
+#endif // ANDROID_NATIVE_ACTIVITY_H
+
diff --git a/ndk/platforms/android-9/include/android/native_window.h b/ndk/platforms/android-9/include/android/native_window.h
index 75e68c1..f3d7550 100644
--- a/ndk/platforms/android-9/include/android/native_window.h
+++ b/ndk/platforms/android-9/include/android/native_window.h
@@ -17,10 +17,11 @@
#ifndef ANDROID_NATIVE_WINDOW_H
#define ANDROID_NATIVE_WINDOW_H
-#include <sys/cdefs.h>
#include <android/rect.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Pixel formats that a window can use.
@@ -50,7 +51,7 @@
// The actual bits.
void* bits;
-
+
// Do not touch.
uint32_t reserved[6];
} ANativeWindow_Buffer;
@@ -109,6 +110,8 @@
*/
int32_t ANativeWindow_unlockAndPost(ANativeWindow* window);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_NATIVE_WINDOW_H */
+#endif // ANDROID_NATIVE_WINDOW_H
diff --git a/ndk/platforms/android-9/include/android/native_window_jni.h b/ndk/platforms/android-9/include/android/native_window_jni.h
index a44a5b1..b9e72ef 100644
--- a/ndk/platforms/android-9/include/android/native_window_jni.h
+++ b/ndk/platforms/android-9/include/android/native_window_jni.h
@@ -21,7 +21,9 @@
#include <jni.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* Return the ANativeWindow associated with a Java Surface object,
@@ -31,6 +33,8 @@
*/
ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_NATIVE_WINDOW_H */
+#endif // ANDROID_NATIVE_WINDOW_H
diff --git a/ndk/platforms/android-9/include/android/obb.h b/ndk/platforms/android-9/include/android/obb.h
index 5670b1c..65e9b2a 100644
--- a/ndk/platforms/android-9/include/android/obb.h
+++ b/ndk/platforms/android-9/include/android/obb.h
@@ -18,10 +18,11 @@
#ifndef ANDROID_OBB_H
#define ANDROID_OBB_H
-#include <sys/cdefs.h>
#include <sys/types.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
struct AObbInfo;
typedef struct AObbInfo AObbInfo;
@@ -55,6 +56,8 @@
*/
int32_t AObbInfo_getFlags(AObbInfo* obbInfo);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_OBB_H */
+#endif // ANDROID_OBB_H
diff --git a/ndk/platforms/android-9/include/android/rect.h b/ndk/platforms/android-9/include/android/rect.h
index 161c2a7..3e81f53 100644
--- a/ndk/platforms/android-9/include/android/rect.h
+++ b/ndk/platforms/android-9/include/android/rect.h
@@ -18,9 +18,9 @@
#ifndef ANDROID_RECT_H
#define ANDROID_RECT_H
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
typedef struct ARect {
int32_t left;
@@ -29,6 +29,8 @@
int32_t bottom;
} ARect;
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_RECT_H */
+#endif // ANDROID_RECT_H
diff --git a/ndk/platforms/android-9/include/android/sensor.h b/ndk/platforms/android-9/include/android/sensor.h
index eb46ef0..f163f18 100644
--- a/ndk/platforms/android-9/include/android/sensor.h
+++ b/ndk/platforms/android-9/include/android/sensor.h
@@ -39,12 +39,14 @@
* native code.
*
*/
-#include <sys/cdefs.h>
+
#include <sys/types.h>
#include <android/looper.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
@@ -247,6 +249,8 @@
int ASensor_getMinDelay(ASensor const* sensor);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_SENSOR_H */
+#endif // ANDROID_SENSOR_H
diff --git a/ndk/platforms/android-9/include/android/storage_manager.h b/ndk/platforms/android-9/include/android/storage_manager.h
index f3b08dc..bad2491 100644
--- a/ndk/platforms/android-9/include/android/storage_manager.h
+++ b/ndk/platforms/android-9/include/android/storage_manager.h
@@ -18,10 +18,11 @@
#ifndef ANDROID_STORAGE_MANAGER_H
#define ANDROID_STORAGE_MANAGER_H
-#include <sys/cdefs.h>
#include <stdint.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
struct AStorageManager;
typedef struct AStorageManager AStorageManager;
@@ -119,6 +120,8 @@
const char* AStorageManager_getMountedObbPath(AStorageManager* mgr, const char* filename);
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_STORAGE_MANAGER_H */
+#endif // ANDROID_STORAGE_MANAGER_H
diff --git a/ndk/platforms/android-9/include/android/window.h b/ndk/platforms/android-9/include/android/window.h
index 0633f89..2ab192b 100644
--- a/ndk/platforms/android-9/include/android/window.h
+++ b/ndk/platforms/android-9/include/android/window.h
@@ -18,9 +18,9 @@
#ifndef ANDROID_WINDOW_H
#define ANDROID_WINDOW_H
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* Window flags, as per the Java API at android.view.WindowManager.LayoutParams.
@@ -51,6 +51,8 @@
AWINDOW_FLAG_DISMISS_KEYGUARD = 0x00400000,
};
-__END_DECLS
+#ifdef __cplusplus
+};
+#endif
-#endif /* ANDROID_WINDOW_H */
+#endif // ANDROID_WINDOW_H
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 6e39538..e9acbb4 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -671,6 +671,13 @@
</intent-filter>
</activity>
+ <activity android:name=".os.RotationVectorDemo" android:label="OS/Rotation Vector" android:screenOrientation="nosensor">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.SAMPLE_CODE" />
+ </intent-filter>
+ </activity>
+
<activity android:name=".os.SmsMessagingDemo" android:label="OS/SMS Messaging">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/samples/ApiDemos/res/menu/camera_menu.xml b/samples/ApiDemos/res/menu/camera_menu.xml
new file mode 100644
index 0000000..16504b7
--- /dev/null
+++ b/samples/ApiDemos/res/menu/camera_menu.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/switch_cam"
+ android:title="@string/switch_cam" />
+</menu>
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 4e61b8f..7adf48d 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -498,6 +498,8 @@
<string name="hide_me">Hide Me!</string>
<string name="density_title">Density: Unknown Screen</string>
+ <string name="camera_alert">Device has only one camera!</string>
+ <string name="switch_cam">Switch Camera</string>
<!-- ============================ -->
<!-- media examples strings -->
diff --git a/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.java b/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.java
index 22dc297..73d50cb 100644
--- a/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.java
+++ b/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.java
@@ -17,11 +17,16 @@
package com.example.android.apis.graphics;
import android.app.Activity;
+import android.app.AlertDialog;
import android.content.Context;
import android.hardware.Camera;
+import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
@@ -32,11 +37,20 @@
import java.io.IOException;
import java.util.List;
+// Need the following import to get access to the app resources, since this
+// class is in a sub-package.
+import com.example.android.apis.R;
+
// ----------------------------------------------------------------------
public class CameraPreview extends Activity {
private Preview mPreview;
Camera mCamera;
+ int numberOfCameras;
+ int cameraCurrentlyLocked;
+
+ // The first rear facing camera
+ int defaultCameraId;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -50,13 +64,27 @@
// and set it as the content of our activity.
mPreview = new Preview(this);
setContentView(mPreview);
+
+ // Find the total number of cameras available
+ numberOfCameras = Camera.getNumberOfCameras();
+
+ // Find the ID of the default camera
+ CameraInfo cameraInfo = new CameraInfo();
+ for (int i = 0; i < numberOfCameras; i++) {
+ Camera.getCameraInfo(i, cameraInfo);
+ if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
+ defaultCameraId = i;
+ }
+ }
}
@Override
protected void onResume() {
super.onResume();
+ // Open the default i.e. the first rear facing camera.
mCamera = Camera.open();
+ cameraCurrentlyLocked = defaultCameraId;
mPreview.setCamera(mCamera);
}
@@ -72,6 +100,55 @@
mCamera = null;
}
}
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+
+ // Inflate our menu which can gather user input for switching camera
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.camera_menu, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle item selection
+ switch (item.getItemId()) {
+ case R.id.switch_cam:
+ // check for availability of multiple cameras
+ if (numberOfCameras == 1) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setMessage(this.getString(R.string.camera_alert))
+ .setNeutralButton("Close", null);
+ AlertDialog alert = builder.create();
+ alert.show();
+ return true;
+ }
+
+ // OK, we have multiple cameras.
+ // Release this camera -> cameraCurrentlyLocked
+ if (mCamera != null) {
+ mCamera.stopPreview();
+ mPreview.setCamera(null);
+ mCamera.release();
+ mCamera = null;
+ }
+
+ // Acquire the next camera and request Preview to reconfigure
+ // parameters.
+ mCamera = Camera
+ .open((cameraCurrentlyLocked + 1) % numberOfCameras);
+ cameraCurrentlyLocked = (cameraCurrentlyLocked + 1)
+ % numberOfCameras;
+ mPreview.switchCamera(mCamera);
+
+ // Start the preview
+ mCamera.startPreview();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
}
// ----------------------------------------------------------------------
@@ -111,6 +188,20 @@
}
}
+ public void switchCamera(Camera camera) {
+ setCamera(camera);
+ try {
+ camera.setPreviewDisplay(mHolder);
+ } catch (IOException exception) {
+ Log.e(TAG, "IOException caused by setPreviewDisplay()", exception);
+ }
+ Camera.Parameters parameters = camera.getParameters();
+ parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
+ requestLayout();
+
+ camera.setParameters(parameters);
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// We purposely disregard child measurements because act as a
diff --git a/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.java b/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.java
new file mode 100644
index 0000000..7417809
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.os;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+import android.app.Activity;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.opengl.GLSurfaceView;
+import android.os.Bundle;
+
+/**
+ * Wrapper activity demonstrating the use of the new
+ * {@link SensorEvent#values rotation vector sensor}
+ * ({@link Sensor#TYPE_ROTATION_VECTOR TYPE_ROTATION_VECTOR}).
+ *
+ * @see Sensor
+ * @see SensorEvent
+ * @see SensorManager
+ *
+ */
+public class RotationVectorDemo extends Activity {
+ private GLSurfaceView mGLSurfaceView;
+ private SensorManager mSensorManager;
+ private MyRenderer mRenderer;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // Get an instance of the SensorManager
+ mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
+
+ // Create our Preview view and set it as the content of our
+ // Activity
+ mRenderer = new MyRenderer();
+ mGLSurfaceView = new GLSurfaceView(this);
+ mGLSurfaceView.setRenderer(mRenderer);
+ setContentView(mGLSurfaceView);
+ }
+
+ @Override
+ protected void onResume() {
+ // Ideally a game should implement onResume() and onPause()
+ // to take appropriate action when the activity looses focus
+ super.onResume();
+ mRenderer.start();
+ mGLSurfaceView.onResume();
+ }
+
+ @Override
+ protected void onPause() {
+ // Ideally a game should implement onResume() and onPause()
+ // to take appropriate action when the activity looses focus
+ super.onPause();
+ mRenderer.stop();
+ mGLSurfaceView.onPause();
+ }
+
+
+ class MyRenderer implements GLSurfaceView.Renderer, SensorEventListener {
+ private Cube mCube;
+ private Sensor mRotationVectorSensor;
+ private final float[] mRotationMatrix = new float[16];
+
+ public MyRenderer() {
+ // find the rotation-vector sensor
+ mRotationVectorSensor = mSensorManager.getDefaultSensor(
+ Sensor.TYPE_ROTATION_VECTOR);
+
+ mCube = new Cube();
+ // initialize the rotation matrix to identity
+ mRotationMatrix[ 0] = 1;
+ mRotationMatrix[ 4] = 1;
+ mRotationMatrix[ 8] = 1;
+ mRotationMatrix[12] = 1;
+ }
+
+ public void start() {
+ // enable our sensor when the activity is resumed, ask for
+ // 10 ms updates.
+ mSensorManager.registerListener(this, mRotationVectorSensor, 10000);
+ }
+
+ public void stop() {
+ // make sure to turn our sensor off when the activity is paused
+ mSensorManager.unregisterListener(this);
+ }
+
+ public void onSensorChanged(SensorEvent event) {
+ // we received a sensor event. it is a good practice to check
+ // that we received the proper event
+ if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
+ // convert the rotation-vector to a 4x4 matrix. the matrix
+ // is interpreted by Open GL as the inverse of the
+ // rotation-vector, which is what we want.
+ SensorManager.getRotationMatrixFromVector(
+ mRotationMatrix , event.values);
+ }
+ }
+
+ public void onDrawFrame(GL10 gl) {
+ // clear screen
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ // set-up modelview matrix
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+ gl.glTranslatef(0, 0, -3.0f);
+ gl.glMultMatrixf(mRotationMatrix, 0);
+
+ // draw our object
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+ gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
+
+ mCube.draw(gl);
+ }
+
+ public void onSurfaceChanged(GL10 gl, int width, int height) {
+ // set view-port
+ gl.glViewport(0, 0, width, height);
+ // set projection matrix
+ float ratio = (float) width / height;
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
+ }
+
+ public void onSurfaceCreated(GL10 gl, EGLConfig config) {
+ // dither is enabled by default, we don't need it
+ gl.glDisable(GL10.GL_DITHER);
+ // clear screen in white
+ gl.glClearColor(1,1,1,1);
+ }
+
+ class Cube {
+ // initialize our cube
+ private FloatBuffer mVertexBuffer;
+ private FloatBuffer mColorBuffer;
+ private ByteBuffer mIndexBuffer;
+
+ public Cube() {
+ final float vertices[] = {
+ -1, -1, -1, 1, -1, -1,
+ 1, 1, -1, -1, 1, -1,
+ -1, -1, 1, 1, -1, 1,
+ 1, 1, 1, -1, 1, 1,
+ };
+
+ final float colors[] = {
+ 0, 0, 0, 1, 1, 0, 0, 1,
+ 1, 1, 0, 1, 0, 1, 0, 1,
+ 0, 0, 1, 1, 1, 0, 1, 1,
+ 1, 1, 1, 1, 0, 1, 1, 1,
+ };
+
+ final byte indices[] = {
+ 0, 4, 5, 0, 5, 1,
+ 1, 5, 6, 1, 6, 2,
+ 2, 6, 7, 2, 7, 3,
+ 3, 7, 4, 3, 4, 0,
+ 4, 7, 6, 4, 6, 5,
+ 3, 0, 1, 3, 1, 2
+ };
+
+ ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length*4);
+ vbb.order(ByteOrder.nativeOrder());
+ mVertexBuffer = vbb.asFloatBuffer();
+ mVertexBuffer.put(vertices);
+ mVertexBuffer.position(0);
+
+ ByteBuffer cbb = ByteBuffer.allocateDirect(colors.length*4);
+ cbb.order(ByteOrder.nativeOrder());
+ mColorBuffer = cbb.asFloatBuffer();
+ mColorBuffer.put(colors);
+ mColorBuffer.position(0);
+
+ mIndexBuffer = ByteBuffer.allocateDirect(indices.length);
+ mIndexBuffer.put(indices);
+ mIndexBuffer.position(0);
+ }
+
+ public void draw(GL10 gl) {
+ gl.glEnable(GL10.GL_CULL_FACE);
+ gl.glFrontFace(GL10.GL_CW);
+ gl.glShadeModel(GL10.GL_SMOOTH);
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer);
+ gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
+ gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_BYTE, mIndexBuffer);
+ }
+ }
+
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
+ }
+ }
+}
diff --git a/samples/CubeLiveWallpaper/_index.html b/samples/CubeLiveWallpaper/_index.html
index f6aa931..a429215 100644
--- a/samples/CubeLiveWallpaper/_index.html
+++ b/samples/CubeLiveWallpaper/_index.html
@@ -4,8 +4,8 @@
<p>In terms of implementation, a live wallpaper is very similar to a regular
Android <a href="../../../reference/android/app/Service.html">service</a>. The
only difference is the addition of a new method, <a
-href="../../../reference/android/service/wallpaper/WallpaperService.
-html#onCreateEngine()"><code>onCreateEngine()</code></a>, whose goal is to
+href="../../../reference/android/service/wallpaper/WallpaperService.html#onCreateEngine()"><code>
+onCreateEngine()</code></a>, whose goal is to
create a <a
href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html">
<code>WallpaperService.Engine</code></a>. The engine is responsible for
diff --git a/samples/SearchableDictionary/_index.html b/samples/SearchableDictionary/_index.html
index 4f753e6..ce3ec54 100644
--- a/samples/SearchableDictionary/_index.html
+++ b/samples/SearchableDictionary/_index.html
@@ -12,7 +12,7 @@
<li>Implement a search interface using Android's search framework</li>
<li>Provide custom search suggestions and offer them in Quick Search Box</li>
<li>Create an SQLite database and an FTS3 table for full-text searches</li>
- <li>Create a <a href="../../../guide/topics/providers/content-provider.html">content
+ <li>Create a <a href="../../../guide/topics/providers/content-providers.html">content
provider</a> to perform all search and suggestion queries</li>
<li>Use <code><a
href="../../../reference/android/widget/SimpleCursorAdapter.html">SimpleCursorAdapter</a></code> to
diff --git a/samples/SipDemo/_index.html b/samples/SipDemo/_index.html
index dbc9037..0af4a8c 100644
--- a/samples/SipDemo/_index.html
+++ b/samples/SipDemo/_index.html
@@ -13,7 +13,7 @@
href="src/com/example/android/sip/SipSettings.html"><code>SipSettings</code></a>
— a <code>PreferenceActivity</code> that supplies basic settings for SIP
authentication.</li> <li><a
- href="src/com/example/android/sip/cube1/IncomingCallReceiver.html"><code>
+ href="src/com/example/android/sip/IncomingCallReceiver.html"><code>
IncomingCallReceiver</code></a> — a <code>BroadcastReceiver</code>
that listens for incoming SIP calls and passes them to
<code>WalkieTalkieActivity</code> for handling.</li> <li><a
diff --git a/sdk/doc_source.properties b/sdk/doc_source.properties
index 4418853..3ed9272 100644
--- a/sdk/doc_source.properties
+++ b/sdk/doc_source.properties
@@ -1,5 +1,5 @@
Pkg.UserSrc=false
Pkg.Revision=1
-AndroidVersion.ApiLevel=9
+AndroidVersion.ApiLevel=10
#AndroidVersion.CodeName=
diff --git a/sdk/plat_tools_source.properties b/sdk/plat_tools_source.properties
index ba79b6c..f23e52a 100644
--- a/sdk/plat_tools_source.properties
+++ b/sdk/plat_tools_source.properties
@@ -1,2 +1,2 @@
Pkg.UserSrc=false
-Pkg.Revision=1
+Pkg.Revision=3
diff --git a/sdk/platform_source.properties b/sdk/platform_source.properties
index 6dadea5..e7557af 100644
--- a/sdk/platform_source.properties
+++ b/sdk/platform_source.properties
@@ -1,6 +1,6 @@
-Pkg.Desc=Android SDK Platform 2.3_r1
+Pkg.Desc=Android SDK Platform 2.4_r1
Pkg.UserSrc=false
-Platform.Version=2.3
+Platform.Version=2.4
Pkg.Revision=1
-AndroidVersion.ApiLevel=9
+AndroidVersion.ApiLevel=10
#AndroidVersion.CodeName=
diff --git a/tools/emulator/skins/HVGA/arrow_down.png b/tools/emulator/skins/HVGA/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/HVGA/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/arrow_left.png b/tools/emulator/skins/HVGA/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/HVGA/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/arrow_right.png b/tools/emulator/skins/HVGA/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/HVGA/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/arrow_up.png b/tools/emulator/skins/HVGA/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/HVGA/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/background_land.png b/tools/emulator/skins/HVGA/background_land.png
new file mode 100644
index 0000000..09c857b
--- /dev/null
+++ b/tools/emulator/skins/HVGA/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/background_port.png b/tools/emulator/skins/HVGA/background_port.png
new file mode 100644
index 0000000..a452934
--- /dev/null
+++ b/tools/emulator/skins/HVGA/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/button.png b/tools/emulator/skins/HVGA/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/HVGA/button.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/controls.png b/tools/emulator/skins/HVGA/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/HVGA/controls.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/hardware.ini b/tools/emulator/skins/HVGA/hardware.ini
new file mode 100644
index 0000000..8de5e21
--- /dev/null
+++ b/tools/emulator/skins/HVGA/hardware.ini
@@ -0,0 +1,3 @@
+# skin-specific hardware values
+hw.lcd.density=160
+hw.ramSize=256
\ No newline at end of file
diff --git a/tools/emulator/skins/HVGA/key.png b/tools/emulator/skins/HVGA/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/HVGA/key.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/keyboard.png b/tools/emulator/skins/HVGA/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/HVGA/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/layout b/tools/emulator/skins/HVGA/layout
new file mode 100644
index 0000000..cc82dde
--- /dev/null
+++ b/tools/emulator/skins/HVGA/layout
@@ -0,0 +1,443 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 320
+ height 480
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 791
+ height 534
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 800
+ y 0
+ }
+
+ part3 {
+ name device
+ x 28
+ y 27
+ }
+ part4 {
+ name controls
+ x 476
+ y 77
+ }
+ part5 {
+ name keyboard
+ x 395
+ y 328
+ }
+
+ }
+
+ landscape {
+ width 640
+ height 601
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ # the framework _always_ assume that the DPad
+ # has been physically rotated in landscape mode.
+ # however, with this skin, this is not the case
+ #
+ dpad-rotation 3
+
+ part1 {
+ name portrait
+ x 800
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 80
+ y 349
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 410
+ y 396
+ }
+
+ part5 {
+ name keyboard
+ x 18
+ y 396
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/HVGA/select.png b/tools/emulator/skins/HVGA/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/HVGA/select.png
Binary files differ
diff --git a/tools/emulator/skins/HVGA/spacebar.png b/tools/emulator/skins/HVGA/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/HVGA/spacebar.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/arrow_down.png b/tools/emulator/skins/QVGA/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/QVGA/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/arrow_left.png b/tools/emulator/skins/QVGA/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/QVGA/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/arrow_right.png b/tools/emulator/skins/QVGA/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/QVGA/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/arrow_up.png b/tools/emulator/skins/QVGA/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/QVGA/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/background_land.png b/tools/emulator/skins/QVGA/background_land.png
new file mode 100644
index 0000000..cb002b5
--- /dev/null
+++ b/tools/emulator/skins/QVGA/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/background_port.png b/tools/emulator/skins/QVGA/background_port.png
new file mode 100644
index 0000000..6728562
--- /dev/null
+++ b/tools/emulator/skins/QVGA/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/button.png b/tools/emulator/skins/QVGA/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/QVGA/button.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/controls.png b/tools/emulator/skins/QVGA/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/QVGA/controls.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/hardware.ini b/tools/emulator/skins/QVGA/hardware.ini
new file mode 100644
index 0000000..1421893
--- /dev/null
+++ b/tools/emulator/skins/QVGA/hardware.ini
@@ -0,0 +1,3 @@
+# skin-specific hardware values
+hw.lcd.density=120
+hw.ramSize=256
diff --git a/tools/emulator/skins/QVGA/key.png b/tools/emulator/skins/QVGA/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/QVGA/key.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/keyboard.png b/tools/emulator/skins/QVGA/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/QVGA/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/layout b/tools/emulator/skins/QVGA/layout
new file mode 100644
index 0000000..96f2133
--- /dev/null
+++ b/tools/emulator/skins/QVGA/layout
@@ -0,0 +1,439 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 240
+ height 320
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 711
+ height 435
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 800
+ y 0
+ }
+
+ part3 {
+ name device
+ x 28
+ y 58
+ }
+ part4 {
+ name controls
+ x 396
+ y 27
+ }
+ part5 {
+ name keyboard
+ x 315
+ y 229
+ }
+ }
+
+ landscape {
+ width 640
+ height 522
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ dpad-rotation 3
+
+
+ part1 {
+ name portrait
+ x 800
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 160
+ y 270
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 410
+ y 317
+ }
+
+ part5 {
+ name keyboard
+ x 18
+ y 317
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/QVGA/select.png b/tools/emulator/skins/QVGA/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/QVGA/select.png
Binary files differ
diff --git a/tools/emulator/skins/QVGA/spacebar.png b/tools/emulator/skins/QVGA/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/QVGA/spacebar.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/arrow_down.png b/tools/emulator/skins/WQVGA400/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/arrow_left.png b/tools/emulator/skins/WQVGA400/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/arrow_right.png b/tools/emulator/skins/WQVGA400/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/arrow_up.png b/tools/emulator/skins/WQVGA400/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/background_land.png b/tools/emulator/skins/WQVGA400/background_land.png
new file mode 100644
index 0000000..c3fbee9
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/background_port.png b/tools/emulator/skins/WQVGA400/background_port.png
new file mode 100644
index 0000000..c88edb8
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/button.png b/tools/emulator/skins/WQVGA400/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/button.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/controls.png b/tools/emulator/skins/WQVGA400/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/controls.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/hardware.ini b/tools/emulator/skins/WQVGA400/hardware.ini
new file mode 100644
index 0000000..1421893
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/hardware.ini
@@ -0,0 +1,3 @@
+# skin-specific hardware values
+hw.lcd.density=120
+hw.ramSize=256
diff --git a/tools/emulator/skins/WQVGA400/key.png b/tools/emulator/skins/WQVGA400/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/key.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/keyboard.png b/tools/emulator/skins/WQVGA400/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/layout b/tools/emulator/skins/WQVGA400/layout
new file mode 100644
index 0000000..4d71adf
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/layout
@@ -0,0 +1,438 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 240
+ height 400
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 711
+ height 454
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 800
+ y 0
+ }
+
+ part3 {
+ name device
+ x 28
+ y 27
+ }
+ part4 {
+ name controls
+ x 396
+ y 37
+ }
+ part5 {
+ name keyboard
+ x 315
+ y 248
+ }
+ }
+
+ landscape {
+ width 640
+ height 522
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ dpad-rotation 3
+
+ part1 {
+ name portrait
+ x 800
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 120
+ y 270
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 410
+ y 317
+ }
+
+ part5 {
+ name keyboard
+ x 18
+ y 317
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/WQVGA400/select.png b/tools/emulator/skins/WQVGA400/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/select.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA400/spacebar.png b/tools/emulator/skins/WQVGA400/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/WQVGA400/spacebar.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/arrow_down.png b/tools/emulator/skins/WQVGA432/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/arrow_left.png b/tools/emulator/skins/WQVGA432/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/arrow_right.png b/tools/emulator/skins/WQVGA432/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/arrow_up.png b/tools/emulator/skins/WQVGA432/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/background_land.png b/tools/emulator/skins/WQVGA432/background_land.png
new file mode 100644
index 0000000..1450e25
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/background_port.png b/tools/emulator/skins/WQVGA432/background_port.png
new file mode 100644
index 0000000..891ab45
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/button.png b/tools/emulator/skins/WQVGA432/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/button.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/controls.png b/tools/emulator/skins/WQVGA432/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/controls.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/hardware.ini b/tools/emulator/skins/WQVGA432/hardware.ini
new file mode 100644
index 0000000..1421893
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/hardware.ini
@@ -0,0 +1,3 @@
+# skin-specific hardware values
+hw.lcd.density=120
+hw.ramSize=256
diff --git a/tools/emulator/skins/WQVGA432/key.png b/tools/emulator/skins/WQVGA432/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/key.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/keyboard.png b/tools/emulator/skins/WQVGA432/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/layout b/tools/emulator/skins/WQVGA432/layout
new file mode 100644
index 0000000..006e955
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/layout
@@ -0,0 +1,438 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 240
+ height 432
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 711
+ height 486
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 800
+ y 0
+ }
+
+ part3 {
+ name device
+ x 28
+ y 27
+ }
+ part4 {
+ name controls
+ x 396
+ y 53
+ }
+ part5 {
+ name keyboard
+ x 315
+ y 280
+ }
+ }
+
+ landscape {
+ width 640
+ height 522
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ dpad-rotation 3
+
+ part1 {
+ name portrait
+ x 800
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 104
+ y 270
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 410
+ y 317
+ }
+
+ part5 {
+ name keyboard
+ x 18
+ y 317
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/WQVGA432/select.png b/tools/emulator/skins/WQVGA432/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/select.png
Binary files differ
diff --git a/tools/emulator/skins/WQVGA432/spacebar.png b/tools/emulator/skins/WQVGA432/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/WQVGA432/spacebar.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/arrow_down.png b/tools/emulator/skins/WVGA800/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/arrow_left.png b/tools/emulator/skins/WVGA800/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/arrow_right.png b/tools/emulator/skins/WVGA800/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/arrow_up.png b/tools/emulator/skins/WVGA800/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/background_land.png b/tools/emulator/skins/WVGA800/background_land.png
new file mode 100644
index 0000000..4967717
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/background_port.png b/tools/emulator/skins/WVGA800/background_port.png
new file mode 100644
index 0000000..13ef2ea
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/button.png b/tools/emulator/skins/WVGA800/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/button.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/controls.png b/tools/emulator/skins/WVGA800/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/controls.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/hardware.ini b/tools/emulator/skins/WVGA800/hardware.ini
new file mode 100644
index 0000000..19e3b35
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/hardware.ini
@@ -0,0 +1,4 @@
+# skin-specific hardware values
+hw.lcd.density=240
+vm.heapSize=24
+hw.ramSize=256
\ No newline at end of file
diff --git a/tools/emulator/skins/WVGA800/key.png b/tools/emulator/skins/WVGA800/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/key.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/keyboard.png b/tools/emulator/skins/WVGA800/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/layout b/tools/emulator/skins/WVGA800/layout
new file mode 100644
index 0000000..63647f3
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/layout
@@ -0,0 +1,439 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 480
+ height 800
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 950
+ height 854
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 1000
+ y 0
+ }
+
+ part3 {
+ name device
+ x 27
+ y 27
+ }
+ part4 {
+ name controls
+ x 635
+ y 207
+ }
+ part5 {
+ name keyboard
+ x 554
+ y 459
+ }
+
+ }
+
+ landscape {
+ width 853
+ height 761
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ dpad-rotation 3
+
+ part1 {
+ name portrait
+ x 900
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 26
+ y 509
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 539
+ y 556
+ }
+
+ part5 {
+ name keyboard
+ x 98
+ y 556
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/WVGA800/select.png b/tools/emulator/skins/WVGA800/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/select.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA800/spacebar.png b/tools/emulator/skins/WVGA800/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/WVGA800/spacebar.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/arrow_down.png b/tools/emulator/skins/WVGA854/arrow_down.png
new file mode 100644
index 0000000..b9fde22
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/arrow_down.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/arrow_left.png b/tools/emulator/skins/WVGA854/arrow_left.png
new file mode 100644
index 0000000..281b192
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/arrow_left.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/arrow_right.png b/tools/emulator/skins/WVGA854/arrow_right.png
new file mode 100644
index 0000000..4cbc65d
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/arrow_right.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/arrow_up.png b/tools/emulator/skins/WVGA854/arrow_up.png
new file mode 100644
index 0000000..29c7121
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/arrow_up.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/background_land.png b/tools/emulator/skins/WVGA854/background_land.png
new file mode 100644
index 0000000..4f0f90e
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/background_land.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/background_port.png b/tools/emulator/skins/WVGA854/background_port.png
new file mode 100644
index 0000000..e35bf67
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/background_port.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/button.png b/tools/emulator/skins/WVGA854/button.png
new file mode 100644
index 0000000..8281d20
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/button.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/controls.png b/tools/emulator/skins/WVGA854/controls.png
new file mode 100644
index 0000000..04b85e2
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/controls.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/hardware.ini b/tools/emulator/skins/WVGA854/hardware.ini
new file mode 100644
index 0000000..9434288
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/hardware.ini
@@ -0,0 +1,4 @@
+# skin-specific hardware values
+hw.lcd.density=240
+vm.heapSize=24
+hw.ramSize=256
diff --git a/tools/emulator/skins/WVGA854/key.png b/tools/emulator/skins/WVGA854/key.png
new file mode 100644
index 0000000..40b03bf
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/key.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/keyboard.png b/tools/emulator/skins/WVGA854/keyboard.png
new file mode 100644
index 0000000..ca49dcf
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/keyboard.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/layout b/tools/emulator/skins/WVGA854/layout
new file mode 100644
index 0000000..b086ddc
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/layout
@@ -0,0 +1,439 @@
+parts {
+ portrait {
+ background {
+ image background_port.png
+ }
+ }
+ landscape {
+ background {
+ image background_land.png
+ }
+ }
+
+ device {
+ display {
+ width 480
+ height 854
+ x 0
+ y 0
+ }
+ }
+
+ controls {
+ background {
+ image controls.png
+ }
+ buttons {
+ soft-left {
+ image button.png
+ x 56
+ y 142
+ }
+ home {
+ image button.png
+ x 0
+ y 142
+ }
+ back {
+ image button.png
+ x 112
+ y 142
+ }
+ dpad-up {
+ image arrow_up.png
+ x 77
+ y 53
+ }
+ dpad-down {
+ image arrow_down.png
+ x 77
+ y 106
+ }
+ dpad-left {
+ image arrow_left.png
+ x 53
+ y 53
+ }
+ dpad-right {
+ image arrow_right.png
+ x 123
+ y 53
+ }
+ dpad-center {
+ image select.png
+ x 77
+ y 81
+ }
+ phone-dial {
+ image button.png
+ x 0
+ y 71
+ }
+ phone-hangup {
+ image button.png
+ x 168
+ y 71
+ }
+
+ power {
+ image button.png
+ x 168
+ y 0
+ }
+
+ volume-up {
+ image button.png
+ x 112
+ y 0
+ }
+
+ volume-down {
+ image button.png
+ x 56
+ y 0
+ }
+
+ search {
+ image button.png
+ x 168
+ y 142
+ }
+
+ }
+ }
+
+ keyboard {
+ background {
+ image keyboard.png
+ }
+ buttons {
+ 1 {
+ image key.png
+ x 5
+ y 5
+ }
+ 2 {
+ image key.png
+ x 42
+ y 5
+ }
+ 3 {
+ image key.png
+ x 79
+ y 5
+ }
+ 4 {
+ image key.png
+ x 116
+ y 5
+ }
+ 5 {
+ image key.png
+ x 153
+ y 5
+ }
+ 6 {
+ image key.png
+ x 190
+ y 5
+ }
+ 7 {
+ image key.png
+ x 227
+ y 5
+ }
+ 8 {
+ image key.png
+ x 264
+ y 5
+ }
+ 9 {
+ image key.png
+ x 301
+ y 5
+ }
+ 0 {
+ image key.png
+ x 338
+ y 5
+ }
+
+ q {
+ image key.png
+ x 5
+ y 41
+ }
+ w {
+ image key.png
+ x 42
+ y 41
+ }
+ e {
+ image key.png
+ x 79
+ y 41
+ }
+ r {
+ image key.png
+ x 116
+ y 41
+ }
+ t {
+ image key.png
+ x 153
+ y 41
+ }
+ y {
+ image key.png
+ x 190
+ y 41
+ }
+ u {
+ image key.png
+ x 227
+ y 41
+ }
+ i {
+ image key.png
+ x 264
+ y 41
+ }
+ o {
+ image key.png
+ x 301
+ y 41
+ }
+ p {
+ image key.png
+ x 338
+ y 41
+ }
+
+ a {
+ image key.png
+ x 5
+ y 77
+ }
+ s {
+ image key.png
+ x 42
+ y 77
+ }
+ d {
+ image key.png
+ x 79
+ y 77
+ }
+ f {
+ image key.png
+ x 116
+ y 77
+ }
+ g {
+ image key.png
+ x 153
+ y 77
+ }
+ h {
+ image key.png
+ x 190
+ y 77
+ }
+ j {
+ image key.png
+ x 227
+ y 77
+ }
+ k {
+ image key.png
+ x 264
+ y 77
+ }
+ l {
+ image key.png
+ x 301
+ y 77
+ }
+ DEL {
+ image key.png
+ x 338
+ y 77
+ }
+
+ CAP {
+ image key.png
+ x 5
+ y 113
+ }
+ z {
+ image key.png
+ x 42
+ y 113
+ }
+ x {
+ image key.png
+ x 79
+ y 113
+ }
+ c {
+ image key.png
+ x 116
+ y 113
+ }
+ v {
+ image key.png
+ x 153
+ y 113
+ }
+ b {
+ image key.png
+ x 190
+ y 113
+ }
+ n {
+ image key.png
+ x 227
+ y 113
+ }
+ m {
+ image key.png
+ x 264
+ y 113
+ }
+ PERIOD {
+ image key.png
+ x 301
+ y 113
+ }
+ ENTER {
+ image key.png
+ x 338
+ y 113
+ }
+
+ ALT {
+ image key.png
+ x 5
+ y 149
+ }
+ SYM {
+ image key.png
+ x 42
+ y 149
+ }
+ AT {
+ image key.png
+ x 79
+ y 149
+ }
+ SPACE {
+ image spacebar.png
+ x 116
+ y 149
+ }
+ SLASH {
+ image key.png
+ x 264
+ y 149
+ }
+ COMMA {
+ image key.png
+ x 301
+ y 149
+ }
+ ALT2 {
+ image key.png
+ x 338
+ y 149
+ }
+
+ }
+ }
+}
+
+layouts {
+ portrait {
+ width 950
+ height 908
+ color 0xe0e0e0
+ event EV_SW:0:1
+
+ part1 {
+ name portrait
+ x 0
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 1000
+ y 0
+ }
+
+ part3 {
+ name device
+ x 27
+ y 27
+ }
+ part4 {
+ name controls
+ x 635
+ y 234
+ }
+ part5 {
+ name keyboard
+ x 554
+ y 486
+ }
+
+ }
+
+ landscape {
+ width 907
+ height 761
+ color 0xe0e0e0
+ event EV_SW:0:0
+
+ dpad-rotation 3
+
+ part1 {
+ name portrait
+ x 900
+ y 0
+ }
+
+ part2 {
+ name landscape
+ x 0
+ y 0
+ }
+
+ part3 {
+ name device
+ x 26
+ y 509
+ rotation 3
+ }
+
+ part4 {
+ name controls
+ x 567
+ y 556
+ }
+
+ part5 {
+ name keyboard
+ x 126
+ y 556
+ }
+ }
+}
+
+keyboard {
+ charmap qwerty2
+}
+
+network {
+ speed full
+ delay none
+}
diff --git a/tools/emulator/skins/WVGA854/select.png b/tools/emulator/skins/WVGA854/select.png
new file mode 100644
index 0000000..f4a65d3
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/select.png
Binary files differ
diff --git a/tools/emulator/skins/WVGA854/spacebar.png b/tools/emulator/skins/WVGA854/spacebar.png
new file mode 100644
index 0000000..aa459bd
--- /dev/null
+++ b/tools/emulator/skins/WVGA854/spacebar.png
Binary files differ