summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java16
-rw-r--r--carousel/test/res/values-am/strings.xml2
-rw-r--r--carousel/test/res/values-az-rAZ/strings.xml (renamed from carousel/test/res/values-be/strings.xml)6
-rw-r--r--carousel/test/res/values-az/strings.xml28
-rw-r--r--carousel/test/res/values-ca/strings.xml2
-rw-r--r--carousel/test/res/values-en-rIN/strings.xml28
-rw-r--r--carousel/test/res/values-et-rEE/strings.xml (renamed from carousel/test/res/values-et/strings.xml)0
-rw-r--r--carousel/test/res/values-fr-rCA/strings.xml28
-rw-r--r--carousel/test/res/values-hy-rAM/strings.xml28
-rw-r--r--carousel/test/res/values-iw/strings.xml4
-rw-r--r--carousel/test/res/values-ka-rGE/strings.xml28
-rw-r--r--carousel/test/res/values-km-rKH/strings.xml28
-rw-r--r--carousel/test/res/values-lo-rLA/strings.xml28
-rw-r--r--carousel/test/res/values-mn-rMN/strings.xml28
-rw-r--r--carousel/test/res/values-ms-rMY/strings.xml (renamed from carousel/test/res/values-ms/strings.xml)0
-rw-r--r--carousel/test/res/values-nb/strings.xml4
-rw-r--r--carousel/test/res/values-ne-rNP/strings.xml28
-rw-r--r--carousel/test/res/values-ne/strings.xml28
-rw-r--r--carousel/test/res/values-si-rLK/strings.xml28
-rw-r--r--carousel/test/res/values-si/strings.xml28
-rw-r--r--carousel/test/res/values-zh-rHK/strings.xml28
-rw-r--r--chips/res/values-az-rAZ/strings.xml (renamed from chips/res/values-be/strings.xml)6
-rw-r--r--chips/res/values-az/strings.xml23
-rw-r--r--chips/res/values-en-rIN/strings.xml23
-rw-r--r--chips/res/values-et-rEE/strings.xml (renamed from chips/res/values-et/strings.xml)0
-rw-r--r--chips/res/values-fr-rCA/strings.xml23
-rw-r--r--chips/res/values-hy-rAM/strings.xml23
-rw-r--r--chips/res/values-ka-rGE/strings.xml23
-rw-r--r--chips/res/values-km-rKH/strings.xml23
-rw-r--r--chips/res/values-lo-rLA/strings.xml23
-rw-r--r--chips/res/values-mn-rMN/strings.xml23
-rw-r--r--chips/res/values-ms-rMY/strings.xml (renamed from chips/res/values-ms/strings.xml)0
-rw-r--r--chips/res/values-ne-rNP/strings.xml23
-rw-r--r--chips/res/values-ne/strings.xml23
-rw-r--r--chips/res/values-si-rLK/strings.xml23
-rw-r--r--chips/res/values-si/strings.xml23
-rw-r--r--chips/res/values-zh-rHK/strings.xml23
-rw-r--r--chips/sample/res/values-af/strings.xml1
-rw-r--r--chips/sample/res/values-am/strings.xml1
-rw-r--r--chips/sample/res/values-ar/strings.xml1
-rw-r--r--chips/sample/res/values-bg/strings.xml1
-rw-r--r--chips/sample/res/values-ca/strings.xml1
-rw-r--r--chips/sample/res/values-cs/strings.xml1
-rw-r--r--chips/sample/res/values-da/strings.xml1
-rw-r--r--chips/sample/res/values-de/strings.xml1
-rw-r--r--chips/sample/res/values-el/strings.xml1
-rw-r--r--chips/sample/res/values-en-rGB/strings.xml1
-rw-r--r--chips/sample/res/values-en-rIN/strings.xml1
-rw-r--r--chips/sample/res/values-es-rUS/strings.xml1
-rw-r--r--chips/sample/res/values-es/strings.xml1
-rw-r--r--chips/sample/res/values-et-rEE/strings.xml1
-rw-r--r--chips/sample/res/values-fa/strings.xml1
-rw-r--r--chips/sample/res/values-fi/strings.xml1
-rw-r--r--chips/sample/res/values-fr-rCA/strings.xml1
-rw-r--r--chips/sample/res/values-fr/strings.xml1
-rw-r--r--chips/sample/res/values-hi/strings.xml1
-rw-r--r--chips/sample/res/values-hr/strings.xml1
-rw-r--r--chips/sample/res/values-hu/strings.xml1
-rw-r--r--chips/sample/res/values-hy-rAM/strings.xml1
-rw-r--r--chips/sample/res/values-in/strings.xml1
-rw-r--r--chips/sample/res/values-it/strings.xml1
-rw-r--r--chips/sample/res/values-iw/strings.xml1
-rw-r--r--chips/sample/res/values-ja/strings.xml1
-rw-r--r--chips/sample/res/values-ka-rGE/strings.xml1
-rw-r--r--chips/sample/res/values-km-rKH/strings.xml1
-rw-r--r--chips/sample/res/values-ko/strings.xml1
-rw-r--r--chips/sample/res/values-lo-rLA/strings.xml1
-rw-r--r--chips/sample/res/values-lt/strings.xml1
-rw-r--r--chips/sample/res/values-lv/strings.xml1
-rw-r--r--chips/sample/res/values-mn-rMN/strings.xml1
-rw-r--r--chips/sample/res/values-ms-rMY/strings.xml1
-rw-r--r--chips/sample/res/values-nb/strings.xml1
-rw-r--r--chips/sample/res/values-nl/strings.xml1
-rw-r--r--chips/sample/res/values-pl/strings.xml1
-rw-r--r--chips/sample/res/values-pt-rPT/strings.xml1
-rw-r--r--chips/sample/res/values-pt/strings.xml1
-rw-r--r--chips/sample/res/values-ro/strings.xml1
-rw-r--r--chips/sample/res/values-ru/strings.xml1
-rw-r--r--chips/sample/res/values-sk/strings.xml1
-rw-r--r--chips/sample/res/values-sl/strings.xml1
-rw-r--r--chips/sample/res/values-sr/strings.xml1
-rw-r--r--chips/sample/res/values-sv/strings.xml1
-rw-r--r--chips/sample/res/values-sw/strings.xml1
-rw-r--r--chips/sample/res/values-th/strings.xml1
-rw-r--r--chips/sample/res/values-tl/strings.xml1
-rw-r--r--chips/sample/res/values-tr/strings.xml1
-rw-r--r--chips/sample/res/values-uk/strings.xml1
-rw-r--r--chips/sample/res/values-vi/strings.xml1
-rw-r--r--chips/sample/res/values-zh-rCN/strings.xml1
-rw-r--r--chips/sample/res/values-zh-rHK/strings.xml1
-rw-r--r--chips/sample/res/values-zh-rTW/strings.xml1
-rw-r--r--chips/sample/res/values-zu/strings.xml1
-rw-r--r--common/build.gradle8
-rw-r--r--common/java/com/android/common/GoogleLogTags.logtags5
-rw-r--r--framesequence/jni/Android.mk6
-rw-r--r--framesequence/jni/FrameSequence_webp.cpp371
-rw-r--r--framesequence/jni/FrameSequence_webp.h92
-rw-r--r--framesequence/jni/utils/log.h14
-rw-r--r--variablespeed/jni/jni_entry.cc7
-rw-r--r--variablespeed/jni/variablespeed.cc19
-rw-r--r--variablespeed/jni/variablespeed.h1
-rw-r--r--variablespeed/src/com/android/ex/variablespeed/MediaPlayerProxy.java1
-rw-r--r--variablespeed/src/com/android/ex/variablespeed/SingleThreadedMediaPlayerProxy.java5
-rw-r--r--variablespeed/src/com/android/ex/variablespeed/VariableSpeed.java9
104 files changed, 1207 insertions, 89 deletions
diff --git a/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java b/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java
index 619ba0a..1f173eb 100644
--- a/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java
+++ b/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java
@@ -133,50 +133,50 @@ public class BlockingStateListener extends CameraDevice.StateListener {
@Override
public void onOpened(CameraDevice camera) {
- setCurrentState(STATE_OPENED);
if (mProxy != null) mProxy.onOpened(camera);
+ setCurrentState(STATE_OPENED);
}
@Override
public void onDisconnected(CameraDevice camera) {
- setCurrentState(STATE_DISCONNECTED);
if (mProxy != null) mProxy.onDisconnected(camera);
+ setCurrentState(STATE_DISCONNECTED);
}
@Override
public void onError(CameraDevice camera, int error) {
- setCurrentState(STATE_ERROR);
if (mProxy != null) mProxy.onError(camera, error);
+ setCurrentState(STATE_ERROR);
}
@Override
public void onUnconfigured(CameraDevice camera) {
- setCurrentState(STATE_UNCONFIGURED);
if (mProxy != null) mProxy.onUnconfigured(camera);
+ setCurrentState(STATE_UNCONFIGURED);
}
@Override
public void onIdle(CameraDevice camera) {
- setCurrentState(STATE_IDLE);
if (mProxy != null) mProxy.onIdle(camera);
+ setCurrentState(STATE_IDLE);
}
@Override
public void onActive(CameraDevice camera) {
- setCurrentState(STATE_ACTIVE);
if (mProxy != null) mProxy.onActive(camera);
+ setCurrentState(STATE_ACTIVE);
}
@Override
public void onBusy(CameraDevice camera) {
- setCurrentState(STATE_BUSY);
if (mProxy != null) mProxy.onBusy(camera);
+ setCurrentState(STATE_BUSY);
}
@Override
public void onClosed(CameraDevice camera) {
- setCurrentState(STATE_CLOSED);
if (mProxy != null) mProxy.onClosed(camera);
+ setCurrentState(STATE_CLOSED);
}
/**
diff --git a/carousel/test/res/values-am/strings.xml b/carousel/test/res/values-am/strings.xml
index 5f4b961..f1e8da2 100644
--- a/carousel/test/res/values-am/strings.xml
+++ b/carousel/test/res/values-am/strings.xml
@@ -21,7 +21,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="music_demo_activity_label" msgid="4382090808250495841">"የሙዚቃ Carousel"</string>
<string name="carousel_test_activity_label" msgid="6014624482213318747">"የCarousel ፍተሻ"</string>
- <string name="carousel_test_activity_description" msgid="1632693812604375483">"የCarouselን ጥቅም የሚያሳይ ትግበራ"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"የCarouselን ጥቅም የሚያሳይ መተግበሪያ"</string>
<string name="task_switcher_activity_label" msgid="714620143340933546">"ክንውን ቀያያሪ"</string>
<string name="recent_tasks_title" msgid="1030287226205477117">"የቅርብ ጊዜ ትግበራዎች"</string>
<string name="no_recent_tasks" msgid="6884096266670555780">"ምንም የቅርብ ጊዜ ክንውን የለም"</string>
diff --git a/carousel/test/res/values-be/strings.xml b/carousel/test/res/values-az-rAZ/strings.xml
index 631a815..634f926 100644
--- a/carousel/test/res/values-be/strings.xml
+++ b/carousel/test/res/values-az-rAZ/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
<string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
- <string name="carousel_test_activity_description" msgid="1632693812604375483">"Прыкладанне, якое адлюстроўвае выкарыстанне Carousel"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Carousel istifadəsini göstərmək üçün tətbiq"</string>
<string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
- <string name="recent_tasks_title" msgid="1030287226205477117">"Апошнія прыкладанні"</string>
- <string name="no_recent_tasks" msgid="6884096266670555780">"Няма апошніх задач"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Son Tətbiqlər"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"Son tapşırıqlar yoxdur"</string>
</resources>
diff --git a/carousel/test/res/values-az/strings.xml b/carousel/test/res/values-az/strings.xml
new file mode 100644
index 0000000..634f926
--- /dev/null
+++ b/carousel/test/res/values-az/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Carousel istifadəsini göstərmək üçün tətbiq"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Son Tətbiqlər"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"Son tapşırıqlar yoxdur"</string>
+</resources>
diff --git a/carousel/test/res/values-ca/strings.xml b/carousel/test/res/values-ca/strings.xml
index 15d758c..9f85f5e 100644
--- a/carousel/test/res/values-ca/strings.xml
+++ b/carousel/test/res/values-ca/strings.xml
@@ -21,7 +21,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
<string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
- <string name="carousel_test_activity_description" msgid="1632693812604375483">"Una aplicació per mostrar l\'ús de Carousel"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Una aplicació per mostrar com es fa servir l\'expositor giratori"</string>
<string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
<string name="recent_tasks_title" msgid="1030287226205477117">"Aplicacions usades recentment"</string>
<string name="no_recent_tasks" msgid="6884096266670555780">"No hi ha tasques recents"</string>
diff --git a/carousel/test/res/values-en-rIN/strings.xml b/carousel/test/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..86ea2cb
--- /dev/null
+++ b/carousel/test/res/values-en-rIN/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"Music Carousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"Carousel Test"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"An application to show the use of Carousel"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"Task Switcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Recent Applications"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"No recent tasks"</string>
+</resources>
diff --git a/carousel/test/res/values-et/strings.xml b/carousel/test/res/values-et-rEE/strings.xml
index 59f0b5c..59f0b5c 100644
--- a/carousel/test/res/values-et/strings.xml
+++ b/carousel/test/res/values-et-rEE/strings.xml
diff --git a/carousel/test/res/values-fr-rCA/strings.xml b/carousel/test/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..87aeb34
--- /dev/null
+++ b/carousel/test/res/values-fr-rCA/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Une application expliquant l\'utilisation de Carousel"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Applications récentes"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"Aucune tâche récente"</string>
+</resources>
diff --git a/carousel/test/res/values-hy-rAM/strings.xml b/carousel/test/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..39bf205
--- /dev/null
+++ b/carousel/test/res/values-hy-rAM/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Հավելված` Carousel-ի օգտագործումը ցույց տալու համար"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Վերջին հավելվածները"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"Վերջին առաջադրանքներ չկան"</string>
+</resources>
diff --git a/carousel/test/res/values-iw/strings.xml b/carousel/test/res/values-iw/strings.xml
index 53fa5d2..a4163c5 100644
--- a/carousel/test/res/values-iw/strings.xml
+++ b/carousel/test/res/values-iw/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
<string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
- <string name="carousel_test_activity_description" msgid="1632693812604375483">"יישום להצגת השימוש בקרוסלה"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"אפליקציה להצגת השימוש בקרוסלה"</string>
<string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
- <string name="recent_tasks_title" msgid="1030287226205477117">"יישומים אחרונים"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"אפליקציות אחרונות"</string>
<string name="no_recent_tasks" msgid="6884096266670555780">"אין משימות אחרונות"</string>
</resources>
diff --git a/carousel/test/res/values-ka-rGE/strings.xml b/carousel/test/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..0764f3f
--- /dev/null
+++ b/carousel/test/res/values-ka-rGE/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Carousel-ის გამოყენების მაჩვენებელი აპლიკაცია"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"ბოლოდროინდელი აპლიკაციები"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"ბოლოდროინდელი ამოცანები არ არის."</string>
+</resources>
diff --git a/carousel/test/res/values-km-rKH/strings.xml b/carousel/test/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..5bb198d
--- /dev/null
+++ b/carousel/test/res/values-km-rKH/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"កម្មវិធី​ត្រូវ​បង្ហាញ​ការ​ប្រើ Carousel"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"កម្មវិធី​ថ្មីៗ"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"គ្មាន​ភារកិច្ច​ថ្មីៗ"</string>
+</resources>
diff --git a/carousel/test/res/values-lo-rLA/strings.xml b/carousel/test/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..83a4cbd
--- /dev/null
+++ b/carousel/test/res/values-lo-rLA/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"ແອັບພລິເຄຊັນທີ່ໃຊ້ສະແດງປະໂຫຍດຂອງ Carousel"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"ແອັບຯພລິເຄຊັນທີ່ຫາກໍໃຊ້"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"ບໍ່ມີວຽກເມື່ອໄວໆນີ້ເທື່ອ"</string>
+</resources>
diff --git a/carousel/test/res/values-mn-rMN/strings.xml b/carousel/test/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..20d9f8d
--- /dev/null
+++ b/carousel/test/res/values-mn-rMN/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"Хөгжмийн тойруулга"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"Тойруулга тест"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Тойруулга ашиглалтыг харуулах аппликешн"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"Даалгавар солигч"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Сүүлийн аппликешн"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"Сүүлийн даалгавар хоосон"</string>
+</resources>
diff --git a/carousel/test/res/values-ms/strings.xml b/carousel/test/res/values-ms-rMY/strings.xml
index ab9381a..ab9381a 100644
--- a/carousel/test/res/values-ms/strings.xml
+++ b/carousel/test/res/values-ms-rMY/strings.xml
diff --git a/carousel/test/res/values-nb/strings.xml b/carousel/test/res/values-nb/strings.xml
index 8cddca0..751baf9 100644
--- a/carousel/test/res/values-nb/strings.xml
+++ b/carousel/test/res/values-nb/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
<string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
- <string name="carousel_test_activity_description" msgid="1632693812604375483">"En applikasjon som viser bruken av Carousel"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"En app som viser bruken av Carousel"</string>
<string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
- <string name="recent_tasks_title" msgid="1030287226205477117">"Nylige applikasjoner"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"Nylige apper"</string>
<string name="no_recent_tasks" msgid="6884096266670555780">"Ingen nylige oppgaver"</string>
</resources>
diff --git a/carousel/test/res/values-ne-rNP/strings.xml b/carousel/test/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..838502f
--- /dev/null
+++ b/carousel/test/res/values-ne-rNP/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"संगीत करउसेल"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"करउसेल परीक्षण"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"कारउसेलको प्रयोग देखाउन एउटा अनुप्रयोग"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"कार्य स्विच गर्ने"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"भर्खरैका अनुप्रयोगहरू"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"कुनै भरखरका कार्यहरू छैनन्।"</string>
+</resources>
diff --git a/carousel/test/res/values-ne/strings.xml b/carousel/test/res/values-ne/strings.xml
new file mode 100644
index 0000000..838502f
--- /dev/null
+++ b/carousel/test/res/values-ne/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"संगीत करउसेल"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"करउसेल परीक्षण"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"कारउसेलको प्रयोग देखाउन एउटा अनुप्रयोग"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"कार्य स्विच गर्ने"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"भर्खरैका अनुप्रयोगहरू"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"कुनै भरखरका कार्यहरू छैनन्।"</string>
+</resources>
diff --git a/carousel/test/res/values-si-rLK/strings.xml b/carousel/test/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..5a1aa48
--- /dev/null
+++ b/carousel/test/res/values-si-rLK/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"සංගීත Carousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"Carousel පරීක්ෂණය"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Carousel භාවිතය පෙන්වීමට යෙදුමකි"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"කාර්ය ස්විචය"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"මෑත කාලීන යෙදුම්"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"මෑත කාර්යයන් නැත"</string>
+</resources>
diff --git a/carousel/test/res/values-si/strings.xml b/carousel/test/res/values-si/strings.xml
new file mode 100644
index 0000000..5a1aa48
--- /dev/null
+++ b/carousel/test/res/values-si/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"සංගීත Carousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"Carousel පරීක්ෂණය"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"Carousel භාවිතය පෙන්වීමට යෙදුමකි"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"කාර්ය ස්විචය"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"මෑත කාලීන යෙදුම්"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"මෑත කාර්යයන් නැත"</string>
+</resources>
diff --git a/carousel/test/res/values-zh-rHK/strings.xml b/carousel/test/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..193cb4a
--- /dev/null
+++ b/carousel/test/res/values-zh-rHK/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* Copyright (C) 2009 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="music_demo_activity_label" msgid="4382090808250495841">"MusicCarousel"</string>
+ <string name="carousel_test_activity_label" msgid="6014624482213318747">"CarouselTest"</string>
+ <string name="carousel_test_activity_description" msgid="1632693812604375483">"展示輪轉使用方法的應用程式"</string>
+ <string name="task_switcher_activity_label" msgid="714620143340933546">"TaskSwitcher"</string>
+ <string name="recent_tasks_title" msgid="1030287226205477117">"最近使用的應用程式"</string>
+ <string name="no_recent_tasks" msgid="6884096266670555780">"最近沒有任務"</string>
+</resources>
diff --git a/chips/res/values-be/strings.xml b/chips/res/values-az-rAZ/strings.xml
index e71f0e2..c1e8567 100644
--- a/chips/res/values-be/strings.xml
+++ b/chips/res/values-az-rAZ/strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
- <string name="copy_email" msgid="7869435992461603532">"Скапіраваць адрас электроннай пошты"</string>
- <string name="copy_number" msgid="530057841276106843">"Скапіраваць нумар тэлефона"</string>
- <string name="done" msgid="2356320650733788862">"Назад"</string>
+ <string name="copy_email" msgid="7869435992461603532">"E-poçt ünvanını kopyalayın"</string>
+ <string name="copy_number" msgid="530057841276106843">"Telefon nömrəsini kopyalayın"</string>
+ <string name="done" msgid="2356320650733788862">"Geri qayıt"</string>
</resources>
diff --git a/chips/res/values-az/strings.xml b/chips/res/values-az/strings.xml
new file mode 100644
index 0000000..c1e8567
--- /dev/null
+++ b/chips/res/values-az/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"E-poçt ünvanını kopyalayın"</string>
+ <string name="copy_number" msgid="530057841276106843">"Telefon nömrəsini kopyalayın"</string>
+ <string name="done" msgid="2356320650733788862">"Geri qayıt"</string>
+</resources>
diff --git a/chips/res/values-en-rIN/strings.xml b/chips/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..1ae784b
--- /dev/null
+++ b/chips/res/values-en-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"Copy email address"</string>
+ <string name="copy_number" msgid="530057841276106843">"Copy phone number"</string>
+ <string name="done" msgid="2356320650733788862">"Return"</string>
+</resources>
diff --git a/chips/res/values-et/strings.xml b/chips/res/values-et-rEE/strings.xml
index f32e66d..f32e66d 100644
--- a/chips/res/values-et/strings.xml
+++ b/chips/res/values-et-rEE/strings.xml
diff --git a/chips/res/values-fr-rCA/strings.xml b/chips/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..758f5a8
--- /dev/null
+++ b/chips/res/values-fr-rCA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"Copier l\'adresse de courriel"</string>
+ <string name="copy_number" msgid="530057841276106843">"Copier le numéro de téléphone"</string>
+ <string name="done" msgid="2356320650733788862">"Renvoyer"</string>
+</resources>
diff --git a/chips/res/values-hy-rAM/strings.xml b/chips/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..ca2695c
--- /dev/null
+++ b/chips/res/values-hy-rAM/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"Պատճենել էլփոստի հասցեն"</string>
+ <string name="copy_number" msgid="530057841276106843">"Պատճենել հեռախոսահամարը"</string>
+ <string name="done" msgid="2356320650733788862">"Վերադառնալ"</string>
+</resources>
diff --git a/chips/res/values-ka-rGE/strings.xml b/chips/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..9d24e05
--- /dev/null
+++ b/chips/res/values-ka-rGE/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"ელფოსტის მისამართის კოპირება"</string>
+ <string name="copy_number" msgid="530057841276106843">"ტელეფონის ნომრის კოპირება"</string>
+ <string name="done" msgid="2356320650733788862">"დაბრუნება"</string>
+</resources>
diff --git a/chips/res/values-km-rKH/strings.xml b/chips/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..e51c667
--- /dev/null
+++ b/chips/res/values-km-rKH/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"ចម្លង​អាសយដ្ឋាន​អ៊ីមែល"</string>
+ <string name="copy_number" msgid="530057841276106843">"ចម្លង​លេខ​ទូរស័ព្ទ"</string>
+ <string name="done" msgid="2356320650733788862">"ត្រឡប់"</string>
+</resources>
diff --git a/chips/res/values-lo-rLA/strings.xml b/chips/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..44912af
--- /dev/null
+++ b/chips/res/values-lo-rLA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"ສຳເນົາທີ່ຢູ່ອີເມວ"</string>
+ <string name="copy_number" msgid="530057841276106843">"ສຳເນົາເບີໂທລະສັບ"</string>
+ <string name="done" msgid="2356320650733788862">"ກັບຄືນ"</string>
+</resources>
diff --git a/chips/res/values-mn-rMN/strings.xml b/chips/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..89923c3
--- /dev/null
+++ b/chips/res/values-mn-rMN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"Имэйл хаяг хуулах"</string>
+ <string name="copy_number" msgid="530057841276106843">"Утасны дугаар хуулах"</string>
+ <string name="done" msgid="2356320650733788862">"Оруулах"</string>
+</resources>
diff --git a/chips/res/values-ms/strings.xml b/chips/res/values-ms-rMY/strings.xml
index 76320f9..76320f9 100644
--- a/chips/res/values-ms/strings.xml
+++ b/chips/res/values-ms-rMY/strings.xml
diff --git a/chips/res/values-ne-rNP/strings.xml b/chips/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..4710484
--- /dev/null
+++ b/chips/res/values-ne-rNP/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"इमेल ठेगानाको प्रतिलिपि बनाउनुहोस्"</string>
+ <string name="copy_number" msgid="530057841276106843">"फोन नम्बरको प्रतिलिपि गर्नुहोस्"</string>
+ <string name="done" msgid="2356320650733788862">"फिर्ता हुनुहोस्"</string>
+</resources>
diff --git a/chips/res/values-ne/strings.xml b/chips/res/values-ne/strings.xml
new file mode 100644
index 0000000..4710484
--- /dev/null
+++ b/chips/res/values-ne/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"इमेल ठेगानाको प्रतिलिपि बनाउनुहोस्"</string>
+ <string name="copy_number" msgid="530057841276106843">"फोन नम्बरको प्रतिलिपि गर्नुहोस्"</string>
+ <string name="done" msgid="2356320650733788862">"फिर्ता हुनुहोस्"</string>
+</resources>
diff --git a/chips/res/values-si-rLK/strings.xml b/chips/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..313405f
--- /dev/null
+++ b/chips/res/values-si-rLK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"ඊ-තැපැල් ලිපිනය පිටපත් කරන්න"</string>
+ <string name="copy_number" msgid="530057841276106843">"දුරකථන අංකය පිටපත් කරන්න"</string>
+ <string name="done" msgid="2356320650733788862">"ආපසු එවන්න"</string>
+</resources>
diff --git a/chips/res/values-si/strings.xml b/chips/res/values-si/strings.xml
new file mode 100644
index 0000000..313405f
--- /dev/null
+++ b/chips/res/values-si/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+ <string name="copy_email" msgid="7869435992461603532">"ඊ-තැපැල් ලිපිනය පිටපත් කරන්න"</string>
+ <string name="copy_number" msgid="530057841276106843">"දුරකථන අංකය පිටපත් කරන්න"</string>
+ <string name="done" msgid="2356320650733788862">"ආපසු එවන්න"</string>
+</resources>
diff --git a/chips/res/values-zh-rHK/strings.xml b/chips/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..31a122a
--- /dev/null
+++ b/chips/res/values-zh-rHK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ 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="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g> 人"</string>
+ <string name="copy_email" msgid="7869435992461603532">"複製電郵地址"</string>
+ <string name="copy_number" msgid="530057841276106843">"複製電話號碼"</string>
+ <string name="done" msgid="2356320650733788862">"Return 鍵"</string>
+</resources>
diff --git a/chips/sample/res/values-af/strings.xml b/chips/sample/res/values-af/strings.xml
index e4c4945..b29edff 100644
--- a/chips/sample/res/values-af/strings.xml
+++ b/chips/sample/res/values-af/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips-voorbeeld"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-posadresse"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Foonnommers"</string>
</resources>
diff --git a/chips/sample/res/values-am/strings.xml b/chips/sample/res/values-am/strings.xml
index d19c4e8..1da685a 100644
--- a/chips/sample/res/values-am/strings.xml
+++ b/chips/sample/res/values-am/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"የቺፕስ ናሙና"</string>
<string name="email_addresses" msgid="5320415175940315400">"የኢሜይል አድራሻዎች"</string>
<string name="phone_numbers" msgid="7836326833170390688">"ስልክ ቁጥሮች"</string>
</resources>
diff --git a/chips/sample/res/values-ar/strings.xml b/chips/sample/res/values-ar/strings.xml
index 4492ec7..09f9e76 100644
--- a/chips/sample/res/values-ar/strings.xml
+++ b/chips/sample/res/values-ar/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"عينة شرائح"</string>
<string name="email_addresses" msgid="5320415175940315400">"عناوين البريد الإلكتروني"</string>
<string name="phone_numbers" msgid="7836326833170390688">"أرقام الهواتف"</string>
</resources>
diff --git a/chips/sample/res/values-bg/strings.xml b/chips/sample/res/values-bg/strings.xml
index 4c118c1..24d690b 100644
--- a/chips/sample/res/values-bg/strings.xml
+++ b/chips/sample/res/values-bg/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Имейл адреси"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Телефонни номера"</string>
</resources>
diff --git a/chips/sample/res/values-ca/strings.xml b/chips/sample/res/values-ca/strings.xml
index 847cc6f..054ee13 100644
--- a/chips/sample/res/values-ca/strings.xml
+++ b/chips/sample/res/values-ca/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Mostra de xips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Adreces electròniques"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Números de telèfon"</string>
</resources>
diff --git a/chips/sample/res/values-cs/strings.xml b/chips/sample/res/values-cs/strings.xml
index 3e0a928..fcdb9cf 100644
--- a/chips/sample/res/values-cs/strings.xml
+++ b/chips/sample/res/values-cs/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Vzorové čipy"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-mailové adresy"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonní čísla"</string>
</resources>
diff --git a/chips/sample/res/values-da/strings.xml b/chips/sample/res/values-da/strings.xml
index e55fcc6..41279d3 100644
--- a/chips/sample/res/values-da/strings.xml
+++ b/chips/sample/res/values-da/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Eksempel på chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-mailadresser"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonnumre"</string>
</resources>
diff --git a/chips/sample/res/values-de/strings.xml b/chips/sample/res/values-de/strings.xml
index 614081c..c234ec4 100644
--- a/chips/sample/res/values-de/strings.xml
+++ b/chips/sample/res/values-de/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-Mail-Adressen"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonnummern"</string>
</resources>
diff --git a/chips/sample/res/values-el/strings.xml b/chips/sample/res/values-el/strings.xml
index a90018a..ea827d9 100644
--- a/chips/sample/res/values-el/strings.xml
+++ b/chips/sample/res/values-el/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Δείγμα τσιπ"</string>
<string name="email_addresses" msgid="5320415175940315400">"Διευθύνσεις ηλεκτρονικού ταχυδρομείου"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Αριθμοί τηλεφώνου"</string>
</resources>
diff --git a/chips/sample/res/values-en-rGB/strings.xml b/chips/sample/res/values-en-rGB/strings.xml
index aaccb10..8cf71de 100644
--- a/chips/sample/res/values-en-rGB/strings.xml
+++ b/chips/sample/res/values-en-rGB/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Email Addresses"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Phone Numbers"</string>
</resources>
diff --git a/chips/sample/res/values-en-rIN/strings.xml b/chips/sample/res/values-en-rIN/strings.xml
index aaccb10..8cf71de 100644
--- a/chips/sample/res/values-en-rIN/strings.xml
+++ b/chips/sample/res/values-en-rIN/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Email Addresses"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Phone Numbers"</string>
</resources>
diff --git a/chips/sample/res/values-es-rUS/strings.xml b/chips/sample/res/values-es-rUS/strings.xml
index e314778..270a120 100644
--- a/chips/sample/res/values-es-rUS/strings.xml
+++ b/chips/sample/res/values-es-rUS/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Muestra de chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Direcciones de correo electrónico"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Números de teléfono"</string>
</resources>
diff --git a/chips/sample/res/values-es/strings.xml b/chips/sample/res/values-es/strings.xml
index dd64514..270a120 100644
--- a/chips/sample/res/values-es/strings.xml
+++ b/chips/sample/res/values-es/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Muestra de Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Direcciones de correo electrónico"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Números de teléfono"</string>
</resources>
diff --git a/chips/sample/res/values-et-rEE/strings.xml b/chips/sample/res/values-et-rEE/strings.xml
index 5c7d6e5..e343cf4 100644
--- a/chips/sample/res/values-et-rEE/strings.xml
+++ b/chips/sample/res/values-et-rEE/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-posti aadressid"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefoninumbrid"</string>
</resources>
diff --git a/chips/sample/res/values-fa/strings.xml b/chips/sample/res/values-fa/strings.xml
index 8ee4162..d31e347 100644
--- a/chips/sample/res/values-fa/strings.xml
+++ b/chips/sample/res/values-fa/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"نمونه تراشه‌ها"</string>
<string name="email_addresses" msgid="5320415175940315400">"آدرس‌های ایمیل"</string>
<string name="phone_numbers" msgid="7836326833170390688">"شماره‌ تلفن‌ها"</string>
</resources>
diff --git a/chips/sample/res/values-fi/strings.xml b/chips/sample/res/values-fi/strings.xml
index c72df4d..348473d 100644
--- a/chips/sample/res/values-fi/strings.xml
+++ b/chips/sample/res/values-fi/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Sähköpostiosoitteet"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Puhelinnumerot"</string>
</resources>
diff --git a/chips/sample/res/values-fr-rCA/strings.xml b/chips/sample/res/values-fr-rCA/strings.xml
index e88de2d..68dcf33 100644
--- a/chips/sample/res/values-fr-rCA/strings.xml
+++ b/chips/sample/res/values-fr-rCA/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Échantillon Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Adresses de courriel"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Numéros de téléphone"</string>
</resources>
diff --git a/chips/sample/res/values-fr/strings.xml b/chips/sample/res/values-fr/strings.xml
index 2b1c18e..e0bf7ac 100644
--- a/chips/sample/res/values-fr/strings.xml
+++ b/chips/sample/res/values-fr/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Échantillon Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Adresses e-mail"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Numéros de téléphone"</string>
</resources>
diff --git a/chips/sample/res/values-hi/strings.xml b/chips/sample/res/values-hi/strings.xml
index bae6585..20a8435 100644
--- a/chips/sample/res/values-hi/strings.xml
+++ b/chips/sample/res/values-hi/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"चिप्‍स नमूने"</string>
<string name="email_addresses" msgid="5320415175940315400">"ईमेल पते"</string>
<string name="phone_numbers" msgid="7836326833170390688">"फ़ोन नंबर"</string>
</resources>
diff --git a/chips/sample/res/values-hr/strings.xml b/chips/sample/res/values-hr/strings.xml
index 6eb8a8e..d6da228 100644
--- a/chips/sample/res/values-hr/strings.xml
+++ b/chips/sample/res/values-hr/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-adrese"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonski brojevi"</string>
</resources>
diff --git a/chips/sample/res/values-hu/strings.xml b/chips/sample/res/values-hu/strings.xml
index 1d00752..b2ba000 100644
--- a/chips/sample/res/values-hu/strings.xml
+++ b/chips/sample/res/values-hu/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"„Chips” minta"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-mail címek"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonszámok"</string>
</resources>
diff --git a/chips/sample/res/values-hy-rAM/strings.xml b/chips/sample/res/values-hy-rAM/strings.xml
index fbdcb21..09ad981 100644
--- a/chips/sample/res/values-hy-rAM/strings.xml
+++ b/chips/sample/res/values-hy-rAM/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Չիպերի նմուշ"</string>
<string name="email_addresses" msgid="5320415175940315400">"Էլփոստի հասցեներ"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Հեռախոսահամարներ"</string>
</resources>
diff --git a/chips/sample/res/values-in/strings.xml b/chips/sample/res/values-in/strings.xml
index 1ebd148..036e97d 100644
--- a/chips/sample/res/values-in/strings.xml
+++ b/chips/sample/res/values-in/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Contoh Chip"</string>
<string name="email_addresses" msgid="5320415175940315400">"Alamat Email"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Nomor Telepon"</string>
</resources>
diff --git a/chips/sample/res/values-it/strings.xml b/chips/sample/res/values-it/strings.xml
index aefbd01..67bca55 100644
--- a/chips/sample/res/values-it/strings.xml
+++ b/chips/sample/res/values-it/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Indirizzi email"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Numeri di telefono"</string>
</resources>
diff --git a/chips/sample/res/values-iw/strings.xml b/chips/sample/res/values-iw/strings.xml
index 24c7e69..7ead2ae 100644
--- a/chips/sample/res/values-iw/strings.xml
+++ b/chips/sample/res/values-iw/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"דוגמאות שבבים"</string>
<string name="email_addresses" msgid="5320415175940315400">"כתובות דוא\"ל"</string>
<string name="phone_numbers" msgid="7836326833170390688">"מספרי טלפון"</string>
</resources>
diff --git a/chips/sample/res/values-ja/strings.xml b/chips/sample/res/values-ja/strings.xml
index c75120a..6b0c0a7 100644
--- a/chips/sample/res/values-ja/strings.xml
+++ b/chips/sample/res/values-ja/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"チップサンプル"</string>
<string name="email_addresses" msgid="5320415175940315400">"メールアドレス"</string>
<string name="phone_numbers" msgid="7836326833170390688">"電話番号"</string>
</resources>
diff --git a/chips/sample/res/values-ka-rGE/strings.xml b/chips/sample/res/values-ka-rGE/strings.xml
index a21dab5..ec7f764 100644
--- a/chips/sample/res/values-ka-rGE/strings.xml
+++ b/chips/sample/res/values-ka-rGE/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"ჩიპების ნიმუში"</string>
<string name="email_addresses" msgid="5320415175940315400">"ელფოსტის მისამართები"</string>
<string name="phone_numbers" msgid="7836326833170390688">"ტელეფონის ნომრები"</string>
</resources>
diff --git a/chips/sample/res/values-km-rKH/strings.xml b/chips/sample/res/values-km-rKH/strings.xml
index 3730a7d..70ca37e 100644
--- a/chips/sample/res/values-km-rKH/strings.xml
+++ b/chips/sample/res/values-km-rKH/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"គំរូ​បន្ទះ​សៀគ្វី"</string>
<string name="email_addresses" msgid="5320415175940315400">"អាសយដ្ឋាន​អ៊ីមែល"</string>
<string name="phone_numbers" msgid="7836326833170390688">"លេខទូរស័ព្ទ"</string>
</resources>
diff --git a/chips/sample/res/values-ko/strings.xml b/chips/sample/res/values-ko/strings.xml
index 24d2793..32b49a7 100644
--- a/chips/sample/res/values-ko/strings.xml
+++ b/chips/sample/res/values-ko/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"칩 샘플"</string>
<string name="email_addresses" msgid="5320415175940315400">"이메일 주소"</string>
<string name="phone_numbers" msgid="7836326833170390688">"전화번호"</string>
</resources>
diff --git a/chips/sample/res/values-lo-rLA/strings.xml b/chips/sample/res/values-lo-rLA/strings.xml
index 6357807..6ccf492 100644
--- a/chips/sample/res/values-lo-rLA/strings.xml
+++ b/chips/sample/res/values-lo-rLA/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"ທີ່ຢູ່ອີເມວ"</string>
<string name="phone_numbers" msgid="7836326833170390688">"ເບີໂທລະສັບ:"</string>
</resources>
diff --git a/chips/sample/res/values-lt/strings.xml b/chips/sample/res/values-lt/strings.xml
index b966062..ce73b40 100644
--- a/chips/sample/res/values-lt/strings.xml
+++ b/chips/sample/res/values-lt/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Lustų pavyzdžiai"</string>
<string name="email_addresses" msgid="5320415175940315400">"El. pašto adresai"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonų numeriai"</string>
</resources>
diff --git a/chips/sample/res/values-lv/strings.xml b/chips/sample/res/values-lv/strings.xml
index fec05b5..6dd6ffe 100644
--- a/chips/sample/res/values-lv/strings.xml
+++ b/chips/sample/res/values-lv/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-pasta adreses"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Tālruņa numuri"</string>
</resources>
diff --git a/chips/sample/res/values-mn-rMN/strings.xml b/chips/sample/res/values-mn-rMN/strings.xml
index 5289e5c..1398a43 100644
--- a/chips/sample/res/values-mn-rMN/strings.xml
+++ b/chips/sample/res/values-mn-rMN/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Чипний дээж"</string>
<string name="email_addresses" msgid="5320415175940315400">"Имэйл хаягууд"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Утасны дугаарууд"</string>
</resources>
diff --git a/chips/sample/res/values-ms-rMY/strings.xml b/chips/sample/res/values-ms-rMY/strings.xml
index 12ab807..696871d 100644
--- a/chips/sample/res/values-ms-rMY/strings.xml
+++ b/chips/sample/res/values-ms-rMY/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Sampel Cip"</string>
<string name="email_addresses" msgid="5320415175940315400">"Alamat E-mel"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Nombor Telefon"</string>
</resources>
diff --git a/chips/sample/res/values-nb/strings.xml b/chips/sample/res/values-nb/strings.xml
index 3bff3e2..2d5e56a 100644
--- a/chips/sample/res/values-nb/strings.xml
+++ b/chips/sample/res/values-nb/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips-eksempel"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-postadresser"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonnumre"</string>
</resources>
diff --git a/chips/sample/res/values-nl/strings.xml b/chips/sample/res/values-nl/strings.xml
index 8951311..f47ff3a 100644
--- a/chips/sample/res/values-nl/strings.xml
+++ b/chips/sample/res/values-nl/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chipsvoorbeeld"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-mailadressen"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefoonnummers"</string>
</resources>
diff --git a/chips/sample/res/values-pl/strings.xml b/chips/sample/res/values-pl/strings.xml
index fedec0d..573d22e 100644
--- a/chips/sample/res/values-pl/strings.xml
+++ b/chips/sample/res/values-pl/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Próbka chipsów"</string>
<string name="email_addresses" msgid="5320415175940315400">"Adresy e-mail"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Numery telefonów"</string>
</resources>
diff --git a/chips/sample/res/values-pt-rPT/strings.xml b/chips/sample/res/values-pt-rPT/strings.xml
index 951d30a..675e2eb 100644
--- a/chips/sample/res/values-pt-rPT/strings.xml
+++ b/chips/sample/res/values-pt-rPT/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Amostra de Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Endereços de email"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Números de telefone"</string>
</resources>
diff --git a/chips/sample/res/values-pt/strings.xml b/chips/sample/res/values-pt/strings.xml
index 9d2e732..5f8e346 100644
--- a/chips/sample/res/values-pt/strings.xml
+++ b/chips/sample/res/values-pt/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Amostra de chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Endereços de e-mail"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Números de telefone"</string>
</resources>
diff --git a/chips/sample/res/values-ro/strings.xml b/chips/sample/res/values-ro/strings.xml
index bcffb5e..eb71526 100644
--- a/chips/sample/res/values-ro/strings.xml
+++ b/chips/sample/res/values-ro/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Mostră Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Adrese de e-mail"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Numere de telefon"</string>
</resources>
diff --git a/chips/sample/res/values-ru/strings.xml b/chips/sample/res/values-ru/strings.xml
index 10f052e..215e40a 100644
--- a/chips/sample/res/values-ru/strings.xml
+++ b/chips/sample/res/values-ru/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Адреса эл. почты"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Номера телефонов"</string>
</resources>
diff --git a/chips/sample/res/values-sk/strings.xml b/chips/sample/res/values-sk/strings.xml
index 1297298..11d71c5 100644
--- a/chips/sample/res/values-sk/strings.xml
+++ b/chips/sample/res/values-sk/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Ukážka čipov"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-mailové adresy"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefónne čísla"</string>
</resources>
diff --git a/chips/sample/res/values-sl/strings.xml b/chips/sample/res/values-sl/strings.xml
index 0e1c855..1e1c566 100644
--- a/chips/sample/res/values-sl/strings.xml
+++ b/chips/sample/res/values-sl/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Vzorec čipov"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-poštni naslovi"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonske številke"</string>
</resources>
diff --git a/chips/sample/res/values-sr/strings.xml b/chips/sample/res/values-sr/strings.xml
index dbd91a5..4bca249 100644
--- a/chips/sample/res/values-sr/strings.xml
+++ b/chips/sample/res/values-sr/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Пример чипова"</string>
<string name="email_addresses" msgid="5320415175940315400">"Адресе е-поште"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Бројеви телефона"</string>
</resources>
diff --git a/chips/sample/res/values-sv/strings.xml b/chips/sample/res/values-sv/strings.xml
index d787c85..d7f6773 100644
--- a/chips/sample/res/values-sv/strings.xml
+++ b/chips/sample/res/values-sv/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chipsprov"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-postadresser"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefonnummer"</string>
</resources>
diff --git a/chips/sample/res/values-sw/strings.xml b/chips/sample/res/values-sw/strings.xml
index 5afd792..62f4048 100644
--- a/chips/sample/res/values-sw/strings.xml
+++ b/chips/sample/res/values-sw/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Sampuli ya Chips"</string>
<string name="email_addresses" msgid="5320415175940315400">"Anwani za Barua Pepe"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Nambari za Simu"</string>
</resources>
diff --git a/chips/sample/res/values-th/strings.xml b/chips/sample/res/values-th/strings.xml
index 80bf67d..3658256 100644
--- a/chips/sample/res/values-th/strings.xml
+++ b/chips/sample/res/values-th/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"ตัวอย่างชิป"</string>
<string name="email_addresses" msgid="5320415175940315400">"ที่อยู่อีเมล"</string>
<string name="phone_numbers" msgid="7836326833170390688">"หมายเลขโทรศัพท์"</string>
</resources>
diff --git a/chips/sample/res/values-tl/strings.xml b/chips/sample/res/values-tl/strings.xml
index 411e0d4..96cd1c7 100644
--- a/chips/sample/res/values-tl/strings.xml
+++ b/chips/sample/res/values-tl/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Sample ng Mga Chip"</string>
<string name="email_addresses" msgid="5320415175940315400">"Mga Email Address"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Mga Numero ng Telepono"</string>
</resources>
diff --git a/chips/sample/res/values-tr/strings.xml b/chips/sample/res/values-tr/strings.xml
index dad01bb..13395ab 100644
--- a/chips/sample/res/values-tr/strings.xml
+++ b/chips/sample/res/values-tr/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Fiş Örneği"</string>
<string name="email_addresses" msgid="5320415175940315400">"E-posta Adresleri"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Telefon Numaraları"</string>
</resources>
diff --git a/chips/sample/res/values-uk/strings.xml b/chips/sample/res/values-uk/strings.xml
index f09cb8c..cdf5837 100644
--- a/chips/sample/res/values-uk/strings.xml
+++ b/chips/sample/res/values-uk/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"Електронні адреси"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Номери телефонів"</string>
</resources>
diff --git a/chips/sample/res/values-vi/strings.xml b/chips/sample/res/values-vi/strings.xml
index b9bc474..a93a8c9 100644
--- a/chips/sample/res/values-vi/strings.xml
+++ b/chips/sample/res/values-vi/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Mẫu chip"</string>
<string name="email_addresses" msgid="5320415175940315400">"Địa chỉ email"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Số điện thoại"</string>
</resources>
diff --git a/chips/sample/res/values-zh-rCN/strings.xml b/chips/sample/res/values-zh-rCN/strings.xml
index ebee45c..40f6ef1 100644
--- a/chips/sample/res/values-zh-rCN/strings.xml
+++ b/chips/sample/res/values-zh-rCN/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"电子邮件地址"</string>
<string name="phone_numbers" msgid="7836326833170390688">"电话号码"</string>
</resources>
diff --git a/chips/sample/res/values-zh-rHK/strings.xml b/chips/sample/res/values-zh-rHK/strings.xml
index d2c3bb0..18c7f2e 100644
--- a/chips/sample/res/values-zh-rHK/strings.xml
+++ b/chips/sample/res/values-zh-rHK/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"電郵地址"</string>
<string name="phone_numbers" msgid="7836326833170390688">"電話號碼"</string>
</resources>
diff --git a/chips/sample/res/values-zh-rTW/strings.xml b/chips/sample/res/values-zh-rTW/strings.xml
index b502833..971df5d 100644
--- a/chips/sample/res/values-zh-rTW/strings.xml
+++ b/chips/sample/res/values-zh-rTW/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Chips Sample"</string>
<string name="email_addresses" msgid="5320415175940315400">"電子郵件地址"</string>
<string name="phone_numbers" msgid="7836326833170390688">"電話號碼"</string>
</resources>
diff --git a/chips/sample/res/values-zu/strings.xml b/chips/sample/res/values-zu/strings.xml
index 6a106b7..de6722b 100644
--- a/chips/sample/res/values-zu/strings.xml
+++ b/chips/sample/res/values-zu/strings.xml
@@ -16,7 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="4076638519189386225">"Isempula yama-chip"</string>
<string name="email_addresses" msgid="5320415175940315400">"Amakheli we-imeyili"</string>
<string name="phone_numbers" msgid="7836326833170390688">"Izinombolo zefoni"</string>
</resources>
diff --git a/common/build.gradle b/common/build.gradle
index d2612c5..ed3dba9 100644
--- a/common/build.gradle
+++ b/common/build.gradle
@@ -1,10 +1,8 @@
apply plugin: 'android-library'
-buildDir = "$project.rootBuildDir/android-$project.name"
-
android {
compileSdkVersion 17
- buildToolsVersion = 17
+ buildToolsVersion = '19.0.1'
logtags {
srcDirs = ['java']
@@ -29,6 +27,10 @@ android {
assets.srcDirs = ['assets']
}
}
+ lintOptions {
+ // TODO: fix errors and reenable.
+ abortOnError false
+ }
}
android.libraryVariants.each { variant ->
diff --git a/common/java/com/android/common/GoogleLogTags.logtags b/common/java/com/android/common/GoogleLogTags.logtags
index 8314368..4a86970 100644
--- a/common/java/com/android/common/GoogleLogTags.logtags
+++ b/common/java/com/android/common/GoogleLogTags.logtags
@@ -99,3 +99,8 @@ option java_package com.android.common
205009 gls_account_saved (status|1)
205010 gls_authenticate (status|1),(service|3)
205011 google_mail_switch (direction|1)
+
+# Event for Android SNet
+206001 snet (payload|3)
+# TODO(williamluh): Remove this once switch to snet completed.
+206003 exp_det_snet (payload|3)
diff --git a/framesequence/jni/Android.mk b/framesequence/jni/Android.mk
index ee86fc1..e9d0ec5 100644
--- a/framesequence/jni/Android.mk
+++ b/framesequence/jni/Android.mk
@@ -19,12 +19,13 @@ include $(CLEAR_VARS)
## Main library
-LOCAL_STATIC_LIBRARIES += libgif
+LOCAL_STATIC_LIBRARIES += libgif libwebp-decode
LOCAL_LDFLAGS := -llog -ljnigraphics
LOCAL_C_INCLUDES := \
- external/giflib
+ external/giflib \
+ external/webp/include
LOCAL_MODULE := libframesequence
LOCAL_SRC_FILES := \
@@ -32,6 +33,7 @@ LOCAL_SRC_FILES := \
FrameSequence.cpp \
FrameSequenceJNI.cpp \
FrameSequence_gif.cpp \
+ FrameSequence_webp.cpp \
JNIHelpers.cpp \
Registry.cpp \
Stream.cpp
diff --git a/framesequence/jni/FrameSequence_webp.cpp b/framesequence/jni/FrameSequence_webp.cpp
new file mode 100644
index 0000000..bced919
--- /dev/null
+++ b/framesequence/jni/FrameSequence_webp.cpp
@@ -0,0 +1,371 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#include <string.h>
+#include "JNIHelpers.h"
+#include "utils/log.h"
+#include "utils/math.h"
+#include "webp/format_constants.h"
+
+#include "FrameSequence_webp.h"
+
+#define WEBP_DEBUG 0
+
+////////////////////////////////////////////////////////////////////////////////
+// Frame sequence
+////////////////////////////////////////////////////////////////////////////////
+
+static uint32_t GetLE32(const uint8_t* const data) {
+ return MKFOURCC(data[0], data[1], data[2], data[3]);
+}
+
+// Returns true if the frame covers full canvas.
+static bool isFullFrame(const WebPIterator& frame, int canvasWidth, int canvasHeight) {
+ return (frame.width == canvasWidth && frame.height == canvasHeight);
+}
+
+// Construct mIsKeyFrame array.
+void FrameSequence_webp::constructDependencyChain() {
+ const size_t frameCount = getFrameCount();
+ mIsKeyFrame = new bool[frameCount];
+ const int canvasWidth = getWidth();
+ const int canvasHeight = getHeight();
+
+ WebPIterator prev;
+ WebPIterator curr;
+
+ // Note: WebPDemuxGetFrame() uses base-1 counting.
+ int ok = WebPDemuxGetFrame(mDemux, 1, &curr);
+ ALOG_ASSERT(ok, "Could not retrieve frame# 0");
+ mIsKeyFrame[0] = true; // 0th frame is always a key frame.
+ for (size_t i = 1; i < frameCount; i++) {
+ prev = curr;
+ ok = WebPDemuxGetFrame(mDemux, i + 1, &curr); // Get ith frame.
+ ALOG_ASSERT(ok, "Could not retrieve frame# %d", i);
+
+ if ((!curr.has_alpha || curr.blend_method == WEBP_MUX_NO_BLEND) &&
+ isFullFrame(curr, canvasWidth, canvasHeight)) {
+ mIsKeyFrame[i] = true;
+ } else {
+ mIsKeyFrame[i] = (prev.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND) &&
+ (isFullFrame(prev, canvasWidth, canvasHeight) || mIsKeyFrame[i - 1]);
+ }
+ }
+ WebPDemuxReleaseIterator(&prev);
+ WebPDemuxReleaseIterator(&curr);
+
+#if WEBP_DEBUG
+ ALOGD("Dependency chain:");
+ for (size_t i = 0; i < frameCount; i++) {
+ ALOGD("Frame# %zu: %s", i, mIsKeyFrame[i] ? "Key frame" : "NOT a key frame");
+ }
+#endif
+}
+
+FrameSequence_webp::FrameSequence_webp(Stream* stream) {
+ // Read RIFF header to get file size.
+ uint8_t riff_header[RIFF_HEADER_SIZE];
+ if (stream->read(riff_header, RIFF_HEADER_SIZE) != RIFF_HEADER_SIZE) {
+ ALOGE("WebP header load failed");
+ return;
+ }
+ mData.size = CHUNK_HEADER_SIZE + GetLE32(riff_header + TAG_SIZE);
+ mData.bytes = new uint8_t[mData.size];
+ memcpy((void*)mData.bytes, riff_header, RIFF_HEADER_SIZE);
+
+ // Read rest of the bytes.
+ void* remaining_bytes = (void*)(mData.bytes + RIFF_HEADER_SIZE);
+ size_t remaining_size = mData.size - RIFF_HEADER_SIZE;
+ if (stream->read(remaining_bytes, remaining_size) != remaining_size) {
+ ALOGE("WebP full load failed");
+ return;
+ }
+
+ // Construct demux.
+ mDemux = WebPDemux(&mData);
+ if (!mDemux) {
+ ALOGE("Parsing of WebP container file failed");
+ return;
+ }
+ mLoopCount = WebPDemuxGetI(mDemux, WEBP_FF_LOOP_COUNT);
+ mFormatFlags = WebPDemuxGetI(mDemux, WEBP_FF_FORMAT_FLAGS);
+#if WEBP_DEBUG
+ ALOGD("FrameSequence_webp created with size = %d x %d, number of frames = %d, flags = 0x%X",
+ getWidth(), getHeight(), getFrameCount(), mFormatFlags);
+#endif
+ constructDependencyChain();
+}
+
+FrameSequence_webp::~FrameSequence_webp() {
+ WebPDemuxDelete(mDemux);
+ delete[] mData.bytes;
+ delete[] mIsKeyFrame;
+}
+
+FrameSequenceState* FrameSequence_webp::createState() const {
+ return new FrameSequenceState_webp(*this);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// draw helpers
+////////////////////////////////////////////////////////////////////////////////
+
+static bool willBeCleared(const WebPIterator& iter) {
+ return iter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND;
+}
+
+// return true if area of 'target' completely covers area of 'covered'
+static bool checkIfCover(const WebPIterator& target, const WebPIterator& covered) {
+ const int covered_x_max = covered.x_offset + covered.width;
+ const int target_x_max = target.x_offset + target.width;
+ const int covered_y_max = covered.y_offset + covered.height;
+ const int target_y_max = target.y_offset + target.height;
+ return target.x_offset <= covered.x_offset
+ && covered_x_max <= target_x_max
+ && target.y_offset <= covered.y_offset
+ && covered_y_max <= target_y_max;
+}
+
+// Clear all pixels in a line to transparent.
+static void clearLine(Color8888* dst, int width) {
+ memset(dst, 0, width * sizeof(*dst)); // Note: Assumes TRANSPARENT == 0x0.
+}
+
+// Copy all pixels from 'src' to 'dst'.
+static void copyFrame(const Color8888* src, int srcStride, Color8888* dst, int dstStride,
+ int width, int height) {
+ for (int y = 0; y < height; y++) {
+ memcpy(dst, src, width * sizeof(*dst));
+ src += srcStride;
+ dst += dstStride;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Frame sequence state
+////////////////////////////////////////////////////////////////////////////////
+
+FrameSequenceState_webp::FrameSequenceState_webp(const FrameSequence_webp& frameSequence) :
+ mFrameSequence(frameSequence) {
+ WebPInitDecoderConfig(&mDecoderConfig);
+ mDecoderConfig.output.is_external_memory = 1;
+ mDecoderConfig.output.colorspace = MODE_rgbA; // Pre-multiplied alpha mode.
+ const int canvasWidth = mFrameSequence.getWidth();
+ const int canvasHeight = mFrameSequence.getHeight();
+ mPreservedBuffer = new Color8888[canvasWidth * canvasHeight];
+}
+
+FrameSequenceState_webp::~FrameSequenceState_webp() {
+ delete[] mPreservedBuffer;
+}
+
+void FrameSequenceState_webp::initializeFrame(const WebPIterator& currIter, Color8888* currBuffer,
+ int currStride, const WebPIterator& prevIter, const Color8888* prevBuffer, int prevStride) {
+ const int canvasWidth = mFrameSequence.getWidth();
+ const int canvasHeight = mFrameSequence.getHeight();
+ const bool currFrameIsKeyFrame = mFrameSequence.isKeyFrame(currIter.frame_num - 1);
+
+ if (currFrameIsKeyFrame) { // Clear canvas.
+ for (int y = 0; y < canvasHeight; y++) {
+ Color8888* dst = currBuffer + y * currStride;
+ clearLine(dst, canvasWidth);
+ }
+ } else {
+ // Preserve previous frame as starting state of current frame.
+ copyFrame(prevBuffer, prevStride, currBuffer, currStride, canvasWidth, canvasHeight);
+
+ // Dispose previous frame rectangle to Background if needed.
+ bool prevFrameCompletelyCovered =
+ (!currIter.has_alpha || currIter.blend_method == WEBP_MUX_NO_BLEND) &&
+ checkIfCover(currIter, prevIter);
+ if ((prevIter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND) &&
+ !prevFrameCompletelyCovered) {
+ Color8888* dst = currBuffer + prevIter.x_offset + prevIter.y_offset * currStride;
+ for (int j = 0; j < prevIter.height; j++) {
+ clearLine(dst, prevIter.width);
+ dst += currStride;
+ }
+ }
+ }
+}
+
+bool FrameSequenceState_webp::decodeFrame(const WebPIterator& currIter, Color8888* currBuffer,
+ int currStride, const WebPIterator& prevIter, const Color8888* prevBuffer, int prevStride) {
+ Color8888* dst = currBuffer + currIter.x_offset + currIter.y_offset * currStride;
+ mDecoderConfig.output.u.RGBA.rgba = (uint8_t*)dst;
+ mDecoderConfig.output.u.RGBA.stride = currStride * 4;
+ mDecoderConfig.output.u.RGBA.size = mDecoderConfig.output.u.RGBA.stride * currIter.height;
+
+ const WebPData& currFrame = currIter.fragment;
+ if (WebPDecode(currFrame.bytes, currFrame.size, &mDecoderConfig) != VP8_STATUS_OK) {
+ return false;
+ }
+
+ const int canvasWidth = mFrameSequence.getWidth();
+ const int canvasHeight = mFrameSequence.getHeight();
+ const bool currFrameIsKeyFrame = mFrameSequence.isKeyFrame(currIter.frame_num - 1);
+ // During the decoding of current frame, we may have set some pixels to be transparent
+ // (i.e. alpha < 255). However, the value of each of these pixels should have been determined
+ // by blending it against the value of that pixel in the previous frame if WEBP_MUX_BLEND was
+ // specified. So, we correct these pixels based on disposal method of the previous frame and
+ // the previous frame buffer.
+ if (currIter.blend_method == WEBP_MUX_BLEND && !currFrameIsKeyFrame) {
+ if (prevIter.dispose_method == WEBP_MUX_DISPOSE_NONE) {
+ for (int y = 0; y < currIter.height; y++) {
+ const int canvasY = currIter.y_offset + y;
+ for (int x = 0; x < currIter.width; x++) {
+ const int canvasX = currIter.x_offset + x;
+ Color8888& currPixel = currBuffer[canvasY * currStride + canvasX];
+ // FIXME: Use alpha-blending when alpha is between 0 and 255.
+ if (!(currPixel & COLOR_8888_ALPHA_MASK)) {
+ const Color8888 prevPixel = prevBuffer[canvasY * prevStride + canvasX];
+ currPixel = prevPixel;
+ }
+ }
+ }
+ } else { // prevIter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND
+ // Need to restore transparent pixels to as they were just after frame initialization.
+ // That is:
+ // * Transparent if it belongs to previous frame rectangle <-- This is a no-op.
+ // * Pixel in the previous canvas otherwise <-- Need to restore.
+ for (int y = 0; y < currIter.height; y++) {
+ const int canvasY = currIter.y_offset + y;
+ for (int x = 0; x < currIter.width; x++) {
+ const int canvasX = currIter.x_offset + x;
+ Color8888& currPixel = currBuffer[canvasY * currStride + canvasX];
+ // FIXME: Use alpha-blending when alpha is between 0 and 255.
+ if (!(currPixel & COLOR_8888_ALPHA_MASK) &&
+ isFullFrame(prevIter, canvasWidth, canvasHeight)) {
+ const Color8888 prevPixel = prevBuffer[canvasY * prevStride + canvasX];
+ currPixel = prevPixel;
+ }
+ }
+ }
+ }
+ }
+ return true;
+}
+
+long FrameSequenceState_webp::drawFrame(int frameNr,
+ Color8888* outputPtr, int outputPixelStride, int previousFrameNr) {
+ WebPDemuxer* demux = mFrameSequence.getDemuxer();
+ ALOG_ASSERT(demux, "Cannot drawFrame, mDemux is NULL");
+
+#if WEBP_DEBUG
+ ALOGD(" drawFrame called for frame# %d, previous frame# %d", frameNr, previousFrameNr);
+#endif
+
+ const int canvasWidth = mFrameSequence.getWidth();
+ const int canvasHeight = mFrameSequence.getHeight();
+
+ // Find the first frame to be decoded.
+ int start = max(previousFrameNr + 1, 0);
+ int earliestRequired = frameNr;
+ while (earliestRequired > start) {
+ if (mFrameSequence.isKeyFrame(earliestRequired)) {
+ start = earliestRequired;
+ break;
+ }
+ earliestRequired--;
+ }
+
+ WebPIterator currIter;
+ WebPIterator prevIter;
+ int ok = WebPDemuxGetFrame(demux, start, &currIter); // Get frame number 'start - 1'.
+ ALOG_ASSERT(ok, "Could not retrieve frame# %d", start - 1);
+
+ // Use preserve buffer only if needed.
+ Color8888* prevBuffer = (frameNr == 0) ? outputPtr : mPreservedBuffer;
+ int prevStride = (frameNr == 0) ? outputPixelStride : canvasWidth;
+ Color8888* currBuffer = outputPtr;
+ int currStride = outputPixelStride;
+
+ for (int i = start; i <= frameNr; i++) {
+ prevIter = currIter;
+ ok = WebPDemuxGetFrame(demux, i + 1, &currIter); // Get ith frame.
+ ALOG_ASSERT(ok, "Could not retrieve frame# %d", i);
+#if WEBP_DEBUG
+ ALOGD(" producing frame %d (has_alpha = %d, dispose = %s, blend = %s, duration = %d)",
+ i, currIter.has_alpha,
+ (currIter.dispose_method == WEBP_MUX_DISPOSE_NONE) ? "none" : "background",
+ (currIter.blend_method == WEBP_MUX_BLEND) ? "yes" : "no", currIter.duration);
+#endif
+ // We swap the prev/curr buffers as we go.
+ Color8888* tmpBuffer = prevBuffer;
+ prevBuffer = currBuffer;
+ currBuffer = tmpBuffer;
+
+ int tmpStride = prevStride;
+ prevStride = currStride;
+ currStride = tmpStride;
+
+#if WEBP_DEBUG
+ ALOGD(" prev = %p, curr = %p, out = %p, tmp = %p",
+ prevBuffer, currBuffer, outputPtr, mPreservedBuffer);
+#endif
+ // Process this frame.
+ initializeFrame(currIter, currBuffer, currStride, prevIter, prevBuffer, prevStride);
+
+ if (i == frameNr || !willBeCleared(currIter)) {
+ if (!decodeFrame(currIter, currBuffer, currStride, prevIter, prevBuffer, prevStride)) {
+ ALOGE("Error decoding frame# %d", i);
+ return -1;
+ }
+ }
+ }
+
+ if (outputPtr != currBuffer) {
+ copyFrame(currBuffer, currStride, outputPtr, outputPixelStride, canvasWidth, canvasHeight);
+ }
+
+ // Return last frame's delay.
+ const int frameCount = mFrameSequence.getFrameCount();
+ const int lastFrame = (frameNr + frameCount - 1) % frameCount;
+ ok = WebPDemuxGetFrame(demux, lastFrame, &currIter);
+ ALOG_ASSERT(ok, "Could not retrieve frame# %d", lastFrame - 1);
+ const int lastFrameDelay = currIter.duration;
+
+ WebPDemuxReleaseIterator(&currIter);
+ WebPDemuxReleaseIterator(&prevIter);
+
+ return lastFrameDelay;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Registry
+////////////////////////////////////////////////////////////////////////////////
+
+#include "Registry.h"
+
+static bool isWebP(void* header, int header_size) {
+ const uint8_t* const header_str = (const uint8_t*)header;
+ return (header_size >= RIFF_HEADER_SIZE) &&
+ !memcmp("RIFF", header_str, 4) &&
+ !memcmp("WEBP", header_str + 8, 4);
+}
+
+static FrameSequence* createFramesequence(Stream* stream) {
+ return new FrameSequence_webp(stream);
+}
+
+static RegistryEntry gEntry = {
+ RIFF_HEADER_SIZE,
+ isWebP,
+ createFramesequence,
+ NULL,
+};
+static Registry gRegister(gEntry);
+
diff --git a/framesequence/jni/FrameSequence_webp.h b/framesequence/jni/FrameSequence_webp.h
new file mode 100644
index 0000000..9fcf3d8
--- /dev/null
+++ b/framesequence/jni/FrameSequence_webp.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#ifndef RASTERMILL_FRAMESQUENCE_WEBP_H
+#define RASTERMILL_FRAMESQUENCE_WEBP_H
+
+#include "config.h"
+#include "webp/decode.h"
+#include "webp/demux.h"
+
+#include "Stream.h"
+#include "Color.h"
+#include "FrameSequence.h"
+
+// Parser for a possibly-animated WebP bitstream.
+class FrameSequence_webp : public FrameSequence {
+public:
+ FrameSequence_webp(Stream* stream);
+ virtual ~FrameSequence_webp();
+
+ virtual int getWidth() const {
+ return WebPDemuxGetI(mDemux, WEBP_FF_CANVAS_WIDTH);
+ }
+
+ virtual int getHeight() const {
+ return WebPDemuxGetI(mDemux, WEBP_FF_CANVAS_HEIGHT);
+ }
+
+ virtual bool isOpaque() const {
+ return !(mFormatFlags & ALPHA_FLAG);
+ }
+
+ virtual int getFrameCount() const {
+ return WebPDemuxGetI(mDemux, WEBP_FF_FRAME_COUNT);
+ }
+
+ virtual int getDefaultLoopCount() const {
+ return mLoopCount;
+ }
+
+ virtual FrameSequenceState* createState() const;
+
+ WebPDemuxer* getDemuxer() const { return mDemux; }
+
+ bool isKeyFrame(size_t frameNr) const { return mIsKeyFrame[frameNr]; /* TODO: CHECK BOUNDS*/ }
+
+private:
+ void constructDependencyChain();
+
+ WebPData mData;
+ WebPDemuxer* mDemux;
+ int mLoopCount;
+ uint32_t mFormatFlags;
+ // mIsKeyFrame[i] is true if ith canvas can be constructed without decoding any prior frames.
+ bool* mIsKeyFrame;
+};
+
+// Produces frames of a possibly-animated WebP file for display.
+class FrameSequenceState_webp : public FrameSequenceState {
+public:
+ FrameSequenceState_webp(const FrameSequence_webp& frameSequence);
+ virtual ~FrameSequenceState_webp();
+
+ // Returns frame's delay time in milliseconds.
+ virtual long drawFrame(int frameNr,
+ Color8888* outputPtr, int outputPixelStride, int previousFrameNr);
+
+private:
+ void initializeFrame(const WebPIterator& currIter, Color8888* currBuffer, int currStride,
+ const WebPIterator& prevIter, const Color8888* prevBuffer, int prevStride);
+ bool decodeFrame(const WebPIterator& iter, Color8888* currBuffer, int currStride,
+ const WebPIterator& prevIter, const Color8888* prevBuffer, int prevStride);
+
+ const FrameSequence_webp& mFrameSequence;
+ WebPDecoderConfig mDecoderConfig;
+ Color8888* mPreservedBuffer;
+};
+
+#endif //RASTERMILL_FRAMESQUENCE_WEBP_H
diff --git a/framesequence/jni/utils/log.h b/framesequence/jni/utils/log.h
index 5e15f30..d8441dc 100644
--- a/framesequence/jni/utils/log.h
+++ b/framesequence/jni/utils/log.h
@@ -267,6 +267,20 @@ extern "C" {
if (__android_log_assert(ANDROID_##priority, tag))
#endif
+/* Returns 2nd arg. Used to substitute default value if caller's vararg list
+ * is empty.
+ */
+#define __android_second(dummy, second, ...) second
+
+/* If passed multiple args, returns ',' followed by all but 1st arg, otherwise
+ * returns nothing.
+ */
+#define __android_rest(first, ...) , ## __VA_ARGS__
+
+#define android_printAssert(cond, tag, fmt...) \
+ __android_log_assert(cond, tag, \
+ __android_second(0, ## fmt, NULL) __android_rest(fmt))
+
#ifdef __cplusplus
}
#endif
diff --git a/variablespeed/jni/jni_entry.cc b/variablespeed/jni/jni_entry.cc
index 93c12ba..20bcf3c 100644
--- a/variablespeed/jni/jni_entry.cc
+++ b/variablespeed/jni/jni_entry.cc
@@ -81,9 +81,12 @@ JNI_METHOD(initializeEngine, void) (JNIEnv*, jclass,
jfloat initialRate, jint decodeInitialSize, jint decodeMaxSize,
jint startPositionMillis, jint audioStreamType) {
MethodLog _("initializeEngine");
- AudioEngine::SetEngine(new AudioEngine(targetFrames,
+ AudioEngine *engine = new AudioEngine(targetFrames,
windowDuration, windowOverlapDuration, maxPlayBufferCount, initialRate,
- decodeInitialSize, decodeMaxSize, startPositionMillis, audioStreamType));
+ decodeInitialSize, decodeMaxSize, startPositionMillis, audioStreamType);
+ if (!AudioEngine::CompareAndSetEngine(NULL, engine)) {
+ delete engine;
+ }
}
JNI_METHOD(shutdownEngine, void) (JNIEnv*, jclass) {
diff --git a/variablespeed/jni/variablespeed.cc b/variablespeed/jni/variablespeed.cc
index b5d9067..8e161fc 100644
--- a/variablespeed/jni/variablespeed.cc
+++ b/variablespeed/jni/variablespeed.cc
@@ -129,14 +129,21 @@ void AudioEngine::SetEngine(AudioEngine* engine) {
audioEngine_ = engine;
}
+bool AudioEngine::CompareAndSetEngine(AudioEngine* expect, AudioEngine* update) {
+ android::Mutex::Autolock autoLock(publishEngineLock_);
+ if (audioEngine_ == expect) {
+ DeleteEngine();
+ audioEngine_ = update;
+ return true;
+ }
+ return false;
+}
+
void AudioEngine::DeleteEngine() {
- if (audioEngine_ == NULL) {
- LOGE("you haven't initialized the audio engine");
- CHECK(false);
- return;
+ if (audioEngine_ != NULL) {
+ delete audioEngine_;
+ audioEngine_ = NULL;
}
- delete audioEngine_;
- audioEngine_ = NULL;
}
// ****************************************************************************
diff --git a/variablespeed/jni/variablespeed.h b/variablespeed/jni/variablespeed.h
index cf856da..74710e5 100644
--- a/variablespeed/jni/variablespeed.h
+++ b/variablespeed/jni/variablespeed.h
@@ -64,6 +64,7 @@ class AudioEngine {
static AudioEngine* GetEngine();
static void SetEngine(AudioEngine* engine);
+ static bool CompareAndSetEngine(AudioEngine* expect, AudioEngine* update);
static void DeleteEngine();
private:
diff --git a/variablespeed/src/com/android/ex/variablespeed/MediaPlayerProxy.java b/variablespeed/src/com/android/ex/variablespeed/MediaPlayerProxy.java
index 8489dc1..3b7b576 100644
--- a/variablespeed/src/com/android/ex/variablespeed/MediaPlayerProxy.java
+++ b/variablespeed/src/com/android/ex/variablespeed/MediaPlayerProxy.java
@@ -42,6 +42,7 @@ public interface MediaPlayerProxy {
int getDuration();
void seekTo(int startPosition);
void start();
+ boolean isReadyToPlay();
boolean isPlaying();
int getCurrentPosition();
void pause();
diff --git a/variablespeed/src/com/android/ex/variablespeed/SingleThreadedMediaPlayerProxy.java b/variablespeed/src/com/android/ex/variablespeed/SingleThreadedMediaPlayerProxy.java
index 17692f7..c9a9741 100644
--- a/variablespeed/src/com/android/ex/variablespeed/SingleThreadedMediaPlayerProxy.java
+++ b/variablespeed/src/com/android/ex/variablespeed/SingleThreadedMediaPlayerProxy.java
@@ -85,6 +85,11 @@ public class SingleThreadedMediaPlayerProxy implements MediaPlayerProxy {
}
@Override
+ public synchronized boolean isReadyToPlay() {
+ return mDelegate.isReadyToPlay();
+ }
+
+ @Override
public synchronized boolean isPlaying() {
return mDelegate.isPlaying();
}
diff --git a/variablespeed/src/com/android/ex/variablespeed/VariableSpeed.java b/variablespeed/src/com/android/ex/variablespeed/VariableSpeed.java
index 5c93d26..e44a375 100644
--- a/variablespeed/src/com/android/ex/variablespeed/VariableSpeed.java
+++ b/variablespeed/src/com/android/ex/variablespeed/VariableSpeed.java
@@ -337,9 +337,16 @@ public class VariableSpeed implements MediaPlayerProxy {
}
@Override
+ public boolean isReadyToPlay() {
+ synchronized (lock) {
+ return !mHasBeenReleased && mHasDuration;
+ }
+ }
+
+ @Override
public boolean isPlaying() {
synchronized (lock) {
- return mHasStartedPlayback && !hasPlaybackFinished();
+ return isReadyToPlay() && mHasStartedPlayback && !hasPlaybackFinished();
}
}