diff --git a/Android.mk b/Android.mk
index 20f3944..eb6cbdc 100644
--- a/Android.mk
+++ b/Android.mk
@@ -3,7 +3,7 @@
 
 LOCAL_MODULE_TAGS := optional
 
-incallui_dir := ../InCallUI
+incallui_dir := InCallUI
 contacts_common_dir := ../ContactsCommon
 phone_common_dir := ../PhoneCommon
 
@@ -64,9 +64,7 @@
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags $(incallui_dir)/proguard.flags
 
-# Uncomment the following line to build against the current SDK
-# This is required for building an unbundled app.
-LOCAL_SDK_VERSION := system_current
+LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 440c341..cbe4e1b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,8 +17,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.dialer"
     coreApp="true"
-    android:versionCode="20401"
-    android:versionName="2.04.01">
+    android:versionCode="20503"
+    android:versionName="2.05.03">
 
     <uses-sdk
         android:minSdkVersion="23"
@@ -67,7 +67,9 @@
         android:hardwareAccelerated="true"
         android:supportsRtl="true"
         android:backupAgent='com.android.dialer.DialerBackupAgent'
-        android:usesCleartextTraffic="false">
+        android:usesCleartextTraffic="false"
+        android:forceDeviceEncrypted="true"
+        android:encryptionAware="true">
 
         <meta-data android:name="com.google.android.backup.api_key"
             android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" />
@@ -81,7 +83,9 @@
             android:launchMode="singleTask"
             android:clearTaskOnLaunch="true"
             android:icon="@mipmap/ic_launcher_phone"
-            android:windowSoftInputMode="stateAlwaysHidden|adjustNothing">
+            android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
+            android:resizeableActivity="true"
+            >
             <intent-filter>
                 <action android:name="android.intent.action.DIAL" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -241,6 +245,9 @@
         <activity android:name="com.android.contacts.common.vcard.ExportVCardActivity"
                   android:theme="@style/BackgroundOnlyTheme"/>
 
+        <activity android:name="com.android.contacts.common.vcard.ShareVCardActivity"
+                  android:theme="@style/BackgroundOnlyTheme" />
+
         <service
             android:name="com.android.contacts.common.vcard.VCardService"
             android:exported="false"/>
@@ -298,10 +305,11 @@
                   android:label="@string/phoneAppLabel"
                   android:excludeFromRecents="true"
                   android:launchMode="singleInstance"
-                  android:configChanges="keyboardHidden"
+                  android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden"
                   android:exported="false"
                   android:screenOrientation="nosensor"
-                  android:encryptionAware="true" >
+                  android:encryptionAware="true"
+                  android:resizeableActivity="true">
         </activity>
 
         <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
@@ -325,5 +333,22 @@
             android:exported="false"
             android:multiprocess="false"
             />
+
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:authorities="@string/contacts_file_provider_authority"
+            android:grantUriPermissions="true"
+            android:exported="false">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+
+        <provider
+            android:name=".database.VoicemailArchiveProvider"
+            android:authorities="com.android.dialer.database.voicemailarchiveprovider"
+            android:exported="false"
+            android:multiprocess="false"
+            />
     </application>
 </manifest>
diff --git a/InCallUI/AndroidManifest.xml b/InCallUI/AndroidManifest.xml
new file mode 100644
index 0000000..5c758ed
--- /dev/null
+++ b/InCallUI/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 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
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.incallui">
+    <uses-sdk
+        android:minSdkVersion="23"
+        android:targetSdkVersion="23" />
+</manifest>
+
diff --git a/InCallUI/build.gradle b/InCallUI/build.gradle
new file mode 100644
index 0000000..de47251
--- /dev/null
+++ b/InCallUI/build.gradle
@@ -0,0 +1,14 @@
+apply plugin: 'com.android.library'
+
+android {
+    sourceSets.main {
+        manifest.srcFile 'AndroidManifest.xml'
+        res.srcDirs = ['res']
+    }
+}
+
+dependencies {
+    compile 'com.android.support:support-v4:23.1.+'
+    compile project(':phonecommon')
+    compile project(':contactscommon')
+}
diff --git a/InCallUI/proguard.flags b/InCallUI/proguard.flags
new file mode 100644
index 0000000..4e8310c
--- /dev/null
+++ b/InCallUI/proguard.flags
@@ -0,0 +1,14 @@
+-keep class com.android.incallui.widget.multiwaveview.* {
+  *;
+}
+
+# Keep names that are used only by animation framework.
+-keepclasseswithmembers class com.android.incallui.AnimationUtils$CrossFadeDrawable {
+    *** setCrossFadeAlpha(...);
+}
+
+# Any class or method annotated with NeededForTesting or NeededForReflection.
+-keepclassmembers class * {
+@com.android.contacts.common.test.NeededForTesting *;
+@com.android.incallui.NeededForReflection *;
+}
diff --git a/InCallUI/res/anim/activity_open_enter.xml b/InCallUI/res/anim/activity_open_enter.xml
new file mode 100644
index 0000000..303b9dd
--- /dev/null
+++ b/InCallUI/res/anim/activity_open_enter.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+        android:shareInterpolator="false"
+        android:zAdjustment="top">
+    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
+            android:interpolator="@anim/decelerate_cubic"
+            android:fillEnabled="true"
+            android:fillBefore="false" android:fillAfter="true"
+            android:duration="300"/>
+    <scale android:fromXScale=".8" android:toXScale="1.0"
+            android:fromYScale=".8" android:toYScale="1.0"
+            android:pivotX="50%p" android:pivotY="50%p"
+            android:interpolator="@anim/decelerate_cubic"
+            android:fillEnabled="true"
+            android:fillBefore="false" android:fillAfter="true"
+            android:duration="300"/>
+</set>
\ No newline at end of file
diff --git a/InCallUI/res/anim/activity_open_exit.xml b/InCallUI/res/anim/activity_open_exit.xml
new file mode 100644
index 0000000..afa7c5e
--- /dev/null
+++ b/InCallUI/res/anim/activity_open_exit.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+        android:background="#ff000000" android:zAdjustment="normal">
+    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
+            android:fillEnabled="true" android:fillBefore="false" android:fillAfter="true"
+            android:interpolator="@anim/decelerate_quint"
+            android:duration="300"/>
+</set>
\ No newline at end of file
diff --git a/InCallUI/res/anim/call_status_pulse.xml b/InCallUI/res/anim/call_status_pulse.xml
new file mode 100644
index 0000000..abda25b
--- /dev/null
+++ b/InCallUI/res/anim/call_status_pulse.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromAlpha="0.5"
+    android:toAlpha="1"
+    android:duration="600"
+    android:repeatCount="infinite"
+    android:repeatMode="reverse" />
diff --git a/InCallUI/res/anim/decelerate_cubic.xml b/InCallUI/res/anim/decelerate_cubic.xml
new file mode 100644
index 0000000..f988091
--- /dev/null
+++ b/InCallUI/res/anim/decelerate_cubic.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2010, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+        android:factor="1.5" />
diff --git a/InCallUI/res/anim/decelerate_quint.xml b/InCallUI/res/anim/decelerate_quint.xml
new file mode 100644
index 0000000..ff2d5a9
--- /dev/null
+++ b/InCallUI/res/anim/decelerate_quint.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2010, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+        android:factor="2.5" />
diff --git a/InCallUI/res/color/ota_title_color.xml b/InCallUI/res/color/ota_title_color.xml
new file mode 100644
index 0000000..14a283a
--- /dev/null
+++ b/InCallUI/res/color/ota_title_color.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="#FFA6C839"/>
+</selector>
+
diff --git a/InCallUI/res/color/selectable_icon_tint.xml b/InCallUI/res/color/selectable_icon_tint.xml
new file mode 100644
index 0000000..b8aad13
--- /dev/null
+++ b/InCallUI/res/color/selectable_icon_tint.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/button_disabled_color" android:state_enabled="false" />
+    <item android:color="@color/incall_accent_color" android:state_selected="true" />
+    <item android:color="@color/incall_accent_color" android:state_pressed="true" />
+    <item android:color="@color/button_default_color" />
+</selector>
+
diff --git a/InCallUI/res/drawable-hdpi/fab_blue.png b/InCallUI/res/drawable-hdpi/fab_blue.png
new file mode 100644
index 0000000..8ff3d29
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/fab_blue.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/fab_ic_call.png b/InCallUI/res/drawable-hdpi/fab_ic_call.png
new file mode 100644
index 0000000..548a391
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/fab_ic_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/fab_ic_end_call.png b/InCallUI/res/drawable-hdpi/fab_ic_end_call.png
new file mode 100644
index 0000000..b7f54d3
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/fab_ic_end_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/fab_ic_message.png b/InCallUI/res/drawable-hdpi/fab_ic_message.png
new file mode 100644
index 0000000..a1cf2ad
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/fab_ic_message.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/fab_red.png b/InCallUI/res/drawable-hdpi/fab_red.png
new file mode 100644
index 0000000..497cc79
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/fab_red.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..d10ebb7
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_call_end_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_call_end_white_24dp.png
new file mode 100644
index 0000000..757d339
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_call_end_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_call_split_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_call_split_white_24dp.png
new file mode 100644
index 0000000..4e3dbf5
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_call_split_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_call_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_call_white_24dp.png
new file mode 100644
index 0000000..1902e72
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_call_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_forward_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_forward_white_24dp.png
new file mode 100644
index 0000000..a0711d3
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_forward_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_hd_24dp.png b/InCallUI/res/drawable-hdpi/ic_hd_24dp.png
new file mode 100644
index 0000000..35bf51a
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..7c281c3
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_lockscreen_glowdot.png b/InCallUI/res/drawable-hdpi/ic_lockscreen_glowdot.png
new file mode 100644
index 0000000..983c45e
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_lockscreen_glowdot.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_phone_paused_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_phone_paused_white_24dp.png
new file mode 100644
index 0000000..a2177f5
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_phone_paused_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..f3581d1
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_add_call.png b/InCallUI/res/drawable-hdpi/ic_toolbar_add_call.png
new file mode 100644
index 0000000..06603f2
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_add_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_arrow_whitespace.png b/InCallUI/res/drawable-hdpi/ic_toolbar_arrow_whitespace.png
new file mode 100644
index 0000000..ea02daa
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_arrow_whitespace.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_audio_bluetooth.png b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_bluetooth.png
new file mode 100644
index 0000000..05e19bc
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_bluetooth.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_audio_headphones.png b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_headphones.png
new file mode 100644
index 0000000..413fdff
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_headphones.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_audio_phone.png b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_phone.png
new file mode 100644
index 0000000..90ee1fb
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_audio_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_dialpad.png b/InCallUI/res/drawable-hdpi/ic_toolbar_dialpad.png
new file mode 100644
index 0000000..69ece11
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_dialpad.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_hold.png b/InCallUI/res/drawable-hdpi/ic_toolbar_hold.png
new file mode 100644
index 0000000..f32d6d5
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_hold.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_merge.png b/InCallUI/res/drawable-hdpi/ic_toolbar_merge.png
new file mode 100644
index 0000000..2871555
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_merge.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_mic_off.png b/InCallUI/res/drawable-hdpi/ic_toolbar_mic_off.png
new file mode 100644
index 0000000..b142ca8
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_mic_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_speaker_on.png b/InCallUI/res/drawable-hdpi/ic_toolbar_speaker_on.png
new file mode 100644
index 0000000..c934b13
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_speaker_on.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_swap.png b/InCallUI/res/drawable-hdpi/ic_toolbar_swap.png
new file mode 100644
index 0000000..e673f32
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_swap.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_video.png b/InCallUI/res/drawable-hdpi/ic_toolbar_video.png
new file mode 100644
index 0000000..cef47aa
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_video.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_video_off.png b/InCallUI/res/drawable-hdpi/ic_toolbar_video_off.png
new file mode 100644
index 0000000..968ded7
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_video_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_toolbar_video_switch.png b/InCallUI/res/drawable-hdpi/ic_toolbar_video_switch.png
new file mode 100644
index 0000000..cdd623d
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_toolbar_video_switch.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/img_business.png b/InCallUI/res/drawable-hdpi/img_business.png
new file mode 100644
index 0000000..f706342
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/img_business.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/img_conference.png b/InCallUI/res/drawable-hdpi/img_conference.png
new file mode 100644
index 0000000..3d9f683
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/img_conference.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/img_no_image.png b/InCallUI/res/drawable-hdpi/img_no_image.png
new file mode 100644
index 0000000..fd0ab32
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/img_no_image.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/img_phone.png b/InCallUI/res/drawable-hdpi/img_phone.png
new file mode 100644
index 0000000..748312e
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/img_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-land/rounded_call_card_background.xml b/InCallUI/res/drawable-land/rounded_call_card_background.xml
new file mode 100644
index 0000000..f41ecda
--- /dev/null
+++ b/InCallUI/res/drawable-land/rounded_call_card_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/incall_call_banner_background_color" />
+    <corners
+        android:radius="4dp" />
+</shape>
\ No newline at end of file
diff --git a/InCallUI/res/drawable-mdpi/fab_blue.png b/InCallUI/res/drawable-mdpi/fab_blue.png
new file mode 100644
index 0000000..2ca6b4b
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/fab_blue.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/fab_ic_call.png b/InCallUI/res/drawable-mdpi/fab_ic_call.png
new file mode 100644
index 0000000..ff7b345
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/fab_ic_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/fab_ic_end_call.png b/InCallUI/res/drawable-mdpi/fab_ic_end_call.png
new file mode 100644
index 0000000..76ce397
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/fab_ic_end_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/fab_ic_message.png b/InCallUI/res/drawable-mdpi/fab_ic_message.png
new file mode 100644
index 0000000..74876fe
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/fab_ic_message.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/fab_red.png b/InCallUI/res/drawable-mdpi/fab_red.png
new file mode 100644
index 0000000..c9e76a0
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/fab_red.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..7b9227c
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_call_end_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_call_end_white_24dp.png
new file mode 100644
index 0000000..17eb482
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_call_end_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_call_split_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_call_split_white_24dp.png
new file mode 100644
index 0000000..cb7ee1f
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_call_split_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_call_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_call_white_24dp.png
new file mode 100644
index 0000000..d4e5f5d
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_call_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_forward_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_forward_white_24dp.png
new file mode 100644
index 0000000..65f7329
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_forward_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_hd_24dp.png b/InCallUI/res/drawable-mdpi/ic_hd_24dp.png
new file mode 100644
index 0000000..30938fe
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..933eb51
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_lockscreen_glowdot.png b/InCallUI/res/drawable-mdpi/ic_lockscreen_glowdot.png
new file mode 100644
index 0000000..056c3f1
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_lockscreen_glowdot.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_phone_paused_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_phone_paused_white_24dp.png
new file mode 100644
index 0000000..7dc920b
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_phone_paused_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..501ee84
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_add_call.png b/InCallUI/res/drawable-mdpi/ic_toolbar_add_call.png
new file mode 100644
index 0000000..1ee2fb1
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_add_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_arrow_whitespace.png b/InCallUI/res/drawable-mdpi/ic_toolbar_arrow_whitespace.png
new file mode 100644
index 0000000..c39990d
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_arrow_whitespace.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_audio_bluetooth.png b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_bluetooth.png
new file mode 100644
index 0000000..a6634ed
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_bluetooth.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_audio_headphones.png b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_headphones.png
new file mode 100644
index 0000000..b387e85
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_headphones.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_audio_phone.png b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_phone.png
new file mode 100644
index 0000000..b4d887c
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_audio_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_dialpad.png b/InCallUI/res/drawable-mdpi/ic_toolbar_dialpad.png
new file mode 100644
index 0000000..9baa21b
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_dialpad.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_hold.png b/InCallUI/res/drawable-mdpi/ic_toolbar_hold.png
new file mode 100644
index 0000000..c837273
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_hold.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_merge.png b/InCallUI/res/drawable-mdpi/ic_toolbar_merge.png
new file mode 100644
index 0000000..2fba865
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_merge.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_mic_off.png b/InCallUI/res/drawable-mdpi/ic_toolbar_mic_off.png
new file mode 100644
index 0000000..c6b02b8
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_mic_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_speaker_on.png b/InCallUI/res/drawable-mdpi/ic_toolbar_speaker_on.png
new file mode 100644
index 0000000..008e245
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_speaker_on.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_swap.png b/InCallUI/res/drawable-mdpi/ic_toolbar_swap.png
new file mode 100644
index 0000000..acc9850
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_swap.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_video.png b/InCallUI/res/drawable-mdpi/ic_toolbar_video.png
new file mode 100644
index 0000000..3f13f9c
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_video.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_video_off.png b/InCallUI/res/drawable-mdpi/ic_toolbar_video_off.png
new file mode 100644
index 0000000..64a69f2
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_video_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_toolbar_video_switch.png b/InCallUI/res/drawable-mdpi/ic_toolbar_video_switch.png
new file mode 100644
index 0000000..6d097c9
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_toolbar_video_switch.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/img_business.png b/InCallUI/res/drawable-mdpi/img_business.png
new file mode 100644
index 0000000..90738a7
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/img_business.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/img_conference.png b/InCallUI/res/drawable-mdpi/img_conference.png
new file mode 100644
index 0000000..0694dbd
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/img_conference.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/img_no_image.png b/InCallUI/res/drawable-mdpi/img_no_image.png
new file mode 100644
index 0000000..014a1c4
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/img_no_image.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/img_phone.png b/InCallUI/res/drawable-mdpi/img_phone.png
new file mode 100644
index 0000000..41a1d33
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/img_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/fab_blue.png b/InCallUI/res/drawable-xhdpi/fab_blue.png
new file mode 100644
index 0000000..300b07e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/fab_blue.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/fab_ic_call.png b/InCallUI/res/drawable-xhdpi/fab_ic_call.png
new file mode 100644
index 0000000..2bff65e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/fab_ic_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/fab_ic_end_call.png b/InCallUI/res/drawable-xhdpi/fab_ic_end_call.png
new file mode 100644
index 0000000..1c95e17
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/fab_ic_end_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/fab_ic_message.png b/InCallUI/res/drawable-xhdpi/fab_ic_message.png
new file mode 100644
index 0000000..5e3334a
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/fab_ic_message.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/fab_red.png b/InCallUI/res/drawable-xhdpi/fab_red.png
new file mode 100644
index 0000000..373e49e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/fab_red.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..e563045
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_call_end_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_call_end_white_24dp.png
new file mode 100644
index 0000000..b00d82e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_call_end_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_call_split_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_call_split_white_24dp.png
new file mode 100644
index 0000000..218cb12
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_call_split_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_call_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_call_white_24dp.png
new file mode 100644
index 0000000..cde9cea
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_call_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_forward_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_forward_white_24dp.png
new file mode 100644
index 0000000..7a5df52
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_forward_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png b/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png
new file mode 100644
index 0000000..4c954d8
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..814ca8d
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_lockscreen_glowdot.png b/InCallUI/res/drawable-xhdpi/ic_lockscreen_glowdot.png
new file mode 100644
index 0000000..cbd039a
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_lockscreen_glowdot.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_phone_paused_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_phone_paused_white_24dp.png
new file mode 100644
index 0000000..a8becf4
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_phone_paused_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..2e27936
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_add_call.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_add_call.png
new file mode 100644
index 0000000..b251d6b
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_add_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_arrow_whitespace.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_arrow_whitespace.png
new file mode 100644
index 0000000..cdaa79d
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_arrow_whitespace.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_bluetooth.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_bluetooth.png
new file mode 100644
index 0000000..88f6bb9
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_bluetooth.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_headphones.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_headphones.png
new file mode 100644
index 0000000..1acfcaf
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_headphones.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_phone.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_phone.png
new file mode 100644
index 0000000..0ba8f1e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_audio_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_dialpad.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_dialpad.png
new file mode 100644
index 0000000..cf803d1
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_dialpad.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_hold.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_hold.png
new file mode 100644
index 0000000..8fecf75
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_hold.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_merge.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_merge.png
new file mode 100644
index 0000000..777483e
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_merge.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_mic_off.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_mic_off.png
new file mode 100644
index 0000000..cf2041a
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_mic_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_speaker_on.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_speaker_on.png
new file mode 100644
index 0000000..5b5831c
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_speaker_on.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_swap.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_swap.png
new file mode 100644
index 0000000..38917cb
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_swap.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_video.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_video.png
new file mode 100644
index 0000000..b20f504
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_video.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_video_off.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_video_off.png
new file mode 100644
index 0000000..1b269a6
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_video_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_toolbar_video_switch.png b/InCallUI/res/drawable-xhdpi/ic_toolbar_video_switch.png
new file mode 100644
index 0000000..fae6bfd
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_toolbar_video_switch.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/img_business.png b/InCallUI/res/drawable-xhdpi/img_business.png
new file mode 100644
index 0000000..7b04d95
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/img_business.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/img_conference.png b/InCallUI/res/drawable-xhdpi/img_conference.png
new file mode 100644
index 0000000..b0dbcc2
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/img_conference.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/img_no_image.png b/InCallUI/res/drawable-xhdpi/img_no_image.png
new file mode 100644
index 0000000..4022207
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/img_no_image.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/img_phone.png b/InCallUI/res/drawable-xhdpi/img_phone.png
new file mode 100644
index 0000000..2e0ceec
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/img_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/fab_blue.png b/InCallUI/res/drawable-xxhdpi/fab_blue.png
new file mode 100644
index 0000000..76d68ac
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/fab_blue.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/fab_ic_call.png b/InCallUI/res/drawable-xxhdpi/fab_ic_call.png
new file mode 100644
index 0000000..a756b95
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/fab_ic_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/fab_ic_end_call.png b/InCallUI/res/drawable-xxhdpi/fab_ic_end_call.png
new file mode 100644
index 0000000..37e8264
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/fab_ic_end_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/fab_ic_message.png b/InCallUI/res/drawable-xxhdpi/fab_ic_message.png
new file mode 100644
index 0000000..66984b1
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/fab_ic_message.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/fab_red.png b/InCallUI/res/drawable-xxhdpi/fab_red.png
new file mode 100644
index 0000000..92eb979
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/fab_red.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..7dfc8dc
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_call_end_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_call_end_white_24dp.png
new file mode 100644
index 0000000..aeabe4a
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_call_end_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_call_split_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_call_split_white_24dp.png
new file mode 100644
index 0000000..5ea5777
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_call_split_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_call_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_call_white_24dp.png
new file mode 100644
index 0000000..b761bc4
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_call_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_forward_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_forward_white_24dp.png
new file mode 100644
index 0000000..7bd5b16
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_forward_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png
new file mode 100644
index 0000000..dd08bbb
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..078b10d
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_glowdot.png b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_glowdot.png
new file mode 100644
index 0000000..c0edd91
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_glowdot.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_phone_paused_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_phone_paused_white_24dp.png
new file mode 100644
index 0000000..baf0cf2
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_phone_paused_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..bfc7273
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_add_call.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_add_call.png
new file mode 100644
index 0000000..6e343c7
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_add_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_arrow_whitespace.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_arrow_whitespace.png
new file mode 100644
index 0000000..7377040
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_arrow_whitespace.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_bluetooth.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_bluetooth.png
new file mode 100644
index 0000000..b8a385d
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_bluetooth.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_headphones.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_headphones.png
new file mode 100644
index 0000000..62d0ae3
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_headphones.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_phone.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_phone.png
new file mode 100644
index 0000000..0e88501
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_audio_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_dialpad.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_dialpad.png
new file mode 100644
index 0000000..a754f68
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_dialpad.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_hold.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_hold.png
new file mode 100644
index 0000000..f3757a8
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_hold.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_merge.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_merge.png
new file mode 100644
index 0000000..5d04600
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_merge.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_mic_off.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_mic_off.png
new file mode 100644
index 0000000..ae41d5c
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_mic_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_speaker_on.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_speaker_on.png
new file mode 100644
index 0000000..d1bbb09
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_speaker_on.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_swap.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_swap.png
new file mode 100644
index 0000000..ea9127e
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_swap.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_video.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video.png
new file mode 100644
index 0000000..5c52dd6
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_off.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_off.png
new file mode 100644
index 0000000..898b7c0
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_switch.png b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_switch.png
new file mode 100644
index 0000000..4380a47
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_toolbar_video_switch.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/img_business.png b/InCallUI/res/drawable-xxhdpi/img_business.png
new file mode 100644
index 0000000..c17e4c9
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/img_business.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/img_conference.png b/InCallUI/res/drawable-xxhdpi/img_conference.png
new file mode 100644
index 0000000..a8dba5e
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/img_conference.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/img_no_image.png b/InCallUI/res/drawable-xxhdpi/img_no_image.png
new file mode 100644
index 0000000..2cf7f23
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/img_no_image.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/img_phone.png b/InCallUI/res/drawable-xxhdpi/img_phone.png
new file mode 100644
index 0000000..4eaaba5
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/img_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_blue.png b/InCallUI/res/drawable-xxxhdpi/fab_blue.png
new file mode 100644
index 0000000..1dd8a92
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/fab_blue.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_ic_call.png b/InCallUI/res/drawable-xxxhdpi/fab_ic_call.png
new file mode 100644
index 0000000..7af3396
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/fab_ic_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_ic_end_call.png b/InCallUI/res/drawable-xxxhdpi/fab_ic_end_call.png
new file mode 100644
index 0000000..aabdade
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/fab_ic_end_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_ic_message.png b/InCallUI/res/drawable-xxxhdpi/fab_ic_message.png
new file mode 100644
index 0000000..c5a108a
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/fab_ic_message.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_red.png b/InCallUI/res/drawable-xxxhdpi/fab_red.png
new file mode 100644
index 0000000..f1b36f7
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/fab_red.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..c9aea72
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_call_end_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_call_end_white_24dp.png
new file mode 100644
index 0000000..a6e8a7b
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_call_end_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_call_split_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_call_split_white_24dp.png
new file mode 100644
index 0000000..600cec8
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_call_split_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_forward_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_forward_white_24dp.png
new file mode 100644
index 0000000..428009c
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_forward_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png
new file mode 100644
index 0000000..3f87b88
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..8bcb6f6
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..b94f4df
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_add_call.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_add_call.png
new file mode 100644
index 0000000..c97e4bb
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_add_call.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_arrow_whitespace.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_arrow_whitespace.png
new file mode 100644
index 0000000..1c11c5d
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_arrow_whitespace.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_bluetooth.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_bluetooth.png
new file mode 100644
index 0000000..f7fa12c
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_bluetooth.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_headphones.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_headphones.png
new file mode 100644
index 0000000..8199701
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_headphones.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_phone.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_phone.png
new file mode 100644
index 0000000..ee14ea6
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_audio_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_dialpad.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_dialpad.png
new file mode 100644
index 0000000..e537112
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_dialpad.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_hold.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_hold.png
new file mode 100644
index 0000000..883d0d6
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_hold.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_merge.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_merge.png
new file mode 100644
index 0000000..4b64375
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_merge.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_mic_off.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_mic_off.png
new file mode 100644
index 0000000..2d8f279
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_mic_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_speaker_on.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_speaker_on.png
new file mode 100644
index 0000000..0560bb2
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_speaker_on.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_swap.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_swap.png
new file mode 100644
index 0000000..6f03b3f
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_swap.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video.png
new file mode 100644
index 0000000..0797fd0
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_off.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_off.png
new file mode 100644
index 0000000..63f742b
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_off.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_switch.png b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_switch.png
new file mode 100644
index 0000000..77ff73c
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_toolbar_video_switch.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/img_business.png b/InCallUI/res/drawable-xxxhdpi/img_business.png
new file mode 100644
index 0000000..88f14e9
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/img_business.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/img_conference.png b/InCallUI/res/drawable-xxxhdpi/img_conference.png
new file mode 100644
index 0000000..eb42b55
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/img_conference.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/img_no_image.png b/InCallUI/res/drawable-xxxhdpi/img_no_image.png
new file mode 100644
index 0000000..2165742
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/img_no_image.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/img_phone.png b/InCallUI/res/drawable-xxxhdpi/img_phone.png
new file mode 100644
index 0000000..7cbfbd7
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/img_phone.png
Binary files differ
diff --git a/InCallUI/res/drawable/btn_add.xml b/InCallUI/res/drawable/btn_add.xml
new file mode 100644
index 0000000..7d5e90f
--- /dev/null
+++ b/InCallUI/res/drawable/btn_add.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_add_call"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_background.xml b/InCallUI/res/drawable/btn_background.xml
new file mode 100644
index 0000000..5978858
--- /dev/null
+++ b/InCallUI/res/drawable/btn_background.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<!-- Background resource for "compound buttons" in the in-call UI.
+     These buttons have two states (checked and unchecked), and
+     show a blue bar along the bottom edge when checked. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/incall_accent_color">
+    <item>
+        <selector>
+
+            <item android:state_focused="true"
+                  android:drawable="@drawable/btn_unselected_focused" />
+
+            <item android:drawable="@drawable/btn_unselected" />
+
+        </selector>
+    </item>
+</ripple>
diff --git a/InCallUI/res/drawable/btn_change_to_video.xml b/InCallUI/res/drawable/btn_change_to_video.xml
new file mode 100644
index 0000000..a26cee3
--- /dev/null
+++ b/InCallUI/res/drawable/btn_change_to_video.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_video"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint"
+            android:autoMirrored="true" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_change_to_voice.xml b/InCallUI/res/drawable/btn_change_to_voice.xml
new file mode 100644
index 0000000..86a7f21
--- /dev/null
+++ b/InCallUI/res/drawable/btn_change_to_voice.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_audio_phone"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint"
+            android:autoMirrored="true" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_compound_audio.xml b/InCallUI/res/drawable/btn_compound_audio.xml
new file mode 100644
index 0000000..25a64a6
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_audio.xml
@@ -0,0 +1,93 @@
+<?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.
+-->
+
+<!-- Layers used to render the in-call "Audio mode" compound button.
+
+     This is a multi-mode button:
+
+     - If no bluetooth headset is connected, it behaves like a simple
+       "compound button" that switches the speaker on and off.  (This is why
+       the button itself is a ToggleButton instance.)
+
+     - But if a bluetooth headset is connected, this becomes a simple
+       action button (with no concept of a "checked" state) that brings
+       up a popup menu offering you a 3-way choice between earpiece /
+       speaker / bluetooth.
+
+     See InCallTouchUi.updateAudioButton() for the corresponding code. -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background, used to distinguish
+         between the "checked" and "unchecked" states when this button is
+         simply an on/off toggle for the speaker.
+         (In states where the audio button *not* a toggle, we explicitly
+         hide this layer.) -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- The little triangle that indicates that this isn't a plain
+         button, but will instead pop up a menu.  This layer is *not*
+         shown when the audio button is simply an on/off toggle. -->
+    <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full
+         size of the button. -->
+    <item android:id="@+id/moreIndicatorItem">
+        <bitmap android:src="@drawable/ic_toolbar_arrow_whitespace"
+                android:gravity="center"
+                android:tint="@color/selectable_icon_tint" />
+    </item>
+
+    <!-- Finally, the button icon.
+
+         When the audio button is simply an on/off toggle for the speaker,
+         the icon is a "speakerphone" regardless of whether the speaker is
+         active.  (Instead, the "on/off" indication comes from the
+         btn_compound_background selector.)
+
+         But when the audio button is connected to the 3-way popup menu,
+         we use the button's icon to indicate the current audio mode
+         (i.e. one of { earpiece (or wired headset) , speaker , bluetooth }).
+
+         Here we have separate layers for each possible foreground icon,
+         and in InCallTouchUi.updateAudioButton() we hide them all
+         *except* the one needed for the current state. -->
+
+    <!-- These all use an explicit <bitmap> to avoid scaling the icon up
+         to the full size of the button. -->
+
+    <!-- Bluetooth is active -->
+    <item android:id="@+id/bluetoothItem">
+        <bitmap android:src="@drawable/ic_toolbar_audio_bluetooth"
+                android:gravity="center"
+                android:tint="@color/selectable_icon_tint" />
+    </item>
+
+
+    <!-- Handset earpiece is active -->
+    <item android:id="@+id/handsetItem">
+        <bitmap android:src="@drawable/ic_toolbar_audio_phone"
+                android:gravity="center"
+                android:tint="@color/selectable_icon_tint" />
+    </item>
+
+    <!-- Speakerphone icon showing 'speaker on' state -->
+    <item android:id="@+id/speakerphoneItem">
+        <bitmap android:src="@drawable/ic_toolbar_speaker_on"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_background.xml b/InCallUI/res/drawable/btn_compound_background.xml
new file mode 100644
index 0000000..20e2a30
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_background.xml
@@ -0,0 +1,35 @@
+<?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.
+-->
+
+<!-- Background resource for "compound buttons" in the in-call UI.
+     These buttons have two states (selected and unselected). -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/incall_accent_color">
+    <item>
+        <selector>
+            <item android:state_selected="true" android:state_focused="true"
+                  android:drawable="@drawable/btn_selected_focused" />
+
+            <item android:state_focused="true"
+                  android:drawable="@drawable/btn_unselected_focused" />
+
+            <item android:state_selected="true"
+                android:drawable="@drawable/btn_selected" />
+
+            <item android:drawable="@drawable/btn_unselected" />
+        </selector>
+    </item>
+</ripple>
diff --git a/InCallUI/res/drawable/btn_compound_dialpad.xml b/InCallUI/res/drawable/btn_compound_dialpad.xml
new file mode 100644
index 0000000..1b78ead
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_dialpad.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<!-- Layers used to render the in-call "Dialpad" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- ...and the actual icon on top.  Use an explicit <bitmap> to avoid scaling
+         the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_dialpad"
+                android:gravity="center"
+                android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_hold.xml b/InCallUI/res/drawable/btn_compound_hold.xml
new file mode 100644
index 0000000..7974efa
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_hold.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<!-- Layers used to render the in-call "Hold" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- ...and the actual icon on top.  Use an explicit <bitmap> to avoid scaling
+         the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_hold"
+                android:gravity="center"
+                android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_mute.xml b/InCallUI/res/drawable/btn_compound_mute.xml
new file mode 100644
index 0000000..86708fb
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_mute.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_mic_off"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_video_off.xml b/InCallUI/res/drawable/btn_compound_video_off.xml
new file mode 100644
index 0000000..b942cd0
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_video_off.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_video_off"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint"
+            android:autoMirrored="true" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_video_switch.xml b/InCallUI/res/drawable/btn_compound_video_switch.xml
new file mode 100644
index 0000000..f811186
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_video_switch.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_video_switch"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint"
+            android:autoMirrored="true" />
+    </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_merge.xml b/InCallUI/res/drawable/btn_merge.xml
new file mode 100644
index 0000000..2b4818a
--- /dev/null
+++ b/InCallUI/res/drawable/btn_merge.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_merge"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_overflow.xml b/InCallUI/res/drawable/btn_overflow.xml
new file mode 100644
index 0000000..2eb26cc
--- /dev/null
+++ b/InCallUI/res/drawable/btn_overflow.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_overflow_menu"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_selected.xml b/InCallUI/res/drawable/btn_selected.xml
new file mode 100644
index 0000000..1446e41
--- /dev/null
+++ b/InCallUI/res/drawable/btn_selected.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item>
+        <shape android:shape="oval">
+            <solid android:color="@color/button_selected_color" />
+        </shape>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_selected_focused.xml b/InCallUI/res/drawable/btn_selected_focused.xml
new file mode 100644
index 0000000..2eda9bf
--- /dev/null
+++ b/InCallUI/res/drawable/btn_selected_focused.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:drawable="@drawable/btn_selected" />
+
+    <item>
+        <shape android:shape="oval" >
+            <stroke
+                android:width="4dp"
+                android:color="@color/focus_color" />
+        </shape>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_swap.xml b/InCallUI/res/drawable/btn_swap.xml
new file mode 100644
index 0000000..5d6c8ec
--- /dev/null
+++ b/InCallUI/res/drawable/btn_swap.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/backgroundItem"
+          android:drawable="@drawable/btn_background" />
+
+    <item>
+        <bitmap android:src="@drawable/ic_toolbar_swap"
+            android:gravity="center"
+            android:tint="@color/selectable_icon_tint" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_unselected.xml b/InCallUI/res/drawable/btn_unselected.xml
new file mode 100644
index 0000000..aed995c
--- /dev/null
+++ b/InCallUI/res/drawable/btn_unselected.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item>
+        <shape android:shape="oval">
+            <solid android:color="@color/incall_background_color" />
+        </shape>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_unselected_focused.xml b/InCallUI/res/drawable/btn_unselected_focused.xml
new file mode 100644
index 0000000..66075d4
--- /dev/null
+++ b/InCallUI/res/drawable/btn_unselected_focused.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:drawable="@drawable/btn_unselected" />
+    <item>
+        <shape android:shape="oval" >
+            <stroke
+                android:width="4dp"
+                android:color="@color/focus_color" />
+        </shape>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/conference_ripple.xml b/InCallUI/res/drawable/conference_ripple.xml
new file mode 100644
index 0000000..4e4a213
--- /dev/null
+++ b/InCallUI/res/drawable/conference_ripple.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="@color/ripple_light">
+    <!-- Constrain the ripple to a rectangular area -->
+    <item>
+        <shape android:shape="rectangle">
+            <solid android:color="@color/background_dialer_white" />
+        </shape>
+    </item>
+</ripple>
\ No newline at end of file
diff --git a/InCallUI/res/drawable/end_call_background.xml b/InCallUI/res/drawable/end_call_background.xml
new file mode 100644
index 0000000..c43deac
--- /dev/null
+++ b/InCallUI/res/drawable/end_call_background.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+
+<!-- Background drawable used to render the "end call" button. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/end_call_touch_feedback_tint">
+    <item android:id="@android:id/mask">
+        <shape android:shape="oval">
+            <solid android:color="@android:color/white" />
+        </shape>
+    </item>
+</ripple>
diff --git a/InCallUI/res/drawable/ic_incall_audio_handle.xml b/InCallUI/res/drawable/ic_incall_audio_handle.xml
new file mode 100644
index 0000000..2e71a5b
--- /dev/null
+++ b/InCallUI/res/drawable/ic_incall_audio_handle.xml
@@ -0,0 +1,40 @@
+<?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.
+-->
+
+<!-- Touch handle for the GlowPadView widget on the incoming call screen -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Audio call icon on tinted floating action bar background. -->
+    <item
+        android:state_enabled="true"
+        android:state_active="false"
+        android:state_focused="false">
+        <layer-list>
+            <item>
+                <bitmap
+                    android:src="@drawable/fab_blue"
+                    android:tint="@color/glowpad_incoming_widget_background_tint" />
+            </item>
+            <item>
+                <bitmap
+                    android:gravity="center"
+                    android:src="@drawable/fab_ic_call"
+                    android:tint="@color/glowpad_incoming_widget_tint" />
+            </item>
+        </layer-list>
+    </item>
+
+</selector>
diff --git a/InCallUI/res/drawable/ic_incall_video_handle.xml b/InCallUI/res/drawable/ic_incall_video_handle.xml
new file mode 100644
index 0000000..a24e305
--- /dev/null
+++ b/InCallUI/res/drawable/ic_incall_video_handle.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<!-- Touch handle for the GlowPadView widget on the incoming call screen -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Video call icon on tinted floating action bar background. -->
+    <item
+        android:state_enabled="true"
+        android:state_active="false"
+        android:state_focused="false">
+        <layer-list>
+            <item>
+                <bitmap
+                    android:src="@drawable/fab_blue"
+                    android:tint="@color/glowpad_incoming_widget_background_tint" />
+            </item>
+            <item>
+                <bitmap
+                    android:gravity="center"
+                    android:src="@drawable/ic_videocam"
+                    android:tint="@color/glowpad_incoming_widget_tint" />
+            </item>
+        </layer-list>
+    </item>
+
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer.xml b/InCallUI/res/drawable/ic_lockscreen_answer.xml
new file mode 100644
index 0000000..3184111
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_normal_layer"/>
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_activated_layer" />
+   <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_answer_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml
new file mode 100644
index 0000000..f22b87e
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fab_green"/>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_call"
+            android:tint="@color/glowpad_widget_active_color"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_normal_layer.xml
new file mode 100644
index 0000000..31b884f
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_normal_layer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_call"
+            android:tint="@color/glowpad_call_widget_normal_tint"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video.xml
new file mode 100644
index 0000000..0557797
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_video_normal_layer"/>
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_video_activated_layer" />
+   <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_answer_video_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml
new file mode 100644
index 0000000..7895e1b
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fab_blue" />
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_videocam"
+            android:tint="@color/glowpad_widget_active_color"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml
new file mode 100644
index 0000000..793a36e
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_videocam"
+            android:tint="@color/glowpad_call_widget_normal_tint"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline.xml b/InCallUI/res/drawable/ic_lockscreen_decline.xml
new file mode 100644
index 0000000..6643816
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_normal_layer" />
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_activated_layer" />
+    <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_decline_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_decline_activated_layer.xml
new file mode 100644
index 0000000..096c32b
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_activated_layer.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fab_red" />
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_end_call"
+            android:tint="@color/glowpad_widget_active_color" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_decline_normal_layer.xml
new file mode 100644
index 0000000..4da5f8d
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_normal_layer.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_end_call"
+            android:tint="@color/glowpad_end_call_widget_normal_tint" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_video.xml b/InCallUI/res/drawable/ic_lockscreen_decline_video.xml
new file mode 100644
index 0000000..cedd497
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_video.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_video_normal_layer"/>
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_video_activated_layer" />
+   <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_decline_video_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_video_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_decline_video_activated_layer.xml
new file mode 100644
index 0000000..0790aed
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_video_activated_layer.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fab_red" />
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_toolbar_video_off"
+            android:tint="@color/glowpad_widget_active_color"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml
new file mode 100644
index 0000000..e3b89b9
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_toolbar_video_off"
+            android:tint="@color/glowpad_end_call_widget_normal_tint"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_outerring.xml b/InCallUI/res/drawable/ic_lockscreen_outerring.xml
new file mode 100644
index 0000000..489515f
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_outerring.xml
@@ -0,0 +1,22 @@
+<?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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <size android:height="@dimen/glowpadview_outerring_diameter"
+          android:width="@dimen/glowpadview_outerring_diameter" />
+    <stroke android:color="@color/glowpad_outer_ring_color" android:width="1dp" />
+</shape>
diff --git a/InCallUI/res/drawable/ic_lockscreen_text.xml b/InCallUI/res/drawable/ic_lockscreen_text.xml
new file mode 100644
index 0000000..f9caac8
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_text.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_text_normal_layer" />
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_text_activated_layer" />
+    <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_text_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_text_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_text_activated_layer.xml
new file mode 100644
index 0000000..a74e36b
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_text_activated_layer.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <stroke android:color="@color/glowpad_text_widget_ring_color" android:width="1dp"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_message"
+            android:tint="@color/glowpad_widget_active_color"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_text_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_text_normal_layer.xml
new file mode 100644
index 0000000..be32d0b
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_text_normal_layer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/fab_ic_message"
+            android:tint="@color/glowpad_text_widget_normal_tint"
+            android:autoMirrored="true" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/img_conference_automirrored.xml b/InCallUI/res/drawable/img_conference_automirrored.xml
new file mode 100644
index 0000000..fa1fd49
--- /dev/null
+++ b/InCallUI/res/drawable/img_conference_automirrored.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/img_conference"
+    android:autoMirrored="true" />
\ No newline at end of file
diff --git a/InCallUI/res/drawable/img_no_image_automirrored.xml b/InCallUI/res/drawable/img_no_image_automirrored.xml
new file mode 100644
index 0000000..f0cf0db
--- /dev/null
+++ b/InCallUI/res/drawable/img_no_image_automirrored.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/img_no_image"
+    android:autoMirrored="true" />
\ No newline at end of file
diff --git a/InCallUI/res/drawable/incoming_sms_background.xml b/InCallUI/res/drawable/incoming_sms_background.xml
new file mode 100644
index 0000000..81ff21c
--- /dev/null
+++ b/InCallUI/res/drawable/incoming_sms_background.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:topRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomLeftRadius="@dimen/person_contact_context_message_background_accent_radius"/>
+    <solid android:color="@color/person_contact_context_message_background_color" />
+</shape>
diff --git a/InCallUI/res/drawable/outgoing_sms_background.xml b/InCallUI/res/drawable/outgoing_sms_background.xml
new file mode 100644
index 0000000..e4f868f
--- /dev/null
+++ b/InCallUI/res/drawable/outgoing_sms_background.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:topRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomRightRadius="@dimen/person_contact_context_message_background_accent_radius"/>
+    <solid android:color="@color/person_contact_context_message_background_color" />
+</shape>
diff --git a/InCallUI/res/drawable/subject_bubble.xml b/InCallUI/res/drawable/subject_bubble.xml
new file mode 100644
index 0000000..adab678
--- /dev/null
+++ b/InCallUI/res/drawable/subject_bubble.xml
@@ -0,0 +1,22 @@
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff" />
+    <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
+    <corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
+             android:bottomLeftRadius="0dp" android:bottomRightRadius="6dp"/>
+</shape>
\ No newline at end of file
diff --git a/InCallUI/res/layout-h500dp/call_card_fragment.xml b/InCallUI/res/layout-h500dp/call_card_fragment.xml
new file mode 100644
index 0000000..c3ae877
--- /dev/null
+++ b/InCallUI/res/layout-h500dp/call_card_fragment.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2016 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
+  -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <!-- Primary "call card" block, for the foreground call. -->
+        <LinearLayout
+            android:id="@+id/primary_call_info_container"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:orientation="vertical"
+            android:elevation="@dimen/primary_call_elevation"
+            android:background="@color/incall_call_banner_background_color"
+            android:paddingTop="@dimen/call_banner_primary_call_container_top_padding"
+            android:clipChildren="false"
+            android:clipToPadding="false"
+            android:gravity="bottom">
+
+            <include layout="@layout/primary_call_info"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:minHeight="@dimen/call_banner_height"
+                android:animateLayoutChanges="true"
+                android:gravity="center"
+                android:layout_centerHorizontal="true" />
+
+            <fragment android:name="com.android.incallui.CallButtonFragment"
+                android:id="@+id/callButtonFragment"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <TextView android:id="@+id/connectionServiceMessage"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:visibility="gone"
+                android:padding="@dimen/call_banner_side_padding"
+                android:background="@android:color/white" />
+
+        </LinearLayout>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="2">
+
+            <FrameLayout
+                android:layout_height="match_parent"
+                android:layout_width="match_parent"
+                android:id="@+id/call_card_content">
+
+                <!-- Contact photo for primary call info -->
+                <ImageView android:id="@+id/photoLarge"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:scaleType="centerCrop"
+                    android:importantForAccessibility="no"
+                    android:background="@color/incall_photo_background_color"
+                    android:src="@drawable/img_no_image_automirrored" />
+
+                <!-- Call context -->
+                <LinearLayout
+                    android:id="@+id/contact_context"
+                    android:layout_height="match_parent"
+                    android:layout_width="match_parent"
+                    android:orientation="vertical"
+                    android:background="@color/incall_background_color"
+                    android:visibility="gone">
+                    <TextView android:id="@+id/contactContextTitle"
+                        android:textSize="@dimen/contact_context_title_text_size"
+                        android:textColor="@color/contact_context_title_text_color"
+                        android:fontFamily="sans-serif-medium"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginBottom="@dimen/contact_context_title_margin_bottom"/>
+                    <ListView android:id="@+id/contactContextInfo"
+                         android:layout_width="match_parent"
+                         android:layout_height="match_parent"
+                         android:divider="@null"
+                         android:dividerHeight="@dimen/contact_context_list_item_padding"/>
+                </LinearLayout>
+            </FrameLayout>
+
+            <fragment android:name="com.android.incallui.VideoCallFragment"
+                android:id="@+id/videoCallFragment"
+                android:layout_alignParentTop="true"
+                android:layout_gravity="top|center_horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+
+            <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
+            <FrameLayout
+                android:id="@+id/progressSpinner"
+                android:background="#63000000"
+                android:layout_width="fill_parent"
+                android:layout_height="fill_parent"
+                android:layout_centerHorizontal="true"
+                android:layout_centerVertical="true"
+                android:visibility="gone">
+
+                <ProgressBar
+                    android:id="@+id/progress_bar"
+                    style="@android:style/Widget.Material.ProgressBar"
+                    android:layout_gravity="center"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:indeterminate="true" />
+
+            </FrameLayout>
+
+
+            <include layout="@layout/manage_conference_call_button"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <!-- Placeholder for various fragments that are added dynamically underneath the caller info. -->
+            <FrameLayout
+                android:id="@+id/answer_and_dialpad_container"
+                android:layout_gravity="bottom|center_horizontal"
+                android:layout_alignParentBottom="true"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:elevation="@dimen/dialpad_elevation" />
+
+            <FrameLayout
+                android:id="@+id/floating_end_call_action_button_container"
+                android:layout_width="@dimen/end_call_floating_action_button_diameter"
+                android:layout_height="@dimen/end_call_floating_action_button_diameter"
+                android:background="@drawable/fab_red"
+                android:layout_alignParentBottom="true"
+                android:layout_centerHorizontal="true"
+                android:layout_marginBottom="@dimen/end_call_button_margin_bottom">
+
+                <ImageButton android:id="@+id/floating_end_call_action_button"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:background="@drawable/end_call_background"
+                    android:src="@drawable/fab_ic_end_call"
+                    android:scaleType="center"
+                    android:contentDescription="@string/onscreenEndCallText" />
+
+            </FrameLayout>
+
+        </RelativeLayout>
+
+    </LinearLayout>
+    <!-- Secondary "Call info" block, for the background ("on hold") call. -->
+    <include layout="@layout/secondary_call_info" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout-h600dp/manage_conference_call_button.xml b/InCallUI/res/layout-h600dp/manage_conference_call_button.xml
new file mode 100644
index 0000000..9a83313
--- /dev/null
+++ b/InCallUI/res/layout-h600dp/manage_conference_call_button.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 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
+  -->
+
+<!-- This button is used only on GSM and IMS devices, during a conference call. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/manage_conference_call_button"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/incall_banner_secondary_background_color"
+    android:focusable="true"
+    android:contentDescription="@string/onscreenManageConferenceText">
+
+    <Space android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/secondary_call_info_divider_highlight_color" />
+
+    <!-- This LinearLayout nested immediately in a FrameLayout is necessary to apply both a
+         background color and ripple to the button. -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingEnd="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingTop="@dimen/secondary_call_info_vertical_padding"
+        android:paddingBottom="@dimen/secondary_call_info_vertical_padding"
+        android:background="?android:attr/selectableItemBackground">
+
+        <ImageView android:id="@+id/manageConferenceButtonImage"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/ic_group_white_24dp"
+            android:tint="@color/incall_banner_secondary_text_color"
+            android:paddingEnd="16dp"
+            android:importantForAccessibility="no" />
+
+        <TextView android:id="@+id/manageConferenceButtonLabel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:textColor="@color/incall_banner_secondary_text_color"
+            android:textSize="@dimen/secondary_call_info_text_size"
+            android:text="@string/onscreenManageConferenceText"
+            android:importantForAccessibility="no" />
+
+    </LinearLayout>
+
+</FrameLayout>
diff --git a/InCallUI/res/layout-w500dp-land/call_card_fragment.xml b/InCallUI/res/layout-w500dp-land/call_card_fragment.xml
new file mode 100644
index 0000000..c71cf07
--- /dev/null
+++ b/InCallUI/res/layout-w500dp-land/call_card_fragment.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:id="@+id/primary_call_info_container"
+        android:layout_centerVertical="true"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:elevation="@dimen/primary_call_elevation"
+        android:background="@drawable/rounded_call_card_background"
+        android:paddingTop="@dimen/call_banner_primary_call_container_top_padding"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        android:alpha="0.9"
+        android:layout_margin="10dp">
+
+        <include layout="@layout/primary_call_info" />
+
+        <fragment android:name="com.android.incallui.CallButtonFragment"
+            android:id="@+id/callButtonFragment"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom|center_horizontal"
+            android:layout_marginBottom="@dimen/call_buttons_bottom_margin" />
+
+        <!-- Secondary "Call info" block, for the background ("on hold") call. -->
+        <include layout="@layout/secondary_call_info"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom" />
+
+    </LinearLayout>
+
+    <FrameLayout
+        android:layout_height="match_parent"
+        android:layout_width="0dp"
+        android:layout_weight="1">
+
+        <FrameLayout
+            android:layout_height="match_parent"
+            android:layout_width="match_parent"
+            android:id="@+id/call_card_content">
+
+            <ImageView android:id="@+id/photoLarge"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:scaleType="centerCrop"
+                android:contentDescription="@string/contactPhoto"
+                android:background="@color/incall_photo_background_color"
+                android:src="@drawable/img_no_image_automirrored" />
+
+            <!-- Call context -->
+            <LinearLayout
+                android:id="@+id/contact_context"
+                android:layout_height="match_parent"
+                android:layout_width="match_parent"
+                android:orientation="vertical"
+                android:background="@color/incall_background_color"
+                android:visibility="gone">
+                <TextView android:id="@+id/contactContextTitle"
+                    android:textSize="@dimen/contact_context_title_text_size"
+                    android:textColor="@color/contact_context_title_text_color"
+                    android:fontFamily="sans-serif-medium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_marginBottom="@dimen/contact_context_title_margin_bottom" />
+                <ListView android:id="@+id/contactContextInfo"
+                     android:layout_width="match_parent"
+                     android:layout_height="match_parent"
+                     android:divider="@null"
+                     android:dividerHeight="@dimen/contact_context_list_item_padding" />
+            </LinearLayout>
+
+        </FrameLayout>
+
+        <include layout="@layout/manage_conference_call_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/photoLarge" />
+
+        <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
+        <FrameLayout
+            android:id="@+id/progressSpinner"
+            android:background="#63000000"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:visibility="gone" >
+
+            <ProgressBar
+                android:id="@+id/progress_bar"
+                style="@android:style/Widget.Material.ProgressBar"
+                android:layout_gravity="center"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:indeterminate="true" />
+
+        </FrameLayout>
+
+        <fragment android:name="com.android.incallui.VideoCallFragment"
+            android:layout_alignParentStart="true"
+            android:layout_gravity="start|center_vertical"
+            android:id="@+id/videoCallFragment"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <!-- Placeholder for the dialpad which is replaced with the dialpad fragment when shown. -->
+        <FrameLayout
+            android:id="@+id/answer_and_dialpad_container"
+            android:layout_gravity="bottom"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <FrameLayout
+            android:id="@+id/floating_end_call_action_button_container"
+            android:layout_width="@dimen/end_call_floating_action_button_diameter"
+            android:layout_height="@dimen/end_call_floating_action_button_diameter"
+            android:background="@drawable/fab_red"
+            android:layout_gravity="bottom|center_horizontal"
+            android:layout_marginBottom="@dimen/end_call_button_margin_bottom">
+
+            <ImageButton android:id="@+id/floating_end_call_action_button"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/end_call_background"
+                android:src="@drawable/fab_ic_end_call"
+                android:scaleType="center"
+                android:contentDescription="@string/onscreenEndCallText" />
+
+        </FrameLayout>
+
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/InCallUI/res/layout-w600dp-land/manage_conference_call_button.xml b/InCallUI/res/layout-w600dp-land/manage_conference_call_button.xml
new file mode 100644
index 0000000..9a83313
--- /dev/null
+++ b/InCallUI/res/layout-w600dp-land/manage_conference_call_button.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 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
+  -->
+
+<!-- This button is used only on GSM and IMS devices, during a conference call. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/manage_conference_call_button"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/incall_banner_secondary_background_color"
+    android:focusable="true"
+    android:contentDescription="@string/onscreenManageConferenceText">
+
+    <Space android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/secondary_call_info_divider_highlight_color" />
+
+    <!-- This LinearLayout nested immediately in a FrameLayout is necessary to apply both a
+         background color and ripple to the button. -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingEnd="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingTop="@dimen/secondary_call_info_vertical_padding"
+        android:paddingBottom="@dimen/secondary_call_info_vertical_padding"
+        android:background="?android:attr/selectableItemBackground">
+
+        <ImageView android:id="@+id/manageConferenceButtonImage"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/ic_group_white_24dp"
+            android:tint="@color/incall_banner_secondary_text_color"
+            android:paddingEnd="16dp"
+            android:importantForAccessibility="no" />
+
+        <TextView android:id="@+id/manageConferenceButtonLabel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:textColor="@color/incall_banner_secondary_text_color"
+            android:textSize="@dimen/secondary_call_info_text_size"
+            android:text="@string/onscreenManageConferenceText"
+            android:importantForAccessibility="no" />
+
+    </LinearLayout>
+
+</FrameLayout>
diff --git a/InCallUI/res/layout/accessible_answer_fragment.xml b/InCallUI/res/layout/accessible_answer_fragment.xml
new file mode 100644
index 0000000..90fe577
--- /dev/null
+++ b/InCallUI/res/layout/accessible_answer_fragment.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+~ 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
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:background="@color/glowpad_background_color">
+    <RelativeLayout
+        android:id="@+id/accessible_answer_fragment_answer"
+        android:orientation="vertical"
+        android:layout_width="120dp"
+        android:layout_height="120dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_answer_activated_layer"
+            android:layout_centerInParent="true">
+        </ImageView>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/description_target_answer"
+            android:textSize="12sp"
+            android:textColor="@color/accessible_answer_hint_text_color"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="8dp"/>
+    </RelativeLayout>
+    <RelativeLayout
+        android:id="@+id/accessible_answer_fragment_decline"
+        android:orientation="vertical"
+        android:layout_width="120dp"
+        android:layout_height="120dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentLeft="true"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_decline_activated_layer"
+            android:layout_centerInParent="true">
+        </ImageView>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/description_target_decline"
+            android:textSize="12sp"
+            android:textColor="@color/accessible_answer_hint_text_color"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="8dp"/>
+    </RelativeLayout>
+    <LinearLayout
+        android:id="@+id/accessible_answer_fragment_text"
+        android:orientation="vertical"
+        android:layout_width="92dp"
+        android:layout_height="92dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentEnd="false"
+        android:layout_alignParentStart="false"
+        android:layout_above="@+id/accessible_answer_fragment_decline"
+        android:layout_alignWithParentIfMissing="false"
+        android:layout_alignParentTop="false"
+        android:layout_alignParentLeft="false"
+        android:layout_alignParentBottom="false"
+        android:layout_alignParentRight="false"
+        android:layout_centerHorizontal="true"
+        android:contentDescription="@string/description_target_send_sms"
+        android:gravity="center">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_text">
+        </ImageView>
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/answer_fragment.xml b/InCallUI/res/layout/answer_fragment.xml
new file mode 100644
index 0000000..ec6ef30
--- /dev/null
+++ b/InCallUI/res/layout/answer_fragment.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<com.android.incallui.GlowPadWrapper
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:dc="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/glow_pad_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:focusable="true"
+        android:layout_centerHorizontal="true"
+        android:gravity="center"
+        android:background="@color/glowpad_background_color"
+        android:layout_marginBottom="@dimen/glowpadview_margin_bottom"
+
+        dc:targetDrawables="@array/incoming_call_widget_audio_with_sms_targets"
+        dc:targetDescriptions="@array/incoming_call_widget_audio_with_sms_target_descriptions"
+        dc:directionDescriptions="@array/incoming_call_widget_audio_with_sms_direction_descriptions"
+        dc:handleDrawable="@drawable/ic_incall_audio_handle"
+        dc:outerRingDrawable="@drawable/ic_lockscreen_outerring"
+        dc:outerRadius="@dimen/glowpadview_target_placement_radius"
+        dc:innerRadius="@dimen/glowpadview_inner_radius"
+        dc:snapMargin="@dimen/glowpadview_snap_margin"
+        dc:feedbackCount="1"
+        dc:vibrationDuration="20"
+        dc:glowRadius="@dimen/glowpadview_glow_radius"
+        dc:pointDrawable="@drawable/ic_lockscreen_glowdot"
+        dc:allowScaling="true" />
diff --git a/InCallUI/res/layout/business_contact_context_list_header.xml b/InCallUI/res/layout/business_contact_context_list_header.xml
new file mode 100644
index 0000000..9052118
--- /dev/null
+++ b/InCallUI/res/layout/business_contact_context_list_header.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="wrap_content"
+     android:orientation="horizontal"
+     android:paddingEnd="@dimen/business_contact_context_end_padding">
+     <ImageView android:id="@+id/icon"
+         android:layout_width="@dimen/contact_context_title_image_size"
+         android:layout_height="@dimen/contact_context_title_image_size"
+         android:layout_marginLeft="@dimen/contact_context_title_image_side_padding"
+         android:layout_marginRight="@dimen/contact_context_title_image_side_padding"
+         android:layout_gravity="center"
+         android:scaleType="center"
+         android:src="@drawable/ic_business_white_24dp"
+         android:tint="@color/business_contact_context_text_color"
+         android:alpha="0.8"
+         android:importantForAccessibility="no"/>
+     <TextView android:id="@+id/title"
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_gravity="center_vertical"
+         android:text="@string/business_contact_context_title"
+         android:textSize="@dimen/business_contact_context_detail_font_size"
+         android:textColor="@color/business_contact_context_text_color"
+         android:fontFamily="sans-serif-medium"/>
+ </LinearLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/business_context_info_list_item.xml b/InCallUI/res/layout/business_context_info_list_item.xml
new file mode 100644
index 0000000..616d219
--- /dev/null
+++ b/InCallUI/res/layout/business_context_info_list_item.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="wrap_content"
+     android:orientation="horizontal"
+     android:paddingEnd="@dimen/business_contact_context_end_padding">
+     <ImageView android:id="@+id/icon"
+         android:layout_width="@dimen/business_contact_context_image_size"
+         android:layout_height="@dimen/business_contact_context_image_size"
+         android:layout_marginLeft="@dimen/business_contact_context_image_padding"
+         android:layout_marginRight="@dimen/business_contact_context_image_padding"
+         android:layout_gravity="center"
+         android:scaleType="centerCrop"
+         android:tint="@color/business_contact_context_text_color"
+         android:alpha="0.8"/>
+     <LinearLayout
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_gravity="center"
+         android:orientation="vertical">
+         <TextView android:id="@+id/heading"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:textSize="@dimen/business_contact_context_heading_font_size"
+             android:textColor="@color/business_contact_context_text_color"
+             android:fontFamily="sans-serif-medium"/>
+         <TextView android:id="@+id/detail"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:textSize="@dimen/business_contact_context_detail_font_size"
+             android:textColor="@color/business_contact_context_text_color"
+             android:fontFamily="sans-serif-medium"/>
+     </LinearLayout>
+ </LinearLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml
new file mode 100644
index 0000000..db75764
--- /dev/null
+++ b/InCallUI/res/layout/call_button_fragment.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<!-- In-call onscreen touch UI elements, used on some platforms.
+
+     This layout is a fullscreen overlay, drawn on top of the
+     non-touch-sensitive parts of the in-call UI (i.e. the call card).
+
+     The top-level View here is a InCallTouchUi (FrameLayout) with 2 children:
+       (1) inCallControls: the widgets visible while a regular call (or calls) is in progress
+       (2) incomingCallWidget: the UI displayed while an incoming call is ringing
+     In usual cases, one of these is visible at any given moment.
+     One exception is when incomingCallWidget is fading-out. At that moment, we show
+     inCallControls beneath incomingCallWidget for smoother transition.
+     -->
+
+<!-- Main cluster of onscreen buttons on the lower part of the screen. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/bottomButtons"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_margin="0dp"
+    android:padding="0dp"
+    android:background="@color/button_background_color"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:animateLayoutChanges="true" >
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="bottom|center_horizontal"
+        android:baselineAligned="false">
+
+        <!-- This row only ever shows either 4 or 5 buttons. This may depend on whether the device
+             supports "Hold" (i.e. 4 buttons on CDMA devices, 5 buttons on GSM devices.) or whether
+             it is in a video call.
+
+             There are a couple of *pairs* of buttons that share a single "slot", namely Hold/Swap
+             and Add/Merge.  For these, the code in InCallTouchUi is responsible for making sure
+             that at any point exactly one of the pair is VISIBLE and the other is GONE.
+
+             If there are more than 5 buttons eligible to be shown, the presenter is responsible for
+             collapsing those options into an overflow menu, which appears as one of the buttons
+             in the row instead. -->
+
+        <!-- FAR LEFT SLOT ===================================================================== -->
+
+        <!-- "Audio mode". this is a multi-mode button that can behave either like a simple
+             "compound button" with two states *or* like an action button that brings up a popup
+             menu; see btn_compound_audio.xml and CallButtonFragment.updateAudioButtons(). -->
+        <ToggleButton android:id="@+id/audioButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_audio"
+            android:contentDescription="@string/audio_mode_speaker" />
+
+        <!-- MIDDLE LEFT SLOT ================================================================== -->
+
+        <!-- "Mute" -->
+        <ToggleButton android:id="@+id/muteButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_mute"
+            android:contentDescription="@string/onscreenMuteText" />
+
+        <!-- CENTER SLOT ======================================================================= -->
+
+        <!-- "Dialpad" -->
+        <ToggleButton android:id="@+id/dialpadButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_dialpad"
+            android:contentDescription="@string/onscreenShowDialpadText" />
+
+        <!-- MIDDLE RIGHT SLOT ================================================================= -->
+
+        <!-- This slot is either "Hold" or "Swap", depending on the state of the call. One or the
+             other of these must always be set to GONE. -->
+
+        <!-- "Hold" -->
+        <ToggleButton android:id="@+id/holdButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_hold"
+            android:contentDescription="@string/onscreenHoldText_unselected" />
+
+        <!-- "Swap" (or "Manage calls" in some CDMA states) -->
+        <ImageButton android:id="@+id/swapButton"
+            style="@style/InCallButton"
+            android:background="@drawable/btn_swap"
+            android:contentDescription="@string/onscreenSwapCallsText"
+            android:visibility="gone" />
+
+        <!-- "Change to video call" -->
+        <ImageButton android:id="@+id/changeToVideoButton"
+            style="@style/InCallButton"
+            android:background="@drawable/btn_change_to_video"
+            android:contentDescription="@string/onscreenVideoCallText"
+            android:visibility="gone" />
+
+        <!-- "Switch camera" for video calls. -->
+        <ToggleButton android:id="@+id/switchCameraButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_video_switch"
+            android:contentDescription="@string/onscreenSwitchCameraText"
+            android:visibility="gone" />
+
+        <!-- FAR RIGHT SLOT ==================================================================== -->
+
+        <!-- This slot is either "Add" or "Merge", depending on the state of the call.  One or the
+             other of these must always be set to GONE. -->
+
+        <!-- "Turn off camera" for video calls. -->
+        <ToggleButton android:id="@+id/pauseVideoButton"
+            style="@style/InCallCompoundButton"
+            android:background="@drawable/btn_compound_video_off"
+            android:contentDescription="@string/onscreenPauseVideoText"
+            android:visibility="gone" />
+
+        <!-- "Change to audio call" for video calls. -->
+        <ImageButton android:id="@+id/changeToVoiceButton"
+                     style="@style/InCallButton"
+                     android:background="@drawable/btn_change_to_voice"
+                     android:contentDescription="@string/onscreenChangeToVoiceText"
+                     android:visibility="gone" />
+
+        <!-- "Add Call" -->
+        <ImageButton android:id="@+id/addButton"
+            style="@style/InCallButton"
+            android:background="@drawable/btn_add"
+            android:contentDescription="@string/onscreenAddCallText"
+            android:visibility="gone" />
+
+        <!-- "Merge calls". This button is used only on GSM devices, where we know that "Add" and
+             "Merge" are never available at the same time. The "Merge" button for CDMA devices is
+             "cdmaMergeButton" above. -->
+        <ImageButton android:id="@+id/mergeButton"
+            style="@style/InCallButton"
+            android:background="@drawable/btn_merge"
+            android:contentDescription="@string/onscreenMergeCallsText"
+            android:visibility="gone" />
+
+        <!-- "Overflow" -->
+        <ImageButton android:id="@+id/overflowButton"
+            style="@style/InCallButton"
+            android:background="@drawable/btn_overflow"
+            android:contentDescription="@string/onscreenOverflowText"
+            android:visibility="gone" />
+
+        <!-- "Manage conference button (Video Call) " -->
+        <ImageButton android:id="@+id/manageVideoCallConferenceButton"
+            style="@style/InCallButton"
+            android:background="@drawable/ic_group_white_24dp"
+            android:contentDescription="@string/onscreenManageConferenceText"
+            android:visibility="gone" />
+
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/InCallUI/res/layout/call_card_fragment.xml b/InCallUI/res/layout/call_card_fragment.xml
new file mode 100644
index 0000000..fabde37
--- /dev/null
+++ b/InCallUI/res/layout/call_card_fragment.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+    <LinearLayout
+        android:id="@+id/primary_call_info_container"
+        android:layout_centerVertical="true"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:elevation="@dimen/primary_call_elevation"
+        android:background="@color/incall_call_banner_background_color"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        android:alpha="0.9">
+
+        <include layout="@layout/primary_call_info"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                 android:layout_marginTop="@dimen/call_banner_vertical_margin"
+                 android:layout_marginBottom="@dimen/call_banner_vertical_margin"/>
+
+        <fragment android:name="com.android.incallui.CallButtonFragment"
+                  android:id="@+id/callButtonFragment"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:layout_gravity="center_horizontal" />
+
+    </LinearLayout>
+
+    <!-- Placeholder for the dialpad which is replaced with the dialpad fragment when shown. -->
+    <FrameLayout
+        android:id="@+id/answer_and_dialpad_container"
+        android:layout_width="match_parent"
+        android:elevation="@dimen/dialpad_elevation"
+        android:layout_height="match_parent" />
+
+    <!-- Secondary "Call info" block, for the background ("on hold") call. -->
+    <include layout="@layout/secondary_call_info"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:elevation="4dp"
+             android:layout_alignParentBottom="true" />
+
+    <include layout="@layout/manage_conference_call_button"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:elevation="5dp"
+             android:layout_alignParentBottom="true"/>
+
+    <FrameLayout
+        android:id="@+id/floating_end_call_action_button_container"
+        android:layout_width="@dimen/end_call_floating_action_button_diameter"
+        android:layout_height="@dimen/end_call_floating_action_button_diameter"
+        android:background="@drawable/fab_red"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true">
+
+        <ImageButton android:id="@+id/floating_end_call_action_button"
+                     android:layout_width="match_parent"
+                     android:layout_height="match_parent"
+                     android:background="@drawable/end_call_background"
+                     android:src="@drawable/fab_ic_end_call"
+                     android:scaleType="center"
+                     android:contentDescription="@string/onscreenEndCallText" />
+
+    </FrameLayout>
+
+    <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
+    <FrameLayout
+        android:id="@+id/progressSpinner"
+        android:background="#63000000"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_centerHorizontal="true"
+        android:layout_centerVertical="true"
+        android:visibility="gone" >
+
+        <ProgressBar
+            android:id="@+id/progress_bar"
+            style="@android:style/Widget.Material.ProgressBar"
+            android:layout_gravity="center"
+            android:layout_width="48dp"
+            android:layout_height="48dp"
+            android:indeterminate="true" />
+
+    </FrameLayout>
+
+    <fragment android:name="com.android.incallui.VideoCallFragment"
+              android:layout_alignParentStart="true"
+              android:layout_gravity="start|center_vertical"
+              android:id="@+id/videoCallFragment"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent" />
+
+    <FrameLayout
+        android:layout_height="match_parent"
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:visibility="gone">
+
+        <FrameLayout
+            android:layout_height="match_parent"
+            android:layout_width="match_parent"
+            android:id="@+id/call_card_content">
+
+            <ImageView android:id="@+id/photoLarge"
+                       android:layout_width="match_parent"
+                       android:layout_height="match_parent"
+                       android:scaleType="centerCrop"
+                       android:contentDescription="@string/contactPhoto"
+                       android:background="@color/incall_photo_background_color"
+                       android:src="@drawable/img_no_image_automirrored" />
+
+            <!-- Call context -->
+            <LinearLayout
+                android:id="@+id/contact_context"
+                android:layout_height="match_parent"
+                android:layout_width="match_parent"
+                android:orientation="vertical"
+                android:background="@color/incall_background_color"
+                android:visibility="gone">
+                <TextView android:id="@+id/contactContextTitle"
+                          android:textSize="@dimen/contact_context_title_text_size"
+                          android:textColor="@color/glowpad_background_color"
+                          android:fontFamily="sans-serif-medium"
+                          android:layout_width="wrap_content"
+                          android:layout_height="wrap_content"
+                          android:layout_gravity="center_horizontal"
+                          android:layout_marginBottom="@dimen/contact_context_title_margin_bottom" />
+                <ListView android:id="@+id/contactContextInfo"
+                          android:layout_width="match_parent"
+                          android:layout_height="match_parent"
+                          android:divider="@null"
+                          android:dividerHeight="@dimen/contact_context_list_item_padding" />
+            </LinearLayout>
+        </FrameLayout>
+    </FrameLayout>
+
+</RelativeLayout>
diff --git a/InCallUI/res/layout/caller_in_conference.xml b/InCallUI/res/layout/caller_in_conference.xml
new file mode 100644
index 0000000..ac78096
--- /dev/null
+++ b/InCallUI/res/layout/caller_in_conference.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="64dp"
+    android:orientation="horizontal"
+    android:gravity="center_vertical"
+    android:paddingStart="16dp"
+    android:paddingEnd="8dp">
+
+    <!-- Caller information -->
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="match_parent"
+        android:orientation="horizontal"
+        android:gravity="center_vertical">
+
+        <ImageView android:id="@+id/callerPhoto"
+            android:layout_width="@dimen/contact_browser_list_item_photo_size"
+            android:layout_height="@dimen/contact_browser_list_item_photo_size" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="vertical"
+            android:layout_marginStart="16dp"
+            android:paddingBottom="2dp">
+
+            <!-- Name or number of this caller -->
+            <TextView android:id="@+id/conferenceCallerName"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="16sp"
+                android:textColor="@color/conference_call_manager_caller_name_text_color"
+                android:singleLine="true"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_marginEnd="2dp" />
+
+            <!-- Number of this caller if name is supplied above -->
+            <LinearLayout
+                 android:layout_width="wrap_content"
+                 android:layout_height="match_parent"
+                 android:orientation="horizontal"
+                 android:gravity="bottom">
+
+                <!-- Number -->
+                <TextView
+                     android:id="@+id/conferenceCallerNumber"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="14sp"
+                     android:ellipsize="marquee"
+                     android:textColor="@color/conference_call_manager_secondary_text_color"
+                     android:singleLine="true"
+                     android:layout_marginEnd="8dp" />
+
+                <!-- Number type -->
+                <TextView
+                    android:id="@+id/conferenceCallerNumberType"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="12sp"
+                    android:textColor="@color/conference_call_manager_secondary_text_color"
+                    android:ellipsize="marquee"
+                    android:singleLine="true"
+                    android:textAllCaps="true"
+                    android:gravity="start" />
+
+            </LinearLayout>  <!-- End of caller number -->
+
+        </LinearLayout>  <!-- End of caller information -->
+
+    </LinearLayout>
+
+    <!-- "Separate" (i.e. "go private") button for this caller -->
+    <ImageView android:id="@+id/conferenceCallerSeparate"
+        android:src="@drawable/ic_call_split_white_24dp"
+        android:layout_width="@dimen/conference_call_manager_button_dimension"
+        android:layout_height="@dimen/conference_call_manager_button_dimension"
+        android:scaleType="center"
+        android:contentDescription="@string/goPrivate"
+        android:tint="@color/conference_call_manager_icon_color"
+        android:background="@drawable/conference_ripple"
+        android:clickable="true" />
+
+    <!-- "Disconnect" button which terminates the connection with this caller. -->
+    <ImageButton
+        android:id="@+id/conferenceCallerDisconnect"
+        android:layout_width="@dimen/conference_call_manager_button_dimension"
+        android:layout_height="@dimen/conference_call_manager_button_dimension"
+        android:layout_marginStart="8dp"
+        android:src="@drawable/ic_call_end_white_24dp"
+        android:scaleType="center"
+        android:contentDescription="@string/onscreenEndCallText"
+        android:tint="@color/conference_call_manager_icon_color"
+        android:background="@drawable/conference_ripple"
+        android:clickable="true" />
+
+</LinearLayout>  <!-- End of single list element -->
diff --git a/InCallUI/res/layout/conference_manager_fragment.xml b/InCallUI/res/layout/conference_manager_fragment.xml
new file mode 100644
index 0000000..7350bee
--- /dev/null
+++ b/InCallUI/res/layout/conference_manager_fragment.xml
@@ -0,0 +1,36 @@
+<?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.
+-->
+
+<!-- The "Manage conference" UI.  This panel is displayed (instead of
+     the inCallPanel) when the user clicks the "Manage conference"
+     button while on a conference call. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/manageConferencePanel"
+    android:background="@color/conference_call_manager_background_color"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingTop="@dimen/conference_call_manager_padding_top" >
+    <!-- List of conference participants. -->
+    <ListView
+        android:id="@+id/participantList"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:listSelector="@null"
+        android:background="@color/background_dialer_white"
+        android:divider="@null"
+        android:focusableInTouchMode="true"
+        android:focusable="true"/>
+</FrameLayout>
diff --git a/InCallUI/res/layout/incall_dialpad_fragment.xml b/InCallUI/res/layout/incall_dialpad_fragment.xml
new file mode 100644
index 0000000..b567dbb
--- /dev/null
+++ b/InCallUI/res/layout/incall_dialpad_fragment.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<view class="com.android.incallui.DialpadFragment$DialpadSlidingLinearLayout"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dtmf_twelve_key_dialer_view"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+    <include layout="@layout/dialpad_view"/>
+</view>
diff --git a/InCallUI/res/layout/incall_screen.xml b/InCallUI/res/layout/incall_screen.xml
new file mode 100644
index 0000000..3922ea0
--- /dev/null
+++ b/InCallUI/res/layout/incall_screen.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- In-call Phone UI; see InCallActivity.java. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@android:color/black"
+    android:id="@+id/main" >
+</FrameLayout>
diff --git a/InCallUI/res/layout/manage_conference_call_button.xml b/InCallUI/res/layout/manage_conference_call_button.xml
new file mode 100644
index 0000000..01ca1bd
--- /dev/null
+++ b/InCallUI/res/layout/manage_conference_call_button.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<!-- This button is used only on GSM and IMS devices, during a conference call. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/manage_conference_call_button"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:background="@color/incall_banner_secondary_background_color"
+    android:visibility="gone">
+
+    <Space android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/secondary_call_info_divider_highlight_color" />
+
+    <!-- This LinearLayout nested immediately in a FrameLayout is necessary to apply both a
+         background color and ripple to the button. -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal"
+        android:paddingStart="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingEnd="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingTop="@dimen/secondary_call_info_vertical_padding"
+        android:paddingBottom="@dimen/secondary_call_info_vertical_padding"
+        android:background="?android:attr/selectableItemBackground">
+
+        <!-- Call status of the background call, usually the string "On hold". -->
+        <TextView android:id="@+id/conferenceLabel"
+                  android:layout_width="0dp"
+                  android:layout_height="wrap_content"
+                  android:layout_weight="1"
+                  android:layout_gravity="center_vertical"
+                  android:paddingEnd="18dp"
+                  android:text="@string/onscreenConferenceText"
+                  android:textColor="@color/incall_banner_secondary_text_color"
+                  android:textSize="@dimen/secondary_call_info_text_size"
+                  android:singleLine="true" />
+
+        <ImageView android:id="@+id/manageConferenceImage"
+                   android:layout_width="wrap_content"
+                   android:layout_height="wrap_content"
+                   android:src="@drawable/ic_group_white_24dp"
+                   android:tint="@color/incall_banner_secondary_text_color"
+                   android:paddingEnd="16dp"/>
+
+        <TextView android:id="@+id/manageConferenceLabel"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:textColor="@color/incall_banner_secondary_text_color"
+                  android:textSize="@dimen/secondary_call_info_text_size"
+                  android:textAlignment="viewStart"
+                  android:text="@string/onscreenManageText"
+                  android:singleLine="true"/>
+
+    </LinearLayout>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/outgoing_call_animation.xml b/InCallUI/res/layout/outgoing_call_animation.xml
new file mode 100644
index 0000000..69ba3d3
--- /dev/null
+++ b/InCallUI/res/layout/outgoing_call_animation.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/outgoing_call_animation_circle"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/incall_background_color" />
\ No newline at end of file
diff --git a/InCallUI/res/layout/person_context_info_list_item.xml b/InCallUI/res/layout/person_context_info_list_item.xml
new file mode 100644
index 0000000..4f973d5
--- /dev/null
+++ b/InCallUI/res/layout/person_context_info_list_item.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="match_parent"
+     android:paddingRight="@dimen/person_contact_context_horizontal_padding"
+     android:paddingLeft="@dimen/person_contact_context_horizontal_padding">
+     <TextView android:id="@+id/message"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:paddingLeft="@dimen/person_contact_context_message_horizontal_padding"
+         android:paddingRight="@dimen/person_contact_context_message_horizontal_padding"
+         android:paddingTop="@dimen/person_contact_context_message_vertical_padding"
+         android:paddingBottom="@dimen/person_contact_context_message_vertical_padding"
+         android:textSize="@dimen/person_contact_context_message_text_size"
+         android:textColor="@color/person_contact_context_message_text_color"
+         android:fontFamily="sans-serif-medium"
+         android:background="@drawable/incoming_sms_background"/>
+      <TextView android:id="@+id/detail"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:paddingTop="@dimen/person_contact_context_detail_padding_top"
+         android:textSize="@dimen/person_contact_context_detail_text_size"
+         android:textColor="@color/person_contact_context_detail_text_color"
+         android:fontFamily="sans-serif-medium"
+         android:layout_below="@id/message"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
new file mode 100644
index 0000000..3eb3630
--- /dev/null
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ 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
+  -->
+
+<!-- "Call Banner" for primary call, the foregound or ringing call. The "call banner" is a block
+    of info about a single call, including the contact name, phone number, call time counter, and
+    other status info.  This info is shown as a "banner" overlaid across the top of contact photo.
+    -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/primary_call_banner"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:paddingStart="@dimen/call_banner_side_padding"
+        android:paddingEnd="@dimen/call_banner_side_padding"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        android:gravity="center">
+
+    <LinearLayout android:id="@+id/callSubjectLayout"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+                  android:clipChildren="false"
+                  android:clipToPadding="false">
+
+        <TextView android:id="@+id/callSubject"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:textAlignment="viewStart"
+                  android:textAppearance="?android:attr/textAppearanceSmall"
+                  android:textColor="@color/incall_call_banner_background_color"
+                  android:textSize="@dimen/call_label_text_size"
+                  android:background="@drawable/subject_bubble"
+                  android:maxLines="2"
+                  android:ellipsize="end"
+                  android:singleLine="false"
+                  android:visibility="gone" />
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/callStateButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:clipChildren="false"
+        android:clipToPadding="false">
+
+        <ImageView android:id="@+id/workProfileIcon"
+            android:src="@drawable/ic_work_profile"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:layout_marginEnd="8dp"
+            android:baselineAlignBottom="true"
+            android:tint="@color/incall_accent_color"
+            android:scaleType="center"
+            android:visibility="gone" />
+
+        <!-- Subscription provider or WiFi calling icon displayed to the left of the label -->
+        <ImageView android:id="@+id/callStateIcon"
+            android:layout_width="24dp"
+            android:layout_height="match_parent"
+            android:layout_marginEnd="10dp"
+            android:tint="@color/incall_accent_color"
+            android:alpha="0.0"
+            android:scaleType="fitCenter"
+            android:visibility="gone" />
+
+        <ImageView android:id="@+id/videoCallIcon"
+            android:src="@drawable/ic_toolbar_video"
+            android:layout_width="16dp"
+            android:layout_height="match_parent"
+            android:layout_marginEnd="16dp"
+            android:baselineAlignBottom="true"
+            android:tint="@color/incall_accent_color"
+            android:scaleType="center"
+            android:visibility="gone" />
+
+        <com.android.phone.common.widget.ResizingTextTextView
+            xmlns:ex="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/callStateLabel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAlignment="viewStart"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textColor="@color/incall_accent_color"
+            android:textSize="@dimen/call_status_text_size"
+            android:alpha="0.7"
+            android:singleLine="true"
+            android:gravity="start"
+            android:ellipsize="end"
+            ex:resizing_text_min_size="@dimen/call_status_text_min_size" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <!-- Name (or the phone number, if we don't have a name to display). -->
+        <com.android.phone.common.widget.ResizingTextTextView
+            xmlns:ex="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/name"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_marginTop="-5dp"
+            android:fontFamily="sans-serif-light"
+            android:textAlignment="viewStart"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textSize="@dimen/call_name_text_size"
+            android:singleLine="true"
+            ex:resizing_text_min_size="@dimen/call_name_text_min_size" />
+
+        <!-- Contact photo for primary call info -->
+        <ImageView android:id="@+id/photoSmall"
+            android:layout_width="@dimen/contact_context_small_photo_size"
+            android:layout_height="@dimen/contact_context_small_photo_size"
+            android:layout_centerVertical="true"
+            android:layout_alignParentEnd="true"
+            android:scaleType="centerCrop"
+            android:importantForAccessibility="no"
+            android:src="@drawable/img_no_image_automirrored" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:clipChildren="false"
+        android:clipToPadding="false">
+
+        <ImageView android:id="@+id/hdAudioIcon"
+            android:src="@drawable/ic_hd_24dp"
+            android:layout_width="24dp"
+            android:layout_height="match_parent"
+            android:layout_marginEnd="8dp"
+            android:tint="@color/incall_call_banner_subtext_color"
+            android:scaleType="fitCenter"
+            android:visibility="gone" />
+
+        <ImageView android:id="@+id/forwardIcon"
+            android:src="@drawable/ic_forward_white_24dp"
+            android:layout_width="24dp"
+            android:layout_height="match_parent"
+            android:layout_marginEnd="8dp"
+            android:tint="@color/incall_call_banner_subtext_color"
+            android:scaleType="fitCenter"
+            android:visibility="gone" />
+
+        <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
+        <LinearLayout android:id="@+id/labelAndNumber"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView android:id="@+id/label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="0"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_subtext_color"
+                android:textSize="@dimen/call_label_text_size"
+                android:singleLine="true"
+                android:textDirection="ltr"
+                android:visibility="gone" />
+
+            <TextView android:id="@+id/phoneNumber"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:layout_marginStart="6dp"
+                android:textAlignment="viewStart"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_subtext_color"
+                android:textSize="@dimen/call_label_text_size"
+                android:singleLine="false"
+                android:visibility="gone" />
+
+        </LinearLayout>
+
+        <!-- Elapsed time indication for a call in progress. -->
+        <TextView android:id="@+id/elapsedTime"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:textAlignment="viewEnd"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="@color/incall_call_banner_subtext_color"
+            android:textSize="@dimen/call_label_text_size"
+            android:singleLine="true"
+            android:visibility="gone" />
+
+    </LinearLayout>
+
+    <!-- Call type indication: a special label and/or branding
+     for certain kinds of calls (like "SIP call" for a SIP call.) -->
+    <TextView android:id="@+id/callTypeLabel"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="@color/incall_call_banner_text_color"
+        android:maxLines="1"
+        android:ellipsize="end"
+        android:visibility="gone" />
+
+</LinearLayout> <!-- End of call_banner -->
diff --git a/InCallUI/res/layout/secondary_call_info.xml b/InCallUI/res/layout/secondary_call_info.xml
new file mode 100644
index 0000000..e866795
--- /dev/null
+++ b/InCallUI/res/layout/secondary_call_info.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<!-- XML resource file for secondary call info, which will be used by CallCard. -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/secondary_call_info"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:background="@color/incall_banner_secondary_background_color"
+    android:visibility="gone">
+
+    <Space android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/secondary_call_info_divider_highlight_color" />
+
+    <!-- This LinearLayout nested immediately in a FrameLayout is necessary to apply both a
+         background color and ripple to the button. -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal"
+        android:paddingStart="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingEnd="@dimen/secondary_call_info_horizontal_padding"
+        android:paddingTop="@dimen/secondary_call_info_vertical_padding"
+        android:paddingBottom="@dimen/secondary_call_info_vertical_padding"
+        android:background="?android:attr/selectableItemBackground">
+
+        <ImageView android:id="@+id/secondaryCallVideoCallIcon"
+                   android:layout_width="wrap_content"
+                   android:layout_height="wrap_content"
+                   android:src="@drawable/ic_toolbar_video"
+                   android:tint="@color/incall_banner_secondary_text_color"
+                   android:paddingEnd="16dp"/>
+
+        <ImageView android:id="@+id/secondaryCallConferenceCallIcon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/ic_group_white_24dp"
+            android:tint="@color/incall_banner_secondary_text_color"
+            android:paddingEnd="16dp"/>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <!-- Name (or the phone number, if we don't have a name to display). -->
+            <TextView android:id="@+id/secondaryCallName"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/incall_banner_secondary_text_color"
+                android:textSize="@dimen/secondary_call_info_text_size"
+                android:textAlignment="viewStart"
+                android:ellipsize="marquee"
+                android:singleLine="true"/>
+
+            <!-- Provider, e.g. AT&T, that a call is associated with -->
+            <LinearLayout android:id="@+id/secondary_call_provider_info"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:visibility="gone" >
+
+                <TextView android:id="@+id/secondaryCallProviderLabel"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:textColor="@color/incall_banner_secondary_text_color"
+                    android:textSize="@dimen/secondary_call_info_text_size"
+                    android:textAlignment="viewStart"
+                    android:singleLine="true"/>
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <!-- Call status of the background call, usually the string "On hold". -->
+        <TextView android:id="@+id/secondaryCallStatus"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:paddingEnd="18dp"
+            android:text="@string/onHold"
+            android:textColor="@color/incall_banner_secondary_text_color"
+            android:textSize="@dimen/secondary_call_info_text_size"
+            android:singleLine="true" />
+
+    </LinearLayout>
+
+</FrameLayout>
diff --git a/InCallUI/res/layout/video_call_fragment.xml b/InCallUI/res/layout/video_call_fragment.xml
new file mode 100644
index 0000000..d5e11ef
--- /dev/null
+++ b/InCallUI/res/layout/video_call_fragment.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+
+    <ViewStub
+        android:id="@+id/videoCallViewsStub"
+        android:inflatedId="@+id/videoCallViews"
+        android:layout="@layout/video_call_views"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</FrameLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/video_call_views.xml b/InCallUI/res/layout/video_call_views.xml
new file mode 100644
index 0000000..d514f6d
--- /dev/null
+++ b/InCallUI/res/layout/video_call_views.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+
+    <TextureView
+        android:id="@+id/incomingVideo"
+        android:layout_gravity="center"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+    <!-- The width and height are replaced at runtime based on the selected camera. -->
+    <FrameLayout
+        android:id="@+id/previewVideoContainer"
+        android:layout_width="70dp"
+        android:layout_height="0dp"
+        android:layout_gravity="bottom|right"
+        android:layout_margin="@dimen/video_preview_margin" >
+
+        <!-- The video preview surface, where the user's outgoing video is shown. -->
+        <TextureView
+            android:id="@+id/previewVideo"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <!-- The user's profile photo, shown when the user's camera is shut off. -->
+        <ImageView
+            android:id="@+id/previewProfilePhoto"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scaleType="centerInside"
+            android:adjustViewBounds="false"
+            android:contentDescription="@string/profile_photo_description"
+            android:background="@android:color/black"
+            android:visibility="gone" />
+
+        <!-- The "camera off" icon, shown when the user's camera is shut off. -->
+        <ImageView
+            android:id="@+id/previewCameraOff"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom|right"
+            android:layout_marginEnd="10dp"
+            android:layout_marginBottom="10dp"
+            android:scaleType="centerCrop"
+            android:contentDescription="@string/camera_off_description"
+            android:src="@drawable/ic_toolbar_video_off"
+            android:visibility="gone" />
+    </FrameLayout>
+</FrameLayout>
diff --git a/InCallUI/res/menu/incall_audio_mode_menu.xml b/InCallUI/res/menu/incall_audio_mode_menu.xml
new file mode 100644
index 0000000..070c181
--- /dev/null
+++ b/InCallUI/res/menu/incall_audio_mode_menu.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 Google Inc.
+
+     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.
+-->
+
+<!-- "Audio mode" popup menu for the in-call UI. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- TODO: Need final icon assets.  Also, PopupMenu currently ignores the
+         android:icon attribute anyway(!) -->
+    <item android:id="@+id/audio_mode_speaker"
+          android:icon="@drawable/ic_toolbar_speaker_on"
+          android:title="@string/audio_mode_speaker" />
+
+    <!-- We display *either* "earpiece" or "wired headset", never both,
+         depending on whether a wired headset is physically plugged in
+         (see InCallTouchUi.showAudioModePopup().) -->
+    <item android:id="@+id/audio_mode_earpiece"
+          android:icon="@drawable/ic_toolbar_audio_phone"
+          android:title="@string/audio_mode_earpiece" />
+
+    <item android:id="@+id/audio_mode_wired_headset"
+          android:icon="@drawable/ic_toolbar_audio_headphones"
+          android:title="@string/audio_mode_wired_headset" />
+
+    <item android:id="@+id/audio_mode_bluetooth"
+          android:icon="@drawable/ic_toolbar_audio_bluetooth"
+          android:title="@string/audio_mode_bluetooth" />
+</menu>
diff --git a/InCallUI/res/values-af/strings.xml b/InCallUI/res/values-af/strings.xml
new file mode 100644
index 0000000..5a6c078
--- /dev/null
+++ b/InCallUI/res/values-af/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Foon"</string>
+    <string name="onHold" msgid="527593602772521700">"Hou aan"</string>
+    <string name="unknown" msgid="3646075119047488748">"Onbekend"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privaat nommer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefoonhokkie"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferensie-oproep"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Oproep is ontkoppel"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Luidspreker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Selfoonoorfoon"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Bedraade kopfoon"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Stuur die volgende luitone?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Stuur luitone\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Stuur"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nee"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Vervang die plekhouerkarakter met"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferensie-oproep <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Stemboodskapnommer"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Bel"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Bel tans weer"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferensie-oproep"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Inkomende oproep"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Inkomende werkoproep"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Oproep beëindig"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Hou aan"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Lui af"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"In oproep"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"My nommer is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Koppel tans video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video-oproep"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Versoek tans video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Kan nie video-oproep koppel nie"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videoversoek is verwerp"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Jou terugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Jou noodterugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Bel"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Gemiste oproep"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Gemiste oproepe"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepe"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Gemiste oproep vanaf <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Voortdurende oproep"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Voortdurende werkoproep"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Voortdurende Wi-Fi-oproep"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Voortdurende Wi-Fi-werkoproep"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Hou aan"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Inkomende oproep"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Inkomende werkoproep"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Inkomende Wi-Fi-oproep"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Inkomende Wi-Fi-werkoproep"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Inkomende video-oproep"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Inkomende videoversoek"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nuwe stemboodskap"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nuwe stemboodskap (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Bel <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Stemboodskapnommer is onbekend"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Geen diens nie"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Gekose netwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) is nie beskikbaar nie"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Antwoord"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Lui af"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Stem"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aanvaar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Maak toe"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Bel terug"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Boodskap"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Skakel vliegtuigmodus eers af om \'n oproep te maak."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nie geregistreer op netwerk nie."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sellulêre netwerk is nie beskikbaar nie."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Voer \'n geldige nommer in om \'n oproep te maak."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Kan nie bel nie."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Begin tans MMI-volgorde …"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Diens word nie gesteun nie."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Kan nie oproepe wissel nie."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Kan nie oproep skei nie."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Kan nie deurskakel nie."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Kan nie konferensie-oproep maak nie."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Kan nie oproep weier nie."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Kan nie oproep(e) vrystel nie."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-oproep"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Noodoproep"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Skakel tans radio aan …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Geen sein nie. Probeer tans weer …"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Kan nie bel nie. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is nie \'n noodnommer nie."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Kan nie bel nie. Bel \'n noodnommer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Gebruik sleutelbord om te bel"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Hou oproep"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Hervat oproep"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Beëindig oproep"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Belblad"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Demp"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Voeg oproep by"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Smelt oproepe saam"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Ruil"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Bestuur oproepe"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Bestuur konferensie-oproep"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferensie-oproep"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Bestuur"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Oudio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video-oproep"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Verander na stemoproep"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Wissel kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Laat video wag"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Nog opsies"</string>
+    <string name="player_started" msgid="3478865572468310331">"Speler het begin"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Speler het gestop"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera is nie gereed nie"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera is gereed"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Onbekende oproepsessiegebeurtenis"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Diens"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Opstelling"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nie gestel nie&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Ander oproepinstellings"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontakfoto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"gaan privaat"</string>
+    <string name="selectContact" msgid="92191462970821951">"kies kontak"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Skryf jou eie …"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Kanselleer"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Stuur"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Antwoord"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Stuur SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Weier"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Antwoord as video-oproep"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Antwoord as oudio-oproep"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aanvaar videoversoek"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Weier videoversoek"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aanvaar videoversendversoek"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Weier videoversendversoek"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aanvaar video-ontvangversoek"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Weier video-ontvangversoek"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Gly op vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Gly links vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Gly regs vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Gly af vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibreer"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibreer"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Klank"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Verstekklank (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Foon-luitoon"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibreer wanneer dit lui"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Luitoon en vibreer"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Bestuur konferensie-oproep"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Noodnommer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekondes</item>
+      <item quantity="one">1 sekonde</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="one">1 minuut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
+      <item quantity="one">1 uur</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profielfoto"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera is af"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota is gestuur"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Onlangse boodskappe"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Besigheidinligting"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> myl ver"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km ver"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Maak môre om <xliff:g id="OPEN_TIME">%s</xliff:g> oop"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Maak vandag om <xliff:g id="OPEN_TIME">%s</xliff:g> oop"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Maak om <xliff:g id="CLOSE_TIME">%s</xliff:g> toe"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Het vandag om <xliff:g id="CLOSE_TIME">%s</xliff:g> toegemaak"</string>
+    <string name="open_now" msgid="4615706338669555999">"Nou oop"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Nou gesluit"</string>
+</resources>
diff --git a/InCallUI/res/values-am/strings.xml b/InCallUI/res/values-am/strings.xml
new file mode 100644
index 0000000..ddb65af
--- /dev/null
+++ b/InCallUI/res/values-am/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ስልክ"</string>
+    <string name="onHold" msgid="527593602772521700">"ያዝና ቆይ"</string>
+    <string name="unknown" msgid="3646075119047488748">"ያልታወቀ"</string>
+    <string name="private_num" msgid="6081418498487514686">"የግል ቁጥር"</string>
+    <string name="payphone" msgid="5743050584468748607">"የሕዝብ ስልክ"</string>
+    <string name="confCall" msgid="3181961445236675173">"የስብሰባ ጥሪ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ጥሪው ተቋርጧል"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ድምፅ ማጉያ"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"የስልክ ጆሮ ማዳመጫ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ባለ ገመድ የጆሮ ማዳመጫ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ብሉቱዝ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"የሚከተሉትን የጥሪ ድምፆች ላክ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"የጥሪ ድምፆች በመላክ ላይ \n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ላክ"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"አዎ"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"አይ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"የልቅ ምልክት ተካ በ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"የስብሰባ ጥሪ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"የድምፅ መልእክት ቁጥር"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"በመደወል ላይ"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ዳግም በመደወል ላይ"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"የስብሰባ ጥሪ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ገቢ ጥሪ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ገቢ የሥራ ጥሪ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ጥሪ አብቅቷል"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ያዝና ቆይ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"በመዝጋት ላይ"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ጥሪ ላይ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ቁጥሬ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> ነው"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ቪድዮ በማገናኘት ላይ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"የቪዲዮ ጥሪ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ቪድዮ በመጠየቅ ላይ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"የቪዲዮ ጥሪን ማገናኘት አይቻልም"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"የቪዲዮ ጥያቄ ውድቅ ተደርጓል"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"የእርስዎ የመልሶ መደወያ ቁጥር\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"የእርስዎ የድንገተኛ አደጋ መልሶ መደወያ ቁጥር\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"በመደወል ላይ"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"ያመለጠ ጥሪ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"ያመለጡ ጥሪዎች"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ያመለጡ ጥሪዎች"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"ያልተመለሰ ጥሪ ከ<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"በሂደት ላይ ያለ ጥሪ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"በሂደት ላይ ያለ የሥራ ጥሪ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"በሂደት ላይ ያለ የWi-Fi ጥሪ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"በሂደት ላይ ያለ የWi-Fi የሥራ ጥሪ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ያዝና ቆይ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ገቢ ጥሪ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ገቢ የሥራ ጥሪ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ገቢ የWi-Fi ጥሪ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ገቢ የWi-Fi የሥራ ጥሪ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ገቢ የቪዲዮ ጥሪ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ገቢ የቪዲዮ ጥያቄ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"አዲስ የድምፅ መልእክት"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"አዲስ የድምፅ መልእክት (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"ደውል <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"የማይታወቅ የድምፅ መልእክት ቁጥር"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ምንም አገልግሎት የለም"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"የተመረጠ አውታረመረብ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) አይገኝም"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"መልስ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ዝጋ"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ቪዲዮ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ድምፅ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ተቀበል"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"አስወግድ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"መልሰህ ደውል"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"መልእክት"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ለመደወል፣ መጀመሪያ የአውሮፕላኑን ሁኔታ ያጥፉ።"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"በአውታረ መረቡ ላይ አልተመዘገበም።"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"የተንቀሳቃሽ ስልክ አውታረ መረብ አይገኝም።"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"አንድ ጥሪ ለማድረግ የሚሠራ ቁጥር ያስገቡ።"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"መደወል አይቻልም።"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"የMMI ቅደመ ተከተል በማስጀመር ላይ…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"አገልግሎት አይደገፍም።"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ጥሪዎችን መቀያየር አይቻልም።"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ጥሪን መለየት አይቻልም።"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ማስተላለፍ አይቻልም።"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"የጉባዔ ጥሪ ማድረግ አይቻልም።"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ጥሪውን መዝጋት አይቻልም።"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ጥሪ(ዎች)ን መልቀቅ አይቻልም።"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"የSIP ጥሪ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"የአስቸኳይ ጊዜ ጥሪ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ሬዲዮ በማብራት ላይ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ምንም አገልግሎት የለም። ዳግም በመሞከር ላይ…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"መደወል አይቻልም። <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> የአስቸኳይ አደጋ ቁጥር አይደለም።"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"መደወል አይቻልም። ወደ የአስቸኳይ አደጋ ቁጥር ይደውሉ።"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ለመደወል የሰሌዳ ቁልፍ ተጠቀም"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ጥሪ አቆይ"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ጥሪ ቀጥል"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ጥሪ ጨርስ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"መደወያ ሰሌዳ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ድምፅ-ከል አድርግ"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ጥሪ ያክሉ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ጥሪዎችን አዋህድ"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"በውዝ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ጥሪዎችን አደራጅ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"የስብሰባ ስልክ ጥሪ አደራጅ"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"የስብሰባ ጥሪ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"ያስተዳድሩ"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ኦዲዮ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"የቪዲዮ ጥሪ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ወደ ድምፅ ጥሪ ይለውጡ"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ካሜራ ቀይር"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ቪድዮ ለአፍታ አቁም"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ተጨማሪ አማራጮች"</string>
+    <string name="player_started" msgid="3478865572468310331">"አጫዋች ጀምሯል"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"አጫዋች ቆሟል"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ካሜራ ዝግጁ አይደለም"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ካሜራ ዝግጁ ነው"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ያልታወቀ የጥሪ ክፍለጊዜ ክስተት"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"አገልግሎት"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"አዋቅር"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;አልተዘጋጀም&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ሌሎች የጥሪ ቅንብሮች"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል የመጣ"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"የዕውቂያ ፎቶ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ወደ ግላዊነት ሂድ"</string>
+    <string name="selectContact" msgid="92191462970821951">"ዕውቂያ ይምረጡ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"የእራስዎን ይጻፉ..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ተወው"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ላክ"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"መልስ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"ኤስኤምኤስ ላክ"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ውድቅ አድርግ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"እንደ ቪድዮ ጥሪ ይመልሱ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"እንደ ድምፅ ጥሪ ይመልሱ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"የቪዲዮ ጥያቄ ተቀበል"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"የቪዲዮ ጥያቄ ውድቅ አድርግ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"የቪዲዮ አስተላልፍ ጥያቄን ተቀበል"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"የቪዲዮ አስተላልፍ ጥያቄን ውድቅ አድርግ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"የቪዲዮ ተቀበል ጥያቄን ተቀበል"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"የቪዲዮ ተቀበል ጥያቄን ውድቅ አድርግ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ላይ ያንሸራትቱ።"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ግራ ያንሸራትቱ።"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ቀኝ ያንሸራትቱ።"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ታች ያንሸራትቱ።"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ንዘር"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ንዘር"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ድምፅ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ነባሪ ድምፅ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"የስልክ ጥሪ ቅላጼ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"በሚደወልበት ጊዜ ንዘር"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"የጥሪ ቅላጼ እና ንዘረት"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"የስብሰባ ስልክ ጥሪ አደራጅ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"የአደጋ ጊዜ ቁጥር"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ሰከንዶች</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ሰከንዶች</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ደቂቃዎች</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ደቂቃዎች</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"የመገለጫ ፎቶ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ካሜራ ጠፍቷል"</string>
+    <string name="child_number" msgid="4469090994612105532">"በ<xliff:g id="CHILD_NUMBER">%s</xliff:g> በኩል"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ማስታወሻ ተልኳል"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"የቅርብ ጊዜ መልእክቶች"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"የንግድ መረጃ"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> ማይል ርቀት ላይ"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> ኪሜ ርቀት ላይ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>፣ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>፣ <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"ነገ <xliff:g id="OPEN_TIME">%s</xliff:g> ላይ ይከፈታል"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ዛሬ <xliff:g id="OPEN_TIME">%s</xliff:g> ላይ ይከፈታል"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ላይ ይዘጋል"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ዛሬ <xliff:g id="CLOSE_TIME">%s</xliff:g> ላይ ተዘግቷል"</string>
+    <string name="open_now" msgid="4615706338669555999">"አሁን ክፍት ነው"</string>
+    <string name="closed_now" msgid="2635314668145282080">"አሁን ዝግ ነው"</string>
+</resources>
diff --git a/InCallUI/res/values-ar/strings.xml b/InCallUI/res/values-ar/strings.xml
new file mode 100644
index 0000000..7994a64
--- /dev/null
+++ b/InCallUI/res/values-ar/strings.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"الهاتف"</string>
+    <string name="onHold" msgid="527593602772521700">"معلقة"</string>
+    <string name="unknown" msgid="3646075119047488748">"غير معروف"</string>
+    <string name="private_num" msgid="6081418498487514686">"رقم خاص"</string>
+    <string name="payphone" msgid="5743050584468748607">"هاتف بالعملة"</string>
+    <string name="confCall" msgid="3181961445236675173">"مكالمة جماعية"</string>
+    <string name="call_lost" msgid="8208184291640961172">"تم قطع المكالمة"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"السماعة"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"سماعة الأذن للهاتف"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"سماعة رأس سلكية"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"بلوتوث"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"هل تريد إرسال النغمات التالية؟\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"إرسال النغمات\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"إرسال"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"نعم"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"لا"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"استبدال حرف البدل بـ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"مكالمة جماعية <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"رقم البريد الصوتي"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"جارٍ الطلب"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"جارٍ إعادة الطلب"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"مكالمة جماعية"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"مكالمة واردة"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"مكالمة عمل واردة"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"تم إنهاء الاتصال"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"معلقة"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"جارٍ وقف المكالمة"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"بصدد مكالمة"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"رقمي <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"جارٍ الاتصال بالفيديو"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"مكالمة فيديو"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"جارٍ طلب الفيديو"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"يتعذر الاتصال بمكالمة فيديو"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"تم رفض طلب الفيديو"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"رقم معاودة الاتصال\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"رقم معاودة اتصال الطوارئ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"جارٍ الطلب"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"مكالمة فائتة"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"المكالمات الفائتة"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> من المكالمات الفائتة"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"مكالمة فائتة من <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"مكالمة حالية"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"مكالمة عمل جارية"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"‏مكالمة جارية عبر Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"‏مكالمة عمل جارية عبر Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"معلقة"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"مكالمة واردة"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"مكالمة عمل واردة"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"‏مكالمة واردة عبر Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"‏مكالمة عمل واردة عبر اتصال Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"مكالمة فيديو واردة"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"طلب فيديو وارد"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"بريد صوتي جديد"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"بريد صوتي جديد (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"طلب <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"رقم البريد الصوتي غير معروف"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"لا تتوفر خدمة"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"الشبكة المحددة (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) غير متاحة"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"رد"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"قطع الاتصال"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"فيديو"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"صوت"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"قبول"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"تجاهل"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"معاودة الاتصال"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"رسالة"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"لإجراء مكالمة، أوقف تشغيل وضع الطائرة أولاً."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"غير مسجل على الشبكة."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"شبكة الجوّال غير متاحة."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"لإجراء مكالمة، أدخل رقمًا صالحًا."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"يتعذر الاتصال."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"‏جارٍ بدء تسلسل MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"الخدمة ليست متوفرة."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"يتعذر تبديل المكالمات."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"يتعذر فصل المكالمة."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"يتعذر النقل."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"يتعذر إجراء مكالمة جماعية."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"يتعذر رفض المكالمة."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"يتعذر تحرير المكالمات."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"‏مكالمة SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"مكالمة طوارئ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"جارٍ تشغيل اللاسلكي..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"لا تتوفر خدمة. جارٍ إعادة المحاولة…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"يتعذر الاتصال. لا يعد <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> رقم طوارئ."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"يتعذر الاتصال. يمكنك طلب رقم طوارئ"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"استخدام لوحة المفاتيح للطلب"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"تعليق المكالمة"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"استئناف المكالمة"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"إنهاء المكالمة"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"لوحة الاتصال"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"تجاهل"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"إضافة مكالمة"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"دمج المكالمات"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"تبديل"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"إدارة المكالمات"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"إدارة مكالمة جماعية"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"مكالمة جماعية"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"إدارة"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"صوت"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"مكالمة فيديو"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"التغيير إلى مكالمة صوتية"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"تبديل الكاميرا"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"إيقاف الفيديو مؤقتًا"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"خيارات أخرى"</string>
+    <string name="player_started" msgid="3478865572468310331">"تم بدء المشغّل"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"تم إيقاف المشغّل"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"الكاميرا غير جاهزة"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"الكاميرا جاهزة"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"حدث جلسة اتصال غير معروف"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"الخدمة"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"الإعداد"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"‏&lt;لم يتم التعيين&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"إعدادات الاتصال الأخرى"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"واردة عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"صورة جهة الاتصال"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"انتقال إلى مكالمة خاصة"</string>
+    <string name="selectContact" msgid="92191462970821951">"تحديد جهة اتصال"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"اكتب ردك…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"إلغاء"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"إرسال"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"الرد"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"‏إرسال رسالة قصيرة SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"الرفض"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"الرد بمكالمة فيديو"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"الرد بمكالمة صوتية"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"قبول طلب الفيديو"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"رفض طلب الفيديو"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"قبول طلب بث الفيديو"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"رفض طلب بث الفيديو"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"قبول طلب استلام مكالمة الفيديو"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"رفض طلب استلام مكالمة الفيديو"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"تمرير لأعلى لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"تمرير لليسار لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"تمرير لليمين لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"تمرير لأسفل لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"اهتزاز"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"اهتزاز"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"الصوت"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"الصوت الافتراضي (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"نغمة رنين الهاتف"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"اهتزاز عند الرنين"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"نغمة الرنين والاهتزاز"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"إدارة مكالمة جماعية"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"رقم الطوارئ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> ثانية</item>
+      <item quantity="two">ثانيتان (<xliff:g id="COUNT">%d</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ثوانٍ</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> ثانية</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ثانية</item>
+      <item quantity="one">ثانية واحدة</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> دقيقة</item>
+      <item quantity="two">دقيقتان (<xliff:g id="COUNT">%d</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> دقائق</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> دقيقة</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> دقيقة</item>
+      <item quantity="one">دقيقة واحدة</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> ساعة</item>
+      <item quantity="two">ساعتان (<xliff:g id="COUNT">%d</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ساعات</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> ساعة</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ساعة</item>
+      <item quantity="one">ساعة واحدة</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"صورة الملف الشخصي"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"تم إيقاف الكاميرا"</string>
+    <string name="child_number" msgid="4469090994612105532">"عبر <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"تم إرسال الملاحظة"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"الرسائل الأخيرة"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"معلومات النشاط التجاري"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"على بُعد <xliff:g id="DISTANCE">%.1f</xliff:g> ميل"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"على بُعد <xliff:g id="DISTANCE">%.1f</xliff:g> كم"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>، <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>، <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"مفتوح غدًا في <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"مفتوح اليوم في <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"مغلق في <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"مغلق اليوم في <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"مفتوح الآن"</string>
+    <string name="closed_now" msgid="2635314668145282080">"مغلق الآن"</string>
+</resources>
diff --git a/InCallUI/res/values-az-rAZ/strings.xml b/InCallUI/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..935dfc8
--- /dev/null
+++ b/InCallUI/res/values-az-rAZ/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Gözləmə mövqeyində"</string>
+    <string name="unknown" msgid="3646075119047488748">"Naməlum"</string>
+    <string name="private_num" msgid="6081418498487514686">"Şəxsi nömrə"</string>
+    <string name="payphone" msgid="5743050584468748607">"Taksofon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konfrans zəngi"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Zəng bitdi"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Dinamik"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Dəstək qulaqlığı"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Simli qulaqlıq"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Aşağıdakı tonlar göndərilsin?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Tonlar göndərilir\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Göndər"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Bəli"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Xeyr"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Joker simvolları əvəz edin"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konfrans zəngi <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Səsli poçt nömrəsi"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Nömrə yığılır"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Yenidən yığır"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konfrans zəngi"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Gələn zəng"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Daxil olan iş çağrısı"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Zəng sona çatdı"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Gözləmə mövqeyində"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Dəstək asılır"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Çağrıda"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mənim nömrəm <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Video qoşulur"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video zəng"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Video sorğusu göndərilir"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Video zəngə qoşulmaq mümkün deyil"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video sorğusu rədd edildi"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Cavab zəngi nömrəniz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Təcili cavab zəngi nömrəniz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Nömrə yığılır"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Buraxılmış zəng"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Buraxılmış zənglər"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> buraxılmış zənglər"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> tərəfindən zəng buraxılıb"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Davam edən çağrı"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Davam edən iş çağrısı"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Davam edən Wi-Fi zəngi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Davam edən Wi-Fi iş çağrısı"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Gözləmə mövqeyində"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Gələn zəng"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Daxil olan iş çağrısı"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Gələn Wi-Fi zəngi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Daxil olan Wi-Fi iş çağrısı"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Gələn video zəng"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Gələn video çağrı"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Yeni səsli poçt"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Yeni səsli poçt (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Yığın <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Səsli poçt nömrəsi naməlumdur"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Xidmət yoxdur"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Seçilmiş (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) şəbəkə əlçatmazdır"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Cavab"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Dəstəyi qoyun"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videolar"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Səs"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Qəbul edin"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Rədd edin"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Geriyə zəng"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesaj"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Zəng etmək üçün ilk olaraq Uçuş Rejimini söndürün."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Şəbəkədə qeydə alınmayıb."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobil şəbəkə əlçatan deyil"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Zəngi yerləşdirmək üçün düzgün nömrə daxil edin."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Zəng etmək mümkün deyil."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI başlanma ardıcıllığı…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Xidmət dəstəklənmir."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Zəngləri keçirmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Zəngi ayırmaq mümkün deyil."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Ötürmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konfrans keçirmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Zəngi rədd etmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Zəngləri buraxmaq mümkün deyil."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP çağrısıs"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Təcili zəng"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Radio yandırılır ..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Xidmət yoxdur. Yenidən cəhd edilir…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Zəng etmək mümkün deyil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> fövqəladə nömrə deyil."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Zəng etmək mümkün deyil. Fövqəladə nömrəni yı"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Nömrə yığmaq üçün klaviaturadan istifadə ediin"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Zəngi gözlədin"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Zəngə davam edin"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Zəngi bitirin"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Yığım paneli"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Susdurun"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Zəng əlavə edin"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Zəngləri birləşdirin"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Dəyişdirin"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Zəngləri idarə edin"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Konfrans çağrısını idarə edin"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konfrans zəngi"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"İdarə edin"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video zəng"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Səsli çağrıya dəyişin"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kameraya keçin"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videonu durdurun"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Daha çox seçim"</string>
+    <string name="player_started" msgid="3478865572468310331">"Pleyer Başladıldı"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Pleyer Dayandırıldı"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera hazır deyil"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera hazırdır"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Naməlum zəng sessiyası"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Xidmət"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Quraşdırma"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Təyin edilməyib&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Digər zəng parametrləri"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsi ilə zəng edilir"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontakt fotosu"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"şəxsi rejimə keçin"</string>
+    <string name="selectContact" msgid="92191462970821951">"kontakt seçin"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Özünüzünkünü yazın"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Ləğv edin"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Göndər"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Cavab"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS göndərin"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"İmtina edin"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Video çağrı olaraq cavab verin"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Audio çağrı olaraq cavab verin"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Video sorğusunu qəbul edin"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Video sorğusunu ləğv edin"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Video ötürmə sorğusunu qəbul edin"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Video ötürmə sorğusunu ləğv edin"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Video qəbuletmə sorğusunu qəbul edin"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Video qəbuletmə sorğusunu ləğv edin"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün yuxarı sürüşdürün."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sola sürüşdürün."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sağa sürüşdürün."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün aşağı sürüşdürün."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrasiya"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrasiya"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Səs"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Defolt səs (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefon zəng səsi"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Zəng çalanda vibrasiya olsun"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Zəng səsi &amp; Vibrasiya"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konfrans çağrısını idarə edin"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Təcili nömrə"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saniyə</item>
+      <item quantity="one">1 saniyə</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dəqiqə</item>
+      <item quantity="one">1 dəqiqə</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
+      <item quantity="one">1 saat</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profil fotosu"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera deaktivdir"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> vasitəsilə"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Qeyd göndərildi"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Son mesajlar"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Biznes məlumatı"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil uzaqlıqda"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km uzaqlıqda"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Sabah saat <xliff:g id="OPEN_TIME">%s</xliff:g> açılır"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Bu gün saat <xliff:g id="OPEN_TIME">%s</xliff:g> açılır"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Saat <xliff:g id="CLOSE_TIME">%s</xliff:g> bağlanır"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Bu gün saat <xliff:g id="CLOSE_TIME">%s</xliff:g> bağlanıb"</string>
+    <string name="open_now" msgid="4615706338669555999">"İndi açın"</string>
+    <string name="closed_now" msgid="2635314668145282080">"İndi bağlandı"</string>
+</resources>
diff --git a/InCallUI/res/values-b+sr+Latn/strings.xml b/InCallUI/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..5b8e440
--- /dev/null
+++ b/InCallUI/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Na čekanju"</string>
+    <string name="unknown" msgid="3646075119047488748">"Nepoznat"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privatan broj"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefonska govornica"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferencijski poziv"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Poziv je prekinut"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Slušalica telefona"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Žičane naglavne slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Želite li da pošaljete sledeće tonove?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Tonovi se šalju\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Da"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ne"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Zamenite džoker znak sa"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferencijski poziv <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Poziva se"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ponovo se bira"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Dolazni poziv"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Dolazni poziv za Work"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Poziv je završen"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Veza se prekida"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Poziv je u toku"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Moj broj je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Povezuje se video poziv"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video poziv"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Zahteva se video poziv"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Povezivanje video poziva nije uspelo"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Zahtev za video poziv je odbijen"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Broj za povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Broj za hitan povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Poziva se"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Propušten poziv"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Broj propuštenih poziva: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Propušten poziv od: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Tekući poziv"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Tekući poziv za Work"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Tekući Wi-Fi poziv"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Tekući poziv za Work preko Wi-Fi-ja"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Na čekanju"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Dolazni poziv"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Dolazni poziv za Work"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Dolazni Wi-Fi poziv"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Dolazni poziv za Work preko Wi-Fi-ja"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Dolazni video poziv"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Zahtev za dolazni video poziv"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nova poruka govorne pošte"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nova poruka govorne pošte (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Pozovi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nepoznat broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Mobilna mreža nije dostupna"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Izabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nije dostupna"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Odgovori"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Prekini vezu"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Glasovni"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Prihvatam"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Odbaci"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Uzvrati poziv"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Pošalji SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Da biste uputili poziv, prvo isključite režim rada u avionu."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nije registrovano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Da biste uputili poziv, unesite važeći broj."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Poziv nije uspeo."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Pokreće se MMI sekvenca..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Usluga nije podržana."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Zamena poziva nije uspela."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Razdvajanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Prebacivanje nije uspelo."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferencijski poziv nije uspeo."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Odbijanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Uspostavljanje poziva nije uspelo."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP poziv"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Hitni poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Uključuje se radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Mobilna mreža nije dostupna. Pokušavamo ponovo…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Poziv nije uspeo. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Poziv nije uspeo. Pozovite broj za hitne slučajeve."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Koristite tastaturu za pozivanje"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Stavi poziv na čekanje"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Nastavi poziv"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Završi poziv"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Numerička tastatura"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Ignoriši"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Objedini pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Zameni"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Upravljaj pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Upravljaj konferencijskim pozivom"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferencijski poziv"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Upravljaj"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video poziv"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Promeni u glasovni poziv"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Promeni kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pauziraj video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Još opcija"</string>
+    <string name="player_started" msgid="3478865572468310331">"Plejer je pokrenut"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Plejer je zaustavljen"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera nije spremna"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera je spremna"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Nepoznat događaj sesije poziva"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Usluga"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Podešavanje"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nije podešeno&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Druga podešavanja poziva"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Poziva se preko dobavljača <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Dolazni poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"slika kontakta"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"idi na privatno"</string>
+    <string name="selectContact" msgid="92191462970821951">"izaberite kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napišite sami…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Otkaži"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Pošalji"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Odgovori"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Pošalji SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Odbij"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Odgovori video pozivom"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Odgovori audio-pozivom"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Prihvati zahtev za video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Odbij zahtev za video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Prihvati zahtev za odlazni video poziv"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Odbij zahtev za odlazni video poziv"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Prihvati zahtev za dolazni video poziv"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Odbij zahtev za dolazni video poziv"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Prevucite nagore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Prevucite ulevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Prevucite udesno za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Prevucite nadole za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibracija"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibracija"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Zvuk"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Podrazumevani zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Melodija zvona telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibriraj kada zvoni"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Melodija zvona i vibracija"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Upravljaj konferencijskim pozivom"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Broj za hitne slučajeve"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekunda</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundi</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sat</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sata</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sati</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Slika profila"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera je isključena"</string>
+    <string name="child_number" msgid="4469090994612105532">"na <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Beleška je poslata"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nedavne poruke"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informacije o preduzeću"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Udaljenost je <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Udaljenost je <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Otvara se sutra u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Otvara se danas u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zatvara se u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Zatvorilo se danas u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Trenutno otvoreno"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Trenutno zatvoreno"</string>
+</resources>
diff --git a/InCallUI/res/values-bg/strings.xml b/InCallUI/res/values-bg/strings.xml
new file mode 100644
index 0000000..f1ece1f
--- /dev/null
+++ b/InCallUI/res/values-bg/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"Задържано"</string>
+    <string name="unknown" msgid="3646075119047488748">"Неизвестно лице"</string>
+    <string name="private_num" msgid="6081418498487514686">"Частен номер"</string>
+    <string name="payphone" msgid="5743050584468748607">"Обществен телефон"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конферентно обаждане"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Обаждането бе прекъснато"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Високоговорител"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Телефонна слушалка"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Слушалки с кабел"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Да се изпратят ли следните мелодии? \n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Мелодиите се изпращат\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Изпращане"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Да"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Не"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Замяна на заместващия символ със:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конферентно обаждане – <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Номер за гласова поща"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Набира се"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Набира се отново"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конферентно обаждане"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Входящо обаждане"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Входящо служебно обаждане"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Обаждането завърши"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Задържано"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Разговорът се приключва"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Извършва се обаждане"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Номерът ми е <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Установява се видеовръзка"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видеообаждане"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Заявява се видеовръзка"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Видеообаждането не може да се осъществи"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Заявката за видеовръзка е отхвърлена"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Номерът ви за обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Номерът ви за спешно обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Набиране"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Пропуснато обаждане"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Пропуснати обаждания"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуснати обаждания"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Пропуснато обаждане от <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Текущо обаждане"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Текущо служебно обаждане"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Текущо обаждане през Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Текущо служебно обаждане през Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Задържано"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Входящо обаждане"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Входящо служебно обаждане"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Входящо обаждане през Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Входящо служебно обаждане през Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Входящо видеообаждане"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Заявка за входящо видеообаждане"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Нова гласова поща"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Нова гласова поща (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Набиране на <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Неизвестен номер за гласова поща"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Няма покритие"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Избраната мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) не е налице"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Приемане"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Затваряне"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видеообажд."</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Гл. обаждане"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Приемане"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Отхвърляне"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Обр. обажд."</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Съобщение"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"За да осъществите обаждане, първо изключете самолетния режим."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Няма регистрация в мрежата."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Няма достъп до клетъчната мрежа."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"За да извършите обаждане, въведете валиден номер."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Не може да се извърши обаждане."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Стартира се последователността MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Услугата не се поддържа."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Обажданията не могат да се превключат."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Обаждането не може да се отдели."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Не може да се прехвърли."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Не може да се извърши конферентно обаждане."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Обаждането не може да се отхвърли."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Обаждането или съответно обажданията не могат да се освободят."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Обаждане чрез SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Спешно обаждане"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Радиомодулът се включва…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Няма услуга. Извършва се нов опит…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Не може да се извърши обаждане. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е номер за спешни случаи."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Не може да се извърши обаждане. Наберете номер за спешни случаи."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Използвайте клавиатурата за набиране"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Задържане на обаждането"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Възобновяване на обаждането"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Край на обаждането"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Клавиатура за набиране"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Спиране на звука"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Добавяне на обаждане"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Обединяване на обаждания"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Размяна"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Управление на обажданията"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Управление на конф. обаждане"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конферентно обаждане"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Управление"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеообажд."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Преминаване към гласово обаждане"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Превключване на камерата"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Поставяне на видеовръзката на пауза"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Още опции"</string>
+    <string name="player_started" msgid="3478865572468310331">"Плейърът е стартиран"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Плейърът е спрян"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камерата не е в готовност"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камерата е в готовност"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Неизвестно събитие в сесията на обаждане"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Услуга"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Настройване"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Не е зададено&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Други настройки за обаждане"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Входящо обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"снимка на контакта"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"превключване към частно обаждане"</string>
+    <string name="selectContact" msgid="92191462970821951">"избиране на контакта"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Напишете свой собствен..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Отказ"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Изпращане"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Приемане"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Изпращане на SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Отхвърляне"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Приемане като видеообаждане"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Приемане като аудиообаждане"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Приемане на заявката за видеовръзка"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Отхвърляне на заявката за видеовръзка"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Приемане на заявката за предаване на видео"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Отхвърляне на заявката за предаване на видео"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Приемане на заявката за получаване на видеообаждане"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Отхвърляне на заявката за получаване на видео"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Плъзнете нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Плъзнете наляво за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Плъзнете надясно за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Плъзнете надолу за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Вибриране"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Вибриране"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Звук"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Стандартен звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Мелодия на телефона"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Вибриране при звънене"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Мелодия и вибриране"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Управление на конферентното обаждане"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Спешен номер"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+      <item quantity="one">1 секунда</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минути</item>
+      <item quantity="one">1 минута</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
+      <item quantity="one">1 час</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Снимка на потребителския профил"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камерата е изключена"</string>
+    <string name="child_number" msgid="4469090994612105532">"чрез <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Бележката е изпратена"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Скорошни съобщения"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Бизнес информация"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"На <xliff:g id="DISTANCE">%.1f</xliff:g> мили"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"На <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>; <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Отваря утре в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Отваря днес в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Затваря в <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Затворено днес в <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"В момента работи"</string>
+    <string name="closed_now" msgid="2635314668145282080">"В момента не работи"</string>
+</resources>
diff --git a/InCallUI/res/values-bn-rBD/strings.xml b/InCallUI/res/values-bn-rBD/strings.xml
new file mode 100644
index 0000000..13448f4
--- /dev/null
+++ b/InCallUI/res/values-bn-rBD/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ফোন"</string>
+    <string name="onHold" msgid="527593602772521700">"হোল্ডে রয়েছে"</string>
+    <string name="unknown" msgid="3646075119047488748">"অজানা"</string>
+    <string name="private_num" msgid="6081418498487514686">"ব্যক্তিগত নম্বর"</string>
+    <string name="payphone" msgid="5743050584468748607">"অর্থের বিনিময়ে কল করার ফোন"</string>
+    <string name="confCall" msgid="3181961445236675173">"কনফারেন্স কল"</string>
+    <string name="call_lost" msgid="8208184291640961172">"কল সমাপ্ত হয়েছে"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"স্পিকার"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"হ্যান্ডসেট ইয়ারপিস"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"তারযুক্ত হেডসেট"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"নিম্নলিখিত টোনগুলি পাঠাবেন?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"টোনগুলি পাঠানো হচ্ছে\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"পাঠান"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"হ্যাঁ"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"না"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ওয়াইল্ড অক্ষরগুলিকে এর মাধ্যমে প্রতিস্থাপিত করুন"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"কনফারেন্স কল <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ভয়েসমেল নম্বর"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ডায়াল করা হচ্ছে"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"পুনরায় ডায়াল করা হচ্ছে"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"কনফারেন্স কল"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"আগত কল"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"আগত কাজের কল"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"কল সমাপ্ত হয়েছে"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"হোল্ডে রয়েছে"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"কল নামিয়ে রাখা হচ্ছে"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"কলের সময়ে"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"আমার নম্বর হল <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ভিডিও সংযুক্ত করছে"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ভিডিও কল"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ভিডিওর অনুরোধ করছে"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ভিডিও কলে সংযোগ করা যাচ্ছে না"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ভিডিওর অনুরোধ প্রত্যাখ্যান করা হয়েছে"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"আপনার কলব্যাক নম্বর\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"আপনার জরুরী কলব্যাক নম্বর\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ডায়াল করা হচ্ছে"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"মিসড কল"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"মিসড কলগুলি"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>টি মিসড কল"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> এর থেকে মিসড কল"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"চলমান কল"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"চলমান কাজের কল"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"চলমান Wi-Fi কল"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"চলমান Wi-Fi কাজের কল"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"হোল্ডে রয়েছে"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"আগত কল"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"আগত কাজের কল"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"আগত Wi-Fi কল"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"আগত Wi-Fi কাজের কল"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"আগত ভিডিও কল"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"আগত ভিডিও অনুরোধ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"নতুন ভয়েসমেল"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"নতুন ভয়েসমেল (<xliff:g id="COUNT">%d</xliff:g>টি)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ডায়াল করুন"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ভয়েসমেল নম্বর অজানা"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"কোনো পরিষেবা নেই"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"নির্বাচিত নেটওয়ার্ক (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) অনুপলব্ধ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"উত্তর"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"কল নামিয়ে রাখুন"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ভিডিও"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ভয়েস"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"স্বীকার করুন"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"খারিজ করুন"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ঘুরিয়ে কল করুন"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"বার্তা"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"একটি কল করতে, প্রথমে বিমানমোড বন্ধ করুন৷"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"নেটওয়ার্কে নিবন্ধিত নয়৷"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"সেলুলার নেটওয়ার্ক উপলব্ধ নয়।"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"কোনো কল স্থাপন করতে, একটি বৈধ নম্বর লিখুন৷"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"কল করা যাবে না৷"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI ক্রম চালু হচ্ছে…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"পরিষেবা সমর্থিত নয়৷"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"কলগুলি স্যুইচ করা যাবে না৷"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"কল আলাদা করা যাবে না৷"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"হস্তান্তর করা যাবে না৷"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"কনফারেন্স করা যাবে না৷"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"কল প্রত্যাখ্যান কলা যাবে না৷"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"কল(গুলি) কাটা যাবে না৷"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP কল"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"জরুরি কল"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"রেডিও চালু করা হচ্ছে…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"কোন পরিষেবা নেই৷ আবার চেষ্টা করা হচ্ছে..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"কল করা যাবে না৷ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> কোনো জরুরী নম্বর নয়৷"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"কল করা যাবে না৷ কোনো জরুরী নম্বর ডায়াল করুন৷"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ডায়াল করতে কীবোর্ড ব্যবহার করুন"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"কল হোল্ডে রাখুন"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"কল পুনরায় শুরু করুন"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"কল শেষ করুন"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ডায়ালপ্যাড"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"নিঃশব্দ করুন"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"কল যোগ করুন"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"কলগুলি মার্জ করুন"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"সোয়াপ করুন"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"কলগুলি পরিচালনা করুন"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"কনফারেন্স কল পরিচালনা করুন"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"কনফারেন্স কল"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"পরিচালনা করুন"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"অডিও"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ভিডিও কল"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ভয়েস কলে পরিবর্তন করুন"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ক্যামেরা স্যুইচ করুন"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ভিডিও বিরাম দিন"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"আরো বিকল্প"</string>
+    <string name="player_started" msgid="3478865572468310331">"প্লেয়ার শুরু হয়েছে"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"প্লেয়ার বন্ধ হয়ে গেছে"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ক্যামেরা রেডি নয়"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ক্যামেরা রেডি"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"অজানা কল অধিবেশনের ইভেন্ট"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"পরিষেবা"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"সেটআপ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;সেট করা নেই&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"অন্যান্য কল সেটিংস"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে ইনকামিং কল"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"পরিচিতির ফটো"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ব্যক্তিগতভাবে কাজ করুন"</string>
+    <string name="selectContact" msgid="92191462970821951">"পরিচিতি নির্বাচন করুন"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"আপনার নিজের পছন্দ মতো লিখুন…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"বাতিল করুন"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"পাঠান"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"উত্তর"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS পাঠান"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"অস্বীকার করুন"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ভিডিও কল হিসেবে উত্তর দিন"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"অডিও কল হিসেবে উত্তর দিন"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ভিডিওর অনুরোধ গ্রহণ করুন"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ভিডিওর অনুরোধ প্রত্যাখ্যান করুন"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ভিডিও প্রেরণ করার অনুরোধ স্বীকার করুন"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ভিডিও প্রেরণ করার অনুরোধ প্রত্যাখ্যান করুন"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ভিডিও গ্রহণ করার অনুরোধ স্বীকার করুন"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ভিডিও গ্রহণ করার অনুরোধ প্রত্যাখ্যান করুন"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য উপরের দিকে স্লাইড করুন৷"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য বাম দিকে স্লাইড করুন৷"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য ডান দিকে স্লাইড করুন৷"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য নীচের দিকে স্লাইড করুন৷"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"কম্পন"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"কম্পন"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"শব্দ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ডিফল্ট শব্দ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ফোন রিংটোন"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"রিং হওয়ার সময় কম্পন হবে"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"রিংটোন ও কম্পন"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"কনফারেন্স কল পরিচালনা করুন"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"জরুরি নম্বর"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> সেকেন্ড</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> সেকেন্ড</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> মিনিট</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> মিনিট</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ঘণ্টা</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ঘণ্টা</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"প্রোফাইল ফটো"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ক্যামেরা বন্ধ"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> এর মাধ্যমে"</string>
+    <string name="note_sent" msgid="7623014827902758398">"নোট পাঠানো হয়েছে"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"সাম্প্রতিক বার্তাগুলি"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ব্যবসার তথ্য"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> মাইল দূরে"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> কিলোমিটার দূরে"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"আগামীকাল <xliff:g id="OPEN_TIME">%s</xliff:g>\'টায় খুলবে"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"আজ <xliff:g id="OPEN_TIME">%s</xliff:g>\'টায় খুলবে"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>\'টায় বন্ধ হয়"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"আজ <xliff:g id="CLOSE_TIME">%s</xliff:g>\'টায় বন্ধ হয়েছে"</string>
+    <string name="open_now" msgid="4615706338669555999">"এখন খোলা রয়েছে"</string>
+    <string name="closed_now" msgid="2635314668145282080">"এখন বন্ধ রয়েছে"</string>
+</resources>
diff --git a/InCallUI/res/values-ca/strings.xml b/InCallUI/res/values-ca/strings.xml
new file mode 100644
index 0000000..fda3783
--- /dev/null
+++ b/InCallUI/res/values-ca/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telèfon"</string>
+    <string name="onHold" msgid="527593602772521700">"En espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconegut"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privat"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telèfon públic"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conferència"</string>
+    <string name="call_lost" msgid="8208184291640961172">"La trucada s\'ha interromput"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altaveu"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricular"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auricular amb cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Vols enviar els tons següents?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"S\'estan enviant els tons\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Envia"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sí"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"No"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Substitueix el caràcter comodí per"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conferència, <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número del missatge de veu"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"S\'està marcant"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"S\'està tornant a marcar"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conferència"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Trucada entrant"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Trucada de feina entrant"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Ha finalitzat la trucada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"S\'està penjant"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"En una trucada"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"El meu número és <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"S\'està connectant el vídeo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videotrucada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"S\'està sol·licitant el vídeo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"No es pot connectar la videotrucada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"S\'ha rebutjat la sol·licitud de vídeo"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Número de devolució de trucada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Número de devolució de trucada d\'emergència\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"S\'està marcant"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Trucada perduda"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Trucades perdudes"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> trucades perdudes"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Trucada perduda de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Trucada en curs"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Trucada de feina en curs"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Trucada per Wi-Fi en curs"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Trucada de feina per Wi-Fi en curs"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Trucada entrant"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Trucada de feina entrant"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Trucada per Wi-Fi entrant"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Trucada de feina per Wi-Fi entrant"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videotrucada entrant"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Sol·licitud de vídeo entrant"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Missatge de veu nou"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Missatges de veu nous (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Marca <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número del missatge de veu desconegut"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sense servei"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"La xarxa seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no està disponible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Respon"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Penja"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vídeo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Veu"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accepta"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignora"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Torna trucada"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Missatge"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Per fer una trucada, primer desactiva el mode d\'avió."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"No s\'ha registrat a la xarxa."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"La xarxa mòbil no està disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Introdueix un número vàlid per fer una trucada."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"No es pot trucar."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"S\'està iniciant la seqüència MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"El servei no és compatible."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"No es pot canviar de trucada."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"No es pot separar la trucada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"No es poden transferir trucades."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"No es pot establir la conferència."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"No es pot rebutjar la trucada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"No es poden alliberar trucades."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Trucada de SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Trucada d\'emergència"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"S\'està activant el senyal mòbil…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"No hi ha servei. S\'està tornant a provar…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"No es pot trucar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no és un número d\'emergència."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"No es pot trucar. Marca un número d\'emergència."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Utilitza el teclat per marcar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Posa la trucada en espera"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Reprèn la trucada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Finalitza la trucada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclat de marcatge"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Silencia"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Afegeix una trucada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Combina les trucades"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Canvia"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gestiona les trucades"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gestiona la conferència"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"conferència"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gestiona"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Àudio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videotrucada"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Canvia a trucada de veu"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Canvia la càmera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Posa en pausa el vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Més opcions"</string>
+    <string name="player_started" msgid="3478865572468310331">"S\'ha iniciat el reproductor"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"S\'ha aturat el reproductor"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"La càmera no està preparada"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"La càmera està preparada"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Esdeveniment de sessió de trucada desconeguda"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Servei"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configura"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;No definit&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Altres opcions de configuració de les trucades"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"S\'està trucant amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Trucada entrant mitjançant <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto de contacte"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"conferència privada"</string>
+    <string name="selectContact" msgid="92191462970821951">"selecciona el contacte"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escriu la teva…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancel·la"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Envia"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Respon"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Envia SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rebutja"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Respon amb una videotrucada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Respon amb una trucada d\'àudio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accepta la sol·licitud de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Rebutja la sol·licitud de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accepta la sol·licitud per transmetre vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Rebutja la sol·licitud per transmetre vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accepta la sol·licitud per rebre vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Rebutja la sol·licitud per rebre vídeo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Fes lliscar el dit cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Fes lliscar el dit cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Fes lliscar el dit cap a la dreta per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Fes lliscar el dit cap avall per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibració"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibració"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"So"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"So predeterminat (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"So de trucada"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar en sonar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"So de trucada i vibració"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gestiona la conferència"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número d\'emergència"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segons</item>
+      <item quantity="one">1 segon</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuts</item>
+      <item quantity="one">1 minut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hores</item>
+      <item quantity="one">1 hora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"La càmera està desactivada"</string>
+    <string name="child_number" msgid="4469090994612105532">"mitjançant <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"S\'ha enviat la nota"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Missatges recents"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informació de l\'empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi de distància"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distància"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Obre demà a les <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Obre avui a les <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Tanca a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Avui ha tancat a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Ara és obert"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Ara és tancat"</string>
+</resources>
diff --git a/InCallUI/res/values-cs/strings.xml b/InCallUI/res/values-cs/strings.xml
new file mode 100644
index 0000000..1b1b55b
--- /dev/null
+++ b/InCallUI/res/values-cs/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Přidržený hovor"</string>
+    <string name="unknown" msgid="3646075119047488748">"Neznámý volající"</string>
+    <string name="private_num" msgid="6081418498487514686">"Soukromé číslo"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefonní automat"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferenční hovor"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Volání zrušeno"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Reproduktor"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Sluchátko telefonu"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kabelová náhlavní soupr."</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Odeslat následující tóny?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Odesílání tónů\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Odeslat"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ano"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ne"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Nahradit zástupné znaky jinými znaky"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferenční hovor <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Číslo hlasové schránky"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Vytáčení"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Opakované vytáčení"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferenční hovor"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Příchozí hovor"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Příchozí pracovní hovor"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Hovor ukončen"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Přidržený hovor"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Ukončování hovoru"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Probíhá hovor"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Moje číslo je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Navazování spojení pro video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videohovor"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Požadování videa"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videohovor nelze zahájit"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Žádost o video byla zamítnuta"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Vaše číslo pro zpětné volání\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Vaše číslo pro tísňové zpětné volání\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Vytáčení"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Zmeškaný hovor"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Zmeškané hovory"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Zmeškaný hovor od volajícího <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Probíhající hovor"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Probíhající pracovní hovor"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Probíhající hovor přes Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Probíhající pracovní hovor přes Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Přidržený hovor"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Příchozí hovor"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Příchozí pracovní hovor"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Příchozí hovor přes Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Příchozí pracovní hovor přes Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Příchozí videohovor"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Příchozí žádost o videohovor"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nová hlasová zpráva"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nové hlasové zprávy (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Volat hlasovou schránku <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Číslo hlasové schránky není známé"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Žádný signál"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Vybraná síť (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) není k dispozici"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Přijmout"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Zavěsit"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videohovor"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Hlas. hovor"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Přijmout"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Odmítnout"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zavolat zpět"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Posl. zprávu"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Chcete-li telefonovat, nejprve vypněte režim Letadlo."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Přihlášení k síti nebylo úspěšné."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilní síť je nedostupná."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Chcete-li uskutečnit hovor, zadejte platné telefonní číslo."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Hovor nelze uskutečnit."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Spouštění sekvence MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Služba není podporována."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Hovory nelze přepnout."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Hovor nelze rozdělit."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Hovor nelze předat."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferenční hovor nelze uskutečnit."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Hovor nelze odmítnout."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Hovor nelze ukončit."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Volání SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Tísňové volání"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Zapínání bezdrátového modulu..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Žádný signál. Probíhá další pokus…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Hovor nelze uskutečnit. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> není číslo tísňového volání."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Hovor nelze uskutečnit. Vytočte číslo tísňového volání."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Vytočte číslo pomocí klávesnice"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Podržet hovor"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Obnovit hovor"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Ukončit hovor"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Číselník"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Ignorovat"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Přidat hovor"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Spojit hovory"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Zaměnit"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Spravovat hovory"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Spravovat konferenční hovor"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferenční hovor"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Spravovat"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videohovor"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Změnit na hlasové volání"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Přepnout kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pozastavit video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Další možnosti"</string>
+    <string name="player_started" msgid="3478865572468310331">"Přehrávač spuštěn"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Přehrávač zastaven"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Fotoaparát není připraven"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Fotoaparát je připraven"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Neznámá událost relace volání"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Služba"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Nastavení"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nenastaveno&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Další nastavení hovorů"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Volání prostřednictvím poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotografie kontaktu"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"přepnout na soukromé"</string>
+    <string name="selectContact" msgid="92191462970821951">"vybrat kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napsat vlastní odpověď..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Zrušit"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Odeslat"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Přijmout"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Odeslat SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Odmítnout"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Přijmout jako videohovor"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Přijmout jako hlasový hovor"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Přijmout žádost o videhovor"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Odmítnout žádost o videohovor"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Přijmout žádost o odesílání videa"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Odmítnout žádost o odesílání videa"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Přijmout žádost o příjem videa"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Odmítnout žádost o příjem videa"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – přejeďte prstem nahoru"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – přejeďte prstem doleva"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – přejeďte prstem doprava"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – přejeďte prstem dolů"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrace"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrace"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Zvuk"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Výchozí zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Vyzváněcí tón telefonu"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrace při vyzvánění"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Vyzvánění a vibrace"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Správa konferenčního hovoru"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Číslo tísňové linky"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekund</item>
+      <item quantity="one">1 sekunda</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minuty</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> minuty</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+      <item quantity="one">1 minuta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> hodiny</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> hodiny</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodin</item>
+      <item quantity="one">1 hodina</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilová fotka"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Fotoaparát je vypnutý"</string>
+    <string name="child_number" msgid="4469090994612105532">"pomocí čísla <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Poznámka byla odeslána"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nejnovější zprávy"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informace o firmě"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Vzdálenost: <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Vzdálenost: <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Zítra otevírá v <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Dnes otevírá v <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zavírá v <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Dnes zavřeno od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Otevřeno"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Nyní zavřeno"</string>
+</resources>
diff --git a/InCallUI/res/values-da/strings.xml b/InCallUI/res/values-da/strings.xml
new file mode 100644
index 0000000..b2b8a25
--- /dev/null
+++ b/InCallUI/res/values-da/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Afventer"</string>
+    <string name="unknown" msgid="3646075119047488748">"Ukendt"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privat nummer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Mønttelefon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Telefonmøde"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Opkaldet blev afbrudt."</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Højttaler"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Ørestykke til håndsæt"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Headset med ledning"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Vil du sende følgende toner?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sender toner\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Send"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nej"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Erstat jokertegnet med"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Telefonmøde <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Telefonsvarernummer"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Ringer op"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ringer op igen"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Telefonmøde"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Indgående opkald"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Indgående arbejdsopkald"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Opkaldet er afsluttet"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Afventer"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Lægger på"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Opkald i gang"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mit nummer er <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Opretter videoforbindelse"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videoopkald"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Anmoder om video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Kan ikke forbinde videoopkald"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videoanmodningen blev afvist"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Dit tilbagekaldsnummer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Dit tilbagekaldsnummer til nødopkald\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Ringer op"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Ubesvaret opkald"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Ubesvarede opkald"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ubesvarede opkald"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Ubesvaret opkald fra <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Igangværende opkald"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Igangværende opkald i forbindelse med arbejde"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Igangværende opkald via Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Igangværende Wi-Fi-opkald i forbindelse med arbejde"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Afventer"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Indgående opkald"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Indgående arbejdsopkald"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Indgående Wi-Fi-opkald"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Indgående Wi-Fi-opkald i forbindelse med arbejde"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Indgående videoopkald"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Indgående videoanmodning"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ny telefonsvarerbesked"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nye telefonsvarerbeskeder (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Ring til <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Telefonsvarernummeret er ukendt"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ingen dækning"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Det valgte netværk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ikke tilgængeligt"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Svar"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Læg på"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Tale"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Acceptér"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Afvis"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring tilbage"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Besked"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Slå Flytilstand fra først for at foretage et opkald."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ikke registreret på netværket."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilnetværket er ikke tilgængeligt."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Indtast et gyldigt nummer for at foretage et opkald."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Der kan ikke ringes op."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Starter MMI-sekvens…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Tjenesten er ikke understøttet."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Der kan ikke skiftes opkald."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Opkaldet kan ikke adskilles."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Der kan ikke viderestilles."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Der kan ikke oprettes telefonmøde."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Opkaldet kan ikke afvises."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Et eller flere opkald kan ikke frigives."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-opkald"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Nødopkald"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Tænder for radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ingen tjeneste. Prøver igen…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Der kan ikke ringes op. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et alarmnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Der kan ikke ringes op. Ring til et alarmnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Brug tastaturet til at ringe op"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Sæt opkald i venteposition"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Genoptag opkald"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Afslut opkald"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tastatur"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Slå lyden fra"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Tilføj opkald"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Slå opkald sammen"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Skift"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Administrer opkald"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Administrer telefonmøde"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Telefonmøde"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Administrer"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Lyd"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoopkald"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Skift til taleopkald"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Skift kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sæt video på pause"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Flere valgmuligheder"</string>
+    <string name="player_started" msgid="3478865572468310331">"Afspilleren er startet"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Afspilleren er stoppet"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kameraet er ikke klar"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kameraet er klar"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Ukendt opkaldsbegivenhed"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Tjeneste"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfiguration"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ikke angivet&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Andre indstillinger for opkald"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Indgående opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"billede af kontaktperson"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"gør privat"</string>
+    <string name="selectContact" msgid="92191462970821951">"vælg kontaktperson"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Skriv dit eget svar…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Annuller"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Send"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Svar"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Send sms"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Afvis"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Besvar som videoopkald"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Besvar som lydopkald"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Acceptér anmodning om video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Afvis videoanmodning"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Acceptér anmodning om udgående video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Afvis anmodning om udgående video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Acceptér anmodning om indgående video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Afvis anmodning om indgående video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Skub op for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Skub til venstre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Skub til højre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Skub ned for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibration"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibration"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Lyd"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ringetone ved opkald"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrer ved opringning"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringetone og vibration"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Administrer telefonmøde"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Alarmnummer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekund</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekunder</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutter</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> time</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilbillede"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kameraet er slukket"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Noten er sendt"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Seneste beskeder"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Virksomhedsoplysninger"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil væk"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km væk"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>-<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Åbner i morgen kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Åbner i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Lukker kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Lukkede i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Åbent nu"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Lukket for i dag"</string>
+</resources>
diff --git a/InCallUI/res/values-de/strings.xml b/InCallUI/res/values-de/strings.xml
new file mode 100644
index 0000000..9357fde
--- /dev/null
+++ b/InCallUI/res/values-de/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Gehaltener Anruf"</string>
+    <string name="unknown" msgid="3646075119047488748">"Unbekannt"</string>
+    <string name="private_num" msgid="6081418498487514686">"Private Nummer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Münztelefon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Telefonkonferenz"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Verbindung unterbrochen"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Lautsprecher"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Mobilgerät-Kopfhörer"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kabelgebundenes Headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Folgende Töne senden?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Töne werden gesendet\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Senden"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nein"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Platzhalter ersetzen durch"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Telefonkonferenz <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Mailboxnummer"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Rufaufbau"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Wahlwiederholung"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Telefonkonferenz"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Eingehender Anruf"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Eingeh. geschäftl. Anruf"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Anruf beendet"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Gehaltener Anruf"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Auflegen"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Im Gespräch"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Meine Nummer lautet <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Videoverbindung wird hergestellt"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videoanruf"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Videoanfrage wird gesendet"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videoanruf kann nicht verbunden werden"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videoanfrage abgelehnt"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Deine Rückrufnummer lautet:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Deine Notrufnummer lautet:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Rufaufbau"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Verpasster Anruf"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Verpasste Anrufe"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> verpasste Anrufe"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Verpasster Anruf von <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Aktiver Anruf"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Aktiver geschäftlicher Anruf"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Aktiver WLAN-Anruf"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Aktiver geschäftlicher WLAN-Anruf"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Gehaltener Anruf"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Eingehender Anruf"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Eingehender geschäftlicher Anruf"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Eingehender WLAN-Anruf"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Eingehender geschäftlicher WLAN-Anruf"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Eingehender Videoanruf"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Eingehende Videoanfrage"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Neue Mailbox-Nachricht"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Neue Mailbox-Nachricht (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> wählen"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Mailboxnummer unbekannt"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Kein Service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Ausgewähltes Netzwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nicht verfügbar"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Annehmen"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Beenden"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videoanruf"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Sprachanruf"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Akzeptieren"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ablehnen"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zurückrufen"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Nachricht"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Deaktiviere zunächst den Flugmodus, um einen Anruf zu tätigen."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nicht in Netzwerk registriert."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilfunknetz nicht verfügbar."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Gib eine gültige Nummer ein, um einen Anruf zu tätigen."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Anruf nicht möglich."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI-Sequenz wird gestartet…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Dienst wird nicht unterstützt."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Anruf kann nicht gewechselt werden."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Anruf kann nicht getrennt werden."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Anruf kann nicht übergeben werden."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferenzschaltung nicht möglich."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Anruf kann nicht abgelehnt werden."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Anrufe können nicht freigegeben werden."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-Anruf"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Notruf"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Mobilfunkverbindung wird aktiviert…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Kein Service. Neuer Versuch…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Anruf nicht möglich. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ist keine Notrufnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Anruf nicht möglich. Wähle eine Notrufnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Zum Wählen Tastatur verwenden"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Anruf halten"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Anruf fortsetzen"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Anruf beenden"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Wähltasten"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Stummschalten"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Anruf hinzufügen"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Anrufe verbinden"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Wechseln"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Anrufe verwalten"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Telefonkonferenz verwalten"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Telefonkonferenz"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Verwalten"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoanruf"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zu Sprachanruf wechseln"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamera wechseln"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Video pausieren"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Weitere Optionen"</string>
+    <string name="player_started" msgid="3478865572468310331">"Videoübertragung gestartet"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Videoübertragung gestoppt"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera nicht bereit"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera bereit"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Unbekanntes Ereignis während eines Anrufs"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Dienst"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Einrichtung"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nicht festgelegt&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Sonstige Anrufeinstellungen"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Eingehender Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"Kontaktbild"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"privat sprechen"</string>
+    <string name="selectContact" msgid="92191462970821951">"Kontakt auswählen"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Eigene Antwort schreiben…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Abbrechen"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Senden"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Annehmen"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS senden"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Ablehnen"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Als Videoanruf annehmen"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Als normalen Anruf annehmen"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Videoanfrage akzeptieren"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Videoanfrage ablehnen"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Anfrage für ausgehenden Videoanruf akzeptieren"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Anfrage für ausgehenden Videoanruf ablehnen"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Anfrage für eingehenden Videoanruf akzeptieren"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Anfrage für eingehenden Videoanruf ablehnen"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach oben schieben."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach links schieben."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach rechts schieben."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach unten schieben."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrieren"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrieren"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ton"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standardklingelton (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Klingelton"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Beim Klingeln vibrieren"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Klingelton &amp; Vibration"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Telefonkonferenz verwalten"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Notrufnummer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Sekunden</item>
+      <item quantity="one">1 Sekunde</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Minuten</item>
+      <item quantity="one">1 Minute</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Stunden</item>
+      <item quantity="one">1 Stunde</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilbild"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera aus"</string>
+    <string name="child_number" msgid="4469090994612105532">"über <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Notiz gesendet"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Zuletzt eingegangene Nachrichten"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Geschäftsinformationen"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> Meilen entfernt"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> Kilometer entfernt"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> bis <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Öffnet morgen um <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Öffnet heute um <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Schließt um <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Hat heute um <xliff:g id="CLOSE_TIME">%s</xliff:g> geschlossen"</string>
+    <string name="open_now" msgid="4615706338669555999">"Jetzt geöffnet"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Jetzt geschlossen"</string>
+</resources>
diff --git a/InCallUI/res/values-el/strings.xml b/InCallUI/res/values-el/strings.xml
new file mode 100644
index 0000000..8dfa3bd
--- /dev/null
+++ b/InCallUI/res/values-el/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Τηλέφωνο"</string>
+    <string name="onHold" msgid="527593602772521700">"Σε αναμονή"</string>
+    <string name="unknown" msgid="3646075119047488748">"Άγνωστος"</string>
+    <string name="private_num" msgid="6081418498487514686">"Απόκρυψη αριθμού"</string>
+    <string name="payphone" msgid="5743050584468748607">"Τηλέφωνο με χρέωση"</string>
+    <string name="confCall" msgid="3181961445236675173">"Κλήση συνδιάσκεψης"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Η κλήση απορρίφθηκε"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Ηχείο"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Ακουστικό"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Ενσύρματο ακουστικό"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Αποστολή των παρακάτω ήχων;\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Ήχοι αποστολής\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Αποστολή"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ναι"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Όχι"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Αντικατάσταση του χαρακτήρα μπαλαντέρ με"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Κλήση συνδιάσκεψης <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Αριθμός αυτόματου τηλεφωνητή"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Κλήση"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Επανάκληση"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Κλήση συνδιάσκεψης"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Εισερχόμενη κλήση"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Εισερχόμ. κλήση εργασίας"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Η κλήση τερματίστηκε"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Σε αναμονή"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Κλείσιμο γραμμής"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Σε κλήση"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Ο αριθμός μου είναι <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Σύνδεση βίντεο"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Βιντεοκλήση"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Αίτημα βίντεο"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Δεν είναι δυνατή η σύνδεση βιντεοκλήσης"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Το αίτημα βίντεο απορρίφθηκε"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Αριθμός επανάκλησης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Αριθμός επανάκλησης έκτακτης ανάγκης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Κλήση"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Αναπάντητη κλήση"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Αναπάντητες κλήσεις"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> αναπάντητες κλήσεις"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Αναπάντητη κλήση από <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Κλήση σε εξέλιξη"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Κλήση εργασίας σε εξέλιξη"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Κλήση Wi-Fi σε εξέλιξη"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Κλήση εργασίας μέσω Wi-Fi σε εξέλιξη"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Σε αναμονή"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Εισερχόμενη κλήση"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Εισερχόμενη κλήση εργασίας"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Εισερχόμενη κλήση μέσω Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Εισερχόμενη κλήση εργασίας μέσω Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Εισερχόμενη βιντεοκλήση"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Αίτημα εισερχόμενου βίντεο"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Νέο μήνυμα στον αυτόματο τηλεφωνητή"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Νέο μήνυμα στον αυτόματο τηλεφωνητή (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Καλέστε στο <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Άγνωστος αριθμός αυτόματου τηλεφωνητή"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Δίκτυο μη διαθέσιμο"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Το επιλεγμένο δίκτυο (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) δεν είναι διαθέσιμο"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Απάντηση"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Τερμ. κλήσης"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Βίντεο"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Φωνή"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Αποδοχή"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Παράβλεψη"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Επανάκληση"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Μήνυμα"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Για να πραγματοποιήσετε μια κλήση, απενεργοποιήστε πρώτα τη λειτουργία πτήσης."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Δεν έχετε εγγραφεί στο δίκτυο."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Για να πραγματοποιήσετε κλήση, εισαγάγετε έναν έγκυρο αριθμό."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Δεν είναι δυνατή η κλήση."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Έναρξη ακολουθίας MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Η υπηρεσία δεν υποστηρίζεται."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Δεν είναι δυνατή η εναλλαγή κλήσεων."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Δεν είναι δυνατός ο διαχωρισμός της κλήσης."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Δεν είναι δυνατή η μεταφορά."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Δεν είναι δυνατή η συνδιάσκεψη."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Δεν είναι δυνατή η απόρριψη της κλήσης."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Δεν είναι δυνατή η πραγματοποίηση κλήσεων."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Κλήση SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Κλήση έκτακτης ανάγκης"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ενεργοποίηση πομπού…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Δεν υπάρχει υπηρεσία. Νέα προσπάθεια…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Δεν είναι δυνατή η κλήση. Το <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> δεν είναι αριθμός έκτακτης ανάγκης."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Δεν είναι δυνατή η κλήση. Πληκτρολογήστε έναν αριθμό έκτακτης ανάγκης."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Χρησιμοποιήστε το πληκτρολόγιο για να πραγματοποιήσετε μια κλήση"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Αναμονή κλήσης"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Συνέχιση κλήσης"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Τερματισμός κλήσης"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Πληκτρολόγιο κλήσης"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Σίγαση"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Προσθήκη κλήσης"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Συγχώνευση κλήσεων"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Ανταλλαγή"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Διαχείριση κλήσεων"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Διαχείριση κλήσης συνδιάσκεψης"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Κλήση διάσκεψης"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Διαχείριση"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Ήχος"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Βιντεοκλ."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Αλλαγή σε φωνητική κλήση"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Αλλαγή κάμερας"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Παύση βίντεο"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Περισσότερες επιλογές"</string>
+    <string name="player_started" msgid="3478865572468310331">"Το πρόγραμμα αναπαραγωγής βίντεο ξεκίνησε"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Το πρόγραμμα αναπαραγωγής βίντεο διακόπηκε"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Η κάμερα δεν είναι έτοιμη"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Η κάμερα είναι έτοιμη"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Άγνωστο συμβάν περιόδου σύνδεσης κλήσης"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Υπηρεσία"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Ρύθμιση"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Δεν έχει οριστεί&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Άλλες ρυθμίσεις κλήσης"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Εισερχόμενη κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"φωτογραφία επαφής"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ιδιωτική χρήση"</string>
+    <string name="selectContact" msgid="92191462970821951">"επιλογή επαφής"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Συντάξτε τη δική σας…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Ακύρωση"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Αποστολή"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Απάντηση"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Αποστολή SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Απόρριψη"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Απάντηση ως βιντεοκλήση"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Απάντηση ως κλήση ήχου"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Αποδοχή αιτήματος βίντεο"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Απόρριψη αιτήματος βίντεο"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Αποδοχή αιτήματος μετάδοσης βίντεο"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Απόρριψη αιτήματος μετάδοσης βίντεο"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Αποδοχή αιτήματος λήψης βίντεο"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Απόρριψη αιτήματος λήψης βίντεο"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Κύλιση προς τα επάνω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Κύλιση προς τα αριστερά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Κύλιση προς τα δεξιά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Κύλιση προς τα κάτω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Δόνηση"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Δόνηση"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ήχος"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Προεπιλεγμένος ήχος (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ήχος κλήσης τηλεφώνου"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Δόνηση κατά το κουδούνισμα"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ήχος κλήσης και δόνηση"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Διαχείριση κλήσης συνδιάσκεψης"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Αριθμός έκτακτης ανάγκης"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> δευτερόλεπτα</item>
+      <item quantity="one">1 δευτερόλεπτο</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> λεπτά</item>
+      <item quantity="one">1 λεπτό</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ώρες</item>
+      <item quantity="one">1 ώρα</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Φωτογραφία προφίλ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Απενεργοποίηση κάμερας"</string>
+    <string name="child_number" msgid="4469090994612105532">"μέσω <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Η σημείωση εστάλη"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Πρόσφατα μηνύματα"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Πληροφορίες επιχείρησης"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> μίλια μακριά"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> χιλιόμετρα μακριά"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Ανοίγει αύριο στις <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Ανοίγει σήμερα στις <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Κλείνει στις <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Έκλεισε σήμερα στις <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Ανοιχτό τώρα"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Κλειστό τώρα"</string>
+</resources>
diff --git a/InCallUI/res/values-en-rAU/strings.xml b/InCallUI/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..11bb6e8
--- /dev/null
+++ b/InCallUI/res/values-en-rAU/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telephone"</string>
+    <string name="onHold" msgid="527593602772521700">"On hold"</string>
+    <string name="unknown" msgid="3646075119047488748">"unknown"</string>
+    <string name="private_num" msgid="6081418498487514686">"Private number"</string>
+    <string name="payphone" msgid="5743050584468748607">"Payphone"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conference call"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Call cut off"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Wired headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Send the following tones?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sending tones\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Send"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"yes"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"no"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Replace wild character with"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conference call <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Voicemail number"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Dialling"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Redialling"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conference call"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Incoming call"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Incoming work call"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Call ended"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"On hold"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Hanging up"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"In call"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"My number is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Connecting video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video call"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Requesting video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Can\'t connect video call"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video request rejected"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Dialling"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Missed call"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Missed calls"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Missed call from <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"On-going call"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ongoing work call"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ongoing Wi-Fi call"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ongoing Wi-Fi work call"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"On hold"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Incoming call"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Incoming work call"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Incoming Wi-Fi call"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Incoming Wi-Fi work call"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Incoming video call"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Incoming video request"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"New voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Voicemail number unknown"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"No service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Answer"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Hang up"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"In-stream video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voice"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accept"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"To place a call, enter a valid number."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Can\'t call."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Starting MMI sequence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service not supported."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Can\'t switch calls."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Can\'t separate call."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Can\'t transfer."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Can\'t conference."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Can\'t reject call."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Can\'t release call(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP call"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Emergency call"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Turning on radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"No network. Trying again…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Can\'t call. Dial an emergency number."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Use keyboard to dial"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Hold Call"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Resume Call"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"End Call"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Dial pad"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Mute"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Add call"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Merge calls"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Swap"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Manage calls"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Manage conference call"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conference call"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Manage"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Camera not ready"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Camera ready"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Unknown call session event"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Set up"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Not set&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Other call settings"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"contact photo"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"go private"</string>
+    <string name="selectContact" msgid="92191462970821951">"select contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Write your own..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"cancel"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Send"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Answer"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Send SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Decline"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Answer as video call"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Answer as audio call"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accept video request"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Decline video request"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accept video transmit request"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Decline video transmit request"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accept video receive request"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Decline video receive request"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Slide right for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Slide down for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sound"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Phone ringtone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrate when ringing"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringtone &amp; Vibrate"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Manage conference call"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Emergency number"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> seconds</item>
+      <item quantity="one">1 second</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
+      <item quantity="one">1 minute</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
+      <item quantity="one">1 hour</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profile photo"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Camera off"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Business info"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Open now"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Closed now"</string>
+</resources>
diff --git a/InCallUI/res/values-en-rGB/strings.xml b/InCallUI/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..11bb6e8
--- /dev/null
+++ b/InCallUI/res/values-en-rGB/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telephone"</string>
+    <string name="onHold" msgid="527593602772521700">"On hold"</string>
+    <string name="unknown" msgid="3646075119047488748">"unknown"</string>
+    <string name="private_num" msgid="6081418498487514686">"Private number"</string>
+    <string name="payphone" msgid="5743050584468748607">"Payphone"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conference call"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Call cut off"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Wired headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Send the following tones?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sending tones\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Send"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"yes"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"no"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Replace wild character with"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conference call <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Voicemail number"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Dialling"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Redialling"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conference call"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Incoming call"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Incoming work call"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Call ended"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"On hold"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Hanging up"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"In call"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"My number is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Connecting video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video call"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Requesting video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Can\'t connect video call"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video request rejected"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Dialling"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Missed call"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Missed calls"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Missed call from <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"On-going call"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ongoing work call"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ongoing Wi-Fi call"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ongoing Wi-Fi work call"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"On hold"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Incoming call"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Incoming work call"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Incoming Wi-Fi call"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Incoming Wi-Fi work call"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Incoming video call"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Incoming video request"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"New voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Voicemail number unknown"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"No service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Answer"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Hang up"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"In-stream video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voice"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accept"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"To place a call, enter a valid number."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Can\'t call."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Starting MMI sequence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service not supported."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Can\'t switch calls."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Can\'t separate call."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Can\'t transfer."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Can\'t conference."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Can\'t reject call."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Can\'t release call(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP call"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Emergency call"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Turning on radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"No network. Trying again…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Can\'t call. Dial an emergency number."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Use keyboard to dial"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Hold Call"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Resume Call"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"End Call"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Dial pad"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Mute"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Add call"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Merge calls"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Swap"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Manage calls"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Manage conference call"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conference call"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Manage"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Camera not ready"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Camera ready"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Unknown call session event"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Set up"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Not set&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Other call settings"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"contact photo"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"go private"</string>
+    <string name="selectContact" msgid="92191462970821951">"select contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Write your own..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"cancel"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Send"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Answer"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Send SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Decline"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Answer as video call"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Answer as audio call"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accept video request"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Decline video request"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accept video transmit request"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Decline video transmit request"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accept video receive request"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Decline video receive request"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Slide right for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Slide down for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sound"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Phone ringtone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrate when ringing"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringtone &amp; Vibrate"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Manage conference call"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Emergency number"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> seconds</item>
+      <item quantity="one">1 second</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
+      <item quantity="one">1 minute</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
+      <item quantity="one">1 hour</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profile photo"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Camera off"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Business info"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Open now"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Closed now"</string>
+</resources>
diff --git a/InCallUI/res/values-en-rIN/strings.xml b/InCallUI/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..11bb6e8
--- /dev/null
+++ b/InCallUI/res/values-en-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telephone"</string>
+    <string name="onHold" msgid="527593602772521700">"On hold"</string>
+    <string name="unknown" msgid="3646075119047488748">"unknown"</string>
+    <string name="private_num" msgid="6081418498487514686">"Private number"</string>
+    <string name="payphone" msgid="5743050584468748607">"Payphone"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conference call"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Call cut off"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Wired headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Send the following tones?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sending tones\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Send"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"yes"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"no"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Replace wild character with"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conference call <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Voicemail number"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Dialling"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Redialling"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conference call"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Incoming call"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Incoming work call"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Call ended"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"On hold"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Hanging up"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"In call"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"My number is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Connecting video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video call"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Requesting video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Can\'t connect video call"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video request rejected"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Dialling"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Missed call"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Missed calls"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Missed call from <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"On-going call"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ongoing work call"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ongoing Wi-Fi call"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ongoing Wi-Fi work call"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"On hold"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Incoming call"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Incoming work call"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Incoming Wi-Fi call"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Incoming Wi-Fi work call"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Incoming video call"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Incoming video request"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"New voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Voicemail number unknown"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"No service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Answer"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Hang up"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"In-stream video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voice"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accept"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"To place a call, enter a valid number."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Can\'t call."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Starting MMI sequence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service not supported."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Can\'t switch calls."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Can\'t separate call."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Can\'t transfer."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Can\'t conference."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Can\'t reject call."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Can\'t release call(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP call"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Emergency call"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Turning on radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"No network. Trying again…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Can\'t call. Dial an emergency number."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Use keyboard to dial"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Hold Call"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Resume Call"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"End Call"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Dial pad"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Mute"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Add call"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Merge calls"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Swap"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Manage calls"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Manage conference call"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conference call"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Manage"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Camera not ready"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Camera ready"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Unknown call session event"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Set up"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Not set&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Other call settings"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"contact photo"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"go private"</string>
+    <string name="selectContact" msgid="92191462970821951">"select contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Write your own..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"cancel"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Send"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Answer"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Send SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Decline"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Answer as video call"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Answer as audio call"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accept video request"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Decline video request"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accept video transmit request"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Decline video transmit request"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accept video receive request"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Decline video receive request"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Slide right for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Slide down for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sound"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Phone ringtone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrate when ringing"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringtone &amp; Vibrate"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Manage conference call"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Emergency number"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> seconds</item>
+      <item quantity="one">1 second</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
+      <item quantity="one">1 minute</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
+      <item quantity="one">1 hour</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profile photo"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Camera off"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Business info"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Open now"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Closed now"</string>
+</resources>
diff --git a/InCallUI/res/values-es-rUS/strings.xml b/InCallUI/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..8532751
--- /dev/null
+++ b/InCallUI/res/values-es-rUS/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Teléfono"</string>
+    <string name="onHold" msgid="527593602772521700">"En espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconocido"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Teléfono pago"</string>
+    <string name="confCall" msgid="3181961445236675173">"Llamada en conferencia"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Se interrumpió la llamada"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altavoz"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricular del dispositivo"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auriculares con cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"¿Deseas enviar los siguientes tonos?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Enviando tonos\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sí"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"No"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Reemplazar el carácter comodín con"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Llamada en conferencia: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número de buzón de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Marcando"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Volviendo a marcar"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Llamada en conferencia"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Llamada entrante"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Llamada entrante: trabajo"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Llamada finalizada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Colgando"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"En llamada"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mi número es <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Conectando video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videollamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Solicitando video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"No se puede conectar la videollamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Se rechazó la solicitud de videollamada"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Marcando"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Llamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Llamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Llamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Llamada en curso"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Llamada en curso: trabajo"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Llamada Wi-Fi en curso"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Llamada Wi-Fi en curso: trabajo"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Llamada entrante"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Llamada entrante: trabajo"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Llamada Wi-Fi entrante"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Llamada Wi-Fi entrante: trabajo"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videollamada entrante"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitud de videollamada entrante"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nuevo mensaje de buzón de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Buzón de voz nuevo (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número de buzón de voz desconocido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sin servicio"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"La red seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no está disponible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Responder"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Colgar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceptar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Descartar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Llamar"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaje"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar una llamada, primero debes desactivar el modo de avión."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"No está registrado en la red."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"La red móvil no está disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para realizar una llamada, ingresa un número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"No se puede realizar la llamada."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iniciando la secuencia de MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"El servicio no es compatible."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"No se pueden cambiar las llamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"No se puede desviar la llamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"No se puede transferir."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"No se puede realizar la conferencia."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"No se puede rechazar la llamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"No se pueden liberar las llamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Llamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Llamada de emergencia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Encendiendo radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"No hay servicio. Vuelve a intentarlo…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"No se puede realizar la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"No se puede realizar la llamada. Marca un número de emergencia."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Usar teclado para marcar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Retener llamada"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Reanudar llamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Finalizar llamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Silenciar"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Agregar llamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Combinar llamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Cambiar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Administrar llamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Administrar conferencia"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Llamada en conferencia"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Administrar"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar a llamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Más opciones"</string>
+    <string name="player_started" msgid="3478865572468310331">"Se inició el reproductor"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Se detuvo el reproductor"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"La cámara no está lista"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Cámara lista"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sesión de llamada desconocido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Servicio"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuración"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Sin configurar&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Otras opciones de llamada"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Llamada por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Entrantes por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto de contacto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"pasar a modo privado"</string>
+    <string name="selectContact" msgid="92191462970821951">"seleccionar contacto"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escribe tu propia respuesta…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Responder"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rechazar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Responder como videollamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Responder como llamada de audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aceptar solicitud de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Rechazar solicitud de videollamada"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aceptar solicitud de transmisión de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Rechazar solicitud de transmisión de videollamada"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aceptar solicitud de recepción de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Rechazar solicitud de recepción de videollamada"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Desliza el dedo hacia la derecha para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Desliza el dedo hacia abajo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sonido"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Tono del teléfono"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar al sonar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Tono y vibración"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Administrar llamada en conferencia"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emergencia"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="one">1 segundo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="one">1 minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="one">1 hora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Cámara desactivada"</string>
+    <string name="child_number" msgid="4469090994612105532">"del <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Se envió la nota"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensajes recientes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Información de la empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"De <xliff:g id="OPEN_TIME">%1$s</xliff:g> a <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g> y <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre mañana a la hora <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoy a la hora <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Cierra a la hora <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Cerró hoy a la hora <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Abierto ahora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Cerrado ahora"</string>
+</resources>
diff --git a/InCallUI/res/values-es/strings.xml b/InCallUI/res/values-es/strings.xml
new file mode 100644
index 0000000..d44cae7
--- /dev/null
+++ b/InCallUI/res/values-es/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Teléfono"</string>
+    <string name="onHold" msgid="527593602772521700">"En espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconocida"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Teléfono público"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conferencia"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Llamada perdida"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altavoz"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricular"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auriculares con cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"¿Quieres enviar los siguientes tonos?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Enviando tonos\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sí"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"No"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Sustituir el carácter comodín por"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conferencia <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número del mensaje de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Llamando"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Llamando otra vez"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conferencia"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Llamada entrante"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Llamada trabajo entrante"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Llamada finalizada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Colgando"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Llamada entrante"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mi número es el <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Conectando videollamada"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videollamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Solicitando videollamada"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"No se puede establecer la videollamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Solicitud de videollamada rechazada"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Tu número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Tu número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Llamando"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Llamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Llamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Llamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Llamada en curso"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Llamada de trabajo en curso"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Llamada Wi-Fi en curso"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Llamada Wi-Fi de trabajo en curso"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Llamada entrante"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Llamada de trabajo entrante"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Llamada Wi-Fi entrante"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Llamada Wi-Fi de trabajo entrante"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videollamada entrante"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitud de videollamada entrante"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nuevo mensaje de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nuevo mensaje de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número del mensaje de voz desconocido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sin servicio"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"La red seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no está disponible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Responder"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Colgar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videollamada"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceptar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Rechazar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Llamar"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaje"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar una llamada, primero debes desactivar el modo avión."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"No estás registrado en la red."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"La red móvil no está disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para realizar una llamada, introduce un número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"No se puede establecer la llamada."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iniciando secuencia MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Servicio no admitido."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"No se pueden intercambiar llamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"No se pueden separar llamadas."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"No se puede transferir."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"No se puede establecer la conferencia."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"No se puede rechazar la llamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"No se pueden hacer llamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Llamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Llamada de emergencia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Activando señal móvil…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Sin servicio. Reintentado…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"No se puede establecer la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"No se puede establecer la llamada. Marca un número de emergencia."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Usa el teclado para marcar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Retener llamada"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Seguir con la llamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Finalizar llamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Silenciar"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Añadir llamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Llamada a tres"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Cambiar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Administrar llamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Administrar conferencia"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Teleconferencia"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gestionar"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videollamada"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar a llamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Más opciones"</string>
+    <string name="player_started" msgid="3478865572468310331">"Reproductor iniciado"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Reproductor detenido"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Cámara no preparada"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Cámara preparada"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sesión de llamada desconocido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Servicio"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuración"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;No definido&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Otra configuración de llamada"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Recibidas a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto de contacto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"llamada privada"</string>
+    <string name="selectContact" msgid="92191462970821951">"seleccionar contacto"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escribe tu propia respuesta..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Responder"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rechazar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Responder como videollamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Responder como llamada de audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aceptar solicitud de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Rechazar solicitud de videollamada"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aceptar solicitud de transmisión de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Rechazar solicitud de transmisión de videollamada"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aceptar solicitud de recepción de videollamada"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Rechazar solicitud de recepción de videollamada"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Desliza el dedo hacia la derecha para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Desliza el dedo hacia abajo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sonido"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Tono de llamada del teléfono"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar al sonar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Tono de llamada y vibración"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Administrar videollamada"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emergencia"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="one">1 segundo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="one">1 minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="one">1 hora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Cámara apagada"</string>
+    <string name="child_number" msgid="4469090994612105532">"a través de <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensajes recientes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Información de la empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre mañana a las <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoy a las <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Cierra a las <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Cerrado hoy a las <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Abierto ahora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Cerrado ahora"</string>
+</resources>
diff --git a/InCallUI/res/values-et-rEE/strings.xml b/InCallUI/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..305cc9b
--- /dev/null
+++ b/InCallUI/res/values-et-rEE/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Ootel"</string>
+    <string name="unknown" msgid="3646075119047488748">"Tundmatu"</string>
+    <string name="private_num" msgid="6081418498487514686">"Eranumber"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefoniautomaat"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konverentskõne"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Kõne katkes"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Kõlar"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Käsitelefoni kuular"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Juhtmega peakomplekt"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Kas saata järgmised toonid?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Toonide saatmine\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Saada"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Jah"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ei"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Asenda metamärk üksusega"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konverentskõne <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Kõnepostinumber"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Valimine"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Uuesti valimine"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konverentskõne"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Sissetulev kõne"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Sissetulev töökõne"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Kõne lõpetati"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Ootel"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Lõpetamine"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Kõne on pooleli"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Minu number on <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Video ühendamine"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videokõne"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Video taotlemine"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videokõnet ei õnnestu ühendada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videokõne taotlus lükati tagasi"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Teie tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Teie hädaabikõne tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Valimine"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Vastamata kõne"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Vastamata kõned"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastamata kõnet"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Vastamata kõne helistajalt <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Käimasolev kõne"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Käimasolev töökõne"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Käimasolev WiFi-kõne"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Käimasolev töökõne WiFi kaudu"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Ootel"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Sissetulev kõne"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Sissetulev töökõne"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Sissetulev WiFi-kõne"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Sissetulev töökõne WiFi kaudu"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Sissetulev videokõne"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Sissetulev videokõne taotlus"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Uus kõnepostisõnum"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Uus kõnepostisõnum (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Valige <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Kõnepostinumber on tundmatu"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Levi puudub"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Valitud võrk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) pole saadaval"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Vasta"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Lõpeta kõne"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videokõne"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Häälkõne"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Nõustu"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Loobu"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Helista tagasi"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Saada sõnum"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Helistamiseks lülitage esmalt lennukirežiim välja."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ei ole võrgus registreeritud."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobiilsidevõrk pole saadaval."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Helistamiseks sisestage kehtiv number."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Ei saa helistada."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI-jada alustamine …"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Teenust ei toetata."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Kõnesid ei saa vahetada."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Kõnet ei saa eraldada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Ei saa üle kanda."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konverentskõnet ei saa pidada."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Kõnet ei saa tagasi lükata."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Kõnesid ei saa vabastada."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-kõne"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Hädaabikõne"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Raadioside sisselülitamine …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Levi puudub. Uuesti proovimine …"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Ei saa helistada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hädaabinumber."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Ei saa helistada. Valige hädaabinumber."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Kasutage valimiseks klaviatuuri"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Kõne ootele"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Jätka kõnet"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Lõpeta kõne"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Valimisklahvistik"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Vaigista"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Lisa kõne"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Ühenda kõned"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Vaheta"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Halda kõnesid"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Halda konverentskõnet"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konverentskõne"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Halda"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Heli"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videokõne"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mine üle häälkõnele"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Vaheta kaamerat"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Peata video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Rohkem valikuid"</string>
+    <string name="player_started" msgid="3478865572468310331">"Pleier käivitati"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Pleier peatati"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kaamera pole valmis"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kaamera on valmis"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Tundmatu kõneseansisündmus"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Teenus"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Seadistamine"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Määramata&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Muud kõneseaded"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Sissetulev kõne teenusepakkuja <xliff:g id="PROVIDER_NAME">%s</xliff:g> kaudu"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontakti foto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"aktiveeri privaatne kõne"</string>
+    <string name="selectContact" msgid="92191462970821951">"vali kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Kirjutage ise …"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Tühista"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Saada"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Vastamine"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS-i saatmine"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Tagasilükkamine"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Vastamine videokõnena"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Vastamine helikõnena"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Video taotluse aktsepteerimine"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Video taotluse tagasilükkamine"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Video edastamise taotluse aktsepteerimine"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Video edastamise taotluse tagasilükkamine"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Video vastuvõtmise taotluse aktsepteerimine"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Video vastuvõtmise taotluse tagasilükkamine"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Lohistage üles: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Lohistage vasakule: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Lohistage paremale: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Lohistage alla: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibreerimine"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibreerimine"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Heli"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Vaikeheli (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefonihelin"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibreerimine helina ajal"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Helin ja vibratsioon"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konverentskõne haldamine"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Hädaabinumber"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundit</item>
+      <item quantity="one">1 sekund</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutit</item>
+      <item quantity="one">1 minut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tundi</item>
+      <item quantity="one">1 tund</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profiilifoto"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kaamera on välja lülitatud"</string>
+    <string name="child_number" msgid="4469090994612105532">"numbri <xliff:g id="CHILD_NUMBER">%s</xliff:g> kaudu"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Märkus on saadetud"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Hiljutised sõnumid"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Ettevõtte teave"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> miili kaugusel"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km kaugusel"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> kuni <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Avatakse homme kell <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Avatakse täna kell <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Suletakse kell <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Suleti täna kell <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Praegu avatud"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Praegu suletud"</string>
+</resources>
diff --git a/InCallUI/res/values-eu-rES/strings.xml b/InCallUI/res/values-eu-rES/strings.xml
new file mode 100644
index 0000000..b782742
--- /dev/null
+++ b/InCallUI/res/values-eu-rES/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefonoa"</string>
+    <string name="onHold" msgid="527593602772521700">"Zain"</string>
+    <string name="unknown" msgid="3646075119047488748">"Ezezaguna"</string>
+    <string name="private_num" msgid="6081418498487514686">"Zenbaki pribatua"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefono publikoa"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferentzia-deia"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Eten egin da deia"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Bozgorailua"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Aurikularrak"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kabledun entzungailua"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth konexioa"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Tonu hauek bidali nahi dituzu?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Tonuak bidaltzen\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Bidali"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Bai"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ez"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Ordeztu komodina honekin:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferentzia-deiaren ordua: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Erantzungailuaren zenbakia"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Deitzen"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Berriro markatzen"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferentzia-deia"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Dei bat jaso duzu"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Laneko dei bat jaso duzu"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Amaitu da deia"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Zain"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Deia amaitzen"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Deia abian"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Nire zenbakia <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> da"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Bideoa konektatzen"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Bideo-deia"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Bideo-deia eskatzen"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Ezin da konektatu bideo-deia"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Baztertu egin da bideo-deia egiteko eskaera"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Larrialdi-deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Deitzen"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Dei bat galdu duzu"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Dei batzuk galdu dituzu"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> dei galdu dituzu"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Deitzaile honen dei bat galdu duzu: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Deia abian da"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Laneko dei bat abian da"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Wi-Fi bidezko deia abian da"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Wi-Fi bidezko laneko dei bat abian da"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Zain"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Dei bat jaso duzu"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Laneko dei bat jaso duzu"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Wi-Fi bidezko dei bat jaso duzu"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Wi-Fi bidezko laneko dei bat jaso duzu"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Bideo-dei bat jaso duzu"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Bideo-dei bat egiteko eskaera bat jaso duzu"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ahots-mezu berria"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Ahots-mezu berriak (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Markatu <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Erantzungailuaren zenbakia ezezaguna da"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ez dago zerbitzurik"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Hautatutako sarea (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ez dago erabilgarri"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Erantzun"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Amaitu deia"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Bideo-deia"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Ahots-deia"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Onartu"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Baztertu"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Itzuli deia"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Bidali SMSa"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Deitzeko, desaktibatu hegaldi modua."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ez dago sarean erregistratuta."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sare mugikorra ez dago erabilgarri."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Deitzeko, idatzi balio duen zenbaki bat."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Ezin da deitu."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI sekuentzia hasten…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Ez da onartzen zerbitzua."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Ezin aldatu beste dei batera."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Ezin da bereizi deia."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Ezin da transferitu."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Ezin da egin konferentzia-deia."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Ezin da baztertu deia."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Ezin dira amaitu deiak."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP deia"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Larrialdi-deia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Irratia pizten…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ez dago zerbitzurik. Berriro saiatzen…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Ezin da deitu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ez da larrialdietarako zenbakia."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Ezin da deitu. Markatu larrialdietarako zenbakia."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Erabili teklatua markatzeko"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Utzi deia zain"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Berrekin deiari"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Amaitu deia"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Markagailua"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Desaktibatu audioa"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Gehitu deia"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Bateratu deiak"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Aldatu"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Kudeatu deiak"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Kudeatu konferentzia-deia"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferentzia-deia"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Kudeatu"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audioa"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Bideo-deia"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Aldatu ahots-deira"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Aldatu kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausatu bideoa"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Aukera gehiago"</string>
+    <string name="player_started" msgid="3478865572468310331">"Abian da erreproduzigailua"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Gelditu da erreproduzigailua"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Ez dago prest kamera"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Prest dago kamera"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Dei-saioko gertaera ezezaguna"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Zerbitzua"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfigurazioa"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ezarri gabe&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Deien beste ezarpen batzuk"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez deitzen"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez jasotzen"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontaktuaren argazkia"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"bihurtu pribatu"</string>
+    <string name="selectContact" msgid="92191462970821951">"hautatu kontaktua"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Idatzi zeure erantzuna…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Utzi"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Bidali"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Erantzun"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Bidali SMS mezua"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Baztertu"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Erantzun bideo-dei moduan"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Erantzun audio-dei moduan"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Onartu bideo-deia egiteko eskaera"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Baztertu bideo-deia egiteko eskaera"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Onartu bideoa transmititzeko eskaera"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Baztertu bideoa transmititzeko eskaera"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Onartu bideo-deia jasotzeko eskaera"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Baztertu bideo-deia jasotzeko eskaera"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Lerratu gora hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Lerratu ezkerrera hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Lerratu eskuinera hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Lerratu behera hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Dardara"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Dardara"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Soinua"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Soinu lehenetsia (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefonoaren tonua"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Egin dar-dar tonuak jotzean"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Tonua eta dardara"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Kudeatu konferentzia-deia"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Larrialdietarako zenbakia"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundo</item>
+      <item quantity="one">Segundo bat</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutu</item>
+      <item quantity="one">Minutu bat</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ordu</item>
+      <item quantity="one">Ordubete</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profileko argazkia"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Desaktibatuta dago kamera"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> zenbakitik"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Bidali da oharra"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Azken mezuak"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Enpresaren informazioa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Hemendik <xliff:g id="DISTANCE">%.1f</xliff:g> miliara"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Hemendik <xliff:g id="DISTANCE">%.1f</xliff:g> km-ra"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"<xliff:g id="OPEN_TIME">%s</xliff:g> da biharko irekitze-ordua"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"<xliff:g id="OPEN_TIME">%s</xliff:g> da gaurko irekitze-ordua"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da itxiera-ordua"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da gaurko itxiera-ordua"</string>
+    <string name="open_now" msgid="4615706338669555999">"Irekita dago"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Itxita dago"</string>
+</resources>
diff --git a/InCallUI/res/values-fa/strings.xml b/InCallUI/res/values-fa/strings.xml
new file mode 100644
index 0000000..a164352
--- /dev/null
+++ b/InCallUI/res/values-fa/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"تلفن"</string>
+    <string name="onHold" msgid="527593602772521700">"در انتظار"</string>
+    <string name="unknown" msgid="3646075119047488748">"نامشخص"</string>
+    <string name="private_num" msgid="6081418498487514686">"شماره خصوصی"</string>
+    <string name="payphone" msgid="5743050584468748607">"تلفن عمومی"</string>
+    <string name="confCall" msgid="3181961445236675173">"تماس کنفرانسی"</string>
+    <string name="call_lost" msgid="8208184291640961172">"تماس قطع شد"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"بلندگو"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"گوشی"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"هدست سیمی"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"بلوتوث"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"شماره‌های بعدی ارسال شود؟\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"تون‌های ارسالی\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ارسال"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"بله"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"نه"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"جایگزینی نویسه عمومی با"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"تماس کنفرانسی <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"شماره پست صوتی"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"شماره‌گیری"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"درحال شماره‌گیری مجدد"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"تماس کنفرانسی"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"تماس ورودی"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"تماس کاری ورودی"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"تماس پایان یافت"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"در انتظار"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"قطع تماس"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"درحال تماس"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"شماره من <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> است"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"درحال برقراری تماس ویدیویی"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"تماس ویدیویی"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"درحال درخواست تماس ویدیویی"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"برقراری تماس ویدیویی ممکن نیست"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"درخواست تماس ویدیویی رد شد"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"شماره پاسخ تماس شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"شماره پاسخ تماس اضطراری شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"شماره‌گیری"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"تماس بی‌پاسخ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"تماس بی‌پاسخ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> تماس بی‌پاسخ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"تماس بی‌پاسخ از <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"تماس درحال انجام"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"تماس کاری درحال انجام"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"‏تماس درحال انجام ازطریق Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"‏تماس کاری Wi-Fi درحال انجام"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"در انتظار"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"تماس ورودی"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"تماس کاری ورودی"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"‏تماس Wi-Fi ورودی"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"‏تماس کاری Wi-Fi ورودی"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"تماس ویدیویی ورودی"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"درخواست تماس ویدیویی ورودی"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"پست صوتی جدید"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"پست صوتی جدید (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"شماره‌گیری <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"شماره پست صوتی ناشناس"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"بدون سرویس"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"شبکه انتخابی (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) قابل دسترس نیست"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"پاسخ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"پایان تماس"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ویدیو"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"صدا"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"پذیرفتن"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"نپذیرفتن"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"پاسخ تماس"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"پیام"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"برای برقراری تماس، ابتدا حالت هواپیما را خاموش کنید."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"در شبکه ثبت نشده است."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"شبکه تلفن همراه در دسترس نیست."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"برای برقراری تماس، شماره معتبری وارد کنید."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"تماس ممکن نیست."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"‏شروع ترتیب MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"سرویس پشتیبانی نمی‌شود."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"جابه‌جایی بین تماس‌ها ممکن نیست."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"جدا کردن تماس ممکن نیست."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"انتقال ممکن نیست."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"تماس کنفرانسی ممکن نیست."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"رد کردن تماس ممکن نیست."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"آزاد کردن تماس(ها) ممکن نیست."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"‏تماس SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"تماس اضطراری"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"درحال روشن کردن رادیو…‏"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"سرویسی دردسترس نیست. درحال تلاش مجدد…‏"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"تماس ممکن نیست. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> شماره اضطراری نیست."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"تماس ممکن نیست. فقط شماره اضطراری."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"استفاده از صفحه‌کلید برای شماره‌گیری"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"در انتظار گذاشتن تماس"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ازسرگیری تماس"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"پایان تماس"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"صفحه شماره‌گیری"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"بی‌صدا کردن"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"افزودن تماس"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ادغام تماس‌ها"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"تعویض"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"مدیریت تماس‌ها"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"مدیریت تماس کنفرانسی"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"تماس کنفرانسی"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"مدیریت"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"صوتی"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"تماس ویدیویی"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"تغییر به تماس صوتی"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"تعویض دوربین"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"توقف موقت ویدیو"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"گزینه‌های بیشتر"</string>
+    <string name="player_started" msgid="3478865572468310331">"پخش‌کننده راه‌اندازی شد"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"پخش‌کننده متوقف شد"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"دوربین آماده نیست"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"دوربین آماده است"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"رویداد جلسه تماس ناشناس"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"سرویس"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"راه‌اندازی"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"‏&lt;تنظیم نشده&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"سایر تنظیمات تماس"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"تماس با <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"تماس‌های ورودی ازطریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"عکس مخاطب"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"رفتن به حالت خصوصی"</string>
+    <string name="selectContact" msgid="92191462970821951">"انتخاب مخاطب"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"پیام خودتان را بنویسید..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"لغو"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ارسال"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"پاسخ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"ارسال پیامک"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"رد کردن"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"پاسخ به‌صورت تماس ویدیویی"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"پاسخ به‌صورت تماس صوتی"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"پذیرفتن درخواست تماس ویدیویی"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"نپذیرفتن درخواست تماس ویدیویی"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"پذیرفتن درخواست مخابره ویدیویی"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"نپذیرفتن درخواست مخابره ویدیویی"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"پذیرفتن درخواست دریافت ویدیویی"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"نپذیرفتن درخواست دریافت ویدیویی"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به بالا بلغزانید."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به چپ بلغزانید."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به راست بلغزانید."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به پایین بلغزانید."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"لرزش"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"لرزش"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"صدا"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"صدای پیش‌فرض (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"آهنگ زنگ تلفن"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"لرزش هنگام زنگ زدن"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"آهنگ‌ زنگ و لرزش"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"مدیریت تماس کنفرانسی"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"شماره اضطراری"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ثانیه</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ثانیه</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> دقیقه</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> دقیقه</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one">‏<xliff:g id="COUNT">%d</xliff:g> ساعت</item>
+      <item quantity="other">‏<xliff:g id="COUNT">%d</xliff:g> ساعت</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"عکس نمایه"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"دوربین خاموش"</string>
+    <string name="child_number" msgid="4469090994612105532">"ازطریق <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"یادداشت ارسال شد"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"پیام‌های جدید"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"اطلاعات کسب و کار"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> مایل فاصله"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> کیلومتر فاصله"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>،‏ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> تا <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>،‏ <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"فردا ساعت <xliff:g id="OPEN_TIME">%s</xliff:g> باز می‌شود"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"امروز ساعت <xliff:g id="OPEN_TIME">%s</xliff:g> باز می‌شود"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"ساعت <xliff:g id="CLOSE_TIME">%s</xliff:g> بسته می‌شود"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"امروز ساعت <xliff:g id="CLOSE_TIME">%s</xliff:g> بسته شد"</string>
+    <string name="open_now" msgid="4615706338669555999">"اکنون باز است"</string>
+    <string name="closed_now" msgid="2635314668145282080">"اکنون بسته است"</string>
+</resources>
diff --git a/InCallUI/res/values-fi/strings.xml b/InCallUI/res/values-fi/strings.xml
new file mode 100644
index 0000000..be74c47
--- /dev/null
+++ b/InCallUI/res/values-fi/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Puhelin"</string>
+    <string name="onHold" msgid="527593602772521700">"Pidossa"</string>
+    <string name="unknown" msgid="3646075119047488748">"Tuntematon"</string>
+    <string name="private_num" msgid="6081418498487514686">"Yksityinen numero"</string>
+    <string name="payphone" msgid="5743050584468748607">"Maksupuhelin"</string>
+    <string name="confCall" msgid="3181961445236675173">"Puhelinneuvottelu"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Puhelu katkaistiin."</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Kaiutin"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Puhelimen kaiutin"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kuulokemikrofoni"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Lähetetäänkö seuraavat äänet?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Lähetetään ääniä\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Lähetä"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Kyllä"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ei"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Muuta jokerimerkiksi"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Puhelinneuvottelu <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Puhelinvastaajan numero"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Soitetaan"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Soitetaan uudelleen"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Puhelinneuvottelu"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Saapuva puhelu"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Saapuva työpuhelu"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Puhelu päättyi"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Pidossa"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Katkaistaan"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Puhelu käynnissä"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Numeroni on <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Avataan videoyhteys"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videopuhelu"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Videota pyydetään"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videopuhelua ei voi soittaa"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videopyyntö hylättiin"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Takaisinsoittonumero:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Hätäpuhelujen takaisinsoittonumero:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Soitetaan"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Vastaamaton puhelu"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Vastaamattomia puheluita"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastaamatonta puhelua"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Vastaamaton puhelu: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Käynnissä oleva puhelu"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Käynnissä oleva työpuhelu"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Käynnissä oleva Wi-Fi-puhelu"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Käynnissä oleva Wi-Fi-työpuhelu"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Pidossa"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Saapuva puhelu"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Saapuva työpuhelu"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Saapuva Wi-Fi-puhelu"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Saapuva Wi-Fi-työpuhelu"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Saapuva videopuhelu"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Saapuva videopyyntö"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Uusi vastaajaviesti"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Uusia vastaajaviestejä (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Soita: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Puhelinvastaajan numero on tuntematon."</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ei yhteyttä"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Valittu verkko (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ei ole käytettävissä."</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Vastaa"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Katkaise"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videopuhelu"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Äänipuhelu"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Hyväksy"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Hylkää"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Soita"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Viesti"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Poista lentokonetila käytöstä ennen puhelun soittamista."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ei rekisteröity verkkoon"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Matkapuhelinverkko ei ole käytettävissä."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Soita antamalla kelvollinen numero."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Puhelua ei voi soittaa."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Aloitetaan MMI-koodisekvenssiä…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Yhteyttä ei tueta."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Puhelua ei voi vaihtaa."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Puhelua ei voi erottaa."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Puhelua ei voi siirtää."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Puheluja ei voi yhdistää."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Puhelua ei voi hylätä."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Puheluja ei voi katkaista."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-puhelu"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Hätäpuhelu"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Käynnistetään radiota…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ei yhteyttä. Yritetään uudelleen…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Puhelua ei voi soittaa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hätänumero."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Puhelua ei voi soittaa. Valitse hätänumero."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Valitse numero näppäimistöllä."</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Aseta puhelu pitoon"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Jatka puhelua"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Lopeta puhelu"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Näppäimistö"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Mykistä"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Lisää puhelu"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Yhdistä puhelut"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Vaihda"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Hallinnoi puheluja"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Hallinnoi puhelinneuvottelua"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Puhelinneuvottelu"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Hallinnoi"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Ääni"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Muuta äänipuheluksi"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Vaihda kameraa"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Keskeytä video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Lisäasetukset"</string>
+    <string name="player_started" msgid="3478865572468310331">"Soitin käynnistettiin."</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Soitin pysäytettiin."</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera ei ole valmis."</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera on valmis."</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Tuntematon puheluistunnon tapahtuma"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Palveluntarjoaja"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Määritys"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ei määritetty&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Muut puheluasetukset"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"Yhteystiedon kuva"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"Muuta yksityiseksi."</string>
+    <string name="selectContact" msgid="92191462970821951">"Valitse yhteystieto."</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Kirjoita oma…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Peruuta"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Lähetä"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Vastaa."</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Lähetä tekstiviesti."</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Hylkää."</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Vastaa ja aloita videopuhelu."</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Vastaa ja aloita äänipuhelu."</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Hyväksy videopyyntö."</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Hylkää videopyyntö."</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Hyväksy videon lähetyspyyntö."</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Hylkää videon lähetyspyyntö."</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Hyväksy videon vastaanottopyyntö."</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Hylkää videon vastaanottopyyntö."</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Valitse <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> liu\'uttamalla ylös."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Valitse <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> liu\'uttamalla vasemmalle."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Valitse <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> liu\'uttamalla oikealle."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Valitse <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> liu\'uttamalla alas."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Värinä"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Värinä"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ääni"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Oletusääni (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Puhelimen soittoääni"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Käytä värinää, kun puhelin soi"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Soittoääni ja värinä"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Hallinnoi puhelinneuvottelua"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Hätänumero"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekuntia</item>
+      <item quantity="one">1 sekunti</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuuttia</item>
+      <item quantity="one">1 minuutti</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tuntia</item>
+      <item quantity="one">1 tunti</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profiilikuva"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera on pois käytöstä."</string>
+    <string name="child_number" msgid="4469090994612105532">"nron <xliff:g id="CHILD_NUMBER">%s</xliff:g> kautta"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Muistiinpano lähetettiin."</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Viimeisimmät viestit"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Yrityksen tiedot"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Etäisyys: <xliff:g id="DISTANCE">%.1f</xliff:g> mailia"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Etäisyys: <xliff:g id="DISTANCE">%.1f</xliff:g> kilometriä"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Avataan huomenna kello <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Avataan tänään kello <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Suljetaan tänään kello <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Suljettiin tänään kello <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Avoinna nyt"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Suljettu nyt"</string>
+</resources>
diff --git a/InCallUI/res/values-fr-rCA/strings.xml b/InCallUI/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..392b022
--- /dev/null
+++ b/InCallUI/res/values-fr-rCA/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Téléphone"</string>
+    <string name="onHold" msgid="527593602772521700">"En attente"</string>
+    <string name="unknown" msgid="3646075119047488748">"Inconnue"</string>
+    <string name="private_num" msgid="6081418498487514686">"Numéro privé"</string>
+    <string name="payphone" msgid="5743050584468748607">"Cabine téléphonique"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conférence téléphonique"</string>
+    <string name="call_lost" msgid="8208184291640961172">"L\'appel a été interrompu"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Haut-parleur"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Écouteur du combiné"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Écouteurs à fil"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Envoyer les tonalités suivantes?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Envoi des tonalités\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Envoyer"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Oui"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Non"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Remplacer le caractère générique par"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conférence téléphonique <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numéro de messagerie vocale"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Composition..."</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Recomposition en cours..."</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conférence téléphonique"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Appel entrant"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Appel entrant - travail"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Appel terminé"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En attente"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Fin de l\'appel"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"En cours d\'appel"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mon numéro est le <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Connexion de la vidéo en cours…"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Appel vidéo"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Demande de vidéo en cours"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Impossible de connecter l\'appel vidéo"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Demande vidéo refusée"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Votre numéro de rappel :\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Votre numéro de rappel d\'urgence :\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Composition en cours..."</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Appel manqué"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Appels manqués"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Appel manqué de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Appel en cours"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Appel en cours - travail"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Appel Wi-Fi en cours"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Appel Wi-Fi en cours - travail"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En attente"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Appel entrant"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Appel entrant - travail"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Appel Wi-Fi entrant"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Appel Wi-Fi entrant - travail"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Appel vidéo entrant"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Demande de vidéo reçue"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nouveau message vocal"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nouveaux messages vocaux (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Composer le <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Numéro de messagerie vocale inconnu"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Aucun service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Réseau sélectionné (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Répondre"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Raccrocher"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vidéo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voix"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accepter"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Fermer"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Rappeler"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Pour faire un appel, d\'abord désactiver le mode Avion."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non enregistré sur le réseau."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Réseau cellulaire non disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Pour faire un appel, entrez un numéro valide."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Impossible d\'appeler."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Lancement de la séquence IHM en cours…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service non pris en charge."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Impossible de faire des appels."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Impossible de séparer les appels."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Impossible de transférer."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Impossible de créer la conférence."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Impossible de refuser l\'appel."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Impossible de libérer l\'appel ou les appels."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Appel SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Appel d\'urgence"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Activation du signal radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Aucun service. Nouvel essai en cours..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Appel impossible. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> n\'est pas un numéro d\'urgence."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Appel impossible. Composez un numéro d\'urgence."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Utilisez le clavier pour composer un numéro"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Mettre l\'appel en attente"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Reprendre l\'appel"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Mettre fin à l\'appel"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Clavier numérique"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Désactiver le son"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Ajouter un appel"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Fusionner les appels"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Permuter"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gérer les appels"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gérer la conférence"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conférence téléphonique"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gérer"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Appel vidéo"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passer à un appel vocal"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Changer d\'appareil photo"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Interrompre la vidéo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Plus d\'options"</string>
+    <string name="player_started" msgid="3478865572468310331">"Le lecteur a démarré"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Le lecteur a arrêté"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"L\'appareil photo n\'est pas prêt"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"L\'appareil photo est prêt"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Événement inconnu de séance d\'appel"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuration"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Non défini&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Autres paramètres d\'appel"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Appel par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Appel entrant par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"photo du contact"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"mode privé"</string>
+    <string name="selectContact" msgid="92191462970821951">"sélectionner un contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Réponse personnalisée..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Annuler"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Envoyer"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Répondre"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Envoyer un texto"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Refuser"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Répondre comme appel vidéo"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Répondre comme appel audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accepter la demande vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Refuser la demande vidéo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accepter la demande de transmission vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Refuser la demande de transmission vidéo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accepter la demande de réception vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Refuser la demande de réception vidéo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Faites glisser votre doigt vers le haut pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Faites glisser votre doigt vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Faites glisser votre doigt vers la droite pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Faire glisser le doigt vers le bas : <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibration"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibration"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Son"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Son par défaut (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Sonnerie du téléphone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrer lorsque téléphone sonne"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Sonnerie et vibreur"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gérer la conférence"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Numéro d\'urgence"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> seconde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> secondes</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Photo de profil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Appareil photo désactivé"</string>
+    <string name="child_number" msgid="4469090994612105532">"au moyen du <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Note envoyée"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Messages récents"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Renseignements sur l\'entreprise"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"À <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"À <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"De <xliff:g id="OPEN_TIME">%1$s</xliff:g> à <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Ouvre demain à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Ouvre aujourd\'hui à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Ferme à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"A fermé aujourd\'hui à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Ouvert"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Fermé"</string>
+</resources>
diff --git a/InCallUI/res/values-fr/strings.xml b/InCallUI/res/values-fr/strings.xml
new file mode 100644
index 0000000..05e0fd4
--- /dev/null
+++ b/InCallUI/res/values-fr/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Téléphone"</string>
+    <string name="onHold" msgid="527593602772521700">"En attente"</string>
+    <string name="unknown" msgid="3646075119047488748">"Inconnu"</string>
+    <string name="private_num" msgid="6081418498487514686">"Numéro privé"</string>
+    <string name="payphone" msgid="5743050584468748607">"Cabine téléphonique"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conférence téléphonique"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Appel interrompu"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Haut-parleur"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Écouteur du combiné"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Casque filaire"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Envoyer les tonalités suivantes ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Envoi des tonalités…\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Envoyer"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Oui"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Non"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Remplacer le caractère générique par"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conférence téléphonique à <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"N° de la messagerie vocale"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Appel…"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Rappel…"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conférence téléphonique"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Appel entrant"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Appel profession. entrant"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Appel terminé"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En attente"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Fin de l\'appel…"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Appel en cours"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mon numéro est le <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Connexion de la vidéo…"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Appel vidéo"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Demande de vidéo…"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Impossible d\'établir la connexion de l\'appel vidéo."</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Demande d\'appel vidéo refusée"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Votre numéro de rappel\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Votre numéro de rappel d\'urgence\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Appel…"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Appel manqué"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Appels manqués"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Appel manqué de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Appel en cours"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Appel professionnel en cours"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Appel Wi-Fi en cours"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Appel Wi-Fi professionnel en cours"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En attente"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Appel entrant"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Appel professionnel entrant"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Appel Wi-Fi entrant"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Appel Wi-Fi professionnel entrant"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Appel vidéo entrant"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Demande de vidéo reçue"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nouveau message vocal"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nouveaux messages vocaux (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Composer le <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Numéro de messagerie vocale inconnu"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Aucun service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Réseau sélectionné (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Répondre"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Raccrocher"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vidéo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Appel vocal"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accepter"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Fermer"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Rappeler"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Envoyer SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Veuillez désactiver le mode Avion avant de passer un appel."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non enregistré sur le réseau."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Réseau mobile indisponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Pour émettre un appel, veuillez saisir un numéro valide."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Impossible d\'émettre l\'appel."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Lancement de la séquence IHM…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service non compatible."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Impossible de changer d\'appel."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Impossible d\'isoler l\'appel."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Transfert impossible."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Impossible de lancer une conférence téléphonique."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Impossible de refuser l\'appel."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Impossible de lancer les appels."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Appel SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Appel d\'urgence"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Activation du signal radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Aucun service disponible. Nouvelle tentative…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Impossible d\'émettre l\'appel. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> n\'est pas un numéro d\'urgence."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Impossible d\'émettre l\'appel. Veuillez composer un numéro d\'urgence."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Utilisez le clavier pour composer un numéro."</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Mettre l\'appel en attente"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Reprendre l\'appel"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Mettre fin à l\'appel"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Clavier"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Couper le son"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Ajouter un appel"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Fusionner les appels"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Permuter"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gérer les appels"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gérer conférence téléphonique"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conférence téléphonique"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gérer"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Appel vidéo"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passer à un appel vocal"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Changer de caméra"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Suspendre la vidéo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Plus d\'options"</string>
+    <string name="player_started" msgid="3478865572468310331">"Le lecteur a démarré."</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Le lecteur s\'est arrêté."</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"La caméra n\'est pas prête"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"La caméra est prête"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Événement de session d\'appel inconnu"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuration"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Non défini&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Autres paramètres d\'appel"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Appel entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"photo du contact"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"mode privé"</string>
+    <string name="selectContact" msgid="92191462970821951">"sélectionner un contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Réponse personnalisée…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Annuler"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Envoyer"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Répondre"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Envoyer un SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Refuser"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Répondre via un appel vidéo"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Répondre via un appel audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accepter la demande d\'appel vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Refuser la demande d\'appel vidéo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accepter la demande de transmission d\'appel vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Refuser la demande de transmission d\'appel vidéo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accepter la demande de réception d\'appel vidéo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Refuser la demande de réception d\'appel vidéo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Faites glisser vers le haut pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Faites glisser vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Faites glisser vers la droite pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Faites glisser vers le bas pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibreur"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibreur"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sonnerie"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sonnerie par défaut (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Sonnerie du téléphone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibreur lorsque le tél. sonne"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Sonnerie et vibreur"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gérer la conférence téléphonique"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Numéro d\'urgence"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> seconde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> secondes</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Photo du profil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Caméra désactivée"</string>
+    <string name="child_number" msgid="4469090994612105532">"via le <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"La note a bien été envoyée."</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Messages récents"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informations sur l\'établissement"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"À <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"À <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Ouvre demain à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Ouvre aujourd\'hui à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Ferme à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Fermé aujourd\'hui à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Ouvert"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Fermé"</string>
+</resources>
diff --git a/InCallUI/res/values-gl-rES/strings.xml b/InCallUI/res/values-gl-rES/strings.xml
new file mode 100644
index 0000000..18bc72b
--- /dev/null
+++ b/InCallUI/res/values-gl-rES/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Teléfono"</string>
+    <string name="onHold" msgid="527593602772521700">"En espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Descoñecido"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Teléfono público"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conferencia telefónica"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Chamada interrompida"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altofalante"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricular do teléfono"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auriculares con cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Queres enviar os seguintes tons?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Enviando tons\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Si"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Non"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Substituír carácter comodín por"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conferencia telefónica ás <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número de correo de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Marcando"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Marcando de novo"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conferencia telefónica"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Chamada entrante"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Chamada traballo entrante"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Chamada finalizada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Desconectando"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Chamada entrante"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"O meu número é o <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Conectando vídeo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videochamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Solicitando vídeo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Non se pode conectar a videochamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Rexeitouse a solicitude de vídeo"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"O teu número de devolución de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"O teu número de devolución de chamada de emerxencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Marcando"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Chamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Chamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Chamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Chamada en curso"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Chamada de traballo saínte"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Chamada por wifi saínte"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Chamada por wifi de traballo saínte"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"En espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Chamada entrante"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Chamada de traballo entrante"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Chamada por wifi entrante"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Chamada wifi de traballo entrante"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videochamada entrante"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitude de vídeo entrante"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Correo de voz novo"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Correo de voz novo (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Marcar o <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número de correo de voz descoñecido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sen servizo"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"A rede seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non está dispoñible"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Responder"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Colgar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vídeo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceptar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Dev. chamada"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaxe"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar unha chamada, primeiro desactiva o modo avión."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Sen rexistro na rede."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede móbil non dispoñible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para realizar unha chamada, introduce un número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Non se pode realizar a chamada."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iniciando secuencia MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Servizo non compatible."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Non se poden cambiar as chamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Non se pode separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Non se pode transferir."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Non se pode realizar a conferencia."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Non se pode rexeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Non se poden desconectar as chamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Chamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Chamada de emerxencia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Activando radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Sen servizo. Tentándoo de novo…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Non se pode realizar a chamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non é un número de emerxencia."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Non se pode realizar a chamada. Marca un número de emerxencia."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Utiliza o teclado para marcar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Poñer a chamada en espera"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Retomar chamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Finalizar chamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado de marcación"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Silenciar"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Engadir chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Combinar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Cambiar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Xestionar chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Xestionar confer. telefónica"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conferencia telefónica"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Xestionar"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar para chamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Máis opcións"</string>
+    <string name="player_started" msgid="3478865572468310331">"Iniciouse o reprodutor"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Detívose o reprodutor"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"A cámara non está preparada"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"A cámara está preparada"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sesión de chamada descoñecido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Servizo"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuración"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Sen configurar&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Outras configuracións de chamada"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Chamadas entrantes a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto do contacto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"activar o modo privado"</string>
+    <string name="selectContact" msgid="92191462970821951">"seleccionar contacto"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escribe a túa propia..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Responder"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rexeitar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Responde como videochamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Responde como chamada de audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Acepta a solicitude de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Rexeita a solicitude de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Acepta a solicitude de transmisión de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Rexeita a solicitude de transmisión de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Acepta a solicitude de recepción de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Rexeita a solicitude de recepción de vídeo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Pasa o dedo cara a arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Pasa o dedo cara a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Pasa o dedo cara a dereita para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Pasa o dedo cara a abaixo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Son"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Son predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ton de chamada do teléfono"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar ao soar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ton de chamada e vibración"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Xestionar conferencia telefónica"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emerxencia"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="one">1 segundo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="one">1 minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="one">1 hora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"A cámara está desactivada"</string>
+    <string name="child_number" msgid="4469090994612105532">"a través do <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Enviouse a nota"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensaxes recentes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Información da empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi de distancia"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distancia"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre mañá ás <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoxe ás <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Pecha ás <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Pechou hoxe ás <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Aberto agora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Pechado agora"</string>
+</resources>
diff --git a/InCallUI/res/values-gu-rIN/strings.xml b/InCallUI/res/values-gu-rIN/strings.xml
new file mode 100644
index 0000000..8f5aa1a
--- /dev/null
+++ b/InCallUI/res/values-gu-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ફોન"</string>
+    <string name="onHold" msgid="527593602772521700">"હોલ્ડ પર"</string>
+    <string name="unknown" msgid="3646075119047488748">"અજાણ્યો"</string>
+    <string name="private_num" msgid="6081418498487514686">"ખાનગી નંબર"</string>
+    <string name="payphone" msgid="5743050584468748607">"પેફોન"</string>
+    <string name="confCall" msgid="3181961445236675173">"કોન્ફરન્સ કૉલ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"કૉલ કપાઇ ગયો"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"સ્પીકર"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"હેન્ડસેટ ઇયરપીસ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"વાયર્ડ હેડસેટ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"નીચે આપેલ ટોન્સ મોકલીએ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ટોન્સ મોકલી રહ્યાં છે\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"મોકલો"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"હા"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"નહીં"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"વાઇલ્ડ અક્ષરને આની સાથે બદલો"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"કોન્ફરન્સ કૉલ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"વૉઇસમેઇલ નંબર"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ડાયલ કરી રહ્યાં છે"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ફરી ડાયલ કરી રહ્યાં છે"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"કોન્ફરન્સ કૉલ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ઇનકમિંગ કૉલ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ઇનકમિંગ કાર્ય કૉલ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"કૉલ સમાપ્ત થયો"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"હોલ્ડ પર"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"સમાપ્ત કરી રહ્યાં છે"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"કૉલમાં"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"મારો નંબર <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> છે"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"વિડિઓ કનેક્ટ કરી રહ્યાં છે"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"વિડિઓ કૉલ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"વિડિઓની વિનંતી કરી રહ્યાં છે"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"વિડિઓ કૉલ કનેક્ટ કરી શકાતો નથી"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"વિડિઓ વિનંતી નકારી"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"તમારો કૉલબેક નંબર\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"તમારો કટોકટીનો કૉલબેક નંબર\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ડાયલ કરી રહ્યાં છે"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"છૂટેલો કૉલ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"છૂટેલા કૉલ્સ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> છૂટેલા કૉલ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> નો કૉલ ચૂકી ગયાં"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"ચાલી રહેલ કૉલ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ચાલી રહેલ કાર્ય કૉલ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ચાલી રહેલ Wi-Fi કૉલ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ચાલી રહેલ Wi-Fi કાર્ય કૉલ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"હોલ્ડ પર"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ઇનકમિંગ કૉલ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ઇનકમિંગ કાર્ય કૉલ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ઇનકમિંગ Wi-Fi કૉલ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ઇનકમિંગ Wi-Fi કાર્ય કૉલ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ઇનકમિંગ વિડિઓ કૉલ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ઇનકમિંગ વિડિઓ વિનંતી"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"નવો વૉઇસમેઇલ"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"નવો વૉઇસમેઇલ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ડાયલ કરો"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"વૉઇસમેઇલ નંબર અજાણ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"કોઈ સેવા નથી"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"પસંદ કરેલ નેટવર્ક (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) અનુપલબ્ધ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"જવાબ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"સમાપ્ત કરો"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"વિડિઓ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"વૉઇસ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"સ્વીકારો"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"છોડી દો"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"કૉલ બૅક કરો"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"સંદેશ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"કૉલ કરવા માટે, પહેલા એરપ્લેન મોડને બંધ કરો."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"નેટવર્ક પર નોંધણી કરાયેલ નથી."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"સેલ્યુલર નેટવર્ક ઉપલબ્ધ નથી."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"કૉલ કરવા માટે, માન્ય નંબર દાખલ કરો."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"કૉલ કરી શકાતો નથી."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI અનુક્રમ પ્રારંભ કરી રહ્યાં છે…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"સેવા સમર્થિત નથી."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"કૉલ્સ સ્વિચ કરી શકાતાં નથી."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"અલગ કૉલ કરી શકાતો નથી."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ટ્રાંસ્ફર કરી શકાતો નથી."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"કોન્ફરન્સ કરી શકાતી નથી."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"કૉલ નકારી શકાતો નથી."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"કૉલ(કૉલ્સ) રિલીઝ કરી શકતાં નથી."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP કૉલ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"કટોકટીનો કૉલ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"રેડિઓ ચાલુ કરી રહ્યાં છે…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"કોઈ સેવા નથી. ફરી પ્રયાસ કરી રહ્યાં છે…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"કૉલ કરી શકાતો નથી. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> એ કટોકટીનો નંબર નથી."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"કૉલ કરી શકાતો નથી. કટોકટીનો નંબર ડાયલ કરો."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ડાયલ કરવા માટે કીબોર્ડનો ઉપયોગ કરો"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"કૉલ હોલ્ડ કરો"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"કૉલ ફરી શરૂ કરો"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"કૉલ સમાપ્ત કરો"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ડાયલપેડ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"મ્યૂટ કરો"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"કૉલ ઉમેરો"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"કૉલ્સ મર્જ કરો"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"સ્વેપ કરો"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"કૉલ્સ સંચાલિત કરો"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"કોન્ફરન્સ કૉલ સંચાલિત કરો"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"કોન્ફરન્સ કૉલ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"સંચાલિત કરો"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ઑડિઓ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"વિડિઓ કૉલ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"વૉઇસ કૉલ પર બદલો"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"કૅમેરા પર સ્વિચ કરો"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"વિડિઓ થોભાવો"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"વધુ વિકલ્પો"</string>
+    <string name="player_started" msgid="3478865572468310331">"પ્લેયર પ્રારંભ કર્યું"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"પ્લેયર બંધ કર્યું"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"કૅમેરો તૈયાર નથી"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"કૅમેરો તૈયાર"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"અજાણી કૉલ સત્ર ઇવેન્ટ"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"સેવા"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"સેટઅપ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;સેટ કરેલ નથી&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"અન્ય કૉલ સેટિંગ્સ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે કૉલ કરે છે"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે ઇનકમિંગ"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"સંપર્ક ફોટો"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ખાનગી થાઓ"</string>
+    <string name="selectContact" msgid="92191462970821951">"સંપર્ક પસંદ કરો"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"તમારો પોતાનો લખો…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"રદ કરો"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"મોકલો"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"જવાબ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS મોકલો"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"નકારો"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"વિડિઓ કૉલ તરીકે જવાબ આપો"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ઑડિઓ કૉલ તરીકે જવાબ આપો"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"વિડિઓ વિનંતી સ્વીકારો"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"વિડિઓ વિનંતી નકારો"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"વિડિઓ ટ્રાંસ્મિટ વિનંતી સ્વીકારો"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"વિડિઓ ટ્રાંસ્મિટ વિનંતી નકારો"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"વિડિઓ પ્રાપ્તિ વિનંતી સ્વીકારો"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"વિડિઓ પ્રાપ્તિ વિનંતી નકારો"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> માટે ઉપર સ્લાઇડ કરો."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> માટે ડાબે સ્લાઇડ કરો."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> માટે જમણે સ્લાઇડ કરો."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> માટે નીચે સ્લાઇડ કરો."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"વાઇબ્રેટ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"વાઇબ્રેટ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ધ્વનિ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ડિફોલ્ટ ધ્વનિ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ફોન રિંગટોન"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"જ્યારે રિંગ કરે ત્યારે વાઇબ્રેટ કરો"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"રિંગટોન અને વાઇબ્રેટ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"કોન્ફરન્સ કૉલ સંચાલિત કરો"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"કટોકટીનો નંબર"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> સેકંડ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> સેકંડ</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> મિનિટ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> મિનિટ</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> કલાક</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> કલાક</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"પ્રોફાઇલ ફોટો"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"કૅમેરો બંધ"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> મારફતે"</string>
+    <string name="note_sent" msgid="7623014827902758398">"નોંધ મોકલી"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"તાજેતરનાં સંદેશા"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"વ્યવસાયની માહિતી"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> માઇલ દૂર"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> કિમી દૂર"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"આવતીકાલે <xliff:g id="OPEN_TIME">%s</xliff:g> વાગ્યે ખુલશે"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"આજે <xliff:g id="OPEN_TIME">%s</xliff:g> વાગ્યે ખુલશે"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> વાગ્યે બંધ થશે"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"આજે <xliff:g id="CLOSE_TIME">%s</xliff:g> વાગ્યે બંધ થયેલું"</string>
+    <string name="open_now" msgid="4615706338669555999">"હમણાં ખુલ્લું"</string>
+    <string name="closed_now" msgid="2635314668145282080">"હમણાં બંધ છે"</string>
+</resources>
diff --git a/InCallUI/res/values-h500dp/dimens.xml b/InCallUI/res/values-h500dp/dimens.xml
new file mode 100644
index 0000000..dda755a
--- /dev/null
+++ b/InCallUI/res/values-h500dp/dimens.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 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>
+    <!-- Whether or not this layout displays a large photo. -->
+    <bool name="has_large_photo">true</bool>
+
+    <dimen name="call_banner_height">90dp</dimen>
+
+    <dimen name="end_call_button_margin_bottom">15dp</dimen>
+
+    <dimen name="floating_action_button_vertical_offset">-24dp</dimen>
+
+    <dimen name="dialpad_elevation">2dp</dimen>
+
+    <dimen name="video_preview_margin">20dp</dimen>
+</resources>
diff --git a/InCallUI/res/values-hi/strings.xml b/InCallUI/res/values-hi/strings.xml
new file mode 100644
index 0000000..1e2a53d
--- /dev/null
+++ b/InCallUI/res/values-hi/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"फ़ोन"</string>
+    <string name="onHold" msgid="527593602772521700">"होल्ड पर"</string>
+    <string name="unknown" msgid="3646075119047488748">"अज्ञात"</string>
+    <string name="private_num" msgid="6081418498487514686">"निजी नंबर"</string>
+    <string name="payphone" msgid="5743050584468748607">"पे-फ़ोन"</string>
+    <string name="confCall" msgid="3181961445236675173">"कॉन्फ़्रेंस कॉल"</string>
+    <string name="call_lost" msgid="8208184291640961172">"कॉल कट गया"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"स्पीकर"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"हैंडसेट इयरपीस"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"वायर वाला हैडसेट"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ब्लूटूथ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"निम्न टोन भेजें?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"भेजने वाली टोन\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"भेजें"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"हां"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"नहीं"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"वाइल्ड वर्ण को इससे बदलें:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"कॉन्फ़्रेंस कॉल <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"वॉइसमेल नबंर"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"डायल किया जा रहा है"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"पुन: डायल हो रहा है"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"कॉन्फ़्रेंस कॉल"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"इनकमिंग कॉल"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"कार्यस्थल का इनकमिंग कॉल"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"कॉल समाप्त"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"होल्ड पर"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"कॉल समाप्त हो रहा है"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"कॉल में"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"मेरा नंबर <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> है"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"वीडियो कनेक्ट हो रहा है"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"वीडियो कॉल"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"वीडियो का अनुरोध किया जा रहा है"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"वीडियो कॉल कनेक्ट नहीं किया जा सकता"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"वीडियो अनुरोध अस्वीकार किया गया"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"आपका कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"आपका आपातकालीन कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"डायल किया जा रहा है"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"छूटा कॉल"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"छूटे कॉल"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छूटे कॉल"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> के छूटे कॉल"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"चल रहा कॉल"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"कार्यस्थल का जारी कॉल"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"चल रहा वाई-फ़ाई कॉल"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"कार्यस्थल का जारी वाई-फ़ाई कॉल"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"होल्ड पर"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"इनकमिंग कॉल"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"कार्यस्थल का इनकमिंग कॉल"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"इनकमिंग वाई-फ़ाई कॉल"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"कार्यस्थल का वाई-फ़ाई इनकमिंग कॉल"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"इनकमिंग वीडियो कॉल"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"इनकमिंग वीडियो अनुरोध"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"नया वॉइसमेल"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"नया वॉइसमेल (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> डायल करें"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"वॉइसमेल नंबर अज्ञात"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"कोई सेवा नहीं"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"चयनित नेटवर्क (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) अनुपलब्ध"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"उत्तर दें"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"समाप्त करें"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"वीडियो"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ध्वनि"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"स्वीकार करें"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ख़ारिज करें"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"कॉल बैक करें"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"संदेश"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"कॉल करने के लिए, पहले हवाई जहाज़ मोड बंद करें."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्क पर पंजीकृत नहीं."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"सेल्युलर नेटवर्क उपलब्ध नहीं."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"कॉल करने के लिए, मान्य नंबर डालें."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"कॉल नहीं किया जा सकता."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI अनुक्रम प्रारंभ हो रहा है…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"सेवा समर्थित नहीं है."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"कॉल स्विच नहीं किए जा सकते."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"कॉल अलग नहीं किया जा सकता."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"स्थानान्तरित नहीं किया जा सकता."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"कॉन्फ़्रेंस नहीं की जा सकती."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"कॉल अस्वीकार नहीं किया जा सकता."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"कॉल रिलीज़ नहीं किया जा सकता (किए जा सकते)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP कॉल"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"आपातकालीन कॉल"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"रेडियो चालू कर रहा है..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"कोई सेवा नहीं. पुन: प्रयास किया जा रहा है…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"कॉल नहीं किया जा सकता. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> एक आपातकालीन नंबर नहीं है."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"कॉल नहीं किया जा सकता. आपातकालीन नबर डायल करें."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"डायल करने के लिए कीबोर्ड का उपयोग करें"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"कॉल होल्ड करें"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"कॉल फिर से शुरू करें"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"कॉल समाप्त करें"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"डायलपैड"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"म्यूट करें"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"कॉल जोड़ें"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"कॉल मर्ज करें"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"स्वैप करें"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"कॉल प्रबंधित करें"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"कॉन्फ़्रेंस कॉल प्रबंधित करें"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"कॉन्फ़्रेंस कॉल"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"प्रबंधित करें"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ऑडियो"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"वीडियो कॉल"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"वॉइस कॉल में बदलें"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"कैमरा स्विच करें"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"वीडियो रोकें"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"अधिक विकल्प"</string>
+    <string name="player_started" msgid="3478865572468310331">"प्लेयर प्रारंभ हो गया"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"प्लेयर रुक गया"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"कैमरा तैयार नहीं है"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"कैमरा तैयार है"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"अज्ञात कॉल सत्र ईवेंट"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"सेवा"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"सेटअप"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;सेट नहीं है&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"अन्य कॉल सेटिंग"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"संपर्क का फ़ोटो"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"निजी हो जाएं"</string>
+    <string name="selectContact" msgid="92191462970821951">"संपर्क को चुनें"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"अपना स्वयं का लिखें..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"अभी नहीं"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"भेजें"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"उत्तर दें"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS भेजें"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"अस्वीकार करें"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"वीडियो कॉल के रूप में उत्तर दें"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ऑडियो कॉल के रूप में उत्तर दें"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"वीडियो अनुरोध स्वीकार करें"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"वीडियो अनुरोध अस्वीकार करें"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"वीडियो प्रसारण अनुरोध स्वीकार करें"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"वीडियो प्रसारण अनुरोध अस्वीकार करें"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"वीडियो प्राप्ति अनुरोध स्वीकार करें"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"वीडियो प्राप्ति अनुरोध अस्वीकार करें"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> करने के लिए ऊपर स्लाइड करें."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> करने के लिए बाएं स्लाइड करें."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> करने के लिए दाएं स्लाइड करें."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> करने के लिए नीचे स्लाइड करें."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"कंपन"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"कंपन"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ध्वनि"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"डिफ़ॉल्ट ध्वनि (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"फ़ोन रिंगटोन"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"रिंग आने पर कंपन करें"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"रिंगटोन और कंपन"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"कॉन्फ़्रेंस कॉल प्रबंधित करें"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"आपातकालीन नंबर"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> सेकंड</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सेकंड</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> मिनट</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> मिनट</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"प्रोफ़ाइल फ़ोटो"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"कैमरा बंद है"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> के द्वारा"</string>
+    <string name="note_sent" msgid="7623014827902758398">"नोट भेज दिया गया है"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"हाल ही के संदेश"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"व्यवसाय जानकारी"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> मील दूर"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> किमी दूर"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"कल <xliff:g id="OPEN_TIME">%s</xliff:g> बजे खुलेगा"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> बजे खुलता है"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> बजे बंद होता है"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> बजे बंद हो गया"</string>
+    <string name="open_now" msgid="4615706338669555999">"अभी खुला है"</string>
+    <string name="closed_now" msgid="2635314668145282080">"अभी बंद है"</string>
+</resources>
diff --git a/InCallUI/res/values-hr/strings.xml b/InCallUI/res/values-hr/strings.xml
new file mode 100644
index 0000000..8928321
--- /dev/null
+++ b/InCallUI/res/values-hr/strings.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Na čekanju"</string>
+    <string name="unknown" msgid="3646075119047488748">"Nepoznato"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privatni broj"</string>
+    <string name="payphone" msgid="5743050584468748607">"Javna telefonska govornica"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferencijski poziv"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Poziv je prekinut"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Slušalice"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Žičane slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Poslati sljedeće tonove?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Slanje tonova\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Da"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ne"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Zamijeni zamjenski znak znakom"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferencijski poziv <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Biranje broja"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ponovno biranje"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Dolazni poziv"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Dolazni poslovni poziv"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Poziv je završio"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Prekidanje veze"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Poziv u tijeku"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Moj je broj <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Uspostavljanje videopoziva"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videopoziv"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Zahtijevanje videopoziva"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videopoziv nije uspostavljen"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Zahtjev za videopoziv odbijen"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Vaš broj za povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Vaš broj za povratni poziv za hitne službe\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Biranje broja"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Propušteni poziv"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Propušteni pozivi (<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>)"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Propušten poziv kontakta <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Poziv u tijeku"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Poslovni poziv u tijeku"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Wi-Fi poziv u tijeku"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Poslovni Wi-Fi poziv u tijeku"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Na čekanju"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Dolazni poziv"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Dolazni poslovni poziv"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Dolazni Wi-Fi poziv"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Dolazni poslovni Wi-Fi poziv"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Dolazni videopoziv"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Dolazni zahtjev za videopoziv"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nova govorna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nova govorna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Biraj <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nepoznat broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nema usluge"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Odabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nije dostupna"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Odgovori"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Prekini vezu"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videopoziv"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Glasovni poziv"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Prihvati"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Odbaci"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Uzvrati"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Poruka"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Da biste uspostavili poziv, isključite način rada u zrakoplovu."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nije registrirano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Unesite važeći broj da biste uspostavili poziv."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Pozivanje nije moguće."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Pokretanje MMI sekvence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Usluga nije podržana."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Prebacivanje poziva nije moguće."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Odvajanje poziva nije moguće."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Prijenos nije moguć."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferencijski poziv nije moguć."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Odbijanje poziva nije moguće."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Prekidanje poziva nije moguće."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP poziv"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Hitni poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Uključivanje radija…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nema usluge. Pokušavamo ponovo…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Pozivanje nije moguće. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj hitne službe."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Pozivanje nije moguće. Nazovite broj hitne službe."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Upotrijebite tipkovnicu"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Stavi poziv na čekanje"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Nastavi poziv"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Završi poziv"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Površina za biranje brojeva"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Zanemari"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Spoji pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Zamijeni"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Upravljaj pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Upravljaj konf. pozivom"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferencijski poziv"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Upravljanje"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videopoziv"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Prijeđi na glasovni poziv"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Promijeni kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pauziraj videopoziv"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Više opcija"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player je pokrenut"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player je prekinut"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Fotoaparat nije spreman"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Fotoaparat je spreman"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Nepoznati događaj sesije poziva"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Usluga"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Postavljanje"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nije postavljeno&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Ostale postavke poziva"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Dolazni pozivi putem usluge <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotografija kontakta"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"uputi na privatno"</string>
+    <string name="selectContact" msgid="92191462970821951">"odabir kontakta"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napišite odgovor..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Odustani"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Pošalji"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Odgovori"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Pošalji SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Odbij"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Prihvati kao videopoziv"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Prihvati kao audiopoziv"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Prihvati zahtjev za videopoziv"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Odbij zahtjev za videopoziv"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Prihvati zahtjev za slanje videopoziva"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Odbij zahtjev za slanje videopoziva"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Prihvati zahtjev za primanje videopoziva"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Odbij zahtjev za primanje videopoziva"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Kliznite prema gore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Kliznite lijevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Kliznite desno za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Kliznite prema dolje za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibriranje"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibriranje"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Zvuk"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Zadani zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Melodija zvona telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibracija tijekom zvonjenja"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Melodija zvona i vibracija"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Upravljaj konferencijskim pozivom"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Broj hitne službe"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekunda</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundi</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sat</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sata</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sati</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Fotografija profila"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Fotoaparat je isključen"</string>
+    <string name="child_number" msgid="4469090994612105532">"putem broja <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Bilješka je poslana"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nedavne poruke"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informacije o tvrtki"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi udaljenosti"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km udaljenosti"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Otvara se sutra u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Otvara se danas u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zatvara se u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Zatvoreno danas u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Trenutačno otvoreno"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Trenutačno zatvoreno"</string>
+</resources>
diff --git a/InCallUI/res/values-hu/strings.xml b/InCallUI/res/values-hu/strings.xml
new file mode 100644
index 0000000..950dc34
--- /dev/null
+++ b/InCallUI/res/values-hu/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Tartásban"</string>
+    <string name="unknown" msgid="3646075119047488748">"Ismeretlen"</string>
+    <string name="private_num" msgid="6081418498487514686">"Magántelefonszám"</string>
+    <string name="payphone" msgid="5743050584468748607">"Nyilvános telefon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferenciahívás"</string>
+    <string name="call_lost" msgid="8208184291640961172">"A hívás megszakadt"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Hangszóró"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Kézibeszélő fülhallgatója"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Vezetékes fülhallgató"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Elküldi a következő hangjelzéseket?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Hangjelzések küldése\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Küldés"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Igen"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nem"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Helyettesítő karakter lecserélése a következőre:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferenciahívás – <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Hangposta száma"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Tárcsázás"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Újratárcsázás"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferenciahívás"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Bejövő hívás"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Bejövő munkahelyi hívás"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"A hívás befejeződött"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Tartásban"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Megszakítás"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Hívásban"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"A számom: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Videókapcsolat létrehozása"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videóhívás"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Videóhívást kér"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"A videóhívás létesítése sikertelen"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videókérelem elutasítva"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Visszahívható telefonszáma:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Vészhelyzet esetén visszahívható telefonszáma:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Tárcsázás"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Nem fogadott hívás"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Nem fogadott hívások"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> nem fogadott hívás"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Nem fogadott hívás: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Hívás folyamatban"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Folyamatban lévő munkahelyi hívás"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Folyamatban lévő Wi-Fi-hívás"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Folyamatban lévő munkahelyi hívás Wi-Fi-hálózaton keresztül"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Tartásban"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Bejövő hívás"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Bejövő munkahelyi hívás"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Bejövő Wi-Fi-hívás"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Bejövő munkahelyi hívás Wi-Fi-hálózaton keresztül"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Bejövő videóhívás"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Bejövő videókérés"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Új hangpostaüzenet"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Új hangpostaüzenet (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> tárcsázása"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"A hangposta száma ismeretlen"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nincs szolgáltatás"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"A kiválasztott hálózat (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nem áll rendelkezésre"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Fogadás"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Hívás bontása"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Videó"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Hang"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Elfogadás"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Elvetés"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Visszahívás"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Üzenet"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Hívásindításhoz kapcsolja ki a Repülős üzemmódot."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nincs regisztrálva a hálózaton."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"A mobilhálózat nem áll rendelkezésre."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Hívásindításhoz adjon meg egy érvényes számot."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"A hívás sikertelen."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI-sorozat indítása…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"A szolgáltatás nem támogatott."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"A hívások közötti váltás sikertelen."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"A híváselkülönítés sikertelen."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Az átirányítás sikertelen."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"A konferenciahívás sikertelen."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"A híváselutasítás sikertelen."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"A tartásban lévő hívás(ok) folytatása sikertelen."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-hívás"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Segélyhívás"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Rádió bekapcsolása…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nincs szolgáltatás. Újrapróbálkozás folyamatban…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"A hívás sikertelen. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> szám nem segélyhívószám."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"A hívás sikertelen. Tárcsázzon segélyhívószámot."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"A tárcsázáshoz használja a billentyűzetet"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Hívás tartása"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Hívás folytatása"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Hívás befejezése"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tárcsázó"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Némítás"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Hívás hozzáadása"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Hívások egyesítése"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Csere"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Hívások kezelése"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Konferenciahívás kezelése"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferenciahívás"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Kezelés"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Hang"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videóhívás"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Váltás hanghívásra"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Váltás a kamerák között"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videó szüneteltetése"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"További lehetőségek"</string>
+    <string name="player_started" msgid="3478865572468310331">"A lejátszó elindult"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"A lejátszó leállt"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"A kamera nem áll készen"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"A kamera készen áll"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Ismeretlen hívási esemény"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Szolgáltatás"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Beállítás"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nincs megadva&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Egyéb hívásbeállítások"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotó a névjegyhez"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"magánbeszélgetés"</string>
+    <string name="selectContact" msgid="92191462970821951">"névjegy kiválasztása"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Saját válasz írása…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Mégse"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Küldés"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Fogadás"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS küldése"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Elutasítás"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Fogadás videóhívásként"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Fogadás hanghívásként"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Videó kérésének elfogadása"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Videó kérésének elutasítása"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Videóküldési kérés elfogadása"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Videóküldési kérés elutasítása"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Videófogadási kérés elfogadása"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Videófogadási kérés elutasítása"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa felfelé."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa balra."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa jobbra."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa lefelé."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Rezgés"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Rezgés"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Hang"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Alapértelmezett hang (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefon csengőhangja"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Csörgéskor rezegjen"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Csengőhang és rezgés"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konferenciahívás kezelése"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Segélyhívó szám"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> másodperc</item>
+      <item quantity="one">1 másodperc</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> perc</item>
+      <item quantity="one">1 perc</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> óra</item>
+      <item quantity="one">1 óra</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilfotó"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera ki"</string>
+    <string name="child_number" msgid="4469090994612105532">"a következő számon keresztül: <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Üzenet elküldve"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Legutóbbi üzenetek"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Cég adatai"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mérföldre"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> kilométerre"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="LOCALITY">%2$s</xliff:g>, <xliff:g id="STREET_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Holnap ekkor nyit: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Ma ekkor nyit: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Ekkor zár: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Ma ekkor zárt: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Jelenleg nyitva van"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Jelenleg zárva van"</string>
+</resources>
diff --git a/InCallUI/res/values-hy-rAM/strings.xml b/InCallUI/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..2026a10
--- /dev/null
+++ b/InCallUI/res/values-hy-rAM/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Հեռախոս"</string>
+    <string name="onHold" msgid="527593602772521700">"Սպասում"</string>
+    <string name="unknown" msgid="3646075119047488748">"Անհայտ"</string>
+    <string name="private_num" msgid="6081418498487514686">"Գաղտնի համար"</string>
+    <string name="payphone" msgid="5743050584468748607">"Հանրային հեռախոս"</string>
+    <string name="confCall" msgid="3181961445236675173">"Կոնֆերանս զանգ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Զանգն ընդհատվեց"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Բարձրախոս"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Հեռախոսի ականջակալ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Լարային ականջակալ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Ուղարկե՞լ հետևյալ ձայներանգները:\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Ձայներանգների ուղարկում\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Ուղարկել"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Այո"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ոչ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Փոխարինել կոպիտ գրանշանը"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Կոնֆերանս զանգ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Ձայնային փոստի համարը"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Համարարկում"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Վերահամարարկում"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Կոնֆերանս զանգ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Մուտքային զանգ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Մուտքային աշխատանքային զանգ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Զանգն ավարտվեց"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Սպասում"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Անջատում"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Զանգը միացված է"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Իմ համարը՝ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Տեսակապը միանում է"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Տեսազանգ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Տեսակապի հայցում"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Հնարավոր չէ միացնել տեսազանգը"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Տեսազանգի հարցումը մերժվել է"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Հետադարձ զանգի համարը՝\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Արտակարգ իրավիճակների հետադարձ զանգի համարը՝\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Համարարկում է"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Բաց թողնված զանգ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Բաց թողնված զանգեր"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> բաց թողնված զանգ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Բաց թողնված զանգ <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>-ից"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Ընթացիկ զանգ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ընթացիկ աշխատանքային զանգ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ընթացիկ Wi-Fi զանգ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ընթացիկ աշխատանքային Wi-Fi զանգ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Սպասում"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Մուտքային զանգ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Մուտքային աշխատանքային զանգ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Մուտքային Wi-Fi զանգ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Մուտքային աշխատանքային Wi-Fi զանգ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Մուտքային տեսազանգ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Մուտքային տեսազանգի հայցում"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Նոր ձայնային հաղորդագրություն"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Նոր ձայնային հաղորդագրություն (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Զանգել <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> համարին"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Ձայնային փոստի համարն անհայտ է"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ծառայություն չկա"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Ընտրված ցանցը (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) անհասանելի է"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Պատասխանել"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Անջատել"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Տեսազանգ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Ձայնային"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Ընդունել"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Փակել"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Հետ զանգել"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Հաղորդագրություն"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Զանգ կատարելու համար նախ անջատեք Ինքնաթիռային ռեժիմը:"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ցանցում գրանցված չէ:"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Բջջային ցանցն անհասանելի է:"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Զանգ կատարելու համար մուտքագրեք ճիշտ համար:"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Հնարավոր չէ զանգել:"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Մեկնարկում է MMI հաջորդականությունը…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Ծառայությունը չի աջակցվում:"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Հնարավոր չէ փոխարկել զանգերը:"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Հնարավոր չէ առանձնացնել զանգը:"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Հնարավոր չէ փոխանցել:"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Հնարավոր չէ կոնֆերանս զանգ կատարել:"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Հնարավոր չէ մերժել զանգը:"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Հնարավոր չէ անջատել զանգ(եր)ը:"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP զանգ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Արտակարգ իրավիճակի զանգ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ռադիոն միացվում է…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ծառայությունը մատչելի չէ: Փորձը կրկնվում է…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Հնարավոր չէ զանգել: <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> համարը արտակարգ իրավիճակի համար չէ:"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Հնարավոր չէ զանգել: Հավաքեք արտակարգ իրավիճակի որևէ համար:"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Օգտագործել ստեղնաշարը համար հավաքելու համար"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Հետաձգել զանգը"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Վերսկսել զանգը"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Ավարտել զանգը"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Թվաշար"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Անջատել ձայնը"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Ավելացնել զանգ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Միացնել զանգերը"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Փոխանակել"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Կառավարել զանգերը"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Կառավարել կոնֆերանս զանգը"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Կոնֆերանս զանգ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Կառավարել"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Ձայնային"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Տեսազանգ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Փոխարկել ձայնային կանչի"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Փոխել տեսախցիկը"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Դադարեցնել տեսազանգը"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Այլ ընտրանքներ"</string>
+    <string name="player_started" msgid="3478865572468310331">"Նվագարկիչը մեկնարկել է"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Նվագարկիչը դադարեցվել է"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Տեսախցիկը պատրաստ չէ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Տեսախցիկը պատրաստ է"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Զանգի աշխատաշրջանի անհայտ իրադարձություն"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Ծառայություն"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Կարգավորում"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Կարգավորված չէ&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Զանգերի այլ կարգավորումներ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"կոնտակտի լուսանկարը"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"անցնել անձնականի"</string>
+    <string name="selectContact" msgid="92191462970821951">"ընտրել կոնտակտ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Գրեք ձեր սեփականը…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Չեղարկել"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Ուղարկել"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Պատասխանել"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Ուղարկել SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Մերժել"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Պատասխանել տեսազանգով"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Պատասխանել ձայնային զանգով"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Ընդունել տեսազանգի հարցումը"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Մերժել տեսազանգի հարցումը"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Ընդունել տեսափոխանցման հարցումը"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Մերժել տեսափոխանցման հարցումը"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Ընդունել տեսազանգ ստանալու հարցումը"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Մերժել տեսազանգ ստանալու հարցումը"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Սահեցրեք վերև` <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> գործառույթի համար:"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Սահեցրեք ձախ` <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> գործառույթի համար:"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Սահեցրեք աջ` <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> գործառույթի համար:"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Սահեցրեք ցած՝ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> գործառույթի համար:"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Թրթռոց"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Թրթռոց"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ձայն"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Կանխադրված ձայնը (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Հեռախոսի զանգերանգ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Թրթռալ զանգի ժամանակ"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ձայներանգ և թրթռոց"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Կառավարել կոնֆերանս զանգը"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Արտակարգ իրավիճակի համար"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> վայրկյան</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> վայրկյան</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> րոպե</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> րոպե</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Պրոֆիլի լուսանկար"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Տեսախցիկն անջատված"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-ի միջոցով"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Գրառումն ուղարկվեց"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Վերջին հաղորդագրությունները"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Բիզնես տեղեկատվություն"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> մղոն հեռու"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> կմ հեռու"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Բացվում է վաղը ժամը <xliff:g id="OPEN_TIME">%s</xliff:g>-ին"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Բացվում է այսօր ժամը <xliff:g id="OPEN_TIME">%s</xliff:g>-ին"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Փակվում է ժամը <xliff:g id="CLOSE_TIME">%s</xliff:g>-ին"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Փակվել է այսօր ժամը <xliff:g id="CLOSE_TIME">%s</xliff:g>-ին"</string>
+    <string name="open_now" msgid="4615706338669555999">"Հիմա բաց է"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Հիմա փակ է"</string>
+</resources>
diff --git a/InCallUI/res/values-in/strings.xml b/InCallUI/res/values-in/strings.xml
new file mode 100644
index 0000000..020789d
--- /dev/null
+++ b/InCallUI/res/values-in/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telepon"</string>
+    <string name="onHold" msgid="527593602772521700">"Ditahan"</string>
+    <string name="unknown" msgid="3646075119047488748">"Tidak dikenal"</string>
+    <string name="private_num" msgid="6081418498487514686">"Nomor pribadi"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telepon Umum"</string>
+    <string name="confCall" msgid="3181961445236675173">"Telewicara"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Panggilan terputus"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Pengeras suara"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Earpiece handset"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Headset berkabel"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Kirim nada berikut?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Mengirim nada\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Kirim"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ya"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Tidak"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Ganti karakter acak dengan"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Telewicara <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Nomor pesan suara"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Memanggil"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Memanggil ulang"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Telewicara"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Panggilan masuk"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Panggilan masuk di telepon kerja"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Panggilan diakhiri"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Ditahan"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Menutup panggilan"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Sedang dalam panggilan"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Nomor saya <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Menyambungkan video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video call"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Meminta video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Tidak dapat menyambungkan video call"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Permintaan video ditolak"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Nomor panggilan balik Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Nomor panggilan balik darurat Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Memanggil"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Panggilan tak terjawab"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Panggilan tak terjawab"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan tak terjawab"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Panggilan tak terjawab dari <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Panggilan yang berlangsung"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Panggilan telepon kerja yang sedang berlangsung"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Panggilan Wi-Fi keluar"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Panggilan Wi-Fi kerja yang sedang berlangsung"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Ditahan"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Panggilan masuk"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Panggilan masuk di telepon kerja"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Panggilan Wi-Fi masuk"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Panggilan Wi-Fi masuk di telepon kerja"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Video call masuk"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Permintaan video masuk"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Pesan suara baru"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Pesan suara baru (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Telepon <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nomor pesan suara tidak dikenal"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Tidak ada layanan"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Jaringan yang dipilih (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) tidak tersedia"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Jawab"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Akhiri"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Suara"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Terima"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Tutup"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Telepon balik"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Pesan"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Untuk melakukan panggilan, terlebih dahulu nonaktifkan mode Pesawat."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tidak terdaftar pada jaringan."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Jaringan seluler tidak tersedia."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Untuk melakukan panggilan telepon, masukkan nomor yang valid."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Tidak dapat menelepon."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Memulai urutan MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Layanan tidak didukung."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Tidak dapat beralih panggilan."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Tidak dapat memisahkan panggilan."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Tidak dapat mentransfer."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Tidak dapat melakukan telewicara."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Tidak dapat menolak panggilan."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Tidak dapat melepas panggilan."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Panggilan SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Panggilan darurat"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Menghidupkan radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Tidak ada layanan. Mencoba lagi…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Tidak dapat menelepon. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nomor darurat."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Tidak dapat menelepon. Panggil nomor darurat."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Gunakan keyboard untuk memanggil"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Tahan Panggilan"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Mulai Kembali Panggilan"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Akhiri Panggilan"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Papan tombol"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Bisukan"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Tambahkan panggilan"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Gabungkan panggilan"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Tukar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Kelola panggilan"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Kelola telewicara"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferensi telepon"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Kelola"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ubah ke panggilan suara"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Beralih kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Jeda video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Opsi lainnya"</string>
+    <string name="player_started" msgid="3478865572468310331">"Pemutar Dimulai"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Pemutar Dihentikan"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera tidak siap"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera siap"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Sesi panggilan tidak dikenal"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Layanan"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Siapkan"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Tidak disetel&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Setelan panggilan lainnya"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Memanggil via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto kontak"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"aktifkan pribadi"</string>
+    <string name="selectContact" msgid="92191462970821951">"pilih kontak"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Tulis respons Anda sendiri…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Batal"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Kirim"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Jawab"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Kirim SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Tolak"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Jawab sebagai video call"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Jawab sebagai panggilan audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Terima permintaan video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Tolak permintaan video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Terima permintaan transmisi video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Tolak permintaan transmisi video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Terima permintaan menerima video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Tolak permintaan menerima video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Geser ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Geser ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Geser ke kanan untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Geser ke bawah untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Getar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Getar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Suara"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Suara default (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Nada dering ponsel"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Bergetar saat berdering"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Nada dering &amp; Getar"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Kelola telewicara"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Nomor darurat"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> detik</item>
+      <item quantity="one">1 detik</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> menit</item>
+      <item quantity="one">1 menit</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
+      <item quantity="one">1 jam</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto profil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera tidak aktif"</string>
+    <string name="child_number" msgid="4469090994612105532">"melalui <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Catatan telah dikirim"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Pesan terbaru"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Info bisnis"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Buka pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Hari ini buka pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Tutup pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Hari ini tutup pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Buka sekarang"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Sekarang tutup"</string>
+</resources>
diff --git a/InCallUI/res/values-is-rIS/strings.xml b/InCallUI/res/values-is-rIS/strings.xml
new file mode 100644
index 0000000..362250a
--- /dev/null
+++ b/InCallUI/res/values-is-rIS/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Sími"</string>
+    <string name="onHold" msgid="527593602772521700">"Í bið"</string>
+    <string name="unknown" msgid="3646075119047488748">"Óþekkt"</string>
+    <string name="private_num" msgid="6081418498487514686">"Óþekkt númer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Símasjálfsali"</string>
+    <string name="confCall" msgid="3181961445236675173">"Símafundur"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Símtali slitið"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Hátalari"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Símahátalari"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Höfuðtól með snúru"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Senda eftirfarandi tóna?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sendir tóna\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Senda"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Já"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nei"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Skipta algildisstaf út fyrir"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Símafundur <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Talhólfsnúmer"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Hringir"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Hringir aftur"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Símafundur"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Móttekið símtal"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Vinnusímtal berst"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Lagt á"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Í bið"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Leggur"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Í símtali"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Númerið mitt er <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Tengir myndskeið"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Myndsímtal"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Biður um myndskeið"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Ekki tókst að tengja myndsímtal"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Myndsímtalsbeiðni hafnað"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Svarhringingarnúmer þitt\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Svarhringingarnúmer þitt í neyðartilvikum\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Hringir"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Ósvarað símtal"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Ósvöruð símtöl"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ósvöruð símtöl"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Ósvarað símtal frá <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Samtal í gangi"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Vinnusímtal í gangi"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Wi-Fi símtal stendur yfir"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Vinnusímtal í gangi um Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Í bið"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Móttekið símtal"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Vinnusímtal berst"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Wi-Fi símtal berst"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Vinnusímtal berst um Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Myndsímtal berst"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Myndbeiðni berst"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ný skilaboð í talhólfinu"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Ný skilaboð í talhólfinu (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Hringja í <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Talhólfsnúmer ekki þekkt"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ekkert símasamband"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Valið símkerfi (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ekki tiltækt"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Svara"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Leggja á"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Myndskeið"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Tal"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Samþykkja"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Hunsa"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Hringja til baka"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Skilaboð"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Til að hringja símtal þarftu fyrst að slökkva á flugstillingu."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ekki skráð á símkerfi."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Farsímakerfi ekki til staðar."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Sláðu inn gilt númer til að hringja símtal."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Ekki hægt að hringja."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Ræsir MMI-runu…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Þjónustan er ekki studd."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Ekki hægt að skipta milli símtala."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Ekki hægt að aðskilja símtal."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Ekki hægt að flytja."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Ekki hægt að halda símafund."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Ekki hægt að hafna símtali."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Ekki hægt að leggja á."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-símtal"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Neyðarsímtal"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Kveikir á loftneti…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ekkert samband. Reynir aftur…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Getur ekki hringt. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ekki neyðarsímanúmer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Ekki hægt að hringja. Hringdu í neyðarnúmer"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Notaðu lyklaborðið til að hringja"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Setja símtal í bið"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Halda símtali áfram"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Leggja á"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Símatakkaborð"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Þagga"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Bæta við símtali"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Sameina símtöl"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Skipta milli"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Stjórna símtölum"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Stjórna símafundi"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Símafundur"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Stjórna"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Hljóð"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Myndsímtal"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Breyta í símtal"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Skipta um myndavél"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Gera hlé á myndskeiði"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Fleiri valkostir"</string>
+    <string name="player_started" msgid="3478865572468310331">"Spilari ræstur"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Spilari stöðvaður"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Myndavél ekki tilbúin"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Myndavél tilbúin"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Óþekkt atvik símtalslotu"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Þjónusta"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Uppsetning"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ekki valið&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Aðrar símtalsstillingar"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Hringt í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Berst í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"mynd tengiliðar"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"tala í einrúmi"</string>
+    <string name="selectContact" msgid="92191462970821951">"velja tengilið"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Skrifaðu eigið svar…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Hætta við"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Senda"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Svara"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Senda SMS-skilaboð"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Hafna"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Svara sem myndsímtali"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Svara sem símtali"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Samþykkja beiðni um myndsímtal"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Hafna beiðni um myndsímtal"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Samþykkja beiðni um sendingu myndsímtals"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Hafna beiðni um sendingu myndsímtals"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Samþykkja beiðni um móttöku myndsímtals"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Hafna beiðni um móttöku myndsímtals"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Strjúktu upp til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Strjúktu til vinstri til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Strjúktu til hægri til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Strjúktu niður til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Titra"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Titra"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Hljóð"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sjálfgefið hljóð (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Hringitónn síma"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Titra við hringingu"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Hringitónn og titringur"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Stjórna símafundi"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Neyðarnúmer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekúnda</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekúndur</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> mínúta</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mínútur</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> klukkustund</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> klukkustundir</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Prófílmynd"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Slökkt á myndavél"</string>
+    <string name="child_number" msgid="4469090994612105532">"úr <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Glósa send"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nýleg skilaboð"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Fyrirtækjaupplýsingar"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"í <xliff:g id="DISTANCE">%.1f</xliff:g> míl. fjarlægð"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"í <xliff:g id="DISTANCE">%.1f</xliff:g> km fjarlægð"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Opið á morgun frá kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Opið í dag frá kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Lokað kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Var lokað í dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Opið núna"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Lokað núna"</string>
+</resources>
diff --git a/InCallUI/res/values-it/strings.xml b/InCallUI/res/values-it/strings.xml
new file mode 100644
index 0000000..498f952
--- /dev/null
+++ b/InCallUI/res/values-it/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefono"</string>
+    <string name="onHold" msgid="527593602772521700">"In attesa"</string>
+    <string name="unknown" msgid="3646075119047488748">"Sconosciuto"</string>
+    <string name="private_num" msgid="6081418498487514686">"Numero privato"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefono pubblico"</string>
+    <string name="confCall" msgid="3181961445236675173">"Audioconferenza"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Chiamata persa"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altoparlante"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricolare telefono"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auricolare con cavo"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Inviare i numeri successivi?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Invio toni\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Invia"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sì"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"No"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Sostituisci carattere jolly con"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Audioconferenza: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numero segreteria"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Chiamata in corso"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ricomposizione"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Audioconferenza"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Chiamata in arrivo"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Chiamata lavoro in arrivo"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Chiamata terminata"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"In attesa"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"In fase di chiusura"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Chiamata in corso"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Il mio numero è: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Collegamento video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videochiamata"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Richiesta video in corso"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Impossibile effettuare una videochiamata"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Richiesta video rifiutata"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Numero da richiamare:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Numero da richiamare in caso di emergenza:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Composizione in corso"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Chiamata senza risposta"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Chiamate senza risposta"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chiamate senza risposta"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Chiamata senza risposta da <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Chiamata in corso"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Chiamata di lavoro in corso"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Chiamata Wi-Fi in corso"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Chiamata di lavoro tramite Wi-Fi in corso"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"In attesa"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Chiamata in arrivo"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Chiamata di lavoro in arrivo"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Chiamata Wi-Fi in arrivo"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Chiamata di lavoro in arrivo tramite Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videochiamata in arrivo"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Richiesta video in arrivo"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nuovo messaggio vocale"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nuovo messaggio vocale (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Componi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Numero segreteria sconosciuto"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nessun servizio"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Rete selezionata (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponibile"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Rispondi"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Riaggancia"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voce"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accetta"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignora"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Richiama"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Messaggio"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Per fare una chiamata, disattiva la modalità aereo."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non registrato sulla rete."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rete dati non disponibile."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Per fare una chiamata, inserisci un numero valido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Impossibile chiamare."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Avvio sequenza MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Servizio non supportato."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Impossibile cambiare chiamata."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Impossibile separare la chiamata."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Impossibile trasferire."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Impossibile fare una chiamata in conferenza."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Impossibile rifiutare la chiamata."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Impossibile riagganciare."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Chiamata SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Chiamata di emergenza"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Attivazione segnale cellulare..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nessun servizio. Nuovo tentativo…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Impossibile chiamare. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non è un numero di emergenza."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Impossibile chiamare. Componi un numero di emergenza."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Usa tastiera"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Metti in attesa la chiamata"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Riprendi chiamata"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Termina chiamata"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tastierino"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Disattiva audio"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Aggiungi chiamata"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Unisci chiamate"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Scambia"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gestisci chiamate"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gestisci audioconferenza"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Audioconferenza"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gestisci"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videochiam"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passa a chiamata vocale"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambia fotocamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Metti in pausa video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Altre opzioni"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player avviato"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player interrotto"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"La fotocamera non è pronta"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Fotocamera pronta"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento sessione chiamata sconosciuto"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Servizio"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configura"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Non impostato&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Altre impostazioni di chiamata"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Chiamate tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"In arrivo tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto contatto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"Privato"</string>
+    <string name="selectContact" msgid="92191462970821951">"seleziona contatto"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Scrivi risposta personale..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Annulla"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Invia"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Rispondi"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Invia SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rifiuta"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Rispondi con videochiamata"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Rispondi con chiamata audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Accetta richiesta video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Rifiuta richiesta video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Accetta richiesta di trasmissione video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Rifiuta richiesta di trasmissione video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Accetta richiesta di ricevimento video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Rifiuta richiesta di ricevimento video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Scorri verso l\'alto per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Scorri verso sinistra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Scorri verso destra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Scorri verso il basso per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrazione"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrazione"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Suono"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Suono predefinito (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Suoneria telefono"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrazione quando squilla"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Suoneria e vibrazione"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gestisci audioconferenza"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Numero di emergenza"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> secondi</item>
+      <item quantity="one">1 secondo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuti</item>
+      <item quantity="one">1 minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ore</item>
+      <item quantity="one">1 ora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto del profilo"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Fotocamera disattivata"</string>
+    <string name="child_number" msgid="4469090994612105532">"tramite <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota inviata"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Messaggi recenti"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informazioni sull\'attività"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Distante <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Distante <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Apre domani alle ore <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Apre oggi alle ore <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Chiude alle ore <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Ha chiuso oggi alle ore <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Aperto ora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Ora chiuso"</string>
+</resources>
diff --git a/InCallUI/res/values-iw/strings.xml b/InCallUI/res/values-iw/strings.xml
new file mode 100644
index 0000000..02c9434
--- /dev/null
+++ b/InCallUI/res/values-iw/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"טלפון"</string>
+    <string name="onHold" msgid="527593602772521700">"בהמתנה"</string>
+    <string name="unknown" msgid="3646075119047488748">"לא ידוע"</string>
+    <string name="private_num" msgid="6081418498487514686">"מספר פרטי"</string>
+    <string name="payphone" msgid="5743050584468748607">"טלפון ציבורי"</string>
+    <string name="confCall" msgid="3181961445236675173">"שיחת ועידה"</string>
+    <string name="call_lost" msgid="8208184291640961172">"השיחה נותקה"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"רמקול"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"אוזנייה"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"אוזניות עם חיבור חוטי"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"האם לשלוח את הצלילים הבאים?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"שולח צלילים\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"שלח"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"כן"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"לא"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"החלף את התו הכללי ב"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"שיחת ועידה <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"המספר של הדואר הקולי"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"מחייג"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"מחייג שוב"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"שיחת ועידה"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"שיחה נכנסת"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"שיחת עבודה נכנסת"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"השיחה הסתיימה"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"בהמתנה"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"מנתק"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"בשיחה"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"המספר שלי הוא <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"מחבר וידאו"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"שיחת וידאו"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"מבקש וידאו"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"לא ניתן לחבר שיחת וידאו"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"בקשת וידאו נדחתה"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"המספר שלך להתקשרות חזרה\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"המספר שלך להתקשרות חזרה במצב חירום\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"מחייג"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"שיחה שלא נענתה"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"שיחות שלא נענו"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> שיחות שלא נענו"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"שיחה שלא נענתה מאת <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"שיחה פעילה"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"שיחת עבודה פעילה"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"‏שיחת Wi-Fi פעילה"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"‏שיחת עבודה פעילה ברשת WiFi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"בהמתנה"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"שיחה נכנסת"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"שיחת עבודה נכנסת"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"‏שיחת Wi-Fi נכנסת"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"‏שיחת עבודה נכנסת ברשת WiFi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"שיחת וידאו נכנסת"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"בקשת וידאו נכנסת"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"דואר קולי חדש"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"דואר קולי חדש (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"‏חייג ‎<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>‎"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"המספר של הדואר הקולי אינו ידוע"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"אין שירות"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"הרשת שנבחרה (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) לא זמינה"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ענה"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"נתק"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"וידאו"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"קול"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"אשר"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"בטל"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"התקשר חזרה"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"שלח הודעה"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"כדי להתקשר, כבה תחילה את מצב טיסה."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"לא רשום ברשת."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"רשת סלולרית אינה זמינה."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"כדי להתקשר, הזן מספר טלפון חוקי."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"לא ניתן להתקשר."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"‏מתחיל רצף MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"שירות לא נתמך."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"לא ניתן לעבור בין שיחות."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"לא ניתן להפריד שיחה."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"לא ניתן להעביר."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"לא ניתן לבצע שיחת ועידה."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"לא ניתן לדחות שיחה."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"לא ניתן להתקשר."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"‏שיחת SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"שיחת חירום"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"מפעיל את הרדיו…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"אין שירות. מנסה שוב..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"לא ניתן להתקשר. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> אינו מספר חירום."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"לא ניתן להתקשר. חייג למספר חירום."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"השתמש במקלדת כדי לחייג"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"החזק שיחה"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"המשך בשיחה"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"סיים שיחה"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"לוח חיוג"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"השתק"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"הוסף שיחה"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"מזג שיחות"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"החלף"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"נהל שיחות"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"נהל שיחת ועידה"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"שיחת ועידה"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"ניהול"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"אודיו"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"שיחת וידאו"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"שנה לשיחה קולית"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"החלף מצלמה"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"השהה וידאו"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"אפשרויות נוספות"</string>
+    <string name="player_started" msgid="3478865572468310331">"הנגן הופעל"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"הנגן הפסיק"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"המצלמה לא מוכנה"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"המצלמה מוכנה"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"אירוע הפעלת שיחה לא ידוע"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"שירות"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"הגדרות"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;לא הוגדר&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"הגדרות אחרות של שיחה"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"שיחה נכנסת באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"תמונה של איש קשר"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"עבור לשיחה פרטית"</string>
+    <string name="selectContact" msgid="92191462970821951">"בחר איש קשר"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"כתוב תגובה משלך..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"בטל"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"שלח"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ענה"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"‏שלח SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"דחה"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ענה כשיחת וידאו"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ענה כשיחת אודיו"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"קבל בקשת וידאו"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"דחה בקשת וידאו"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"אשר את הבקשה לשידור וידאו"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"דחה את הבקשה לשידור וידאו"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"אשר את הבקשה לקבלת וידאו"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"דחה את הבקשה לקבלת וידאו"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"הסט למעלה כדי <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"הסט שמאלה כדי <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"הסט ימינה כדי <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"הסט למטה כדי <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"רטט"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"רטט"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"צליל"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"צליל ברירת מחדל (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"רינגטון של טלפון"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"רטט בעת צלצול"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"רינגטון ורטט"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"נהל שיחת ועידה"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"מספר חירום"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> שניות</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> שניות</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> שניות</item>
+      <item quantity="one">שנייה אחת</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> דקות</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> דקות</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> דקות</item>
+      <item quantity="one">דקה אחת</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> שעות</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> שעות</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> שעות</item>
+      <item quantity="one">שעה אחת</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"תמונת פרופיל"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"המצלמה כבויה"</string>
+    <string name="child_number" msgid="4469090994612105532">"באמצעות <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ההערה נשלחה"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"הודעות אחרונות"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"פרטי עסק"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"במרחק <xliff:g id="DISTANCE">%.1f</xliff:g> מייל"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"במרחק <xliff:g id="DISTANCE">%.1f</xliff:g> ק\"מ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"ייפתח מחר ב-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"נפתח היום ב-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"נסגר ב-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"נסגר היום ב-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"פתוח עכשיו"</string>
+    <string name="closed_now" msgid="2635314668145282080">"סגור עכשיו"</string>
+</resources>
diff --git a/InCallUI/res/values-ja/strings.xml b/InCallUI/res/values-ja/strings.xml
new file mode 100644
index 0000000..233d244
--- /dev/null
+++ b/InCallUI/res/values-ja/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"電話"</string>
+    <string name="onHold" msgid="527593602772521700">"保留中"</string>
+    <string name="unknown" msgid="3646075119047488748">"不明"</string>
+    <string name="private_num" msgid="6081418498487514686">"非通知"</string>
+    <string name="payphone" msgid="5743050584468748607">"公衆電話"</string>
+    <string name="confCall" msgid="3181961445236675173">"グループ通話"</string>
+    <string name="call_lost" msgid="8208184291640961172">"通話が遮断されました"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"スピーカー"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"携帯端末のイヤホン"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"有線ヘッドセット"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"次の番号を送信しますか？\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"番号を送信中\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"送信"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"はい"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"いいえ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ワイルド文字を置換:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"グループ通話 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ボイスメールの番号"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"発信中"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"リダイヤル中"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"グループ通話"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"着信中"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"仕事の通話が着信中"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"通話終了"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"保留中"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"通話終了"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"通話中"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"この電話の番号: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ビデオハングアウトに接続中"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ビデオハングアウト"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ビデオハングアウトをリクエスト中"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ビデオハングアウトの接続エラー"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ビデオハングアウトのリクエスト不承認"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"コールバック先\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"緊急通報コールバック先\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"発信中"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"不在着信"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"不在着信"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"不在着信 <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 件"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> さんからの不在着信"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"通話中"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"仕事の通話中"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Wi-Fi 通話中"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"仕事の Wi-Fi 通話中"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"保留中"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"着信中"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"仕事の通話が着信中"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Wi-Fi 通話が着信中"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"仕事の Wi-Fi 通話が着信中"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ビデオハングアウトが着信中"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ビデオハングアウト リクエストが着信中"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"新着のボイスメール"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"新着のボイスメール（<xliff:g id="COUNT">%d</xliff:g> 件）"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> に発信"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ボイスメールの番号が不明です"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"通信サービスはありません"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"選択したネットワーク（<xliff:g id="OPERATOR_NAME">%s</xliff:g>）が利用できません"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"電話に出る"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"通話終了"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ビデオ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"音声"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"受ける"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"拒否する"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"コールバック"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"メッセージ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"機内モードを OFF にしてから発信してください。"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ご加入の通信サービスがありません。"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"モバイル ネットワークが利用できません。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"発信するには、有効な番号を入力してください。"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"発信できません。"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI シーケンスを開始しています..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"サービスはサポートされていません。"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"通話を切り替えられません。"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"通話を分割できません。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"転送できません。"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"グループ通話できません。"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"着信を拒否できません。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"通話を解放できません。"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP 通話"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"緊急通報"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"無線通信を ON にしています..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"通信サービスはありません。もう一度お試しください…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"発信できません。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> は緊急通報番号ではありません。"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"発信できません。緊急通報番号におかけください。"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"キーボードで番号を入力してください"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"通話を保留"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"通話を再開"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"通話を終了"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ダイヤルパッド"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ミュート"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"通話を追加"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"グループ通話"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"切り替え"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"通話を管理"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"グループ通話オプション"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"グループ通話"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"管理"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"音声"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ビデオ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"音声通話に変更"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"カメラを切り替え"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ビデオハングアウトを一時停止"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"その他のオプション"</string>
+    <string name="player_started" msgid="3478865572468310331">"プレーヤーを開始しました"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"プレーヤーを停止しました"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"カメラが準備できていません"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"カメラが準備できました"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"不明な通話セッション イベントです"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"サービス"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"セットアップ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;未設定&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"その他の通話設定"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で発信中"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で着信中"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"連絡先の写真"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"個別通話に切り替え"</string>
+    <string name="selectContact" msgid="92191462970821951">"連絡先を選択"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"カスタム返信を作成..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"キャンセル"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"送信"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"電話に出る"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS を送信する"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"拒否"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ビデオハングアウトで電話に出る"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"音声通話で電話に出る"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ビデオハングアウト リクエストを承認する"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ビデオハングアウト リクエストを拒否する"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ビデオハングアウト送信リクエストを承認する"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ビデオハングアウト送信リクエストを拒否する"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ビデオハングアウト受信リクエストを承認する"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ビデオハングアウト受信リクエストを拒否する"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"上にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"左にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"右にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"下にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"バイブレーション"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"バイブレーション"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"着信音"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"デフォルトの通知音（<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>）"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"着信音"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"着信時のバイブレーション"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"着信音とバイブレーション"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"グループ通話オプション"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"緊急通報番号"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>秒</item>
+      <item quantity="one">1秒</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>分</item>
+      <item quantity="one">1分</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>時間</item>
+      <item quantity="one">1時間</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"プロフィール写真"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"カメラ OFF"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> に着信"</string>
+    <string name="note_sent" msgid="7623014827902758398">"メモを送信しました"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"最近のメッセージ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ビジネス情報"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> マイル内"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km 内"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>、<xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>～<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>、<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"明日 <xliff:g id="OPEN_TIME">%s</xliff:g>に営業開始"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"本日 <xliff:g id="OPEN_TIME">%s</xliff:g>に営業開始"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>に営業終了"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"本日 <xliff:g id="CLOSE_TIME">%s</xliff:g>に営業終了"</string>
+    <string name="open_now" msgid="4615706338669555999">"現在営業中"</string>
+    <string name="closed_now" msgid="2635314668145282080">"営業終了"</string>
+</resources>
diff --git a/InCallUI/res/values-ka-rGE/strings.xml b/InCallUI/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..93c0201
--- /dev/null
+++ b/InCallUI/res/values-ka-rGE/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ტელეფონი"</string>
+    <string name="onHold" msgid="527593602772521700">"მოცდის რეჟიმში"</string>
+    <string name="unknown" msgid="3646075119047488748">"უცნობი"</string>
+    <string name="private_num" msgid="6081418498487514686">"დაფარული ნომერი"</string>
+    <string name="payphone" msgid="5743050584468748607">"ტელეფონ-ავტომატი"</string>
+    <string name="confCall" msgid="3181961445236675173">"საკონფერენციო ზარი"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ზარი შეწყდა"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"დინამიკი"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ყურსაცვამის საყურისი"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"სადენიანი ყურსაცვამი"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"გსურთ შემდეგი ტონების გაგზავნა?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ტონების გაგზავნა\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"გაგზავნა"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"დიახ"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"არა"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ჩანაცვლების სიმბოლო ჩანაცვლდეს შემდეგით:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"საკონფერენციო ზარი: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ხმოვანი ფოსტის ნომერი"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"მიმდინარეობს აკრეფა"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"იკრიფება ხელახლა"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"საკონფერენციო ზარი"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"შემომავალი ზარი"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"შემომავალი ზარი (სამსახური)"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ზარი დასრულდა"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"მოცდის რეჟიმში"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"მიმდინარეობს გათიშვა"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"საუბრის რეჟიმში"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ჩემი ნომერია <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"მიმდინარეობს ვიდეოს დაკავშირება"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ვიდეო ზარი"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"მიმდინარეობს ვიდეოს მოთხოვნა"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ვიდეო ზარის დაკავშირება ვერ მოხერხდა"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ვიდეოს მოთხოვნა უარყოფილია"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"თქვენი ნომერი გადმორეკვისთვის\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"თქვენი ნომერი გადაუდებელი გადმორეკვისთვის\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"მიმდინარეობს აკრეფა"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"გამოტოვებული ზარი"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"გამოტოვებული ზარები"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> გამოტოვებული ზარი"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"გამოტოვებული ზარი <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>-ისგან"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"მიმდინარე ზარი"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"მიმდინარე ზარი (სამსახური)"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"მიმდინარე Wi-Fi ზარი"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"მიმდინარე Wi-Fi ზარი (სამსახური)"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"მოცდის რეჟიმში"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"შემომავალი ზარი"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"შემომავალი ზარი (სამსახური)"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"შემომავალი Wi-Fi ზარი"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"შემომავალი Wi-Fi ზარი (სამსახური)"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"შემომავალი ვიდეო ზარი"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"შემომავალი ვიდეოს მოთხოვნა"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"ახალი ხმოვანი შეტყობინება"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"ახალი ხმოვანი შეტყობინება (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>-ზე დარეკვა"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ხმოვანი ფოსტის ნომერი უცნობია"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"სერვისი არ არის"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"არჩეული ქსელი (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) მიუწვდომელია"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"პასუხი"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"გათიშვა"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ვიდეო"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ხმოვანი"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"მიღება"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"დახურვა"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"გადარეკვა"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"შეტყობინება"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ზარის განსახორციელებლად, ჯერ გამორთეთ თვითმფრინავის რეჟიმი."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"არ არის რეგისტრირებული ქსელში."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"ფიჭური ქსელი მიუწვდომელია."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ზარის განსახორციელებლად, შეიყვანეთ სწორი ნომერი."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"დარეკვა ვერ ხერხდება."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI თანმიმდევრობის დაწყება…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"სერვისი არ არის მხარდაჭერილი."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ზარების გადართვა ვერ ხერხდება."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ზარის განცალკევება ვერ ხერხდება."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"გადამისამართება ვერ ხერხდება."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"საკონფერენციო ზარის განხორციელება ვერ ხერხდება."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ზარის უარყოფა ვერ ხერხდება."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ზარ(ებ)ის გათიშვა ვერ ხერხდება."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP ზარი"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"გადაუდებელი ზარი"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"მიმდინარეობს რადიოს ჩართვა…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"სერვისი არ არის. მიმდინარეობს ხელახლა ცდა…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"დარეკვა ვერ ხერხდება. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> არ არის გადაუდებელი დახმარების ნომერი."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"დარეკვა ვერ ხერხდება. აკრიფეთ გადაუდებელი დახმარების ნომერი."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ნომრის ასაკრეფად გამოიყენეთ კლავიატურა"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"მოცდის რეჟიმზე გადაყვანა"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ზარის განახლება"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ზარის დასრულება"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ციფერბლატი"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"დადუმება"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ზარის დამატება"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ზარების გაერთიანება"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ჩანაცვლება"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ზარების მართვა"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"საკონფერენციო ზარის მართვა"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"საკონფერენციო ზარი"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"მართვა"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"აუდიო"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ვიდეო ზარი"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ხმოვან ზარზე გადართვა"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"კამერის გადართვა"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ვიდეოს დაპაუზება"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"სხვა ვარიანტები"</string>
+    <string name="player_started" msgid="3478865572468310331">"დამკვრელი ჩაირთო"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"დამკვრელი გამოირთო"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"კამერა არ არის მზად"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"კამერა მზადაა"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ზარის სესიის უცნობი მოვლენა"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"სერვისი"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"დაყენება"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;არ არის დაყენებული&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ზარის სხვა პარამეტრები"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"მიმდინარეობს დარეკვა <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ის მეშვეობით"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"შემომავალი ზარი <xliff:g id="PROVIDER_NAME">%s</xliff:g>-დან"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"კონტაქტის ფოტო"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"პირადი რეჟიმი"</string>
+    <string name="selectContact" msgid="92191462970821951">"კონტაქტის არჩევა"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"საკუთარის შექმნა..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"გაუქმება"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"გაგზავნა"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"პასუხი"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS-ის გაგზავნა"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"უარყოფა"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"პასუხი ვიდეო ზარის სახით"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"პასუხი ხმოვანი ზარის სახით"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ვიდეოს მოთხოვნის მიღება"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ვიდეოს მოთხოვნის უარყოფა"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ვიდეოს გადაცემის მოთხოვნის მიღება"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ვიდეოს გადაცემის მოთხოვნის უარყოფა"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ვიდეოს მიღების მოთხოვნაზე დათანხმება"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ვიდეოს მიღების მოთხოვნის უარყოფა"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"გაასრიალეთ ზემოთ, რათა შესრულდეს <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"გაასრიალეთ მარცხნივ, რათა შესრულდეს <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"გაასრიალეთ მარჯვნივ, რათა შესრულდეს <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"გაასრიალეთ ქვემოთ, რათა შესრულდეს <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ვიბრაცია"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ვიბრაცია"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ხმა"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ნაგულისხმები ხმა (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ტელეფონის ზარი"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ვიბრაცია დარეკვისას"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ზარის მელოდია და ვიბრაცია"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"საკონფერენციო ზარის მართვა"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"გადაუდებელი დახმარების ნომერი"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> წამი</item>
+      <item quantity="one">1 წამი</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> წუთი</item>
+      <item quantity="one">1 წუთი</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> საათი</item>
+      <item quantity="one">1 საათი</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"პროფილის ფოტო"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"კამერა გამორთულია"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-დან"</string>
+    <string name="note_sent" msgid="7623014827902758398">"შენიშვნა გაიგზავნა"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ბოლო შეტყობინებები"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ბიზნეს-ინფორმაცია"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> მილში"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> კმ-ში"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> — <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"იხსნება ხვალ <xliff:g id="OPEN_TIME">%s</xliff:g>-ზე"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"იხსნება დღეს <xliff:g id="OPEN_TIME">%s</xliff:g>-ზე"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"იკეტება <xliff:g id="CLOSE_TIME">%s</xliff:g>-ზე"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"დაიკეტა დღეს <xliff:g id="CLOSE_TIME">%s</xliff:g>-ზე"</string>
+    <string name="open_now" msgid="4615706338669555999">"ახლა ღიაა"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ახლა დაკეტილია"</string>
+</resources>
diff --git a/InCallUI/res/values-kk-rKZ/strings.xml b/InCallUI/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..4fd24d6
--- /dev/null
+++ b/InCallUI/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"Күтуде"</string>
+    <string name="unknown" msgid="3646075119047488748">"Белгісіз"</string>
+    <string name="private_num" msgid="6081418498487514686">"Жеке нөмір"</string>
+    <string name="payphone" msgid="5743050584468748607">"Автомат-телефон"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференциялық қоңырау"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Қоңырау үзілді"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Динамик"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Телефон құлаққабы"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Сымды құлақаспап жинағы"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Келесі әуендер жіберілсін бе?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Жіберу әуендері\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Жіберу"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Иә"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Жоқ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Қойылмалы таңбаны келесі таңбамен алмастыру"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"<xliff:g id="CONF_CALL_TIME">%s</xliff:g> конференциялық қоңырауы"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Дауыстық пошта нөмірі"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Терілуде"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Қайта терілуде"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференциялық қоңырау"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Кіріс қоңырау"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Кіріс жұмыс қоңырауы"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Қоңырау аяқталды"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Күтуде"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Қоңырау аяқталуда"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Қоңырауда"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mенің нөмірім — <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Бейне қосылуда"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Бейне қоңырау"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Бейне сұралуда"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Бейне қоңырауға қосылу мүмкін емес"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Бейне сұрауы қабылданбады"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Төтенше кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Терілуде"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Өткізіп алған қоңырау"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Өткізіп алған қоңыраулар"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> өткізіп алған қоңырау"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> қоңырауы өткізіп алынған"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Ағымдағы қоңырау"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ағымдағы жұмыс қоңырауы"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ағымдағы Wi-Fi қоңырауы"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ағымдағы Wi-Fi жұмыс қоңырауы"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Күтуде"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Кіріс қоңырау"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Кіріс жұмыс қоңырауы"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Кіріс Wi-Fi қоңырауы"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Кіріс Wi-Fi жұмыс қоңырауы"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Кіріс бейне қоңырау"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Кіріс бейне сұрау"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Жаңа дауыстық хабар"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Жаңа дауыстық хабар (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> нөмірін теру"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Дауыстық пошта нөмірі белгісіз"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Қызмет жоқ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Таңдалған (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) желісі қол жетімді емес"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Жауап"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Қоңырауды аяқтау"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Бейне"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Дауыс"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Қабылдау"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Қабылдамау"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Кері қоңырау шалу"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Хабар"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Қоңырау шалу үшін алдымен ұшақ режимін өшіріңіз."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Желіде тіркелмеген."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Ұялы желі қол жетімді емес."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Қоңырау шалу үшін жарамды нөмірді енгізіңіз."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Қоңырау шалу мүмкін емес."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI қатарын бастау…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Қызметке қолдау көрсетілмейді."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Қоңырауларды ауыстыру мүмкін емес."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Қоңырауды бөлу мүмкін емес."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Тасымалдау мүмкін емес."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Конференция мүмкін емес."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Қоңырауды қабылдамау мүмкін емес."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Қоңырау(лар)ды босату мүмкін емес."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP қоңырауы"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Төтенше қоңырау"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Радио қосылуда…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Қызмет жоқ. Әрекет қайталануда…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Қоңырау шалу мүмкін емес. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> төтенше нөмір емес."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Қоңырау шалу мүмкін емес. Төтенше нөмірді теріңіз."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Теру үшін пернетақтаны пайдалану"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Қоңырауды ұстап тұру"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Қоңырауды жалғастыру"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Қоңырауды аяқтау"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Теру тақтасы"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Дыбысты өшіру"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Қоңырау қосу"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Қоңырауларды біріктіру"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Алмастыру"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Қоңырауларды басқару"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Конференциялық қоңырауды басқару"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференциялық қоңырау"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Басқару"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Aудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Бейне қоңырау"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Дауыстық қоңырауға өзгерту"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камераны ауыстыру"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Бейнені кідірту"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Қосымша опциялар"</string>
+    <string name="player_started" msgid="3478865572468310331">"Ойнатқыш іске қосылды"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Ойнатқыш тоқтатылды"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камера дайын емес"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камера дайын"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Белгісіз қоңырау сеансы оқиғасы"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Қызмет"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Реттеу"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Орнатылмаған&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Басқа қоңырау параметрлері"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы қоңырау шалу"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"контакт фотосуреті"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"жеке қоңырауға ауысу"</string>
+    <string name="selectContact" msgid="92191462970821951">"контакт таңдау"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Өзіңіздікін жазыңыз..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Бас тарту"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Жіберу"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Жауап"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS жіберу"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Қабылдамау"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Бейне қоңырауға жауап беру"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Аудио қоңырауға жауап беру"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Бейне сұрауды қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Бейне сұрауды қабылдамау"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Бейне тасымалдау сұрауын қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Бейне тасымалдау сұрауын қабылдамау"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Бейне алу сұрауын қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Бейне алу сұрауын қабылдамау"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін жоғары сырғытыңыз."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін сол жаққа сырғытыңыз."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін оң жаққа сырғытыңыз."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін төмен сырғытыңыз."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Діріл"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Діріл"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Дыбыс"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Әдепкі дыбыс (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Телефонның қоңырау әуені"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Шылдырлағанда дірілдеу"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Қоңырау әуені және діріл"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Конференциялық қоңырауды басқару"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Төтенше нөмір"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="one">1 секунд</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минут</item>
+      <item quantity="one">1 минут</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сағат</item>
+      <item quantity="one">1 сағат</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Профиль фотосуреті"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камераны өшіру"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> арқылы"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Ескертпе жіберілді"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Жақындағы хабарлар"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Іскери ақпарат"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> миля қашықтықта"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> км қашықтықта"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Ертең <xliff:g id="OPEN_TIME">%s</xliff:g> уақытында ашылады"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Бүгін <xliff:g id="OPEN_TIME">%s</xliff:g> уақытында ашылады"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> уақытында жабылады"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Бүгін <xliff:g id="CLOSE_TIME">%s</xliff:g> уақытында жабық"</string>
+    <string name="open_now" msgid="4615706338669555999">"Қазір ашық"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Қазір жабық"</string>
+</resources>
diff --git a/InCallUI/res/values-km-rKH/strings.xml b/InCallUI/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..e074a06
--- /dev/null
+++ b/InCallUI/res/values-km-rKH/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ទូរស័ព្ទ"</string>
+    <string name="onHold" msgid="527593602772521700">"រង់ចាំ"</string>
+    <string name="unknown" msgid="3646075119047488748">"មិនស្គាល់"</string>
+    <string name="private_num" msgid="6081418498487514686">"លេខ​ឯកជន"</string>
+    <string name="payphone" msgid="5743050584468748607">"ទូរស័ព្ទសាធារណៈ"</string>
+    <string name="confCall" msgid="3181961445236675173">"ការហៅជាក្រុម"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ការហៅទូរស័ព្ទបានដាក់ចុះ"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ឧបករណ៍បំពងសម្លេង"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"អូប៉ាល័រសំឡេងទូរស័ព្ទ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"កាសមានខ្សែ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ប៊្លូធូស"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ផ្ញើសំឡេងដូចខាងក្រោមឬ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ផ្ញើ​សំឡេង \n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ផ្ញើ"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"បាទ/ចាស"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ទេ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ជំនួស​តួ​អក្សរ​ជំនួស​ដោយ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"ការហៅជាក្រុម <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"លេខ​សារ​ជា​សំឡេង"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"កំពុងហៅ"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ការចុចហៅឡើងវិញ"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"ការហៅជាក្រុម"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ការហៅចូល"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"កំពុងហៅចូលពីកន្លែងការងារ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"បាន​បញ្ចប់​ការ​ហៅ"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"រង់ចាំ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"បញ្ចប់​ការ​សន្ទនា"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"កំពុង​ហៅ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"លេខ​របស់​ខ្ញុំ​គឺ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ភ្ជាប់​វីដេអូ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ហៅជាវីដេអូ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ស្នើ​វីដេអូ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"មិនអាចភ្ជាប់ការហៅជាវីដេអូបានទេ"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"បានបដិសេធសំណើហៅជាវីដេអូ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"លេខហៅទៅវិញរបស់អ្នក\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"លេខហៅទៅវិញពេលអាសន្នរបស់អ្នក\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"កំពុង​ហៅ"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"ខកខាន​ទទួល"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"ខកខាន​ទទួល"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"ខកខានទទួល <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ដង"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"ខកខាន​ទទួល​ពី <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"កំពុង​បន្ត​ការ​ហៅ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ការហៅពីកន្លែងការងារកំពុងដំណើរការ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ការហៅតាម Wi-Fi កំពុងបន្ត"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ការហៅតាម Wi-Fi ពីកន្លែងការងារកំពុងដំណើរការ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"រង់ចាំ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ការហៅចូល"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"កំពុងហៅចូលពីកន្លែងការងារ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"មានការហៅចូលតាម Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"កំពុងហៅចូលពីកន្លែងការងារតាម Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ការ​ហៅចូលជា​វីដេអូ​"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"សំណើ​ការ​ហៅ​ជា​វីដេអូ​ចូល"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"សារ​ជា​សំឡេង​ថ្មី"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"សារ​ជា​សំឡេង​ថ្មី (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"ហៅ <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"លេខសារជាសំឡេងមិនស្គាល់"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"គ្មានសេវាទេ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"បណ្ដាញ​ដែល​បាន​ជ្រើស ( <xliff:g id="OPERATOR_NAME">%s</xliff:g> ) មិន​អាច​ប្រើ​បាន​ទេ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ឆ្លើយតប"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"បញ្ចប់​ការ​សន្ទនា"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"វីដេអូ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"សំឡេង"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ព្រម​ទទួល"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"បដិសេធ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ហៅ​ទៅ​វិញ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"សារ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ដើម្បីកំណត់ការហៅ សូមបិទរបៀបពេលជិះយន្តហោះជាមុនសិន"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"មិនបានចុះឈ្មោះនៅលើបណ្ដាញទេ"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"បណ្ដាញចល័តមិនអាចប្រើបានទេ"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ដើម្បីធ្វើការហៅ សូមបញ្ចូលលេខដែលត្រឹមត្រូវ"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"មិនអាចហៅបានទេ"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"កំពុងចាប់ផ្តើមលំដាប់ MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"សេវាកម្មមិនត្រូវបានគាំទ្រទេ"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"មិនអាចប្តូរការហៅបានទេ"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"មិនអាចបំបែកការហៅបានទេ"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"មិនអាចផ្ទេរបានទេ"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"មិនអាចធ្វើការហៅជាក្រុមបានទេ"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"មិនអាចបដិសេធការហៅបានទេ"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"មិនអាចធ្វើការហៅបានទេ"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"ការ​ហៅ SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"ការ​ហៅ​ពេល​អាសន្ន"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"កំពុងបើកវិទ្យុ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"គ្មានសេវាទេ សូមព្យាយាមម្តង…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"មិនអាចហៅបានទេ។ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> មិនមែនជាលេខអាសន្នទេ"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"មិនអាចហៅបានទេ សូមចុចហៅលេខអាសន្ន"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ប្រើ​ក្ដារ​ចុច ​ដើម្បី​ចុច​លេខ"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"រង់ចាំការហៅ"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"បន្តការហៅ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"បញ្ចប់ការហៅ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"បន្ទះ​លេខ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"បិទ"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"បន្ថែម​ការ​ហៅ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"បញ្ចូល​ការ​ហៅ​ចូល​គ្នា"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ប្ដូរ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"គ្រប់គ្រង​ការ​ហៅ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"គ្រប់គ្រងការហៅជាក្រុម"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"ការហៅជា​សន្និសិទ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"គ្រប់គ្រង"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"សំឡេង"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ហៅជាវីដេអូ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ប្ដូរ​ទៅ​ការ​ហៅ​ជា​សំឡេង"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ប្ដូរកាមេរ៉ា"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ផ្អាក​វីដេអូ"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ជម្រើសច្រើនទៀត"</string>
+    <string name="player_started" msgid="3478865572468310331">"អ្នកលេងបានចាប់ផ្តើម"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"អ្នកលេងបានឈប់"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"កាមេរ៉ាមិនទាន់ត្រៀមរួចរាល់ទេ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"កាមេរ៉ាត្រៀមរួចរាល់ហើយ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ព្រឹត្តិការណ៍វេននៃការហៅមិនស្គាល់"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"សេវាកម្ម"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ដំឡើង"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;មិន​បាន​កំណត់&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"​កំណត់​ការ​​ហៅ​ផ្សេងទៀត"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"ហៅតាមរយៈ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"ចូល​តាមរយៈ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"រូបថត​ទំនាក់ទំនង"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ចូលជាលក្ខណៈឯកជន"</string>
+    <string name="selectContact" msgid="92191462970821951">"ជ្រើសទំនាក់ទំនង"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"សរសេរដោយខ្លួនអ្នកផ្ទាល់..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"បោះបង់"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ផ្ញើ"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ឆ្លើយតប"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"ផ្ញើសារ SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"បដិសេធ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ឆ្លើយតប​ជា​ការ​ហៅ​ជា​​វីដេអូ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ឆ្លើយតប​ជា​ការ​ហៅ​ជា​សំឡេង"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ទទួលយក​សំណើ​វីដេអូ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ទទួលយក​សំណើ​វីដេអូ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ទទួលយកសំណើបញ្ជូនជាវីដេអូ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"បដិសេធសំណើបញ្ជូនជាវីដេអូ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ទទួលយកសំណើទទួលជាវីដេអូ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"បដិសេធសំណើទទួលជាវីដេអូ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"រុញឡើងលើដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"រុញទៅឆ្វេងដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"រុញទៅស្ដាំដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"រុញចុះក្រោមដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ញ័រ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ញ័រ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"សំឡេង"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"សំឡេង​លំនាំដើម (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"សំឡេងរោទ៍ទូរស័ព្ទ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ញ័រពេលរោទ៍"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"សំឡេងរោទ៍ និងញ័រ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"គ្រប់គ្រងការហៅជាក្រុម"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"លេខអាសន្ន"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> វិនាទី</item>
+      <item quantity="one">1 វិនាទី</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> នាទី</item>
+      <item quantity="one">1 នាទី</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ម៉ោង</item>
+      <item quantity="one">1 ម៉ោង</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"រូបថត​ប្រវត្តិរូប"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"បិទកាមេរ៉ា"</string>
+    <string name="child_number" msgid="4469090994612105532">"តាមរយៈ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"បានផ្ញើចំណាំ"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"សារថ្មីៗ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ព័ត៌មានធុរកិច្ច"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"ចម្ងាយ <xliff:g id="DISTANCE">%.1f</xliff:g> ម៉ាយល៍"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"ចម្ងាយ <xliff:g id="DISTANCE">%.1f</xliff:g> គម"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"បើកថ្ងៃស្អែកនៅម៉ោង <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"បើកថ្ងៃនេះនៅម៉ោង <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"បិទនៅម៉ោង <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"បានបិទថ្ងៃនេះនៅម៉ោង <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"បើកឥឡូវនេះ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"បិទឥឡូវនេះ"</string>
+</resources>
diff --git a/InCallUI/res/values-kn-rIN/strings.xml b/InCallUI/res/values-kn-rIN/strings.xml
new file mode 100644
index 0000000..668f3e3
--- /dev/null
+++ b/InCallUI/res/values-kn-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ಫೋನ್"</string>
+    <string name="onHold" msgid="527593602772521700">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
+    <string name="unknown" msgid="3646075119047488748">"ಅಪರಿಚಿತ"</string>
+    <string name="private_num" msgid="6081418498487514686">"ಖಾಸಗಿ ಸಂಖ್ಯೆ"</string>
+    <string name="payphone" msgid="5743050584468748607">"ಪೇಫೋನ್"</string>
+    <string name="confCall" msgid="3181961445236675173">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ಕರೆಯನ್ನು ಬಿಡಲಾಗಿದೆ"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ಸ್ಪೀಕರ್‌"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ಹ್ಯಾಂಡ್‌ಸೆಟ್ ಇಯರ್‌ಪೀಸ್"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ವೈರ್ಡ್ ಹೆಡ್‌ಸೆಟ್‌"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ಬ್ಲೂಟೂತ್"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ಕೆಳಗಿನ ಟೋನ್‌ಗಳನ್ನು ಕಳುಹಿಸುವುದೇ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ಟೋನ್‌ಗಳನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ಕಳುಹಿಸು"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ಹೌದು"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ಇಲ್ಲ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ಇದರೊಂದಿಗೆ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಸ್ಥಳಾಂತರಿಸು"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ಧ್ವನಿಮೇಲ್‌ ಸಂಖ್ಯೆ"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ಡಯಲ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ಮರು ಡಯಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ಒಳಬರುವ ಕರೆ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ಒಳಬರುವ ಕೆಲಸದ ಕರೆ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ಕರೆ ಅಂತ್ಯಗೊಂಡಿದೆ"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ಹ್ಯಾಂಗ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ಕರೆಯಲ್ಲಿ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ನನ್ನ ಸಂಖ್ಯೆ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ವೀಡಿಯೊ ಸಂಪರ್ಕಪಡಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ವೀಡಿಯೊ ಕರೆ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ವೀಡಿಯೊ ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ವೀಡಿಯೊ ಕರೆಯನ್ನು ಸಂಪರ್ಕಪಡಿಸಲಾಗುವುದಿಲ್ಲ"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ವೀಡಿಯೊ ವಿನಂತಿಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"ನಿಮ್ಮ ಮರಳಿಕರೆ ಮಾಡುವ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"ನಿಮ್ಮ ತುರ್ತು ಮರಳಿಕರೆ ಮಾಡುವ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ಡಯಲ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"ಮಿಸ್ಡ್‌ ಕಾಲ್‌"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"ಮಿಸ್ಡ್ ಕಾಲ್‌ಗಳು"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ಮಿಸ್ಡ್ ಕಾಲ್‌ಗಳು"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> ಅವರಿಂದ ಮಿಸ್ಡ್ ಕಾಲ್"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕೆಲಸದ ಕರೆ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ವೈ-ಫೈ ಕರೆ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ವೈ-ಫೈ ಕೆಲಸದ ಕರೆ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ಒಳಬರುವ ಕರೆ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ಒಳಬರುವ ಕೆಲಸದ ಕರೆ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ಒಳಬರುವ ವೈ-ಫೈ ಕರೆ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ಒಳಬರುವ ವೈ-ಫೈ ಕೆಲಸದ ಕರೆ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ಒಳಬರುವ ವೀಡಿಯೊ ಕರೆ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ಒಳಬರುವ ವೀಡಿಯೊ ವಿನಂತಿ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"ಹೊಸ ಧ್ವನಿಮೇಲ್‌"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"ಹೊಸ ಧ್ವನಿಮೇಲ್‌‌ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ಗೆ ಡಯಲ್‌‌ ಮಾಡು"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ಅಪರಿಚಿತ ಧ್ವನಿಮೇಲ್‌ ಸಂಖ್ಯೆ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ಸೇವೆ ಇಲ್ಲ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"ಆಯ್ಕೆಮಾಡಿದ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ನೆಟ್‌ವರ್ಕ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ಉತ್ತರ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ಹ್ಯಾಂಗ್ ಅಪ್"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ವೀಡಿಯೊ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ಧ್ವನಿ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ಸಮ್ಮತಿಸು"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ಮರಳಿ ಕರೆ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"ಸಂದೇಶ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ಕರೆ ಮಾಡಲು, ಮೊದಲು ಏರ್‌ಪ್ಲೇನ್‌‌ ಮೋಡ್‌‌ ಆಫ್‌ ಮಾಡಿ."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಇನ್ನೂ ನೋಂದಣಿಯಾಗಿಲ್ಲ."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"ಸೆಲ್ಯುಲಾರ್ ನೆಟ್‌ವರ್ಕ್‌ ಲಭ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ಕರೆಯನ್ನು ಮಾಡಲು, ಮಾನ್ಯವಾದ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI ಅನುಕ್ರಮ ಪ್ರಾರಂಭವಾಗುತ್ತಿದೆ…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"ಸೇವೆ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ಕರೆಗಳನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ಕರೆಯನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ವರ್ಗಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"ಕಾನ್ಫರೆನ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ಕರೆ ತಿರಸ್ಕರಿಸಲಾಗುವುದಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ಕರೆ(ಗಳು) ಬಿಡುಗಡೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP ಕರೆ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"ತುರ್ತು ಕರೆ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ರೇಡಿಯೋ ಆನ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ಯಾವುದೇ ಸೇವೆ ಇಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ತುರ್ತು ಸಂಖ್ಯೆಯಲ್ಲ."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ತುರ್ತು ಸಂಖ್ಯೆಯನ್ನು ಡಯಲ್ ಮಾಡಿ."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ಡಯಲ್‌ ಮಾಡಲು ಕೀಬೋರ್ಡ್‌ ಬಳಸಿ"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ಕರೆಯನ್ನು ಹೋಲ್ಡ್‌‌ ಮಾಡು"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ಕರೆಯನ್ನು ಮುಂದುವರಿಸಿ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ಡಯಲ್‌ಪ್ಯಾಡ್"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ಮ್ಯೂಟ್"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ಕರೆಯನ್ನು ಸೇರಿಸು"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ಕರೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸು"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ಸ್ವ್ಯಾಪ್‌ ಮಾಡು"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ಕರೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"ನಿರ್ವಹಿಸು"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ಆಡಿಯೊ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ವೀಡಿಯೊ ಕರೆ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ಧ್ವನಿ ಕರೆಗೆ ಬದಲಾಯಿಸಿ"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ಕ್ಯಾಮರಾ ಬದಲಿಸಿ"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ವೀಡಿಯೊ ವಿರಾಮಗೊಳಿಸು"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
+    <string name="player_started" msgid="3478865572468310331">"ಪ್ಲೇಯರ್‌ ಪ್ರಾರಂಭವಾಗಿದೆ"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ಪ್ಲೇಯರ್‌ ನಿಲ್ಲಿಸಲಾಗಿದೆ"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ಕ್ಯಾಮರಾ ಸಿದ್ಧವಾಗಿಲ್ಲ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ಕ್ಯಾಮರಾ ಸಿದ್ಧವಾಗಿದೆ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ಅಜ್ಞಾತ ಕರೆಯ ಸೆಶನ್‌ ಈವೆಂಟ್‌"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"ಸೇವೆ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ಸೆಟಪ್"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ಇತರ ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ಖಾಸಗಿಯಾಗಿ ಹೋಗಿ"</string>
+    <string name="selectContact" msgid="92191462970821951">"ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"ನಿಮ್ಮ ಸ್ವಂತದ್ದನ್ನು ಬರೆಯಿರಿ..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ರದ್ದುಮಾಡು"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ಕಳುಹಿಸು"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ಉತ್ತರ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS ಕಳುಹಿಸಿ"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ನಿರಾಕರಿಸು"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ವೀಡಿಯೊ ಕರೆ ರೂಪದಲ್ಲಿ ಉತ್ತರಿಸಿ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ಆಡಿಯೊ ಕರೆಯಂತೆ ಉತ್ತರಿಸಿ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ವೀಡಿಯೊ ವಿನಂತಿ ಒಪ್ಪಿಕೊಳ್ಳು"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ವೀಡಿಯೊ ವಿನಂತಿ ತಿರಸ್ಕರಿಸು"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ವೀಡಿಯೊ ಪ್ರಸಾರ ವಿನಂತಿ ಸಮ್ಮತಿಸಿ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ವೀಡಿಯೊ ಪ್ರಸಾರ ವಿನಂತಿ ತಿರಸ್ಕರಿಸಿ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ವೀಡಿಯೊ ಸ್ವೀಕರಿಸುವಿಕೆ ವಿನಂತಿ ಸಮ್ಮತಿಸಿ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ವೀಡಿಯೊ ಸ್ವೀಕರಿಸುವಿಕೆ ವಿನಂತಿ ತಿರಸ್ಕರಿಸಿ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗೆ ಮೇಲಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗೆ ಎಡಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗೆ ಬಲಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗೆ ಕೆಳಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ವೈಬ್ರೇಟ್‌"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ವೈಬ್ರೇಟ್‌"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ಶಬ್ದ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ಡೀಫಾಲ್ಟ್‌ ಧ್ವನಿ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ಫೋನ್ ರಿಂಗ್‌ಟೋನ್"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ರಿಂಗ್ ಆಗುವಾಗ ವೈಬ್ರೇಟ್‌ ಆಗು"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ರಿಂಗ್‌ಟೋನ್‌‌ ಮತ್ತು ವೈಬ್ರೇಟ್‌"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"ತುರ್ತು ಸಂಖ್ಯೆ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಸೆಕೆಂಡುಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಸೆಕೆಂಡುಗಳು</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ನಿಮಿಷಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ನಿಮಿಷಗಳು</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"ಪ್ರೊಫೈಲ್ ಫೋಟೋ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ಕ್ಯಾಮರಾ ಆಫ್‌"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ಮೂಲಕ"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ಇತ್ತೀಚಿನ ಸಂದೇಶಗಳು"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ವ್ಯಾಪಾರ ಮಾಹಿತಿ"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> ಮೈಲು ದೂರ"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> ಕಿಮೀ ದೂರ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"ನಾಳೆ <xliff:g id="OPEN_TIME">%s</xliff:g> ಗಂಟೆಗೆ ತೆರೆಯುತ್ತದೆ"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ಇಂದು <xliff:g id="OPEN_TIME">%s</xliff:g> ಗಂಟೆಗೆ ತೆರೆಯುತ್ತದೆ"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ಗಂಟೆಗೆ ಮುಚ್ಚಲಾಗಿದೆ"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ಇಂದು <xliff:g id="CLOSE_TIME">%s</xliff:g> ಗಂಟೆಗೆ ಮುಚ್ಚಲಾಗಿದೆ"</string>
+    <string name="open_now" msgid="4615706338669555999">"ಇದೀಗ ತೆರೆಯಲಾಗಿದೆ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ಇದೀಗ ಮುಚ್ಚಲಾಗಿದೆ"</string>
+</resources>
diff --git a/InCallUI/res/values-ko/strings.xml b/InCallUI/res/values-ko/strings.xml
new file mode 100644
index 0000000..9cccc0f
--- /dev/null
+++ b/InCallUI/res/values-ko/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"전화"</string>
+    <string name="onHold" msgid="527593602772521700">"대기 중"</string>
+    <string name="unknown" msgid="3646075119047488748">"알 수 없음"</string>
+    <string name="private_num" msgid="6081418498487514686">"비공개 번호"</string>
+    <string name="payphone" msgid="5743050584468748607">"공중전화"</string>
+    <string name="confCall" msgid="3181961445236675173">"다자간 통화"</string>
+    <string name="call_lost" msgid="8208184291640961172">"연락되지 않음"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"스피커"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"핸드셋 수화부"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"유선 헤드셋"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"블루투스"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"다음 톤을 보내시겠습니까?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"신호음 보내기\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"전송"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"예"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"아니요"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"와일드 문자를 다음으로 바꿈:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"다자간 통화 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"음성사서함 번호"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"전화 거는 중"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"재다이얼 중"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"다자간 통화"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"수신 전화"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"수신 업무 전화"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"통화 종료됨"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"대기 중"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"전화 끊는 중"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"통화 중"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"내 전화번호는 <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>입니다."</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"화상 통화 연결 중"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"화상 통화"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"화상 통화 요청 중"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"화상 통화를 연결할 수 없습니다."</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"화상 통화 요청이 거부되었습니다."</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"콜백 번호\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"긴급 콜백 번호\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"전화 거는 중"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"부재중 전화"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"부재중 전화"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"부재중 전화 <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>통"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>의 부재중 전화"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"발신 전화"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"발신 업무 전화"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"발신 Wi-Fi 전화"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"발신 Wi-Fi 업무 전화"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"대기 중"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"수신 전화"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"수신 업무 전화"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Wi-Fi 수신 전화"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"수신 Wi-Fi 업무 전화"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"수신 화상 통화"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"수신 화상 통화 요청"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"새로운 음성사서함"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"새 음성사서함(<xliff:g id="COUNT">%d</xliff:g>개)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>(으)로 전화 걸기"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"알 수 없는 음성사서함 번호"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"서비스 불가"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"선택한 네트워크(<xliff:g id="OPERATOR_NAME">%s</xliff:g>)를 사용할 수 없음"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"전화 받기"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"전화 끊기"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"화상"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"음성"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"수락"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"해제"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"전화 걸기"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"메시지"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"전화를 걸려면 먼저 비행기 모드를 해제하세요."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"네트워크에서 등록되지 않았습니다."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"사용 가능한 이동통신망이 없습니다."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"전화를 걸려면 올바른 번호를 입력하세요."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"전화를 걸 수 없습니다."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI 시퀀스 시작 중..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"서비스가 지원되지 않습니다."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"통화를 전환할 수 없습니다."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"통화를 분리할 수 없습니다."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"통화를 전환할 수 없습니다."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"다자간 통화를 이용할 수 없습니다."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"통화를 거부할 수 없습니다."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"통화를 끊을 수 없습니다."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP 통화"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"긴급 전화"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"무선을 켜는 중..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"서비스를 사용할 수 없습니다. 다시 시도 중..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"전화를 걸 수 없습니다. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>은(는) 긴급 번호가 아닙니다."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"전화를 걸 수 없습니다. 긴급 번호를 사용하세요."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"키보드를 사용하여 전화 걸기"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"통화 대기"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"통화 재개"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"통화 종료"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"다이얼패드"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"숨기기"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"통화 추가"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"통화 병합"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"전환"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"통화 관리"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"다자간 통화 관리"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"다자간 통화"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"관리"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"오디오"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"화상 통화"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"음성 통화로 변경"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"카메라 전환"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"동영상 일지중지"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"옵션 더보기"</string>
+    <string name="player_started" msgid="3478865572468310331">"플레이어가 시작되었습니다."</string>
+    <string name="player_stopped" msgid="1278611664986561535">"플레이어가 중지되었습니다."</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"카메라가 준비되지 않았습니다."</string>
+    <string name="camera_ready" msgid="2614541247814590887">"카메라가 준비되었습니다."</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"알 수 없는 통화 세션 이벤트"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"서비스"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"설정"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;설정 안됨&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"기타 통화 설정"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"연락처 사진"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"비공개로 실행"</string>
+    <string name="selectContact" msgid="92191462970821951">"연락처 선택"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"나만의 응답 작성…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"취소"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"전송"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"전화 받기"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS 보내기"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"거부"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"화상 통화로 받기"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"음성 통화로 받기"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"화상 통화 요청 수락"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"화상 통화 요청 거부"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"화상 통화 전송 요청 허용"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"화상 통화 전송 요청 거부"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"화상 통화 수신 요청 허용"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"화상 통화 수신 요청 거부"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 위로 슬라이드합니다."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 왼쪽으로 슬라이드합니다."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 오른쪽으로 슬라이드합니다."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 아래로 슬라이드합니다."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"진동"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"진동"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"소리"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"기본 알림음(<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"전화 벨소리"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"전화 수신 시 진동"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"벨소리 및 진동"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"다자간 통화 관리"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"비상 전화번호"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>초</item>
+      <item quantity="one">1초</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>분</item>
+      <item quantity="one">1분</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>시간</item>
+      <item quantity="one">1시간</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"프로필 사진"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"카메라 꺼짐"</string>
+    <string name="child_number" msgid="4469090994612105532">"수신 번호: <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"메모가 전송되었습니다."</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"최근 메시지"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"비즈니스 정보"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g>mi 거리"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g>km 거리"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>~<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"내일 <xliff:g id="OPEN_TIME">%s</xliff:g>에 영업 시작"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"오늘 <xliff:g id="OPEN_TIME">%s</xliff:g>에 영업 시작"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>에 영업 종료"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"오늘 <xliff:g id="CLOSE_TIME">%s</xliff:g>에 영업 종료됨"</string>
+    <string name="open_now" msgid="4615706338669555999">"영업 중"</string>
+    <string name="closed_now" msgid="2635314668145282080">"영업 종료"</string>
+</resources>
diff --git a/InCallUI/res/values-ky-rKG/strings.xml b/InCallUI/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..d2175ff
--- /dev/null
+++ b/InCallUI/res/values-ky-rKG/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"Күтүлүүдө"</string>
+    <string name="unknown" msgid="3646075119047488748">"Белгисиз"</string>
+    <string name="private_num" msgid="6081418498487514686">"Купуя номер"</string>
+    <string name="payphone" msgid="5743050584468748607">"Таксофон"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференц-чалуу"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Чалуу үзүлдү"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Катуу сүйлөткүч"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Гарнитура"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Зымдуу гарнитура"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Төмөнкү номер жөнөтүлсүнбү?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Обондор жөнөтүлүүдө\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Жөнөтүү"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ооба"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Жок"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Атайын белгини төмөнкүгө алмаштыруу"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конференц-чалуу <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Үн почтасынын номери"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Терилүүдө"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Кайра терилүүдө"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференц-чалуу"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Кирүүчү чалуу"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Жумуш боюнча чалуу"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Чалуу аяктады"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Күтүлүүдө"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Чалуу аяктоодо"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Чалууда"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Менин номерим <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Видео туташтырылууда"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видео чалуу"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Видео суралууда"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Видео чалууга туташуу мүмкүн болбой жатат"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Видео сурам четке кагылды"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Кайра чалына турган номер\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Өзгөчө кырдаалда кайра чалына турган номер\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Терилүүдө"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Кабыл алынбаган чалуу"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Кабыл алынбаган чалуулар"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> кабыл алынбаган чалуу"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> дегенден кабыл алынбаган чалуу"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Учурдагы чалуу"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Учурдагы чалуу (жумуш боюнча)"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Учурдагы Wi-Fi чалуу"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Учурдагы Wi-Fi чалуу (жумуш боюнча)"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Күтүлүүдө"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Кирүүчү чалуу"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Жумуш боюнча чалуу"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Кирүүчү Wi-Fi чалуу"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Жумуш боюнча келип жаткан Wi-Fi чалуу"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Кирүүчү видео чалуу"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Кирүүчү видео сурамы"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Жаңы үн почтасы"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Жаңы үн почтасы (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> номерин терүү"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Үн почтасынын номери белгисиз"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Байланыш жок"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Тандалган тармак (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) жеткиликсиз"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Жооп берүү"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Чалууну бүтүрүү"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Үн"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Кабыл алуу"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Этибарга албоо"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Кайра чалуу"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Билдирүү"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Учак режимин өчүрүп туруп чалыңыз."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Тармакта катталган эмес."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобилдик тармак жеткиликтүү эмес."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Чалуу үчүн, жарактуу номер киргизиңиз."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Чалынбай жатат."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI кезеги башталууда…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Кызмат колдоого алынбайт."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Чалуулар которуштурулбай жатат."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Чалуу бөлүнбөй жатат."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Өткөрүлбөй жатат."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Конференц-чалуу түзүлбөй жатат."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Чалуу четке кагылбай жатат."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Чалуу (-лар) ажыратылбай жатат."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP чалуу"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Өзгөчө кырдаалда чалуу"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Радио күйгүзүлүүдө…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Кызмат жок. Кайра аракет кылууда…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Чалынбай жатат. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> өзгөчө кырдаал номери эмес."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Чалынбай жатат. Өзгөчө кырдаал номерин териңиз."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Баскычтоп менен териңиз"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Чалууну кармап туруу"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Чалууну улантуу"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Чалууну бүтүрүү"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Тергич"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Үнсүз"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Чалуу кошуу"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Чалууларды бириктирүү"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Алмаштыруу"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Чалууларды башкаруу"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Конференц-чалууну башкаруу"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференц чалуу"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Башкаруу"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео чалуу"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Үн чалууга өзгөртүү"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камераны которуштуруу"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Видеону тындыруу"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Дагы параметрлер"</string>
+    <string name="player_started" msgid="3478865572468310331">"Ойноткуч башталды"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Ойноткуч токтотулду"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камера даяр эмес"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камера даяр"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Чалуу сеансынын окуясы белгисиз"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Кызмат"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Орнотуу"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Коюлган эмес&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Башка чалуу жөндөөлөрү"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу келүүдө"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"байланыштын сүрөтү"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"купуя режимине өтүү"</string>
+    <string name="selectContact" msgid="92191462970821951">"байланыш тандоо"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Сиздин жообуңуз…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Жокко чыгаруу"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Жөнөтүү"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Жооп берүү"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS жөнөтүү"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Четке кагуу"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Видео чалуу түрүндө жооп берүү"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Аудио чалуу түрүндө жооп берүү"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Видео сурамын кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Видео сурамын четке кагуу"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Видео өткөрүү сурамын кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Видео өткөрүү сурамын четке кагуу"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Видео алуу сурамын кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Видео алуу сурамын четке кагуу"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн жогору жылмыштырыңыз."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн солго жылмыштырыңыз."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн оңго жылмыштырыңыз."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн төмөн жылмыштырыңыз."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Дирилдөө"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Дирилдөө"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Үн"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Демейки үнү (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Телефондун рингтону"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Дирилдеп шыңгырасын"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Рингтон жана дирилдөө"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Конференц-чалууну башкаруу"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Өзгөчө кырдаал номери"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="one">1 секунд</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> мүнөт</item>
+      <item quantity="one">1 мүнөт</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> саат</item>
+      <item quantity="one">1 саат</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Профилдин сүрөтү"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камера өчүк"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> аркылуу"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Билдирүү жөнөтүлдү"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Акыркы билдирүүлөр"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Компания тууралуу маалымат"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> миля алыста"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> км алыста"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Эртең саат <xliff:g id="OPEN_TIME">%s</xliff:g> ачылат"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Бүгүн саат <xliff:g id="OPEN_TIME">%s</xliff:g> ачылат"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Саат <xliff:g id="CLOSE_TIME">%s</xliff:g> жабылат"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Бүгүн саат <xliff:g id="CLOSE_TIME">%s</xliff:g> жабылды"</string>
+    <string name="open_now" msgid="4615706338669555999">"Азыр ачык"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Эми жабылды"</string>
+</resources>
diff --git a/InCallUI/res/values-lo-rLA/strings.xml b/InCallUI/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..8407a39
--- /dev/null
+++ b/InCallUI/res/values-lo-rLA/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ໂທລະສັບ"</string>
+    <string name="onHold" msgid="527593602772521700">"ຖືສາຍລໍຖ້າ"</string>
+    <string name="unknown" msgid="3646075119047488748">"ບໍ່ຮູ້ຈັກ"</string>
+    <string name="private_num" msgid="6081418498487514686">"ເບີສ່ວນຕົວ"</string>
+    <string name="payphone" msgid="5743050584468748607">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
+    <string name="confCall" msgid="3181961445236675173">"ການປະຊຸມທາງໂທລະສັບ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ສາຍ​ຫຼຸດ​ແລ້ວ"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ລຳໂພງ"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ຊຸດຫູຟັງ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ຊຸດຫູຟັງແບບມີສາຍ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ສົ່ງໂທນສຽງຕໍ່ໄປນີ້ບໍ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ກຳລັງສົ່ງໂທນສຽງ\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ສົ່ງ"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ແມ່ນ"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ບໍ່"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ປ່ຽນແທນ \"ອັກຂະລະຕົວແທນ\" ດ້ວຍ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"ການປະຊຸມທາງໂທລະສັບ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ເບີຂໍ້ຄວາມສຽງ"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ກຳລັງໂທ"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ກຳ​ລັງ​ໂທ​ຄືນ"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"ການປະຊຸມທາງໂທລະສັບ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"​ສາຍ​ໂທ​ເຂົ້າ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ສາຍໂທເຂົ້າຈາກບ່ອນເຮັດວຽກ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ວາງສາຍແລ້ວ"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ຖືສາຍລໍຖ້າ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ກຳລັງວາງສາຍ"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ຢູ່ໃນສາຍ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ເບີໂທຂອງຂ້ອຍແມ່ນ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"​ກຳ​ລັງ​ເຊື່ອມ​ຕໍ່​ວິ​ດີ​ໂອ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"​ການໂທ​​ວິ​ດີ​ໂອ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"​ກຳ​ລັງ​ຮ້ອງ​ຂໍການໂທ​ວິ​ດີ​ໂອ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ບໍ່​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່​ການ​ໂທວິດີໂອ​ໄດ້"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ປະ​ຕິ​ເສດ​ການຮ້ອງ​ຂໍການ​ໂທວິ​ດີ​ໂອ​ແລ້ວ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"ເບີໂທກັບຂອງທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"ເບີ​ໂທ​ກັບ​ສຸກ​ເສີນ​ຂອງ​ທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ກຳລັງໂທ"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"ສາຍບໍ່ໄດ້ຮັບ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"ສາຍບໍ່ໄດ້ຮັບ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ສາຍບໍ່ໄດ້ຮັບ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"ສາຍບໍ່ໄດ້ຮັບຈາກ <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"ສາຍກຳລັງໂທ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ສາຍກຳລັງໂທຈາກບ່ອນເຮັດວຽກ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ສາຍກຳລັງໂທຜ່ານ Wi​-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ສາຍກຳລັງໂທຜ່ານ Wi-Fi ຈາກບ່ອນເຮັດວຽກ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ຖືສາຍລໍຖ້າ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"​ສາຍ​ໂທ​ເຂົ້າ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ສາຍໂທເຂົ້າຈາກບ່ອນເຮັດວຽກ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ສາຍໂທເຂົ້າຜ່ານ Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ສາຍໂທເຂົ້າຜ່ານ Wi-Fi ຈາກບ່ອນເຮັດວຽກ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ສາຍໂທ​ວິດີໂອ​ເຂົ້າ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"​ຄຳ​ຮ້ອງ​ຂໍ​ວິ​ດີ​ໂອທີ່​ເຂົ້າ​ມາ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"ຂໍ້ຄວາມສຽງໃໝ່"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"ຂໍ້ຄວາມສຽງໃໝ່ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"ໂທຫາ <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ເບີຂໍ້ຄວາມສຽງບໍ່ຮູ້ຈັກ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ບໍ່ມີການບໍລິການ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"ເຄືອຂ່າຍທີ່ເລືອກ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ຮັບສາຍ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ວາງສາຍ"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ວິດີໂອ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ສຽງ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ຍອມຮັບ"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ປິດໄວ້"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ໂທກັບ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"ຂໍ້ຄວາມ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ເພື່ອເຮັດການໂທ, ໃຫ້ປິດໂໝດເຮືອບິນກ່ອນ"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ບໍ່ໄດ້ລົງທະບຽນໃນເຄືອຂ່າຍ."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"ບໍ່​ມີ​ເຄືອ​ຂ່າຍ​ມື​ຖື​ທີ່​​ໃຊ້​ໄດ້."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ເພື່ອເຮັດການ​ໂທ, ປ້ອນ​ເບີ​ໂທ​ທີ່​ໃຊ້​ໄດ້​."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"ກຳລັງເລີ່ມຕົ້ນລຳດັບ MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"ບໍ່ຮອງຮັບການ​ບໍ​ລິ​ການ."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ບໍ່​ສາ​ມາດ​ສະ​ຫຼັບ​ສາ​ຍ​ໂທ​ໄດ້."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ບໍ່​ສາ​ມາດ​ແຍກ​ສາຍ​ໂທ​ໄດ້."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ບໍ່​ສາ​ມາດ​ໂອນສາຍ​ໄດ້."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"ບໍ່​ສາ​ມາດ​ປະ​ຊຸມ​ໄດ້."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ບໍ່​ສາ​ມາດ​ປະ​ຕິ​ເສດ​ສາຍ​ໂທ​ໄດ້."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ບໍ່​ສາ​ມາດ​ປ່ອຍ​ສາຍ​ໂທ​ໄດ້."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"ການໂທ SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"ການໂທສຸກເສີນ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ກຳລັງເປີດວິທະຍຸ"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ບໍ່​ມີ​ການ​ບໍ​ລິ​ການ. ກຳ​ລັງ​ລອງ​ໃໝ່​ອີກ…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"ບໍ່ສາມາດໂທໄດ້. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ບໍ່ແມ່ນເບີໂທສຸກເສີນ."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້. ກົດ​ເບີ​ໂທ​ສຸກ​ເສີນ."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ໃຊ້ແປ້ນພິມເພື່ອກົດໂທ"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ຖືສາຍ"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"​ສືບ​ຕໍ່​ສາຍ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ວາງສາຍ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ແປ້ນກົດ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ປິດສຽງ"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ເພີ່ມການໂທ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ລວມສາຍ"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ສະຫຼັບ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ຈັດການການໂທ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"ຈັດ​ການ​ການ​ປະ​ຊຸມ​ທາງໂທລະສັບ"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"ການປະຊຸມທາງໂທລະສັບ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"ຈັດການ"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ສຽງ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"​ການໂທ​​ວິ​ດີ​ໂອ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ປ່ຽນ​ເປັນ​ການ​ໂທ​ດ້ວຍ​ສຽງ"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ສັບປ່ຽນກ້ອງ"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ຢຸດວິດີໂອຊົ່ວຄາວ"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ຕົວເລືອກ​ເພີ່ມ​ເຕີມ"</string>
+    <string name="player_started" msgid="3478865572468310331">"ເຄື່ອງ​ຫຼິ້ນ​ເລີ່ມ​ຕົ້ນ​ແລ້ວ"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ເຄື່ອງ​ຫຼິ້ນ​ຢຸດ​ແລ້ວ"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ກ້ອງ​ຖ່າຍ​ຮູບ​ບໍ່​ພ້ອມ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ກ້ອງ​ຖ່າຍ​ຮູບ​ພ້ອມ​ແລ້ວ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ເຫດ​ການ​ເຊ​ສ​ຊັນ​ການ​ໂທ​ບໍ່​ຮູ້​ຈັກ"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"ການບໍລິການ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ຕັ້ງຄ່າ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;ບໍ່ໄດ້ຕັ້ງ&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ການຕັ້ງຄ່າການໂທອື່ນ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"ກຳລັງໂທຜ່ານ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"ສາຍໂທເຂົ້າ​ຈາກ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"ຮູບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ໃຊ້ແບບສ່ວນຕົວ"</string>
+    <string name="selectContact" msgid="92191462970821951">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"ຂຽນ...ຂອງທ່ານເອງ"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ຍົກເລີກ"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ສົ່ງ"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ຮັບສາຍ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"ສົ່ງ SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ປະຕິເສດ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ຮັບສາຍໂທວິດີໂອ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ຮັບສາຍໂທແບບສຽງ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ຍອມຮັບການຂໍວິດີໂອ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ປະຕິເສດການຂໍວິດີໂອ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ຍອມ​ຮັບ​ການ​ຂໍ​ສົ່ງ​ວິ​ດີ​ໂອ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ປະ​ຕິ​ເສດ​ການ​ຂໍ​ສົ່ງ​ວິ​ດີ​ໂອ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ຍອມ​ຮັບ​ການ​ຂໍ​ຮັບ​ວິ​ດີ​ໂອ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ປະ​ຕິ​ເສດ​ການ​ຂໍ​ຮັບ​ວິ​ດີ​ໂອ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"ເລື່ອນຂຶ້ນເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"ເລື່ອນໄປຊ້າຍເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"ເລື່ອນໄປຂວາເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"ເລື່ອນລົງເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ສັ່ນເຕືອນ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ສັ່ນເຕືອນ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ສຽງ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ສຽງເລີ່ມຕົ້ນ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ຣິງໂທນໂທລະສັບ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ສັ່ນເຕືອນເມື່ອດັງ"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ຣິງໂທນ ແລະ ການສັ່ນເຕືອນ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"ຈັດ​ການ​ການ​ປະ​ຊຸມ​ທາງໂທລະສັບ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"ເບີໂທສຸກເສີນ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ວິນາທີ</item>
+      <item quantity="one">1 ວິນາທີ</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ນາທີ</item>
+      <item quantity="one">1 ນາທີ</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ຊົ່ວໂມງ</item>
+      <item quantity="one">1 ຊົ່ວໂມງ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"ຮູບໂປຣໄຟລ໌"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ກ້ອງ​ຖ່າຍ​ຮູບ​ປິດຢູ່"</string>
+    <string name="child_number" msgid="4469090994612105532">"ຜ່ານ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ສົ່ງ​ບັນ​ທຶກ​ແລ້ວ"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ຂໍ້​ຄວາມ​ບໍ່​ດົນ​ມາ​ນີ້"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ຂໍ້​ມູນ​ທຸ​ລະ​ກິດ"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"ຫ່າງອອກໄປ <xliff:g id="DISTANCE">%.1f</xliff:g> ໄມ​ລ໌​"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"ຫ່າງອອກໄປ <xliff:g id="DISTANCE">%.1f</xliff:g> ກມ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"ເປີດມື້ອື່ນເວລາ <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ເປີດມື້ນີ້ເວລາ <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"ປິດເວລາ <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ປິດແລ້ວມື້ນີ້ເວລາ <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"ດຽວ​ນີ້​ເປີດ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"​ປິດ​ແລ້ວດຽວນີ້"</string>
+</resources>
diff --git a/InCallUI/res/values-lt/strings.xml b/InCallUI/res/values-lt/strings.xml
new file mode 100644
index 0000000..b073acc
--- /dev/null
+++ b/InCallUI/res/values-lt/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefonas"</string>
+    <string name="onHold" msgid="527593602772521700">"Sulaikyta"</string>
+    <string name="unknown" msgid="3646075119047488748">"Nežinoma"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privatus numeris"</string>
+    <string name="payphone" msgid="5743050584468748607">"Taksofonas"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferencinis skambutis"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Skambutis atmestas"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Garsiakalbis"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Tel. su gars. prie ausies"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Laidinės ausinės"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Siųsti šiuo tonus?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Siunčiami tonai\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Siųsti"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Taip"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ne"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Pakaitos simbolį pakeisti"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferencinis skambutis <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Balso pašto numeris"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Renkamas numeris"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Numeris renkamas pakartotinai"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferencinis skambutis"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Gaunamasis skambutis"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Gaunamasis darbo skambutis"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Skambutis baigtas"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Sulaikyta"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Baigiamas pokalbis"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Dalyvauju skambutyje"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mano numeris: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Prisijungiama prie vaizdo skambučio"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Vaizdo skambutis"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Pateikiama vaizdo skambučio užklausa"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Nepavyko prijungti vaizdo įrašo skambučio"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Vaizdo įrašo užklausa atmesta"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Atskambinimo numeris\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Atskambinimo numeris, kuriuos skambina pagalbos tarnyba\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Renkamas numeris"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Praleistas skambutis"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Praleisti skambučiai"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Praleistų skambučių: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Praleistas skambutis nuo <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Vykstantis pokalbis"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Vykstantis darbo skambutis"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Vykstantis „Wi-Fi“ skambutis"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Vykstantis „Wi-Fi“ darbo skambutis"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Sulaikyta"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Gaunamasis skambutis"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Gaunamasis darbo skambutis"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Gaunamasis „Wi-Fi“ skambutis"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Gaunamasis „Wi-Fi“ darbo skambutis"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Gaunamas vaizdo skambutis"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Gaunama vaizdo skambučio užklausa"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Naujas balso pašto pranešimas"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Naujas balso pašto pranešimas (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Rinkti <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nežinomas balso pašto numeris"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nėra paslaugos"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Pasirinktas tinklas (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) negalimas"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Atsiliepti"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Padėti ragelį"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vaizdo įrašas"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Balsas"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Priimti"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Atsisakyti"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Perskambinti"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Siųsti pranešimą"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Jei norite skambinti, išjunkite lėktuvo režimą."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Neregistruota tinkle."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Korinis tinklas nepasiekiamas"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Kad galėtumėte paskambinti, įveskite tinkamą numerį."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Nepavyko paskambinti."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Paleidžiama MMI seka..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Paslauga nepalaikoma."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Nepavyko perjungti skambučių."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Nepavyko atskirti skambučio."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nepavyko peradresuoti."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Nepavyko sukurti konferencijos."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Nepavyko atmesti skambučio."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Nepavyko atjungti skamb."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP skambutis"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Skambutis pagalbos numeriu"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Įjungiamas radijas…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nėra ryšio. Bandoma dar kartą…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Nepavyko paskambinti. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nėra pagalbos numeris."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Nepavyko paskambinti. Surinkite pagalbos tarnybos numerį."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Naudokite klaviatūrą ir rinkite numerius"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Sulaikyti skambutį"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Tęsti skambutį"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Baigti skambutį"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Numerio rinkimo klaviatūra"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Paslėpti"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Pridėti skambutį"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Sujungti skambučius"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Apkeisti"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Valdyti skambučius"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Tvarkyti konferencinį skambutį"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferencinis skambutis"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Tvarkyti"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Garsas"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vaizdo skambutis"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Pakeisti į balso skambutį"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Perjungti fotoaparatą"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pristabdyti vaizdo įrašą"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Daugiau parinkčių"</string>
+    <string name="player_started" msgid="3478865572468310331">"Leistuvė paleista"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Leistuvė sustabdyta"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Fotoaparatas neparuoštas"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Fotoaparatas paruoštas"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Nežinomas skambučio sesijos įvykis"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Paslauga"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Sąranka"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nenustatyta&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Kiti skambučio nustatymai"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontakto nuotrauka"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"naudoti privatų režimą"</string>
+    <string name="selectContact" msgid="92191462970821951">"pasirinkti kontaktą"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Sukurkite patys..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Atšaukti"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Siųsti"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Atsiliepti"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Siųsti SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Atmesti"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Atsiliepti kaip į vaizdo skambutį"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Atsiliepti kaip į garso skambutį"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Priimti vaizdo įrašo užkl"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Atmesti vaizdo įrašo užklausą"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Priimti vaizdo įrašo perdavimo užklausą"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Atmesti vaizdo įrašo perdavimo užklausą"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Priimti vaizdo įrašo gavimo užklausą"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Atmesti vaizdo įrašo gavimo užklausą"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Slyskite aukštyn link parinkties „<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>“."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Slyskite į kairę link parinkties „<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>“."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Slyskite į dešinę link parinkties „<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>“."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Slyskite žemyn link <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibruoti"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibruoti"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Garsas"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Numatytasis garsas (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefono skambėjimo tonas"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibruoti, kai skambina"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Skambėjimo tonas ir vibracija"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Tvarkyti konferencinį skambutį"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Pagalbos numeris"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekundė</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekundės</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> sekundės</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundžių</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minutė</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minutės</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> minutės</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minučių</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> valanda</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> valandos</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> valandos</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> valandų</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilio nuotrauka"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Fotoaparatas išjungtas"</string>
+    <string name="child_number" msgid="4469090994612105532">"naudojant <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Užrašas išsiųstas"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Naujausi pranešimai"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Įmonės informacija"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Už <xliff:g id="DISTANCE">%.1f</xliff:g> myl."</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Už <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Rytoj atidaroma <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Šiandien atidaroma <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Uždaroma <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Šiandien uždaryta <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Dabar atidaryta"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Dabar uždaryta"</string>
+</resources>
diff --git a/InCallUI/res/values-lv/strings.xml b/InCallUI/res/values-lv/strings.xml
new file mode 100644
index 0000000..742420b
--- /dev/null
+++ b/InCallUI/res/values-lv/strings.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Tālrunis"</string>
+    <string name="onHold" msgid="527593602772521700">"Aizturēts"</string>
+    <string name="unknown" msgid="3646075119047488748">"Nezināms"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privāts numurs"</string>
+    <string name="payphone" msgid="5743050584468748607">"Maksas tālrunis"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferences zvans"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Zvans tika pārtraukts."</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Skaļrunis"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auss skaļrunis"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Austiņas ar vadu"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Vai sūtīt tālāk norādītos signālus?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sūtīšanas signāli\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Sūtīt"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Jā"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nē"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Aizstāt aizstājējzīmi ar:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferences zvans: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Balss pasta numurs"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Notiek numura sastādīšana"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Notiek atkārtota zvanīšana"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferences zvans"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Ienākošs zvans"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Ienākošs darba zvans"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Zvans ir pabeigts"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Aizturēts"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Notiek klausules nolikšana"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Notiek zvans"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mans tālruņa numurs: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Notiek video savienojuma izveide"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videozvans"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Notiek video pieprasīšana"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Nevar veikt videozvanu"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video pieprasījums noraidīts"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Jūsu atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Jūsu ārkārtas atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Notiek numura sastādīšana"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Neatbildēts zvans"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Neatbildēti zvani"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> neatbildēti zvani"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Neatbildēts zvans no: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Notiekošs zvans"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Notiekošs darba zvans"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Notiekošs Wi-Fi zvans"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Notiekošs darba Wi-Fi zvans"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Aizturēts"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Ienākošs zvans"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Ienākošs darba zvans"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Ienākošs Wi-Fi zvans"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Ienākošs darba Wi-Fi zvans"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Ienākošs videozvans"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Ienākošs video pieprasījums"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Jauns balss pasta ziņojums"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Jauns balss pasts (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Sastādiet šādu numuru: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Balss pasta numurs nav zināms."</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nav pakalpojuma"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Atlasītais tīkls (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nav pieejams."</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Atbildēt"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Beigt zvanu"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Balss"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Pieņemt"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Noraidīt"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Atzvanīt"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Sūtīt īsziņu"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Lai veiktu zvanu, vispirms izslēdziet lidojuma režīmu."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nav reģistrēts tīklā."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilais tīkls nav pieejams."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Lai veiktu zvanu, ievadiet derīgu numuru."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Nevar veikt zvanu."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Notiek MMI secības startēšana…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Pakalpojums netiek atbalstīts."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Nevar pārslēgt zvanus."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Nevar nošķirt zvanu."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nevar pārsūtīt."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Nevar veikt konferences zvanu."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Nevar noraidīt zvanu."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Nevar pārtraukt zvanu(-us)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP zvans"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Ārkārtas izsaukums"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Notiek radio ieslēgšana…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nav pakalpojuma. Notiek atkārtots mēģinājums…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Nevar veikt zvanu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nav ārkārtas numurs."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Nevar veikt zvanu. Zvaniet ārkārtas numuram."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Izmantojiet tastatūru, lai sastādītu numuru"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Aizturēt zvanu"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Atsākt zvanu"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Beigt zvanu"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Numura sastādīšanas tastatūra"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Izslēgt skaņu"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Pievienot zvanu"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Apvienot zvanus"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Mainīt"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Pārvaldīt zvanus"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Pārvaldīt konferences zvanu"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferences zvans"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Pārvaldīt"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videozvans"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mainīt uz balss zvanu"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Pārslēgt kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pārtraukt video plūsmu"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Citas iespējas"</string>
+    <string name="player_started" msgid="3478865572468310331">"Atskaņošana sākta"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Atskaņošana apturēta"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera nav gatava"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera ir gatava"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Nezināms zvana sesijas notikums"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Pakalpojums"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Iestatīšana"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nav iestatīts&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Citi zvanu iestatījumi"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Zvans, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontaktpersonas fotoattēls"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"pārslēgt uz privāto režīmu"</string>
+    <string name="selectContact" msgid="92191462970821951">"atlasīt kontaktpersonu"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Rakstīt savu…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Atcelt"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Sūtīt"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Atbildēt"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Sūtīt īsziņu"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Noraidīt"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Atbildēt videozvanā"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Atbildēt audiozvanā"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Apstiprināt video pieprasījumu"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Noraidīt video pieprasījumu"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Apstiprināt video pārsūtīšanas pieprasījumu"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Noraidīt video pārsūtīšanas pieprasījumu"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Apstiprināt video saņemšanas pieprasījumu"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Noraidīt video saņemšanas pieprasījumu"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Velciet uz augšu, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Velciet pa kreisi, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Velciet pa labi, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Velciet uz leju, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrācija"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrācija"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Signāls"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Noklusējuma signāls (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Tālruņa zvana signāls"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrācija zvana laikā"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Zvana signāls un vibrācija"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konferences zvana pārvaldība"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Ārkārtas numurs"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> sekunžu</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundes</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> minūšu</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minūte</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minūtes</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> stundu</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> stunda</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> stundas</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profila fotoattēls"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera ir izslēgta"</string>
+    <string name="child_number" msgid="4469090994612105532">"no numura <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Piezīme nosūtīta"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Pēdējie ziņojumi"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informācija par uzņēmumu"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> jūdzes(-džu) attālumā"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km attālumā"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Tiks atvērts rīt plkst. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Tiks atvērts šodien plkst. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Tiks slēgts plkst. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Tika slēgts šodien plkst. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Atvērts"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Slēgts"</string>
+</resources>
diff --git a/InCallUI/res/values-mk-rMK/strings.xml b/InCallUI/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..2385520
--- /dev/null
+++ b/InCallUI/res/values-mk-rMK/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"На чекање"</string>
+    <string name="unknown" msgid="3646075119047488748">"Непознат"</string>
+    <string name="private_num" msgid="6081418498487514686">"Приватен број"</string>
+    <string name="payphone" msgid="5743050584468748607">"Говорница"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференциски повик"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Повикот е прекинат"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Звучник"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Слушалка"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Жичени слушалки"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Испратете ги следниве тонови?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Се испраќаат тонови\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Испрати"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Да"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Не"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Заменете го резервниот знак со"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конференциски повик <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Број на говорна пошта"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Бирање"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Повторно бирање"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференциски повик"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Дојдовен повик"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Дојдовен работен повик"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Повикот заврши"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"На чекање"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Повикот се прекинува"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Повик во тек"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Мојот број е <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Се поврзува видео"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видеоповик"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Се бара видео"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Не може да се поврзе видеоповик"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Барањето за видео е одбиено"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Вашиот број за повратен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Вашиот број за итен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Бирање"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Пропуштен повик"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Пропуштени повици"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуштени повици"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Пропуштен повик од <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Тековен повик"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Тековен работен повик"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Појдовен повик преку Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Тековен работен повик преку Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"На чекање"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Дојдовен повик"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Дојдовен работен повик"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Дојдовен повик преку Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Дојдовен работен повик преку Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Дојдовен видеоповик"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Дојдовно барање за видео"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Нова говорна пошта"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Нова говорна пошта (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Бирај <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Непознат број на говорна пошта"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Нема услуга"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Избраната мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) е недостапна"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Одговори"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Спушти"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Гласовен"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Прифати"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Отфрли"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Врати повик"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Порака"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"За да остварите повик, прво исклучете го авионскиот режим."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Не е регистриран на мрежа."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Не е достапна мобилна мрежа."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"За да остварите повик, внесете важечки број."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Не може да се повика."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Започнува ММИ низа..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Услугата не е поддржана."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Не може да се префрлат повици."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Не може да се оддели повик."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Не може да се пренесе."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Не може да се оствари конференциски повик."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Не може да се отфрли повик."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Не може да се оствари повик."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Повик преку СИП"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Повик за итни случаи"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Се вклучува радиото..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Нема услуга. Се обидува повторно…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Не може да се повика. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е број за итни повици."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Не може да се повика. Бирајте го бројот за итни повици."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Користете ја тастатурата за бирање"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Стави на чекање"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Продолжи го повикот"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Заврши го повикот"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Тастатура за бирање"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Исклучи звук"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Додај повик"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Спои повици"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Замени"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Управувај со повици"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Управувај со конференциски повик"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференциски повик"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Управувај"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеоповик"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Промени во гласовен повик"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Промени ја камерата"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Паузирај видео"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Повеќе опции"</string>
+    <string name="player_started" msgid="3478865572468310331">"Плеерот се вклучи"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Плеерот запре"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камерата не е подготвена"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камерата е подготвена"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Непознат настан при сесија повици"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Услуга"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Поставување"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Не е поставен&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Други поставки за повик"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"фотографија на контакт"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"префли на приватно"</string>
+    <string name="selectContact" msgid="92191462970821951">"избери контакт"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Напиши сопствена..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Откажи"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Испрати"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Одговори"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Испрати СМС"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Одбиј"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Одговори со видеоповик"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Одговори со аудиоповик"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Прифати барање за видео"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Одбиј барање за видео"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Прифати барање за пренос на видео"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Одбиј барање за пренос на видео"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Прифати барање за прием на видео"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Одбиј барање за прием на видео"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Лизгај нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Лизгај налево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Лизгај надесно за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Лизгај надолу за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Вибрации"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Вибрации"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Звук"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Стандарден звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Мелодија на телефонот"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Вибрации при ѕвонење"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Мелодија и вибрации"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Управувај со конференциски повик"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Број за итни случаи"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> секунда</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> минута</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минути</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> час</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Фотографија на профилот"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камерата е исклучена"</string>
+    <string name="child_number" msgid="4469090994612105532">"преку <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Испратена е белешка"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Неодамнешни пораки"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Деловни информации"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Оддалечено <xliff:g id="DISTANCE">%.1f</xliff:g> милји"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Оддалечено <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Отвора утре во <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Отвора денес во <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Затвора во <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Денес затвори во <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Сега е отворено"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Сега е затворено"</string>
+</resources>
diff --git a/InCallUI/res/values-ml-rIN/strings.xml b/InCallUI/res/values-ml-rIN/strings.xml
new file mode 100644
index 0000000..f951f76
--- /dev/null
+++ b/InCallUI/res/values-ml-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ഫോൺ"</string>
+    <string name="onHold" msgid="527593602772521700">"ഹോൾഡിലാണ്"</string>
+    <string name="unknown" msgid="3646075119047488748">"അജ്ഞാതം"</string>
+    <string name="private_num" msgid="6081418498487514686">"സ്വകാര്യ നമ്പർ"</string>
+    <string name="payphone" msgid="5743050584468748607">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
+    <string name="confCall" msgid="3181961445236675173">"കോൺഫറൻസ് കോൾ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"കോൾ വിട്ടു"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"സ്പീക്കർ"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ഹാൻഡ്‌സെറ്റ് ഇയർപീസ്"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"വയേർഡ് ഹെഡ്സെറ്റ്"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ഇനിപ്പറയുന്ന ടോണുകൾ അയയ്‌ക്കണോ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ടോണുകൾ അയയ്‌ക്കുന്നു\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"അയയ്‌ക്കുക"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ഉവ്വ്"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ഇല്ല"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"വൈൽഡ് പ്രതീകം ഇതുപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"കോൺഫറൻസ് കോൾ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"വോയ്‌സ്‌മെയിൽ നമ്പർ"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ഡയൽ ചെയ്യുന്നു"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"വീണ്ടും ഡയൽചെയ്യുന്നു"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"കോൺഫറൻസ് കോൾ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ഇൻകമിംഗ് കോൾ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ഇൻകമിംഗ് ഔദ്യോഗിക കോൾ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"കോൾ അവസാനിച്ചു"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ഹോൾഡിലാണ്"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ഹാംഗ് അപ്പ് ചെയ്യുന്നു"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"കോളിലാണ്"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"എന്റെ നമ്പർ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> ആണ്"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"വീഡിയോ കണക്‌റ്റുചെയ്യുന്നു"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"വീഡിയോ കോൾ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"വീഡിയോ അഭ്യർത്ഥിക്കുന്നു"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"വീഡിയോ കോളുമായി കണക്‌റ്റുചെയ്യാനാവില്ല"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"വീഡിയോ അഭ്യർത്ഥന നിരസിച്ചു"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"അടിയന്തിരമായി നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ഡയൽ ചെയ്യുന്നു"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"മിസ്‌ഡ് കോൾ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"മിസ്‌ഡ് കോളുകൾ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> മിസ്‌ഡ് കോളുകൾ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> എന്നതിൽ നിന്നുള്ള മിസ്‌ഡ് കോൾ"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"കോൾ സജീവമാണ്"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ഓൺഗോയിംഗ് ഔദ്യോഗിക കോൾ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ഓൺഗോയിംഗ് വൈഫൈ കോൾ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ഓൺഗോയിംഗ് വൈഫൈ ഔദ്യോഗിക കോൾ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ഹോൾഡിലാണ്"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ഇൻകമിംഗ് കോൾ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ഇൻകമിംഗ് ഔദ്യോഗിക കോൾ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ഇൻകമിംഗ് വൈഫൈ കോൾ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ഇൻകമിംഗ് വൈഫൈ ഔദ്യോഗിക കോൾ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ഇൻകമിംഗ് വീഡിയോ കോൾ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ഇൻകമിംഗ് വീഡിയോ അഭ്യർത്ഥന"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"പുതിയ വോയ്‌സ്‌മെയിൽ"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"പുതിയ വോയ്‌സ്‌മെയിൽ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ഡയൽ ചെയ്യുക"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"വോയ്‌സ്‌മെയിൽ നമ്പർ അജ്ഞാതമാണ്"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"സേവനമില്ല"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ലഭ്യമല്ല"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"മറുപടി"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ഹാംഗ് അപ്പുചെയ്യുക"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"വീഡിയോ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"വോയ്‌സ്"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"അംഗീകരിക്കുക"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ഡിസ്മിസ്"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"തിരിച്ചുവിളിക്കുക"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"സന്ദേശം"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ഒരു കോൾ ചെയ്യാൻ, ആദ്യം ഫ്ലൈറ്റ് മോഡ് ഓഫുചെയ്യുക."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"നെറ്റ്‌വർക്കിൽ രജിസ്റ്റർ ചെയ്‌തിട്ടില്ല."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"സെല്ലുലാർ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ഒരു കോൾ ചെയ്യുന്നതിന്, സാധുതയുള്ള നമ്പർ നൽകുക."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"കോൾ ചെയ്യാനായില്ല."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI സീക്വൻസ് ആരംഭിക്കുന്നു…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"സേവനം പിന്തുണയ്‌ക്കുന്നില്ല."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"കോളുകൾ മാറാനാവില്ല."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"കോൾ വേർതിരിക്കാനാവില്ല."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"കൈമാറ്റം ചെയ്യാനാവില്ല."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"കോൺഫറൻസ് കോൾ ചെയ്യാനാവില്ല."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"കോൾ നിരസിക്കാനാവില്ല."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"കോൾ (കോളുകൾ) വിളിക്കാനാവില്ല."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP കോൾ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"എമർജൻസി കോൾ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"റേഡിയോ ഓൺ ചെയ്യുന്നു…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"സേവനമൊന്നുമില്ല. വീണ്ടും ശ്രമിക്കുന്നു…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"കോൾ ചെയ്യാനാവില്ല. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> എന്നത് ഒരു അടിയന്തിര നമ്പറല്ല."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"കോൾ ചെയ്യാനാവില്ല. ഒരു അടിയന്തിര കോൾ നമ്പർ ഡയൽചെയ്യുക."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ഡയൽ ചെയ്യാൻ കീബോർഡ് ഉപയോഗിക്കുക"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"കോൾ ഹോൾഡുചെയ്യുക"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"കോൾ പുനരാരംഭിക്കുക"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"കോൾ അവസാനിപ്പിക്കുക"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ഡയൽപാഡ്"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"മ്യൂട്ടുചെയ്യുക"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"കോൾ ചേർക്കുക"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"കോളുകൾ ലയിപ്പിക്കുക"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"സ്വാപ്പുചെയ്യുക"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"കോളുകൾ നിയന്ത്രിക്കുക"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"കോൺഫറൻസ് കോൾ നിയന്ത്രിക്കുക"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"കോൺഫറൻസ് കോൾ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"മാനേജുചെയ്യുക"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ഓഡിയോ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"വീഡിയോ കോൾ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"വോയ്‌സ്‌ കോളിലേക്ക് മാറ്റുക"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ക്യാമറ സ്വിച്ചുചെയ്യുക"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"വീഡിയോ താൽക്കാലികമായി നിർത്തുക"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"കൂടുതൽ ഓ‌പ്‌ഷനുകൾ"</string>
+    <string name="player_started" msgid="3478865572468310331">"പ്ലെയർ ആരംഭിച്ചു"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"പ്ലേയർ നിർത്തി"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ക്യാമറ തയ്യാറായില്ല"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ക്യാമറ തയ്യാറായി"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"അജ്ഞാത കോൾ സെഷൻ ഇവന്റ്"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"സേവനം"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"സജ്ജമാക്കുക"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;ക്രമീകരിച്ചിട്ടില്ല&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"മറ്റ് കോൾ ക്രമീകരണം"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"കോൺടാക്റ്റ് ഫോട്ടോ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"സ്വകാര്യം എന്നതിലേക്ക് പോകുക"</string>
+    <string name="selectContact" msgid="92191462970821951">"കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"നിങ്ങളുടെ സ്വന്തം സന്ദേശമെഴുതുക..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"റദ്ദാക്കുക"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"അയയ്‌ക്കുക"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"മറുപടി"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS അയയ്ക്കുക"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"നിരസിക്കുക"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"വീഡിയോ കോളായി മറുപടി നൽകുക"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ഓഡിയോ കോളായി മറുപടി നൽകുക"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"വീഡിയോ കോളിനുള്ള അഭ്യർത്ഥന അംഗീകരിക്കുക"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"വീഡിയോ കോൾ അഭ്യർത്ഥന നിരസിക്കുക"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"വീഡിയോ പ്രക്ഷേപണ അഭ്യർത്ഥന അംഗീകരിക്കുക"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"വീഡിയോ പ്രക്ഷേപണ അഭ്യർത്ഥന നിരസിക്കുക"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"വീഡിയോ കോൾ സ്വീകരിക്കാനുള്ള അഭ്യർത്ഥന അംഗീകരിക്കുക"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"വീഡിയോ കോൾ സ്വീകരിക്കാനുള്ള അഭ്യർത്ഥന നിരസിക്കുക"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി മുകളിലേയ്‌ക്ക് സ്ലൈഡുചെയ്യുക."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി ഇടത്തേയ്‌ക്ക് സ്ലൈഡുചെയ്യുക."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി വലത്തേയ്‌ക്ക് സ്ലൈഡുചെയ്യുക."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി താഴേക്ക് സ്ലൈഡുചെയ്യുക."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"വൈബ്രേറ്റുചെയ്യുക"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"വൈബ്രേറ്റുചെയ്യുക"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ശബ്‌ദം"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"സ്ഥിര ശബ്‌ദം (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ഫോൺ റിംഗ്ടോൺ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"റിംഗുചെയ്യുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"റിംഗ്ടോണും വൈബ്രേറ്റുചെയ്യലും"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"കോൺഫറൻസ് കോൾ നിയന്ത്രിക്കുക"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"അടിയന്തര നമ്പർ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> സെക്കൻഡ്</item>
+      <item quantity="one">ഒരു സെക്കൻഡ്</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> മിനിറ്റ്</item>
+      <item quantity="one">ഒരു മിനിറ്റ്</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> മണിക്കൂർ</item>
+      <item quantity="one">ഒരു മണിക്കൂർ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"പ്രൊഫൈൽ ഫോട്ടോ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ക്യാമറ ഓഫാക്കുക"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> വഴി"</string>
+    <string name="note_sent" msgid="7623014827902758398">"കുറിപ്പ് അയച്ചു"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ഏറ്റവും പുതിയ സന്ദേശങ്ങൾ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ബിസിനസ്സ് വിവരം"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> മൈൽ അകലെ"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> കിലോമീറ്റർ അകലെ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"നാളെ <xliff:g id="OPEN_TIME">%s</xliff:g>-ന് തുറക്കുന്നു"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ഇന്ന് <xliff:g id="OPEN_TIME">%s</xliff:g>-ന് തുറക്കുന്നു"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>-ന് അടയ്ക്കുന്നു"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ഇന്ന് <xliff:g id="CLOSE_TIME">%s</xliff:g>-ന് അടച്ചു"</string>
+    <string name="open_now" msgid="4615706338669555999">"ഇപ്പോൾ തുറന്നിരിക്കുന്നു"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ഇപ്പോൾ അടച്ചിരിക്കുന്നു"</string>
+</resources>
diff --git a/InCallUI/res/values-mn-rMN/strings.xml b/InCallUI/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..84c3c4c
--- /dev/null
+++ b/InCallUI/res/values-mn-rMN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Утас"</string>
+    <string name="onHold" msgid="527593602772521700">"Хүлээлгэнд байгаа"</string>
+    <string name="unknown" msgid="3646075119047488748">"Тодорхойгүй"</string>
+    <string name="private_num" msgid="6081418498487514686">"Нууцалсан дугаар"</string>
+    <string name="payphone" msgid="5743050584468748607">"Төлбөртэй утас"</string>
+    <string name="confCall" msgid="3181961445236675173">"Хурлын дуудлага"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Дуудлага таслагдсан"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Чанга яригч"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Утасны чихэвч"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Утастай чихэвч"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Дараах аяыг илгээх үү?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Ая илгээж байна\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Илгээх"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Тийм"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Үгүй"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Тэмдэгтийг дараахаар солих"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Хурлын дуудлага <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Дуут шуудангийн дугаар"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Залгаж байна"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Дахин залгаж байна"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Хурлын дуудлага"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Орох дуудлага"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Орох ажлын дуудлага"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Дуудлага дууссан"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Хүлээлгэнд"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Тасалж байна"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Дуудлагатай"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Миний дугаар <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Видеог холбож байна"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видео дуудлага"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Видео хүлээж байна"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Видео дуудлагад холбогдож чадсангүй"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Бичлэг хийх хүсэлтийг зөвшөөрсөнгүй"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Таны буцаан залгах дугаар\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Таны яаралтай хулээн авах дугаар\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Залгаж байна"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Аваагүй дуудлага"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Аваагүй дуудлага"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> аваагүй дуудлага"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>-н аваагүй дуудлага"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Залгаж буй дуудлага"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Холбогдсон албаны дуудлага"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Холбогдсон Wi-Fi дуудлага"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Залгаж буй Wi-Fi албаны дуудлага"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Хүлээгдэж байна"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Орох дуудлага"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Орох ажлын дуудлага"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Орох Wi-Fi дуудлага"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Орох Wi-Fi албаны дуудлага"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Орох видео дуудлага"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Орох видео хүсэлт"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Шинэ дуут шуудан"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Шинэ дуут шуудан (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> руу залгах"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Дуут шуудангийн дугаар тодорхойгүй"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Үйлчилгээ байхгүй"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Сонгосон сүлжээг (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ашиглах боломжгүй"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Хариулт"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Таслах"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Дуу хоолой"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Зөвшөөрөх"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Алгасах"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Буцааж залгах"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Зурвас"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Залгахын тулд эхлээд Нислэгийн горимоос гарна уу."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Сүлжээнд бүртгэгдээгүй байна."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Үүрэн сүлжээ байхгүй."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Залгахын тулд хүчин төгөлдөр дугаар оруулна уу."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Залгах боломжгүй байна."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI дарааллыг эхлүүлж байна…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Дэмжигдээгүй үйлчилгээ байна."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Дуудлагыг солих боломжгүй байна."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Дуудлагыг салгаж чадахгүй байна."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Шилжүүлэх боломжгүй байна."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Хурлын дуудлага хийх боломжгүй байна."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Дуудлагыг цуцлах боломжгүй байна."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Дуудлага чөлөөлөх боломжгүй байна."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP дуудлага"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"яаралтай"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Радиог асааж байна..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ажиллагаагүй байна. Дахин оролдоно уу..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Залгах боломжгүй. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> нь яаралтай дугаар биш байна."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Залгах боломжгүй. Яаралтай дугаар луу залгана уу."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Залгахдаа гар ашиглана уу"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Дуудлага хүлээлгэх"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Дуудлагыг үргэлжлүүлэх"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Дуудлагыг дуусгах"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Залгах товчлуур"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Дуу хаах"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Дуудлага нэмэх"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Дуудлага нэгтгэх"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Солих"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Дуудлага удирдах"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Хурлын дуудлага удирдах"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Хурлын дуудлага"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Удирдах"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео дуудлага"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Дуут дуудлага руу өөрчлөх"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камер солих"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Видеог түр зогсоох"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Нэмэлт сонголт"</string>
+    <string name="player_started" msgid="3478865572468310331">"Тоглуулагчийг эхлүүлсэн"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Тоглуулагчийг зогсоосон"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камер бэлэн бус байна"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камер бэлэн байна"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Үл мэдэгдэх дуудлагын үе"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Үйлчилгээ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Тохируулга"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"Тохируулаагүй"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Бусад дуудлагын тохиргоо"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р залгаж байна"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р ирж байна"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"харилцагчийн зураг"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"хувийн яриа"</string>
+    <string name="selectContact" msgid="92191462970821951">"харилцагч сонгох"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Өөрийн ...-г бичээрэй"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Цуцлах"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Илгээх"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Хариулт"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS илгээх"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Татгалзах"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Видео дуудлагаар хариулах"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Аудио дуудлагаар хариулах"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Видео хүсэлтийг хүлээн зөвшөөрөх"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Видео хүсэлтээс татгалзах"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Видео дамжуулах хүсэлтийг хүлээн зөвшөөрөх"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Видео дамжуулах хүсэлтээс татгалзах"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Видео хүлээж авах хүсэлтийг зөвшөөрөх"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Видео хүлээн авах хүсэлтээс татгалзах"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх бол дээш гулсуулна уу."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-г харахын тулд зүүн тийш гулсуулна уу."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> харахын тулд баруун тийш гулсуулна уу."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-г харахын тулд доош гулсуулна уу."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Чичиргээ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Чичиргээ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Дуу"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Үндсэн дуу (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Утасны хонхны ая"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Хонх дуугарах үед чичрэх"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Хонхны ая, Чичиргээ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Хурлын дуудлагыг удирдах"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Яаралтай дугаар"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="one">1 секунд</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минут</item>
+      <item quantity="one">1 минут</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> цаг</item>
+      <item quantity="one">1 цаг</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Профайл зураг"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камер унтраалттай байна"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-р"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Тэмдэглэлийг илгээсэн"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Саяхны зурвас"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Бизнес мэдээлэл"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> милийн зайтай"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> км-н зайтай"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Маргааш <xliff:g id="OPEN_TIME">%s</xliff:g>-с нээгдэнэ"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Өнөөдөр <xliff:g id="OPEN_TIME">%s</xliff:g>-с нээгдэнэ"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>-с хаадаг"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Өнөөдөр <xliff:g id="CLOSE_TIME">%s</xliff:g>-с хаасан"</string>
+    <string name="open_now" msgid="4615706338669555999">"Одоо нээлттэй"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Одоо хаалттай"</string>
+</resources>
diff --git a/InCallUI/res/values-mr-rIN/strings.xml b/InCallUI/res/values-mr-rIN/strings.xml
new file mode 100644
index 0000000..5fdb488
--- /dev/null
+++ b/InCallUI/res/values-mr-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"फोन"</string>
+    <string name="onHold" msgid="527593602772521700">"होल्ड वर"</string>
+    <string name="unknown" msgid="3646075119047488748">"अज्ञात"</string>
+    <string name="private_num" msgid="6081418498487514686">"खाजगी नंबर"</string>
+    <string name="payphone" msgid="5743050584468748607">"सार्वजनिक फोन"</string>
+    <string name="confCall" msgid="3181961445236675173">"परिषद कॉल"</string>
+    <string name="call_lost" msgid="8208184291640961172">"कॉल सोडला"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"स्पीकर"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"हँडसेट इअरपीस"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"वायर्ड हेडसेट"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ब्लूटुथ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"खालील टोन पाठवायचे?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"टोन पाठवित आहे\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"पाठवा"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"होय"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"नाही"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"खराब वर्णास यासह पुनर्स्थित करा"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"परिषद कॉल <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"व्हॉइसमेल नंबर"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"डायल करीत आहे"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"रीडायल करत आहे"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"परिषद कॉल"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"येणारा कॉल"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"येणारा कार्य कॉल"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"कॉल संपला"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"होल्ड वर"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"हँग अप करणेे"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"कॉल मधील"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"माझा नंबर <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> आहे"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"व्हिडिओ कनेक्ट करत आहे"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"व्हिडिओ कॉल"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"व्हिडिओ विनंती करत आहे"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"व्हिडिओ कॉल कनेक्ट करू शकत नाही"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"व्हिडिओ विनंती नाकारली"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"आपला कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"आपला आणीबाणी कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"डायल करीत आहे"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"सुटलेला कॉल"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"सुटलेले कॉल"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> सुटलेले कॉल"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> कडील सुटलेला कॉल"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"सुरू असलेला कॉल"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"सुरु असलेला कार्य कॉल"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"सुरु असलेला वाय-फाय कॉल"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"सुरु असलेला वाय-फाय कार्य कॉल"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"होल्ड वर"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"येणारा कॉल"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"येणारा कार्य कॉल"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"येणारा वाय-फाय कॉल"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"येणारा वाय-फाय कार्य कॉल"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"येणारा व्हिडिओ कॉल"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"येणारी व्हिडिओ विनंती"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"नवीन व्हॉइसमेल"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"नवीन व्हॉइसमेल (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> डायल करा"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"व्हॉइसमेल नंबर अज्ञात"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"सेवा नाही"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"निवडलेले नेटवर्क (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) अनुपलब्ध"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"उत्तर"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"हँग अप"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"व्हिडिओ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"व्हॉइस"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"स्वीकार करा"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"डिसमिस करा"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"पुन्हा कॉल करा"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"संदेश"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"कॉल करण्यासाठी, प्रथम विमान मोड बंद करा."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्कवर नोंदणीकृत नाही."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"मोबाईल नेटवर्क उपलब्ध नाही."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"कॉल करण्यासाठी, एक वैध नंबर प्रविष्ट करा."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"कॉल करू शकत नाही."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI क्रम प्रारंभ करीत आहे..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"सेवा समर्थित नाही."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"कॉल स्विच करू शकत नाही."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"कॉल विभक्त करू शकत नाही."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"हस्तांतर करू शकत नाही."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"परिषद घेऊ शकत नाही."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"कॉल नाकारू शकत नाही."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"कॉल रिलीझ करू शकत नाही."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP कॉल"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"आणीबाणी कॉल"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"रेडिओ चालू करीत आहे..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"सेवा नाही. पुन्हा प्रयत्न करत आहे…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"कॉल करू शकत नाही. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> हा आणीबाणी नंबर नाही."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"कॉल करू शकत नाही. आणीबाणी नंबर डायल करा."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"डायल करण्यासाठी कीबोर्डचा वापर करा"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"कॉल होल्ड करा"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"कॉल पुनः सुरु करा"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"कॉल समाप्त करा"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"डायलपॅड"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"नि:शब्द करा"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"कॉल जोडा"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"कॉल विलीन करा"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"अदलाबदल करा"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"कॉल व्यवस्थापित करा"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"परिषद कॉल व्यवस्थापित करा"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"परिषद कॉल"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"व्यवस्थापित करा"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ऑडिओ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"व्हिडिओ कॉल"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"व्हॉइस कॉल वर बदला"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"कॅमेरा स्विच करा"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"व्हिडिओला विराम द्या"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"अधिक पर्याय"</string>
+    <string name="player_started" msgid="3478865572468310331">"प्लेअर सुरु झाले"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"प्लेअर थांबले"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"कॅमेरा सज्ज नाही"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"कॅमेरा सज्ज"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"अज्ञात कॉल सत्र इव्हेंट"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"सेवा"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"सेटअप"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;सेट नाही&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"इतर कॉल सेटिंग्ज"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"संपर्क फोटो"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"खाजगी व्हा"</string>
+    <string name="selectContact" msgid="92191462970821951">"संपर्क निवडा"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"आपण स्वतः लिहा…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"रद्द करा"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"पाठवा"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"उत्तर"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS पाठवा"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"नकार द्या"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"व्हिडिओ कॉल म्हणून उत्तर द्या"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ऑडिओ कॉल म्हणून उत्तर द्या"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"व्हिडिओ विनंती स्वीकारा"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"व्हिडिओ विनंतीस नकार द्या"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"व्हिडिओ प्रसारण विनंती स्वीकार करा"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"व्हिडिओ प्रसारण विनंतीस नकार द्या"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"व्हिडिओ प्राप्त करा विनंती स्वीकार करा"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"व्हिडिओ प्राप्त करा विनंतीस नकार द्या"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी वर स्लाइड करा."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी डावीकडे स्लाइड करा."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी उजवीकडे स्लाइड करा."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी खाली स्लाइड करा."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"कंपन करा"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"कंपन करा"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ध्वनी"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"डीफॉल्ट आवाज (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"फोन रिंगटोन"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"रिंग करताना कंपन करा"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"रिंगटोन आणि कंपन"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"परिषद कॉल व्यवस्थापित करा"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"आणीबाणी नंबर"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> सेकंद</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सेकंद</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> मिनिट</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> मिनिटे</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> तास</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> तास</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"प्रोफाइल फोटो"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"कॅमेरा बंद"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> द्वारा"</string>
+    <string name="note_sent" msgid="7623014827902758398">"टीप पाठविली"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"अलीकडील संदेश"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"व्यवसाय माहिती"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> मैल दूर"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> किमी दूर"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"उद्या <xliff:g id="OPEN_TIME">%s</xliff:g> वाजता उघडेल"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> उघडेल"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> वाजता बंद होईल"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> वाजता बंद केले"</string>
+    <string name="open_now" msgid="4615706338669555999">"आता उघडा"</string>
+    <string name="closed_now" msgid="2635314668145282080">"आता बंद केले आहे"</string>
+</resources>
diff --git a/InCallUI/res/values-ms-rMY/strings.xml b/InCallUI/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..5138369
--- /dev/null
+++ b/InCallUI/res/values-ms-rMY/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Ditunda"</string>
+    <string name="unknown" msgid="3646075119047488748">"Tidak diketahui"</string>
+    <string name="private_num" msgid="6081418498487514686">"Nombor peribadi"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefon Awam"</string>
+    <string name="confCall" msgid="3181961445236675173">"Panggilan sidang"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Panggilan diputuskan"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Pembesar suara"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Alat dengar tel bimbit"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Set kepala berwayar"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Hantar nada berikut?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Menghantar nada\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Hantar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ya"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Tidak"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Gantikan aksara bebas dengan"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Panggilan sidang <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Nombor mel suara"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Mendail"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Mendail semula"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Panggilan sidang"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Panggilan masuk"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Pgln masuk tempat kerja"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Panggilan tamat"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Ditunda"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Menamatkan panggilan"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Dalam panggilan"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Nombor saya ialah <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Menyambungkan video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Panggilan video"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Meminta video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Tidak dapat menyambungkan panggilan video"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Permintaan video ditolak"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Nombor panggilan balik anda<xliff:g id="DARK_NUMBER">%1$s</xliff:g>\n"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Nombor panggilan balik kecemasan anda\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Mendail"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Panggilan terlepas"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Panggilan terlepas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan terlepas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Panggilan tidak dijawab daripada <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Panggilan sedang berlangsung"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Panggilan sedang berlangsung daripada tempat kerja"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Panggilan Wi-Fi sedang berlangsung"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Panggian Wi-Fi sedang berlangsung daripada tempat kerja"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Ditunda"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Panggilan masuk"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Panggilan masuk daripada tempat kerja"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Panggilan masuk melalui Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Panggilan masuk melalui Wi-Fi daripada tempat kerja"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Panggilan video masuk"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Permintaan video masuk"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Mel suara baharu"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Mel suara baharu (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Dail <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nombor mel suara tidak dikenali"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Tiada perkhidmatan"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Rangkaian pilihan (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) tidak tersedia"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Jawab"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Letakkan gagang"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Suara"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Terima"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ketepikan"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Panggil balik"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesej"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Untuk membuat panggilan, matikan mod Pesawat terlebih dahulu."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tidak didaftarkan pada rangkaian."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rangkaian selular tidak tersedia."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Untuk membuat panggilan, masukkan nombor yang sah."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Tidak dapat memanggil."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Memulakan jujukan MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Perkhidmatan tidak disokong."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Tidak dapat menukar panggilan."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Tidak dapat mengasingkan panggilan."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Tidak dapat memindahkan."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Tidak dapat membuat panggilan persidangan."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Tidak dapat menolak panggilan."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Tidak dapat melepaskan panggilan."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Panggilan SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Panggilan kecemasan"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Menghidupkan radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Tiada perkhidmatan. Mencuba lagi..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Tidak dapat memanggil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nombor kecemasan."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Tidak dapat memanggil. Dail nombor kecemasan."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Gunakan papan kekunci untuk mendail"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Tahan Panggilan"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Sambung Semula Panggilan"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Tamatkan Panggilan"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Pad Pendail"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Redam"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Tambah panggilan"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Gabung panggilan"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Silih"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Urus panggilan"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Urus panggilan sidang"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Panggilan sidang"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Urus"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Panggilan video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Tukar ke panggilan suara"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Tukar kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Jeda video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Lagi pilihan"</string>
+    <string name="player_started" msgid="3478865572468310331">"Pemain Dimulakan"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Pemain Dihentikan"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera tidak bersedia"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera bersedia"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Acara sesi panggilan tidak diketahui"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Perkhidmatan"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Persediaan"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Tidak ditetapkan&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Tetapan panggilan lain"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Panggilan masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto kenalan"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"jadi peribadi"</string>
+    <string name="selectContact" msgid="92191462970821951">"pilih kenalan"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Tulis sendiri…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Batal"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Hantar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Jawab"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Hantar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Tolak"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Jawab sebagai panggilan video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Jawab sebagai panggilan audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Terima permintaan video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Tolak permintaan video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Terima permintaan hantar video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Tolak permintaan hantar video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Terima permintaan terima video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Tolak permintaan terima video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Luncurkan ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Luncurkan ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Luncurkan ke kanan untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Luncurkan ke bawah untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Bergetar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Bergetar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Bunyi"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Bunyi lalai (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Nada dering telefon"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Bergetar apabila berdering"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Nada dering &amp; Bergetar"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Urus panggilan sidang"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Nombor kecemasan"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
+      <item quantity="one">1 saat</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minit</item>
+      <item quantity="one">1 minit</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
+      <item quantity="one">1 jam</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto profil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera dimatikan"</string>
+    <string name="child_number" msgid="4469090994612105532">"melalui <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota dihantar"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mesej terbaharu"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Maklumat perniagaan"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> batu dari sini"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km dari sini"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Dibuka esok pada pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Dibuka hari ini pada pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Tutup pada pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Ditutup hari ini pada pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Dibuka sekarang"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Ditutup sekarang"</string>
+</resources>
diff --git a/InCallUI/res/values-my-rMM/strings.xml b/InCallUI/res/values-my-rMM/strings.xml
new file mode 100644
index 0000000..2839c54
--- /dev/null
+++ b/InCallUI/res/values-my-rMM/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ဖုန်း"</string>
+    <string name="onHold" msgid="527593602772521700">"ခဏ ကိုင်ထားစဉ်"</string>
+    <string name="unknown" msgid="3646075119047488748">"အမျိုးအမည်မသိ"</string>
+    <string name="private_num" msgid="6081418498487514686">"ကိုယ်ပိုင်ဖုန်းနံပါတ်"</string>
+    <string name="payphone" msgid="5743050584468748607">"အများသုံးဖုန်း"</string>
+    <string name="confCall" msgid="3181961445236675173">"အစည်းအဝေးခေါ်ဆိုမှု"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ဖုန်းလိုင်းကျသွားခဲ့သည်"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"စပီကာ"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"လက်ကိုင်တယ်လီဖုန်းနားခွက်"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ကြိုးတပ် မိုက်ခွက်ပါနားကြပ်"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ဘလူးတုသ်"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"အောက်ပါ တီးလုံးများကို ပို့မလား။\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"အသံများ ပို့နေသည်\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ပို့ပါ"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ဟုတ်ပါသည်"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"မလိုပါ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"အစားထိုး အထူးအက္ခရာတွင် အစားထိုးရန်"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"အစည်းအဝေးခေါ်ဆိုမှု <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"အသံစာနံပါတ်"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ခေါ်ဆိုနေသည်"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ပြန်ခေါ်နေသည်"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"အစည်းအဝေးခေါ်ဆိုမှု"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"အဝင် ခေါ်ဆိုမှု"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"အလုပ်ဆိုင်ရာ အဝင် ခေါ်ဆိုမှု"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ဖုန်းခေါ်ဆိုမှု ပြီးဆုံးပါပြီ"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ခဏ ကိုင်ထားစဉ်"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ဖုန်းချနေပါသည်"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ဖုန်းခေါ်ဆိုနေဆဲ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ကျွန်ုပ်၏ နံပါတ်မှာ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> ဖြစ်ပါသည်"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ဗီဒီယို ချိတ်ဆက်နေသည်"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ဗီဒီယိုခေါ်ဆိုနေသည်"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ဗွီဒီယို ခေါ်ဆိုမှု ချိတ်ဆက်၍မရပါ။"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ဗီဒီယို ခေါ်ဆိုမှုကို ပယ်ချလိုက်ပါပြီ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"သင့်ကိုပြန်လည်ခေါ်ဆိုရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"သင့်ကိုအရေးပေါ် ပြန်လည်ခေါ်ဆိုရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ဖုန်းခေါ်နေသည်"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"လွတ်သွားသော ခေါ်ဆိုမှု"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"လွတ်သွားသော ခေါ်ဆိုမှုများ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"လွတ်သွားသော ခေါ်ဆိုမှု <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> မှလွတ်သွားသော ခေါ်ဆိုမှု"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"လက်ရှိခေါ်ဆိုမှု"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"လက်ရှိအလုပ်ခေါ်ဆိုမှု"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"လက်ရှိ Wi-Fi ခေါ်ဆိုမှု"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"လက်ရှိအလုပ် Wi-Fi ခေါ်ဆိုမှု"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ခဏ ကိုင်ထားစဉ်"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"အဝင် ခေါ်ဆိုမှု"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"အလုပ်ဆိုင်ရာ အဝင်ခေါ်ဆိုမှု"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"အဝင် Wi-Fi ခေါ်ဆိုမှု"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"အလုပ်ဆိုင်ရာ အဝင် Wi-Fi ခေါ်ဆိုမှု"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"အဝင်ဗီဒီယိုခေါ်ဆိုမှု"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ဗီဒီယိုအဝင် ခေါ်ဆိုမှု"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"အသံစာအသစ်"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"အသံစာ အသစ် (<xliff:g id="COUNT">%d</xliff:g>) ခု"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ကိုခေါ်ပါ"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"အသံစာ၏နံပါတ်ကို မသိပါ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ဆက်သွယ်မှု ဧရိယာပြင်ပသို့ ရောက်ရှိနေသည်"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"ရွေးချယ်ထားသော ကွန်ယက် (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) မရရှိနိုင်ပါ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ဖြေကြားပါ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ဖုန်းချပါ"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ဗီဒီယို"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"အသံ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"လက်ခံပါ"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ပယ်ပါ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ပြန်ခေါ်ပါ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"မက်ဆေ့ဂျ်"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ခေါ်ဆိုမှု ပြုလုပ်ရန်အတွက် လေယာဉ်ပျံမုဒ်ကို ဦးစွာပိတ်ပါ။"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ကွန်ယက်ပေါ်တွင် မှတ်ပုံတင်ထားခြင်း မရှိပါ။"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"ဆယ်လူလာ ကွန်ရက် မရှိပါ။"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ခေါ်ဆိုမှု ပြုလုပ်ရန်အတွက် မှန်ကန်သည့်နံပါတ်တစ်ခုကို ထည့်ပါ။"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ခေါ်ဆို၍မရပါ။"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI အစီအစဉ် စတင်နေသည်..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"ဝန်ဆောင်မှုအား ပံ့ပိုးမထားပါ။"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ခေါ်ဆိုမှုများကို လှည့်ပြောင်း၍မရပါ။"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ခေါ်ဆိုမှုကို ခွဲခြား၍မရပါ။"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"မလွှဲပြောင်းနိုင်ပါ။"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"အစည်းအဝေးခေါ်ဆိုမှု ပြုလုပ်၍မရပါ။"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ခေါ်ဆိုမှုကို ငြင်းဆို၍မရပါ။"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ခေါ်ဆိုမှု(များ) ကို လွှတ်၍မရပါ။"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP ခေါ်ဆိုမှု"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"အရေးပေါ် ခေါ်ဆိုမှု"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ရေဒီယို ဖွင့်နေသည်…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ချိတ်ဆက်မှု ဧရိယာပြင်ပရောက်နေပါသည်။ ထပ်စမ်းကြည့်ပါ..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"ခေါ်ဆို၍မရနိုင်ပါ။ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> သည်အရေးပေါ်နံပါတ်တစ်ခု မဟုတ်ပါ။"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ခေါ်ဆို၍မရနိုင်ပါ။ အရေးပေါ်နံပါတ်တစ်ခုကို ခေါ်ဆိုပါ။"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ခေါ်ဆိုရန် ကီးဘုတ်ကိုအသုံးပြုပါ"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ခေါ်ဆိုမှု ခေတ္တရပ်ထားပါ"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ခေါ်ဆိုမှုကို ဆက်လုပ်ပါ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ခေါ်ဆိုမှု အပြီးသတ်ပါ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"နံပါတ်ကွက်"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"အသံပိတ်ပါ"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ခေါ်ဆိုမှုထည့်ပါ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ခေါ်ဆိုမှုများကို ပေါင်းစည်းပါ"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ဖလှယ်ပါ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ခေါ်ဆိုမှုများကို စီမံခန့်ခွဲပါ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"အစည်းအဝေးခေါ်ဆိုမှုကို စီမံခန့်ခွဲပါ"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"မျက်နှာစုံညီစည်းဝေး ဖုန်းခေါ်ဆိုမှု"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"စီမံခန့်ခွဲပါ"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"အသံ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"အသံခေါ်ဆိုမှုသို့ ပြောင်းပါ"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ကင်မရာပြောင်းပါ"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ဗီဒီယို ခေတ္တရပ်ပါ"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"နောက်ထပ် ရွေးစရာများ"</string>
+    <string name="player_started" msgid="3478865572468310331">"ပလေယာ စပါပြီ"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ပလေယာ ရပ်တန့်သွားပါပြီ"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ကင်မရာအဆင်သင့် မဖြစ်သေးပါ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ကင်မရာအဆင်သင့်ဖြစ်ပါပြီ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"အမျိုးအမည်မသိ ခေါ်ဆိုမှုအချိန်ကာလ"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"ဝန်ဆောင်မှု"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"စနစ်ထည့်သွင်းမှုပြုလုပ်ပါ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;မသတ်မှတ်ထားပါ&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"အခြားခေါ်ဆိုမှုဆက်တင်များ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် ခေါ်ဆိုခြင်း"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့်အဝင်ခေါ်ဆိုမှု"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"အဆက်အသွယ်ဓာတ်ပုံ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"တသီးတသန့်ချိတ်ဆက်ရန်"</string>
+    <string name="selectContact" msgid="92191462970821951">"လိပ်စာရွေးပါ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"သင့်ကိုယ်ပိုင် စာသား ရေးပါ..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"မလုပ်တော့"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ပို့ပါ"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ဖြေကြားပါ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS ပို့ပါ"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ငြင်းပယ်ပါ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ဗီဒီယိုခေါ်ဆိုမှုအဖြစ် ဖြေကြားပါ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"အသံခေါ်ဆိုမှုအဖြစ် ဖြေကြားပါ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ဗီဒီယိုခေါ်ဆိုမှုကို လက်ခံပါ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ဗီဒီယိုခေါ်ဆိုမှုကို ငြင်းပယ်ပါ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ဗီဒီယိုထုတ်လွှင့်ခြင်းတောင်းဆိုမှုကို လက်ခံပါ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ဗီဒီယိုထုတ်လွှင့်ခြင်းတောင်းဆိုမှုကို ငြင်းပယ်ပါ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ဗီဒီယိုလက်ခံရရှိမှုတောင်းဆိုချက်ကို လက်ခံပါ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ဗီဒီယိုလက်ခံရရှိကြောင်းတောင်းဆိုမှုကို ငြင်းပယ်ပါ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် အပေါ်ကို ပွတ်ဆွဲပါ"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် ဘယ်ဖက်ကို ပွတ်ဆွဲပါ"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် ညာဖက်ကို ပွတ်ဆွဲပါ"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် အောက်ကို ပွတ်ဆွဲပါ"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"တုန်ခါပါ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"တုန်ခါပါ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"အသံ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"မူရင်း အသံ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ဖုန်းမြည်သံ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ဖုန်းမြည်စဉ် တုန်ခါပါ"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ဖုန်းမြည်သံ &amp; တုန်ခါသံ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"အစည်းအဝေးခေါ်ဆိုမှုကို စီမံခန့်ခွဲပါ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"အရေးပေါ်နံပါတ်"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> စက္ကန့်</item>
+      <item quantity="one">၁ စက္ကန့်</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> မိနစ်</item>
+      <item quantity="one"> ၁ မိနစ်</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> နာရီ</item>
+      <item quantity="one">၁ နာရီ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"ပရိုဖိုင် ဓာတ်ပုံ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ကင်မရာ ပိတ်ပါ"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> မှတစ်ဆင့်"</string>
+    <string name="note_sent" msgid="7623014827902758398">"မှတ်ချက်ကို ပို့လိုက်ပါပြီ"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"မကြာသေးမီက မက်ဆေ့ဂျ်များ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"စီးပွားရေး အချက်အလက်"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> မိုင်အကွာ"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> ကီလိုမီတာအကွာ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>၊ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>၊ <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"မနက်ဖြန် <xliff:g id="OPEN_TIME">%s</xliff:g> ၌ဖွင့်မည်"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ယနေ့ <xliff:g id="OPEN_TIME">%s</xliff:g> ၌ဖွင့်မည်"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ၌ပိတ်ပါမည်"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ယနေ့ <xliff:g id="CLOSE_TIME">%s</xliff:g> ၌ပိတ်ခဲ့သည်"</string>
+    <string name="open_now" msgid="4615706338669555999">"ယခုဖွင့်ပါ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ယခုပိတ်ပါ"</string>
+</resources>
diff --git a/InCallUI/res/values-nb/strings.xml b/InCallUI/res/values-nb/strings.xml
new file mode 100644
index 0000000..af0704c
--- /dev/null
+++ b/InCallUI/res/values-nb/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"På vent"</string>
+    <string name="unknown" msgid="3646075119047488748">"Ukjent"</string>
+    <string name="private_num" msgid="6081418498487514686">"Skjult nummer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefonkiosk"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferansesamtale"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Anropet ble avbrutt"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Høyttaler"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Telefonhøyttaler"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Hodetelefoner med kabel"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Vil du sende disse lydene?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Sender lydene\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Send"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nei"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Erstatt jokertegn med"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferansesamtale <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Nummeret til talepostkassen"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Ringer"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ringer på nytt"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferansesamtale"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Innkommende anrop"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Innkommende jobbanrop"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Anropet er avsluttet"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"På vent"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Legger på"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Anrop pågår"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Nummeret mitt er <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Kobler til video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videoanrop"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Ber om video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Kan ikke koble til videoanropet"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videoforespørselen er avvist"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Tilbakeringingsnummeret ditt\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Tilbakeringingsnummeret ditt for nødstilfeller\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Ringer"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Tapt anrop"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Tapte anrop"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> tapte anrop"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Tapt anrop fra <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Pågående anrop"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Pågående jobbanrop"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Pågående Wi-Fi-anrop"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Pågående jobbanrop via Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"På vent"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Innkommende anrop"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Innkommende jobbanrop"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Innkommende Wi-Fi-anrop"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Innkommende jobbanrop via Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Innkommende videoanrop"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Innkommende videoforespørsel"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ny talepost"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Ny talepost (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Ring <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nummeret til talepostkassen er ukjent"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ingen tjeneste"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Det valgte nettverket (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ikke tilgjengelig"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Svar"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Legg på"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Uten video"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Godta"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Avvis"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring tilbake"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Melding"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"For å ringe, slå av flymodus først."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ikke registrert på nettverket."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilnettverket er ikke tilgjengelig."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"For å ringe, skriv inn et gyldig nummer."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Kan ikke ringe."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Starter MMI-sekvens …"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Tjenesten støttes ikke."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Kan ikke bytte samtaler."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Kan ikke splitte opp anropet."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Kan ikke overføre."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Kan ikke opprette konferanse."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Kan ikke avvise anropet."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Kan ikke frigjøre samtale(r)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-anrop"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Nødanrop"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Slår på radioen …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ingen tjeneste. Prøver på nytt …"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Kan ikke ringe. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et nødnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Kan ikke ringe. Ring et nødnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Bruk tastaturet for å ringe"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Sett anropet på vent"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Gjenoppta anropet"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Avslutt anropet"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Talltastatur"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Kutt lyden"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Legg til anrop"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Slå sammen anrop"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Bytt"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Administrer anrop"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Administrer konferansesamtale"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferansesamtale"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Administrer"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Lyd"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoanrop"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Bytt til taleanrop"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Bytt kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sett videoen på pause"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Flere alternativer"</string>
+    <string name="player_started" msgid="3478865572468310331">"Avspilleren har startet"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Avspilleren har stoppet"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kameraet er ikke klart"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kameraet er klart"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Ukjent anrop"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Tjeneste"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfigurering"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ikke angitt&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Andre anropsinnstillinger"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontaktbilde"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"aktivér privat samtale"</string>
+    <string name="selectContact" msgid="92191462970821951">"velg kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Skriv ditt eget"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Avbryt"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Send"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Svar"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Send SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Avslå"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Svar med video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Svar uten video"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Godta videoforespørselen"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Avslå videoforespørselen"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Godta forespørselen om å sende video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Avslå forespørselen om å sende video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Godta forespørselen om å motta video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Avslå forespørselen om å motta video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Dra opp for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Dra til venstre for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Dra til høyre for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Dra ned for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrering"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrering"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Lyd"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefonringelyd"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrer når telefonen ringer"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringelyd og vibrering"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Administrer konferansesamtale"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Nødnummer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekunder</item>
+      <item quantity="one">1 sekund</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutter</item>
+      <item quantity="one">1 minutt</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
+      <item quantity="one">1 time</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilbilde"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kameraet er slått av"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Notatet er sendt"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nylige meldinger"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informasjon om bedriften"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mile unna"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km unna"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Åpner i morgen kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Åpner i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Stenger kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Stengte i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Åpen nå"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Stengt nå"</string>
+</resources>
diff --git a/InCallUI/res/values-ne-rNP/strings.xml b/InCallUI/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..eaf2bf5
--- /dev/null
+++ b/InCallUI/res/values-ne-rNP/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"फोन"</string>
+    <string name="onHold" msgid="527593602772521700">"होल्डमा"</string>
+    <string name="unknown" msgid="3646075119047488748">"अज्ञात"</string>
+    <string name="private_num" msgid="6081418498487514686">"निजी नम्बर"</string>
+    <string name="payphone" msgid="5743050584468748607">"पेफोन"</string>
+    <string name="confCall" msgid="3181961445236675173">"सम्मेलन कल"</string>
+    <string name="call_lost" msgid="8208184291640961172">"कल ड्रप भयो"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"स्पिकर"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"हेन्डसेट इयरपिस"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"तारसहितको हेडसेट"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ब्लुटुथ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"निम्न टोनहरू पठाउने हो?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"टोनहरू\n पठाउँदै"</string>
+    <string name="send_button" msgid="4054398309483035794">"पठाउनुहोस्"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"हो"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"होइन"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"यसलाई वाइल्ड क्यारेक्टर राखेर बदल्नुहोस्"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"सम्मेलन कल <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"भ्वाइस मेल नम्बर"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"डायल गर्दै"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"पुन: डायल गर्दै"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"सम्मेलन कल"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"आगमन कल"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"कार्यालयबाट आएको कल"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"कल अन्त्य भयो"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"होल्डमा छ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"फोन काट्दै"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"कलमा"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"मेरो नम्बर <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> हो"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"भिडियो जडान गरिँदै"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"भिडियो कल"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"भिडियोका लागि अनुरोध गर्दै"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"भिडियो कलमा जडान गर्न सक्दैन"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"भिडियो अनुरोध अस्वीकार गरियो"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"तपाईंको कलब्याक नम्बर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"तपाईंको आपतकालीन कलब्याक नम्बर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"डायल गर्दै"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"छुटेको कल"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"छुटेका कलहरू"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छुटेका कलहरू"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> बाट आएको छुटेको कल"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"चलिरहेको कल"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"चालु रहेको कार्यालयको कल"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"चालु रहेको WI-Fi कल"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Wi-Fi मार्फत चालु रहेको कार्यालयको कल"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"होल्डमा"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"आगमन कल"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"कार्यालयबाट आएको कल"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"आगमन Wi-Fi कल"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Wi-Fi मार्फत कार्यालयबाट आएको कल"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"आगमन भिडियो कल"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"आगमन भिडियो अनुरोध"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"नयाँ भ्वाइस मेल"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"नयाँ भ्वाइसमेल (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> मा डायल गर्नुहोस्"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"भ्वाइस मेल नम्बर अज्ञात छ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"कुनै सेवा छैन"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"चयन गरिएको नेटवर्क (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) अनुपलब्ध छ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"जवाफ दिनुहोस्"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"राख्नुहोस्"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"भिडियो"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"आवाज"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"स्वीकार गर्नुहोस्"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"खारेज गर्नुहोस्"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"कल फर्काउने"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"सन्देश"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"कल गर्नका लागि, पहिले हवाइजहाज मोड बन्द गर्नुहोस्।"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्कमा दर्ता भएको छैन।"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"सेलुलर नेटवर्क उपलब्ध छैन।"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"एक कल गर्नको लागि, मान्य नम्बर प्रविष्ट गर्नुहोस्।"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"कल गर्न सकिंदैन।"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI अनुक्रम सुरु गर्दै..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"सेवा समर्थित छैन।"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"कल स्विच गर्न सक्दैन।"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"कल अलग गर्न सक्दैन।"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ट्रान्सफर गर्न सक्दैन।"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"सम्मेलन गर्न सक्दैन।"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"कल अस्वीकार गर्न सक्दैन।"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"कल (हरू) जारी गर्न सकिंदैन।"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP कल"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"आपतकालीन कल"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"रेडियो खोल्दै..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"कुनै सेवा छैन। फेरि प्रयास गर्दै..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"कल गर्न सकिंदैन। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> आपतकालीन नम्बर होइन।"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"कल गर्न सकिंदैन। आपतकालीन नम्बर डायल गर्नुहोस्।"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"डायल गर्न किबोर्ड प्रयोग गर्नुहोस्"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"कललाई होल्ड गर्नुहोस्"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"कललाई पुन: निरन्तरता दिनुहोस्"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"कल अन्त्य गर्नुहोस्"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"डायल प्याड"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"म्यूट गर्नुहोस्"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"कल थप्नुहोस्"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"कलहरू मर्ज गर्नुहोस्"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"स्वाप"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"कलहरूको प्रबन्ध मिलाउनुहोस्"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"सम्मेलन कलको प्रबन्ध मिलाउनहोस्"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"सम्मेलन कल"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"व्यवस्थापन गर्नुहोस्"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"अडियो"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"भिडियो कल"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"आवाज कलमा परिवर्तन गर्नुहोस्"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"क्यामेरा स्विच गर्नुहोस्"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"भिडियो रोक्नुहोस्"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"थप विकल्पहरू"</string>
+    <string name="player_started" msgid="3478865572468310331">"प्लेयर सुरु भयो"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"प्लेयर रोकियो"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"क्यामेरा तयार छैन"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"क्यामेरा तयार छ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"अज्ञात कल सत्र घटना"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"सेवा"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"सेटअप"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;सेट गरिएको छैन&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"अन्य कल सेटिङहरू"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत कल गर्दै"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत आगमन"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"सम्पर्क तस्बिर"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"निजी कलमा जानुहोस्"</string>
+    <string name="selectContact" msgid="92191462970821951">"सम्पर्क चयन गर्नुहोस्"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"तपाईंको आफ्नै लेख्नुहोस्..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"रद्द गर्नुहोस्"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"पठाउनुहोस्"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"जवाफ दिनुहोस्"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS पठाउनुहोस्"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"अस्वीकार गर्नुहोस्"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"भिडियो कलको रूपमा जवाफ दिनुहोस्"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"अडियो कलको रूपमा जवाफ दिनुहोस्"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"भिडियो अनुरोध स्वीकार गर्नुहोस्"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"भिडियो अनुरोध अस्वीकार गर्नुहोस्"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"भिडियो प्रसारण गर्ने अनुरोध स्वीकार गर्नुहोस्"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"भिडियो प्रसारण गर्ने अनुरोध अस्वीकार गर्नुहोस्"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"भिडियो प्राप्त गर्ने अनुरोधलाई स्वीकार गर्नुहोस्"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"भिडियो प्राप्त गर्ने अनुरोध अस्वीकार गर्नुहोस्"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> को लागि माथि स्लाइड गर्नुहोस्।"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> को लागि बायाँ स्लाइड गर्नुहोस्।"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> को लागि दायाँ स्लाइड गर्नुहोस्।"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> को लागि तल स्लाइड गर्नुहोस्।"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"कम्पन हुने"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"कम्पन हुने"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"आवाज"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"पूर्वनिर्धारित ध्वनि (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"फोनको रिङटोन"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"घन्टी बज्दा कम्पन गराउनुहोस्"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"रिङटोन &amp; कम्पन"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"सम्मेलन कलको प्रबन्ध मिलाउनुहोस्"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"आपतकालीन नम्बर"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सेकेण्ड</item>
+      <item quantity="one">१ सेकेण्ड</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> मिनेट</item>
+      <item quantity="one">१ मिनेट</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घण्टा</item>
+      <item quantity="one">१ घण्टा</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"प्रोफाइल तस्बिर"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"क्यामेरा बन्द छ"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> बाट"</string>
+    <string name="note_sent" msgid="7623014827902758398">"नोट पठाइयो"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"भर्खरैका सन्देशहरू"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"व्यवसाय बारे जानकारी"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> माइल टाढा"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> किलोमिटर टाढा"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"भोलि <xliff:g id="OPEN_TIME">%s</xliff:g> मा खुल्छ"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> मा खुल्छ"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> मा बन्द हुन्छ"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> मा बन्द भयो"</string>
+    <string name="open_now" msgid="4615706338669555999">"अहिले खुला छ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"अब बन्द भयो"</string>
+</resources>
diff --git a/InCallUI/res/values-nl/strings.xml b/InCallUI/res/values-nl/strings.xml
new file mode 100644
index 0000000..da02b39
--- /dev/null
+++ b/InCallUI/res/values-nl/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefoon"</string>
+    <string name="onHold" msgid="527593602772521700">"In de wacht"</string>
+    <string name="unknown" msgid="3646075119047488748">"Onbekend"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privénummer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Betaaltelefoon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Telefonische vergadering"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Oproep beëindigd"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Luidspreker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Oortelefoon van handset"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Bedrade headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"De volgende tonen verzenden?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Nummers verzenden\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Verzenden"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nee"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Jokerteken vervangen door"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Telefonische vergadering <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Voicemailnummer"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Kiezen"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Opnieuw bellen"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Telefonische vergadering"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Inkomende oproep"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Inkom. zakelijke oproep"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Oproep beëindigd"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"In de wacht"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Ophangen"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"In gesprek"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mijn nummer is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Verbinding maken met video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videogesprek"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Video aanvragen"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Kan geen videogesprek starten"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videoverzoek geweigerd"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Je terugbelnummer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Je terugbelnummer bij alarm\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Kiezen"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Gemiste oproep"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Gemiste oproepen"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepen"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Gemiste oproep van <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Actieve oproep"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Actieve zakelijke oproep"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Actieve wifi-oproep"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Actieve zakelijke oproep via wifi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"In de wacht"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Inkomende oproep"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Inkomende zakelijke oproep"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Inkomende wifi-oproep"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Inkomende zakelijke oproep via wifi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Inkomend videogesprek"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Inkomend videoverzoek"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nieuwe voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nieuwe voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> bellen"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Voicemailnummer onbekend"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Geen service"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Geselecteerd netwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) niet beschikbaar"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Beantwoorden"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Ophangen"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Spraak"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Accepteren"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Sluiten"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Terugbellen"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Bericht"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Als je wilt bellen, moet je eerst de vliegtuigmodus uitschakelen."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Niet geregistreerd op netwerk."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobiel netwerk niet beschikbaar."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Als je wilt bellen, moet je een geldig nummer invoeren."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Kan niet bellen."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI-reeks starten..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service wordt niet ondersteund."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Kan niet schakelen tussen oproepen."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Kan oproep niet scheiden."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Kan niet doorschakelen."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Telefonische vergadering niet mogelijk."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Kan oproep niet weigeren."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Kan oproep(en) niet vrijgeven."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-oproep"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Noodoproep"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Radio inschakelen…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Geen bereik. Opnieuw proberen…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Kan niet bellen. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is geen alarmnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Kan niet bellen. Bel een alarmnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Toetsen gebruiken om te bellen"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Oproep in de wacht zetten"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Oproep hervatten"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Oproep beëindigen"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Toetsenblok"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Dempen"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Oproep toevoegen"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Samenvoegen"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Wisselen"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Oproepen beheren"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Telef. vergadering beheren"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Telefonische vergadering"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Beheren"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vid.gespr."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Wijzigen in spraakoproep"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Van camera wisselen"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Video onderbreken"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Meer opties"</string>
+    <string name="player_started" msgid="3478865572468310331">"Speler gestart"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Speler gestopt"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Camera niet gereed"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Camera gereed"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Onbekende oproepsessiegebeurtenis"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Service"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuratie"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Niet ingesteld&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Andere instellingen voor bellen"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"contactfoto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"privé"</string>
+    <string name="selectContact" msgid="92191462970821951">"contact selecteren"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Eigen reactie opstellen..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Annuleren"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Verzenden"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Beantwoorden"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Sms verzenden"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Weigeren"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Beantwoorden als videogesprek"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Beantwoorden als audiogesprek"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Videoverzoek accepteren"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Videoverzoek weigeren"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Verzoek voor video-overdracht accepteren"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Verzoek voor video-overdracht weigeren"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Verzoek voor video-ontvangst accepteren"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Verzoek voor video-ontvangst weigeren"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Veeg omhoog voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Veeg naar links voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Veeg naar rechts voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Veeg omlaag voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Trillen"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Trillen"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Geluid"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standaardgeluid (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Beltoon telefoon"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Trillen bij bellen"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Beltoon en trillen"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Telefonische vergadering beheren"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Alarmnummer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> seconden</item>
+      <item quantity="one">1 seconde</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuten</item>
+      <item quantity="one">1 minuut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
+      <item quantity="one">1 uur</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profielfoto"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Camera uit"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Notitie verzonden"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Recente berichten"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Bedrijfsinformatie"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mijl hiervandaan"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km hiervandaan"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Gaat morgen open om <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Gaat vandaag open om <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Sluit om <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Vandaag gesloten vanaf <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Nu geopend"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Nu gesloten"</string>
+</resources>
diff --git a/InCallUI/res/values-pa-rIN/strings.xml b/InCallUI/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000..a19a0c7
--- /dev/null
+++ b/InCallUI/res/values-pa-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ਫੋਨ"</string>
+    <string name="onHold" msgid="527593602772521700">"ਰੋਕੀ ਗਈ"</string>
+    <string name="unknown" msgid="3646075119047488748">"ਅਗਿਆਤ"</string>
+    <string name="private_num" msgid="6081418498487514686">"ਨਿੱਜੀ ਨੰਬਰ"</string>
+    <string name="payphone" msgid="5743050584468748607">"ਪੇ-ਫੋਨ"</string>
+    <string name="confCall" msgid="3181961445236675173">"ਕਾਨਫਰੰਸ ਕਾਲ"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ਕਾਲ ਡ੍ਰੌਪ ਹੋਈ"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ਸਪੀਕਰ"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ਹੈੱਡਸੈੱਟ ਈਯਰਪੀਸ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ਵਾਇਰ ਵਾਲਾ ਹੈੱਡਸੈੱਟ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"ਬਲੂਟੁੱਥ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ਕੀ ਅੱਗੇ ਦਿੱਤੀਆਂ ਗਈਆਂ ਧੁਨੀਆਂ ਭੇਜਣੀਆਂ ਹਨ?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ਧੁਨੀਆਂ ਭੇਜੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ਭੇਜੋ"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ਹਾਂ"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ਨਹੀਂ"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"ਵਾਈਲਡ ਅੱਖਰ ਨੂੰ ਇਸ ਨਾਲ ਬਦਲੋ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"ਕਾਨਫਰੰਸ ਕਾਲ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"ਵੌਇਸਮੇਲ ਨੰਬਰ"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ਡਾਇਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"ਦੁਬਾਰਾ ਡਾਇਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"ਕਾਨਫਰੰਸ ਕਾਲ"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ਆ ਰਹੀ ਕਾਲ"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ਕੰਮ ਸੰਬੰਧਿਤ ਆ ਰਹੀ ਕਾਲ"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ਕਾਲ ਸਮਾਪਤ ਹੋਈ"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ਰੋਕੀ ਗਈ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ਰੋਕੀ ਜਾ ਰਹੀ ਹੈ"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ਚਾਲੂ ਕਾਲ"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"ਮੇਰਾ ਨੰਬਰ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> ਹੈ"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ਵੀਡੀਓ ਨੂੰ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ਵੀਡੀਓ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ਵੀਡੀਓ ਕਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ਵੀਡੀਓ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕੀਤੀ ਗਈ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"ਤੁਹਾਡਾ ਕਾਲਬੈਕ ਨੰਬਰ \n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"ਤੁਹਾਡਾ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਨੰਬਰ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ਡਾਇਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"ਖੁੰਝੀ ਹੋਈ ਕਾਲ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"ਖੁੰਝੀਆਂ ਹੋਈਆਂ ਕਾਲਾਂ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ਖੁੰਝੀਆਂ ਹੋਈਆਂ ਕਾਲਾਂ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> ਤੋਂ ਖੁੰਝੀ ਹੋਈ ਕਾਲ"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"ਜਾਰੀ ਕਾਲ"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"ਕੰਮ ਸੰਬੰਧਿਤ ਜਾਰੀ ਕਾਲ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"ਜਾਰੀ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"ਕੰਮ ਸੰਬੰਧਿਤ ਜਾਰੀ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ਰੋਕੀ ਗਈ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ਆ ਰਹੀ ਕਾਲ"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ਕੰਮ ਸੰਬੰਧਿਤ ਆ ਰਹੀ ਕਾਲ"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ਆ ਰਹੀ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ਕੰਮ ਸੰਬੰਧਿਤ ਆ ਰਹੀ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ਆ ਰਹੀ ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ਆ ਰਹੀ ਵੀਡੀਓ ਬੇਨਤੀ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"ਨਵੀਂ ਵੌਇਸਮੇਲ"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"ਨਵੀਂ ਵੌਇਸਮੇਲ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ਡਾਇਲ ਕਰੋ"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ਵੌਇਸਮੇਲ ਨੰਬਰ ਅਗਿਆਤ"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"ਚੁਣਿਆ ਗਿਆ ਨੈੱਟਵਰਕ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"ਜਵਾਬ ਦਿਓ"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"ਰੋਕੋ"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ਵੀਡੀਓ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"ਵੌਇਸ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ਰੱਦ ਕਰੋ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ਵਾਪਸ ਕਾਲ ਕਰੋ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"ਸੁਨੇਹਾ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਜਹਾਜ਼ ਮੋਡ ਬੰਦ ਕਰੋ।"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ਨੈੱਟਵਰਕ \'ਤੇ ਰਜਿਸਟਰ ਨਹੀਂ।"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਇੱਕ ਵੈਧ ਨੰਬਰ ਦਾਖਲ ਕਰੋ।"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI ਕੜੀ ਨੂੰ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"ਸੇਵਾ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ਕਾਲਾਂ ਸਵਿੱਚ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ।"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ਵੱਖਰੇ ਤੌਰ \'ਤੇ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ਕਾਲ ਟ੍ਰਾਂਸਫਰ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"ਕਾਨਫਰੰਸ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ਕਾਲ ਰੱਦ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ਕਾਲ(ਲਾਂ) ਰੀਲੀਜ਼ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ।"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP ਕਾਲ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"ਐਮਰਜੈਂਸੀ ਕਾਲ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ਰੇਡੀਓ ਚਾਲੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨਹੀਂ ਹੈ।"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ਡਾਇਲ ਕਰਨ ਲਈ ਕੀ-ਬੋਰਡ ਵਰਤੋ"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ਕਾਲ ਰੋਕੋ"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ਕਾਲ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ਡਾਇਲਪੈਡ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ਮਿਊਟ ਕਰੋ"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ਕਾਲਾਂ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"ਅਦਲਾ-ਬਦਲੀ ਕਰੋ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ਕਾਲਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"ਕਾਨਫਰੰਸ ਕਾਲ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"ਕਾਨਫਰੰਸ ਕਾਲ"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ਔਡੀਓ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ਵੌਇਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ਕੈਮਰੇ \'ਤੇ ਬਦਲੋ"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ਵੀਡੀਓ ਰੋਕੋ"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ਹੋਰ ਚੋਣਾਂ"</string>
+    <string name="player_started" msgid="3478865572468310331">"ਪਲੇਅਰ ਸ਼ੁਰੂ ਹੋ ਗਿਆ"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ਪਲੇਅਰ ਰੁਕ ਗਿਆ"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"ਕੈਮਰਾ ਤਿਆਰ ਨਹੀਂ ਹੈ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"ਕੈਮਰਾ ਤਿਆਰ ਹੈ"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"ਅਗਿਆਤ ਕਾਲ ਸੈਸ਼ਨ ਵਰਤਾਰਾ"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"ਸੇਵਾ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ਸਥਾਪਨਾ"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;ਸੈੱਟ ਨਹੀਂ&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ਹੋਰ ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਆ ਰਹੀਆਂ ਕਾਲਾਂ"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"ਸੰਪਰਕ ਫੋਟੋ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ਨਿੱਜੀ ਵਿੱਚ ਬਦਲੋ"</string>
+    <string name="selectContact" msgid="92191462970821951">"ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"ਆਪਣੇ ਆਪ ਲਿਖੋ..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ਰੱਦ ਕਰੋ"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ਭੇਜੋ"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS ਭੇਜੋ"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ਵੀਡੀਓ ਕਾਲ ਵਜੋਂ ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ਔਡੀਓ ਕਾਲ ਵਜੋਂ ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ਵੀਡੀਓ ਬੇਨਤੀ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ਵੀਡੀਓ ਬੇਨਤੀ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ਵੀਡੀਓ ਟ੍ਰਾਂਸਮਿਟ ਬੇਨਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ਵੀਡੀਓ ਟ੍ਰਾਂਸਮਿਟ ਬੇਨਤੀ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ਵੀਡੀਓ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ਵੀਡੀਓ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਲਈ ਉੱਤੇ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਲਈ ਖੱਬੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਲਈ ਸੱਜੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਲਈ ਹੇਠਾਂ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ਥਰਥਰਾਹਟ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ਥਰਥਰਾਹਟ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ਧੁਨੀ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਧੁਨੀ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ਫੋਨ ਰਿੰਗਟੋਨ"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"ਘੰਟੀ ਵੱਜਣ \'ਤੇ ਥਰਥਰਾਹਟ"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ਰਿੰਗਟੋਨ ਅਤੇ ਥਰਥਰਾਹਟ"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"ਕਾਨਫਰੰਸ ਕਾਲ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"ਐਮਰਜੈਂਸੀ ਨੰਬਰ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਸਕਿੰਟ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਸਕਿੰਟ</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਮਿੰਟ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਮਿੰਟ</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਘੰਟੇ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਘੰਟੇ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"ਪ੍ਰੋਫਾਈਲ ਫੋਟੋ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ਕੈਮਰਾ ਬੰਦ ਹੈ"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ਰਾਹੀਂ"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ਹਾਲੀਆ ਸੁਨੇਹੇ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ਵਪਾਰ ਜਾਣਕਾਰੀ"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> ਮੀਲ ਦੂਰ"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> ਕਿ.ਮੀ. ਦੂਰ"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"ਕੱਲ੍ਹ <xliff:g id="OPEN_TIME">%s</xliff:g> ਵਜੇ ਖੁੱਲ੍ਹੇਗਾ"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ਅੱਜ <xliff:g id="OPEN_TIME">%s</xliff:g> ਵਜੇ ਖੁੱਲ੍ਹੇਗਾ"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ਵਜੇ ਬੰਦ ਹੋਵੇਗਾ"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ਅੱਜ <xliff:g id="CLOSE_TIME">%s</xliff:g> ਵਜੇ ਬੰਦ ਹੋਇਆ"</string>
+    <string name="open_now" msgid="4615706338669555999">"ਹੁਣ ਖੁੱਲ੍ਹਾ ਹੈ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ਹੁਣ ਬੰਦ ਹੈ"</string>
+</resources>
diff --git a/InCallUI/res/values-pl/strings.xml b/InCallUI/res/values-pl/strings.xml
new file mode 100644
index 0000000..2c2a1b9
--- /dev/null
+++ b/InCallUI/res/values-pl/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Wstrzymane"</string>
+    <string name="unknown" msgid="3646075119047488748">"Nieznany"</string>
+    <string name="private_num" msgid="6081418498487514686">"Numer prywatny"</string>
+    <string name="payphone" msgid="5743050584468748607">"Automat telefoniczny"</string>
+    <string name="confCall" msgid="3181961445236675173">"Połączenie konferencyjne"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Połączenie przerwane"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Głośnik"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Słuchawka telefonu"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Przewodowy zestaw słuchawkowy"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Wysłać te tony?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Wysyłanie tonów\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Wyślij"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Tak"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nie"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Zastąp symbol wieloznaczny"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Połączenie konferencyjne: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numer poczty głosowej"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Wybieranie"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ponowne wybieranie numeru"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Połączenie konferencyjne"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Połączenie przychodzące"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Przychodzące połączenie służbowe"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Połączenie zakończone"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Wstrzymane"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Rozłączanie"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Trwa połączenie"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mój numer to <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Rozpoczynanie rozmowy wideo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Rozmowa wideo"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Wysyłanie żądania wideo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Nie można nawiązać połączenia wideo"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Żądanie wideo zostało odrzucone"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Twój numer oddzwaniania\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Twój numer oddzwaniania dla połączeń alarmowych\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Wybieranie"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Nieodebrane połączenie"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Nieodebrane połączenia"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Nieodebrane połączenia: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Nieodebrane połączenie od: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Trwa połączenie"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Trwa połączenie służbowe"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Trwa połączenie przez Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Trwa połączenie służbowe przez Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Wstrzymane"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Połączenie przychodzące"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Przychodzące połączenie służbowe"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Przychodzące połączenie przez Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Przychodzące połączenie służbowe przez Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Przychodząca rozmowa wideo"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Przychodzące żądanie wideo"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nowa poczta głosowa"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nowa poczta głosowa (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Wybierz numer <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nieznany numer poczty głosowej"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Brak usługi"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Wybrana sieć (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) jest niedostępna"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Odbierz"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Rozłącz"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Wideo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Głos"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Zaakceptuj"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Odrzuć"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Oddzwoń"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Wyślij SMS-a"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Aby rozpocząć połączenie, wyłącz najpierw tryb samolotowy."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nie zarejestrowano w sieci."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sieć komórkowa jest niedostępna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Aby zadzwonić, wybierz prawidłowy numer."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Nie można dzwonić."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Rozpoczynam sekwencję MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Usługa nie jest obsługiwana."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Nie można przełączyć połączeń."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Nie można rozdzielić połączenia."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nie można przekazać."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Nie można nawiązać połączenia konferencyjnego."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Nie można odrzucić połączenia."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Nie można zwolnić połączeń."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Połączenie SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Połączenie alarmowe"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Włączam radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Brak sieci. Próbuję ponownie…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Nie można dzwonić. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie jest numerem alarmowym."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Nie można dzwonić. Wybierz numer alarmowy."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Aby zadzwonić, użyj klawiatury"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Wstrzymaj połączenie"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Wznów połączenie"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Zakończ połączenie"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Klawiatura"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Wycisz"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Dodaj połączenie"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Scal połączenia"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Przełącz"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Zarządzaj połączeniami"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Zarządzaj połączeniem konferencyjnym"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Połączenie konferencyjne"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Zarządzaj"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Dźwięk"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Rozmowa wideo"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zmień na połączenie głosowe"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Przełącz kamerę"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Wstrzymaj wideo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Więcej opcji"</string>
+    <string name="player_started" msgid="3478865572468310331">"Odtwarzacz włączony"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Odtwarzacz zatrzymany"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera niegotowa"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera gotowa"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Nieznane zdarzenie sesji połączenia"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Usługa"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfiguracja"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nie ustawiono&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Inne ustawienia połączeń"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Nawiązywanie połączenia przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Przychodzące z sieci <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"zdjęcie kontaktu"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"przejdź do rozmowy prywatnej"</string>
+    <string name="selectContact" msgid="92191462970821951">"wybierz kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napisz własną..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Anuluj"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Wyślij"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Odbierz"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Wyślij SMS-a"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Odrzuć"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Odbierz jako rozmowę wideo"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Odbierz jako rozmowę audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Zaakceptuj żądanie wideo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Odrzuć żądanie wideo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Zaakceptuj wysyłanie obrazu wideo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Odrzuć wysyłanie obrazu wideo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Zaakceptuj odbieranie obrazu wideo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Odrzuć odbieranie obrazu wideo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Przesuń w górę: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Przesuń w lewo: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Przesuń w prawo: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Przesuń w dół: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Wibracje"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Wibracje"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Dźwięk"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Domyślny dźwięk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Dzwonek telefonu"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Wibracje z dzwonkiem"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Dzwonek i wibracje"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Zarządzaj połączeniem konferencyjnym"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Numer alarmowy"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> sekund</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="one">1 sekunda</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minuty</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuty</item>
+      <item quantity="one">1 minuta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> godziny</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> godzin</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> godziny</item>
+      <item quantity="one">1 godzina</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Zdjęcie profilowe"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera wyłączona"</string>
+    <string name="child_number" msgid="4469090994612105532">"z <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Notatka wysłana"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Ostatnie wiadomości"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informacje o firmie"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil(e) stąd"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km stąd"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>-<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Otwarte jutro od <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Otwarte dzisiaj od <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zamknięte od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Zamknięte dzisiaj od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Teraz otwarte"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Teraz zamknięte"</string>
+</resources>
diff --git a/InCallUI/res/values-pt-rBR/strings.xml b/InCallUI/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..35ef3b8
--- /dev/null
+++ b/InCallUI/res/values-pt-rBR/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefone"</string>
+    <string name="onHold" msgid="527593602772521700">"Em espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconhecido"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Chamada a cobrar"</string>
+    <string name="confCall" msgid="3181961445236675173">"Teleconferência"</string>
+    <string name="call_lost" msgid="8208184291640961172">"A chamada caiu."</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Alto-falante"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Minifone do aparelho"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Fone de ouvido com fio"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Enviar os seguintes tons?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Enviando tons\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sim"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Não"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Substituir caractere curinga por"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Teleconferência <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número do correio de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Discando"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Rediscando"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Teleconferência"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Chamada recebida"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Chamada trabalho recebida"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Chamada encerrada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Em espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Desligando"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Em chamada"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Conectando vídeo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videochamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Solicitando vídeo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Não é possível conectar a videochamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Solicitação de vídeo rejeitada"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Seu número de retorno de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Seu número de retorno de chamada de emergência\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Discando"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Chamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Chamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Chamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Chamanda em andamento"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Chamada de trabalho em andamento"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Chamada por Wi-Fi em andamento"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Chamada de trabalho por Wi-Fi em andamento"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Em espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Chamada recebida"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Chamada de trabalho recebida"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Chamada por Wi-Fi recebida"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Chamada de trabalho recebida por Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videochamada recebida"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitação de vídeo recebida"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Novo correio de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Novo correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Discar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número correio de voz desconhecido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sem serviço"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"A rede selecionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) está indisponível"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Atender"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Desligar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vídeo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceitar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Dispensar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Retor. cham."</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para fazer uma chamada, primeiro desative o modo avião."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Não registrado na rede."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede celular não disponível."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para realizar uma chamada, digite um número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Não é possível realizar chamadas."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iniciando sequência MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Serviço não compatível."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Não é possível alternar as chamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Não é possível separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Não é possível transferir a chamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Não é possível fazer uma conferência."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Não é possível rejeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Não é possível liberar chamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Chamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Chamada de emergência"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ativando o rádio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Sem serviço. Tentando novamente..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Não é possível realizar chamadas. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Não é possível realizar chamadas. Disque um número de emergência."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Use o teclado para discar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Colocar chamada em espera"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Retomar chamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Encerrar chamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Desativar som"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Adicionar chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Mesclar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Trocar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gerenciar chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gerenciar teleconferência"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Teleconferência"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gerenciar"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Áudio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Alterar para chamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Alternar câmera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player iniciado"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player interrompido"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"A câmera não está pronta"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Câmera pronta"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sessão de chamada desconhecido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Serviço"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuração"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Não definido&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Outras configurações de chamada"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Chamando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto do contato"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"conversar em particular"</string>
+    <string name="selectContact" msgid="92191462970821951">"selecionar contato"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escreva sua resposta..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Atender"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Recusar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Atender como videochamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Atender como chamada de áudio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aceitar solicitação de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Recusar solicitação de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aceitar solicitação de transmissão de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Recusar solicitação de transmissão de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aceitar solicitação de recebimento de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Recusar solicitação de recebimento de vídeo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para cima."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a esquerda."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a direita."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para baixo."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Som"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Som padrão (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Toque do telefone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar ao tocar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Toque e vibração"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gerenciar teleconferência"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emergência"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Câmera desligada"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensagens recentes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informações sobre a empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> milhas de distância"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km de distância"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre amanhã às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoje às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Fecha às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Fechou hoje às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Aberto agora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Fechado agora"</string>
+</resources>
diff --git a/InCallUI/res/values-pt-rPT/strings.xml b/InCallUI/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..81374ea
--- /dev/null
+++ b/InCallUI/res/values-pt-rPT/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefone"</string>
+    <string name="onHold" msgid="527593602772521700">"Em espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconhecido"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefone público"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conferência"</string>
+    <string name="call_lost" msgid="8208184291640961172">"A chamada caiu"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altifalante"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Auricular do telefone"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Auscultadores com fios"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Pretende enviar os seguintes tons?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"A enviar tons\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sim"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Não"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Substituir o caráter universal por"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conferência <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número do correio de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"A marcar"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"A remarcar"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conferência"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Chamada recebida"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Chamada de trab. recebida"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Chamada terminada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Em espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"A desligar"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Numa chamada"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"O meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"A ligar vídeo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videochamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"A solicitar vídeo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Não é possível ligar a videochamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Pedido de vídeo rejeitado"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"O seu número de retorno de chamadas\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"O seu número de retorno de chamadas de emergência\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"A marcar"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Chamada não atendida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Chamadas não atendidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas não atendidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Chamada não atendida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Chamada em curso"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Chamada de trabalho em curso"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Chamada Wi-Fi em curso"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Chamada de trabalho via Wi-Fi em curso"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Em espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Chamada recebida"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Chamada de trab. recebida"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Chamada Wi-Fi recebida"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Chamada de trabalho recebida via Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videochamada recebida"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Pedido de vídeo recebido"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nova mensagem de correio de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nova mensagem de correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número do correio de voz desconhecido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sem serviço"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Rede selecionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) indisponível"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Atender"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Desligar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vídeo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceitar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ligar de volta"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para efetuar uma chamada, desative primeiro o Modo de avião."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Sem registo na rede."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede móvel não disponível."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para efetuar uma chamada, introduza um número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Não é possível telefonar."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"A iniciar sequência de MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Serviço não suportado."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Não é possível alternar entre chamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Não é possível separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Não é possível transferir."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Não é possível efetuar uma conferência."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Não é possível rejeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Não é possível libertar as chamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Chamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Chamada de emergência"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"A ligar o rádio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Sem serviço. A tentar novamente…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Não é possível telefonar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Não é possível telefonar. Marque um número de emergência."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Utilizar o teclado para marcar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Colocar chamada em espera"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Retomar chamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Terminar chamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Desativar som"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Adicionar chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Intercalar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Trocar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gerir chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gerir conferência"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conferência"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gerir"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Áudio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videochamada"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mudar para chamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Trocar câmara"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Interromper vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
+    <string name="player_started" msgid="3478865572468310331">"Leitor iniciado"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Leitor interrompido"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"A câmara não está pronta"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Câmara pronta"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sessão de chamada desconhecido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Serviço"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuração"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Não definido&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Outras definições de chamadas"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"A telefonar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Recebidas através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto do contacto"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"tornar privado"</string>
+    <string name="selectContact" msgid="92191462970821951">"selecionar contacto"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escreva a sua própria..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Atender"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Recusar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Atender como videochamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Atender como chamada de áudio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aceitar pedido de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Recusar pedido de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aceitar pedido para transmitir vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Recusar pedido para transmitir vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aceitar pedido para receber vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Recusar pedido para receber vídeo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Deslize lentamente para cima para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Deslize lentamente para a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Deslize lentamente para a direita para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Deslize lentamente para baixo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Som"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Som predefinido (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Toque do telemóvel"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar ao tocar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Tocar e vibrar"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gerir conferência"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emergência"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="one">1 segundo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="one">1 minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="one">1 hora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Câmara desligada"</string>
+    <string name="child_number" msgid="4469090994612105532">"através de <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensagens recentes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informações da empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"A <xliff:g id="DISTANCE">%.1f</xliff:g> milhas de distância"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distância"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre amanhã às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoje às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Fecha às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Fechou hoje às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Aberto agora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Fechado agora"</string>
+</resources>
diff --git a/InCallUI/res/values-pt/strings.xml b/InCallUI/res/values-pt/strings.xml
new file mode 100644
index 0000000..35ef3b8
--- /dev/null
+++ b/InCallUI/res/values-pt/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefone"</string>
+    <string name="onHold" msgid="527593602772521700">"Em espera"</string>
+    <string name="unknown" msgid="3646075119047488748">"Desconhecido"</string>
+    <string name="private_num" msgid="6081418498487514686">"Número privado"</string>
+    <string name="payphone" msgid="5743050584468748607">"Chamada a cobrar"</string>
+    <string name="confCall" msgid="3181961445236675173">"Teleconferência"</string>
+    <string name="call_lost" msgid="8208184291640961172">"A chamada caiu."</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Alto-falante"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Minifone do aparelho"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Fone de ouvido com fio"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Enviar os seguintes tons?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Enviando tons\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Sim"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Não"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Substituir caractere curinga por"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Teleconferência <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Número do correio de voz"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Discando"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Rediscando"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Teleconferência"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Chamada recebida"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Chamada trabalho recebida"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Chamada encerrada"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Em espera"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Desligando"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Em chamada"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Conectando vídeo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videochamada"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Solicitando vídeo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Não é possível conectar a videochamada"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Solicitação de vídeo rejeitada"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Seu número de retorno de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Seu número de retorno de chamada de emergência\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Discando"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Chamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Chamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Chamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Chamanda em andamento"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Chamada de trabalho em andamento"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Chamada por Wi-Fi em andamento"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Chamada de trabalho por Wi-Fi em andamento"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Em espera"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Chamada recebida"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Chamada de trabalho recebida"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Chamada por Wi-Fi recebida"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Chamada de trabalho recebida por Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Videochamada recebida"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitação de vídeo recebida"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Novo correio de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Novo correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Discar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Número correio de voz desconhecido"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Sem serviço"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"A rede selecionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) está indisponível"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Atender"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Desligar"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Vídeo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Voz"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Aceitar"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Dispensar"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Retor. cham."</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Para fazer uma chamada, primeiro desative o modo avião."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Não registrado na rede."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede celular não disponível."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Para realizar uma chamada, digite um número válido."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Não é possível realizar chamadas."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iniciando sequência MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Serviço não compatível."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Não é possível alternar as chamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Não é possível separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Não é possível transferir a chamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Não é possível fazer uma conferência."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Não é possível rejeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Não é possível liberar chamadas."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Chamada SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Chamada de emergência"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ativando o rádio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Sem serviço. Tentando novamente..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Não é possível realizar chamadas. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Não é possível realizar chamadas. Disque um número de emergência."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Use o teclado para discar"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Colocar chamada em espera"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Retomar chamada"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Encerrar chamada"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Desativar som"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Adicionar chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Mesclar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Trocar"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gerenciar chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gerenciar teleconferência"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Teleconferência"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gerenciar"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Áudio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Alterar para chamada de voz"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Alternar câmera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
+    <string name="player_started" msgid="3478865572468310331">"Player iniciado"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Player interrompido"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"A câmera não está pronta"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Câmera pronta"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Evento de sessão de chamada desconhecido"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Serviço"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configuração"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Não definido&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Outras configurações de chamada"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Chamando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"foto do contato"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"conversar em particular"</string>
+    <string name="selectContact" msgid="92191462970821951">"selecionar contato"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Escreva sua resposta..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Cancelar"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Enviar"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Atender"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Recusar"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Atender como videochamada"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Atender como chamada de áudio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Aceitar solicitação de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Recusar solicitação de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Aceitar solicitação de transmissão de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Recusar solicitação de transmissão de vídeo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Aceitar solicitação de recebimento de vídeo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Recusar solicitação de recebimento de vídeo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para cima."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a esquerda."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a direita."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para baixo."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Som"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Som padrão (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Toque do telefone"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrar ao tocar"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Toque e vibração"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gerenciar teleconferência"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Número de emergência"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> segundos</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Câmera desligada"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mensagens recentes"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informações sobre a empresa"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> milhas de distância"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km de distância"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Abre amanhã às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Abre hoje às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Fecha às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Fechou hoje às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Aberto agora"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Fechado agora"</string>
+</resources>
diff --git a/InCallUI/res/values-ro/strings.xml b/InCallUI/res/values-ro/strings.xml
new file mode 100644
index 0000000..de2aadb
--- /dev/null
+++ b/InCallUI/res/values-ro/strings.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"În așteptare"</string>
+    <string name="unknown" msgid="3646075119047488748">"Necunoscut"</string>
+    <string name="private_num" msgid="6081418498487514686">"Număr privat"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefon public"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conferință telefonică"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Apelul s-a încheiat"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Difuzor"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Casca receptorului"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Set căști-microfon cu fir"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Trimiteți următoarele tonuri?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Se trimit tonuri\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Trimiteți"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Da"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nu"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Înlocuiți metacaracterul cu"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conferință telefonică <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numărul mesageriei vocale"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Se apelează"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Se reapelează"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conferință telefonică"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Apel primit"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Apel de serviciu primit"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Apel încheiat"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"În așteptare"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Se încheie apelul"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Apel în desfășurare"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Numărul meu este <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Se conectează apelul video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Apel video"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Se solicită apel video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Nu se poate conecta apelul video"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Solicitarea pentru apel video a fost respinsă"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Numărul de apelare inversă\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Numărul de apelare inversă de urgență\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Se apelează"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Apel nepreluat"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Apeluri nepreluate"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (de) apeluri nepreluate"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Apel nepreluat de la <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Apel în desfășurare"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Apel de serviciu în desfășurare"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Apel prin Wi-Fi în desfășurare"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Apel de serviciu prin Wi-Fi în desfășurare"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"În așteptare"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Apel primit"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Apel de serviciu primit"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Apel prin Wi-Fi primit"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Apel de serviciu prin Wi-Fi primit"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Apel video primit"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Solicitare de trecere la apel video"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Mesaj vocal nou"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Mesaj vocal nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Apelați <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Numărul mesageriei vocale este necunoscut"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Fără semnal"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Rețeaua selectată (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nu este disponibilă"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Răspundeți"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Încheiați apelul"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Apel video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Apel vocal"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Acceptați"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Refuzați"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Apelați înapoi"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Trimiteți mesaj"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Pentru a apela, mai întâi dezactivați modul Avion."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Neînregistrat în rețea."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rețeaua mobilă nu este disponibilă."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Pentru a apela, introduceți un număr valid."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Nu se poate apela."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Se pornește secvența MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Serviciul nu este acceptat."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Apelurile nu pot fi comutate."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Apelul nu poate fi separat."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nu se poate transfera."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Conferința telefonică nu poate fi inițiată."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Apelul nu poate fi respins."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Apelurile nu pot fi eliberate."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Apel SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Apel de urgență"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Se activează radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Fără semnal. Se încearcă din nou…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Nu se poate apela. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgență."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Nu se poate apela. Formați un număr de urgență."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Folosiți tastatura pentru a apela"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Puneți apelul în așteptare"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Reluați apelul"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Încheiați apelul"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tastatură numerică"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Dezactivați sunetul"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Adăugați un apel"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Îmbinați apelurile"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Schimbați"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gestionați apelurile"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gestionați conferința telefonică"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conferință telefonică"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Gestionați"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Apel video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Treceți la apel vocal"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Comutați camera foto"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Întrerupeți apelul video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Mai multe opțiuni"</string>
+    <string name="player_started" msgid="3478865572468310331">"Playerul a pornit"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Playerul s-a oprit"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Camera foto nu este pregătită"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Camera foto este pregătită"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Eveniment necunoscut privind o sesiune de apeluri"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Furnizor de servicii"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Configurați"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nesetat&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Alte setări de apel"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Primite prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotografia persoanei de contact"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"treceți în modul privat"</string>
+    <string name="selectContact" msgid="92191462970821951">"selectați o persoană de contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Scrieți propriul răspuns…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Anulați"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Trimiteți"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Răspundeți"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Trimiteți SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Refuzați"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Răspundeți ca apel video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Răspundeți ca apel audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Acceptați solicitarea de a trece la apel video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Refuzați solicitarea de a trece la apel video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Acceptați solicitarea de a transmite conținut video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Refuzați solicitarea de a transmite conținut video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Acceptați solicitarea de a primi conținut video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Refuzați solicitarea de a primi conținut video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Glisați în sus ca să <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Glisați spre stânga ca să <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Glisați spre dreapta ca să <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Glisați în jos ca să <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrații"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrații"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Sunet"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sunet prestabilit (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ton de sonerie pentru telefon"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrează când sună"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ton de sonerie și vibrații"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Gestionați conferința telefonică"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Număr de urgență"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> secunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de secunde</item>
+      <item quantity="one">O secundă</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de minute</item>
+      <item quantity="one">Un minut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ore</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de ore</item>
+      <item quantity="one">O oră</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Fotografie de profil"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Camera foto este oprită"</string>
+    <string name="child_number" msgid="4469090994612105532">"pe <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Nota a fost trimisă"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mesaje recente"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informații despre companie"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi distanță"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km distanță"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Deschide mâine la <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Deschide astăzi la <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Închide la <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"A închis astăzi la <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Acum este deschis"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Acum este închis"</string>
+</resources>
diff --git a/InCallUI/res/values-ru/strings.xml b/InCallUI/res/values-ru/strings.xml
new file mode 100644
index 0000000..b9031c2
--- /dev/null
+++ b/InCallUI/res/values-ru/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"На удержании"</string>
+    <string name="unknown" msgid="3646075119047488748">"Неизвестный абонент"</string>
+    <string name="private_num" msgid="6081418498487514686">"Скрытый номер"</string>
+    <string name="payphone" msgid="5743050584468748607">"Телефон-автомат"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференц-вызов"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Звонок сброшен"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Динамик"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Динамик гарнитуры"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Проводная гарнитура"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Отправить следующие тоны?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Отправка тональных сигналов\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Отправить"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Да"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Нет"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Заменить универсальный символ на"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конференц-вызов: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Номер голосовой почты"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Набор номера…"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Повторный вызов"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференц-вызов"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Входящий вызов"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Входящий вызов (работа)"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Вызов завершен"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"На удержании"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Завершение разговора"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Вызов"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Мой номер: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Подключение видео"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видеовызов"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Запрос видео"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Не удалось совершить видеовызов"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Видеовызов отклонен"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Номер обратного вызова:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Номер обратного вызова для экстренных служб:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Набор номера…"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Пропущенный вызов"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Пропущенные вызовы"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Пропущенных вызовов: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Пропущенные вызовы от абонента <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Текущий вызов"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Текущий звонок (работа)"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Текущий Wi-Fi-звонок"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Текущий Wi-Fi-звонок (работа)"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"На удержании"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Входящий вызов"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Входящий вызов (работа)"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Входящий Wi-Fi-звонок"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Входящий Wi-Fi-звонок (работа)"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Входящий видеовызов"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Входящий видеовызов"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Новое сообщение голосовой почты"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Новое сообщение голосовой почты (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Набрать номер <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Номер голосовой почты неизвестен"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Нет сигнала"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Выбранная сеть (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недоступна."</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Ответить"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Завершить"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Голос"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Разрешить"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Закрыть"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Перезвонить"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Написать SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Отключите режим полета."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Нет регистрации в сети."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобильная сеть недоступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Недействительный номер."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Не удалось позвонить."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Запуск последовательности MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Сервис не поддерживается."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Не удалось переключить вызов."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Не удалось разделить вызов."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Не удалось перенести."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Не удалось выполнить конференц-вызов."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Не удалось отклонить вызов."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Не удалось разъединить."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Вызов SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Экстренный вызов"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Включение радио…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Нет сигнала. Повторная попытка…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Не удалось позвонить. Номер <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не принадлежит экстренным службам."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Не удалось позвонить. Наберите номер экстренных служб."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Используйте клавиатуру для набора номера"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Удерживать вызов"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Возобновить вызов"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Завершить вызов"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Кнопки"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Отключить звук"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Добавить вызов"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Объединить вызовы"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Перевести звонок"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Управление вызовами"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Настройка конференц-связи"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференц-вызов"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Управление"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеовызов"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Отключить видео"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Сменить камеру"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Приостановить видео"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Другие настройки"</string>
+    <string name="player_started" msgid="3478865572468310331">"Видеоплеер включен"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Видеоплеер отключен"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камера недоступна"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камера доступна"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Неизвестное событие сеанса связи"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Служба"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Настройка"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Не задано&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Другие настройки вызовов"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Звонок через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Входящий вызов (оператор: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"фотография контакта"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"приватная конференция"</string>
+    <string name="selectContact" msgid="92191462970821951">"выбрать контакт"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Ваш ответ…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Отмена"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Отправить"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Ответить"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Отправить SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Отклонить"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Ответить с видео"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Ответить на голосовой вызов"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Ответить на видеовызов"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Отклонить видеовызов"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Разрешить передачу видео"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Отклонить передачу видео"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Принять видео"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Отклонить видео"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Проведите вверх, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Проведите влево, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Проведите вправо, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Проведите вниз, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Вибросигнал"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Вибросигнал"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Звук"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"По умолчанию (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Рингтон"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Вибросигнал и рингтон"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Мелодия звонка и вибросигнал"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Настройка конференц-связи"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Экстренная служба"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> секунда</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> секунды</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунды</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> минута</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> минуты</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> минут</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минуты</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> час</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> часа</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> часов</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Фото профиля"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камера отключена"</string>
+    <string name="child_number" msgid="4469090994612105532">"через <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Сообщение отправлено"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Недавние сообщения"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Информация о компании"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> мил."</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Откроется завтра в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Откроется сегодня в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Работает до <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Сегодня не работает с <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Сейчас открыто"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Сейчас закрыто"</string>
+</resources>
diff --git a/InCallUI/res/values-si-rLK/strings.xml b/InCallUI/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..557222f
--- /dev/null
+++ b/InCallUI/res/values-si-rLK/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"දුරකථනය"</string>
+    <string name="onHold" msgid="527593602772521700">"රඳවා ගනිමින්"</string>
+    <string name="unknown" msgid="3646075119047488748">"නොදනී"</string>
+    <string name="private_num" msgid="6081418498487514686">"රහසිගත අංකය"</string>
+    <string name="payphone" msgid="5743050584468748607">"පේෆෝනය"</string>
+    <string name="confCall" msgid="3181961445236675173">"සම්මන්ත්‍රණ ඇමතුම"</string>
+    <string name="call_lost" msgid="8208184291640961172">"ඇමතුම නැවතුණි"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"නාදකය"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"හෑන්ඩ්සෙටයේ සවන් කඬ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"රැහැන් සහිත හෙඩ්සෙටය"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"බ්ලූටූත්"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"පහත නාද යවන්නද?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"නාද යවමින්\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"යවන්න"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ඔව්"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"නැත"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"අනුලකුණ ප්‍රතිස්ථාපනය කරන්නේ"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"සම්මන්ත්‍රණ ඇමතුම <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"හඬ තැපැල් අංකය"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ඩයල් කරමින්"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"නැවත ඩයල් කරමින්"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"සම්මන්ත්‍රණ ඇමතුම"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"එන ඇමතුම"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"එන කාර්යාල ඇමතුම"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"ඇමතුම අවසන් විය"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"රඳවා ගනිමින්"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"විසන්ධි කරමින්"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"ඇමතුමක"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"මගේ අංකය <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"වීඩියෝවකට සම්බන්ධ කරමින්"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"වීඩියෝ ඇමතුම"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"වීඩියෝවක් ඉල්ලමින්"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"වීඩියෝ ඇමතුම සම්බන්ධ කළ නොහැක"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"වීඩියෝ ඉල්ලීම ප්‍රතික්ෂේප කරන ලදී"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"ඔබේ පසුඇමතුම් අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"ඔබගේ හදිසි පසුඇමතුම් අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ඩයල් කරමින්"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"මඟ හැරුණු ඇමතුම"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"මඟ හැරුණු ඇමතුම්"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"මඟ හැරුණු ඇමතුම් <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> වෙතින් මඟ හැරුණු ඇමතුම"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"කරගෙන යන ඇමතුම"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"කරගෙන යන කාර්යාල ඇමතුම"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"දැනට කරගෙන යන Wi-Fi ඇමතුම"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"කරගෙන යන Wi-Fi කාර්යාල ඇමතුම"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"රඳවා ගනිමින්"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"එන ඇමතුම"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"එන කාර්යාල ඇමතුම"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"එන Wi-Fi ඇමතුම"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"එන Wi-Fi කාර්යාල ඇමතුම"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"එන වීඩියෝ ඇමතුම"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"එන වීඩියෝ ඉල්ලීම"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"නව හඬ තැපෑල"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"නව හඬ තැපැල් (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ඩයල් කරන්න"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"හඬ තැපැල් අංකය නොදනී"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"සේවාව නැත"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"තෝරා ඇති ජාලය (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) නොමැත"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"පිළිතුරු දෙන්න"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"විසන්ධි කරන්න"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"වීඩියෝව"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"හඬ"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"පිළිගන්න"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"අස් කරන්න"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"පසුඇමතුම"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"පණිවිඩය"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"ඇමතුමක් ගැනීමට, මුලින්ම ගුවන් යානා ප්‍රකාරය ක්‍රියාවිරහිත කරන්න."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ජාලය මත ලියාපදිංචි වී නැත."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"සෙලියුලර් ජාලය නොතිබේ."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"ඇමතුමක් ගැනීමට, වලංගු අංකයක් ඇතුළු කරන්න."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ඇමතුම් ගැනීමට නොහැක."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI අනුපිළිවෙළ ආරම්භ කරමින්…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"සේවාවට සහාය දක්වන්නේ නැත."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ඇමතුම් මාරු කිරීම කළ නොහැක."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ඇමතුම වෙන් කිරීම කළ නොහැක."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"මාරු කිරීමට නොහැක."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"සම්මන්ත්‍රණය කළ නොහැක."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ඇමතුම ප්‍රතික්ෂේප කළ නොහැක."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ඇමතුම(ම්) මුදාහැරීම කළ නොහැක."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP ඇමතුම"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"හදිසි ඇමතුම"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"රේඩියෝව ක්‍රියාත්මක කරමින්…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"සේවාව නැත. නැවත උත්සාහ කරමින්…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"ඇමතීමට නොහැකිය. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> මෙය හදිසි ඇමතුම් අංකයක් නොවේ."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ඇමතිය නොහැක. හදිසි අංකයක් අමතන්න."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ඩයල් කිරීමට යතුරු පුවරුව භාවිත කරන්න"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"ඇමතුම රඳවා ගන්න"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"ඇමතුම නැවත පටන් ගන්න"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"ඇමතුම අවසන් කරන්න"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ඩයල් පෑඩය"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"නිහඬ කරන්න"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"ඇමතුමක් එක් කරන්න"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"ඇමතුම් ඒකාබද්ධ කරන්න"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"මාරු කරන්න"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"ඇමතුම් කළමනාකරණය කරන්න"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"සම්මන්ත්‍රණ ඇමතුම කළමනාකරණය කරන්න"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"සම්මන්ත්‍රණ ඇමතුම"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"කළමනාකරණය කරන්න"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ශ්‍රව්‍යය"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"වීඩියෝ ඇමතුම"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"හඬ ඇමතුමක් වෙත මාරු කරන්න"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"කැමරාව මාරු කරන්න"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"විඩියෝව විරාම කරන්න"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"තවත් විකල්ප"</string>
+    <string name="player_started" msgid="3478865572468310331">"ධාවකය ආරම්භ කරන ලදි"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ධාවකය නැවතුණි"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"කැමරාව සූදානම් නැහැ"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"කැමරාව සූදානම්"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"නොදන්නා ඇමතුම් සැසි සිදුවීම"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"සේවාව"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"පිහිටුවීම"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;පිහිටුවා නැත&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"වෙනත් ඇමතුම් සැකසීම්"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා අමතමින්"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා එන"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"සම්බන්ධතා ඡායාරූපය"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"රහසිගත වන්න"</string>
+    <string name="selectContact" msgid="92191462970821951">"සම්බන්ධතාවය තෝරාගන්න"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"ඔබේම එකක් ලියන්න..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"අවලංගු කරන්න"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"යවන්න"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"පිළිතුරු දෙන්න"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS යවන්න"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ප්‍රතික්ෂේප කිරීම"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"වීඩියෝ ඇමතුමට පිළිතුරු දෙන්න"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ශ්‍රව්‍ය ඇමතුමට පිළිතුරු දෙන්න"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"වීඩියෝ ඉල්ලීම පිළිගන්න"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"වීඩියෝ ඉල්ලීම ප්‍රතික්ෂේප කරන්න"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"වීඩියෝ සම්ප්‍ර්ෂණ ඉල්ලීම පිළිගන්න"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"වීඩියෝ සම්ප්‍ර්ෂණ ඉල්ලීම ප්‍රතික්ෂේප කරන්න"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"වීඩියෝ ලැබීමේ ඉල්ලීම පිළිගන්නා ලදි"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"වීඩියෝ ලැබීමේ ඉල්ලීම ප්‍රතික්ෂේප කරන්න"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා උඩට සර්පණය කරන්න."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා වමට සර්පණය කරන්න."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා දකුණට සර්පණය කරන්න."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා පහළට සර්පණය කරන්න."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"කම්පනය"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"කම්පනය"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"හඬ"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"පෙරනිමි ශබ්දය (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"දුරකථන රිගින්ටෝනය"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"රිගින් වන විට කම්පන වන්න"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"රිගින් ටෝන් සහ කම්පනය කරන්න"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"සම්මන්ත්‍රණ ඇමතුම කළමනාකරණය කරන්න"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"හදිසි ඇමතුම් අංකය"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one">තත්පර <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="other">තත්පර <xliff:g id="COUNT">%d</xliff:g></item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one">මිනිත්තු <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="other">මිනිත්තු <xliff:g id="COUNT">%d</xliff:g></item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one">පැය <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="other">පැය <xliff:g id="COUNT">%d</xliff:g></item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"පැතිකඩ ඡායාරූපය"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"කැමරාව ක්‍රියාවිරහිතයි"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> හරහා"</string>
+    <string name="note_sent" msgid="7623014827902758398">"සටහන යවන ලදී"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"මෑත පණිවිඩ"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ව්‍යාපාර තොරතුරු"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"සැතපුම් <xliff:g id="DISTANCE">%.1f</xliff:g>ක් ඈතින්"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"කි.මි. <xliff:g id="DISTANCE">%.1f</xliff:g>ක් ඈතින්"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"හෙට <xliff:g id="OPEN_TIME">%s</xliff:g>ට විවෘත කෙරේ"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"අද <xliff:g id="OPEN_TIME">%s</xliff:g>ට විවෘත කෙරේ"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>ට වසයි"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"අද <xliff:g id="CLOSE_TIME">%s</xliff:g>ට වසන ලදී"</string>
+    <string name="open_now" msgid="4615706338669555999">"දැන් විවෘතයි"</string>
+    <string name="closed_now" msgid="2635314668145282080">"දැන් වසා ඇත"</string>
+</resources>
diff --git a/InCallUI/res/values-sk/strings.xml b/InCallUI/res/values-sk/strings.xml
new file mode 100644
index 0000000..c6004ec
--- /dev/null
+++ b/InCallUI/res/values-sk/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefón"</string>
+    <string name="onHold" msgid="527593602772521700">"Podržaný hovor"</string>
+    <string name="unknown" msgid="3646075119047488748">"Neznáme"</string>
+    <string name="private_num" msgid="6081418498487514686">"Súkromné číslo"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefónny automat"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferenčný hovor"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Hovor bol prerušený"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Reproduktor"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Slúchadlo"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Náhlavná súprava s káblom"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Odoslať nasledujúce tóny?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Odosielanie tónov\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Odoslať"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Áno"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nie"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Nahradiť zástupný znak znakom"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferenčný hovor <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Číslo hlasovej schránky"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Vytáča sa"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Znova sa vytáča"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferenčný hovor"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Prichádzajúci hovor"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Prichádzajúci prac. hovor"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Hovor bol ukončený"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Podržaný hovor"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Ukončovanie hovoru"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Prebieha hovor"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Moje číslo je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Pripája sa video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videohovor"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Žiada sa video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videohovor nie je možné pripojiť"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Žiadosť o video bola odmietnutá"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Vaše číslo na spätné volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Vaše číslo na spätné tiesňové volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Vytáča sa"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Zmeškaný hovor"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Zmeškané hovory"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Zmeškaný hovor od volajúceho <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Prebiehajúci hovor"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Prebiehajúci pracovný hovor"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Odchádzajúci hovor cez Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Prebiehajúci pracovný hovor cez Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Podržaný hovor"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Prichádzajúci hovor"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Prichádzajúci pracovný hovor"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Prichádzajúci hovor cez Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Prichádzajúci pracovný hovor cez Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Prichádzajúci videohovor"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Prichádzajúca žiadosť o video"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nová hlasová správa"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nová hlasová správa (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Zavolať hlasovú schránku <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Číslo hlasovej schránky je neznáme"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Žiadny signál"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Vybraná sieť (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nie je k dispozícii"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Prijať"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Položiť"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Hlas"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Prijať"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Zatvoriť"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zavolať späť"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Správa"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Ak chcete volať, vypnite najprv režim v lietadle."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Prihlásenie do siete nebolo úspešné."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilná sieť nie je k dispozícii."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Ak chcete volať, zadajte platné číslo."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Hovor sa nedá uskutočniť."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Prebieha spúšťanie sekvencie MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Služba nie je podporovaná."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Nedajú sa prepínať hovory."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Nedá sa rozdeliť hovor."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nedá sa preniesť."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferenčný hovor sa nedá uskutočniť."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Nedá sa odmietnuť hovor."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Nedajú sa ukončiť hovory."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Hovor SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Tiesňové volanie"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Zapína sa rádio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Žiadny signál. Prebieha ďalší pokus…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Hovor sa nedá uskutočniť. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie je číslo tiesňového volania."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Hovor nie je možné uskutočniť. Vytočte číslo tiesňového volania."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Číslo vytočíte pomocou klávesnice"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Podržať hovor"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Obnoviť hovor"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Ukončiť hovor"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Číselná klávesnica"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Ignorovať"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Pridať hovor"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Zlúčiť hovory"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Zameniť"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Spravovať hovory"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Spravovať konferenčný hovor"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferenčný hovor"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Spravovať"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videohovor"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zmeniť na hlasový hovor"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Zapnúť kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pozastaviť video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Ďalšie možnosti"</string>
+    <string name="player_started" msgid="3478865572468310331">"Prehrávač bol spustený"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Prehrávač bol zastavený"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera nie je pripravená"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera je pripravená"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Neznáma udalosť relácie volania"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Služba"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Nastavenie"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Nenastavené&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Ďalšie nastavenia hovorov"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Prichádz. hovor prostred. poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotka kontaktu"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"prepnúť na súkromné"</string>
+    <string name="selectContact" msgid="92191462970821951">"vybrať kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napísať vlastnú..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Zrušiť"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Odoslať"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Prijať"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Odoslať SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Odmietnuť"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Prijať ako videohovor"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Prijať ako zvukový hovor"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Prijať žiadosť o videohovor"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Odmietnuť žiadosť o videohovor"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Prijať žiadosť o prenos videa"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Odmietnuť žiadosť o prenos videa"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Povoliť žiadosť o prijatie videa"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Odmietnuť žiadosť o prijatie videa"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Prejdite prstom nahor: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Prejdite prstom doľava: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Prejdite prstom doprava: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Prejdite prstom nadol: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrovanie"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrovanie"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Zvuk"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Predvolený zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Tón zvonenia telefónu"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibrovať pri zvonení"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Vyzváňací tón a vibrovanie"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Správa konferenčného hovoru"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Číslo tiesňového volania"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> sekundy</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekúnd</item>
+      <item quantity="one">1 sekunda</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minúty</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> minúty</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minút</item>
+      <item quantity="one">1 minúta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> hodiny</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> hodiny</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodín</item>
+      <item quantity="one">1 hodina</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilová fotka"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera je vypnutá"</string>
+    <string name="child_number" msgid="4469090994612105532">"na čísle <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Poznámka bola odoslaná"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nedávne správy"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informácie o firme"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Vzdialené <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Vzdialené <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Zajtra sa otvára o <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Dnes sa otvára o <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zatvára sa o <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Dnes bolo zatvorené o <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Otvorené"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Zatvorené"</string>
+</resources>
diff --git a/InCallUI/res/values-sl/strings.xml b/InCallUI/res/values-sl/strings.xml
new file mode 100644
index 0000000..d467248
--- /dev/null
+++ b/InCallUI/res/values-sl/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Zadržan"</string>
+    <string name="unknown" msgid="3646075119047488748">"Neznan"</string>
+    <string name="private_num" msgid="6081418498487514686">"Zasebna številka"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefonska govorilnica"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferenčni klic"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Klic je bil prekinjen"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Zvočnik"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Slušalka"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Žične slušalke"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Ali želite poslati naslednje tone?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Pošiljanje tonov\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Pošlji"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Da"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ne"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Zamenjaj nadomestni znak z"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferenčni klic: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Številka odzivnika"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Klicanje"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Vnovično klicanje"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferenčni klic"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Dohodni klic"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Dohodni delovni klic"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Klic je končan"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Zadržan"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Prekinjanje"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Klic poteka"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Moja številka je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Povezovanje videa"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videoklic"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Zahtevanje videa"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Videoklica ni mogoče vzpostaviti"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Zavrnjena zahteva za videoklic"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Vaša številka za povratni klic:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Vaša številka za povratni klic v sili:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Klicanje"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Neodgovorjeni klic"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Neodgovorjeni klici"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Št. neodgovorjenih klicev: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Neodgovorjeni klic od: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Aktivni klic"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Aktivni delovni klic"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Aktivni klic prek omrežja Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Aktivni delovni klic prek omrežja Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Zadržan"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Dohodni klic"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Dohodni delovni klic"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Dohodni klic Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Dohodni delovni klic prek omrežja Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Dohodni videoklic"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Zahteva za dohodni video"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Novo sporočilo v odzivniku"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Novo sporočilo v odzivniku (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Klic: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Neznana številka odzivnika"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ni signala"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Izbrano omrežje (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ni na voljo"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Odgovor"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Prekinitev"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Govor"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Sprejmem"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Opusti"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Povrat. klic"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Če želite poklicati, najprej izklopite način za letalo."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ni registrirano v omrežju."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilno omrežje ni na voljo."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Če želite opraviti klic, vnesite veljavno številko."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Klicanje ni mogoče."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Začetek zaporedja MMI ..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Storitev ni podprta."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Preklop med klici ni mogoč."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Ločitev klica ni mogoča."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Prenos ni mogoč."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferenčni klic ni mogoč."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Zavrnitev klica ni mogoča."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Prekinitev klica ni mogoča."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Klic SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Klic v sili"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Vklop radia …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ni signala. Vnovičen poskus …"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Klicanje ni mogoče. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ni številka za klic v sili."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Klicanje ni mogoče. Opravite klic v sili."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Za izbiranje številke uporabite tipkovnico"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Zadrži klic"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Nadaljuj klic"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Končaj klic"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tipkovnica"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Izklopi zvok"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Dodaj klic"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Združi klice"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Zamenjaj"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Upravljaj klice"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Upravljaj konferenčne klice"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferenčni klic"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Upravljaj"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Zvok"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoklic"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Preklopi na glasovni klic"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Preklopi med fotoaparati"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Zaustavi video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Več možnosti"</string>
+    <string name="player_started" msgid="3478865572468310331">"Predvajanje začeto"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Predvajanje ustavljeno"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Fotoaparat ni pripravljen"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Fotoaparat je pripravljen"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Neznan dogodek seje klica"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Storitev"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Nastavitev"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ni nastavljeno&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Druge klicne nastavitve"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Dohodni prek <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotografija stika"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"zasebno"</string>
+    <string name="selectContact" msgid="92191462970821951">"izbira stika"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Napišite lasten odgovor …"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Prekliči"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Pošlji"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Odgovor"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Pošiljanje SMS-ja"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Zavrnitev"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Odgovor z video povezavo"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Odgovor z zvočno povezavo"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Sprejemanje zahteve za video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Zavrnitev zahteve za video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Sprejemanje zahteve za pošiljanje videa"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Zavrnitev zahteve za pošiljanje videa"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Sprejemanje zahteve za prejem videa"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Zavrnitev zahteve za prejem videa"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Povlecite navzgor za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Povlecite v levo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Povlecite v desno za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Povlecite navzdol za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibriranje"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibriranje"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Zvok"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Privzeti zvok (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ton zvonjenja telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Vibriranje ob zvonjenju"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Zvonjenje in vibriranje"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Upravljanje konferenčnih klicev"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Številka za klic v sili"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekunda</item>
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> sekundi</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekund</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> minuti</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minute</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ura</item>
+      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> uri</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ure</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ur</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Fotografija profila"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Fotoaparat je izklopljen"</string>
+    <string name="child_number" msgid="4469090994612105532">"prek <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Opomba poslana"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Nedavna sporočila"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Podatki o podjetju"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi stran"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km stran"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Odpre se jutri ob <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Odpre se danes ob <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Zapre se ob <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Zaprto danes ob <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Trenutno odprto"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Trenutno zaprto"</string>
+</resources>
diff --git a/InCallUI/res/values-sq-rAL/strings.xml b/InCallUI/res/values-sq-rAL/strings.xml
new file mode 100644
index 0000000..791f5f0
--- /dev/null
+++ b/InCallUI/res/values-sq-rAL/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefoni"</string>
+    <string name="onHold" msgid="527593602772521700">"Në pritje"</string>
+    <string name="unknown" msgid="3646075119047488748">"I panjohur"</string>
+    <string name="private_num" msgid="6081418498487514686">"Numër privat"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefon me pagesë"</string>
+    <string name="confCall" msgid="3181961445236675173">"Telefonatë konferencë"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Telefonata ra"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Altoparlant"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Kufje për vesh"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kufje me tel"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Dërgo tonet e mëposhtme?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Po dërgon tone\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Dërgo"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Po"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Jo"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Zëvendëso karakterin variabël me"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Telefonatë konferencë <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numri i postës zanore"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Po formon numrin"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Po riformon numrin"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Telefonatë konferencë"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Telefonatë hyrëse"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Telefonatë pune hyrëse"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Telefonata përfundoi"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Në pritje"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Mbyllja"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Në telefonatë"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Numri im është <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Po rilidh videon"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Telefonatë me video"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Po kërkon video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Nuk mund të lidhë telefonatën me video"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Kërkesa me video u refuzua"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Numri i kthimit të telefonatës\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Numri i kthimit të telefonatës së urgjencës\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Po formon numrin"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Telefonatë e humbur"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Telefonata të humbura"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> telefonata të humbura"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Telefonatë e humbur nga <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Telefonatë në vazhdim"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Telefonatë pune dalëse"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Telefonatë me Wi-Fi në vazhdim"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Telefonatë pune dalëse me Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Në pritje"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Telefonatë hyrëse"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Telefonatë pune hyrëse"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Telefonatë hyrëse me Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Telefonatë pune hyrëse me Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Telefonatë hyrëse me video"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Kërkesë për video hyrëse"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Postë e re zanore"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Postë e re zanore (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Formo numrin <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Numri i postës zanore është i panjohur"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Nuk ka shërbim"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Rrjeti i zgjedhur (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) i padisponueshëm"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Përgjigju"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Mbyll"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Zanore"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Prano"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Largoje"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ri-telefono"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesazh"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Për të kryer telefonatë, së pari çaktivizo modalitetin e aeroplanit."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"I paregjistruar në rrjet."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rrjeti celular nuk mundësohet."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Për të kryer një telefonatë, fut një numër të vlefshëm."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Nuk mund të telefonojë."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Po fillon sekuencën MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Shërbimi nuk mbështetet."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Nuk mund të ndryshojë telefonatat."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Nuk mund të ndajë telefonatën."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Nuk mund të transferojë."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Nuk mund të kryejë telefonatë konference."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Nuk mund të refuzojë telefonatën."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Nuk mund të lëshojë telefonatën(at)."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Telefonatë SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Telefonata e urgjencës"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Po aktivizon radion…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Nuk ka shërbim. Po provon sërish…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Nuk mund të telefonohet. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nuk është një numër urgjence."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Nuk mund të telefonohet. Formo një numër urgjence."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Përdor tastierën për të formuar numrin"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Vendose në pritje telefonatën"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Rifillo telefonatën"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Mbylle telefonatën"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Blloku i formimit të numrit"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Çaktivizo audion"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Shto telefonatë"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Shkri telefonatat"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Shkëmbe"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Menaxho telefonatat"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Menaxho telefonatën konferencë"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Telefonatë konferencë"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Menaxho"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audioja"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Telefonatë me video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ndërro në telefonatë me video"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Ndërro kamerën"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Vendose në pauzë videon"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Opsione të tjera"</string>
+    <string name="player_started" msgid="3478865572468310331">"Luajtësi filloi"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Luajtësi ndaloi"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera nuk është gati"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera është gati"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Ngjarje e panjohur në sesionin e telefonatës"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Shërbimi"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfigurimi"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;I pavendosur&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Cilësime të tjera të telefonatës"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Telefonatë nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Hyrëse nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"fotografia e kontaktit"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"bëje private"</string>
+    <string name="selectContact" msgid="92191462970821951">"përzgjidh kontaktin"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Shkruaj përgjigjen tënde..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Anulo"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Dërgo"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Përgjigju"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Dërgo SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Refuzo"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Përgjigju si telefonatë me video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Përgjigju si telefonatë me audio"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Prano kërkesën për video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Refuzo kërkesën për video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Prano kërkesën për transmetimin e videos"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Refuzo kërkesën për transmetimin e videos"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Prano kërkesën për marrjen e videos"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Refuzo kërkesën për marrjen e videos"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Rrëshqit lart për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Rrëshqit majtas për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Rrëshqit djathtas për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Rrëshqit poshtë për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Dridhja"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Dridhja"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Tingulli"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Tingulli i parazgjedhur (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Toni i ziles i telefonit"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Dridhje edhe kur bie zilja"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Me zile dhe me dridhje"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Menaxho telefonatën konferencë"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Numri i urgjencës"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekonda</item>
+      <item quantity="one">1 sekondë</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="one">1 minutë</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> orë</item>
+      <item quantity="one">1 orë</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Fotografia e profilit"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera joaktive"</string>
+    <string name="child_number" msgid="4469090994612105532">"përmes <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Shënimi u dërgua"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mesazhet e fundit"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Informacioni i biznesit"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> milje larg"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km larg"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Hapet nesër në <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Hapet sot në <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Mbyllet në <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Mbyllur sot në <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Tani është hapur"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Tani është mbyllur"</string>
+</resources>
diff --git a/InCallUI/res/values-sr/strings.xml b/InCallUI/res/values-sr/strings.xml
new file mode 100644
index 0000000..13809fc
--- /dev/null
+++ b/InCallUI/res/values-sr/strings.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Телефон"</string>
+    <string name="onHold" msgid="527593602772521700">"На чекању"</string>
+    <string name="unknown" msgid="3646075119047488748">"Непознат"</string>
+    <string name="private_num" msgid="6081418498487514686">"Приватан број"</string>
+    <string name="payphone" msgid="5743050584468748607">"Телефонска говорница"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференцијски позив"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Позив је прекинут"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Звучник"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Слушалица телефона"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Жичане наглавне слушалице"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Желите ли да пошаљете следеће тонове?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Тонови се шаљу\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Пошаљи"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Да"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Не"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Замените џокер знак са"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конференцијски позив <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Број говорне поште"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Позива се"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Поново се бира"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференцијски позив"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Долазни позив"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Долазни позив за Work"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Позив је завршен"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"На чекању"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Веза се прекида"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Позив је у току"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Мој број је <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Повезује се видео позив"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Видео позив"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Захтева се видео позив"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Повезивање видео позива није успело"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Захтев за видео позив је одбијен"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Број за повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Број за хитан повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Позива се"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Пропуштен позив"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Пропуштени позиви"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Број пропуштених позива: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Пропуштен позив од: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Текући позив"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Текући позив за Work"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Текући Wi-Fi позив"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Текући позив за Work преко Wi-Fi-ја"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"На чекању"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Долазни позив"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Долазни позив за Work"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Долазни Wi-Fi позив"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Долазни позив за Work преко Wi-Fi-ја"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Долазни видео позив"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Захтев за долазни видео позив"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Нова порука говорне поште"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Нова порука говорне поште (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Позови <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Непознат број говорне поште"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Мобилна мрежа није доступна"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Изабрана мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) није доступна"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Одговори"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Прекини везу"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Гласовни"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Прихватам"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Одбаци"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Узврати позив"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Пошаљи SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Да бисте упутили позив, прво искључите режим рада у авиону."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Није регистровано на мрежи."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобилна мрежа није доступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Да бисте упутили позив, унесите важећи број."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Позив није успео."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Покреће се MMI секвенца..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Услуга није подржана."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Замена позива није успела."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Раздвајање позива није успело."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Пребацивање није успело."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Конференцијски позив није успео."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Одбијање позива није успело."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Успостављање позива није успело."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP позив"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Хитни позив"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Укључује се радио…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Мобилна мрежа није доступна. Покушавамо поново…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Позив није успео. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> није број за хитне случајеве."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Позив није успео. Позовите број за хитне случајеве."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Користите тастатуру за позивање"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Стави позив на чекање"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Настави позив"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Заврши позив"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Нумеричка тастатура"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Игнориши"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Додај позив"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Обједини позиве"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Замени"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Управљај позивима"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Управљај конференцијским позивом"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференцијски позив"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Управљај"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео позив"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Промени у гласовни позив"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Промени камеру"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Паузирај видео"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Још опција"</string>
+    <string name="player_started" msgid="3478865572468310331">"Плејер је покренут"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Плејер је заустављен"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камера није спремна"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камера је спремна"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Непознат догађај сесије позива"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Услуга"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Подешавање"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Није подешено&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Друга подешавања позива"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Позива се преко добављача <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Долазни позив преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"слика контакта"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"иди на приватно"</string>
+    <string name="selectContact" msgid="92191462970821951">"изаберите контакт"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Напишите сами…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Откажи"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Пошаљи"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Одговори"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Пошаљи SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Одбиј"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Одговори видео позивом"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Одговори аудио-позивом"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Прихвати захтев за видео"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Одбиј захтев за видео"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Прихвати захтев за одлазни видео позив"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Одбиј захтев за одлазни видео позив"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Прихвати захтев за долазни видео позив"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Одбиј захтев за долазни видео позив"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Превуците нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Превуците улево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Превуците удесно за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Превуците надоле за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Вибрација"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Вибрација"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Звук"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Подразумевани звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Мелодија звона телефона"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Вибрирај када звони"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Мелодија звона и вибрација"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Управљај конференцијским позивом"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Број за хитне случајеве"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> секунда</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> секунде</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> минут</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> минута</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минута</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> сат</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> сата</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сати</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Слика профила"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камера је искључена"</string>
+    <string name="child_number" msgid="4469090994612105532">"на <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Белешка је послата"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Недавне поруке"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Информације о предузећу"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Удаљеност је <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Удаљеност је <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Отвара се сутра у <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Отвара се данас у <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Затвара се у <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Затворило се данас у <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Тренутно отворено"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Тренутно затворено"</string>
+</resources>
diff --git a/InCallUI/res/values-sv/strings.xml b/InCallUI/res/values-sv/strings.xml
new file mode 100644
index 0000000..b82fe74
--- /dev/null
+++ b/InCallUI/res/values-sv/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Parkerat"</string>
+    <string name="unknown" msgid="3646075119047488748">"Okänd"</string>
+    <string name="private_num" msgid="6081418498487514686">"Privat nummer"</string>
+    <string name="payphone" msgid="5743050584468748607">"Telefonautomat"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferenssamtal"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Samtalet avbröts"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Högtalare"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Telefonlur"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Trådanslutet headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Ska följande toner skickas?\nBREAK"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Skickar signaler\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Skicka"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ja"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Nej"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Ersätt jokertecknet med"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferenssamtal <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Nummer till röstbrevlåda"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Ringer"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Ringer upp igen"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferenssamtal"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Inkommande samtal"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Inkommande jobbsamtal"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Samtal avslutat"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Parkerat"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Lägger på"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"I samtal"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mitt telefonnummer är <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Ansluter video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Videosamtal"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Begär video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Det gick inte att ansluta till videosamtalet"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Videobegäran avslogs"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Ditt nummer för återuppringning\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Ditt nummer för återuppringning vid nödsamtal\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Ringer"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Missat samtal"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Missade samtal"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missade samtal"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Missat samtal från <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Pågående samtal"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Pågående jobbsamtal"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Pågående Wi-Fi-samtal"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Pågående jobbsamtal via Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Parkerat"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Inkommande samtal"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Inkommande jobbsamtal"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Inkommande Wi-Fi-samtal"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Inkommande jobbsamtal via Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Inkommande videosamtal"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Inkommande begäran om videosamtal"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Nytt röstmeddelande"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Nytt röstmeddelande (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Ring <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nummer till röstbrevlåda okänt"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ingen tjänst"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Det valda nätverket (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) är inte tillgängligt"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Svara"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Lägg på"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Röstsamtal"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Godkänn"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorera"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring upp"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Meddelande"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Om du vill ringa måste du först inaktivera flygplansläge."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Inte registrerat på nätverk."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Det finns inget mobilnät tillgängligt."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Ange ett giltigt nummer om du vill ringa ett samtal."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Det gick inte att ringa."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Startar sekvens för MMI-kod …"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Tjänsten stöds inte."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Det gick inte att växla mellan samtal."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Det gick inte att koppla isär samtalen."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Det gick inte att överföra."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Det gick inte att starta ett konferenssamtal."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Det gick inte att avvisa samtalet."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Det gick inte att släppa samtal."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP-samtal"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Nödsamtal"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Sätter på radion …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ingen tjänst. Försöker igen …"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Det gick inte att ringa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> är inget nödnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Det gick inte att ringa. Slå ett nödnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Använd tangentbordet om du vill ringa"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Parkera samtal"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Återuppta samtal"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Avsluta samtal"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Knappsats"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Ljud av"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Lägg till samtal"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Koppla ihop samtal"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Byt"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Hantera samtal"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Hantera konferenssamtal"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferenssamtal"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Hantera"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Ljud"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videosamt."</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Byt till röstsamtal"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Byt kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausa video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Fler alternativ"</string>
+    <string name="player_started" msgid="3478865572468310331">"Videospelaren har startats"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Videospelaren har stoppats"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kameran är inte klar"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kameran är klar"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Okänd händelse vid samtalssession"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Tjänst"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Konfiguration"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Har inte angetts&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Övriga samtalsinställningar"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Inkommande via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontaktbild"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"gör privat"</string>
+    <string name="selectContact" msgid="92191462970821951">"välj kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Skriv ett eget svar …"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Avbryt"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Skicka"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Svara"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Skicka sms"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Avvisa"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Svara som videosamtal"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Svara som röstsamtal"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Godkänn videobegäran"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Avvisa videobegäran"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Godkänn begäran om att skicka video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Avvisa begäran om att skicka video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Godkänn begäran om att ta emot video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Avvisa begäran om att ta emot video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> genom att dra uppåt."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> genom att dra åt vänster."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> genom att dra åt höger."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> genom att dra nedåt."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Vibrera"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Vibrera"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ljud"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standardsignal (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ringsignal"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Enheten vibrerar vid samtal"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringsignal och vibration"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Hantera konferenssamtal"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Nödsamtalsnummer"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekunder</item>
+      <item quantity="one">1 sekund</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuter</item>
+      <item quantity="one">1 minut</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timmar</item>
+      <item quantity="one">1 timme</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profilfoto"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera av"</string>
+    <string name="child_number" msgid="4469090994612105532">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Anteckningen har skickats"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Senaste meddelandena"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Företagsuppgifter"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> miles bort"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km bort"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Öppnar i morgon kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Öppnar i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Stänger kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Stängde i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Öppet"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Stängt"</string>
+</resources>
diff --git a/InCallUI/res/values-sw/strings.xml b/InCallUI/res/values-sw/strings.xml
new file mode 100644
index 0000000..ea72dab
--- /dev/null
+++ b/InCallUI/res/values-sw/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Simu"</string>
+    <string name="onHold" msgid="527593602772521700">"Inangoja"</string>
+    <string name="unknown" msgid="3646075119047488748">"Isiyojulikana"</string>
+    <string name="private_num" msgid="6081418498487514686">"Nambari ya faragha"</string>
+    <string name="payphone" msgid="5743050584468748607">"Simu ya kulipia"</string>
+    <string name="confCall" msgid="3181961445236675173">"Simu ya mkutano"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Simu imekatwa"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Spika"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Kipaza sauti cha kichwani"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Vifaa vya sauti visivyo na waya"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Ungependa kutuma milio ya sauti inayofuata? \n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Inatuma milio ya simu\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Tuma"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ndiyo"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Hapana"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Badilisha herufi inayojitegemea kwa"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Simu ya mkutano <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Nambari ya ujumbe wa sauti"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Inapiga"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Inapiga simu tena"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Simu ya mkutano"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Unapigiwa simu"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Simu ya kazi inayoingia"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Simu imekamilika"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Inangoja"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Kukata simu"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Katika simu"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Nambari yangu ni <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Inaunganisha video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Hangout ya Video"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Inaomba video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Haiwezi kuunganisha Hangout ya video"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Ombi la video limekataliwa"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Nambari yako ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Nambari yako ya dharura ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Inapiga"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Simu ambayo hukujibu"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Simu ambazo hukujibu"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Simu <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ambazo hukujibu"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Simu ambayo hukujibu kutoka <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Simu inayoendelea"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Simu ya kazi inayoendelea"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Simu ya Wi-Fi inayoendelea"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Simu ya Wi-Fi ya kazi inayoendelea"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Inangoja"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Unapigiwa simu"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Unapigiwa simu ya kazi"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Unapigiwa simu kupitia Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Unapigiwa simu ya kazini kupitia Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Hangout ya Video inayoingia"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Ombi linaloingia la video"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ujumbe mpya wa sauti"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Ujumbe (<xliff:g id="COUNT">%d</xliff:g>) mpya wa sauti"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Piga <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Nambari ya ujumbe wa sauti haijulikani."</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Hakuna huduma"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Mtandao uliochaguliwa (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) haupatikani"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Jibu"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Kata simu"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Sauti"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Kubali"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Ondoa"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Mpigie"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Ujumbe"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Ili upige simu kwanza, zima Hali ya ndegeni."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Haijasajiliwa kwenye mtandao."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mitandao ya simu za mkononi haipatikani."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Ili upige simu, weka nambari sahihi."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Haiwezi kupiga simu."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Inaanzisha msururu wa MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Huduma haitumiki."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Haiwezi kubadili simu."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Haiwezi kutenganisha simu."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Haiwezi kuhamisha."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Haiwezi kushiriki katika simu ya mkutano."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Haiwezi kukataa simu."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Haiwezi kutoa simu."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Simu ya SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Simu ya dharura"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Inawasha redio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Hakuna huduma. Inajaribu tena..."</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Haiwezi kupiga simu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> si nambari ya dharura."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Haiwezi kupiga simu. Piga simu nambari ya dharura."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Tumia kibodi kubonyeza"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Shikilia Simu"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Endelea na Simu"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Kata Simu"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Vitufe vya kupiga simu"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Komesha"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Ongeza simu"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Unganisha simu"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Badili"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Dhibiti simu"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Dhibiti simu ya mkutano"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Mkutano kwenye simu"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Dhibiti"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Sauti"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Hangout ya Video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Badilisha iwe simu ya sauti"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Badilisha kamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sitisha video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Chaguo zaidi"</string>
+    <string name="player_started" msgid="3478865572468310331">"Kichezaji Kimeanzishwa"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Kichezaji Kimekomeshwa"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera haiko tayari"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera iko tayari"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Tukio lisilojulikana la kipindi cha simu"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Huduma"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Weka mipangilio"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Haijawekwa&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Mipangilio mingine ya simu"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Kupiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"picha ya anwani"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"tumia kwa faragha"</string>
+    <string name="selectContact" msgid="92191462970821951">"chagua anwani"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Andika yako binafsi..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Ghairi"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Tuma"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Jibu"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Tuma SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Kataa"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Pokea kama Hangout ya Video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Pokea kama simu ya sauti"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Kubali ombi la video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Kataa ombi la video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Kubali ombi la kutuma kupitia hangout ya video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Kataa ombi la kutuma kupitia hangout ya video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Kubali ombi la kupokea kupitia hangout ya video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Kataa ombi la kupokea kupitia hangout ya video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Telezesha kidole juu ili <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Telezesha kidole kushoto ili <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Telezesha kidole kulia ili <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Telezesha kidole chini ili <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Mtetemo"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Mtetemo"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Mlio"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Sauti chaguo-msingi (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Mlio wa simu"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Tetema wakati wa kuita"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Mlio wa simu na Mtetemo"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Dhibiti simu ya mkutano"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Nambari ya dharura"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other">Sekunde <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="one">Sekunde 1</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other">Dakika <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="one">Dakika 1</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other">Saa <xliff:g id="COUNT">%d</xliff:g> </item>
+      <item quantity="one">Saa 1</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Picha ya wasifu"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera imezimwa"</string>
+    <string name="child_number" msgid="4469090994612105532">"kupitia <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Dokezo limetumwa"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Ujumbe wa hivi majuzi"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Maelezo ya biashara"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Umbali wa maili <xliff:g id="DISTANCE">%.1f</xliff:g>"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Umbali wa kilomita <xliff:g id="DISTANCE">%.1f</xliff:g>"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Itafunguliwa kesho saa <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Itafunguliwa leo saa <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Hufungwa saa <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Imefungwa leo saa <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Sasa imefunguliwa"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Sasa imefungwa"</string>
+</resources>
diff --git a/InCallUI/res/values-sw360dp/dimens.xml b/InCallUI/res/values-sw360dp/dimens.xml
new file mode 100644
index 0000000..9fbcd60
--- /dev/null
+++ b/InCallUI/res/values-sw360dp/dimens.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources>
+    <!-- Dimensions for CallCard elements (the normal in-call UI) -->
+
+    <!-- Text size for the name in the call info. -->
+    <dimen name="call_status_text_size">22sp</dimen>
+    <dimen name="call_status_text_min_size">18sp</dimen>
+    <dimen name="call_name_text_size">45dp</dimen>
+    <dimen name="call_name_text_min_size">34sp</dimen>
+    <dimen name="call_label_text_size">18sp</dimen>
+
+    <!-- The InCallUI dialpad will sometimes want digits sizes that are different from dialer. -->
+    <dimen name="dialpad_key_number_margin_bottom">@dimen/dialpad_key_number_default_margin_bottom</dimen>
+    <!-- Zero key should have less space between self and text because "+" is smaller -->
+    <dimen name="dialpad_zero_key_number_margin_bottom">@dimen/dialpad_zero_key_number_default_margin_bottom</dimen>
+    <dimen name="dialpad_digits_adjustable_text_size">@dimen/dialpad_digits_text_size</dimen>
+    <dimen name="dialpad_digits_adjustable_height">@dimen/dialpad_digits_height</dimen>
+    <dimen name="dialpad_key_numbers_size">@dimen/dialpad_key_numbers_default_size</dimen>
+</resources>
diff --git a/InCallUI/res/values-sw410dp/config.xml b/InCallUI/res/values-sw410dp/config.xml
new file mode 100644
index 0000000..a57f867
--- /dev/null
+++ b/InCallUI/res/values-sw410dp/config.xml
@@ -0,0 +1,21 @@
+<!--
+  ~ Copyright (C) 2015 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>
+    <!-- Determines the maximum number of buttons visible on the call card.  Any buttons over this
+         count are put into the overflow menu. -->
+    <integer name="call_card_max_buttons">6</integer>
+</resources>
\ No newline at end of file
diff --git a/InCallUI/res/values-ta-rIN/strings.xml b/InCallUI/res/values-ta-rIN/strings.xml
new file mode 100644
index 0000000..ffdd6f9
--- /dev/null
+++ b/InCallUI/res/values-ta-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ஃபோன்"</string>
+    <string name="onHold" msgid="527593602772521700">"ஹோல்டில் உள்ளது"</string>
+    <string name="unknown" msgid="3646075119047488748">"தெரியாத எண்"</string>
+    <string name="private_num" msgid="6081418498487514686">"தனிப்பட்ட எண்"</string>
+    <string name="payphone" msgid="5743050584468748607">"கட்டணத் தொலைபேசி"</string>
+    <string name="confCall" msgid="3181961445236675173">"குழு அழைப்பு"</string>
+    <string name="call_lost" msgid="8208184291640961172">"அழைப்பு நிறுத்தப்பட்டது"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ஸ்பீக்கர்"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ஹேண்ட்செட் இயர்ஃபீஸ்"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"வயருள்ள ஹெட்செட்"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"புளூடூத்"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"பின்வரும் டோன்களை அனுப்பவா?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"டோன்களை அனுப்புகிறது\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"அனுப்பு"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ஆம்"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"வேண்டாம்"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"சிறப்புக்குறியை இதன் மூலம் மாற்றியமை"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"குழு அழைப்பு: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"குரலஞ்சல் எண்"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"அழைக்கிறது"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"மீண்டும் டயல் செய்கிறது"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"குழு அழைப்பு"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"உள்வரும் அழைப்பு"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"உள்வரும் அழைப்பு (பணி)"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"அழைப்பு முடிந்தது"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ஹோல்டில் உள்ளது"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"துண்டிக்கிறது"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"அழைப்பில்"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"எனது எண்: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"வீடியோவை இணைக்கிறது"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"வீடியோ அழைப்பு"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"வீடியோவைக் கோருகிறது"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"வீடியோ அழைப்பை இணைக்க முடியவில்லை"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"வீடியோ கோரிக்கை நிராகரிக்கப்பட்டது"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"உங்களைத் திரும்ப அழைப்பதற்கான எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"அவசர அழைப்பு எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"அழைக்கிறது"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"தவறிய அழைப்பு"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"தவறிய அழைப்புகள்"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> தவறிய அழைப்புகள்"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> இடமிருந்து தவறிய அழைப்பு"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"செயலில் இருக்கும் அழைப்பு"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"செயலில் இருக்கும் அழைப்பு (பணி)"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"செயலில் இருக்கும் வைஃபை அழைப்பு"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"செயலில் இருக்கும் வைஃபை அழைப்பு"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ஹோல்டில் உள்ளது"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"உள்வரும் அழைப்பு"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"உள்வரும் அழைப்பு (பணி)"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"உள்வரும் வைஃபை அழைப்பு"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"உள்வரும் வைஃபை அழைப்பு (பணி)"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"உள்வரும் வீடியோ அழைப்பு"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"உள்வரும் வீடியோ கோரிக்கை"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"புதிய குரலஞ்சல்"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"புதிய குரலஞ்சல் (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>ஐ அழை"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"குரலஞ்சல் எண் அறியப்படவில்லை"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"சேவை இல்லை"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"தேர்ந்தெடுத்த நெட்வொர்க் (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) கிடைக்கவில்லை"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"பதிலளி"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"துண்டி"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"வீடியோ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"குரல்"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ஏற்கிறேன்"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"நிராகரி"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"திரும்ப அழை"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"செய்தி அனுப்பு"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"அழைப்பதற்கு, முதலில் விமானப் பயன்முறையை முடக்கவும்."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"நெட்வொர்க்கில் பதிவுசெய்யப்படவில்லை."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"செல்லுலார் நெட்வொர்க் கிடைக்கவில்லை."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"அழைக்க, சரியான எண்ணை உள்ளிடவும்."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"அழைக்க முடியாது."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI வரிசையைத் தொடங்குகிறது..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"சேவை ஆதரிக்கப்படவில்லை."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"அழைப்புகளில் மாற முடியாது."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"அழைப்பைப் பிரிக்க முடியாது."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"மாற்ற முடியாது."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"குழு அழைப்பு செய்ய முடியாது."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"அழைப்பை நிராகரிக்க முடியாது."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"அழைப்பை(அழைப்புகளை) விடுவிக்க முடியாது."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP அழைப்பு"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"அவசர அழைப்பு"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ரேடியோவை இயக்குகிறது…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"சேவை இல்லை. மீண்டும் முயல்கிறது…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> என்பது அவசர அழைப்பு எண் இல்லை என்பதால் அழைக்க முடியாது."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"அழைக்க முடியாது. அவசர அழைப்பு எண்ணை அழைக்கவும்."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"டயல் செய்ய, விசைப்பலகையைப் பயன்படுத்தவும்"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"அழைப்பை ஹோல்டில் வை"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"அழைப்பை மீண்டும் தொடங்கு"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"அழைப்பை முடி"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"டயல்பேடு"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ஒலியடக்கு"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"அழைப்பைச் சேர்"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"அழைப்புகளை இணை"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"மாற்று"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"அழைப்புகளை நிர்வகி"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"குழு அழைப்பை நிர்வகி"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"குழு அழைப்பு"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"நிர்வகி"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ஆடியோ"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"வீடியோ அழைப்பு"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"குரல் அழைப்பிற்கு மாறு"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"கேமராவை மாற்று"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"வீடியோவை இடைநிறுத்து"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"கூடுதல் விருப்பங்கள்"</string>
+    <string name="player_started" msgid="3478865572468310331">"வீடியோ பிளேயர் துவங்கியது"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"வீடியோ பிளேயர் நிறுத்தப்பட்டது"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"கேமரா தயாராக இல்லை"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"கேமரா தயார்"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"தெரியாத அழைப்பு நேர நிகழ்வு"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"சேவை"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"அமை"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;அமைக்கப்படவில்லை&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"பிற அழைப்பு அமைப்புகள்"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> வழியாக அழைக்கிறது"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> மூலம் உள்வரும் அழைப்புகள்"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"தொடர்புப் படம்"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"தனிப்பட்டதிற்குச் செல்"</string>
+    <string name="selectContact" msgid="92191462970821951">"தொடர்பைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"சொந்தமாக எழுதவும்..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ரத்துசெய்"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"அனுப்பு"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"பதிலளி"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS அனுப்பு"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"நிராகரி"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"வீடியோ அழைப்பில் பதிலளி"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ஆடியோ அழைப்பில் பதிலளி"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"வீடியோ கோரிக்கையை அனுமதி"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"வீடியோ கோரிக்கையை நிராகரி"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"வீடியோவைப் பரிமாற்றும் கோரிக்கையை அனுமதி"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"வீடியோவைப் பரிமாற்றும் கோரிக்கையை நிராகரி"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"வீடியோவைப் பெறும் கோரிக்கையை அனுமதி"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"வீடியோவைப் பெறும் கோரிக்கையை நிராகரி"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, மேலே ஸ்லைடு செய்க."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, இடப்புறம் ஸ்லைடு செய்க."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, வலப்புறம் ஸ்லைடு செய்க."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, கீழே ஸ்லைடு செய்க."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"அதிர்வுறு"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"அதிர்வுறு"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ஒலி"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"இயல்பு ஒலி (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ஃபோனின் ரிங்டோன்"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"அழைக்கும் போது அதிர்வுறு"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"ரிங்டோன் &amp; அதிர்வு"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"குழு அழைப்பை நிர்வகி"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"அவசர அழைப்பு எண்"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> வினாடிகள்</item>
+      <item quantity="one">1 வினாடி</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> நிமிடங்கள்</item>
+      <item quantity="one">1 நிமிடம்</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> மணிநேரம்</item>
+      <item quantity="one">1 மணிநேரம்</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"சுயவிவரப் படம்"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"கேமரா முடக்கப்பட்டது"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> வழியாக"</string>
+    <string name="note_sent" msgid="7623014827902758398">"குறிப்பு அனுப்பப்பட்டது"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"சமீபத்திய செய்திகள்"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"வணிகத் தகவல்"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> மைல் தொலைவில்"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> கிமீ தொலைவில்"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"நாளை <xliff:g id="OPEN_TIME">%s</xliff:g>க்குத் திறக்கப்படும்"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"இன்று <xliff:g id="OPEN_TIME">%s</xliff:g>க்குத் திறக்கப்படும்"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>க்கு மூடப்படும்"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"இன்று <xliff:g id="CLOSE_TIME">%s</xliff:g>க்கு மூடப்பட்டது"</string>
+    <string name="open_now" msgid="4615706338669555999">"இப்போது திறக்கப்பட்டுள்ளது"</string>
+    <string name="closed_now" msgid="2635314668145282080">"இப்போது மூடப்பட்டுள்ளது"</string>
+</resources>
diff --git a/InCallUI/res/values-te-rIN/strings.xml b/InCallUI/res/values-te-rIN/strings.xml
new file mode 100644
index 0000000..89c6509
--- /dev/null
+++ b/InCallUI/res/values-te-rIN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"ఫోన్"</string>
+    <string name="onHold" msgid="527593602772521700">"హోల్డ్‌లో ఉంది"</string>
+    <string name="unknown" msgid="3646075119047488748">"తెలియదు"</string>
+    <string name="private_num" msgid="6081418498487514686">"ప్రైవేట్ నంబర్"</string>
+    <string name="payphone" msgid="5743050584468748607">"పే ఫోన్"</string>
+    <string name="confCall" msgid="3181961445236675173">"కాన్ఫరెన్స్ కాల్"</string>
+    <string name="call_lost" msgid="8208184291640961172">"కాల్ కట్ అయింది"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"స్పీకర్"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"హ్యాండ్‌సెట్ ఇయర్‌పీస్"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"వైర్ గల హెడ్‌సెట్"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"బ్లూటూత్"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"కింది టోన్‌లను పంపాలా?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"టోన్‌లు పంపుతోంది\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"పంపు"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"అవును"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"వద్దు"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"దీనితో వైల్డ అక్షరాన్ని భర్తీ చేయండి"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"కాన్ఫరెన్స్ కాల్ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"వాయిస్ మెయిల్ నంబర్"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"డయల్ చేస్తోంది"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"మళ్లీ డయల్ చేస్తోంది"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"కాన్ఫరెన్స్ కాల్"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"ఇన్‌కమింగ్ కాల్"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"ఇన్‌కమింగ్ కార్యాలయ కాల్"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"కాల్ ముగిసింది"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"హోల్డ్‌లో ఉంది"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"ముగిస్తోంది"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"కాల్‌లో ఉంది"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"నా నంబర్ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"వీడియోను కనెక్ట్ చేస్తోంది"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"వీడియో కాల్"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"వీడియో కోసం అభ్యర్థిస్తోంది"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"వీడియో కాల్‌ను కనెక్ట్ చేయలేరు"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"వీడియో అభ్యర్థన తిరస్కరించబడింది"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"మీ కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"మీ అత్యవసర కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"డయల్ చేస్తోంది"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"సమాధానం ఇవ్వని కాల్"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"సమాధానం ఇవ్వని కాల్‌లు"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> సమాధానం ఇవ్వని కాల్‌లు"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> నుండి సమాధానం ఇవ్వని కాల్"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"కాల్ కొనసాగుతోంది"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"కార్యాలయ కాల్ కొనసాగుతోంది"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Wi-Fi కాల్ కొనసాగుతోంది"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Wi-Fi కార్యాలయ కాల్ కొనసాగుతోంది"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"హోల్డ్‌లో ఉంది"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"ఇన్‌కమింగ్ కాల్"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"ఇన్‌కమింగ్ కార్యాలయ కాల్"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"ఇన్‌కమింగ్ Wi-Fi కాల్"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"ఇన్‌కమింగ్ Wi-Fi కార్యాలయ కాల్"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"ఇన్‌కమింగ్ వీడియో కాల్"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"ఇన్‌కమింగ్ వీడియో అభ్యర్థన"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"కొత్త వాయిస్ మెయిల్"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"కొత్త వాయిస్ మెయిల్ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>కు డయల్ చేయండి"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"వాయిస్ మెయిల్ నంబర్ తెలియదు"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"సేవ లేదు"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"ఎంచుకున్న నెట్‌వర్క్ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) అందుబాటులో లేదు"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"సమాధానం"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"కాల్ ముగించు"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"వీడియో"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"వాయిస్"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ఆమోదిస్తున్నాను"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"తీసివేయి"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"తిరిగి కాల్ చేయి"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"సందేశం పంపు"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"కాల్ చేయడానికి, ముందుగా ఎయిర్‌ప్లైన్ మోడ్‌ను ఆపివేయండి."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"నెట్‌వర్క్‌లో నమోదు కాలేదు."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"సెల్యులార్ నెట్‌వర్క్ అందుబాటులో లేదు."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"కాల్ చేయడానికి, చెల్లుబాటు అయ్యే నంబర్‌ను నమోదు చేయండి."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"కాల్ చేయలేరు."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI శ్రేణిని ప్రారంభిస్తోంది…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"సేవకు మద్దతు లేదు."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"కాల్‌లను మార్చలేరు."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"కాల్‌ను వేరు చేయలేరు."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"బదిలీ చేయలేరు."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"కాన్ఫరెన్స్ కాల్ కుదరదు."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"కాల్‌ను తిరస్కరించలేరు."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"కాల్(ల)ను విడిచిపెట్టలేరు."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP కాల్"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"అత్యవసర కాల్"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"రేడియోను ఆన్ చేస్తోంది…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"సేవ లేదు. మళ్లీ ప్రయత్నిస్తోంది…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"కాల్ చేయలేరు. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> అత్యవసర నంబర్ కాదు."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"కాల్ చేయలేరు. అత్యవసర నంబర్‌కు డయల్ చేయండి."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"డయల్ చేయడానికి కీబోర్డ్‌ను ఉపయోగించండి"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"కాల్‌ను హోల్డ్‌లో ఉంచు"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"కాల్‌ను పునఃప్రారంభించు"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"కాల్‌ని ముగించు"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"డయిల్‌ప్యాడ్"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"మ్యూట్ చేయి"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"కాల్‌ను జోడించు"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"కాల్‌లను విలీనం చేయి"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"స్వాప్ చేయి"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"కాల్‌లను నిర్వహించు"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"కాన్ఫరెన్స్ కాల్‌ను నిర్వహించు"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"కాన్ఫరెన్స్ కాల్"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"నిర్వహించు"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"ఆడియో"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"వీడియో కాల్"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"వాయిస్ కాల్‌కి మార్చు"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"కెమెరాను మార్చు"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"వీడియోను పాజ్ చేయి"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"మరిన్ని ఎంపికలు"</string>
+    <string name="player_started" msgid="3478865572468310331">"ప్లేయర్ ప్రారంభమైంది"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"ప్లేయర్ ఆపివేయబడింది"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"కెమెరా సిద్ధంగా లేదు"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"కెమెరా సిద్ధంగా ఉంది"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"తెలియని కాల్ సెషన్ ఉదంతం"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"సేవ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"సెటప్ చేయండి"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;సెట్ చేయలేదు&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"ఇతర కాల్ సెట్టింగ్‌లు"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేయబడుతోంది"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్‌కమింగ్"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"పరిచయం ఫోటో"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"ప్రైవేట్‌గా వెళ్లు"</string>
+    <string name="selectContact" msgid="92191462970821951">"పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"మీ స్వంతంగా వ్రాయండి…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"రద్దు చేయి"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"పంపు"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"సమాధానం"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMSని పంపుతుంది"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"తిరస్కరిస్తుంది"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"వీడియో కాల్ రూపంలో సమాధానం"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"ఆడియో కాల్ రూపంలో సమాధానం"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"వీడియో అభ్యర్థనను ఆమోదిస్తుంది"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"వీడియో అభ్యర్థనను తిరస్కరిస్తుంది"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"వీడియో ప్రసరణ అభ్యర్థనను ఆమోదిస్తుంది"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"వీడియో ప్రసరణ అభ్యర్థనను తిరస్కరిస్తుంది"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"వీడియో స్వీకరణ అభ్యర్థనను ఆమోదిస్తుంది"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"వీడియో స్వీకరణ అభ్యర్థనను తిరస్కరిస్తుంది"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం పైకి స్లైడ్ చేయండి."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం ఎడమవైపుకు స్లైడ్ చేయండి."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం కుడివైపుకు స్లైడ్ చేయండి."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం కిందికి స్లైడ్ చేయండి."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"వైబ్రేట్"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"వైబ్రేట్"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"ధ్వని"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"డిఫాల్ట్ ధ్వని (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"ఫోన్ రింగ్‌టోన్"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"రింగ్ అయ్యేప్పుడు వైబ్రేషన్"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"రింగ్‌టోన్ &amp; వైబ్రేట్"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"కాన్ఫరెన్స్ కాల్‌ను నిర్వహించు"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"అత్యవసర నంబర్"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> సెకన్లు</item>
+      <item quantity="one">1 సెకను</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> నిమిషాలు</item>
+      <item quantity="one">1 నిమిషం</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> గంటలు</item>
+      <item quantity="one">1 గంట</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"ప్రొఫైల్ ఫోటో"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"కెమెరా ఆఫ్‌లో ఉంది"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ద్వారా"</string>
+    <string name="note_sent" msgid="7623014827902758398">"గమనిక పంపబడింది"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ఇటీవలి సందేశాలు"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"వ్యాపార సంస్థ సమాచారం"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> మై దూరంలో ఉంది"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> కి.మీ దూరంలో ఉంది"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"రేపు <xliff:g id="OPEN_TIME">%s</xliff:g>కి తెరవబడుతుంది"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"ఈరోజు <xliff:g id="OPEN_TIME">%s</xliff:g>కి తెరవబడుతుంది"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g>కి మూసివేయబడుతుంది"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ఈరోజు <xliff:g id="CLOSE_TIME">%s</xliff:g>కి మూసివేయబడి ఉంటుంది"</string>
+    <string name="open_now" msgid="4615706338669555999">"ఇప్పుడు తెరిచి ఉంది"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ఇప్పుడు మూసివేయబడింది"</string>
+</resources>
diff --git a/InCallUI/res/values-th/strings.xml b/InCallUI/res/values-th/strings.xml
new file mode 100644
index 0000000..a2d9d4a
--- /dev/null
+++ b/InCallUI/res/values-th/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"โทรศัพท์"</string>
+    <string name="onHold" msgid="527593602772521700">"พักสาย"</string>
+    <string name="unknown" msgid="3646075119047488748">"ไม่ทราบ"</string>
+    <string name="private_num" msgid="6081418498487514686">"หมายเลขส่วนตัว"</string>
+    <string name="payphone" msgid="5743050584468748607">"โทรศัพท์สาธารณะ"</string>
+    <string name="confCall" msgid="3181961445236675173">"การประชุมสาย"</string>
+    <string name="call_lost" msgid="8208184291640961172">"สายหลุด"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"ลำโพง"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ชุดหูฟังโทรศัพท์"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"ชุดหูฟังแบบมีสาย"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"บลูทูธ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"ส่งหมายเลขต่อไปไหม\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"กำลังส่งหมายเลข\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"ส่ง"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ใช่"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"ไม่"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"แทนที่อักขระแทนด้วย"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"การประชุมสาย <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"หมายเลขข้อความเสียง"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"กำลังโทรออก"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"โทรใหม่"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"การประชุมสาย"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"สายเรียกเข้า"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"มีสายเรียกเข้าจากที่ทำงาน"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"วางสายแล้ว"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"พักสาย"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"กำลังวางสาย"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"กำลังใช้สาย"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"หมายเลขของฉันคือ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"กำลังเชื่อมต่อวิดีโอ"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"แฮงเอาท์วิดีโอ"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"กำลังขอวิดีโอ"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ไม่สามารถเชื่อมต่อแฮงเอาท์วิดีโอได้"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"คำขอวิดีโอถูกปฏิเสธ"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"หมายเลขโทรกลับของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"หมายเลขโทรกลับฉุกเฉินของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"กำลังโทรออก"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"ไม่ได้รับ <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> สาย"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"สายที่ไม่ได้รับจาก <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"โทรต่อเนื่อง"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"กำลังอยู่ในสายจากที่ทำงาน"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"กำลังโทรผ่าน Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"กำลังอยู่ในสายจากที่ทำงานผ่าน Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"พักสาย"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"สายเรียกเข้า"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"มีสายเรียกเข้าจากที่ทำงาน"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"สายโทรเข้าผ่าน Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"มีสายเรียกเข้าจากที่ทำงานผ่าน Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"แฮงเอาท์วิดีโอเรียกเข้า"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"คำขอโทรเข้าเป็นวิดีโอ"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"ข้อความเสียงใหม่"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"ข้อความเสียงใหม่ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"หมุนหมายเลข <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"ไม่ทราบหมายเลขข้อความเสียง"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"ไม่มีบริการ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"เครือข่ายที่เลือกไว้ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ไม่พร้อมใช้งาน"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"รับสาย"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"วางสาย"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"วิดีโอ"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"เสียง"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"ยอมรับ"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"ปิด"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"โทรกลับ"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"ข้อความ"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"หากต้องการโทรออก ให้ปิดโหมดบนเครื่องบินก่อน"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"ยังไม่ได้ลงทะเบียนบนเครือข่าย"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"เครือข่ายมือถือใช้งานไม่ได้"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"หากต้องการโทรออก โปรดป้อนหมายเลขที่ถูกต้อง"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"ไม่สามารถโทรได้"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"กำลังเริ่มต้นลำดับ MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"ไม่สนับสนุนบริการนี้"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"ไม่สามารถสลับสายได้"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"ไม่สามารถแยกสายได้"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"ไม่สามารถโอนได้"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"ไม่สามารถประชุมได้"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"ไม่สามารถปฏิเสธสายได้"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"ไม่สามารถเริ่มการโทรได้"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"โทรแบบ SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"หมายเลขฉุกเฉิน"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"กำลังเปิดวิทยุ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"ไม่มีบริการ โปรดลองอีกครั้ง…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"โทรออกไม่ได้ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ไม่ใช่หมายเลขฉุกเฉิน"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"ไม่สามารถโทรออก โทรหมายเลขฉุกเฉิน"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ใช้แป้นพิมพ์กดหมายเลขโทรศัพท์"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"พักสาย"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"โทรต่อ"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"วางสาย"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"แป้นหมายเลข"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"ปิด"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"เพิ่มการโทร"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"รวมสาย"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"สลับ"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"จัดการการโทร"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"จัดการการประชุมสาย"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"การประชุมสาย"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"จัดการ"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"เสียง"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"แฮงเอาท์วิดีโอ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"เปลี่ยนเป็นการโทรด้วยเสียง"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"เปลี่ยนกล้อง"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"หยุดวิดีโอชั่วคราว"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"ตัวเลือกเพิ่มเติม"</string>
+    <string name="player_started" msgid="3478865572468310331">"โปรแกรมเล่นเริ่มทำงานแล้ว"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"โปรแกรมเล่นหยุดแล้ว"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"กล้องไม่พร้อมทำงาน"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"กล้องพร้อมทำงาน"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"เหตุการณ์เซสชันการโทรที่ไม่รู้จัก"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"บริการ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ตั้งค่า"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"การตั้งค่าการโทรอื่นๆ"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"สายเรียกเข้าผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"ภาพของรายชื่อติดต่อ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"เข้าสู่โหมดส่วนตัว"</string>
+    <string name="selectContact" msgid="92191462970821951">"เลือกรายชื่อติดต่อ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"เขียนคำตอบของคุณเอง..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"ยกเลิก"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"ส่ง"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"รับสาย"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"ส่ง SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"ปฏิเสธ"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"รับสายเป็นแฮงเอาท์วิดีโอ"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"รับสายเป็นการโทรด้วยเสียง"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ยอมรับคำขอวิดีโอ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ปฏิเสธคำขอวิดีโอ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ยอมรับคำขอให้ส่งวิดีโอ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ปฏิเสธคำขอให้ส่งวิดีโอ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ยอมรับคำขอให้รับวิดีโอ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ปฏิเสธคำขอให้รับวิดีโอ"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"เลื่อนไปข้างบนเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"เลื่อนไปทางขวาเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"เลื่อนลงเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"สั่น"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"สั่น"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"เสียง"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"เสียงเริ่มต้น (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"เสียงเรียกเข้าโทรศัพท์"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"สั่นเมื่อมีสายเข้า"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"เสียงเรียกเข้าและสั่น"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"จัดการการประชุมสาย"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"หมายเลขฉุกเฉิน"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> วินาที</item>
+      <item quantity="one">1 วินาที</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> นาที</item>
+      <item quantity="one">1 นาที</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ชั่วโมง</item>
+      <item quantity="one">1 ชั่วโมง</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"รูปโปรไฟล์"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"ปิดกล้อง"</string>
+    <string name="child_number" msgid="4469090994612105532">"ผ่านหมายเลข <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"ส่งโน้ตแล้ว"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"ข้อความล่าสุด"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"ข้อมูลธุรกิจ"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"อยู่ห่างออกไป <xliff:g id="DISTANCE">%.1f</xliff:g> ไมล์"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"อยู่ห่างออกไป <xliff:g id="DISTANCE">%.1f</xliff:g> กม."</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"เปิดให้บริการพรุ่งนี้เวลา <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"เปิดให้บริการวันนี้เวลา <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"ปิดให้บริการเวลา <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"ปิดให้บริการแล้ววันนี้เวลา <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"ขณะนี้เปิดทำการ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"ขณะนี้ปิดทำการ"</string>
+</resources>
diff --git a/InCallUI/res/values-tl/strings.xml b/InCallUI/res/values-tl/strings.xml
new file mode 100644
index 0000000..ac125c9
--- /dev/null
+++ b/InCallUI/res/values-tl/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telepono"</string>
+    <string name="onHold" msgid="527593602772521700">"Naka-hold"</string>
+    <string name="unknown" msgid="3646075119047488748">"Hindi alam"</string>
+    <string name="private_num" msgid="6081418498487514686">"Pribadong numero"</string>
+    <string name="payphone" msgid="5743050584468748607">"Payphone"</string>
+    <string name="confCall" msgid="3181961445236675173">"Conference call"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Naputol ang tawag"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Wired na headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Ipapadala ba ang mga sumusunod na tono?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Nagpapadala ng mga tono\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Ipadala"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Oo"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Hindi"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Palitan ang wild character ng"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Conference call <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Numero ng voicemail"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Dina-dial"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Muling dina-dial"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Conference call"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Papasok na tawag"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Papasok na tawag sa trabaho"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Ibinaba ang tawag"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Naka-hold"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Binababa"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Nasa tawag"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Ang aking numero ay <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Ikinokonekta ang video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Mag-video call"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Humihiling ng video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Hindi makakonekta sa video call"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Tinanggihan ang kahilingan sa video"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Ang iyong numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Ang iyong emergency na numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Dina-dial"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Hindi nasagot na tawag"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Mga hindi nasagot na tawag"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (na) hindi nasagot na tawag"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Hindi nasagot ang tawag mula kay <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Kasalukuyang tawag"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Kasalukuyang tawag sa trabaho"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Kasalukuyang tawag sa Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Kasalukuyang tawag sa trabaho sa pamamagitan ng Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Naka-hold"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Papasok na tawag"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Papasok na tawag sa trabaho"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Papasok na tawag sa Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Papasok na tawag sa trabaho sa pamamagitan ng Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Papasok na video call"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Papasok na kahilingan ng video"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Bagong voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Bagong voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"I-dial ang <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Hindi kilala ang numero ng voicemail"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Walang serbisyo"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Hindi available ang piniling network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>)"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Sagutin"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Ibaba"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Boses"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Tanggapin"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"I-dismiss"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Tawagan"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensahe"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Upang tumawag, paki-off muna ang Airplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Hindi nakarehistro sa network."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Hindi available ang cellular network."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Upang tumawag, maglagay ng wastong numero."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Hindi makatawag."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Sinisimulan ang pagkakasunud-sunod ng MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Hindi sinusuportahan ang serbisyo."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Hindi mailipat ang mga tawag."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Hindi mapaghiwalay ang tawag."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Hindi mailipat."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Hindi makapag-conference."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Hindi matanggihan ang tawag."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Hindi mailabas ang (mga) tawag."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Tawag sa SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Emergency na tawag"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ino-on ang radyo…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Walang serbisyo. Sinusubukang muli…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Hindi makatawag. Ang <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ay hindi isang pang-emergency na numero."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Hindi makatawag. Mag-dial ng pang-emergency na numero."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Gamitin ang keyboard upang mag-dial"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"I-hold ang Tawag"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Ituloy ang Tawag"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Ibaba ang Tawag"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Dialpad"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"I-mute"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Magdagdag ng tawag"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Pagsamahin ang mga tawag"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Pagpalitin"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Pamahalaan ang mga tawag"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Pamahalaan ang conference call"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Conference call"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Pamahalaan"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Mag-video call"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Gawing voice call"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Lumipat ng camera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"I-pause ang video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Higit pang mga opsyon"</string>
+    <string name="player_started" msgid="3478865572468310331">"Nagsimula na ang Player"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Huminto ang Player"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Hindi pa handa ang camera"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Handa na ang camera"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Hindi alam na kaganapan ng session ng tawag"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Serbisyo"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"I-setup"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Hindi nakatakda&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Iba pang mga setting ng tawag"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"larawan ng contact"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"maging pribado"</string>
+    <string name="selectContact" msgid="92191462970821951">"pumili ng contact"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Sumulat ng sarili mong tugon…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Kanselahin"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Ipadala"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Sagutin"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Magpadala ng SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Tanggihan"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Sagutin bilang video call"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Sagutin bilang audio call"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Tanggapin ang kahilingan sa video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Tanggihan ang kahilingan sa video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Tanggapin ang kahilingan sa pagpapadala ng video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Tanggihan ang kahilingan sa pagpapadala ng video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Tanggapin ang kahilingan sa pagtanggap ng video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Tanggihan ang kahilingan sa pagtanggap ng video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Mag-slide pataas para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Mag-slide pakaliwa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Mag-slide pakanan para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Mag-slide pababa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Mag-vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Mag-vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Tunog"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Default na tunog (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ringtone ng telepono"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Mag-vibrate kapag nagri-ring"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ringtone at Pag-vibrate"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Pamahalaan ang conference call"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Pang-emergency na numero"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> segundo</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na segundo</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minuto</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na minuto</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oras</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na oras</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Larawan sa profile"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Naka-off ang camera"</string>
+    <string name="child_number" msgid="4469090994612105532">"sa pamamagitan ng <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Naipadala ang tala"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Mga kamakailang mensahe"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Impormasyon ng negosyo"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> (na) milya ang layo"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> (na) kilometro ang layo"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Magbubukas bukas nang <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Magbubukas ngayon nang <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Magsasara nang <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Sarado ngayon nang <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Bukas ngayon"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Sarado ngayon"</string>
+</resources>
diff --git a/InCallUI/res/values-tr/strings.xml b/InCallUI/res/values-tr/strings.xml
new file mode 100644
index 0000000..9f563c1
--- /dev/null
+++ b/InCallUI/res/values-tr/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Beklemede"</string>
+    <string name="unknown" msgid="3646075119047488748">"Bilinmiyor"</string>
+    <string name="private_num" msgid="6081418498487514686">"Gizli numara"</string>
+    <string name="payphone" msgid="5743050584468748607">"Ankesörlü telefon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferans görüşmesi"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Çağrı kesildi"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Hoparlör"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Mobil cihaz kulaklığı"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Kablolu kulaklık"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Aşağıdaki zil sesleri gönderilsin mi?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Numara tonları gönderiliyor\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Gönder"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Evet"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Hayır"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Joker karakteri şununla değiştir:"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferans görüşmesi <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Sesli mesaj numarası"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Numara çevriliyor"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Yeniden çevriliyor"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferans görüşmesi"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Gelen çağrı"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"İşle ilgili gelen çağrı"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Çağrı sonlandırıldı"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Beklemede"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Sonlandırılıyor"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Görüşmede"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Numaram: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Video bağlanıyor"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video görüşmesi"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Video isteniyor"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Video görüşmesi bağlantısı yapılamıyor"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video isteği reddedildi"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Geri aranacağınız numara\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Acil durumda geri aranacağınız numara\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Numara çevriliyor"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Cevapsız çağrı"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Cevapsız çağrılar"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cevapsız çağrı"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Cevapsız çağrı: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Devam eden çağrı"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"İşle ilgili devam eden çağrı"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Devam eden kablosuz çağrı"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"İşle ilgili devam eden kablosuz çağrı"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Beklemede"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Gelen çağrı"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"İşle ilgili gelen çağrı"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Gelen kablosuz çağrı"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"İşle ilgili gelen kablosuz çağrı"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Gelen video görüşmesi isteği"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Gelen video isteği"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Yeni sesli mesaj"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Yeni sesli mesaj (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Çevir: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Sesli mesaj numarası bilinmiyor"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Servis yok"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Seçili ağ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) kullanılamıyor"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Yanıtla"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Kapat"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Ses"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Kabul et"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Yok say"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Geri ara"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"İleti"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Çağrı yapmak için öncelikle Uçak modunu kapatın."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ağda kayıtlı değil."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Hücresel ağ kullanılamıyor."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Çağrı yapmak için geçerli bir numara girin."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Çağrı yapılamıyor."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI dizisi başlatılıyor…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Service desteklenmiyor"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Çağrı geçişi yapılamıyor."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Çağrı ayrılamıyor."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Aktarılamıyor."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferans çağrısı yapılamıyor."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Çağrı reddedilemiyor."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Çağrılar bırakılamıyor."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP çağrısı"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Acil durum çağrısı"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Radyo açılıyor…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Servis yok. Tekrar deneniyor…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Çağrı yapılamıyor. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bir acil durum numarası değil."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Çağrı yapılamıyor. Acil durum numarasını çevirin."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Çevirmek için klavyeyi kullan"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Çağrıyı Beklet"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Çağrıyı Devam Ettir"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Çağrıyı Sonlandır"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tuş takımı"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Yok say"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Çağrı ekle"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Çağrıları birleştir"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Değiştir"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Çağrıları yönet"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Konferans çağrısını yönet"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferans çağrısı"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Yönet"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Ses"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vid. görşm"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Sesli çağrıya geç"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamerayı değiştir"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videoyu duraklat"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Diğer seçenekler"</string>
+    <string name="player_started" msgid="3478865572468310331">"Oynatıcı Başlatıldı"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Oynatıcı Durduruldu"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera hazır değil"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera hazır"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Bilinmeyen çağrı oturumu etkinliği"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Hizmet"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Kurulum"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ayarlanmadı&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Diğer çağrı ayarları"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kişi fotoğrafı"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"özel görüşmeye geç"</string>
+    <string name="selectContact" msgid="92191462970821951">"kişi seçin"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Kendi yanıtınızı oluşturun…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"İptal"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Gönder"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Yanıtla"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS gönder"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Reddet"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Video görüşmesi olarak yanıtla"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Sesli görüşme olarak yanıtla"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Video isteğini kabul et"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Video isteğini reddet"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Video aktarma isteğini kabul et"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Video aktarma isteğini reddet"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Video alma isteğini kabul et"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Video alma isteğini reddet"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için yukarı kaydırın."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için sola kaydırın."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için sağa kaydırın."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için aşağı kaydırın."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Titreşim"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Titreşim"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ses"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Varsayılan ses (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefon zil sesi"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Çalarken titret"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Zil Sesi ve Titreşim"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konferans çağrısını yönetin"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Acil durum numarası"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saniye</item>
+      <item quantity="one">1 saniye</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dakika</item>
+      <item quantity="one">1 dakika</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
+      <item quantity="one">1 saat</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profil fotoğrafı"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera kapalı"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> üzerinden"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Not gönderildi"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Son iletiler"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"İşletme bilgileri"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil uzakta"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km uzakta"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Yarın açılış saati: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Bugün açılış saati: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Kapanış saati: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Bugün kapanış saati: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Şu an açık"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Şu an kapalı"</string>
+</resources>
diff --git a/InCallUI/res/values-uk/strings.xml b/InCallUI/res/values-uk/strings.xml
new file mode 100644
index 0000000..3947a7d
--- /dev/null
+++ b/InCallUI/res/values-uk/strings.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Номер телефону"</string>
+    <string name="onHold" msgid="527593602772521700">"Очікування"</string>
+    <string name="unknown" msgid="3646075119047488748">"Невідомо"</string>
+    <string name="private_num" msgid="6081418498487514686">"Приватний номер"</string>
+    <string name="payphone" msgid="5743050584468748607">"Таксофон"</string>
+    <string name="confCall" msgid="3181961445236675173">"Конференц-зв’язок"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Виклик перервано"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Динамік"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Динамік гарнітури"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Дротова гарнітура"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Надіслати вказані нижче сигнали?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Надсилання сигналів\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Надіслати"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Так"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Ні"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Замінити довільний символ на"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Конференц-зв’язок <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Номер голосової пошти"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Набір номера"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Повторний набір"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Конференц-зв’язок"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Вхідний виклик"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Вхідний робочий виклик"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Виклик завершено"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Очікування"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Завершення виклику"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Триває виклик"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Мій номер: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Відеодзвінок: з’єднання"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Відеодзвінок"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Надсилання запиту на відеодзвінок"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Не вдалося здійснити відеодзвінок"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Запрошення на відеодзвінок відхилено"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Номер для зв’язку:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Екстрений номер:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Набір номера"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Пропущений виклик"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Пропущені виклики"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"Пропущено викликів: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Пропущений виклик: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Поточний виклик"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Поточний виклик на робочий телефон"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Поточний виклик через Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Поточний виклик на робочий телефон через Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Очікування"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Вхідний виклик"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Вхідний виклик на робочий телефон"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Вхідний виклик через Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Вхідний виклик на робочий телефон через Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Вхідний відеодзвінок"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Запит на вхідний відеодзвінок"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Нові голосові повідомлення"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Нові голосові повідомлення (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Набрати <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Невідомий номер голосової пошти"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Немає зв’язку"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Вибрана мережа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недоступна"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Відповісти"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Завершити"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Відео"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Гол. виклик"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Прийняти"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Відхилити"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Передзвонити"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Написати SMS"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Щоб зателефонувати, вимкніть режим польоту."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Не зареєстровано в мережі."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобільна мережа недоступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Щоб зателефонувати, введіть дійсний номер."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Не вдається зателефонувати."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Запуск ряду MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Служба не підтримується."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Неможливо переключитися між викликами."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Неможливо розділити виклик."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Неможливо перенести."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Конференц-зв’язок недоступний."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Неможливо відхилити виклик."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Неможливо телефонувати."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Виклик через протокол SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Екстрений виклик"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Увімкнення радіо…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Немає зв’язку. Повторна спроба…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Не вдається зателефонувати. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не є екстреним номером."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Не вдається зателефонувати. Наберіть екстрений номер."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Використовуйте для набору клавіатуру"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Призупинити виклик"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Відновити виклик"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Завершити виклик"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Цифрова клавіатура"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Вимкнути звук"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Додати виклик"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Об’єднати виклики"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Поміняти виклики"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Керувати викликами"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Керувати конференц-зв’язком"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Конференц-зв’язок"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Керувати"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Аудіо"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Відеодзвінок"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Перейти в режим голосового виклику"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Вибрати камеру"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Призупинити відео"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Інші опції"</string>
+    <string name="player_started" msgid="3478865572468310331">"Програвач запущено"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Програвач зупинено"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Камера неготова"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Камера готова"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Невідомий сеанс виклику"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Служба"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Налаштування"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Не налаштовано&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Інші налаштування виклику"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Виклик здійснюється через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Вхідні виклики через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"фото контакта"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"приватна розмова"</string>
+    <string name="selectContact" msgid="92191462970821951">"вибрати контакт"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Напишіть власну відповідь…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Скасувати"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Надіслати"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Відповісти"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Надіслати SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Відхилити"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Відповісти в режимі відеодзвінка"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Відповісти в режимі аудіодзвінка"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Прийняти запит на відео"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Відхилити запит на відео"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Прийняти запит на передавання відео"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Відхилити запит на передавання відео"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Прийняти запит на отримання відео"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Відхилити запит на отримання відео"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Проведіть пальцем угору, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Проведіть пальцем ліворуч, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Проведіть пальцем праворуч, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Проведіть пальцем донизу, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Вібросигнал"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Вібросигнал"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Звук"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Звук за умовчанням (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Сигнал дзвінка телефона"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Вібрувати під час виклику"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Сигнал дзвінка та вібросигнал"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Керування конференц-зв’язком"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Екстрений номер"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> секунда</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> хвилина</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> хвилини</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> хвилин</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> хвилини</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> година</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> години</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> годин</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> години</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Фотографія профілю"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Камеру вимкнено"</string>
+    <string name="child_number" msgid="4469090994612105532">"на номер <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Нотатку надіслано"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Нещодавні повідомлення"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Інформація про компанію"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"За <xliff:g id="DISTANCE">%.1f</xliff:g> мил."</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"За <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Відчиняється завтра о <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Відчиняється сьогодні о <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Зачиняється о <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Зачинено сьогодні о <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Відчинено"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Зачинено"</string>
+</resources>
diff --git a/InCallUI/res/values-ur-rPK/strings.xml b/InCallUI/res/values-ur-rPK/strings.xml
new file mode 100644
index 0000000..efaa3de
--- /dev/null
+++ b/InCallUI/res/values-ur-rPK/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"فون"</string>
+    <string name="onHold" msgid="527593602772521700">"ہولڈ پر ہے"</string>
+    <string name="unknown" msgid="3646075119047488748">"نامعلوم"</string>
+    <string name="private_num" msgid="6081418498487514686">"نجی نمبر"</string>
+    <string name="payphone" msgid="5743050584468748607">"پے فون"</string>
+    <string name="confCall" msgid="3181961445236675173">"کانفرنس کال"</string>
+    <string name="call_lost" msgid="8208184291640961172">"کال ختم ہو گئی"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"اسپیکر"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"ہینڈسیٹ ایئرپیس"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"تار والا ہیڈسیٹ"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"بلوٹوتھ"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"درج ذیل ٹونز بھیجیں؟\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"ٹونز بھیج رہا ہے\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"بھیجیں"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"ہاں"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"نہیں"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"وائلڈ کریکٹر کو اس کے ساتھ بدلیں"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"کانفرنس کال <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"صوتی میل نمبر"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"ڈائل ہو رہا ہے"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"دوبارہ ڈائل ہو رہا ہے"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"کانفرنس کال"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"آنے والی کال"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"کام سے متعلق آنے والی کال"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"کال ختم ہوگئی"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"ہولڈ پر ہے"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"کال منقطع ہو رہی ہے"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"کال میں"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"میرا نمبر ہے <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"ویڈیو منسلک ہو رہی ہے"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"ویڈیو کال"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"ویڈیو کی درخواست کی جا رہی ہے"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"ویڈیو کال منسلک نہیں ہو سکتی"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"ویڈیو کی درخواست مسترد ہو گئی"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"‏آپ کا کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"‏آپ کا ہنگامی کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"ڈائل ہو رہا ہے"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"چھوٹی ہوئی کال"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"چھوٹی ہوئی کالیں"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> چھوٹی ہوئی کالیں"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> کی جانب سے چھوٹی ہوئی کال"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"جاری کال"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"کام سے متعلق جاری کال"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"‏Wi-Fi کال جاری ہے"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"‏کام سے متعلق جاری Wi-Fi کال"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"ہولڈ پر ہے"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"آنے والی کال"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"کام سے متعلق آنے والی کال"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"‏آنے والی Wi-Fi کال"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"‏کام سے متعلق آنے والی Wi-Fi کال"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"آنے والی ویڈیو کال"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"آنے والی ویڈیو کی درخواست"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"نیا صوتی میل"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"نیا صوتی میل (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ڈائل کریں"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"صوتی میل نمبر نامعلوم ہے"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"کوئی سروس نہیں ہے"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"منتخب کردہ نیٹ ورک (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) دستیاب نہیں ہے"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"جواب"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"کال منقطع کریں"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"ویڈیو"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"آواز"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"قبول کریں"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"برخاست کریں"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"واپس کال کریں"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"پیغام"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"کال کرنے کیلئے، پہلے ہوائی جہاز طرز کو آف کریں۔"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"نیٹ ورک پر رجسٹرڈ نہیں ہے۔"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"سیلولر نیٹ ورک دستیاب نہیں ہے۔"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"کال کرنے کیلئے، ایک درست نمبر درج کریں۔"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"کال نہیں ہو سکتی۔"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"‏MMI ترتیب شروع ہو رہی ہے…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"سروس تعاون یافتہ نہیں ہے۔"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"کالز سوئچ نہیں ہو سکتیں۔"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"کال الگ نہیں ہو سکتی۔"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"منتقل نہیں ہو سکتی۔"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"کانفرنس نہیں ہو سکتی۔"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"کال مسترد نہیں ہو سکتی۔"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"کال(ز) ریلیز نہیں ہو سکتیں۔"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"‏SIP کال"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"ہنگامی کال"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"ریڈیو آن ہو رہا ہے…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"کوئی سروس نہیں ہے۔ دوبارہ کوشش کی جا رہی ہے…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"کال نہیں کی جا سکتی۔ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ایک ہنگامی نمبر نہیں ہے۔"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"کال نہیں کی جا سکتی۔ ایک ہنگامی نمبر ڈائل کریں۔"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"ڈائل کرنے کیلئے کی بورڈ استعمال کریں"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"کال کو ہولڈ کریں"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"کال کو دوبارہ شروع کریں"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"کال ختم کریں"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"ڈائل پیڈ"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"خاموش کریں"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"کال شامل کریں"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"کالز کو ضم کریں"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"تبادلہ کریں"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"کالز کا نظم کریں"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"کانفرنس کال کا نظم کریں"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"کانفرنس کال"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"نظم کریں"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"آڈیو"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"ویڈیو کال"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"صوتی کال میں تبدیل کریں"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"کیمرا سوئچ کریں"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ویڈیو موقوف کریں"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"مزید اختیارات"</string>
+    <string name="player_started" msgid="3478865572468310331">"پلیئر شروع ہوگیا"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"پلیئر بند ہوگیا"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"کیمرا تیار نہیں ہے"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"کیمرا تیار ہے"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"نامعلوم کال سیشن ایونٹ"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"سروس"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"ترتیب دیں"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"‏‎&lt;سیٹ نہیں ہے&gt;‎"</string>
+    <string name="other_settings" msgid="6699076019841942826">"کال کی دیگر ترتیبات"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے آنے والی"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"رابطہ کی تصویر"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"نجی ہوجائیں"</string>
+    <string name="selectContact" msgid="92191462970821951">"رابطہ منتخب کریں"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"اپنا ذاتی تحریر کریں…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"منسوخ کریں"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"بھیجیں"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"جواب دیں"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"‏SMS بھیجیں"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"مسترد کریں"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"ویڈیو کال کے بطور جواب دیں"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"آڈیو کال کے بطور جواب دیں"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"ویڈیو کی درخواست قبول کریں"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"ویڈیو کی درخواست مسترد کریں"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"ویڈیو منتقل کرنے کی درخواست قبول کریں"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"ویڈیو منتقل کرنے کی درخواست مسترد کریں"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"ویڈیو موصول کرنے کی درخواست قبول کریں"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"ویڈیو موصول کرنے کی درخواست مسترد کریں"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے اوپر سلائیڈ کریں۔"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے بائیں سلائیڈ کریں۔"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے دائیں سلائیڈ کریں۔"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے نیچے سلائیڈ کریں۔"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"ارتعاش"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"ارتعاش"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"آواز"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"ڈیفالٹ آواز (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"فون رِنگ ٹون"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"رِنگ کے وقت مرتعش کریں"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"رنگ ٹون اور ارتعاش"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"کانفرنس کال کا نظم کریں"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"ہنگامی نمبر"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> سیکنڈ</item>
+      <item quantity="one">1 سیکنڈ</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"> منٹ</item>
+      <item quantity="one">1 منٹ</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> گھنٹے</item>
+      <item quantity="one">1 گھنٹہ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"پروفائل کی تصویر"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"کیمرا آف ہے"</string>
+    <string name="child_number" msgid="4469090994612105532">"بذریعہ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"نوٹ بھیج دیا گیا"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"حالیہ پیغامات"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"کاروباری معلومات"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> میل دور"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> کلومیٹر دور"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>، <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>، <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"کل <xliff:g id="OPEN_TIME">%s</xliff:g> بجے کھلے گا"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"آج <xliff:g id="OPEN_TIME">%s</xliff:g> بجے کھلے گا"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> بجے بند ہوگا"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"آج <xliff:g id="CLOSE_TIME">%s</xliff:g> بجے بند ہوا"</string>
+    <string name="open_now" msgid="4615706338669555999">"ابھی کھلا ہے"</string>
+    <string name="closed_now" msgid="2635314668145282080">"اب بند ہے"</string>
+</resources>
diff --git a/InCallUI/res/values-uz-rUZ/strings.xml b/InCallUI/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..ef39cc6
--- /dev/null
+++ b/InCallUI/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Telefon"</string>
+    <string name="onHold" msgid="527593602772521700">"Kutilmoqda"</string>
+    <string name="unknown" msgid="3646075119047488748">"Noma’lum"</string>
+    <string name="private_num" msgid="6081418498487514686">"Maxfiy raqam"</string>
+    <string name="payphone" msgid="5743050584468748607">"Taksofon"</string>
+    <string name="confCall" msgid="3181961445236675173">"Konferens-aloqa"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Qo‘ng‘iroq tugatildi"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Karnay"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Telefon quloqchini"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Simli garnitura"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Quyidagi tovush signallari yuborilsinmi?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Tovush signallari yuborilmoqda\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Yuborish"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Ha"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Yo‘q"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Universal belgini bunga almashtirish"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Konferens-aloqa: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Ovozli pochta raqami"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Raqam terilmoqda"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Qayta terilmoqda"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Konferens-aloqa"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Kiruvchi qo‘ng‘iroq"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Kiruvchi qo‘ng‘iroq (ish)"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Qo‘ng‘iroq tugadi"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Kutilmoqda"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Suhbat tugatilmoqda"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Suhbat"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Mening raqamim – <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Videoga ulanmoqda"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Video qo‘ng‘iroq"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Video so‘ralmoqda"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Video qo‘ng‘iroqqa ulanib bo‘lmadi"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Video qo‘ng‘iroq so‘rovi rad etildi"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Favqulodda holatlar uchun teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Raqam terilmoqda"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Javobsiz qo‘ng‘iroq"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Javobsiz qo‘ng‘iroqlar"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ta javobsiz qo‘ng‘iroq"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> qo‘ng‘irog‘i javobsiz qoldirildi"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Joriy qo‘ng‘iroq"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Joriy qo‘ng‘iroq (ish)"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Joriy Wi-Fi qo‘ng‘iroq"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Joriy Wi-Fi qo‘ng‘iroq (ish)"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Kutilmoqda"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Kiruvchi qo‘ng‘iroq"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Kiruvchi qo‘ng‘iroq (ish)"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Kiruvchi Wi-Fi qo‘ng‘iroq"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Kiruvchi Wi-Fi qo‘ng‘iroq (ish)"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Kiruvchi video qo‘ng‘iroq"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Kiruvchi video qo‘ng‘iroq"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Yangi ovozli xabar"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Yangi ovozli xabar (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> raqamini terish"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Ovozli pochta raqami noma’lum"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Xizmat mavjud emas"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Tanlangan tarmoq (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) mavjud emas"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Javob berish"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Suhbatni tugatish"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video aloqa"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Ovozli aloqa"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Qabul qilish"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Rad etish"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Telefon qilish"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"SMS yuborish"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Qo‘ng‘iroq qilish uchun, avval “Parvoz rejimi” o‘chirilishi kerak."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Uyali tarmoq mavjud emas."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Qo‘ng‘iroq qilish uchun raqamni to‘g‘ri kiriting."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Qo‘ng‘iroq qilib bo‘lmadi."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"MMI tartibi ishga tushmoqda…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Xizmat qo‘llab-quvvatlanmaydi."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Qo‘ng‘iroqlarni almashtirib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Qo‘ng‘iroqni ajratib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"O‘tkazib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Konferens-aloqa o‘rnatib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Qo‘ng‘iroqni rad qilib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Qo‘ng‘iroq(lar)ni chiqarib bo‘lmadi."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP qo‘ng‘iroq"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Favqulodda qo‘ng‘iroq"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Radio yoqilmoqda…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Aloqa yo‘q. Qayta urinilmoqda…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Qo‘ng‘iroq qilib bo‘lmadi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> favqulodda raqam emas."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Qo‘ng‘iroq qilib bo‘lmadi. Favqulodda raqamga tering."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Terish uchun klaviaturadan foydalaning"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Qo‘ng‘iroqni ushlab turish"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Qo‘ng‘iroqni davom ettirish"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Qo‘ng‘iroqni tugatish"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Tugmachalar"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Ovozni o‘chirish"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Qo‘ng‘iroq qo‘shish"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Qo‘ng‘iroqlarni birlashtirish"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Almashtirish"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Qo‘ng‘iroqlarni boshqarish"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Konferens-aloqani sozlash"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Konferens-aloqa"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Boshqarish"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video qo‘ng‘iroq"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ovozli qo‘ng‘iroqqa o‘zgartirish"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamerani almashtirish"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videoni to‘xtatib turish"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Ko‘proq"</string>
+    <string name="player_started" msgid="3478865572468310331">"Pleyer ishga tushirildi"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Pleyer to‘xtatildi"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Kamera tayyor emas"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Kamera tayyor"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Aloqa seansining noma’lum hodisasi"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Xizmat"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Sozlash"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ko‘rsatilmagan&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Boshqa qo‘ng‘iroq sozlamalari"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali kiruvchi qo‘ng‘iroqlar"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"kontakt rasmi"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"alohida suhbatga o‘tish"</string>
+    <string name="selectContact" msgid="92191462970821951">"kontaktni tanlash"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"O‘z javobingizni yozing…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Bekor qilish"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Yuborish"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Javob berish"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"SMS yuborish"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Rad etish"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Video qo‘ng‘iroqqa javob berish"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Ovozli qo‘ng‘iroqqa javob berish"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Video qo‘ng‘iroq so‘rovini qabul qilish"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Video qo‘ng‘iroq so‘rovini rad etish"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Video uzatishga ruxsat berish"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Video uzatishga ruxsat bermaslik"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Kiruvchi video qo‘ng‘iroqni qabul qilish"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Kiruvchi video qo‘ng‘iroqni rad etish"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun tepaga suring."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun chapga suring."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun o‘ngga suring."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun pastga suring."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Tebranish"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Tebranish"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Ovoz"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Standart ovoz (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Telefon ringtoni"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Jiringlash vaqtida tebranish"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Qo‘ng‘iroq ohangi va tebranish"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Konferens-aloqani sozlash"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Favqulodda qo‘ng‘iroq raqami"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> soniya</item>
+      <item quantity="one">1 soniya</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> daqiqa</item>
+      <item quantity="one">1 daqiqa</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> soat</item>
+      <item quantity="one">1 soat</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Profil rasmi"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Kamera o‘chiq"</string>
+    <string name="child_number" msgid="4469090994612105532">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> orqali"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Qayd yuborildi"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"So‘nggi xabarlar"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Kompaniya haqida ma’lumot"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil masofada"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> km masofada"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Ertaga <xliff:g id="OPEN_TIME">%s</xliff:g> da ochiladi"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Bugun <xliff:g id="OPEN_TIME">%s</xliff:g> da ochiladi"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da yopiladi"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Bugun <xliff:g id="CLOSE_TIME">%s</xliff:g> da yopiladi"</string>
+    <string name="open_now" msgid="4615706338669555999">"Ochiq"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Yopiq"</string>
+</resources>
diff --git a/InCallUI/res/values-vi/strings.xml b/InCallUI/res/values-vi/strings.xml
new file mode 100644
index 0000000..35fbc42
--- /dev/null
+++ b/InCallUI/res/values-vi/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Điện thoại"</string>
+    <string name="onHold" msgid="527593602772521700">"Đang chờ"</string>
+    <string name="unknown" msgid="3646075119047488748">"Không xác định"</string>
+    <string name="private_num" msgid="6081418498487514686">"Số cá nhân"</string>
+    <string name="payphone" msgid="5743050584468748607">"Điện thoại trả tiền"</string>
+    <string name="confCall" msgid="3181961445236675173">"Cuộc gọi nhiều bên"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Cuộc gọi bị gián đoạn"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Loa"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Tai nghe ĐTDĐ"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Tai nghe có dây"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Gửi các âm sau?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Đang gửi âm\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Gửi"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Có"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Không"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Thay thế ký tự tự do bằng"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Cuộc gọi nhiều bên <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Số thư thoại"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Đang gọi"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Đang quay số lại"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Cuộc gọi nhiều bên"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Cuộc gọi đến"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Cuộc gọi đến về công việc"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Cuộc gọi đã kết thúc"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Đang chờ"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Kết thúc cuộc gọi"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Trong cuộc gọi"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Số điện thoại của tôi là <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Đang kết nối video"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Cuộc gọi điện video"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Đang yêu cầu video"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Không kết nối được cuộc gọi điện video"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Đã từ chối yêu cầu video"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Số gọi lại của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Số gọi lại khẩn cấp của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Đang gọi"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Cuộc gọi nhỡ từ <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Cuộc gọi đang thực hiện"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Cuộc gọi đang diễn ra về công việc"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Cuộc gọi đang diễn ra qua Wi-Fi"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Cuộc gọi đang diễn ra qua Wi-Fi về công việc"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Đang chờ"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Cuộc gọi đến"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Cuộc gọi đến về công việc"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Cuộc gọi đến qua Wi-Fi"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Cuộc gọi đến qua Wi-Fi về công việc"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Cuộc gọi điện video đến"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Yêu cầu video đến"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Thư thoại mới"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Thư thoại mới (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Quay số <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Số thư thoại không xác định"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Không có dịch vụ"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Mạng được chọn (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) không khả dụng"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Trả lời"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Gác máy"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Thoại"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Chấp nhận"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Loại bỏ"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Gọi lại"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Tin nhắn"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Để thực hiện cuộc gọi, trước tiên, hãy tắt chế độ trên Máy bay."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Chưa được đăng ký trên mạng."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Không có mạng di động."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Để thực hiện cuộc gọi, hãy nhập một số hợp lệ."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Không thực hiện được cuộc gọi."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Đang khởi động chuỗi MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Dịch vụ không được hỗ trợ."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Không chuyển đổi được cuộc gọi."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Không tách được cuộc gọi."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Không chuyển được cuộc gọi."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Không thực hiện được cuộc gọi nhiều bên."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Không từ chối được cuộc gọi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Không thực hiện được cuộc gọi."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Cuộc gọi qua SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Cuộc gọi khẩn cấp"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Đang bật radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Không có dịch vụ nào. Đang thử lại…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Không thực hiện được cuộc gọi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> không phải là số khẩn cấp."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Không thực hiện được cuộc gọi. Hãy quay số khẩn cấp."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Sử dụng bàn phím để quay số"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Giữ cuộc gọi"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Tiếp tục cuộc gọi"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Kết thúc cuộc gọi"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Bàn phím số"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Bỏ qua"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Thêm cuộc gọi"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Hợp nhất cuộc gọi"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Hoán đổi"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Quản lý cuộc gọi"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Quản lý cuộc gọi nhiều bên"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Cuộc gọi nhiều bên"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Quản lý"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Âm thanh"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Cuộc gọi điện video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Thay đổi thành cuộc gọi thoại"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Chuyển máy ảnh"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Dừng video"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Tùy chọn khác"</string>
+    <string name="player_started" msgid="3478865572468310331">"Đã khởi động trình phát"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Đã dừng trình phát"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Máy ảnh chưa sẵn sàng"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Máy ảnh đã sẵn sàng"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Sự kiện phiên cuộc gọi không xác định"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Dịch vụ"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Thiết lập"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Chưa được đặt&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Cài đặt cuộc gọi khác"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"ảnh liên hệ"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"chuyển thành riêng tư"</string>
+    <string name="selectContact" msgid="92191462970821951">"chọn địa chỉ liên hệ"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Viết trả lời của riêng bạn..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Hủy"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Gửi"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Trả lời"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Gửi SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Từ chối"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Trả lời là cuộc gọi điện video"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Trả lời là cuộc gọi âm thanh"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Chấp nhận yêu cầu cuộc gọi video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Từ chối yêu cầu cuộc gọi video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Chấp nhận yêu cầu truyền video"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Từ chối yêu cầu truyền video"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Chấp nhận yêu cầu nhận video"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Từ chối yêu cầu nhận video"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Trượt lên để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Trượt sang trái để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Trượt sang phải để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Trượt xuống để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Rung"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Rung"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Âm thanh"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Âm thanh mặc định (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Nhạc chuông điện thoại"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Rung khi đổ chuông"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Nhạc chuông và rung"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Quản lý cuộc gọi nhiều bên"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Số khẩn cấp"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> giây</item>
+      <item quantity="one">1 giây</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> phút</item>
+      <item quantity="one">1 phút</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> giờ</item>
+      <item quantity="one">1 giờ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Ảnh hồ sơ"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Tắt máy ảnh"</string>
+    <string name="child_number" msgid="4469090994612105532">"qua <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Đã gửi ghi chú"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Tin nhắn gần đây"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Thông tin doanh nghiệp"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"Cách <xliff:g id="DISTANCE">%.1f</xliff:g> dặm"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"Cách <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Mở cửa lúc <xliff:g id="OPEN_TIME">%s</xliff:g> ngày mai"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Mở cửa lúc <xliff:g id="OPEN_TIME">%s</xliff:g> hôm nay"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Đóng cửa lúc <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Đã đóng cửa lúc <xliff:g id="CLOSE_TIME">%s</xliff:g> hôm nay"</string>
+    <string name="open_now" msgid="4615706338669555999">"Mở ngay bây giờ"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Hiện đã đóng cửa"</string>
+</resources>
diff --git a/InCallUI/res/values-w500dp-land/colors.xml b/InCallUI/res/values-w500dp-land/colors.xml
new file mode 100644
index 0000000..77eea2e
--- /dev/null
+++ b/InCallUI/res/values-w500dp-land/colors.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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>
+    <!-- Background color for status bar. For portrait this will be ignored. -->
+    <color name="statusbar_background_color">#000000</color>
+</resources>
diff --git a/InCallUI/res/values-w500dp-land/dimens.xml b/InCallUI/res/values-w500dp-land/dimens.xml
new file mode 100644
index 0000000..112ec5f
--- /dev/null
+++ b/InCallUI/res/values-w500dp-land/dimens.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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>
+    <!-- Whether or not this layout displays a large photo. -->
+    <bool name="has_large_photo">true</bool>
+
+    <!-- Whether or not the landscape mode layout is currently being used -->
+    <bool name="is_layout_landscape">true</bool>
+
+    <!-- Height and width of the in-call buttons. -->
+    <dimen name="in_call_button_dimension">40dp</dimen>
+
+    <!-- Margin underneath the call buttons. This is used only in landscape mode and is sized
+         so that the call buttons are center aligned with the end call button. -->
+    <dimen name="call_buttons_bottom_margin">30dp</dimen>
+
+    <dimen name="dialpad_elevation">2dp</dimen>
+
+    <dimen name="video_preview_margin">20dp</dimen>
+</resources>
diff --git a/InCallUI/res/values-zh-rCN/strings.xml b/InCallUI/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..168bb53
--- /dev/null
+++ b/InCallUI/res/values-zh-rCN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"电话"</string>
+    <string name="onHold" msgid="527593602772521700">"保持"</string>
+    <string name="unknown" msgid="3646075119047488748">"未知"</string>
+    <string name="private_num" msgid="6081418498487514686">"私密号码"</string>
+    <string name="payphone" msgid="5743050584468748607">"公用电话"</string>
+    <string name="confCall" msgid="3181961445236675173">"电话会议"</string>
+    <string name="call_lost" msgid="8208184291640961172">"通话中断"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"扬声器"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"手机听筒"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"有线耳机"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"蓝牙"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"发送以下信号音？\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"正在发送信号音\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"发送"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"是"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"否"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"将通配符替换为"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"电话会议（<xliff:g id="CONF_CALL_TIME">%s</xliff:g>）"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"语音信箱号码"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"正在拨号"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"正在重拨"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"电话会议"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"来电"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"工作来电"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"通话已结束"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"保持"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"正在挂断"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"正在通话"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"我的电话号码：<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"正在接通视频"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"视频通话"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"正在发出视频请求"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"无法接通视频通话"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"视频请求遭拒"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"您的回拨号码如下：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"您的紧急回拨号码如下：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"正在拨号"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"未接电话"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"未接电话"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 个未接电话"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"来自<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>的未接电话"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"通话进行中"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"工作通话进行中"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"WLAN 通话进行中"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"WLAN 工作通话进行中"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"保持"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"来电"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"工作来电"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"WLAN 来电"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"WLAN 工作来电"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"视频通话来电"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"收到视频通话请求"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"新语音邮件"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"新语音邮件 (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"拨打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"语音信箱号码未知"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"没有服务"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"所选网络（<xliff:g id="OPERATOR_NAME">%s</xliff:g>）不可用"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"接听"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"挂断"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"视频"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"语音"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"接受"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"拒绝"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回电"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"发短信"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"要拨打电话，请先关闭飞行模式。"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"尚未注册网络。"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"无法连接到移动网络。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"要拨打电话，请输入有效的电话号码。"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"无法拨打该电话。"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"正在启动 MMI 序列…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"服务不受支持。"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"无法切换通话。"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"无法单独通话。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"无法转移呼叫。"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"无法进行电话会议。"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"无法拒接来电。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"无法挂断。"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP 通话"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"紧急呼救"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"正在开启无线装置…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"找不到服务信号，正在重试…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"无法拨打该电话。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是紧急呼救号码。"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"无法拨打该电话。请拨打紧急呼救号码。"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"使用键盘拨号"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"保持通话"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"恢复通话"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"结束通话"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"拨号键盘"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"静音"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"添加通话"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"合并通话"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"切换"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"管理通话"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"管理电话会议"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"电话会议"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"管理"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"音频"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"视频通话"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"改为语音通话"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切换摄像头"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暂停视频"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"更多选项"</string>
+    <string name="player_started" msgid="3478865572468310331">"播放器已启动"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"播放器已停止"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"摄像头尚未准备就绪"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"摄像头已准备就绪"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"未知通话事件"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"服务"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"设置"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;未设置&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"其他通话设置"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"正在通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"有人通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>来电"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"联系人照片"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"单独通话"</string>
+    <string name="selectContact" msgid="92191462970821951">"选择联系人"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"自行撰写回复…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"取消"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"发送"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"接听"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"发送短信"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"拒绝"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"以视频通话的形式接听"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"以音频通话的形式接听"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"接受视频请求"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"拒绝视频请求"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"接受视频传输请求"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"拒绝视频传输请求"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"接受视频接收请求"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"拒绝视频接收请求"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"向上滑动即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"向左滑动即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"向右滑动即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"向下滑动即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"振动"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"振动"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"提示音"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"默认提示音（<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>）"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"手机铃声"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"响铃时振动"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"铃声和振动"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"管理电话会议"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"紧急呼救号码"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 秒</item>
+      <item quantity="one">1 秒</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 分钟</item>
+      <item quantity="one">1 分钟</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小时</item>
+      <item quantity="one">1 小时</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"个人资料照片"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"摄像头已关闭"</string>
+    <string name="child_number" msgid="4469090994612105532">"通过 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"已发送备注"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"最近的信息"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"商家信息"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里远"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里远"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="LOCALITY">%2$s</xliff:g><xliff:g id="STREET_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>，<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"将于明天<xliff:g id="OPEN_TIME">%s</xliff:g>开始营业"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"将于今天<xliff:g id="OPEN_TIME">%s</xliff:g>开始营业"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"将于<xliff:g id="CLOSE_TIME">%s</xliff:g>结束营业"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"已于今天<xliff:g id="CLOSE_TIME">%s</xliff:g>结束营业"</string>
+    <string name="open_now" msgid="4615706338669555999">"营业中"</string>
+    <string name="closed_now" msgid="2635314668145282080">"现已结束营业"</string>
+</resources>
diff --git a/InCallUI/res/values-zh-rHK/strings.xml b/InCallUI/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..80be3a2
--- /dev/null
+++ b/InCallUI/res/values-zh-rHK/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"電話"</string>
+    <string name="onHold" msgid="527593602772521700">"保留通話"</string>
+    <string name="unknown" msgid="3646075119047488748">"不明"</string>
+    <string name="private_num" msgid="6081418498487514686">"私人號碼"</string>
+    <string name="payphone" msgid="5743050584468748607">"公共電話"</string>
+    <string name="confCall" msgid="3181961445236675173">"會議通話"</string>
+    <string name="call_lost" msgid="8208184291640961172">"通話已中斷"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"喇叭"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"免提聽筒"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"有線耳機"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"藍牙"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"要傳送以下訊號音嗎？\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"正在傳送訊號音\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"傳送"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"是"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"否"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"將萬用字元改為"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"會議通話：<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"留言號碼"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"正在撥號"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"正在重撥"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"會議通話"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"來電"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"工作來電"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"通話已結束"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"保留通話"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"正在掛斷電話"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"正在通話"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"我的電話號碼：<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"正在建立視像通話連線"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"視像通話"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"正在提出視像通話要求"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"無法建立視像通話連線"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"視像通話要求被拒"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"您的回撥號碼：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"您的緊急回撥號碼：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"正在撥號"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"未接來電"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"未接來電"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 個未接來電"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"來自 <xliff:g id="MISSED_CALL_FROM">%s</xliff:g> 的未接來電"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"通話中"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"正在進行工作通話"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"正在進行 Wi-Fi 通話"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"正在進行 Wi-Fi 工作通話"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"保留通話"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"來電"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"工作來電"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Wi-Fi 來電"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Wi-Fi 工作來電"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"視像通話來電"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"收到視像通話要求"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"新留言"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"新留言 (<xliff:g id="COUNT">%d</xliff:g> 個)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"撥打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"留言號碼不明"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"沒有服務"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"您選取的網絡 (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) 無法使用"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"接聽"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"掛斷電話"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"視像通話"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"語音通話"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"接受"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"拒絕"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回電"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"短訊"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"如要撥打電話，請先關閉飛行模式。"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"未在網絡上註冊。"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"無法連線至流動網絡。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"如要撥打電話，請輸入有效的號碼。"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"無法通話。"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"開始 MMI 序列…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"不支援此服務。"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"無法切換通話。"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"無法分開通話。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"無法轉接。"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"無法進行會議通話。"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"無法拒接來電。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"無法結束通話。"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP 通話"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"緊急電話"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"正在開啟無線電…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"找不到服務，請再試一次…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急電話號碼。"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"無法通話。請撥打緊急電話號碼。"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"使用鍵盤撥號"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"保留通話"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"恢復通話"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"結束通話"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"撥號鍵盤"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"靜音"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"新增通話"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"合併通話"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"切換"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"管理通話"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"管理會議通話"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"會議通話"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"管理"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"音訊"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"視像通話"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"變更為語音通話"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切換鏡頭"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暫停視像通話"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"更多選項"</string>
+    <string name="player_started" msgid="3478865572468310331">"已啟動播放器"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"已停止播放器"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"相機未準備好"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"相機已準備就緒"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"不明的通話工作階段活動"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"服務"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"設定"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;未設定&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"其他通話設定"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"聯絡人相片"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"私人通話"</string>
+    <string name="selectContact" msgid="92191462970821951">"選取聯絡人"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"自行撰寫回覆..."</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"取消"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"傳送"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"接聽"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"傳送短訊"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"拒絕"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"接聽視像通話"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"接聽語音通話"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"接受視像通話要求"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"拒絕視像通話要求"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"接受視像通話轉駁要求"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"拒絕視像通話轉駁要求"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"接受視像接收要求"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"拒絕視像接收要求"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"向右滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"向下滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"震動"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"震動"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"音效"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"預設音效 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"手機鈴聲"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"響鈴時震動"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"鈴聲和震動"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"管理會議通話"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"緊急電話號碼"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 秒</item>
+      <item quantity="one">1 秒</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 分鐘</item>
+      <item quantity="one">1 分鐘</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
+      <item quantity="one">1 小時</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"個人檔案相片"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"相機已關閉"</string>
+    <string name="child_number" msgid="4469090994612105532">"透過 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"已傳送筆記"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"最近的訊息"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"公司資料"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里外"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里外"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="LOCALITY">%2$s</xliff:g><xliff:g id="STREET_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>，<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"將於明天<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"將於今天<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"將於<xliff:g id="CLOSE_TIME">%s</xliff:g>關門"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"已於今天<xliff:g id="CLOSE_TIME">%s</xliff:g>關門"</string>
+    <string name="open_now" msgid="4615706338669555999">"營業中"</string>
+    <string name="closed_now" msgid="2635314668145282080">"目前休息"</string>
+</resources>
diff --git a/InCallUI/res/values-zh-rTW/strings.xml b/InCallUI/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..c20e468
--- /dev/null
+++ b/InCallUI/res/values-zh-rTW/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"電話"</string>
+    <string name="onHold" msgid="527593602772521700">"保留"</string>
+    <string name="unknown" msgid="3646075119047488748">"不明"</string>
+    <string name="private_num" msgid="6081418498487514686">"私人號碼"</string>
+    <string name="payphone" msgid="5743050584468748607">"公用電話"</string>
+    <string name="confCall" msgid="3181961445236675173">"電話會議"</string>
+    <string name="call_lost" msgid="8208184291640961172">"通話已中斷"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"喇叭"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"手機聽筒"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"有線耳機"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"藍牙"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"要傳送以下的信號音嗎？\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"正在傳送信號音\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"傳送"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"是"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"否"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"將萬用字元替換為"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"電話會議 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"語音留言號碼"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"撥號中"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"重撥中"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"電話會議"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"來電"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"公司來電"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"通話已結束"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"保留"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"掛斷中"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"通話中"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"我的電話號碼：<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"正在建立視訊通話連線"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"視訊通話"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"正在提出視訊通話要求"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"無法建立視訊通話連線"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"視訊通話要求遭拒"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"您的回撥號碼如下\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"您的緊急回撥號碼如下\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"撥號中"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"未接來電"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"未接來電"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 通未接來電"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"來自 <xliff:g id="MISSED_CALL_FROM">%s</xliff:g> 的未接來電"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"進行中的通話"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"進行中的公司通話"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"進行中的通話 (透過 Wi-Fi)"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"進行中的公司通話 (透過 Wi-Fi)"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"保留"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"來電"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"公司來電"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"來電 (透過 Wi-Fi)"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"公司來電 (透過 Wi-Fi)"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"視訊通話來電"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"收到視訊通話要求"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"新的語音留言"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"新的語音留言 (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"撥打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"語音留言號碼不明"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"沒有服務"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"您所選取的網路 (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) 無法使用"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"接聽"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"掛斷"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"視訊通話"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"語音通話"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"接受"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"拒絕"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回撥"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"傳送簡訊"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"撥號前，請先關閉飛航模式。"</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"尚未註冊網路。"</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"無法連線到行動網路。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"如要撥打電話，請輸入有效的號碼。"</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"無法通話。"</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"開始 MMI 序列…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"不支援的服務。"</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"無法切換通話。"</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"無法分割通話。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"無法轉接。"</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"無法進行電話會議。"</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"無法拒接來電。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"無法掛斷電話。"</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP 通話"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"緊急電話"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"正在開啟無線通訊…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"找不到服務訊號，重試中…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急電話號碼。"</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"無法通話。只能撥打緊急號碼。"</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"使用鍵盤撥號"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"保留通話"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"恢復通話"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"結束通話"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"撥號鍵盤"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"靜音"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"新增通話"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"合併通話"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"切換"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"管理通話"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"管理電話會議"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"電話會議"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"管理"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"音訊"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"視訊通話"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"變更為語音通話"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切換鏡頭"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暫停視訊畫面"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"更多選項"</string>
+    <string name="player_started" msgid="3478865572468310331">"已啟動播放器"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"已停止播放器"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"相機尚未就緒"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"相機已準備就緒"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"不明的通話工作階段事件"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"服務"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"設定"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;未設定&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"其他通話設定"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"聯絡人相片"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"私人通話"</string>
+    <string name="selectContact" msgid="92191462970821951">"選取聯絡人"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"自行撰寫回應…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"取消"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"傳送"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"接聽"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"傳送簡訊"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"拒絕"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"接聽視訊通話"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"接聽語音通話"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"接受視訊通話要求"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"拒絕視訊通話要求"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"接受視訊傳送要求"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"拒絕視訊傳送要求"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"接受視訊接收要求"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"拒絕視訊接收要求"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"向右滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"向下滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"震動"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"震動"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"音效"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"預設音效 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"手機鈴聲"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"鈴響時震動"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"鈴聲與震動"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"管理電話會議"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"緊急電話號碼"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 秒</item>
+      <item quantity="one">1 秒</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 分鐘</item>
+      <item quantity="one">1 分鐘</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
+      <item quantity="one">1 小時</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"個人資料相片"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"相機已停用"</string>
+    <string name="child_number" msgid="4469090994612105532">"透過 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"備註已送出"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"最近的訊息"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"商家資訊"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里遠"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里遠"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="LOCALITY">%2$s</xliff:g>，<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>，<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"將於明日<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"將於本日<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"將於<xliff:g id="CLOSE_TIME">%s</xliff:g>結束營業"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"已於本日<xliff:g id="CLOSE_TIME">%s</xliff:g>結束營業"</string>
+    <string name="open_now" msgid="4615706338669555999">"營業中"</string>
+    <string name="closed_now" msgid="2635314668145282080">"本日已結束營業"</string>
+</resources>
diff --git a/InCallUI/res/values-zu/strings.xml b/InCallUI/res/values-zu/strings.xml
new file mode 100644
index 0000000..53badc5
--- /dev/null
+++ b/InCallUI/res/values-zu/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ 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
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="4753450867264774000">"Ifoni"</string>
+    <string name="onHold" msgid="527593602772521700">"Ibanjiwe"</string>
+    <string name="unknown" msgid="3646075119047488748">"Akwaziwa"</string>
+    <string name="private_num" msgid="6081418498487514686">"Inombolo eyimfihlo"</string>
+    <string name="payphone" msgid="5743050584468748607">"Ucingo olufakwa imali"</string>
+    <string name="confCall" msgid="3181961445236675173">"Ikholi yenkomfa"</string>
+    <string name="call_lost" msgid="8208184291640961172">"Ikholi ivaliwe"</string>
+    <string name="audio_mode_speaker" msgid="6160127758732918123">"Isipikha"</string>
+    <string name="audio_mode_earpiece" msgid="3138677187223932893">"Isipikha sendlebe sama-ear phone"</string>
+    <string name="audio_mode_wired_headset" msgid="583080366967943196">"Ama-earphone anezintambo"</string>
+    <string name="audio_mode_bluetooth" msgid="3188504589946495676">"I-Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="3784275777844586675">"Thumela amathoni alandelayo?\n"</string>
+    <string name="pause_prompt_str" msgid="4507496811727697620">"Ithumela amathoni\n"</string>
+    <string name="send_button" msgid="4054398309483035794">"Thumela"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Yebo"</string>
+    <string name="pause_prompt_no" msgid="417286529736964178">"Cha"</string>
+    <string name="wild_prompt_str" msgid="8178750766679617355">"Miselela uhlamvu lwasendle nge"</string>
+    <string name="caller_manage_header" msgid="4036790479287738218">"Ikholi yenkomfa engu-<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="2951965862286532957">"Inombolo yevoyisimeyili"</string>
+    <string name="card_title_dialing" msgid="5046026076417718916">"Iyadayela"</string>
+    <string name="card_title_redialing" msgid="8072468059192027844">"Iphinda iyadayela"</string>
+    <string name="card_title_conf_call" msgid="1747835072739982104">"Ikholi yenkomfa"</string>
+    <string name="card_title_incoming_call" msgid="4138485434087223132">"Ikholi engenayo"</string>
+    <string name="card_title_incoming_work_call" msgid="7000583925426981712">"Ikholi engenayo yomsebenzi"</string>
+    <string name="card_title_call_ended" msgid="5249815286629136486">"Ikholi iqediwe"</string>
+    <string name="card_title_on_hold" msgid="5633854828341577689">"Ibanjiwe"</string>
+    <string name="card_title_hanging_up" msgid="3402022578391538671">"Iyavala"</string>
+    <string name="card_title_in_call" msgid="5029165346952099302">"Ukukholi"</string>
+    <string name="card_title_my_phone_number" msgid="3749572971322520177">"Inombolo yami ngu-<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="9171270899902894036">"Ixhuma ividiyo"</string>
+    <string name="card_title_video_call" msgid="6519406270853889302">"Ikholi yevidiyo"</string>
+    <string name="card_title_video_call_requesting" msgid="1611293204379882739">"Icela ividiyo"</string>
+    <string name="card_title_video_call_error" msgid="8488074823425848193">"Ayikwazi ukuxhuma ikholi yevidiyo"</string>
+    <string name="card_title_video_call_rejected" msgid="2885215432045215465">"Isicelo sevidiyo sinqatshelwe"</string>
+    <string name="card_title_callback_number" msgid="7646082782307705748">"Inombolo yakho yokuphinda ushaye\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8916355112472826080">"Inombolo yakho yokuphinda ushayelwe yesimo esiphuthumayo\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="8080968169444117163">"Iyadayela"</string>
+    <string name="notification_missedCallTitle" msgid="2774630248151712215">"Ikholi ephuthelwe"</string>
+    <string name="notification_missedCallsTitle" msgid="263275811089605859">"Amakholi akuphuthele"</string>
+    <string name="notification_missedCallsMsg" msgid="69408330370667429">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> amakholi akulahlekele"</string>
+    <string name="notification_missedCallTicker" msgid="1599269453813734699">"Uphuthelwe ikholi kusukela ku-<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="8633734299234807397">"Ikholi eqhubekayo"</string>
+    <string name="notification_ongoing_work_call" msgid="3465083293325006579">"Ikholi yomsebenzi eqhubekayo"</string>
+    <string name="notification_ongoing_call_wifi" msgid="4140639349603930166">"Ikholi ye-Wi-Fi eqhubekayo"</string>
+    <string name="notification_ongoing_work_call_wifi" msgid="8469582753279163976">"Ikholi yomsebenzi eqhubekayo ye-Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3151343576023182586">"Ibanjiwe"</string>
+    <string name="notification_incoming_call" msgid="5904745644632328863">"Ikholi engenayo"</string>
+    <string name="notification_incoming_work_call" msgid="281305845895342925">"Ikholi engenayo yomsebenzi"</string>
+    <string name="notification_incoming_call_wifi" msgid="8337740714221114955">"Ikholi ye-Wi-Fi engenayo"</string>
+    <string name="notification_incoming_work_call_wifi" msgid="3248418394186803763">"Ikholi engenayo yomsebenzi ye-Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7814873581838165772">"Ikholi yevidiyo engenayo"</string>
+    <string name="notification_requesting_video_call" msgid="4844596091477863245">"Isicelo sevidiyo engenayo"</string>
+    <string name="notification_voicemail_title" msgid="7595628197933709144">"Ivoyisimeyili entsha"</string>
+    <string name="notification_voicemail_title_count" msgid="1241573926817248239">"Ivoyisimeyili entsha (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="6496440879085042069">"Dayela u-<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="5433652017869242375">"Inombolo yevoyisimeyili ayaziwa"</string>
+    <string name="notification_network_selection_title" msgid="6785177943238085441">"Ayikho isevisi"</string>
+    <string name="notification_network_selection_text" msgid="9097902390701009591">"Inethiwekhi ekhethiwe (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ayitholakali"</string>
+    <string name="notification_action_answer" msgid="8418990052527593953">"Phendula"</string>
+    <string name="notification_action_end_call" msgid="2152010639043225860">"Vala ikholi"</string>
+    <string name="notification_action_answer_video" msgid="2400233093494856655">"Ividiyo"</string>
+    <string name="notification_action_answer_voice" msgid="3206168292649273866">"Izwi"</string>
+    <string name="notification_action_accept" msgid="8595047032790476122">"Yamukela"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Cashisa"</string>
+    <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Phinda ushayele"</string>
+    <string name="notification_missedCall_message" msgid="2407410183079324393">"Umlayezo"</string>
+    <string name="incall_error_power_off" msgid="3626117639377110403">"Ukwenza ikholi, vala kuqala imodi Yendiza."</string>
+    <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ayibhalisiwe kwinethiwekhi."</string>
+    <string name="incall_error_out_of_service" msgid="1830319376612608339">"Inethiwekhi yeselula ayitholakali."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="3042963797202928322">"Ukuze wenze ikholi, faka inombolo evumelekile."</string>
+    <string name="incall_error_call_failed" msgid="2213413937257570551">"Ayikwazi ukushaya."</string>
+    <string name="incall_status_dialed_mmi" msgid="8864341962086874751">"Iqalisa ukulandelana kwe-MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="3390926762577861268">"Isevisi ayisekelwe."</string>
+    <string name="incall_error_supp_service_switch" msgid="4893764463854753730">"Ayikwazi ukushintsha amakholi."</string>
+    <string name="incall_error_supp_service_separate" msgid="5469628699581380277">"Ayikwazi ukuhlukanisa ikholi."</string>
+    <string name="incall_error_supp_service_transfer" msgid="3220469890457973326">"Ayikwazi ukudlulisela."</string>
+    <string name="incall_error_supp_service_conference" msgid="3100373998543200356">"Ayikwazi ukwenza inkomfa."</string>
+    <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Ayikwazi ukunqabela ikholi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Ayikwazi ukukhipha amakholi."</string>
+    <string name="incall_call_type_label_sip" msgid="1327822795765282192">"Ikholi ye-SIP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Ikholi ephuthumayo"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ivula irediyo..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ayikho isevisi. Iyazama futhi…"</string>
+    <string name="dial_emergency_error" msgid="582305854626092376">"Ayikwazi ukushaya. U-<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> akuyona inombolo yesimo esiphuthumayo."</string>
+    <string name="dial_emergency_empty_error" msgid="199888628163390267">"Ayikwazi ukushaya. Shayela inombolo yesimo esiphuthumayo."</string>
+    <string name="dialerKeyboardHintText" msgid="8533449463925408141">"Sebenzisa ikhibhodi ukudayela"</string>
+    <string name="onscreenHoldText_unselected" msgid="4509232821220492533">"Bamba ikholi"</string>
+    <string name="onscreenHoldText_selected" msgid="2988100347384733032">"Qalisa kabusha ikholi"</string>
+    <string name="onscreenEndCallText" msgid="1416981593311001074">"Qeda ikholi"</string>
+    <string name="onscreenShowDialpadText" msgid="8798170898298132499">"Iphedi yokudayela"</string>
+    <string name="onscreenMuteText" msgid="5303380507675232140">"Thulisa"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Engeza ikholi"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Hlanganisa amakholi"</string>
+    <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Shintsha"</string>
+    <string name="onscreenManageCallsText" msgid="5491297234697209677">"Phatha amakholi"</string>
+    <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Phatha ucingo lwengqungquthela"</string>
+    <string name="onscreenConferenceText" msgid="171855677185793827">"Ikholi yenkomfa"</string>
+    <string name="onscreenManageText" msgid="7625850560625708322">"Phatha"</string>
+    <string name="onscreenAudioText" msgid="8963459818052898299">"Umsindo"</string>
+    <string name="onscreenVideoCallText" msgid="1578940167445068369">"Ikholi yevidiyo"</string>
+    <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Shintshela kukholi yezwi"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Shintsha Ikhamera"</string>
+    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Misa isikhashana ividiyo"</string>
+    <string name="onscreenOverflowText" msgid="7932741239724473887">"Izinketho eziningi"</string>
+    <string name="player_started" msgid="3478865572468310331">"Umdlali uqalile"</string>
+    <string name="player_stopped" msgid="1278611664986561535">"Umdlali umisiwe"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"Ikhamera ayilungile"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"Ikhamera ilungile"</string>
+    <string name="unknown_call_session_event" msgid="2947023743819984299">"Umcimbi wesikhathi sekholi ongaziwa"</string>
+    <string name="voicemail_provider" msgid="2878119321474918370">"Isevisi"</string>
+    <string name="voicemail_settings" msgid="7548868784816068975">"Ukusetha"</string>
+    <string name="voicemail_number_not_set" msgid="2690477999015436138">"&lt;Ayisethiwe&gt;"</string>
+    <string name="other_settings" msgid="6699076019841942826">"Ezinye izilungiselelo zekholi"</string>
+    <string name="calling_via_template" msgid="3539373093109976255">"Ishaya nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="6281138766370092800">"Ingena nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="6028825355597675193">"isithombe soxhumana naye"</string>
+    <string name="goPrivate" msgid="3554069451018659483">"yenza kube imfihlo"</string>
+    <string name="selectContact" msgid="92191462970821951">"khetha othintana naye"</string>
+    <string name="respond_via_sms_custom_message" msgid="8210393177674619127">"Bhala okwakho…"</string>
+    <string name="custom_message_cancel" msgid="5920059627508662163">"Khansela"</string>
+    <string name="custom_message_send" msgid="3798076337006735995">"Thumela"</string>
+    <string name="description_target_answer" msgid="1111945818996518320">"Phendula"</string>
+    <string name="description_target_send_sms" msgid="3652217769615310018">"Thumela i-SMS"</string>
+    <string name="description_target_decline" msgid="7108154434759234035">"Yenqaba"</string>
+    <string name="description_target_answer_video_call" msgid="4655616461181308405">"Phendula njengekholi yevidiyo"</string>
+    <string name="description_target_answer_audio_call" msgid="3234714934649708854">"Phendula njengekholi yomsindo"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="384894008955682630">"Yamukela isicelo sevidiyo"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="7342968876159189300">"Yenqaba isicelo sevidiyo"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="4586773853073826378">"Yamukela isicelo sokudlulisa ividiyo"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="1191166008711514234">"Yenqaba isicelo sokudlulisa ividiyo"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="2224978927364021080">"Yamukela isicelo sokwamukela ividiyo"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="3151115394424918077">"Yenqaba isicelo sokwamukela ividiyo"</string>
+    <string name="description_direction_up" msgid="1735018141439291766">"Slayidela phezulu ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="6811598791620851239">"Slayida ngakwesokunxele ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="5461971399586296023">"Slayida ngakwesokudla ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="3331715227997561639">"Slayida ngezansi ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="4595145399183729630">"Dlidlizela"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="2390729279972461242">"Dlidlizela"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="1996920553949534944">"Umsindo"</string>
+    <string name="default_notification_description" msgid="4950807644546509965">"Umsindo ozenzakalelayo (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="835582004693335905">"Ithoni yokukhala yefoni"</string>
+    <string name="vibrate_on_ring_title" msgid="5019791043398986665">"Dlidlizisa uma ikhala"</string>
+    <string name="preference_category_ringtone" msgid="6246687516643676729">"Ithoni yokukhala nokudlidliza"</string>
+    <string name="manageConferenceLabel" msgid="7237614418556336108">"Phatha ucingo lwengqungquthela"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="7244995877625769187">"Inombolo ephuthumayo"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="2544699588744957418">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> amasekhondi</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> amasekhondi</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="8379077285441507101">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> amaminithi</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> amaminithi</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7420759096931824344">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="7958198110870319358">"Isithombe sephrofayela"</string>
+    <string name="camera_off_description" msgid="4220023868645225790">"Ikhamera ivaliwe"</string>
+    <string name="child_number" msgid="4469090994612105532">"nge-<xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="7623014827902758398">"Inothi lithunyelwe"</string>
+    <string name="person_contact_context_title" msgid="8490058088809090979">"Imilayezo yakamuva"</string>
+    <string name="business_contact_context_title" msgid="8448362898576496764">"Ulwazi lwebhizinisi"</string>
+    <string name="distance_imperial_away" msgid="2083362798225798740">"<xliff:g id="DISTANCE">%.1f</xliff:g> amamitha kude"</string>
+    <string name="distance_metric_away" msgid="9021396592464955256">"<xliff:g id="DISTANCE">%.1f</xliff:g> amakhilomitha kude"</string>
+    <string name="display_address" msgid="444235484565491291">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="2762952234657271236">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="7803506319518398380">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="3567511490448488788">"Kuvulwa kusasa ngo-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="6281212768937222891">"Kuvulwa namuhla ngo-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="4822369201263491509">"Kuvalwa ngo-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="4060072663433467233">"Kuvalwe namuhla ngo-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="4615706338669555999">"Kuvuliwe manje"</string>
+    <string name="closed_now" msgid="2635314668145282080">"Kuvaliwe manje"</string>
+</resources>
diff --git a/InCallUI/res/values/animation_constants.xml b/InCallUI/res/values/animation_constants.xml
new file mode 100644
index 0000000..8df6a72
--- /dev/null
+++ b/InCallUI/res/values/animation_constants.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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>
+    <!-- Duration of the InCallUI reveal and shrink animations after a call is placed -->
+    <integer name="reveal_animation_duration">333</integer>
+    <integer name="shrink_animation_duration">333</integer>
+    <integer name="video_animation_duration">257</integer>
+</resources>
diff --git a/InCallUI/res/values/array.xml b/InCallUI/res/values/array.xml
new file mode 100644
index 0000000..7877ec8
--- /dev/null
+++ b/InCallUI/res/values/array.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<!-- Array resources for the Phone app. -->
+<resources>
+    <!-- "Target" resources for the GlowPadView widget used for incoming calls;
+         see InCallTouchUi.showIncomingCallWidget() and incall_touch_ui.xml.  -->
+
+    <!-- For audio calls, if respond via SMS is disabled:
+         - Answer (drag right)
+         - Decline (drag left) -->
+    <array name="incoming_call_widget_audio_without_sms_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@null</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_without_sms_target_descriptions">
+        <item>@string/description_target_answer</item>
+        <item>@null</item>
+        <item>@string/description_target_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_without_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@null</item>
+        <item>@string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+
+    <!-- For audio calls, if respond via SMS is enabled:
+         - Answer (drag right)
+         - Respond via SMS (drag up)
+         - Decline (drag left) -->
+    <array name="incoming_call_widget_audio_with_sms_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@drawable/ic_lockscreen_text</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_with_sms_target_descriptions">
+        <item>@string/description_target_answer</item>
+        <item>@string/description_target_send_sms</item>
+        <item>@string/description_target_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_with_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@string/description_direction_up</item>
+        <item>@string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+
+    <!-- For video calls, if respond via SMS is disabled:
+         - Answer as video call (drag right)
+         - Decline (drag left)
+         - Answer as audio call (drag down) -->
+    <array name="incoming_call_widget_video_without_sms_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@null</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@drawable/ic_lockscreen_answer_video</item>
+    </array>
+    <array name="incoming_call_widget_video_without_sms_target_descriptions">
+        <item>@string/description_target_answer_video_call</item>
+        <item>@null</item>
+        <item>@string/description_target_decline</item>
+        <item>@string/description_target_answer_audio_call</item>
+    </array>
+    <array name="incoming_call_widget_video_without_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@null</item>
+        <item>@string/description_direction_left</item>
+        <item>@string/description_direction_down</item>
+    </array>
+
+    <!-- For video calls, if respond via SMS is enabled:
+         - Answer as video call (drag right)
+         - Respond via SMS (drag up)
+         - Decline (drag left)
+         - Answer as audio call (drag down) -->
+    <array name="incoming_call_widget_video_with_sms_targets">
+        <item>@drawable/ic_lockscreen_answer_video</item>
+        <item>@drawable/ic_lockscreen_text</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@drawable/ic_lockscreen_answer</item>
+    </array>
+    <array name="incoming_call_widget_video_with_sms_target_descriptions">
+        <item>@string/description_target_answer_video_call</item>
+        <item>@string/description_target_send_sms</item>
+        <item>@string/description_target_decline</item>
+        <item>@string/description_target_answer_audio_call</item>
+    </array>
+    <array name="incoming_call_widget_video_with_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@string/description_direction_up</item>
+        <item>@string/description_direction_left</item>
+        <item>@string/description_direction_down</item>
+    </array>
+
+    <!-- For accept/reject upgrade to video in active video call
+         - Accept upgrade to video request (drag right)
+         - Decline upgrade to video request (drag left)-->
+    <array name="incoming_call_widget_video_request_targets">
+        <item>@drawable/ic_lockscreen_answer_video</item>
+        <item>@drawable/ic_lockscreen_decline_video</item>
+    </array>
+
+    <array name="incoming_call_widget_video_request_target_descriptions">
+        <item>@string/description_target_accept_upgrade_to_video_request</item>
+        <item>@null</item>
+        <item>@string/description_target_decline_upgrade_to_video_request</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_video_request_target_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@null</item>
+        <item>@string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+</resources>
diff --git a/InCallUI/res/values/attrs.xml b/InCallUI/res/values/attrs.xml
new file mode 100644
index 0000000..e135fb7
--- /dev/null
+++ b/InCallUI/res/values/attrs.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources>
+    <declare-styleable name="GlowPadView">
+        <attr name="android:gravity"/>
+
+        <!-- Reference to an array resource that be shown as targets around a circle. -->
+        <attr name="targetDrawables" format="reference"/>
+
+        <!-- Reference to an array resource that be used as description for the targets around the circle. -->
+        <attr name="targetDescriptions" format="reference"/>
+
+        <!-- Reference to an array resource that be used to announce the directions with targets around the circle. -->
+        <attr name="directionDescriptions" format="reference"/>
+
+        <!-- Sets a drawable as the center. -->
+        <attr name="handleDrawable" format="reference"/>
+
+        <!-- Drawable to use for wave ripple animation. -->
+        <attr name="outerRingDrawable" format="reference"/>
+
+        <!-- Drawble used for drawing points -->
+        <attr name="pointDrawable" format="reference"/>
+
+        <!-- Inner radius of glow area. -->
+        <attr name="innerRadius" format="dimension"/>
+
+        <!-- Outer radius of glow area. Target icons will be drawn on this circle. -->
+        <attr name="outerRadius" format="dimension"/>
+
+        <!-- Size of target radius. Points within this distance of target center is a "hit". -->
+        <!--
+        <attr name="hitRadius" format="dimension"/>
+        -->
+
+        <!-- Radius of glow under finger. -->
+        <attr name="glowRadius" format="dimension"/>
+
+        <!-- Tactile feedback duration for actions. Set to '0' for no vibration. -->
+        <attr name="vibrationDuration" format="integer"/>
+
+        <!-- How close we need to be before snapping to a target. -->
+        <attr name="snapMargin" format="dimension"/>
+
+        <!-- Number of waves/chevrons to show in animation. -->
+        <attr name="feedbackCount" format="integer"/>
+
+        <!-- Used when the handle shouldn't wait to be hit before following the finger -->
+        <attr name="alwaysTrackFinger" format="boolean"/>
+
+        <!-- Determine whether the glow pad is allowed to scale to fit the bounds indicated
+            by its parent. If this is set to false, no scaling will occur. If this is set to true
+            scaling will occur to fit for any axis in which gravity is set to center. -->
+        <attr name="allowScaling" format="boolean" />
+    </declare-styleable>
+</resources>
diff --git a/InCallUI/res/values/colors.xml b/InCallUI/res/values/colors.xml
new file mode 100644
index 0000000..5e4eeee
--- /dev/null
+++ b/InCallUI/res/values/colors.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources>
+
+    <!-- In-call UI background color. -->
+    <color name="incall_background_color">@color/dialer_theme_color</color>
+    <color name="incall_accent_color">#ffffff</color>
+
+    <!-- Background color of main banner. -->
+    <color name="incall_call_banner_background_color">@color/incall_background_color</color>
+    <color name="incall_call_banner_text_color">#ffffff</color>
+    <!-- 80% opacity, white -->
+    <color name="incall_call_banner_subtext_color">#ccffffff</color>
+    <color name="incall_banner_secondary_background_color">#f5f5f5</color>
+    <color name="incall_banner_secondary_text_color">#333333</color>
+
+    <color name="incall_action_bar_background_color">@color/incall_background_color</color>
+    <color name="incall_action_bar_text_color">@color/incall_call_banner_text_color</color>
+
+    <color name="incall_photo_background_color">#545454</color>
+
+    <!-- Put on top of each photo, implying 80% darker than usual. -->
+    <color name="on_hold_dim_effect">#cc000000</color>
+
+    <color name="conference_call_manager_background_color">#f8f8f8</color>
+    <color name="conference_call_manager_caller_name_text_color">#4d4d4d</color>
+    <color name="conference_call_manager_icon_color">#999999</color>
+    <!-- Used with some smaller texts in manage conference screen. -->
+    <color name="conference_call_manager_secondary_text_color">#999999</color>
+    <color name="secondary_call_info_divider_highlight_color">#ffffff</color>
+
+    <color name="end_call_touch_feedback_tint">#dddddd</color>
+
+    <!-- Color of dialpad digits -->
+    <color name="dialpad_digits_text_color">#333</color>
+
+    <color name="incall_dialpad_background">#ffffff</color>
+    <color name="incall_dialpad_background_pressed">#ccaaaaaa</color>
+
+    <color name="button_background_color">@color/incall_background_color</color>
+    <color name="button_selected_color">@color/dialer_theme_color_dark</color>
+    <!-- 70% opacity, white. -->
+    <color name="button_default_color">#b3ffffff</color>
+    <!-- 20% opacity, white. -->
+    <color name="button_disabled_color">#33ffffff</color>
+
+    <!-- Background color of action bars -->
+    <color name="actionbar_background_color">@color/dialer_theme_color</color>
+    <!-- Background color for status bar. For portrait this will be ignored. -->
+    <color name="statusbar_background_color">@color/dialer_theme_color</color>
+
+    <color name="translucent_shadow">#33999999</color>
+
+    <!-- 70% opacity, black. -->
+    <color name="glowpad_background_color">#b3000000</color>
+    <!-- 15% opacity, white. -->
+    <color name="glowpad_outer_ring_color">#26ffffff</color>
+    <color name="glowpad_text_widget_ring_color">#ffffff</color>
+    <color name="glowpad_widget_active_color">#ffffff</color>
+    <color name="glowpad_text_widget_normal_tint">#cccccc</color>
+    <color name="glowpad_call_widget_normal_tint">#00c853</color>
+    <color name="glowpad_end_call_widget_normal_tint">#ff1744</color>
+    <color name="glowpad_incoming_widget_tint">#a3a3a3</color>
+    <color name="glowpad_incoming_widget_background_tint">#ffffff</color>
+
+    <!-- 70% opacity, white. -->
+    <color name="accessible_answer_hint_text_color">#B2FFFFFF</color>
+
+    <!-- 20% opacity, theme color. -->
+    <color name="incall_dialpad_touch_tint">#330288d1</color>
+
+    <!-- Background colors for InCallUI. This set of colors is a subset of
+        https://spec.googleplex.com/quantumpalette#extended which pass WCAG AA and all have a
+        contrast ratio over 5:1.
+
+        These colors are also used by InCallUIMaterialColorMapUtils to generate primary
+        activity colors.
+    -->
+    <array name="background_colors">
+        <item>#00796B</item>
+        <item>#3367D6</item>
+        <item>#303F9F</item>
+        <item>#7B1FA2</item>
+        <item>#C2185B</item>
+        <item>#C53929</item>
+    </array>
+
+    <!-- Darker versions of background_colors, two shades darker. These colors are used for the
+         status bar. -->
+    <array name="background_colors_dark">
+        <item>#00695C</item>
+        <item>#2A56C6</item>
+        <item>#283593</item>
+        <item>#6A1B9A</item>
+        <item>#AD1457</item>
+        <item>#B93221</item>
+    </array>
+
+    <!-- Ripple color used over light backgrounds. -->
+    <color name="ripple_light">#40000000</color>
+
+    <color name="contact_context_title_text_color">@color/incall_call_banner_subtext_color</color>
+    <color name="person_contact_context_message_text_color">@color/dialer_theme_color</color>
+    <color name="person_contact_context_message_background_color">@color/incall_call_banner_subtext_color</color>
+    <color name="person_contact_context_detail_text_color">@color/incall_call_banner_subtext_color</color>
+    <color name="business_contact_context_text_color">@color/incall_call_banner_subtext_color</color>
+
+    <!-- White background for dialer -->
+    <color name="background_dialer_white">#ffffff</color>
+</resources>
diff --git a/InCallUI/res/values/config.xml b/InCallUI/res/values/config.xml
new file mode 100644
index 0000000..b81ba3c
--- /dev/null
+++ b/InCallUI/res/values/config.xml
@@ -0,0 +1,27 @@
+<!--
+  ~ Copyright (C) 2015 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>
+    <!-- Determines the maximum number of buttons visible on the call card.  Any buttons over this
+         count are put into the overflow menu. -->
+    <integer name="call_card_max_buttons">5</integer>
+
+    <!-- Determines video calls will automatically enter fullscreen mode after the start of the
+         call. -->
+    <bool name="video_call_auto_fullscreen">true</bool>
+    <!-- The number of milliseconds after which a video call will automatically enter fullscreen
+         mode (requires video_call_auto_fullscreen to be true). -->
+    <integer name="video_call_auto_fullscreen_timeout">5000</integer>
+</resources>
\ No newline at end of file
diff --git a/InCallUI/res/values/dimens.xml b/InCallUI/res/values/dimens.xml
new file mode 100644
index 0000000..59da786
--- /dev/null
+++ b/InCallUI/res/values/dimens.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources>
+    <!-- Whether or not this layout displays a large photo. -->
+    <bool name="has_large_photo">false</bool>
+
+    <!-- Whether or not the landscape mode layout is currently being used -->
+    <bool name="is_layout_landscape">false</bool>
+
+    <!-- Dimensions for CallCard elements (the normal in-call UI) -->
+
+    <dimen name="call_banner_height">0dp</dimen>
+    <dimen name="call_banner_vertical_margin">20dp</dimen>
+
+    <dimen name="incall_action_bar_elevation">3dp</dimen>
+
+    <!-- Margin between the bottom of the "call card" photo
+         and the top of the in-call button cluster. -->
+    <dimen name="in_call_touch_ui_upper_margin">2dp</dimen>
+
+    <!-- Padding at the left and right edges of the "call banner". -->
+    <dimen name="call_banner_side_padding">24dp</dimen>
+    <!-- Padding at the top and bottom edges of the "call banner". -->
+    <dimen name="call_banner_primary_call_container_top_padding">16dp</dimen>
+    <dimen name="secondary_call_info_horizontal_padding">24dp</dimen>
+    <dimen name="secondary_call_info_vertical_padding">32dp</dimen>
+    <dimen name="secondary_call_info_text_size">16sp</dimen>
+
+    <!-- Padding at the top and bottom edges of the "provider information" -->
+    <dimen name="provider_info_top_bottom_padding">8dp</dimen>
+
+    <!-- Text sizes for information in the call card.
+         Note: These are the default sizes for small (<600dp height) devices: larger screen sizes
+         apply the values in values-sw360dp/dimens.xml. -->
+    <dimen name="call_status_text_size">16sp</dimen>
+    <dimen name="call_status_text_min_size">12sp</dimen>
+    <dimen name="call_name_text_size">34dp</dimen>
+    <dimen name="call_name_text_min_size">28sp</dimen>
+    <dimen name="call_label_text_size">16sp</dimen>
+    <!-- Right padding for name and number fields in the call banner.
+         This padding is used to ensure that ultra-long names or
+         numbers won't overlap the elapsed time indication. -->
+    <dimen name="call_banner_name_number_right_padding">50sp</dimen>
+
+    <!-- Height and width of the in-call buttons. -->
+    <dimen name="in_call_button_dimension">48dp</dimen>
+
+    <dimen name="primary_call_elevation">0dp</dimen>
+    <dimen name="dialpad_elevation">2dp</dimen>
+
+    <!-- The InCallUI dialpad will sometimes want digits sizes that are different from dialer.
+         Note: These are the default sizes for small (<600dp height) devices: larger screen sizes
+         apply the values in values-h600dp/dimens.xml. -->
+    <dimen name="dialpad_key_number_margin_bottom">1dp</dimen>
+    <!-- Zero key should have less space between self and text because "+" is smaller -->
+    <dimen name="dialpad_zero_key_number_margin_bottom">0dp</dimen>
+    <dimen name="dialpad_digits_adjustable_text_size">20sp</dimen>
+    <dimen name="dialpad_digits_adjustable_height">50dp</dimen>
+    <dimen name="dialpad_key_numbers_size">36dp</dimen>
+
+    <dimen name="floating_action_button_vertical_offset">-10dp</dimen>
+
+    <dimen name="call_button_margin_vertical">8dp</dimen>
+    <dimen name="call_button_margin_horizontal">6dp</dimen>
+
+    <!-- Dimensions for OTA Call Card -->
+    <dimen name="otaactivate_layout_marginTop">10dp</dimen>
+    <dimen name="otalistenprogress_layout_marginTop">5dp</dimen>
+    <dimen name="otasuccessfail_layout_marginTop">10dp</dimen>
+
+    <!-- Dimension used to possibly down-scale high-res photo into what is suitable
+         for notification's large icon. -->
+    <dimen name="notification_icon_size">64dp</dimen>
+
+    <!-- Circle size for incoming call widget's each item. -->
+    <dimen name="incoming_call_widget_circle_size">56dp</dimen>
+
+    <!-- Size of alarm alert outer ring. -->
+    <dimen name="glowpadview_outerring_diameter">250dp</dimen>
+    <!-- Default target placement radius for GlowPadView. Should be 1/2 of outerring diameter. -->
+    <dimen name="glowpadview_target_placement_radius">125dp</dimen>
+
+    <!-- Default glow radius for GlowPadView -->
+    <dimen name="glowpadview_glow_radius">70dip</dimen>
+
+    <!-- Default distance beyond which GlowPadView snaps to the matching target -->
+    <dimen name="glowpadview_snap_margin">40dip</dimen>
+
+    <!-- Default distance from each snap target that GlowPadView considers a "hit" -->
+    <dimen name="glowpadview_inner_radius">15dip</dimen>
+
+    <dimen name="glowpadview_margin_bottom">-48dip</dimen>
+    <dimen name="glowpadview_margin_right">0dip</dimen>
+    <!-- Height of translucent shadow effect -->
+    <dimen name="translucent_shadow_height">2dp</dimen>
+
+    <dimen name="end_call_button_margin_bottom">2dp</dimen>
+
+    <dimen name="call_card_anim_translate_y_offset">50dp</dimen>
+
+    <!-- The smaller dimension of the video preview.  When in portrait orientation this is the
+         width of the preview.  When in landscape, this is the height. -->
+    <dimen name="video_preview_small_dimension">90dp</dimen>
+
+    <dimen name="video_preview_margin">0dp</dimen>
+
+    <dimen name="end_call_floating_action_button_diameter">72dp</dimen>
+    <dimen name="end_call_floating_action_button_small_diameter">56dp</dimen>
+
+    <dimen name="conference_call_manager_padding_top">64dp</dimen>
+    <dimen name="conference_call_manager_button_dimension">46dp</dimen>
+
+    <dimen name="contact_context_title_text_size">14sp</dimen>
+    <dimen name="contact_context_title_image_size">19dp</dimen>
+    <dimen name="contact_context_title_image_side_padding">23dp</dimen>
+    <dimen name="contact_context_title_margin_bottom">13dp</dimen>
+    <dimen name="contact_context_list_item_padding">13dp</dimen>
+
+    <dimen name="person_contact_context_horizontal_padding">30dp</dimen>
+    <dimen name="person_contact_context_message_text_size">16sp</dimen>
+    <dimen name="person_contact_context_message_vertical_padding">7dp</dimen>
+    <dimen name="person_contact_context_message_horizontal_padding">12dp</dimen>
+    <dimen name="person_contact_context_message_background_main_radius">15dp</dimen>
+    <dimen name="person_contact_context_message_background_accent_radius">2dp</dimen>
+    <dimen name="person_contact_context_detail_padding_top">7dp</dimen>
+    <dimen name="person_contact_context_detail_text_size">14sp</dimen>
+
+    <dimen name="business_contact_context_end_padding">10dp</dimen>
+    <dimen name="business_contact_context_image_size">25dp</dimen>
+    <dimen name="business_contact_context_image_padding">20dp</dimen>
+    <dimen name="business_contact_context_heading_font_size">16sp</dimen>
+    <dimen name="business_contact_context_detail_font_size">12sp</dimen>
+
+    <dimen name="contact_context_small_photo_size">40dp</dimen>
+</resources>
diff --git a/InCallUI/res/values/ids.xml b/InCallUI/res/values/ids.xml
new file mode 100644
index 0000000..accb8fb
--- /dev/null
+++ b/InCallUI/res/values/ids.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <item type="id" name="fadeState" />
+    <item type="id" name="view_tag_callcard_actual_height" />
+</resources>
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
new file mode 100644
index 0000000..2f3d16b
--- /dev/null
+++ b/InCallUI/res/values/strings.xml
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <!-- Official label of the phone app, as seen in "Manage Applications"
+         and other settings UIs. -->
+    <string name="phoneAppLabel" product="default">Phone</string>
+
+    <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
+    <string name="inCallLabel" translate="false">InCallUI</string>
+
+    <!-- Call status -->
+
+    <!-- In-call screen: status label for a call that's on hold -->
+    <string name="onHold">On hold</string>
+
+    <!-- Incoming call screen, name of "unknown" caller -->
+    <string name="unknown">Unknown</string>
+    <!-- Incoming call screen, string when number hidden -->
+    <string name="private_num">Private number</string>
+    <!-- Incoming call screen, string when called from a pay phone -->
+    <string name="payphone">Payphone</string>
+
+    <!-- In-call screen: status label for a conference call -->
+    <string name="confCall">Conference call</string>
+    <!-- In-call screen: call lost dialog text -->
+    <string name="call_lost">Call dropped</string>
+
+    <!-- MMI dialog strings -->
+    <!-- Dialog label when an MMI code starts running -->
+
+    <!-- "Audio mode" popup menu: Item label to select the speakerphone [CHAR LIMIT=25] -->
+    <string name="audio_mode_speaker">Speaker</string>
+    <!-- "Audio mode" popup menu: Item label to select the handset earpiece [CHAR LIMIT=25] -->
+    <string name="audio_mode_earpiece">Handset earpiece</string>
+    <!-- "Audio mode" popup menu: Item label to select the wired headset [CHAR LIMIT=25] -->
+    <string name="audio_mode_wired_headset">Wired headset</string>
+    <!-- "Audio mode" popup menu: Item label to select the bluetooth headset [CHAR LIMIT=25] -->
+    <string name="audio_mode_bluetooth">Bluetooth</string>
+
+    <!-- post dial -->
+    <!-- In-call screen: body text of the dialog that appears when we encounter
+         the "wait" character in a phone number to be dialed; this dialog asks the
+         user if it's OK to send the numbers following the "wait". -->
+    <string name="wait_prompt_str">Send the following tones?\n</string>
+    <!-- In-call screen: body text of the dialog that appears when we encounter
+         the "PAUSE" character in a phone number to be dialed; this dialog gives
+         informative message to the user to show the sending numbers following the "Pause". -->
+    <string name="pause_prompt_str">Sending tones\n</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog -->
+    <string name="send_button">Send</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
+    <string name="pause_prompt_yes">Yes</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
+    <string name="pause_prompt_no">No</string>
+    <!-- In-call screen: on the "wild" character dialog, this is the label
+         for a text widget that lets the user enter the digits that should
+         replace the "wild" character. -->
+    <string name="wild_prompt_str">Replace wild character with</string>
+
+    <!-- In-call screen: status label for a conference call -->
+    <string name="caller_manage_header">Conference call <xliff:g id="conf_call_time">%s</xliff:g></string>
+
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_phoneNumber_text" translatable="false">(650) 555-1234</string>
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_infoText_text" translatable="false">Incoming phone number</string>
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_placeCall_text" translatable="false">Fake Incoming Call</string>
+
+    <!-- Call settings screen, Set voicemail dialog title -->
+    <string name="voicemail_settings_number_label">Voicemail number</string>
+
+    <!-- Card titles -->
+    <!-- In-call screen: status label for a call in the "dialing" state [CHAR LIMIT=25] -->
+    <string name="card_title_dialing">Dialing</string>
+    <!-- In-call screen: status label for a re-dialing call [CHAR LIMIT=25] -->
+    <string name="card_title_redialing">Redialing</string>
+    <!-- In-call screen: status label for a conference call [CHAR LIMIT=25] -->
+    <string name="card_title_conf_call">Conference call</string>
+    <!-- In-call screen: status label for an incoming call [CHAR LIMIT=25] -->
+    <string name="card_title_incoming_call">Incoming call</string>
+    <!-- In-call screen: status label for an incoming work call [CHAR LIMIT=25] -->
+    <string name="card_title_incoming_work_call">Incoming work call</string>
+    <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
+    <string name="card_title_call_ended">Call ended</string>
+    <!-- In-call screen: status label for call that's on hold [CHAR LIMIT=25] -->
+    <string name="card_title_on_hold">On hold</string>
+    <!-- In-call screen: status label for a call that's in the process of hanging up [CHAR LIMIT=25] -->
+    <string name="card_title_hanging_up">Hanging up</string>
+    <!-- In-call screen: status label for a call that's in CDMA flash mode [CHAR LIMIT=25] -->
+    <string name="card_title_in_call">In call</string>
+    <!-- In-call screen: special status label that shows your own phone
+         number during emergency callback mode (ECM) [CHAR LIMIT=30] -->
+    <string name="card_title_my_phone_number">My number is <xliff:g id="my_phone_number">%s</xliff:g></string>
+    <!-- In-call screen: status label when connecting video. -->
+    <string name="card_title_video_call_connecting">Connecting video</string>
+    <!-- In-call screen: status label when in a video call. -->
+    <string name="card_title_video_call">Video call</string>
+    <!-- In-call screen: status label when requesting video. -->
+    <string name="card_title_video_call_requesting">Requesting video</string>
+    <!-- In-call screen: status label when there is a problem connecting a video call. -->
+    <string name="card_title_video_call_error">Can\'t connect video call</string>
+    <!-- In-call screen: status label when the remote party rejects a video call request. -->
+    <string name="card_title_video_call_rejected">Video request rejected</string>
+
+    <!-- In-call screen: string shown to the user when their outgoing number is different than the
+         number reported by TelephonyManager#getLine1Number() -->
+    <string name="card_title_callback_number">Your callback number\n
+        <xliff:g id="dark_number">%1$s</xliff:g>
+    </string>
+
+    <!-- In-call screen: string shown to the user when their outgoing number is different than the
+         number reported by TelephonyManager#getLine1Number() and they're calling emergency
+         services. -->
+    <string name="card_title_callback_number_emergency">Your emergency callback number\n
+        <xliff:g id="dark_number">%1$s</xliff:g>
+    </string>
+
+    <!-- Notification strings -->
+    <!-- The "label" of the in-call Notification for a dialing call, used
+         as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
+    <string name="notification_dialing">Dialing</string>
+    <!-- Missed call notification label, used when there's exactly one missed call -->
+    <string name="notification_missedCallTitle">Missed call</string>
+    <!-- Missed call notification label, used when there are two or more missed calls -->
+    <string name="notification_missedCallsTitle">Missed calls</string>
+    <!-- Missed call notification message used when there are multiple missed calls -->
+    <string name="notification_missedCallsMsg"><xliff:g id="num_missed_calls">%s</xliff:g> missed calls</string>
+    <!-- Missed call notification message used for a single missed call, including
+         the caller-id info from the missed call -->
+    <string name="notification_missedCallTicker">Missed call from <xliff:g id="missed_call_from">%s</xliff:g></string>
+    <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
+    <string name="notification_ongoing_call">Ongoing call</string>
+    <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
+    <string name="notification_ongoing_work_call">Ongoing work call</string>
+    <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
+         Wi-Fi. [CHAR LIMIT=60] -->
+    <string name="notification_ongoing_call_wifi">Ongoing Wi-Fi call</string>
+    <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
+         over Wi-Fi. [CHAR LIMIT=60] -->
+    <string name="notification_ongoing_work_call_wifi">Ongoing Wi-Fi work call</string>
+    <!-- The "label" of the in-call Notification for a call that's on hold -->
+    <string name="notification_on_hold">On hold</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
+    <string name="notification_incoming_call">Incoming call</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
+    <string name="notification_incoming_work_call">Incoming work call</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing call,
+         which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+    <string name="notification_incoming_call_wifi">Incoming Wi-Fi call</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing work call,
+         which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+    <string name="notification_incoming_work_call_wifi">Incoming Wi-Fi work call</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing video call. -->
+    <string name="notification_incoming_video_call">Incoming video call</string>
+    <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
+    <string name="notification_requesting_video_call">Incoming video request</string>
+    <!-- Label for the "Voicemail" notification item, when expanded. -->
+    <string name="notification_voicemail_title">New voicemail</string>
+    <!-- Label for the expanded "Voicemail" notification item,
+         including a count of messages. -->
+    <string name="notification_voicemail_title_count">New voicemail (<xliff:g id="count">%d</xliff:g>)</string>
+    <!-- Message displayed in the "Voicemail" notification item, allowing the user
+         to dial the indicated number. -->
+    <string name="notification_voicemail_text_format">Dial <xliff:g id="voicemail_number">%s</xliff:g></string>
+    <!-- Message displayed in the "Voicemail" notification item,
+         indicating that there's no voicemail number available -->
+    <string name="notification_voicemail_no_vm_number">Voicemail number unknown</string>
+    <!-- Label for the "No service" notification item, when expanded. -->
+    <string name="notification_network_selection_title">No service</string>
+    <!-- Label for the expanded "No service" notification item, including the
+         operator name set by user -->
+    <string name="notification_network_selection_text">Selected network (<xliff:g id="operator_name">%s</xliff:g>) unavailable</string>
+    <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
+         an incoming call. [CHAR LIMIT=12] -->
+    <string name="notification_action_answer">Answer</string>
+    <!-- Label for "end call" Action.
+         It is displayed in the "Ongoing call" notification, which is shown
+         when the user is outside the in-call screen while the phone call is still
+         active. [CHAR LIMIT=12] -->
+    <string name="notification_action_end_call">Hang up</string>
+    <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
+         incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
+    <string name="notification_action_answer_video">Video</string>
+    <!-- Label for "Voice" notification action. This is a displayed on the notification for an
+         incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
+    <string name="notification_action_answer_voice">Voice</string>
+    <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
+         scenarios such as accepting an incoming call or accepting a video call request.
+         [CHAR LIMIT=12] -->
+    <string name="notification_action_accept">Accept</string>
+    <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
+         scenarios such as declining an incoming call or declining a video call request.
+         [CHAR LIMIT=12] -->
+    <string name="notification_action_dismiss">Dismiss</string>
+
+    <!-- Message for "call back" Action, which is displayed in the missed call notification.
+         The user will be able to call back to the person or the phone number.
+         [CHAR LIMIT=12] -->
+    <string name="notification_missedCall_call_back">Call back</string>
+    <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
+         The user will be able to send text messages using the phone number.
+         [CHAR LIMIT=12] -->
+    <string name="notification_missedCall_message">Message</string>
+
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_power_off">To place a call, first turn off Airplane mode.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog.
+         This string is currently unused (see comments in InCallActivity.java.) -->
+    <string name="incall_error_emergency_only">Not registered on network.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_out_of_service">Cellular network not available.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_no_phone_number_supplied">To place a call, enter a valid number.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_call_failed">Can\'t call.</string>
+    <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
+    <string name="incall_status_dialed_mmi">Starting MMI sequence\u2026</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_unknown">Service not supported.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_switch">Can\'t switch calls.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_separate">Can\'t separate call.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_transfer">Can\'t transfer.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_conference">Can\'t conference.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_reject">Can\'t reject call.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_hangup">Can\'t release call(s).</string>
+
+    <!-- In-call screen: "call type" indication for a SIP call [CHAR LIMIT=30]  -->
+    <string name="incall_call_type_label_sip">SIP call</string>
+
+    <!-- Dialog title for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_title">Emergency call</string>
+    <!-- Status message for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_message">Turning on radio\u2026</string>
+    <!-- Status message for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_retry">No service. Trying again\u2026</string>
+
+    <!-- Dialer text on Emergency Dialer -->
+    <!-- Emergency dialer: message displayed in an error dialog -->
+    <string name="dial_emergency_error">Can\'t call. <xliff:g id="non_emergency_number">%s</xliff:g> is not an emergency number.</string>
+    <!-- Emergency dialer: message displayed in an error dialog -->
+    <string name="dial_emergency_empty_error">Can\'t call. Dial an emergency number.</string>
+
+    <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
+         to dial using the physical keyboard -->
+    <string name="dialerKeyboardHintText">Use keyboard to dial</string>
+
+    <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
+         the call on hold. -->
+    <string name="onscreenHoldText_unselected">Hold Call</string>
+    <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
+         the call from a previously held state. -->
+    <string name="onscreenHoldText_selected">Resume Call</string>
+    <!-- Text for the onscreen "End call" button -->
+    <string name="onscreenEndCallText">End Call</string>
+    <!-- Text for the onscreen "Show Dialpad" button -->
+    <string name="onscreenShowDialpadText">Dialpad</string>
+    <!-- Text for the onscreen "Mute" button -->
+    <string name="onscreenMuteText">Mute</string>
+    <!-- Text for the onscreen "Add call" button -->
+    <string name="onscreenAddCallText">Add call</string>
+    <!-- Text for the onscreen "Merge calls" button -->
+    <string name="onscreenMergeCallsText">Merge calls</string>
+    <!-- Text for the onscreen "Swap calls" button -->
+    <string name="onscreenSwapCallsText">Swap</string>
+    <!-- Text for the onscreen "Manage calls" button -->
+    <string name="onscreenManageCallsText">Manage calls</string>
+    <!-- Text for the onscreen "Manage conference" button [CHAR LIMIT=30] -->
+    <string name="onscreenManageConferenceText">Manage conference call</string>
+    <!-- Text for the first half of the onscreen "Manage conference" button [CHAR LIMIT=30] -->
+    <string name="onscreenConferenceText">Conference call</string>
+    <!-- Text for the second half of the onscreen "Manage conference" button [CHAR LIMIT=30] -->
+    <string name="onscreenManageText">Manage</string>
+    <!-- Text for the onscreen "Audio" button that lets you switch
+         between speaker / bluetooth / earpiece [CHAR LIMIT=10] -->
+    <string name="onscreenAudioText">Audio</string>
+    <!-- Text for the onscreen "Video call" button used to change a voice call
+         to a video call. [CHAR LIMIT=10] -->
+    <string name="onscreenVideoCallText">Video call</string>
+    <!-- Text for the onscreen "Change to voice" button. When clicked, this downgrades a video call
+         to a voice call. -->
+    <string name="onscreenChangeToVoiceText">Change to voice call</string>
+    <!-- Text for the onscreen "Switch camera" button. When clicked, this switches the user's camera
+         for video calling between the front-facing camera and the back-facing camera. -->
+    <string name="onscreenSwitchCameraText">Switch camera</string>
+    <!-- Text for the onscreen "Pause video" button. -->
+    <string name="onscreenPauseVideoText">Pause video</string>
+    <!-- Text for the onscreen overflow button, to see additional actions which can be done. -->
+    <string name="onscreenOverflowText">More options</string>
+
+    <!-- Message indicating that Video Started flowing for IMS-VT calls -->
+    <string name="player_started">Player Started</string>
+    <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
+    <string name="player_stopped">Player Stopped</string>
+    <!-- Message indicating that camera failure has occurred for the selected camera and
+         as result camera is not ready -->
+    <string name="camera_not_ready">Camera not ready</string>
+    <!-- Message indicating that camera is ready/available -->
+    <string name="camera_ready">Camera ready</string>
+    <!-- Message indicating unknown call session event -->
+    <string name="unknown_call_session_event">"Unkown call session event"</string>
+
+    <!-- For incoming calls, this is a string we can get from a CDMA network instead of
+         the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
+    <string-array name="absent_num" translatable="false">
+        <item>ABSENT NUMBER</item>
+        <item>ABSENTNUMBER</item>
+    </string-array>
+
+    <!-- Preference for Voicemail service provider under "Voicemail" settings.
+         [CHAR LIMIT=40] -->
+    <string name="voicemail_provider">Service</string>
+
+    <!-- Preference for Voicemail setting of each provider.
+         [CHAR LIMIT=40] -->
+    <string name="voicemail_settings">Setup</string>
+
+    <!-- String to display in voicemail number summary when no voicemail num is set -->
+    <string name="voicemail_number_not_set">&lt;Not set&gt;</string>
+
+    <!-- Title displayed above settings coming after voicemail in the call features screen -->
+    <string name="other_settings">Other call settings</string>
+
+    <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
+         [CHAR LIMIT=40] -->
+    <string name="calling_via_template">Calling via <xliff:g id="provider_name">%s</xliff:g></string>
+    <!-- Title displayed in the overlay for incoming calls which include the name of the provider.
+         [CHAR LIMIT=40] -->
+    <string name="incoming_via_template">Incoming via <xliff:g id="provider_name">%s</xliff:g></string>
+
+    <!-- Use this as a default to describe the contact photo; currently for screen readers through accessibility. -->
+    <string name="contactPhoto">contact photo</string>
+    <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
+    <string name="goPrivate">go private</string>
+    <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
+    <string name="selectContact">select contact</string>
+
+    <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_custom_message">Write your own...</string>
+    <!-- "Custom Message" Cancel alert dialog button -->
+    <string name="custom_message_cancel">Cancel</string>
+    <!-- "Custom Message" Send alert dialog button -->
+    <string name="custom_message_send">Send</string>
+
+    <!-- Description of the answer target in the Slide unlock screen of Phone. [CHAR LIMIT=NONE] -->
+    <string name="description_target_answer">Answer</string>
+    <!-- Description of the send_sms target in the Slide unlock screen of Phone. [CHAR LIMIT=NONE] -->
+    <string name="description_target_send_sms">Send SMS</string>
+    <!-- Description of the decline target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
+    <string name="description_target_decline">Decline</string>
+    <!-- Description of the target to answer a call as a video call in the Slide unlock screen.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_answer_video_call">Answer as video call</string>
+    <!-- Description of the target to answer a call as an audio call in the Slide unlock screen.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_answer_audio_call">Answer as audio call</string>
+    <!-- Description of the target to accept a request to upgrade from an audio call to a video call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_accept_upgrade_to_video_request">Accept video request</string>
+    <!-- Description of the target to decline a request to upgrade from an audio call to a video call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_decline_upgrade_to_video_request">Decline video request</string>
+    <!-- Description of the target to accept a request to upgrade from any call to a video transmit call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_accept_upgrade_to_video_transmit_request">Accept video transmit request</string>
+    <!-- Description of the target to decline a request to upgrade from any call to a video transmit call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_decline_upgrade_to_video_transmit_request">Decline video transmit request</string>
+        <!-- Description of the target to accept a request to upgrade from any call to a video receive call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_accept_upgrade_to_video_receive_request">Accept video receive request</string>
+    <!-- Description of the target to decline a request to upgrade from any call to a video receive call.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_target_decline_upgrade_to_video_receive_request">Decline video receive request</string>
+
+    <!-- Description of the up direction in which one can to slide the handle in the phone answer screen. [CHAR LIMIT=NONE] -->
+    <string name="description_direction_up">Slide up for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
+    <!-- Description of the left direction in which one can to slide the handle in the phone answer screen. [CHAR LIMIT=NONE] -->
+    <string name="description_direction_left">"Slide left for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
+    <!-- Description of the right direction in which one can to slide the handle in the phone answer screen. [CHAR LIMIT=NONE] -->
+    <string name="description_direction_right">Slide right for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
+    <!-- Description of the down direction in which one can to slide the handle in the phone answer screen. [CHAR LIMIT=NONE] -->
+    <string name="description_direction_down">Slide down for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
+
+    <!-- Dialog title for the vibration settings for voicemail notifications [CHAR LIMIT=40] -->
+    <string name="voicemail_notification_vibrate_when_title" msgid="8731372580674292759">Vibrate</string>
+    <!-- Dialog title for the vibration settings for voice mail notifications [CHAR LIMIT=40]-->
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="8995274609647451109">Vibrate</string>
+
+    <!-- Voicemail ringtone title. The user clicks on this preference to select
+         which sound to play when a voicemail notification is received.
+         [CHAR LIMIT=30] -->
+    <string name="voicemail_notification_ringtone_title">Sound</string>
+
+    <!--  The string used to describe a notification if it is the default one in the system. For
+          example, if the user selects the default notification, it will appear as something like
+          Default sound(Capella) in the notification summary.
+          [CHAR LIMIT=40] -->
+    <string name="default_notification_description">Default sound (<xliff:g id="default_sound_title">%1$s</xliff:g>)</string>
+
+    <!-- The default value value for voicemail notification. -->
+    <string name="voicemail_notification_vibrate_when_default" translatable="false">never</string>
+
+    <!-- Actual values used in our code for voicemail notifications. DO NOT TRANSLATE -->
+    <string-array name="voicemail_notification_vibrate_when_values" translatable="false">
+        <item>always</item>
+        <item>silent</item>
+        <item>never</item>
+    </string-array>
+
+    <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
+    <string name="ringtone_title" msgid="5379026328015343686">Phone ringtone</string>
+
+    <!-- Setting option name to enable or disable vibration when ringing
+         the phone.
+         [CHAR LIMIT=30] -->
+    <string name="vibrate_on_ring_title">Vibrate when ringing</string>
+
+    <!-- Title for the category "ringtone", which is shown above ringtone and vibration
+         related settings.
+         [CHAR LIMIT=30] -->
+    <string name="preference_category_ringtone">Ringtone &amp; Vibrate</string>
+
+    <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
+    <string name="manageConferenceLabel">Manage conference call</string>
+
+    <!-- This can be used in any application wanting to disable the text "Emergency number" -->
+    <string name="emergency_call_dialog_number_for_display">Emergency number</string>
+
+    <!-- Phrase describing a time duration using seconds [CHAR LIMIT=16] -->
+    <plurals name="duration_seconds">
+        <item quantity="one">1 second</item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> seconds</item>
+    </plurals>
+    <!-- Phrase describing a time duration using minutes [CHAR LIMIT=16] -->
+    <plurals name="duration_minutes">
+        <item quantity="one">1 minute</item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
+    </plurals>
+    <!-- Phrase describing a time duration using hours [CHAR LIMIT=16] -->
+    <plurals name="duration_hours">
+        <item quantity="one">1 hour</item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
+    </plurals>
+
+    <!-- Description of the profile photo shown when the device's camera is disabled udring a video
+        call. [CHAR LIMIT=NONE] -->
+    <string name="profile_photo_description">Profile photo</string>
+
+    <!-- Description of the "camera off" icon displayed when the device's camera is disabled during
+         a video call. [CHAR LIMIT=NONE] -->
+    <string name="camera_off_description">Camera off</string>
+
+    <!-- Used to inform the user that a call was received via a number other than the primary
+        phone number associated with their device. [CHAR LIMIT=16] -->
+    <string name="child_number">via <xliff:g id="child_number" example="650-555-1212">%s</xliff:g></string>
+
+    <!-- Used to inform the user that the note associated with an outgoing call has been sent.
+         [CHAR LIMIT=32] -->
+    <string name="note_sent">Note sent</string>
+
+    <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
+    <string name="person_contact_context_title">Recent messages</string>
+
+    <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
+    <string name="business_contact_context_title">Business info</string>
+
+    <!-- Distance strings for business caller ID context. -->
+
+    <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
+    <string name="distance_imperial_away"><xliff:g id="distance">%.1f</xliff:g> mi away</string>
+    <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
+    <string name="distance_metric_away"><xliff:g id="distance">%.1f</xliff:g> km away</string>
+    <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
+    <string name="display_address"><xliff:g id="street_address">%1$s</xliff:g>, <xliff:g id="locality">%2$s</xliff:g></string>
+    <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
+    <string name="open_time_span"><xliff:g id="open_time">%1$s</xliff:g> - <xliff:g id="close_time">%2$s</xliff:g></string>
+    <!-- Used to indicate a series of opening hours for a location.
+         This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
+         The second argument is an additional time span. e.g. "11 pm - 1 am"
+         The string is used to build a list of opening hours.
+         [CHAR LIMIT=NONE] -->
+    <string name="opening_hours"><xliff:g id="earlier_times">%1$s</xliff:g>, <xliff:g id="later_time">%2$s</xliff:g></string>
+    <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
+    <string name="opens_tomorrow_at">Opens tomorrow at <xliff:g id="open_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
+    <string name="opens_today_at">Opens today at <xliff:g id="open_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
+    <string name="closes_today_at">Closes at <xliff:g id="close_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
+    <string name="closed_today_at">Closed today at <xliff:g id="close_time">%s</xliff:g></string>
+    <!-- Displayed when a place is open. -->
+    <string name="open_now">Open now</string>
+    <!-- Displayed when a place is closed. -->
+    <string name="closed_now">Closed now</string>
+</resources>
diff --git a/InCallUI/res/values/styles.xml b/InCallUI/res/values/styles.xml
new file mode 100644
index 0000000..11d6362
--- /dev/null
+++ b/InCallUI/res/values/styles.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<resources>
+    <drawable name="grayBg">#FF333333</drawable>
+
+    <style name="info_label">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textAppearance">@style/TextAppearance.info_label</item>
+        <item name="android:paddingEnd">4dip</item>
+    </style>
+
+    <style name="info_layout">
+        <item name="android:orientation">vertical</item>
+        <item name="android:paddingStart">10dip</item>
+        <item name="android:paddingTop">10dip</item>
+        <item name="android:paddingEnd">10dip</item>
+        <item name="android:paddingBottom">10dip</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+    </style>
+
+    <style name="entry_layout">
+        <item name="android:orientation">vertical</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="TextAppearance" parent="android:TextAppearance">
+    </style>
+
+    <style name="TextAppearance.info_label">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+
+    <!-- Buttons in the main "button row" of the in-call onscreen touch UI. -->
+    <style name="InCallButton">
+        <item name="android:layout_width">@dimen/in_call_button_dimension</item>
+        <item name="android:layout_height">@dimen/in_call_button_dimension</item>
+        <item name="android:layout_marginBottom">@dimen/call_button_margin_vertical</item>
+        <item name="android:layout_marginLeft">@dimen/call_button_margin_horizontal</item>
+        <item name="android:layout_marginRight">@dimen/call_button_margin_horizontal</item>
+        <item name="android:background">?android:attr/selectableItemBackground</item>
+    </style>
+
+    <!-- "Compound button" variation of InCallButton.
+         These buttons have the concept of two states: checked and unchecked. This style is just
+         like "InCallButton" except that we also clear out android:background, android:textOn,
+         android:textOff, to avoid the default behavior of the ToggleButton class. -->
+    <style name="InCallCompoundButton" parent="InCallButton">
+        <item name="android:background">@null</item>
+        <item name="android:textOn">@null</item>
+        <item name="android:textOff">@null</item>
+    </style>
+
+    <!-- Theme for the InCallActivity activity. Should have a transparent background for the
+         circular reveal animation for a new outgoing call to work correctly. We don't just use
+         Theme.Black.NoTitleBar directly, since we want any popups or dialogs from the
+         InCallActivity to have the correct Material style. -->
+    <style name="Theme.InCallScreen" parent="@android:style/Theme.Material.Light">
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="dialpad_key_button_touch_tint">@color/incall_dialpad_touch_tint</item>
+        <item name="android:textColorPrimary">@color/incall_call_banner_text_color</item>
+        <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
+        <item name="android:popupMenuStyle">@style/InCallPopupMenuStyle</item>
+        <item name="android:actionBarStyle">@style/InCallActionBarStyle</item>
+        <item name="android:buttonStyleToggle">@style/InCallCompoundButton</item>
+        <item name="android:alertDialogTheme">@android:style/Theme.Material.Light.Dialog.Alert</item>
+    </style>
+
+    <style name="InCallPopupMenuStyle" parent="@android:style/Theme.Material.Light">
+        <item name="android:textColorPrimary">@color/popup_menu_color</item>
+    </style>
+
+    <style name="InCallActionBarStyle" parent="@android:style/Widget.Material.Light.ActionBar">
+        <item name="android:background">@color/incall_action_bar_background_color</item>
+        <item name="android:textColor">@color/incall_action_bar_text_color</item>
+    </style>
+
+</resources>
diff --git a/InCallUI/src/com/android/incallui/AccelerometerListener.java b/InCallUI/src/com/android/incallui/AccelerometerListener.java
new file mode 100644
index 0000000..b5ad296
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AccelerometerListener.java
@@ -0,0 +1,169 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+/**
+ * This class is used to listen to the accelerometer to monitor the
+ * orientation of the phone. The client of this class is notified when
+ * the orientation changes between horizontal and vertical.
+ */
+public class AccelerometerListener {
+    private static final String TAG = "AccelerometerListener";
+    private static final boolean DEBUG = true;
+    private static final boolean VDEBUG = false;
+
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
+
+    // mOrientation is the orientation value most recently reported to the client.
+    private int mOrientation;
+
+    // mPendingOrientation is the latest orientation computed based on the sensor value.
+    // This is sent to the client after a rebounce delay, at which point it is copied to
+    // mOrientation.
+    private int mPendingOrientation;
+
+    private OrientationListener mListener;
+
+    // Device orientation
+    public static final int ORIENTATION_UNKNOWN = 0;
+    public static final int ORIENTATION_VERTICAL = 1;
+    public static final int ORIENTATION_HORIZONTAL = 2;
+
+    private static final int ORIENTATION_CHANGED = 1234;
+
+    private static final int VERTICAL_DEBOUNCE = 100;
+    private static final int HORIZONTAL_DEBOUNCE = 500;
+    private static final double VERTICAL_ANGLE = 50.0;
+
+    public interface OrientationListener {
+        public void orientationChanged(int orientation);
+    }
+
+    public AccelerometerListener(Context context) {
+        mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+    }
+
+    public void setListener(OrientationListener listener) {
+        mListener = listener;
+    }
+
+    public void enable(boolean enable) {
+        if (DEBUG) Log.d(TAG, "enable(" + enable + ")");
+        synchronized (this) {
+            if (enable) {
+                mOrientation = ORIENTATION_UNKNOWN;
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+                mSensorManager.registerListener(mSensorListener, mSensor,
+                        SensorManager.SENSOR_DELAY_NORMAL);
+            } else {
+                mSensorManager.unregisterListener(mSensorListener);
+                mHandler.removeMessages(ORIENTATION_CHANGED);
+            }
+        }
+    }
+
+    private void setOrientation(int orientation) {
+        synchronized (this) {
+            if (mPendingOrientation == orientation) {
+                // Pending orientation has not changed, so do nothing.
+                return;
+            }
+
+            // Cancel any pending messages.
+            // We will either start a new timer or cancel alltogether
+            // if the orientation has not changed.
+            mHandler.removeMessages(ORIENTATION_CHANGED);
+
+            if (mOrientation != orientation) {
+                // Set timer to send an event if the orientation has changed since its
+                // previously reported value.
+                mPendingOrientation = orientation;
+                final Message m = mHandler.obtainMessage(ORIENTATION_CHANGED);
+                // set delay to our debounce timeout
+                int delay = (orientation == ORIENTATION_VERTICAL ? VERTICAL_DEBOUNCE
+                                                                 : HORIZONTAL_DEBOUNCE);
+                mHandler.sendMessageDelayed(m, delay);
+            } else {
+                // no message is pending
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+            }
+        }
+    }
+
+    private void onSensorEvent(double x, double y, double z) {
+        if (VDEBUG) Log.d(TAG, "onSensorEvent(" + x + ", " + y + ", " + z + ")");
+
+        // If some values are exactly zero, then likely the sensor is not powered up yet.
+        // ignore these events to avoid false horizontal positives.
+        if (x == 0.0 || y == 0.0 || z == 0.0) return;
+
+        // magnitude of the acceleration vector projected onto XY plane
+        final double xy = Math.hypot(x, y);
+        // compute the vertical angle
+        double angle = Math.atan2(xy, z);
+        // convert to degrees
+        angle = angle * 180.0 / Math.PI;
+        final int orientation = (angle >  VERTICAL_ANGLE ? ORIENTATION_VERTICAL : ORIENTATION_HORIZONTAL);
+        if (VDEBUG) Log.d(TAG, "angle: " + angle + " orientation: " + orientation);
+        setOrientation(orientation);
+    }
+
+    SensorEventListener mSensorListener = new SensorEventListener() {
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+            onSensorEvent(event.values[0], event.values[1], event.values[2]);
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            // ignore
+        }
+    };
+
+    Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+            case ORIENTATION_CHANGED:
+                synchronized (this) {
+                    mOrientation = mPendingOrientation;
+                    if (DEBUG) {
+                        Log.d(TAG, "orientation: " +
+                            (mOrientation == ORIENTATION_HORIZONTAL ? "horizontal"
+                                : (mOrientation == ORIENTATION_VERTICAL ? "vertical"
+                                    : "unknown")));
+                    }
+                    if (mListener != null) {
+                        mListener.orientationChanged(mOrientation);
+                    }
+                }
+                break;
+            }
+        }
+    };
+}
diff --git a/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java b/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java
new file mode 100644
index 0000000..89c78ec
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java
@@ -0,0 +1,157 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.VideoProfile;
+import android.view.GestureDetector;
+import android.view.GestureDetector.SimpleOnGestureListener;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+
+/**
+ * AnswerFragment to use when touch exploration is enabled in accessibility.
+ */
+public class AccessibleAnswerFragment extends AnswerFragment {
+
+    private static final String TAG = AccessibleAnswerFragment.class.getSimpleName();
+    private static final int SWIPE_THRESHOLD = 100;
+
+    private View mAnswer;
+    private View mDecline;
+    private View mText;
+
+    private TouchListener mTouchListener;
+    private GestureDetector mGestureDetector;
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        ViewGroup group = (ViewGroup) inflater.inflate(R.layout.accessible_answer_fragment,
+                container, false);
+
+        mTouchListener = new TouchListener();
+        mGestureDetector = new GestureDetector(getContext(), new SimpleOnGestureListener() {
+            @Override
+            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+                    float velocityY) {
+                return AccessibleAnswerFragment.this.onFling(e1, e2, velocityX, velocityX);
+            }
+        });
+
+        mAnswer = group.findViewById(R.id.accessible_answer_fragment_answer);
+        mAnswer.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Answer Button Clicked");
+                onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+            }
+        });
+        mDecline = group.findViewById(R.id.accessible_answer_fragment_decline);
+        mDecline.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Decline Button Clicked");
+                onDecline(getContext());
+            }
+        });
+
+        mText = group.findViewById(R.id.accessible_answer_fragment_text);
+        mText.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Text Button Clicked");
+                onText();
+            }
+        });
+        return group;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // Intercept all touch events for full screen swiping gesture.
+        InCallActivity activity = (InCallActivity) getActivity();
+        activity.setDispatchTouchEventListener(mTouchListener);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        InCallActivity activity = (InCallActivity) getActivity();
+        activity.setDispatchTouchEventListener(null);
+    }
+
+    private class TouchListener implements View.OnTouchListener {
+        @Override
+        public boolean onTouch(View v, MotionEvent event) {
+            return mGestureDetector.onTouchEvent(event);
+        }
+    }
+
+    private boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+            float velocityY) {
+        if (hasPendingDialogs()) {
+            return false;
+        }
+
+        float diffY = e2.getY() - e1.getY();
+        float diffX = e2.getX() - e1.getX();
+        if (Math.abs(diffX) > Math.abs(diffY)) {
+            if (Math.abs(diffX) > SWIPE_THRESHOLD) {
+                if (diffX > 0) {
+                    onSwipeRight();
+                } else {
+                    onSwipeLeft();
+                }
+            }
+            return true;
+        } else if (Math.abs(diffY) > SWIPE_THRESHOLD) {
+            if (diffY > 0) {
+                onSwipeDown();
+            } else {
+                onSwipeUp();
+            }
+            return true;
+        }
+
+        return false;
+    }
+
+    private void onSwipeUp() {
+        Log.d(TAG, "onSwipeUp");
+        onText();
+    }
+
+    private void onSwipeDown() {
+        Log.d(TAG, "onSwipeDown");
+    }
+
+    private void onSwipeLeft() {
+        Log.d(TAG, "onSwipeLeft");
+        onDecline(getContext());
+    }
+
+    private void onSwipeRight() {
+        Log.d(TAG, "onSwipeRight");
+        onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java
new file mode 100644
index 0000000..44ddfcd
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AnswerFragment.java
@@ -0,0 +1,307 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+
+import com.android.dialer.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Provides only common interface and functions. Should be derived to implement the actual UI.
+ */
+public abstract class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresenter.AnswerUi>
+        implements AnswerPresenter.AnswerUi {
+
+    public static final int TARGET_SET_FOR_AUDIO_WITHOUT_SMS = 0;
+    public static final int TARGET_SET_FOR_AUDIO_WITH_SMS = 1;
+    public static final int TARGET_SET_FOR_VIDEO_WITHOUT_SMS = 2;
+    public static final int TARGET_SET_FOR_VIDEO_WITH_SMS = 3;
+    public static final int TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST = 4;
+
+    /**
+     * This fragment implement no UI at all. Derived class should do it.
+     */
+    @Override
+    public abstract View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState);
+
+    /**
+     * The popup showing the list of canned responses.
+     *
+     * This is an AlertDialog containing a ListView showing the possible choices.  This may be null
+     * if the InCallScreen hasn't ever called showRespondViaSmsPopup() yet, or if the popup was
+     * visible once but then got dismissed.
+     */
+    private Dialog mCannedResponsePopup = null;
+
+    /**
+     * The popup showing a text field for users to type in their custom message.
+     */
+    private AlertDialog mCustomMessagePopup = null;
+
+    private ArrayAdapter<String> mSmsResponsesAdapter;
+
+    private final List<String> mSmsResponses = new ArrayList<>();
+
+    @Override
+    public AnswerPresenter createPresenter() {
+        return InCallPresenter.getInstance().getAnswerPresenter();
+    }
+
+    @Override
+    public AnswerPresenter.AnswerUi getUi() {
+        return this;
+    }
+
+    @Override
+    public void showMessageDialog() {
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+
+        mSmsResponsesAdapter = new ArrayAdapter<>(builder.getContext(),
+                android.R.layout.simple_list_item_1, android.R.id.text1, mSmsResponses);
+
+        final ListView lv = new ListView(getActivity());
+        lv.setAdapter(mSmsResponsesAdapter);
+        lv.setOnItemClickListener(new RespondViaSmsItemClickListener());
+
+        builder.setCancelable(true).setView(lv).setOnCancelListener(
+                new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialogInterface) {
+                        onMessageDialogCancel();
+                        dismissCannedResponsePopup();
+                        getPresenter().onDismissDialog();
+                    }
+                });
+        mCannedResponsePopup = builder.create();
+        mCannedResponsePopup.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+        mCannedResponsePopup.show();
+    }
+
+    private boolean isCannedResponsePopupShowing() {
+        if (mCannedResponsePopup != null) {
+            return mCannedResponsePopup.isShowing();
+        }
+        return false;
+    }
+
+    private boolean isCustomMessagePopupShowing() {
+        if (mCustomMessagePopup != null) {
+            return mCustomMessagePopup.isShowing();
+        }
+        return false;
+    }
+
+    /**
+     * Dismiss the canned response list popup.
+     *
+     * This is safe to call even if the popup is already dismissed, and even if you never called
+     * showRespondViaSmsPopup() in the first place.
+     */
+    protected void dismissCannedResponsePopup() {
+        if (mCannedResponsePopup != null) {
+            mCannedResponsePopup.dismiss();  // safe even if already dismissed
+            mCannedResponsePopup = null;
+        }
+    }
+
+    /**
+     * Dismiss the custom compose message popup.
+     */
+    private void dismissCustomMessagePopup() {
+        if (mCustomMessagePopup != null) {
+            mCustomMessagePopup.dismiss();
+            mCustomMessagePopup = null;
+        }
+    }
+
+    public void dismissPendingDialogs() {
+        if (isCannedResponsePopupShowing()) {
+            dismissCannedResponsePopup();
+        }
+
+        if (isCustomMessagePopupShowing()) {
+            dismissCustomMessagePopup();
+        }
+    }
+
+    public boolean hasPendingDialogs() {
+        return !(mCannedResponsePopup == null && mCustomMessagePopup == null);
+    }
+
+    /**
+     * Shows the custom message entry dialog.
+     */
+    public void showCustomMessageDialog() {
+        // Create an alert dialog containing an EditText
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final EditText et = new EditText(builder.getContext());
+        builder.setCancelable(true).setView(et)
+                .setPositiveButton(R.string.custom_message_send,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                // The order is arranged in a way that the popup will be destroyed
+                                // when the InCallActivity is about to finish.
+                                final String textMessage = et.getText().toString().trim();
+                                dismissCustomMessagePopup();
+                                getPresenter().rejectCallWithMessage(textMessage);
+                            }
+                        })
+                .setNegativeButton(R.string.custom_message_cancel,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                dismissCustomMessagePopup();
+                                getPresenter().onDismissDialog();
+                            }
+                        })
+                .setOnCancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialogInterface) {
+                        dismissCustomMessagePopup();
+                        getPresenter().onDismissDialog();
+                    }
+                })
+                .setTitle(R.string.respond_via_sms_custom_message);
+        mCustomMessagePopup = builder.create();
+
+        // Enable/disable the send button based on whether there is a message in the EditText
+        et.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                final Button sendButton = mCustomMessagePopup.getButton(
+                        DialogInterface.BUTTON_POSITIVE);
+                sendButton.setEnabled(s != null && s.toString().trim().length() != 0);
+            }
+        });
+
+        // Keyboard up, show the dialog
+        mCustomMessagePopup.getWindow().setSoftInputMode(
+                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+        mCustomMessagePopup.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+        mCustomMessagePopup.show();
+
+        // Send button starts out disabled
+        final Button sendButton = mCustomMessagePopup.getButton(DialogInterface.BUTTON_POSITIVE);
+        sendButton.setEnabled(false);
+    }
+
+    @Override
+    public void configureMessageDialog(List<String> textResponses) {
+        mSmsResponses.clear();
+        mSmsResponses.addAll(textResponses);
+        mSmsResponses.add(getResources().getString(
+                R.string.respond_via_sms_custom_message));
+        if (mSmsResponsesAdapter != null) {
+            mSmsResponsesAdapter.notifyDataSetChanged();
+        }
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    public void onAnswer(int videoState, Context context) {
+        Log.d(this, "onAnswer videoState=" + videoState + " context=" + context);
+        getPresenter().onAnswer(videoState, context);
+    }
+
+    public void onDecline(Context context) {
+        getPresenter().onDecline(context);
+    }
+
+    public void onDeclineUpgradeRequest(Context context) {
+        InCallPresenter.getInstance().declineUpgradeRequest(context);
+    }
+
+    public void onText() {
+        getPresenter().onText();
+    }
+
+    /**
+     * OnItemClickListener for the "Respond via SMS" popup.
+     */
+    public class RespondViaSmsItemClickListener implements AdapterView.OnItemClickListener {
+
+        /**
+         * Handles the user selecting an item from the popup.
+         */
+        @Override
+        public void onItemClick(AdapterView<?> parent,  // The ListView
+                View view,  // The TextView that was clicked
+                int position, long id) {
+            Log.d(this, "RespondViaSmsItemClickListener.onItemClick(" + position + ")...");
+            final String message = (String) parent.getItemAtPosition(position);
+            Log.v(this, "- message: '" + message + "'");
+            dismissCannedResponsePopup();
+
+            // The "Custom" choice is a special case.
+            // (For now, it's guaranteed to be the last item.)
+            if (position == (parent.getCount() - 1)) {
+                // Show the custom message dialog
+                showCustomMessageDialog();
+            } else {
+                getPresenter().rejectCallWithMessage(message);
+            }
+        }
+    }
+
+    public void onShowAnswerUi(boolean shown) {
+        // Do Nothing
+    }
+
+    public void showTargets(int targetSet) {
+        // Do Nothing
+    }
+
+    public void showTargets(int targetSet, int videoState) {
+        // Do Nothing
+    }
+
+    protected void onMessageDialogCancel() {
+        // Do nothing.
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java
new file mode 100644
index 0000000..2bd3629
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java
@@ -0,0 +1,314 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+
+import com.android.dialer.compat.UserManagerCompat;
+import com.android.dialer.util.TelecomUtil;
+import com.android.incallui.InCallPresenter.InCallState;
+
+import java.util.List;
+
+/**
+ * Presenter for the Incoming call widget. The {@link AnswerPresenter} handles the logic during
+ * incoming calls. It is also in charge of responding to incoming calls, so there needs to be
+ * an instance alive so that it can receive onIncomingCall callbacks.
+ *
+ * An instance of {@link AnswerPresenter} is created by InCallPresenter at startup, registers
+ * for callbacks via InCallPresenter, and shows/hides the {@link AnswerFragment} via IncallActivity.
+ *
+ */
+public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
+        implements CallList.CallUpdateListener, InCallPresenter.InCallUiListener,
+                InCallPresenter.IncomingCallListener,
+                CallList.Listener {
+
+    private static final String TAG = AnswerPresenter.class.getSimpleName();
+
+    private String mCallId;
+    private Call mCall = null;
+    private boolean mHasTextMessages = false;
+
+    @Override
+    public void onUiShowing(boolean showing) {
+        if (showing) {
+            CallList.getInstance().addListener(this);
+            final CallList calls = CallList.getInstance();
+            Call call;
+            call = calls.getIncomingCall();
+            if (call != null) {
+                processIncomingCall(call);
+            }
+            call = calls.getVideoUpgradeRequestCall();
+            Log.d(this, "getVideoUpgradeRequestCall call =" + call);
+            if (call != null) {
+                processVideoUpgradeRequestCall(call);
+            }
+        } else {
+            CallList.getInstance().removeListener(this);
+            // This is necessary because the activity can be destroyed while an incoming call exists.
+            // This happens when back button is pressed while incoming call is still being shown.
+            if (mCallId != null) {
+                CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            }
+        }
+    }
+
+    @Override
+    public void onIncomingCall(InCallState oldState, InCallState newState, Call call) {
+        Log.d(this, "onIncomingCall: " + this);
+        Call modifyCall = CallList.getInstance().getVideoUpgradeRequestCall();
+        if (modifyCall != null) {
+            showAnswerUi(false);
+            Log.d(this, "declining upgrade request id: ");
+            CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            InCallPresenter.getInstance().declineUpgradeRequest();
+        }
+        if (!call.getId().equals(mCallId)) {
+            // A new call is coming in.
+            processIncomingCall(call);
+        }
+    }
+
+    @Override
+    public void onIncomingCall(Call call) {
+    }
+
+    @Override
+    public void onCallListChange(CallList list) {
+    }
+
+    @Override
+    public void onDisconnect(Call call) {
+        // no-op
+    }
+
+    public void onSessionModificationStateChange(int sessionModificationState) {
+        boolean isUpgradePending = sessionModificationState ==
+                Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+
+        if (!isUpgradePending) {
+            // Stop listening for updates.
+            CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            showAnswerUi(false);
+        }
+    }
+
+    @Override
+    public void onLastForwardedNumberChange() {
+        // no-op
+    }
+
+    @Override
+    public void onChildNumberChange() {
+        // no-op
+    }
+
+    private boolean isVideoUpgradePending(Call call) {
+        return call.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+    }
+
+    @Override
+    public void onUpgradeToVideo(Call call) {
+        Log.d(this, "onUpgradeToVideo: " + this + " call=" + call);
+        if (getUi() == null) {
+            Log.d(this, "onUpgradeToVideo ui is null");
+            return;
+        }
+        boolean isUpgradePending = isVideoUpgradePending(call);
+        InCallPresenter inCallPresenter = InCallPresenter.getInstance();
+        if (isUpgradePending
+                && inCallPresenter.getInCallState() == InCallPresenter.InCallState.INCOMING) {
+            Log.d(this, "declining upgrade request");
+            //If there is incoming call reject upgrade request
+            inCallPresenter.declineUpgradeRequest(getUi().getContext());
+        } else if (isUpgradePending) {
+            Log.d(this, "process upgrade request as no MT call");
+            processVideoUpgradeRequestCall(call);
+        }
+    }
+
+    private void processIncomingCall(Call call) {
+        mCallId = call.getId();
+        mCall = call;
+
+        // Listen for call updates for the current call.
+        CallList.getInstance().addCallUpdateListener(mCallId, this);
+
+        Log.d(TAG, "Showing incoming for call id: " + mCallId + " " + this);
+        if (showAnswerUi(true)) {
+            final List<String> textMsgs = CallList.getInstance().getTextResponses(call.getId());
+            configureAnswerTargetsForSms(call, textMsgs);
+        }
+    }
+
+    private boolean showAnswerUi(boolean show) {
+        final InCallActivity activity = InCallPresenter.getInstance().getActivity();
+        if (activity != null) {
+            activity.showAnswerFragment(show);
+            if (getUi() != null) {
+                getUi().onShowAnswerUi(show);
+            }
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private void processVideoUpgradeRequestCall(Call call) {
+        Log.d(this, " processVideoUpgradeRequestCall call=" + call);
+        mCallId = call.getId();
+        mCall = call;
+
+        // Listen for call updates for the current call.
+        CallList.getInstance().addCallUpdateListener(mCallId, this);
+
+        final int currentVideoState = call.getVideoState();
+        final int modifyToVideoState = call.getRequestedVideoState();
+
+        if (currentVideoState == modifyToVideoState) {
+            Log.w(this, "processVideoUpgradeRequestCall: Video states are same. Return.");
+            return;
+        }
+
+        AnswerUi ui = getUi();
+
+        if (ui == null) {
+            Log.e(this, "Ui is null. Can't process upgrade request");
+            return;
+        }
+        showAnswerUi(true);
+        ui.showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST,
+                modifyToVideoState);
+    }
+
+    private boolean isEnabled(int videoState, int mask) {
+        return (videoState & mask) == mask;
+    }
+
+    @Override
+    public void onCallChanged(Call call) {
+        Log.d(this, "onCallStateChange() " + call + " " + this);
+        if (call.getState() != Call.State.INCOMING) {
+            boolean isUpgradePending = isVideoUpgradePending(call);
+            if (!isUpgradePending) {
+                // Stop listening for updates.
+                CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            }
+
+            final Call incall = CallList.getInstance().getIncomingCall();
+            if (incall != null || isUpgradePending) {
+                showAnswerUi(true);
+            } else {
+                showAnswerUi(false);
+            }
+
+            mHasTextMessages = false;
+        } else if (!mHasTextMessages) {
+            final List<String> textMsgs = CallList.getInstance().getTextResponses(call.getId());
+            if (textMsgs != null) {
+                configureAnswerTargetsForSms(call, textMsgs);
+            }
+        }
+    }
+
+    public void onAnswer(int videoState, Context context) {
+        if (mCallId == null) {
+            return;
+        }
+
+        if (mCall.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            Log.d(this, "onAnswer (upgradeCall) mCallId=" + mCallId + " videoState=" + videoState);
+            InCallPresenter.getInstance().acceptUpgradeRequest(videoState, context);
+        } else {
+            Log.d(this, "onAnswer (answerCall) mCallId=" + mCallId + " videoState=" + videoState);
+            TelecomAdapter.getInstance().answerCall(mCall.getId(), videoState);
+        }
+    }
+
+    /**
+     * TODO: We are using reject and decline interchangeably. We should settle on
+     * reject since it seems to be more prevalent.
+     */
+    public void onDecline(Context context) {
+        Log.d(this, "onDecline " + mCallId);
+        if (mCall.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            InCallPresenter.getInstance().declineUpgradeRequest(context);
+        } else {
+            TelecomAdapter.getInstance().rejectCall(mCall.getId(), false, null);
+        }
+    }
+
+    public void onText() {
+        if (getUi() != null) {
+            TelecomUtil.silenceRinger(getUi().getContext());
+            getUi().showMessageDialog();
+        }
+    }
+
+    public void rejectCallWithMessage(String message) {
+        Log.d(this, "sendTextToDefaultActivity()...");
+        TelecomAdapter.getInstance().rejectCall(mCall.getId(), true, message);
+
+        onDismissDialog();
+    }
+
+    public void onDismissDialog() {
+        InCallPresenter.getInstance().onDismissDialog();
+    }
+
+    private void configureAnswerTargetsForSms(Call call, List<String> textMsgs) {
+        if (getUi() == null) {
+            return;
+        }
+        mHasTextMessages = textMsgs != null;
+        boolean withSms = UserManagerCompat.isUserUnlocked(getUi().getContext())
+                && call.can(android.telecom.Call.Details.CAPABILITY_RESPOND_VIA_TEXT)
+                && mHasTextMessages;
+
+        // Only present the user with the option to answer as a video call if the incoming call is
+        // a bi-directional video call.
+        if (VideoUtils.isBidirectionalVideoCall(call)) {
+            if (withSms) {
+                getUi().showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_WITH_SMS);
+                getUi().configureMessageDialog(textMsgs);
+            } else {
+                getUi().showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_WITHOUT_SMS);
+            }
+        } else {
+            if (withSms) {
+                getUi().showTargets(AnswerFragment.TARGET_SET_FOR_AUDIO_WITH_SMS);
+                getUi().configureMessageDialog(textMsgs);
+            } else {
+                getUi().showTargets(AnswerFragment.TARGET_SET_FOR_AUDIO_WITHOUT_SMS);
+            }
+        }
+    }
+
+    interface AnswerUi extends Ui {
+        public void onShowAnswerUi(boolean shown);
+        public void showTargets(int targetSet);
+        public void showTargets(int targetSet, int videoState);
+        public void showMessageDialog();
+        public void configureMessageDialog(List<String> textResponses);
+        public Context getContext();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/AudioModeProvider.java b/InCallUI/src/com/android/incallui/AudioModeProvider.java
new file mode 100644
index 0000000..ea56dd6
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AudioModeProvider.java
@@ -0,0 +1,105 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.telecom.CallAudioState;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+/**
+ * Proxy class for getting and setting the audio mode.
+ */
+public class AudioModeProvider {
+
+    static final int AUDIO_MODE_INVALID = 0;
+
+    private static AudioModeProvider sAudioModeProvider = new AudioModeProvider();
+    private int mAudioMode = CallAudioState.ROUTE_EARPIECE;
+    private boolean mMuted = false;
+    private int mSupportedModes = CallAudioState.ROUTE_EARPIECE
+            | CallAudioState.ROUTE_BLUETOOTH | CallAudioState.ROUTE_WIRED_HEADSET
+            | CallAudioState.ROUTE_SPEAKER;
+    private final List<AudioModeListener> mListeners = Lists.newArrayList();
+
+    public static AudioModeProvider getInstance() {
+        return sAudioModeProvider;
+    }
+
+    public void onAudioStateChanged(boolean isMuted, int route, int supportedRouteMask) {
+        onAudioModeChange(route, isMuted);
+        onSupportedAudioModeChange(supportedRouteMask);
+    }
+
+    public void onAudioModeChange(int newMode, boolean muted) {
+        if (mAudioMode != newMode) {
+            mAudioMode = newMode;
+            for (AudioModeListener l : mListeners) {
+                l.onAudioMode(mAudioMode);
+            }
+        }
+
+        if (mMuted != muted) {
+            mMuted = muted;
+            for (AudioModeListener l : mListeners) {
+                l.onMute(mMuted);
+            }
+        }
+    }
+
+    public void onSupportedAudioModeChange(int newModeMask) {
+        mSupportedModes = newModeMask;
+
+        for (AudioModeListener l : mListeners) {
+            l.onSupportedAudioMode(mSupportedModes);
+        }
+    }
+
+    public void addListener(AudioModeListener listener) {
+        if (!mListeners.contains(listener)) {
+            mListeners.add(listener);
+            listener.onSupportedAudioMode(mSupportedModes);
+            listener.onAudioMode(mAudioMode);
+            listener.onMute(mMuted);
+        }
+    }
+
+    public void removeListener(AudioModeListener listener) {
+        if (mListeners.contains(listener)) {
+            mListeners.remove(listener);
+        }
+    }
+
+    public int getSupportedModes() {
+        return mSupportedModes;
+    }
+
+    public int getAudioMode() {
+        return mAudioMode;
+    }
+
+    public boolean getMute() {
+        return mMuted;
+    }
+
+    /* package */ interface AudioModeListener {
+        void onAudioMode(int newMode);
+        void onMute(boolean muted);
+        void onSupportedAudioMode(int modeMask);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/BaseFragment.java b/InCallUI/src/com/android/incallui/BaseFragment.java
new file mode 100644
index 0000000..58d991a
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/BaseFragment.java
@@ -0,0 +1,84 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+
+/**
+ * Parent for all fragments that use Presenters and Ui design.
+ */
+public abstract class BaseFragment<T extends Presenter<U>, U extends Ui> extends Fragment {
+
+    private static final String KEY_FRAGMENT_HIDDEN = "key_fragment_hidden";
+
+    private T mPresenter;
+
+    public abstract T createPresenter();
+
+    public abstract U getUi();
+
+    protected BaseFragment() {
+        mPresenter = createPresenter();
+    }
+
+    /**
+     * Presenter will be available after onActivityCreated().
+     *
+     * @return The presenter associated with this fragment.
+     */
+    public T getPresenter() {
+        return mPresenter;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mPresenter.onUiReady(getUi());
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState != null) {
+            mPresenter.onRestoreInstanceState(savedInstanceState);
+            if (savedInstanceState.getBoolean(KEY_FRAGMENT_HIDDEN)) {
+                getFragmentManager().beginTransaction().hide(this).commit();
+            }
+        }
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        mPresenter.onUiDestroy(getUi());
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mPresenter.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_FRAGMENT_HIDDEN, isHidden());
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        ((FragmentDisplayManager) activity).onFragmentAttached(this);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java
new file mode 100644
index 0000000..54ec528
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/Call.java
@@ -0,0 +1,914 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.hardware.camera2.CameraCharacteristics;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Trace;
+import android.telecom.Call.Details;
+import android.telecom.Connection;
+import android.telecom.DisconnectCause;
+import android.telecom.GatewayInfo;
+import android.telecom.InCallService.VideoCall;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telecom.VideoProfile;
+import android.text.TextUtils;
+
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.util.IntentUtil;
+import com.android.incallui.util.TelecomCallUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+
+/**
+ * Describes a single call and its state.
+ */
+@NeededForTesting
+public class Call {
+    /* Defines different states of this call */
+    public static class State {
+        public static final int INVALID = 0;
+        public static final int NEW = 1;            /* The call is new. */
+        public static final int IDLE = 2;           /* The call is idle.  Nothing active */
+        public static final int ACTIVE = 3;         /* There is an active call */
+        public static final int INCOMING = 4;       /* A normal incoming phone call */
+        public static final int CALL_WAITING = 5;   /* Incoming call while another is active */
+        public static final int DIALING = 6;        /* An outgoing call during dial phase */
+        public static final int REDIALING = 7;      /* Subsequent dialing attempt after a failure */
+        public static final int ONHOLD = 8;         /* An active phone call placed on hold */
+        public static final int DISCONNECTING = 9;  /* A call is being ended. */
+        public static final int DISCONNECTED = 10;  /* State after a call disconnects */
+        public static final int CONFERENCED = 11;   /* Call part of a conference call */
+        public static final int SELECT_PHONE_ACCOUNT = 12; /* Waiting for account selection */
+        public static final int CONNECTING = 13;    /* Waiting for Telecom broadcast to finish */
+        public static final int BLOCKED = 14;       /* The number was found on the block list */
+
+
+        public static boolean isConnectingOrConnected(int state) {
+            switch(state) {
+                case ACTIVE:
+                case INCOMING:
+                case CALL_WAITING:
+                case CONNECTING:
+                case DIALING:
+                case REDIALING:
+                case ONHOLD:
+                case CONFERENCED:
+                    return true;
+                default:
+            }
+            return false;
+        }
+
+        public static boolean isDialing(int state) {
+            return state == DIALING || state == REDIALING;
+        }
+
+        public static String toString(int state) {
+            switch (state) {
+                case INVALID:
+                    return "INVALID";
+                case NEW:
+                    return "NEW";
+                case IDLE:
+                    return "IDLE";
+                case ACTIVE:
+                    return "ACTIVE";
+                case INCOMING:
+                    return "INCOMING";
+                case CALL_WAITING:
+                    return "CALL_WAITING";
+                case DIALING:
+                    return "DIALING";
+                case REDIALING:
+                    return "REDIALING";
+                case ONHOLD:
+                    return "ONHOLD";
+                case DISCONNECTING:
+                    return "DISCONNECTING";
+                case DISCONNECTED:
+                    return "DISCONNECTED";
+                case CONFERENCED:
+                    return "CONFERENCED";
+                case SELECT_PHONE_ACCOUNT:
+                    return "SELECT_PHONE_ACCOUNT";
+                case CONNECTING:
+                    return "CONNECTING";
+                case BLOCKED:
+                    return "BLOCKED";
+                default:
+                    return "UNKNOWN";
+            }
+        }
+    }
+
+    /**
+     * Defines different states of session modify requests, which are used to upgrade to video, or
+     * downgrade to audio.
+     */
+    public static class SessionModificationState {
+        public static final int NO_REQUEST = 0;
+        public static final int WAITING_FOR_RESPONSE = 1;
+        public static final int REQUEST_FAILED = 2;
+        public static final int RECEIVED_UPGRADE_TO_VIDEO_REQUEST = 3;
+        public static final int UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT = 4;
+        public static final int REQUEST_REJECTED = 5;
+    }
+
+    public static class VideoSettings {
+        public static final int CAMERA_DIRECTION_UNKNOWN = -1;
+        public static final int CAMERA_DIRECTION_FRONT_FACING =
+                CameraCharacteristics.LENS_FACING_FRONT;
+        public static final int CAMERA_DIRECTION_BACK_FACING =
+                CameraCharacteristics.LENS_FACING_BACK;
+
+        private int mCameraDirection = CAMERA_DIRECTION_UNKNOWN;
+
+        /**
+         * Sets the camera direction. if camera direction is set to CAMERA_DIRECTION_UNKNOWN,
+         * the video state of the call should be used to infer the camera direction.
+         *
+         * @see {@link CameraCharacteristics#LENS_FACING_FRONT}
+         * @see {@link CameraCharacteristics#LENS_FACING_BACK}
+         */
+        public void setCameraDir(int cameraDirection) {
+            if (cameraDirection == CAMERA_DIRECTION_FRONT_FACING
+               || cameraDirection == CAMERA_DIRECTION_BACK_FACING) {
+                mCameraDirection = cameraDirection;
+            } else {
+                mCameraDirection = CAMERA_DIRECTION_UNKNOWN;
+            }
+        }
+
+        /**
+         * Gets the camera direction. if camera direction is set to CAMERA_DIRECTION_UNKNOWN,
+         * the video state of the call should be used to infer the camera direction.
+         *
+         * @see {@link CameraCharacteristics#LENS_FACING_FRONT}
+         * @see {@link CameraCharacteristics#LENS_FACING_BACK}
+         */
+        public int getCameraDir() {
+            return mCameraDirection;
+        }
+
+        @Override
+        public String toString() {
+            return "(CameraDir:" + getCameraDir() + ")";
+        }
+    }
+
+    /**
+     * Tracks any state variables that is useful for logging. There is some amount of overlap with
+     * existing call member variables, but this duplication helps to ensure that none of these
+     * logging variables will interface with/and affect call logic.
+     */
+    public static class LogState {
+
+        // Contact lookup type constants
+        // Unknown lookup result (lookup not completed yet?)
+        public static final int LOOKUP_UNKNOWN = 0;
+        public static final int LOOKUP_NOT_FOUND = 1;
+        public static final int LOOKUP_LOCAL_CONTACT = 2;
+        public static final int LOOKUP_LOCAL_CACHE = 3;
+        public static final int LOOKUP_REMOTE_CONTACT = 4;
+        public static final int LOOKUP_EMERGENCY = 5;
+        public static final int LOOKUP_VOICEMAIL = 6;
+
+        // Call initiation type constants
+        public static final int INITIATION_UNKNOWN = 0;
+        public static final int INITIATION_INCOMING = 1;
+        public static final int INITIATION_DIALPAD = 2;
+        public static final int INITIATION_SPEED_DIAL = 3;
+        public static final int INITIATION_REMOTE_DIRECTORY = 4;
+        public static final int INITIATION_SMART_DIAL = 5;
+        public static final int INITIATION_REGULAR_SEARCH = 6;
+        public static final int INITIATION_CALL_LOG = 7;
+        public static final int INITIATION_CALL_LOG_FILTER = 8;
+        public static final int INITIATION_VOICEMAIL_LOG = 9;
+        public static final int INITIATION_CALL_DETAILS = 10;
+        public static final int INITIATION_QUICK_CONTACTS = 11;
+        public static final int INITIATION_EXTERNAL = 12;
+
+        public DisconnectCause disconnectCause;
+        public boolean isIncoming = false;
+        public int contactLookupResult = LOOKUP_UNKNOWN;
+        public int callInitiationMethod = INITIATION_EXTERNAL;
+        // If this was a conference call, the total number of calls involved in the conference.
+        public int conferencedCalls = 0;
+        public long duration = 0;
+        public boolean isLogged = false;
+
+        @Override
+        public String toString() {
+            return String.format(Locale.US, "["
+                        + "%s, " // DisconnectCause toString already describes the object type
+                        + "isIncoming: %s, "
+                        + "contactLookup: %s, "
+                        + "callInitiation: %s, "
+                        + "duration: %s"
+                        + "]",
+                    disconnectCause,
+                    isIncoming,
+                    lookupToString(contactLookupResult),
+                    initiationToString(callInitiationMethod),
+                    duration);
+        }
+
+        private static String lookupToString(int lookupType) {
+            switch (lookupType) {
+                case LOOKUP_LOCAL_CONTACT:
+                    return "Local";
+                case LOOKUP_LOCAL_CACHE:
+                    return "Cache";
+                case LOOKUP_REMOTE_CONTACT:
+                    return "Remote";
+                case LOOKUP_EMERGENCY:
+                    return "Emergency";
+                case LOOKUP_VOICEMAIL:
+                    return "Voicemail";
+                default:
+                    return "Not found";
+            }
+        }
+
+        private static String initiationToString(int initiationType) {
+            switch (initiationType) {
+                case INITIATION_INCOMING:
+                    return "Incoming";
+                case INITIATION_DIALPAD:
+                    return "Dialpad";
+                case INITIATION_SPEED_DIAL:
+                    return "Speed Dial";
+                case INITIATION_REMOTE_DIRECTORY:
+                    return "Remote Directory";
+                case INITIATION_SMART_DIAL:
+                    return "Smart Dial";
+                case INITIATION_REGULAR_SEARCH:
+                    return "Regular Search";
+                case INITIATION_CALL_LOG:
+                    return "Call Log";
+                case INITIATION_CALL_LOG_FILTER:
+                    return "Call Log Filter";
+                case INITIATION_VOICEMAIL_LOG:
+                    return "Voicemail Log";
+                case INITIATION_CALL_DETAILS:
+                    return "Call Details";
+                case INITIATION_QUICK_CONTACTS:
+                    return "Quick Contacts";
+                default:
+                    return "Unknown";
+            }
+        }
+    }
+
+
+    private static final String ID_PREFIX = Call.class.getSimpleName() + "_";
+    private static int sIdCounter = 0;
+
+    private final android.telecom.Call.Callback mTelecomCallCallback =
+        new android.telecom.Call.Callback() {
+            @Override
+            public void onStateChanged(android.telecom.Call call, int newState) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " newState="
+                        + newState);
+                update();
+            }
+
+            @Override
+            public void onParentChanged(android.telecom.Call call,
+                    android.telecom.Call newParent) {
+                Log.d(this, "TelecomCallCallback onParentChanged call=" + call + " newParent="
+                        + newParent);
+                update();
+            }
+
+            @Override
+            public void onChildrenChanged(android.telecom.Call call,
+                    List<android.telecom.Call> children) {
+                update();
+            }
+
+            @Override
+            public void onDetailsChanged(android.telecom.Call call,
+                    android.telecom.Call.Details details) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " details="
+                        + details);
+                update();
+            }
+
+            @Override
+            public void onCannedTextResponsesLoaded(android.telecom.Call call,
+                    List<String> cannedTextResponses) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " cannedTextResponses=" + cannedTextResponses);
+                update();
+            }
+
+            @Override
+            public void onPostDialWait(android.telecom.Call call,
+                    String remainingPostDialSequence) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " remainingPostDialSequence=" + remainingPostDialSequence);
+                update();
+            }
+
+            @Override
+            public void onVideoCallChanged(android.telecom.Call call,
+                    VideoCall videoCall) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " videoCall="
+                        + videoCall);
+                update();
+            }
+
+            @Override
+            public void onCallDestroyed(android.telecom.Call call) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call);
+                call.unregisterCallback(this);
+            }
+
+            @Override
+            public void onConferenceableCallsChanged(android.telecom.Call call,
+                    List<android.telecom.Call> conferenceableCalls) {
+                update();
+            }
+    };
+
+    private android.telecom.Call mTelecomCall;
+    private boolean mIsEmergencyCall;
+    private Uri mHandle;
+    private final String mId;
+    private int mState = State.INVALID;
+    private DisconnectCause mDisconnectCause;
+    private int mSessionModificationState;
+    private final List<String> mChildCallIds = new ArrayList<>();
+    private final VideoSettings mVideoSettings = new VideoSettings();
+    private int mVideoState;
+
+    /**
+     * mRequestedVideoState is used to store requested upgrade / downgrade video state
+     */
+    private int mRequestedVideoState = VideoProfile.STATE_AUDIO_ONLY;
+
+    private InCallVideoCallCallback mVideoCallCallback;
+    private String mChildNumber;
+    private String mLastForwardedNumber;
+    private String mCallSubject;
+    private PhoneAccountHandle mPhoneAccountHandle;
+
+    /**
+     * Indicates whether the phone account associated with this call supports specifying a call
+     * subject.
+     */
+    private boolean mIsCallSubjectSupported;
+
+    private long mTimeAddedMs;
+
+    private LogState mLogState = new LogState();
+
+    /**
+     * Used only to create mock calls for testing
+     */
+    @NeededForTesting
+    Call(int state) {
+        mTelecomCall = null;
+        mId = ID_PREFIX + Integer.toString(sIdCounter++);
+        setState(state);
+    }
+
+    public Call(android.telecom.Call telecomCall) {
+        mTelecomCall = telecomCall;
+        mId = ID_PREFIX + Integer.toString(sIdCounter++);
+
+        updateFromTelecomCall();
+
+        mTelecomCall.registerCallback(mTelecomCallCallback);
+
+        mTimeAddedMs = System.currentTimeMillis();
+    }
+
+    public android.telecom.Call getTelecomCall() {
+        return mTelecomCall;
+    }
+
+    /**
+     * @return video settings of the call, null if the call is not a video call.
+     * @see VideoProfile
+     */
+    public VideoSettings getVideoSettings() {
+        return mVideoSettings;
+    }
+
+    private void update() {
+        Trace.beginSection("Update");
+        int oldState = getState();
+        updateFromTelecomCall();
+        if (oldState != getState() && getState() == Call.State.DISCONNECTED) {
+            CallList.getInstance().onDisconnect(this);
+        } else {
+            CallList.getInstance().onUpdate(this);
+        }
+        Trace.endSection();
+    }
+
+    private void updateFromTelecomCall() {
+        Log.d(this, "updateFromTelecomCall: " + mTelecomCall.toString());
+        final int translatedState = translateState(mTelecomCall.getState());
+        if (mState != State.BLOCKED) {
+            setState(translatedState);
+            setDisconnectCause(mTelecomCall.getDetails().getDisconnectCause());
+            maybeCancelVideoUpgrade(mTelecomCall.getDetails().getVideoState());
+        }
+
+        if (mTelecomCall.getVideoCall() != null) {
+            if (mVideoCallCallback == null) {
+                mVideoCallCallback = new InCallVideoCallCallback(this);
+            }
+            mTelecomCall.getVideoCall().registerCallback(mVideoCallCallback);
+        }
+
+        mChildCallIds.clear();
+        final int numChildCalls = mTelecomCall.getChildren().size();
+        for (int i = 0; i < numChildCalls; i++) {
+            mChildCallIds.add(
+                    CallList.getInstance().getCallByTelecomCall(
+                            mTelecomCall.getChildren().get(i)).getId());
+        }
+
+        // The number of conferenced calls can change over the course of the call, so use the
+        // maximum number of conferenced child calls as the metric for conference call usage.
+        mLogState.conferencedCalls = Math.max(numChildCalls, mLogState.conferencedCalls);
+
+        updateFromCallExtras(mTelecomCall.getDetails().getExtras());
+
+        // If the handle of the call has changed, update state for the call determining if it is an
+        // emergency call.
+        Uri newHandle = mTelecomCall.getDetails().getHandle();
+        if (!Objects.equals(mHandle, newHandle)) {
+            mHandle = newHandle;
+            updateEmergencyCallState();
+        }
+
+        // If the phone account handle of the call is set, cache capability bit indicating whether
+        // the phone account supports call subjects.
+        PhoneAccountHandle newPhoneAccountHandle = mTelecomCall.getDetails().getAccountHandle();
+        if (!Objects.equals(mPhoneAccountHandle, newPhoneAccountHandle)) {
+            mPhoneAccountHandle = newPhoneAccountHandle;
+
+            if (mPhoneAccountHandle != null) {
+                TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
+                PhoneAccount phoneAccount =
+                        TelecomManagerCompat.getPhoneAccount(mgr, mPhoneAccountHandle);
+                if (phoneAccount != null) {
+                    mIsCallSubjectSupported = phoneAccount.hasCapabilities(
+                            PhoneAccount.CAPABILITY_CALL_SUBJECT);
+                }
+            }
+        }
+    }
+
+    /**
+     * Tests corruption of the {@code callExtras} bundle by calling {@link
+     * Bundle#containsKey(String)}. If the bundle is corrupted a {@link IllegalArgumentException}
+     * will be thrown and caught by this function.
+     *
+     * @param callExtras the bundle to verify
+     * @returns {@code true} if the bundle is corrupted, {@code false} otherwise.
+     */
+    protected boolean areCallExtrasCorrupted(Bundle callExtras) {
+        /**
+         * There's currently a bug in Telephony service (b/25613098) that could corrupt the
+         * extras bundle, resulting in a IllegalArgumentException while validating data under
+         * {@link Bundle#containsKey(String)}.
+         */
+        try {
+            callExtras.containsKey(Connection.EXTRA_CHILD_ADDRESS);
+            return false;
+        } catch (IllegalArgumentException e) {
+            Log.e(this, "CallExtras is corrupted, ignoring exception", e);
+            return true;
+        }
+    }
+
+    protected void updateFromCallExtras(Bundle callExtras) {
+        if (callExtras == null || areCallExtrasCorrupted(callExtras)) {
+            /**
+             * If the bundle is corrupted, abandon information update as a work around. These are
+             * not critical for the dialer to function.
+             */
+            return;
+        }
+        // Check for a change in the child address and notify any listeners.
+        if (callExtras.containsKey(Connection.EXTRA_CHILD_ADDRESS)) {
+            String childNumber = callExtras.getString(Connection.EXTRA_CHILD_ADDRESS);
+            if (!Objects.equals(childNumber, mChildNumber)) {
+                mChildNumber = childNumber;
+                CallList.getInstance().onChildNumberChange(this);
+            }
+        }
+
+        // Last forwarded number comes in as an array of strings.  We want to choose the
+        // last item in the array.  The forwarding numbers arrive independently of when the
+        // call is originally set up, so we need to notify the the UI of the change.
+        if (callExtras.containsKey(Connection.EXTRA_LAST_FORWARDED_NUMBER)) {
+            ArrayList<String> lastForwardedNumbers =
+                    callExtras.getStringArrayList(Connection.EXTRA_LAST_FORWARDED_NUMBER);
+
+            if (lastForwardedNumbers != null) {
+                String lastForwardedNumber = null;
+                if (!lastForwardedNumbers.isEmpty()) {
+                    lastForwardedNumber = lastForwardedNumbers.get(
+                            lastForwardedNumbers.size() - 1);
+                }
+
+                if (!Objects.equals(lastForwardedNumber, mLastForwardedNumber)) {
+                    mLastForwardedNumber = lastForwardedNumber;
+                    CallList.getInstance().onLastForwardedNumberChange(this);
+                }
+            }
+        }
+
+        // Call subject is present in the extras at the start of call, so we do not need to
+        // notify any other listeners of this.
+        if (callExtras.containsKey(Connection.EXTRA_CALL_SUBJECT)) {
+            String callSubject = callExtras.getString(Connection.EXTRA_CALL_SUBJECT);
+            if (!Objects.equals(mCallSubject, callSubject)) {
+                mCallSubject = callSubject;
+            }
+        }
+    }
+
+    /**
+     * Determines if a received upgrade to video request should be cancelled.  This can happen if
+     * another InCall UI responds to the upgrade to video request.
+     *
+     * @param newVideoState The new video state.
+     */
+    private void maybeCancelVideoUpgrade(int newVideoState) {
+        boolean isVideoStateChanged = mVideoState != newVideoState;
+
+        if (mSessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST
+                && isVideoStateChanged) {
+
+            Log.v(this, "maybeCancelVideoUpgrade : cancelling upgrade notification");
+            setSessionModificationState(SessionModificationState.NO_REQUEST);
+        }
+        mVideoState = newVideoState;
+    }
+    private static int translateState(int state) {
+        switch (state) {
+            case android.telecom.Call.STATE_NEW:
+            case android.telecom.Call.STATE_CONNECTING:
+                return Call.State.CONNECTING;
+            case android.telecom.Call.STATE_SELECT_PHONE_ACCOUNT:
+                return Call.State.SELECT_PHONE_ACCOUNT;
+            case android.telecom.Call.STATE_DIALING:
+                return Call.State.DIALING;
+            case android.telecom.Call.STATE_RINGING:
+                return Call.State.INCOMING;
+            case android.telecom.Call.STATE_ACTIVE:
+                return Call.State.ACTIVE;
+            case android.telecom.Call.STATE_HOLDING:
+                return Call.State.ONHOLD;
+            case android.telecom.Call.STATE_DISCONNECTED:
+                return Call.State.DISCONNECTED;
+            case android.telecom.Call.STATE_DISCONNECTING:
+                return Call.State.DISCONNECTING;
+            default:
+                return Call.State.INVALID;
+        }
+    }
+
+    public String getId() {
+        return mId;
+    }
+
+    public long getTimeAddedMs() {
+        return mTimeAddedMs;
+    }
+
+    public String getNumber() {
+        return TelecomCallUtil.getNumber(mTelecomCall);
+    }
+
+    public void blockCall() {
+        mTelecomCall.reject(false, null);
+        setState(State.BLOCKED);
+    }
+
+    public Uri getHandle() {
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getHandle();
+    }
+
+    public boolean isEmergencyCall() {
+        return mIsEmergencyCall;
+    }
+
+    public int getState() {
+        if (mTelecomCall != null && mTelecomCall.getParent() != null) {
+            return State.CONFERENCED;
+        } else {
+            return mState;
+        }
+    }
+
+    public void setState(int state) {
+        mState = state;
+        if (mState == State.INCOMING) {
+            mLogState.isIncoming = true;
+        } else if (mState == State.DISCONNECTED) {
+            mLogState.duration = getConnectTimeMillis() == 0 ?
+                    0: System.currentTimeMillis() - getConnectTimeMillis();
+        }
+    }
+
+    public int getNumberPresentation() {
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getHandlePresentation();
+    }
+
+    public int getCnapNamePresentation() {
+        return mTelecomCall == null ? null
+                : mTelecomCall.getDetails().getCallerDisplayNamePresentation();
+    }
+
+    public String getCnapName() {
+        return mTelecomCall == null ? null
+                : getTelecomCall().getDetails().getCallerDisplayName();
+    }
+
+    public Bundle getIntentExtras() {
+        return mTelecomCall.getDetails().getIntentExtras();
+    }
+
+    public Bundle getExtras() {
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getExtras();
+    }
+
+    /**
+     * @return The child number for the call, or {@code null} if none specified.
+     */
+    public String getChildNumber() {
+        return mChildNumber;
+    }
+
+    /**
+     * @return The last forwarded number for the call, or {@code null} if none specified.
+     */
+    public String getLastForwardedNumber() {
+        return mLastForwardedNumber;
+    }
+
+    /**
+     * @return The call subject, or {@code null} if none specified.
+     */
+    public String getCallSubject() {
+        return mCallSubject;
+    }
+
+    /**
+     * @return {@code true} if the call's phone account supports call subjects, {@code false}
+     *      otherwise.
+     */
+    public boolean isCallSubjectSupported() {
+        return mIsCallSubjectSupported;
+    }
+
+    /** Returns call disconnect cause, defined by {@link DisconnectCause}. */
+    public DisconnectCause getDisconnectCause() {
+        if (mState == State.DISCONNECTED || mState == State.IDLE) {
+            return mDisconnectCause;
+        }
+
+        return new DisconnectCause(DisconnectCause.UNKNOWN);
+    }
+
+    public void setDisconnectCause(DisconnectCause disconnectCause) {
+        mDisconnectCause = disconnectCause;
+        mLogState.disconnectCause = mDisconnectCause;
+    }
+
+    /** Returns the possible text message responses. */
+    public List<String> getCannedSmsResponses() {
+        return mTelecomCall.getCannedTextResponses();
+    }
+
+    /** Checks if the call supports the given set of capabilities supplied as a bit mask. */
+    public boolean can(int capabilities) {
+        int supportedCapabilities = mTelecomCall.getDetails().getCallCapabilities();
+
+        if ((capabilities & android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE) != 0) {
+            // We allow you to merge if the capabilities allow it or if it is a call with
+            // conferenceable calls.
+            if (mTelecomCall.getConferenceableCalls().isEmpty() &&
+                ((android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE
+                        & supportedCapabilities) == 0)) {
+                // Cannot merge calls if there are no calls to merge with.
+                return false;
+            }
+            capabilities &= ~android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE;
+        }
+        return (capabilities == (capabilities & mTelecomCall.getDetails().getCallCapabilities()));
+    }
+
+    public boolean hasProperty(int property) {
+        return mTelecomCall.getDetails().hasProperty(property);
+    }
+
+    /** Gets the time when the call first became active. */
+    public long getConnectTimeMillis() {
+        return mTelecomCall.getDetails().getConnectTimeMillis();
+    }
+
+    public boolean isConferenceCall() {
+        return hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE);
+    }
+
+    public GatewayInfo getGatewayInfo() {
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getGatewayInfo();
+    }
+
+    public PhoneAccountHandle getAccountHandle() {
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getAccountHandle();
+    }
+
+    public VideoCall getVideoCall() {
+        return mTelecomCall == null ? null : mTelecomCall.getVideoCall();
+    }
+
+    public List<String> getChildCallIds() {
+        return mChildCallIds;
+    }
+
+    public String getParentId() {
+        android.telecom.Call parentCall = mTelecomCall.getParent();
+        if (parentCall != null) {
+            return CallList.getInstance().getCallByTelecomCall(parentCall).getId();
+        }
+        return null;
+    }
+
+    public int getVideoState() {
+        return mTelecomCall.getDetails().getVideoState();
+    }
+
+    public boolean isVideoCall(Context context) {
+        return CallUtil.isVideoEnabled(context) &&
+                VideoUtils.isVideoCall(getVideoState());
+    }
+
+    /**
+     * Handles incoming session modification requests.  Stores the pending video request and sets
+     * the session modification state to
+     * {@link SessionModificationState#RECEIVED_UPGRADE_TO_VIDEO_REQUEST} so that we can keep track
+     * of the fact the request was received.  Only upgrade requests require user confirmation and
+     * will be handled by this method.  The remote user can turn off their own camera without
+     * confirmation.
+     *
+     * @param videoState The requested video state.
+     */
+    public void setRequestedVideoState(int videoState) {
+        Log.d(this, "setRequestedVideoState - video state= " + videoState);
+        if (videoState == getVideoState()) {
+            mSessionModificationState = Call.SessionModificationState.NO_REQUEST;
+            Log.w(this,"setRequestedVideoState - Clearing session modification state");
+            return;
+        }
+
+        mSessionModificationState = Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+        mRequestedVideoState = videoState;
+        CallList.getInstance().onUpgradeToVideo(this);
+
+        Log.d(this, "setRequestedVideoState - mSessionModificationState="
+            + mSessionModificationState + " video state= " + videoState);
+        update();
+    }
+
+    /**
+     * Set the session modification state.  Used to keep track of pending video session modification
+     * operations and to inform listeners of these changes.
+     *
+     * @param state the new session modification state.
+     */
+    public void setSessionModificationState(int state) {
+        boolean hasChanged = mSessionModificationState != state;
+        mSessionModificationState = state;
+        Log.d(this, "setSessionModificationState " + state + " mSessionModificationState="
+                + mSessionModificationState);
+        if (hasChanged) {
+            CallList.getInstance().onSessionModificationStateChange(this, state);
+        }
+    }
+
+    /**
+     * Determines if the call handle is an emergency number or not and caches the result to avoid
+     * repeated calls to isEmergencyNumber.
+     */
+    private void updateEmergencyCallState() {
+        mIsEmergencyCall = TelecomCallUtil.isEmergencyCall(mTelecomCall);
+    }
+
+    /**
+     * Gets the video state which was requested via a session modification request.
+     *
+     * @return The video state.
+     */
+    public int getRequestedVideoState() {
+        return mRequestedVideoState;
+    }
+
+    public static boolean areSame(Call call1, Call call2) {
+        if (call1 == null && call2 == null) {
+            return true;
+        } else if (call1 == null || call2 == null) {
+            return false;
+        }
+
+        // otherwise compare call Ids
+        return call1.getId().equals(call2.getId());
+    }
+
+    public static boolean areSameNumber(Call call1, Call call2) {
+        if (call1 == null && call2 == null) {
+            return true;
+        } else if (call1 == null || call2 == null) {
+            return false;
+        }
+
+        // otherwise compare call Numbers
+        return TextUtils.equals(call1.getNumber(), call2.getNumber());
+    }
+
+    /**
+     *  Gets the current video session modification state.
+     *
+     * @return The session modification state.
+     */
+    public int getSessionModificationState() {
+        return mSessionModificationState;
+    }
+
+    public LogState getLogState() {
+        return mLogState;
+    }
+
+    /**
+     * Logging utility methods
+     */
+    public void logCallInitiationType() {
+        if (getState() == State.INCOMING) {
+            getLogState().callInitiationMethod = LogState.INITIATION_INCOMING;
+        } else if (getIntentExtras() != null) {
+            getLogState().callInitiationMethod =
+                getIntentExtras().getInt(IntentUtil.EXTRA_CALL_INITIATION_TYPE,
+                        LogState.INITIATION_EXTERNAL);
+        }
+    }
+
+    @Override
+    public String toString() {
+        if (mTelecomCall == null) {
+            // This should happen only in testing since otherwise we would never have a null
+            // Telecom call.
+            return String.valueOf(mId);
+        }
+
+        return String.format(Locale.US, "[%s, %s, %s, children:%s, parent:%s, conferenceable:%s, " +
+                "videoState:%s, mSessionModificationState:%d, VideoSettings:%s]",
+                mId,
+                State.toString(getState()),
+                Details.capabilitiesToString(mTelecomCall.getDetails().getCallCapabilities()),
+                mChildCallIds,
+                getParentId(),
+                this.mTelecomCall.getConferenceableCalls(),
+                VideoProfile.videoStateToString(mTelecomCall.getDetails().getVideoState()),
+                mSessionModificationState,
+                getVideoSettings());
+    }
+
+    public String toSimpleString() {
+        return super.toString();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
new file mode 100644
index 0000000..9859f4e
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -0,0 +1,808 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_ADD_CALL;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_COUNT;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DIALPAD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DOWNGRADE_TO_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_HOLD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MANAGE_VIDEO_CONFERENCE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MERGE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MUTE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_PAUSE_VIDEO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWAP;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWITCH_CAMERA;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_UPGRADE_TO_VIDEO;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.graphics.drawable.RippleDrawable;
+import android.graphics.drawable.StateListDrawable;
+import android.os.Bundle;
+import android.telecom.CallAudioState;
+import android.util.SparseIntArray;
+import android.view.ContextThemeWrapper;
+import android.view.HapticFeedbackConstants;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CompoundButton;
+import android.widget.ImageButton;
+import android.widget.PopupMenu;
+import android.widget.PopupMenu.OnDismissListener;
+import android.widget.PopupMenu.OnMenuItemClickListener;
+
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.R;
+
+/**
+ * Fragment for call control buttons
+ */
+public class CallButtonFragment
+        extends BaseFragment<CallButtonPresenter, CallButtonPresenter.CallButtonUi>
+        implements CallButtonPresenter.CallButtonUi, OnMenuItemClickListener, OnDismissListener,
+        View.OnClickListener {
+
+    private static final int INVALID_INDEX = -1;
+    private int mButtonMaxVisible;
+    // The button is currently visible in the UI
+    private static final int BUTTON_VISIBLE = 1;
+    // The button is hidden in the UI
+    private static final int BUTTON_HIDDEN = 2;
+    // The button has been collapsed into the overflow menu
+    private static final int BUTTON_MENU = 3;
+
+    public interface Buttons {
+
+        public static final int BUTTON_AUDIO = 0;
+        public static final int BUTTON_MUTE = 1;
+        public static final int BUTTON_DIALPAD = 2;
+        public static final int BUTTON_HOLD = 3;
+        public static final int BUTTON_SWAP = 4;
+        public static final int BUTTON_UPGRADE_TO_VIDEO = 5;
+        public static final int BUTTON_SWITCH_CAMERA = 6;
+        public static final int BUTTON_DOWNGRADE_TO_AUDIO = 7;
+        public static final int BUTTON_ADD_CALL = 8;
+        public static final int BUTTON_MERGE = 9;
+        public static final int BUTTON_PAUSE_VIDEO = 10;
+        public static final int BUTTON_MANAGE_VIDEO_CONFERENCE = 11;
+        public static final int BUTTON_COUNT = 12;
+    }
+
+    private SparseIntArray mButtonVisibilityMap = new SparseIntArray(BUTTON_COUNT);
+
+    private CompoundButton mAudioButton;
+    private CompoundButton mMuteButton;
+    private CompoundButton mShowDialpadButton;
+    private CompoundButton mHoldButton;
+    private ImageButton mSwapButton;
+    private ImageButton mChangeToVideoButton;
+    private ImageButton mChangeToVoiceButton;
+    private CompoundButton mSwitchCameraButton;
+    private ImageButton mAddCallButton;
+    private ImageButton mMergeButton;
+    private CompoundButton mPauseVideoButton;
+    private ImageButton mOverflowButton;
+    private ImageButton mManageVideoCallConferenceButton;
+
+    private PopupMenu mAudioModePopup;
+    private boolean mAudioModePopupVisible;
+    private PopupMenu mOverflowPopup;
+
+    private int mPrevAudioMode = 0;
+
+    // Constants for Drawable.setAlpha()
+    private static final int HIDDEN = 0;
+    private static final int VISIBLE = 255;
+
+    private boolean mIsEnabled;
+    private MaterialPalette mCurrentThemeColors;
+
+    @Override
+    public CallButtonPresenter createPresenter() {
+        // TODO: find a cleaner way to include audio mode provider than having a singleton instance.
+        return new CallButtonPresenter();
+    }
+
+    @Override
+    public CallButtonPresenter.CallButtonUi getUi() {
+        return this;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        for (int i = 0; i < BUTTON_COUNT; i++) {
+            mButtonVisibilityMap.put(i, BUTTON_HIDDEN);
+        }
+
+        mButtonMaxVisible = getResources().getInteger(R.integer.call_card_max_buttons);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View parent = inflater.inflate(R.layout.call_button_fragment, container, false);
+
+        mAudioButton = (CompoundButton) parent.findViewById(R.id.audioButton);
+        mAudioButton.setOnClickListener(this);
+        mMuteButton = (CompoundButton) parent.findViewById(R.id.muteButton);
+        mMuteButton.setOnClickListener(this);
+        mShowDialpadButton = (CompoundButton) parent.findViewById(R.id.dialpadButton);
+        mShowDialpadButton.setOnClickListener(this);
+        mHoldButton = (CompoundButton) parent.findViewById(R.id.holdButton);
+        mHoldButton.setOnClickListener(this);
+        mSwapButton = (ImageButton) parent.findViewById(R.id.swapButton);
+        mSwapButton.setOnClickListener(this);
+        mChangeToVideoButton = (ImageButton) parent.findViewById(R.id.changeToVideoButton);
+        mChangeToVideoButton.setOnClickListener(this);
+        mChangeToVoiceButton = (ImageButton) parent.findViewById(R.id.changeToVoiceButton);
+        mChangeToVoiceButton.setOnClickListener(this);
+        mSwitchCameraButton = (CompoundButton) parent.findViewById(R.id.switchCameraButton);
+        mSwitchCameraButton.setOnClickListener(this);
+        mAddCallButton = (ImageButton) parent.findViewById(R.id.addButton);
+        mAddCallButton.setOnClickListener(this);
+        mMergeButton = (ImageButton) parent.findViewById(R.id.mergeButton);
+        mMergeButton.setOnClickListener(this);
+        mPauseVideoButton = (CompoundButton) parent.findViewById(R.id.pauseVideoButton);
+        mPauseVideoButton.setOnClickListener(this);
+        mOverflowButton = (ImageButton) parent.findViewById(R.id.overflowButton);
+        mOverflowButton.setOnClickListener(this);
+        mManageVideoCallConferenceButton = (ImageButton) parent.findViewById(
+                R.id.manageVideoCallConferenceButton);
+        mManageVideoCallConferenceButton.setOnClickListener(this);
+        return parent;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        // set the buttons
+        updateAudioButtons(getPresenter().getSupportedAudio());
+    }
+
+    @Override
+    public void onResume() {
+        if (getPresenter() != null) {
+            getPresenter().refreshMuteState();
+        }
+        super.onResume();
+
+        updateColors();
+    }
+
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        Log.d(this, "onClick(View " + view + ", id " + id + ")...");
+
+        if (id == R.id.audioButton) {
+            onAudioButtonClicked();
+        } else if (id == R.id.addButton) {
+            getPresenter().addCallClicked();
+        } else if (id == R.id.muteButton) {
+            getPresenter().muteClicked(!mMuteButton.isSelected());
+        } else if (id == R.id.mergeButton) {
+            getPresenter().mergeClicked();
+            mMergeButton.setEnabled(false);
+        } else if (id == R.id.holdButton) {
+            getPresenter().holdClicked(!mHoldButton.isSelected());
+        } else if (id == R.id.swapButton) {
+            getPresenter().swapClicked();
+        } else if (id == R.id.dialpadButton) {
+            getPresenter().showDialpadClicked(!mShowDialpadButton.isSelected());
+        } else if (id == R.id.changeToVideoButton) {
+            getPresenter().changeToVideoClicked();
+        } else if (id == R.id.changeToVoiceButton) {
+            getPresenter().changeToVoiceClicked();
+        } else if (id == R.id.switchCameraButton) {
+            getPresenter().switchCameraClicked(
+                    mSwitchCameraButton.isSelected() /* useFrontFacingCamera */);
+        } else if (id == R.id.pauseVideoButton) {
+            getPresenter().pauseVideoClicked(
+                    !mPauseVideoButton.isSelected() /* pause */);
+        } else if (id == R.id.overflowButton) {
+            if (mOverflowPopup != null) {
+                mOverflowPopup.show();
+            }
+        } else if (id == R.id.manageVideoCallConferenceButton) {
+            onManageVideoCallConferenceClicked();
+        } else {
+            Log.wtf(this, "onClick: unexpected");
+            return;
+        }
+
+        view.performHapticFeedback(
+                HapticFeedbackConstants.VIRTUAL_KEY,
+                HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
+    }
+
+    public void updateColors() {
+        MaterialPalette themeColors = InCallPresenter.getInstance().getThemeColors();
+
+        if (mCurrentThemeColors != null && mCurrentThemeColors.equals(themeColors)) {
+            return;
+        }
+
+        View[] compoundButtons = {
+                mAudioButton,
+                mMuteButton,
+                mShowDialpadButton,
+                mHoldButton,
+                mSwitchCameraButton,
+                mPauseVideoButton
+        };
+
+        for (View button : compoundButtons) {
+            final LayerDrawable layers = (LayerDrawable) button.getBackground();
+            final RippleDrawable btnCompoundDrawable = compoundBackgroundDrawable(themeColors);
+            layers.setDrawableByLayerId(R.id.compoundBackgroundItem, btnCompoundDrawable);
+        }
+
+        ImageButton[] normalButtons = {
+                mSwapButton,
+                mChangeToVideoButton,
+                mChangeToVoiceButton,
+                mAddCallButton,
+                mMergeButton,
+                mOverflowButton
+        };
+
+        for (ImageButton button : normalButtons) {
+            final LayerDrawable layers = (LayerDrawable) button.getBackground();
+            final RippleDrawable btnDrawable = backgroundDrawable(themeColors);
+            layers.setDrawableByLayerId(R.id.backgroundItem, btnDrawable);
+        }
+
+        mCurrentThemeColors = themeColors;
+    }
+
+    /**
+     * Generate a RippleDrawable which will be the background for a compound button, i.e.
+     * a button with pressed and unpressed states. The unpressed state will be the same color
+     * as the rest of the call card, the pressed state will be the dark version of that color.
+     */
+    private RippleDrawable compoundBackgroundDrawable(MaterialPalette palette) {
+        Resources res = getResources();
+        ColorStateList rippleColor =
+                ColorStateList.valueOf(res.getColor(R.color.incall_accent_color));
+
+        StateListDrawable stateListDrawable = new StateListDrawable();
+        addSelectedAndFocused(res, stateListDrawable);
+        addFocused(res, stateListDrawable);
+        addSelected(res, stateListDrawable, palette);
+        addUnselected(res, stateListDrawable, palette);
+
+        return new RippleDrawable(rippleColor, stateListDrawable, null);
+    }
+
+    /**
+     * Generate a RippleDrawable which will be the background of a button to ensure it
+     * is the same color as the rest of the call card.
+     */
+    private RippleDrawable backgroundDrawable(MaterialPalette palette) {
+        Resources res = getResources();
+        ColorStateList rippleColor =
+                ColorStateList.valueOf(res.getColor(R.color.incall_accent_color));
+
+        StateListDrawable stateListDrawable = new StateListDrawable();
+        addFocused(res, stateListDrawable);
+        addUnselected(res, stateListDrawable, palette);
+
+        return new RippleDrawable(rippleColor, stateListDrawable, null);
+    }
+
+    // state_selected and state_focused
+    private void addSelectedAndFocused(Resources res, StateListDrawable drawable) {
+        int[] selectedAndFocused = {android.R.attr.state_selected, android.R.attr.state_focused};
+        Drawable selectedAndFocusedDrawable = res.getDrawable(R.drawable.btn_selected_focused);
+        drawable.addState(selectedAndFocused, selectedAndFocusedDrawable);
+    }
+
+    // state_focused
+    private void addFocused(Resources res, StateListDrawable drawable) {
+        int[] focused = {android.R.attr.state_focused};
+        Drawable focusedDrawable = res.getDrawable(R.drawable.btn_unselected_focused);
+        drawable.addState(focused, focusedDrawable);
+    }
+
+    // state_selected
+    private void addSelected(Resources res, StateListDrawable drawable, MaterialPalette palette) {
+        int[] selected = {android.R.attr.state_selected};
+        LayerDrawable selectedDrawable = (LayerDrawable) res.getDrawable(R.drawable.btn_selected);
+        ((GradientDrawable) selectedDrawable.getDrawable(0)).setColor(palette.mSecondaryColor);
+        drawable.addState(selected, selectedDrawable);
+    }
+
+    // default
+    private void addUnselected(Resources res, StateListDrawable drawable, MaterialPalette palette) {
+        LayerDrawable unselectedDrawable =
+                (LayerDrawable) res.getDrawable(R.drawable.btn_unselected);
+        ((GradientDrawable) unselectedDrawable.getDrawable(0)).setColor(palette.mPrimaryColor);
+        drawable.addState(new int[0], unselectedDrawable);
+    }
+
+    @Override
+    public void setEnabled(boolean isEnabled) {
+        mIsEnabled = isEnabled;
+
+        mAudioButton.setEnabled(isEnabled);
+        mMuteButton.setEnabled(isEnabled);
+        mShowDialpadButton.setEnabled(isEnabled);
+        mHoldButton.setEnabled(isEnabled);
+        mSwapButton.setEnabled(isEnabled);
+        mChangeToVideoButton.setEnabled(isEnabled);
+        mChangeToVoiceButton.setEnabled(isEnabled);
+        mSwitchCameraButton.setEnabled(isEnabled);
+        mAddCallButton.setEnabled(isEnabled);
+        mMergeButton.setEnabled(isEnabled);
+        mPauseVideoButton.setEnabled(isEnabled);
+        mOverflowButton.setEnabled(isEnabled);
+        mManageVideoCallConferenceButton.setEnabled(isEnabled);
+    }
+
+    @Override
+    public void showButton(int buttonId, boolean show) {
+        mButtonVisibilityMap.put(buttonId, show ? BUTTON_VISIBLE : BUTTON_HIDDEN);
+    }
+
+    @Override
+    public void enableButton(int buttonId, boolean enable) {
+        final View button = getButtonById(buttonId);
+        if (button != null) {
+            button.setEnabled(enable);
+        }
+    }
+
+    private View getButtonById(int id) {
+        if (id == BUTTON_AUDIO) {
+            return mAudioButton;
+        } else if (id == BUTTON_MUTE) {
+            return mMuteButton;
+        } else if (id == BUTTON_DIALPAD) {
+            return mShowDialpadButton;
+        } else if (id == BUTTON_HOLD) {
+            return mHoldButton;
+        } else if (id == BUTTON_SWAP) {
+            return mSwapButton;
+        } else if (id == BUTTON_UPGRADE_TO_VIDEO) {
+            return mChangeToVideoButton;
+        } else if (id == BUTTON_DOWNGRADE_TO_AUDIO) {
+            return mChangeToVoiceButton;
+        } else if (id == BUTTON_SWITCH_CAMERA) {
+            return mSwitchCameraButton;
+        } else if (id == BUTTON_ADD_CALL) {
+            return mAddCallButton;
+        } else if (id == BUTTON_MERGE) {
+            return mMergeButton;
+        } else if (id == BUTTON_PAUSE_VIDEO) {
+            return mPauseVideoButton;
+        } else if (id == BUTTON_MANAGE_VIDEO_CONFERENCE) {
+            return mManageVideoCallConferenceButton;
+        } else {
+            Log.w(this, "Invalid button id");
+            return null;
+        }
+    }
+
+    @Override
+    public void setHold(boolean value) {
+        if (mHoldButton.isSelected() != value) {
+            mHoldButton.setSelected(value);
+            mHoldButton.setContentDescription(getContext().getString(
+                    value ? R.string.onscreenHoldText_selected
+                            : R.string.onscreenHoldText_unselected));
+        }
+    }
+
+    @Override
+    public void setCameraSwitched(boolean isBackFacingCamera) {
+        mSwitchCameraButton.setSelected(isBackFacingCamera);
+    }
+
+    @Override
+    public void setVideoPaused(boolean isPaused) {
+        mPauseVideoButton.setSelected(isPaused);
+    }
+
+    @Override
+    public void setMute(boolean value) {
+        if (mMuteButton.isSelected() != value) {
+            mMuteButton.setSelected(value);
+        }
+    }
+
+    private void addToOverflowMenu(int id, View button, PopupMenu menu) {
+        button.setVisibility(View.GONE);
+        menu.getMenu().add(Menu.NONE, id, Menu.NONE, button.getContentDescription());
+        mButtonVisibilityMap.put(id, BUTTON_MENU);
+    }
+
+    private PopupMenu getPopupMenu() {
+        return new PopupMenu(new ContextThemeWrapper(getActivity(), R.style.InCallPopupMenuStyle),
+                mOverflowButton);
+    }
+
+    /**
+     * Iterates through the list of buttons and toggles their visibility depending on the
+     * setting configured by the CallButtonPresenter. If there are more visible buttons than
+     * the allowed maximum, the excess buttons are collapsed into a single overflow menu.
+     */
+    @Override
+    public void updateButtonStates() {
+        View prevVisibleButton = null;
+        int prevVisibleId = -1;
+        PopupMenu menu = null;
+        int visibleCount = 0;
+        for (int i = 0; i < BUTTON_COUNT; i++) {
+            final int visibility = mButtonVisibilityMap.get(i);
+            final View button = getButtonById(i);
+            if (visibility == BUTTON_VISIBLE) {
+                visibleCount++;
+                if (visibleCount <= mButtonMaxVisible) {
+                    button.setVisibility(View.VISIBLE);
+                    prevVisibleButton = button;
+                    prevVisibleId = i;
+                } else {
+                    if (menu == null) {
+                        menu = getPopupMenu();
+                    }
+                    // Collapse the current button into the overflow menu. If is the first visible
+                    // button that exceeds the threshold, also collapse the previous visible button
+                    // so that the total number of visible buttons will never exceed the threshold.
+                    if (prevVisibleButton != null) {
+                        addToOverflowMenu(prevVisibleId, prevVisibleButton, menu);
+                        prevVisibleButton = null;
+                        prevVisibleId = -1;
+                    }
+                    addToOverflowMenu(i, button, menu);
+                }
+            } else if (visibility == BUTTON_HIDDEN) {
+                button.setVisibility(View.GONE);
+            }
+        }
+
+        mOverflowButton.setVisibility(menu != null ? View.VISIBLE : View.GONE);
+        if (menu != null) {
+            mOverflowPopup = menu;
+            mOverflowPopup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+                @Override
+                public boolean onMenuItemClick(MenuItem item) {
+                    final int id = item.getItemId();
+                    getButtonById(id).performClick();
+                    return true;
+                }
+            });
+        }
+    }
+
+    @Override
+    public void setAudio(int mode) {
+        updateAudioButtons(getPresenter().getSupportedAudio());
+        refreshAudioModePopup();
+
+        if (mPrevAudioMode != mode) {
+            updateAudioButtonContentDescription(mode);
+            mPrevAudioMode = mode;
+        }
+    }
+
+    @Override
+    public void setSupportedAudio(int modeMask) {
+        updateAudioButtons(modeMask);
+        refreshAudioModePopup();
+    }
+
+    @Override
+    public boolean onMenuItemClick(MenuItem item) {
+        Log.d(this, "- onMenuItemClick: " + item);
+        Log.d(this, "  id: " + item.getItemId());
+        Log.d(this, "  title: '" + item.getTitle() + "'");
+
+        int mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+        int resId = item.getItemId();
+
+        if (resId == R.id.audio_mode_speaker) {
+            mode = CallAudioState.ROUTE_SPEAKER;
+        } else if (resId == R.id.audio_mode_earpiece || resId == R.id.audio_mode_wired_headset) {
+            // InCallCallAudioState.ROUTE_EARPIECE means either the handset earpiece,
+            // or the wired headset (if connected.)
+            mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+        } else if (resId == R.id.audio_mode_bluetooth) {
+            mode = CallAudioState.ROUTE_BLUETOOTH;
+        } else {
+            Log.e(this, "onMenuItemClick:  unexpected View ID " + item.getItemId()
+                    + " (MenuItem = '" + item + "')");
+        }
+
+        getPresenter().setAudioMode(mode);
+
+        return true;
+    }
+
+    // PopupMenu.OnDismissListener implementation; see showAudioModePopup().
+    // This gets called when the PopupMenu gets dismissed for *any* reason, like
+    // the user tapping outside its bounds, or pressing Back, or selecting one
+    // of the menu items.
+    @Override
+    public void onDismiss(PopupMenu menu) {
+        Log.d(this, "- onDismiss: " + menu);
+        mAudioModePopupVisible = false;
+        updateAudioButtons(getPresenter().getSupportedAudio());
+    }
+
+    /**
+     * Checks for supporting modes.  If bluetooth is supported, it uses the audio
+     * pop up menu.  Otherwise, it toggles the speakerphone.
+     */
+    private void onAudioButtonClicked() {
+        Log.d(this, "onAudioButtonClicked: " +
+                CallAudioState.audioRouteToString(getPresenter().getSupportedAudio()));
+
+        if (isSupported(CallAudioState.ROUTE_BLUETOOTH)) {
+            showAudioModePopup();
+        } else {
+            getPresenter().toggleSpeakerphone();
+        }
+    }
+
+    private void onManageVideoCallConferenceClicked() {
+        Log.d(this, "onManageVideoCallConferenceClicked");
+        InCallPresenter.getInstance().showConferenceCallManager(true);
+    }
+
+    /**
+     * Refreshes the "Audio mode" popup if it's visible.  This is useful
+     * (for example) when a wired headset is plugged or unplugged,
+     * since we need to switch back and forth between the "earpiece"
+     * and "wired headset" items.
+     *
+     * This is safe to call even if the popup is already dismissed, or even if
+     * you never called showAudioModePopup() in the first place.
+     */
+    public void refreshAudioModePopup() {
+        if (mAudioModePopup != null && mAudioModePopupVisible) {
+            // Dismiss the previous one
+            mAudioModePopup.dismiss();  // safe even if already dismissed
+            // And bring up a fresh PopupMenu
+            showAudioModePopup();
+        }
+    }
+
+    /**
+     * Updates the audio button so that the appriopriate visual layers
+     * are visible based on the supported audio formats.
+     */
+    private void updateAudioButtons(int supportedModes) {
+        final boolean bluetoothSupported = isSupported(CallAudioState.ROUTE_BLUETOOTH);
+        final boolean speakerSupported = isSupported(CallAudioState.ROUTE_SPEAKER);
+
+        boolean audioButtonEnabled = false;
+        boolean audioButtonChecked = false;
+        boolean showMoreIndicator = false;
+
+        boolean showBluetoothIcon = false;
+        boolean showSpeakerphoneIcon = false;
+        boolean showHandsetIcon = false;
+
+        boolean showToggleIndicator = false;
+
+        if (bluetoothSupported) {
+            Log.d(this, "updateAudioButtons - popup menu mode");
+
+            audioButtonEnabled = true;
+            audioButtonChecked = true;
+            showMoreIndicator = true;
+
+            // Update desired layers:
+            if (isAudio(CallAudioState.ROUTE_BLUETOOTH)) {
+                showBluetoothIcon = true;
+            } else if (isAudio(CallAudioState.ROUTE_SPEAKER)) {
+                showSpeakerphoneIcon = true;
+            } else {
+                showHandsetIcon = true;
+                // TODO: if a wired headset is plugged in, that takes precedence
+                // over the handset earpiece.  If so, maybe we should show some
+                // sort of "wired headset" icon here instead of the "handset
+                // earpiece" icon.  (Still need an asset for that, though.)
+            }
+
+            // The audio button is NOT a toggle in this state, so set selected to false.
+            mAudioButton.setSelected(false);
+        } else if (speakerSupported) {
+            Log.d(this, "updateAudioButtons - speaker toggle mode");
+
+            audioButtonEnabled = true;
+
+            // The audio button *is* a toggle in this state, and indicated the
+            // current state of the speakerphone.
+            audioButtonChecked = isAudio(CallAudioState.ROUTE_SPEAKER);
+            mAudioButton.setSelected(audioButtonChecked);
+
+            // update desired layers:
+            showToggleIndicator = true;
+            showSpeakerphoneIcon = true;
+        } else {
+            Log.d(this, "updateAudioButtons - disabled...");
+
+            // The audio button is a toggle in this state, but that's mostly
+            // irrelevant since it's always disabled and unchecked.
+            audioButtonEnabled = false;
+            audioButtonChecked = false;
+            mAudioButton.setSelected(false);
+
+            // update desired layers:
+            showToggleIndicator = true;
+            showSpeakerphoneIcon = true;
+        }
+
+        // Finally, update it all!
+
+        Log.v(this, "audioButtonEnabled: " + audioButtonEnabled);
+        Log.v(this, "audioButtonChecked: " + audioButtonChecked);
+        Log.v(this, "showMoreIndicator: " + showMoreIndicator);
+        Log.v(this, "showBluetoothIcon: " + showBluetoothIcon);
+        Log.v(this, "showSpeakerphoneIcon: " + showSpeakerphoneIcon);
+        Log.v(this, "showHandsetIcon: " + showHandsetIcon);
+
+        // Only enable the audio button if the fragment is enabled.
+        mAudioButton.setEnabled(audioButtonEnabled && mIsEnabled);
+        mAudioButton.setChecked(audioButtonChecked);
+
+        final LayerDrawable layers = (LayerDrawable) mAudioButton.getBackground();
+        Log.d(this, "'layers' drawable: " + layers);
+
+        layers.findDrawableByLayerId(R.id.compoundBackgroundItem)
+                .setAlpha(showToggleIndicator ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.moreIndicatorItem)
+                .setAlpha(showMoreIndicator ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.bluetoothItem)
+                .setAlpha(showBluetoothIcon ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.handsetItem)
+                .setAlpha(showHandsetIcon ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.speakerphoneItem)
+                .setAlpha(showSpeakerphoneIcon ? VISIBLE : HIDDEN);
+
+    }
+
+    /**
+     * Update the content description of the audio button.
+     */
+    private void updateAudioButtonContentDescription(int mode) {
+        int stringId = 0;
+
+        // If bluetooth is not supported, the audio buttion will toggle, so use the label "speaker".
+        // Otherwise, use the label of the currently selected audio mode.
+        if (!isSupported(CallAudioState.ROUTE_BLUETOOTH)) {
+            stringId = R.string.audio_mode_speaker;
+        } else {
+            switch (mode) {
+                case CallAudioState.ROUTE_EARPIECE:
+                    stringId = R.string.audio_mode_earpiece;
+                    break;
+                case CallAudioState.ROUTE_BLUETOOTH:
+                    stringId = R.string.audio_mode_bluetooth;
+                    break;
+                case CallAudioState.ROUTE_WIRED_HEADSET:
+                    stringId = R.string.audio_mode_wired_headset;
+                    break;
+                case CallAudioState.ROUTE_SPEAKER:
+                    stringId = R.string.audio_mode_speaker;
+                    break;
+            }
+        }
+
+        if (stringId != 0) {
+            mAudioButton.setContentDescription(getResources().getString(stringId));
+        }
+    }
+
+    private void showAudioModePopup() {
+        Log.d(this, "showAudioPopup()...");
+
+        final ContextThemeWrapper contextWrapper = new ContextThemeWrapper(getActivity(),
+                R.style.InCallPopupMenuStyle);
+        mAudioModePopup = new PopupMenu(contextWrapper, mAudioButton /* anchorView */);
+        mAudioModePopup.getMenuInflater().inflate(R.menu.incall_audio_mode_menu,
+                mAudioModePopup.getMenu());
+        mAudioModePopup.setOnMenuItemClickListener(this);
+        mAudioModePopup.setOnDismissListener(this);
+
+        final Menu menu = mAudioModePopup.getMenu();
+
+        // TODO: Still need to have the "currently active" audio mode come
+        // up pre-selected (or focused?) with a blue highlight.  Still
+        // need exact visual design, and possibly framework support for this.
+        // See comments below for the exact logic.
+
+        final MenuItem speakerItem = menu.findItem(R.id.audio_mode_speaker);
+        speakerItem.setEnabled(isSupported(CallAudioState.ROUTE_SPEAKER));
+        // TODO: Show speakerItem as initially "selected" if
+        // speaker is on.
+
+        // We display *either* "earpiece" or "wired headset", never both,
+        // depending on whether a wired headset is physically plugged in.
+        final MenuItem earpieceItem = menu.findItem(R.id.audio_mode_earpiece);
+        final MenuItem wiredHeadsetItem = menu.findItem(R.id.audio_mode_wired_headset);
+
+        final boolean usingHeadset = isSupported(CallAudioState.ROUTE_WIRED_HEADSET);
+        earpieceItem.setVisible(!usingHeadset);
+        earpieceItem.setEnabled(!usingHeadset);
+        wiredHeadsetItem.setVisible(usingHeadset);
+        wiredHeadsetItem.setEnabled(usingHeadset);
+        // TODO: Show the above item (either earpieceItem or wiredHeadsetItem)
+        // as initially "selected" if speakerOn and
+        // bluetoothIndicatorOn are both false.
+
+        final MenuItem bluetoothItem = menu.findItem(R.id.audio_mode_bluetooth);
+        bluetoothItem.setEnabled(isSupported(CallAudioState.ROUTE_BLUETOOTH));
+        // TODO: Show bluetoothItem as initially "selected" if
+        // bluetoothIndicatorOn is true.
+
+        mAudioModePopup.show();
+
+        // Unfortunately we need to manually keep track of the popup menu's
+        // visiblity, since PopupMenu doesn't have an isShowing() method like
+        // Dialogs do.
+        mAudioModePopupVisible = true;
+    }
+
+    private boolean isSupported(int mode) {
+        return (mode == (getPresenter().getSupportedAudio() & mode));
+    }
+
+    private boolean isAudio(int mode) {
+        return (mode == getPresenter().getAudioMode());
+    }
+
+    @Override
+    public void displayDialpad(boolean value, boolean animate) {
+        if (getActivity() != null && getActivity() instanceof InCallActivity) {
+            boolean changed = ((InCallActivity) getActivity()).showDialpadFragment(value, animate);
+            if (changed) {
+                mShowDialpadButton.setSelected(value);
+            }
+        }
+    }
+
+    @Override
+    public boolean isDialpadVisible() {
+        if (getActivity() != null && getActivity() instanceof InCallActivity) {
+            return ((InCallActivity) getActivity()).isDialpadVisible();
+        }
+        return false;
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
new file mode 100644
index 0000000..e8c2d4b
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -0,0 +1,483 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_ADD_CALL;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DIALPAD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DOWNGRADE_TO_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_HOLD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MERGE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MUTE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_PAUSE_VIDEO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWAP;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWITCH_CAMERA;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_UPGRADE_TO_VIDEO;
+
+import android.content.Context;
+import android.os.Build;
+import android.os.Bundle;
+import android.telecom.CallAudioState;
+import android.telecom.InCallService.VideoCall;
+import android.telecom.VideoProfile;
+
+import com.android.contacts.common.compat.CallSdkCompat;
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.dialer.compat.UserManagerCompat;
+import com.android.incallui.AudioModeProvider.AudioModeListener;
+import com.android.incallui.InCallCameraManager.Listener;
+import com.android.incallui.InCallPresenter.CanAddCallListener;
+import com.android.incallui.InCallPresenter.InCallDetailsListener;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
+
+/**
+ * Logic for call buttons.
+ */
+public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButtonUi>
+        implements InCallStateListener, AudioModeListener, IncomingCallListener,
+        InCallDetailsListener, CanAddCallListener, Listener {
+
+    private static final String KEY_AUTOMATICALLY_MUTED = "incall_key_automatically_muted";
+    private static final String KEY_PREVIOUS_MUTE_STATE = "incall_key_previous_mute_state";
+
+    private Call mCall;
+    private boolean mAutomaticallyMuted = false;
+    private boolean mPreviousMuteState = false;
+
+    public CallButtonPresenter() {
+    }
+
+    @Override
+    public void onUiReady(CallButtonUi ui) {
+        super.onUiReady(ui);
+
+        AudioModeProvider.getInstance().addListener(this);
+
+        // register for call state changes last
+        final InCallPresenter inCallPresenter = InCallPresenter.getInstance();
+        inCallPresenter.addListener(this);
+        inCallPresenter.addIncomingCallListener(this);
+        inCallPresenter.addDetailsListener(this);
+        inCallPresenter.addCanAddCallListener(this);
+        inCallPresenter.getInCallCameraManager().addCameraSelectionListener(this);
+
+        // Update the buttons state immediately for the current call
+        onStateChange(InCallState.NO_CALLS, inCallPresenter.getInCallState(),
+                CallList.getInstance());
+    }
+
+    @Override
+    public void onUiUnready(CallButtonUi ui) {
+        super.onUiUnready(ui);
+
+        InCallPresenter.getInstance().removeListener(this);
+        AudioModeProvider.getInstance().removeListener(this);
+        InCallPresenter.getInstance().removeIncomingCallListener(this);
+        InCallPresenter.getInstance().removeDetailsListener(this);
+        InCallPresenter.getInstance().getInCallCameraManager().removeCameraSelectionListener(this);
+        InCallPresenter.getInstance().removeCanAddCallListener(this);
+    }
+
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        CallButtonUi ui = getUi();
+
+        if (newState == InCallState.OUTGOING) {
+            mCall = callList.getOutgoingCall();
+        } else if (newState == InCallState.INCALL) {
+            mCall = callList.getActiveOrBackgroundCall();
+
+            // When connected to voice mail, automatically shows the dialpad.
+            // (On previous releases we showed it when in-call shows up, before waiting for
+            // OUTGOING.  We may want to do that once we start showing "Voice mail" label on
+            // the dialpad too.)
+            if (ui != null) {
+                if (oldState == InCallState.OUTGOING && mCall != null) {
+                    if (CallerInfoUtils.isVoiceMailNumber(ui.getContext(), mCall)) {
+                        ui.displayDialpad(true /* show */, true /* animate */);
+                    }
+                }
+            }
+        } else if (newState == InCallState.INCOMING) {
+            if (ui != null) {
+                ui.displayDialpad(false /* show */, true /* animate */);
+            }
+            mCall = callList.getIncomingCall();
+        } else {
+            mCall = null;
+        }
+        updateUi(newState, mCall);
+    }
+
+    /**
+     * Updates the user interface in response to a change in the details of a call.
+     * Currently handles changes to the call buttons in response to a change in the details for a
+     * call.  This is important to ensure changes to the active call are reflected in the available
+     * buttons.
+     *
+     * @param call The active call.
+     * @param details The call details.
+     */
+    @Override
+    public void onDetailsChanged(Call call, android.telecom.Call.Details details) {
+        // Only update if the changes are for the currently active call
+        if (getUi() != null && call != null && call.equals(mCall)) {
+            updateButtonsState(call);
+        }
+    }
+
+    @Override
+    public void onIncomingCall(InCallState oldState, InCallState newState, Call call) {
+        onStateChange(oldState, newState, CallList.getInstance());
+    }
+
+    @Override
+    public void onCanAddCallChanged(boolean canAddCall) {
+        if (getUi() != null && mCall != null) {
+            updateButtonsState(mCall);
+        }
+    }
+
+    @Override
+    public void onAudioMode(int mode) {
+        if (getUi() != null) {
+            getUi().setAudio(mode);
+        }
+    }
+
+    @Override
+    public void onSupportedAudioMode(int mask) {
+        if (getUi() != null) {
+            getUi().setSupportedAudio(mask);
+        }
+    }
+
+    @Override
+    public void onMute(boolean muted) {
+        if (getUi() != null && !mAutomaticallyMuted) {
+            getUi().setMute(muted);
+        }
+    }
+
+    public int getAudioMode() {
+        return AudioModeProvider.getInstance().getAudioMode();
+    }
+
+    public int getSupportedAudio() {
+        return AudioModeProvider.getInstance().getSupportedModes();
+    }
+
+    public void setAudioMode(int mode) {
+
+        // TODO: Set a intermediate state in this presenter until we get
+        // an update for onAudioMode().  This will make UI response immediate
+        // if it turns out to be slow
+
+        Log.d(this, "Sending new Audio Mode: " + CallAudioState.audioRouteToString(mode));
+        TelecomAdapter.getInstance().setAudioRoute(mode);
+    }
+
+    /**
+     * Function assumes that bluetooth is not supported.
+     */
+    public void toggleSpeakerphone() {
+        // this function should not be called if bluetooth is available
+        if (0 != (CallAudioState.ROUTE_BLUETOOTH & getSupportedAudio())) {
+
+            // It's clear the UI is wrong, so update the supported mode once again.
+            Log.e(this, "toggling speakerphone not allowed when bluetooth supported.");
+            getUi().setSupportedAudio(getSupportedAudio());
+            return;
+        }
+
+        int newMode = CallAudioState.ROUTE_SPEAKER;
+
+        // if speakerphone is already on, change to wired/earpiece
+        if (getAudioMode() == CallAudioState.ROUTE_SPEAKER) {
+            newMode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+        }
+
+        setAudioMode(newMode);
+    }
+
+    public void muteClicked(boolean checked) {
+        Log.d(this, "turning on mute: " + checked);
+        TelecomAdapter.getInstance().mute(checked);
+    }
+
+    public void holdClicked(boolean checked) {
+        if (mCall == null) {
+            return;
+        }
+        if (checked) {
+            Log.i(this, "Putting the call on hold: " + mCall);
+            TelecomAdapter.getInstance().holdCall(mCall.getId());
+        } else {
+            Log.i(this, "Removing the call from hold: " + mCall);
+            TelecomAdapter.getInstance().unholdCall(mCall.getId());
+        }
+    }
+
+    public void swapClicked() {
+        if (mCall == null) {
+            return;
+        }
+
+        Log.i(this, "Swapping the call: " + mCall);
+        TelecomAdapter.getInstance().swap(mCall.getId());
+    }
+
+    public void mergeClicked() {
+        TelecomAdapter.getInstance().merge(mCall.getId());
+    }
+
+    public void addCallClicked() {
+        // Automatically mute the current call
+        mAutomaticallyMuted = true;
+        mPreviousMuteState = AudioModeProvider.getInstance().getMute();
+        // Simulate a click on the mute button
+        muteClicked(true);
+        TelecomAdapter.getInstance().addCall();
+    }
+
+    public void changeToVoiceClicked() {
+        VideoCall videoCall = mCall.getVideoCall();
+        if (videoCall == null) {
+            return;
+        }
+
+        VideoProfile videoProfile = new VideoProfile(VideoProfile.STATE_AUDIO_ONLY);
+        videoCall.sendSessionModifyRequest(videoProfile);
+    }
+
+    public void showDialpadClicked(boolean checked) {
+        Log.v(this, "Show dialpad " + String.valueOf(checked));
+        getUi().displayDialpad(checked /* show */, true /* animate */);
+    }
+
+    public void changeToVideoClicked() {
+        VideoCall videoCall = mCall.getVideoCall();
+        if (videoCall == null) {
+            return;
+        }
+        int currVideoState = mCall.getVideoState();
+        int currUnpausedVideoState = VideoUtils.getUnPausedVideoState(currVideoState);
+        currUnpausedVideoState |= VideoProfile.STATE_BIDIRECTIONAL;
+
+        VideoProfile videoProfile = new VideoProfile(currUnpausedVideoState);
+        videoCall.sendSessionModifyRequest(videoProfile);
+        mCall.setSessionModificationState(Call.SessionModificationState.WAITING_FOR_RESPONSE);
+    }
+
+    /**
+     * Switches the camera between the front-facing and back-facing camera.
+     * @param useFrontFacingCamera True if we should switch to using the front-facing camera, or
+     *     false if we should switch to using the back-facing camera.
+     */
+    public void switchCameraClicked(boolean useFrontFacingCamera) {
+        InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
+        cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
+
+        VideoCall videoCall = mCall.getVideoCall();
+        if (videoCall == null) {
+            return;
+        }
+
+        String cameraId = cameraManager.getActiveCameraId();
+        if (cameraId != null) {
+            final int cameraDir = cameraManager.isUsingFrontFacingCamera()
+                    ? Call.VideoSettings.CAMERA_DIRECTION_FRONT_FACING
+                    : Call.VideoSettings.CAMERA_DIRECTION_BACK_FACING;
+            mCall.getVideoSettings().setCameraDir(cameraDir);
+            videoCall.setCamera(cameraId);
+            videoCall.requestCameraCapabilities();
+        }
+    }
+
+
+    /**
+     * Stop or start client's video transmission.
+     * @param pause True if pausing the local user's video, or false if starting the local user's
+     *    video.
+     */
+    public void pauseVideoClicked(boolean pause) {
+        VideoCall videoCall = mCall.getVideoCall();
+        if (videoCall == null) {
+            return;
+        }
+
+        if (pause) {
+            videoCall.setCamera(null);
+            VideoProfile videoProfile = new VideoProfile(
+                    mCall.getVideoState() & ~VideoProfile.STATE_TX_ENABLED);
+            videoCall.sendSessionModifyRequest(videoProfile);
+        } else {
+            InCallCameraManager cameraManager = InCallPresenter.getInstance().
+                    getInCallCameraManager();
+            videoCall.setCamera(cameraManager.getActiveCameraId());
+            VideoProfile videoProfile = new VideoProfile(
+                    mCall.getVideoState() | VideoProfile.STATE_TX_ENABLED);
+            videoCall.sendSessionModifyRequest(videoProfile);
+            mCall.setSessionModificationState(Call.SessionModificationState.WAITING_FOR_RESPONSE);
+        }
+        getUi().setVideoPaused(pause);
+    }
+
+    private void updateUi(InCallState state, Call call) {
+        Log.d(this, "Updating call UI for call: ", call);
+
+        final CallButtonUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        final boolean isEnabled =
+                state.isConnectingOrConnected() &&!state.isIncoming() && call != null;
+        ui.setEnabled(isEnabled);
+
+        if (call == null) {
+            return;
+        }
+
+        updateButtonsState(call);
+    }
+
+    /**
+     * Updates the buttons applicable for the UI.
+     *
+     * @param call The active call.
+     */
+    private void updateButtonsState(Call call) {
+        Log.v(this, "updateButtonsState");
+        final CallButtonUi ui = getUi();
+
+        final boolean isVideo = VideoUtils.isVideoCall(call);
+
+        // Common functionality (audio, hold, etc).
+        // Show either HOLD or SWAP, but not both. If neither HOLD or SWAP is available:
+        //     (1) If the device normally can hold, show HOLD in a disabled state.
+        //     (2) If the device doesn't have the concept of hold/swap, remove the button.
+        final boolean showSwap = call.can(
+                android.telecom.Call.Details.CAPABILITY_SWAP_CONFERENCE);
+        final boolean showHold = !showSwap
+                && call.can(android.telecom.Call.Details.CAPABILITY_SUPPORT_HOLD)
+                && call.can(android.telecom.Call.Details.CAPABILITY_HOLD);
+        final boolean isCallOnHold = call.getState() == Call.State.ONHOLD;
+
+        final boolean showAddCall = TelecomAdapter.getInstance().canAddCall()
+                && UserManagerCompat.isUserUnlocked(ui.getContext());
+        final boolean showMerge = call.can(
+                android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
+        final boolean showUpgradeToVideo = !isVideo && hasVideoCallCapabilities(call);
+        final boolean showDowngradeToAudio = isVideo && isDowngradeToAudioSupported(call);
+        final boolean showMute = call.can(android.telecom.Call.Details.CAPABILITY_MUTE);
+
+        ui.showButton(BUTTON_AUDIO, true);
+        ui.showButton(BUTTON_SWAP, showSwap);
+        ui.showButton(BUTTON_HOLD, showHold);
+        ui.setHold(isCallOnHold);
+        ui.showButton(BUTTON_MUTE, showMute);
+        ui.showButton(BUTTON_ADD_CALL, showAddCall);
+        ui.showButton(BUTTON_UPGRADE_TO_VIDEO, showUpgradeToVideo);
+        ui.showButton(BUTTON_DOWNGRADE_TO_AUDIO, showDowngradeToAudio);
+        ui.showButton(BUTTON_SWITCH_CAMERA, isVideo);
+        ui.showButton(BUTTON_PAUSE_VIDEO, isVideo);
+        ui.showButton(BUTTON_DIALPAD, true);
+        ui.showButton(BUTTON_MERGE, showMerge);
+
+        ui.updateButtonStates();
+    }
+
+    private boolean hasVideoCallCapabilities(Call call) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX)
+                    && call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_REMOTE_RX);
+        }
+        // In L, this single flag represents both video transmitting and receiving capabilities
+        return call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX);
+    }
+
+    /**
+     * Determines if downgrading from a video call to an audio-only call is supported.  In order to
+     * support downgrade to audio, the SDK version must be >= N and the call should NOT have the
+     * {@link android.telecom.Call.Details#CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO}.
+     * @param call The call.
+     * @return {@code true} if downgrading to an audio-only call from a video call is supported.
+     */
+    private boolean isDowngradeToAudioSupported(Call call) {
+        return !call.can(CallSdkCompat.Details.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO);
+    }
+
+    public void refreshMuteState() {
+        // Restore the previous mute state
+        if (mAutomaticallyMuted &&
+                AudioModeProvider.getInstance().getMute() != mPreviousMuteState) {
+            if (getUi() == null) {
+                return;
+            }
+            muteClicked(mPreviousMuteState);
+        }
+        mAutomaticallyMuted = false;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_AUTOMATICALLY_MUTED, mAutomaticallyMuted);
+        outState.putBoolean(KEY_PREVIOUS_MUTE_STATE, mPreviousMuteState);
+    }
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState) {
+        mAutomaticallyMuted =
+                savedInstanceState.getBoolean(KEY_AUTOMATICALLY_MUTED, mAutomaticallyMuted);
+        mPreviousMuteState =
+                savedInstanceState.getBoolean(KEY_PREVIOUS_MUTE_STATE, mPreviousMuteState);
+        super.onRestoreInstanceState(savedInstanceState);
+    }
+
+    public interface CallButtonUi extends Ui {
+        void showButton(int buttonId, boolean show);
+        void enableButton(int buttonId, boolean enable);
+        void setEnabled(boolean on);
+        void setMute(boolean on);
+        void setHold(boolean on);
+        void setCameraSwitched(boolean isBackFacingCamera);
+        void setVideoPaused(boolean isPaused);
+        void setAudio(int mode);
+        void setSupportedAudio(int mask);
+        void displayDialpad(boolean on, boolean animate);
+        boolean isDialpadVisible();
+
+        /**
+         * Once showButton() has been called on each of the individual buttons in the UI, call
+         * this to configure the overflow menu appropriately.
+         */
+        void updateButtonStates();
+        Context getContext();
+    }
+
+    @Override
+    public void onActiveCameraSelectionChanged(boolean isUsingFrontFacingCamera) {
+        if (getUi() == null) {
+            return;
+        }
+        getUi().setCameraSwitched(!isUsingFrontFacingCamera);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
new file mode 100644
index 0000000..9ba4a2b
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -0,0 +1,1474 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Trace;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
+import android.telecom.DisconnectCause;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnLayoutChangeListener;
+import android.view.ViewGroup;
+import android.view.ViewPropertyAnimator;
+import android.view.ViewTreeObserver;
+import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contacts.common.widget.FloatingActionButtonController;
+import com.android.dialer.R;
+import com.android.phone.common.animation.AnimUtils;
+
+import java.util.List;
+
+/**
+ * Fragment for call card.
+ */
+public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPresenter.CallCardUi>
+        implements CallCardPresenter.CallCardUi {
+    private static final String TAG = "CallCardFragment";
+
+    /**
+     * Internal class which represents the call state label which is to be applied.
+     */
+    private class CallStateLabel {
+        private CharSequence mCallStateLabel;
+        private boolean mIsAutoDismissing;
+
+        public CallStateLabel(CharSequence callStateLabel, boolean isAutoDismissing) {
+            mCallStateLabel = callStateLabel;
+            mIsAutoDismissing = isAutoDismissing;
+        }
+
+        public CharSequence getCallStateLabel() {
+            return mCallStateLabel;
+        }
+
+        /**
+         * Determines if the call state label should auto-dismiss.
+         *
+         * @return {@code true} if the call state label should auto-dismiss.
+         */
+        public boolean isAutoDismissing() {
+            return mIsAutoDismissing;
+        }
+    };
+
+    private static final String IS_DIALPAD_SHOWING_KEY = "is_dialpad_showing";
+
+    /**
+     * The duration of time (in milliseconds) a call state label should remain visible before
+     * resetting to its previous value.
+     */
+    private static final long CALL_STATE_LABEL_RESET_DELAY_MS = 3000;
+    /**
+     * Amount of time to wait before sending an announcement via the accessibility manager.
+     * When the call state changes to an outgoing or incoming state for the first time, the
+     * UI can often be changing due to call updates or contact lookup. This allows the UI
+     * to settle to a stable state to ensure that the correct information is announced.
+     */
+    private static final long ACCESSIBILITY_ANNOUNCEMENT_DELAY_MS = 500;
+
+    private AnimatorSet mAnimatorSet;
+    private int mShrinkAnimationDuration;
+    private int mFabNormalDiameter;
+    private int mFabSmallDiameter;
+    private boolean mIsLandscape;
+    private boolean mHasLargePhoto;
+    private boolean mIsDialpadShowing;
+
+    // Primary caller info
+    private TextView mPhoneNumber;
+    private TextView mNumberLabel;
+    private TextView mPrimaryName;
+    private View mCallStateButton;
+    private ImageView mCallStateIcon;
+    private ImageView mCallStateVideoCallIcon;
+    private TextView mCallStateLabel;
+    private TextView mCallTypeLabel;
+    private ImageView mHdAudioIcon;
+    private ImageView mForwardIcon;
+    private View mCallNumberAndLabel;
+    private TextView mElapsedTime;
+    private Drawable mPrimaryPhotoDrawable;
+    private TextView mCallSubject;
+    private ImageView mWorkProfileIcon;
+
+    // Container view that houses the entire primary call card, including the call buttons
+    private View mPrimaryCallCardContainer;
+    // Container view that houses the primary call information
+    private ViewGroup mPrimaryCallInfo;
+    private View mCallButtonsContainer;
+    private ImageView mPhotoSmall;
+
+    // Secondary caller info
+    private View mSecondaryCallInfo;
+    private TextView mSecondaryCallName;
+    private View mSecondaryCallProviderInfo;
+    private TextView mSecondaryCallProviderLabel;
+    private View mSecondaryCallConferenceCallIcon;
+    private View mSecondaryCallVideoCallIcon;
+    private View mProgressSpinner;
+
+    // Call card content
+    private View mCallCardContent;
+    private ImageView mPhotoLarge;
+    private View mContactContext;
+    private TextView mContactContextTitle;
+    private ListView mContactContextListView;
+    private LinearLayout mContactContextListHeaders;
+
+    private View mManageConferenceCallButton;
+
+    // Dark number info bar
+    private TextView mInCallMessageLabel;
+
+    private FloatingActionButtonController mFloatingActionButtonController;
+    private View mFloatingActionButtonContainer;
+    private ImageButton mFloatingActionButton;
+    private int mFloatingActionButtonVerticalOffset;
+
+    private float mTranslationOffset;
+    private Animation mPulseAnimation;
+
+    private int mVideoAnimationDuration;
+    // Whether or not the call card is currently in the process of an animation
+    private boolean mIsAnimating;
+
+    private MaterialPalette mCurrentThemeColors;
+
+    /**
+     * Call state label to set when an auto-dismissing call state label is dismissed.
+     */
+    private CharSequence mPostResetCallStateLabel;
+    private boolean mCallStateLabelResetPending = false;
+    private Handler mHandler;
+
+    /**
+     * Determines if secondary call info is populated in the secondary call info UI.
+     */
+    private boolean mHasSecondaryCallInfo = false;
+
+    @Override
+    public CallCardPresenter.CallCardUi getUi() {
+        return this;
+    }
+
+    @Override
+    public CallCardPresenter createPresenter() {
+        return new CallCardPresenter();
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mHandler = new Handler(Looper.getMainLooper());
+        mShrinkAnimationDuration = getResources().getInteger(R.integer.shrink_animation_duration);
+        mVideoAnimationDuration = getResources().getInteger(R.integer.video_animation_duration);
+        mFloatingActionButtonVerticalOffset = getResources().getDimensionPixelOffset(
+                R.dimen.floating_action_button_vertical_offset);
+        mFabNormalDiameter = getResources().getDimensionPixelOffset(
+                R.dimen.end_call_floating_action_button_diameter);
+        mFabSmallDiameter = getResources().getDimensionPixelOffset(
+                R.dimen.end_call_floating_action_button_small_diameter);
+
+        if (savedInstanceState != null) {
+            mIsDialpadShowing = savedInstanceState.getBoolean(IS_DIALPAD_SHOWING_KEY, false);
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        final CallList calls = CallList.getInstance();
+        final Call call = calls.getFirstCall();
+        getPresenter().init(getActivity(), call);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putBoolean(IS_DIALPAD_SHOWING_KEY, mIsDialpadShowing);
+        super.onSaveInstanceState(outState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        Trace.beginSection(TAG + " onCreate");
+        mTranslationOffset =
+                getResources().getDimensionPixelSize(R.dimen.call_card_anim_translate_y_offset);
+        final View view = inflater.inflate(R.layout.call_card_fragment, container, false);
+        Trace.endSection();
+        return view;
+    }
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        mPulseAnimation =
+                AnimationUtils.loadAnimation(view.getContext(), R.anim.call_status_pulse);
+
+        mPhoneNumber = (TextView) view.findViewById(R.id.phoneNumber);
+        mPrimaryName = (TextView) view.findViewById(R.id.name);
+        mNumberLabel = (TextView) view.findViewById(R.id.label);
+        mSecondaryCallInfo = view.findViewById(R.id.secondary_call_info);
+        mSecondaryCallProviderInfo = view.findViewById(R.id.secondary_call_provider_info);
+        mCallCardContent = view.findViewById(R.id.call_card_content);
+        mPhotoLarge = (ImageView) view.findViewById(R.id.photoLarge);
+        mPhotoLarge.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getPresenter().onContactPhotoClick();
+            }
+        });
+
+        mContactContext = view.findViewById(R.id.contact_context);
+        mContactContextTitle = (TextView) view.findViewById(R.id.contactContextTitle);
+        mContactContextListView = (ListView) view.findViewById(R.id.contactContextInfo);
+        // This layout stores all the list header layouts so they can be easily removed.
+        mContactContextListHeaders = new LinearLayout(getView().getContext());
+        mContactContextListView.addHeaderView(mContactContextListHeaders);
+
+        mCallStateIcon = (ImageView) view.findViewById(R.id.callStateIcon);
+        mCallStateVideoCallIcon = (ImageView) view.findViewById(R.id.videoCallIcon);
+        mWorkProfileIcon = (ImageView) view.findViewById(R.id.workProfileIcon);
+        mCallStateLabel = (TextView) view.findViewById(R.id.callStateLabel);
+        mHdAudioIcon = (ImageView) view.findViewById(R.id.hdAudioIcon);
+        mForwardIcon = (ImageView) view.findViewById(R.id.forwardIcon);
+        mCallNumberAndLabel = view.findViewById(R.id.labelAndNumber);
+        mCallTypeLabel = (TextView) view.findViewById(R.id.callTypeLabel);
+        mElapsedTime = (TextView) view.findViewById(R.id.elapsedTime);
+        mPrimaryCallCardContainer = view.findViewById(R.id.primary_call_info_container);
+        mPrimaryCallInfo = (ViewGroup) view.findViewById(R.id.primary_call_banner);
+        mCallButtonsContainer = view.findViewById(R.id.callButtonFragment);
+        mPhotoSmall = (ImageView) view.findViewById(R.id.photoSmall);
+        mPhotoSmall.setVisibility(View.GONE);
+        mInCallMessageLabel = (TextView) view.findViewById(R.id.connectionServiceMessage);
+        mProgressSpinner = view.findViewById(R.id.progressSpinner);
+
+        mFloatingActionButtonContainer = view.findViewById(
+                R.id.floating_end_call_action_button_container);
+        mFloatingActionButton = (ImageButton) view.findViewById(
+                R.id.floating_end_call_action_button);
+        mFloatingActionButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getPresenter().endCallClicked();
+            }
+        });
+        mFloatingActionButtonController = new FloatingActionButtonController(getActivity(),
+                mFloatingActionButtonContainer, mFloatingActionButton);
+
+        mSecondaryCallInfo.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getPresenter().secondaryInfoClicked();
+                updateFabPositionForSecondaryCallInfo();
+            }
+        });
+
+        mCallStateButton = view.findViewById(R.id.callStateButton);
+        mCallStateButton.setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
+                getPresenter().onCallStateButtonTouched();
+                return false;
+            }
+        });
+
+        mManageConferenceCallButton = view.findViewById(R.id.manage_conference_call_button);
+        mManageConferenceCallButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                InCallActivity activity = (InCallActivity) getActivity();
+                activity.showConferenceFragment(true);
+            }
+        });
+
+        mPrimaryName.setElegantTextHeight(false);
+        mCallStateLabel.setElegantTextHeight(false);
+        mCallSubject = (TextView) view.findViewById(R.id.callSubject);
+    }
+
+    @Override
+    public void setVisible(boolean on) {
+        if (on) {
+            getView().setVisibility(View.VISIBLE);
+        } else {
+            getView().setVisibility(View.INVISIBLE);
+        }
+    }
+
+    /**
+     * Hides or shows the progress spinner.
+     *
+     * @param visible {@code True} if the progress spinner should be visible.
+     */
+    @Override
+    public void setProgressSpinnerVisible(boolean visible) {
+        mProgressSpinner.setVisibility(visible ? View.VISIBLE : View.GONE);
+    }
+
+    @Override
+    public void setContactContextTitle(View headerView) {
+        mContactContextListHeaders.removeAllViews();
+        mContactContextListHeaders.addView(headerView);
+    }
+
+    @Override
+    public void setContactContextContent(ListAdapter listAdapter) {
+        mContactContextListView.setAdapter(listAdapter);
+    }
+
+    @Override
+    public void showContactContext(boolean show) {
+        showImageView(mPhotoLarge, !show);
+        showImageView(mPhotoSmall, show);
+        mPrimaryCallCardContainer.setElevation(
+                show ? 0 : getResources().getDimension(R.dimen.primary_call_elevation));
+        mContactContext.setVisibility(show ? View.VISIBLE : View.GONE);
+    }
+
+    /**
+     * Sets the visibility of the primary call card.
+     * Ensures that when the primary call card is hidden, the video surface slides over to fill the
+     * entire screen.
+     *
+     * @param visible {@code True} if the primary call card should be visible.
+     */
+    @Override
+    public void setCallCardVisible(final boolean visible) {
+        Log.v(this, "setCallCardVisible : isVisible = " + visible);
+        // When animating the hide/show of the views in a landscape layout, we need to take into
+        // account whether we are in a left-to-right locale or a right-to-left locale and adjust
+        // the animations accordingly.
+        final boolean isLayoutRtl = InCallPresenter.isRtl();
+
+        // Retrieve here since at fragment creation time the incoming video view is not inflated.
+        final View videoView = getView().findViewById(R.id.incomingVideo);
+        if (videoView == null) {
+            return;
+        }
+
+        // Determine how much space there is below or to the side of the call card.
+        final float spaceBesideCallCard = getSpaceBesideCallCard();
+
+        // We need to translate the video surface, but we need to know its position after the layout
+        // has occurred so use a {@code ViewTreeObserver}.
+        final ViewTreeObserver observer = getView().getViewTreeObserver();
+        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                // We don't want to continue getting called.
+                getView().getViewTreeObserver().removeOnPreDrawListener(this);
+
+                float videoViewTranslation = 0f;
+
+                // Translate the call card to its pre-animation state.
+                if (!mIsLandscape) {
+                    mPrimaryCallCardContainer.setTranslationY(visible ?
+                            -mPrimaryCallCardContainer.getHeight() : 0);
+
+                    ViewGroup.LayoutParams p = videoView.getLayoutParams();
+                    videoViewTranslation = p.height / 2 - spaceBesideCallCard / 2;
+                }
+
+                // Perform animation of video view.
+                ViewPropertyAnimator videoViewAnimator = videoView.animate()
+                        .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                        .setDuration(mVideoAnimationDuration);
+                if (mIsLandscape) {
+                    videoViewAnimator
+                            .translationX(visible ? videoViewTranslation : 0);
+                } else {
+                    videoViewAnimator
+                            .translationY(visible ? videoViewTranslation : 0);
+                }
+                videoViewAnimator.start();
+
+                // Animate the call card sliding.
+                ViewPropertyAnimator callCardAnimator = mPrimaryCallCardContainer.animate()
+                        .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                        .setDuration(mVideoAnimationDuration)
+                        .setListener(new AnimatorListenerAdapter() {
+                            @Override
+                            public void onAnimationEnd(Animator animation) {
+                                super.onAnimationEnd(animation);
+                                if (!visible) {
+                                    mPrimaryCallCardContainer.setVisibility(View.GONE);
+                                }
+                            }
+
+                            @Override
+                            public void onAnimationStart(Animator animation) {
+                                super.onAnimationStart(animation);
+                                if (visible) {
+                                    mPrimaryCallCardContainer.setVisibility(View.VISIBLE);
+                                }
+                            }
+                        });
+
+                if (mIsLandscape) {
+                    float translationX = mPrimaryCallCardContainer.getWidth();
+                    translationX *= isLayoutRtl ? 1 : -1;
+                    callCardAnimator
+                            .translationX(visible ? 0 : translationX)
+                            .start();
+                } else {
+                    callCardAnimator
+                            .translationY(visible ? 0 : -mPrimaryCallCardContainer.getHeight())
+                            .start();
+                }
+
+                return true;
+            }
+        });
+    }
+
+    /**
+     * Determines the amount of space below the call card for portrait layouts), or beside the
+     * call card for landscape layouts.
+     *
+     * @return The amount of space below or beside the call card.
+     */
+    public float getSpaceBesideCallCard() {
+        if (mIsLandscape) {
+            return getView().getWidth() - mPrimaryCallCardContainer.getWidth();
+        } else {
+            final int callCardHeight;
+            // Retrieve the actual height of the call card, independent of whether or not the
+            // outgoing call animation is in progress. The animation does not run in landscape mode
+            // so this only needs to be done for portrait.
+            if (mPrimaryCallCardContainer.getTag(R.id.view_tag_callcard_actual_height) != null) {
+                callCardHeight = (int) mPrimaryCallCardContainer.getTag(
+                        R.id.view_tag_callcard_actual_height);
+            } else {
+                callCardHeight = mPrimaryCallCardContainer.getHeight();
+            }
+            return getView().getHeight() - callCardHeight;
+        }
+    }
+
+    @Override
+    public void setPrimaryName(String name, boolean nameIsNumber) {
+        if (TextUtils.isEmpty(name)) {
+            mPrimaryName.setText(null);
+        } else {
+            mPrimaryName.setText(nameIsNumber
+                    ? PhoneNumberUtilsCompat.createTtsSpannable(name)
+                    : name);
+
+            // Set direction of the name field
+            int nameDirection = View.TEXT_DIRECTION_INHERIT;
+            if (nameIsNumber) {
+                nameDirection = View.TEXT_DIRECTION_LTR;
+            }
+            mPrimaryName.setTextDirection(nameDirection);
+        }
+    }
+
+    /**
+     * Sets the primary image for the contact photo.
+     *
+     * @param image The drawable to set.
+     * @param isVisible Whether the contact photo should be visible after being set.
+     */
+    @Override
+    public void setPrimaryImage(Drawable image, boolean isVisible) {
+        if (image != null) {
+            setDrawableToImageViews(image);
+            showImageView(mPhotoLarge, isVisible);
+        }
+    }
+
+    @Override
+    public void setPrimaryPhoneNumber(String number) {
+        // Set the number
+        if (TextUtils.isEmpty(number)) {
+            mPhoneNumber.setText(null);
+            mPhoneNumber.setVisibility(View.GONE);
+        } else {
+            mPhoneNumber.setText(PhoneNumberUtilsCompat.createTtsSpannable(number));
+            mPhoneNumber.setVisibility(View.VISIBLE);
+            mPhoneNumber.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
+    }
+
+    @Override
+    public void setPrimaryLabel(String label) {
+        if (!TextUtils.isEmpty(label)) {
+            mNumberLabel.setText(label);
+            mNumberLabel.setVisibility(View.VISIBLE);
+        } else {
+            mNumberLabel.setVisibility(View.GONE);
+        }
+
+    }
+
+    /**
+     * Sets the primary caller information.
+     *
+     * @param number The caller phone number.
+     * @param name The caller name.
+     * @param nameIsNumber {@code true} if the name should be shown in place of the phone number.
+     * @param label The label.
+     * @param photo The contact photo drawable.
+     * @param isSipCall {@code true} if this is a SIP call.
+     * @param isContactPhotoShown {@code true} if the contact photo should be shown (it will be
+     *      updated even if it is not shown).
+     * @param isWorkCall Whether the call is placed through a work phone account or caller is a work
+              contact.
+     */
+    @Override
+    public void setPrimary(String number, String name, boolean nameIsNumber, String label,
+            Drawable photo, boolean isSipCall, boolean isContactPhotoShown, boolean isWorkCall) {
+        Log.d(this, "Setting primary call");
+        // set the name field.
+        setPrimaryName(name, nameIsNumber);
+
+        if (TextUtils.isEmpty(number) && TextUtils.isEmpty(label)) {
+            mCallNumberAndLabel.setVisibility(View.GONE);
+            mElapsedTime.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+        } else {
+            mCallNumberAndLabel.setVisibility(View.VISIBLE);
+            mElapsedTime.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_END);
+        }
+
+        setPrimaryPhoneNumber(number);
+
+        // Set the label (Mobile, Work, etc)
+        setPrimaryLabel(label);
+
+        showInternetCallLabel(isSipCall);
+
+        setDrawableToImageViews(photo);
+        showImageView(mPhotoLarge, isContactPhotoShown);
+        showImageView(mWorkProfileIcon, isWorkCall);
+    }
+
+    @Override
+    public void setSecondary(boolean show, String name, boolean nameIsNumber, String label,
+            String providerLabel, boolean isConference, boolean isVideoCall, boolean isFullscreen) {
+
+        if (show) {
+            mHasSecondaryCallInfo = true;
+            boolean hasProvider = !TextUtils.isEmpty(providerLabel);
+            initializeSecondaryCallInfo(hasProvider);
+
+            // Do not show the secondary caller info in fullscreen mode, but ensure it is populated
+            // in case fullscreen mode is exited in the future.
+            setSecondaryInfoVisible(!isFullscreen);
+
+            mSecondaryCallConferenceCallIcon.setVisibility(isConference ? View.VISIBLE : View.GONE);
+            mSecondaryCallVideoCallIcon.setVisibility(isVideoCall ? View.VISIBLE : View.GONE);
+
+            mSecondaryCallName.setText(nameIsNumber
+                    ? PhoneNumberUtilsCompat.createTtsSpannable(name)
+                    : name);
+            if (hasProvider) {
+                mSecondaryCallProviderLabel.setText(providerLabel);
+            }
+
+            int nameDirection = View.TEXT_DIRECTION_INHERIT;
+            if (nameIsNumber) {
+                nameDirection = View.TEXT_DIRECTION_LTR;
+            }
+            mSecondaryCallName.setTextDirection(nameDirection);
+        } else {
+            mHasSecondaryCallInfo = false;
+            setSecondaryInfoVisible(false);
+        }
+    }
+
+    /**
+     * Sets the visibility of the secondary caller info box.  Note, if the {@code visible} parameter
+     * is passed in {@code true}, and there is no secondary caller info populated (as determined by
+     * {@code mHasSecondaryCallInfo}, the secondary caller info box will not be shown.
+     *
+     * @param visible {@code true} if the secondary caller info should be shown, {@code false}
+     *      otherwise.
+     */
+    @Override
+    public void setSecondaryInfoVisible(final boolean visible) {
+        boolean wasVisible = mSecondaryCallInfo.isShown();
+        final boolean isVisible = visible && mHasSecondaryCallInfo;
+        Log.v(this, "setSecondaryInfoVisible: wasVisible = " + wasVisible + " isVisible = "
+                + isVisible);
+
+        // If visibility didn't change, nothing to do.
+        if (wasVisible == isVisible) {
+            return;
+        }
+
+        // If we are showing the secondary info, we need to show it before animating so that its
+        // height will be determined on layout.
+        if (isVisible) {
+            mSecondaryCallInfo.setVisibility(View.VISIBLE);
+        } else {
+            mSecondaryCallInfo.setVisibility(View.GONE);
+        }
+
+        updateFabPositionForSecondaryCallInfo();
+        // We need to translate the secondary caller info, but we need to know its position after
+        // the layout has occurred so use a {@code ViewTreeObserver}.
+        final ViewTreeObserver observer = getView().getViewTreeObserver();
+
+        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                // We don't want to continue getting called.
+                getView().getViewTreeObserver().removeOnPreDrawListener(this);
+
+                // Get the height of the secondary call info now, and then re-hide the view prior
+                // to doing the actual animation.
+                int secondaryHeight = mSecondaryCallInfo.getHeight();
+                if (isVisible) {
+                    mSecondaryCallInfo.setVisibility(View.GONE);
+                } else {
+                    mSecondaryCallInfo.setVisibility(View.VISIBLE);
+                }
+                Log.v(this, "setSecondaryInfoVisible: secondaryHeight = " + secondaryHeight);
+
+                // Set the position of the secondary call info card to its starting location.
+                mSecondaryCallInfo.setTranslationY(visible ? secondaryHeight : 0);
+
+                // Animate the secondary card info slide up/down as it appears and disappears.
+                ViewPropertyAnimator secondaryInfoAnimator = mSecondaryCallInfo.animate()
+                        .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                        .setDuration(mVideoAnimationDuration)
+                        .translationY(isVisible ? 0 : secondaryHeight)
+                        .setListener(new AnimatorListenerAdapter() {
+                            @Override
+                            public void onAnimationEnd(Animator animation) {
+                                if (!isVisible) {
+                                    mSecondaryCallInfo.setVisibility(View.GONE);
+                                }
+                            }
+
+                            @Override
+                            public void onAnimationStart(Animator animation) {
+                                if (isVisible) {
+                                    mSecondaryCallInfo.setVisibility(View.VISIBLE);
+                                }
+                            }
+                        });
+                secondaryInfoAnimator.start();
+
+                // Notify listeners of a change in the visibility of the secondary info. This is
+                // important when in a video call so that the video call presenter can shift the
+                // video preview up or down to accommodate the secondary caller info.
+                InCallPresenter.getInstance().notifySecondaryCallerInfoVisibilityChanged(visible,
+                        secondaryHeight);
+
+                return true;
+            }
+        });
+    }
+
+    @Override
+    public void setCallState(
+            int state,
+            int videoState,
+            int sessionModificationState,
+            DisconnectCause disconnectCause,
+            String connectionLabel,
+            Drawable callStateIcon,
+            String gatewayNumber,
+            boolean isWifi,
+            boolean isConference,
+            boolean isWorkCall) {
+        boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
+        CallStateLabel callStateLabel = getCallStateLabelFromState(state, videoState,
+                sessionModificationState, disconnectCause, connectionLabel, isGatewayCall, isWifi,
+                isConference, isWorkCall);
+
+        Log.v(this, "setCallState " + callStateLabel.getCallStateLabel());
+        Log.v(this, "AutoDismiss " + callStateLabel.isAutoDismissing());
+        Log.v(this, "DisconnectCause " + disconnectCause.toString());
+        Log.v(this, "gateway " + connectionLabel + gatewayNumber);
+
+        // Check for video state change and update the visibility of the contact photo.  The contact
+        // photo is hidden when the incoming video surface is shown.
+        // The contact photo visibility can also change in setPrimary().
+        boolean showContactPhoto = !VideoCallPresenter.showIncomingVideo(videoState, state);
+        mPhotoLarge.setVisibility(showContactPhoto ? View.VISIBLE : View.GONE);
+
+        // Check if the call subject is showing -- if it is, we want to bypass showing the call
+        // state.
+        boolean isSubjectShowing = mCallSubject.getVisibility() == View.VISIBLE;
+
+        if (TextUtils.equals(callStateLabel.getCallStateLabel(), mCallStateLabel.getText()) &&
+                !isSubjectShowing) {
+            // Nothing to do if the labels are the same
+            if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
+                mCallStateLabel.clearAnimation();
+                mCallStateIcon.clearAnimation();
+            }
+            return;
+        }
+
+        if (isSubjectShowing) {
+            changeCallStateLabel(null);
+            callStateIcon = null;
+        } else {
+            // Update the call state label and icon.
+            setCallStateLabel(callStateLabel);
+        }
+
+        if (!TextUtils.isEmpty(callStateLabel.getCallStateLabel())) {
+            if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
+                mCallStateLabel.clearAnimation();
+            } else {
+                mCallStateLabel.startAnimation(mPulseAnimation);
+            }
+        } else {
+            mCallStateLabel.clearAnimation();
+        }
+
+        if (callStateIcon != null) {
+            mCallStateIcon.setVisibility(View.VISIBLE);
+            // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is
+            // needed because the pulse animation operates on the view alpha.
+            mCallStateIcon.setAlpha(1.0f);
+            mCallStateIcon.setImageDrawable(callStateIcon);
+
+            if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED
+                    || TextUtils.isEmpty(callStateLabel.getCallStateLabel())) {
+                mCallStateIcon.clearAnimation();
+            } else {
+                mCallStateIcon.startAnimation(mPulseAnimation);
+            }
+
+            if (callStateIcon instanceof AnimationDrawable) {
+                ((AnimationDrawable) callStateIcon).start();
+            }
+        } else {
+            mCallStateIcon.clearAnimation();
+
+            // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is
+            // needed because the pulse animation operates on the view alpha.
+            mCallStateIcon.setAlpha(0.0f);
+            mCallStateIcon.setVisibility(View.GONE);
+        }
+
+        if (VideoUtils.isVideoCall(videoState)
+                || (state == Call.State.ACTIVE && sessionModificationState
+                        == Call.SessionModificationState.WAITING_FOR_RESPONSE)) {
+            mCallStateVideoCallIcon.setVisibility(View.VISIBLE);
+        } else {
+            mCallStateVideoCallIcon.setVisibility(View.GONE);
+        }
+    }
+
+    private void setCallStateLabel(CallStateLabel callStateLabel) {
+        Log.v(this, "setCallStateLabel : label = " + callStateLabel.getCallStateLabel());
+
+        if (callStateLabel.isAutoDismissing()) {
+            mCallStateLabelResetPending = true;
+            mHandler.postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    Log.v(this, "restoringCallStateLabel : label = " +
+                            mPostResetCallStateLabel);
+                    changeCallStateLabel(mPostResetCallStateLabel);
+                    mCallStateLabelResetPending = false;
+                }
+            }, CALL_STATE_LABEL_RESET_DELAY_MS);
+
+            changeCallStateLabel(callStateLabel.getCallStateLabel());
+        } else {
+            // Keep track of the current call state label; used when resetting auto dismissing
+            // call state labels.
+            mPostResetCallStateLabel = callStateLabel.getCallStateLabel();
+
+            if (!mCallStateLabelResetPending) {
+                changeCallStateLabel(callStateLabel.getCallStateLabel());
+            }
+        }
+    }
+
+    private void changeCallStateLabel(CharSequence callStateLabel) {
+        Log.v(this, "changeCallStateLabel : label = " + callStateLabel);
+        if (!TextUtils.isEmpty(callStateLabel)) {
+            mCallStateLabel.setText(callStateLabel);
+            mCallStateLabel.setAlpha(1);
+            mCallStateLabel.setVisibility(View.VISIBLE);
+        } else {
+            Animation callStateLabelAnimation = mCallStateLabel.getAnimation();
+            if (callStateLabelAnimation != null) {
+                callStateLabelAnimation.cancel();
+            }
+            mCallStateLabel.setText(null);
+            mCallStateLabel.setAlpha(0);
+            mCallStateLabel.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public void setCallbackNumber(String callbackNumber, boolean isEmergencyCall) {
+        if (mInCallMessageLabel == null) {
+            return;
+        }
+
+        if (TextUtils.isEmpty(callbackNumber)) {
+            mInCallMessageLabel.setVisibility(View.GONE);
+            return;
+        }
+
+        // TODO: The new Locale-specific methods don't seem to be working. Revisit this.
+        callbackNumber = PhoneNumberUtils.formatNumber(callbackNumber);
+
+        int stringResourceId = isEmergencyCall ? R.string.card_title_callback_number_emergency
+                : R.string.card_title_callback_number;
+
+        String text = getString(stringResourceId, callbackNumber);
+        mInCallMessageLabel.setText(text);
+
+        mInCallMessageLabel.setVisibility(View.VISIBLE);
+    }
+
+    /**
+     * Sets and shows the call subject if it is not empty.  Hides the call subject otherwise.
+     *
+     * @param callSubject The call subject.
+     */
+    @Override
+    public void setCallSubject(String callSubject) {
+        boolean showSubject = !TextUtils.isEmpty(callSubject);
+
+        mCallSubject.setVisibility(showSubject ? View.VISIBLE : View.GONE);
+        if (showSubject) {
+            mCallSubject.setText(callSubject);
+        } else {
+            mCallSubject.setText(null);
+        }
+    }
+
+    public boolean isAnimating() {
+        return mIsAnimating;
+    }
+
+    private void showInternetCallLabel(boolean show) {
+        if (show) {
+            final String label = getView().getContext().getString(
+                    R.string.incall_call_type_label_sip);
+            mCallTypeLabel.setVisibility(View.VISIBLE);
+            mCallTypeLabel.setText(label);
+        } else {
+            mCallTypeLabel.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public void setPrimaryCallElapsedTime(boolean show, long duration) {
+        if (show) {
+            if (mElapsedTime.getVisibility() != View.VISIBLE) {
+                AnimUtils.fadeIn(mElapsedTime, AnimUtils.DEFAULT_DURATION);
+            }
+            String callTimeElapsed = DateUtils.formatElapsedTime(duration / 1000);
+            mElapsedTime.setText(callTimeElapsed);
+
+            String durationDescription =
+                    InCallDateUtils.formatDuration(getView().getContext(), duration);
+            mElapsedTime.setContentDescription(
+                    !TextUtils.isEmpty(durationDescription) ? durationDescription : null);
+        } else {
+            // hide() animation has no effect if it is already hidden.
+            AnimUtils.fadeOut(mElapsedTime, AnimUtils.DEFAULT_DURATION);
+        }
+    }
+
+    /**
+     * Set all the ImageViews to the same photo. Currently there are 2 photo views: the large one
+     * (which fills about the bottom half of the screen) and the small one, which displays as a
+     * circle next to the primary contact info. This method does not handle whether the ImageView
+     * is shown or not.
+     *
+     * @param photo The photo to set for the image views.
+     */
+    private void setDrawableToImageViews(Drawable photo) {
+        if (photo == null) {
+            photo = ContactInfoCache.getInstance(getView().getContext())
+                            .getDefaultContactPhotoDrawable();
+        }
+
+        if (mPrimaryPhotoDrawable == photo){
+            return;
+        }
+        mPrimaryPhotoDrawable = photo;
+
+        mPhotoLarge.setImageDrawable(photo);
+
+        // Modify the drawable to be round for the smaller ImageView.
+        Bitmap bitmap = drawableToBitmap(photo);
+        if (bitmap != null) {
+            final RoundedBitmapDrawable drawable =
+                    RoundedBitmapDrawableFactory.create(getResources(), bitmap);
+            drawable.setAntiAlias(true);
+            drawable.setCornerRadius(bitmap.getHeight() / 2);
+            photo = drawable;
+        }
+        mPhotoSmall.setImageDrawable(photo);
+    }
+
+    /**
+     * Helper method for image view to handle animations.
+     *
+     * @param view The image view to show or hide.
+     * @param isVisible {@code true} if we want to show the image, {@code false} to hide it.
+     */
+    private void showImageView(ImageView view, boolean isVisible) {
+        if (view.getDrawable() == null) {
+            if (isVisible) {
+                AnimUtils.fadeIn(mElapsedTime, AnimUtils.DEFAULT_DURATION);
+            }
+        } else {
+            // Cross fading is buggy and not noticeable due to the multiple calls to this method
+            // that switch drawables in the middle of the cross-fade animations. Just show the
+            // photo directly instead.
+            view.setVisibility(isVisible ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    /**
+     * Converts a drawable into a bitmap.
+     *
+     * @param drawable the drawable to be converted.
+     */
+    public static Bitmap drawableToBitmap(Drawable drawable) {
+        Bitmap bitmap;
+        if (drawable instanceof BitmapDrawable) {
+            bitmap = ((BitmapDrawable) drawable).getBitmap();
+        } else {
+            if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
+                // Needed for drawables that are just a colour.
+                bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+            } else {
+                bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
+                        drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
+            }
+
+            Log.i(TAG, "Created bitmap with width " + bitmap.getWidth() + ", height "
+                    + bitmap.getHeight());
+
+            Canvas canvas = new Canvas(bitmap);
+            drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+            drawable.draw(canvas);
+        }
+        return bitmap;
+    }
+
+    /**
+     * Gets the call state label based on the state of the call or cause of disconnect.
+     *
+     * Additional labels are applied as follows:
+     *         1. All outgoing calls with display "Calling via [Provider]".
+     *         2. Ongoing calls will display the name of the provider.
+     *         3. Incoming calls will only display "Incoming via..." for accounts.
+     *         4. Video calls, and session modification states (eg. requesting video).
+     *         5. Incoming and active Wi-Fi calls will show label provided by hint.
+     *
+     * TODO: Move this to the CallCardPresenter.
+     */
+    private CallStateLabel getCallStateLabelFromState(int state, int videoState,
+            int sessionModificationState, DisconnectCause disconnectCause, String label,
+            boolean isGatewayCall, boolean isWifi, boolean isConference, boolean isWorkCall) {
+        final Context context = getView().getContext();
+        CharSequence callStateLabel = null;  // Label to display as part of the call banner
+
+        boolean hasSuggestedLabel = label != null;
+        boolean isAccount = hasSuggestedLabel && !isGatewayCall;
+        boolean isAutoDismissing = false;
+
+        switch  (state) {
+            case Call.State.IDLE:
+                // "Call state" is meaningless in this state.
+                break;
+            case Call.State.ACTIVE:
+                // We normally don't show a "call state label" at all in this state
+                // (but we can use the call state label to display the provider name).
+                if ((isAccount || isWifi || isConference) && hasSuggestedLabel) {
+                    callStateLabel = label;
+                } else if (sessionModificationState
+                        == Call.SessionModificationState.REQUEST_REJECTED) {
+                    callStateLabel = context.getString(R.string.card_title_video_call_rejected);
+                    isAutoDismissing = true;
+                } else if (sessionModificationState
+                        == Call.SessionModificationState.REQUEST_FAILED) {
+                    callStateLabel = context.getString(R.string.card_title_video_call_error);
+                    isAutoDismissing = true;
+                } else if (sessionModificationState
+                        == Call.SessionModificationState.WAITING_FOR_RESPONSE) {
+                    callStateLabel = context.getString(R.string.card_title_video_call_requesting);
+                } else if (sessionModificationState
+                        == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+                    callStateLabel = context.getString(R.string.card_title_video_call_requesting);
+                } else if (VideoUtils.isVideoCall(videoState)) {
+                    callStateLabel = context.getString(R.string.card_title_video_call);
+                }
+                break;
+            case Call.State.ONHOLD:
+                callStateLabel = context.getString(R.string.card_title_on_hold);
+                break;
+            case Call.State.CONNECTING:
+            case Call.State.DIALING:
+                if (hasSuggestedLabel && !isWifi) {
+                    callStateLabel = context.getString(R.string.calling_via_template, label);
+                } else {
+                    callStateLabel = context.getString(R.string.card_title_dialing);
+                }
+                break;
+            case Call.State.REDIALING:
+                callStateLabel = context.getString(R.string.card_title_redialing);
+                break;
+            case Call.State.INCOMING:
+            case Call.State.CALL_WAITING:
+                if (isWifi && hasSuggestedLabel) {
+                    callStateLabel = label;
+                } else if (isAccount) {
+                    callStateLabel = context.getString(R.string.incoming_via_template, label);
+                } else if (VideoUtils.isVideoCall(videoState)) {
+                    callStateLabel = context.getString(R.string.notification_incoming_video_call);
+                } else {
+                    callStateLabel =
+                            context.getString(isWorkCall ? R.string.card_title_incoming_work_call
+                                    : R.string.card_title_incoming_call);
+                }
+                break;
+            case Call.State.DISCONNECTING:
+                // While in the DISCONNECTING state we display a "Hanging up"
+                // message in order to make the UI feel more responsive.  (In
+                // GSM it's normal to see a delay of a couple of seconds while
+                // negotiating the disconnect with the network, so the "Hanging
+                // up" state at least lets the user know that we're doing
+                // something.  This state is currently not used with CDMA.)
+                callStateLabel = context.getString(R.string.card_title_hanging_up);
+                break;
+            case Call.State.DISCONNECTED:
+                callStateLabel = disconnectCause.getLabel();
+                if (TextUtils.isEmpty(callStateLabel)) {
+                    callStateLabel = context.getString(R.string.card_title_call_ended);
+                }
+                break;
+            case Call.State.CONFERENCED:
+                callStateLabel = context.getString(R.string.card_title_conf_call);
+                break;
+            default:
+                Log.wtf(this, "updateCallStateWidgets: unexpected call: " + state);
+        }
+        return new CallStateLabel(callStateLabel, isAutoDismissing);
+    }
+
+    private void initializeSecondaryCallInfo(boolean hasProvider) {
+        // mSecondaryCallName is initialized here (vs. onViewCreated) because it is inaccessible
+        // until mSecondaryCallInfo is inflated in the call above.
+        if (mSecondaryCallName == null) {
+            mSecondaryCallName = (TextView) getView().findViewById(R.id.secondaryCallName);
+            mSecondaryCallConferenceCallIcon =
+                    getView().findViewById(R.id.secondaryCallConferenceCallIcon);
+            mSecondaryCallVideoCallIcon =
+                    getView().findViewById(R.id.secondaryCallVideoCallIcon);
+        }
+
+        if (mSecondaryCallProviderLabel == null && hasProvider) {
+            mSecondaryCallProviderInfo.setVisibility(View.VISIBLE);
+            mSecondaryCallProviderLabel = (TextView) getView()
+                    .findViewById(R.id.secondaryCallProviderLabel);
+        }
+    }
+
+    public void dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        if (event.getEventType() == AccessibilityEvent.TYPE_ANNOUNCEMENT) {
+            dispatchPopulateAccessibilityEvent(event, mCallStateLabel);
+            dispatchPopulateAccessibilityEvent(event, mPrimaryName);
+            dispatchPopulateAccessibilityEvent(event, mCallTypeLabel);
+            dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
+            return;
+        }
+        dispatchPopulateAccessibilityEvent(event, mCallStateLabel);
+        dispatchPopulateAccessibilityEvent(event, mPrimaryName);
+        dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
+        dispatchPopulateAccessibilityEvent(event, mCallTypeLabel);
+        dispatchPopulateAccessibilityEvent(event, mSecondaryCallName);
+        dispatchPopulateAccessibilityEvent(event, mSecondaryCallProviderLabel);
+
+        return;
+    }
+
+    @Override
+    public void sendAccessibilityAnnouncement() {
+        mHandler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                if (getView() != null && getView().getParent() != null) {
+                    AccessibilityEvent event = AccessibilityEvent.obtain(
+                            AccessibilityEvent.TYPE_ANNOUNCEMENT);
+                    dispatchPopulateAccessibilityEvent(event);
+                    getView().getParent().requestSendAccessibilityEvent(getView(), event);
+                }
+            }
+        }, ACCESSIBILITY_ANNOUNCEMENT_DELAY_MS);
+    }
+
+    @Override
+    public void setEndCallButtonEnabled(boolean enabled, boolean animate) {
+        if (enabled != mFloatingActionButton.isEnabled()) {
+            if (animate) {
+                if (enabled) {
+                    mFloatingActionButtonController.scaleIn(AnimUtils.NO_DELAY);
+                } else {
+                    mFloatingActionButtonController.scaleOut();
+                }
+            } else {
+                if (enabled) {
+                    mFloatingActionButtonContainer.setScaleX(1);
+                    mFloatingActionButtonContainer.setScaleY(1);
+                    mFloatingActionButtonContainer.setVisibility(View.VISIBLE);
+                } else {
+                    mFloatingActionButtonContainer.setVisibility(View.GONE);
+                }
+            }
+            mFloatingActionButton.setEnabled(enabled);
+            updateFabPosition();
+        }
+    }
+
+    /**
+     * Changes the visibility of the HD audio icon.
+     *
+     * @param visible {@code true} if the UI should show the HD audio icon.
+     */
+    @Override
+    public void showHdAudioIndicator(boolean visible) {
+        mHdAudioIcon.setVisibility(visible ? View.VISIBLE : View.GONE);
+    }
+
+    /**
+     * Changes the visibility of the forward icon.
+     *
+     * @param visible {@code true} if the UI should show the forward icon.
+     */
+    @Override
+    public void showForwardIndicator(boolean visible) {
+        mForwardIcon.setVisibility(visible ? View.VISIBLE : View.GONE);
+    }
+
+
+    /**
+     * Changes the visibility of the "manage conference call" button.
+     *
+     * @param visible Whether to set the button to be visible or not.
+     */
+    @Override
+    public void showManageConferenceCallButton(boolean visible) {
+        mManageConferenceCallButton.setVisibility(visible ? View.VISIBLE : View.GONE);
+    }
+
+    /**
+     * Determines the current visibility of the manage conference button.
+     *
+     * @return {@code true} if the button is visible.
+     */
+    @Override
+    public boolean isManageConferenceVisible() {
+        return mManageConferenceCallButton.getVisibility() == View.VISIBLE;
+    }
+
+    /**
+     * Determines the current visibility of the call subject.
+     *
+     * @return {@code true} if the subject is visible.
+     */
+    @Override
+    public boolean isCallSubjectVisible() {
+        return mCallSubject.getVisibility() == View.VISIBLE;
+    }
+
+    /**
+     * Get the overall InCallUI background colors and apply to call card.
+     */
+    public void updateColors() {
+        MaterialPalette themeColors = InCallPresenter.getInstance().getThemeColors();
+
+        if (mCurrentThemeColors != null && mCurrentThemeColors.equals(themeColors)) {
+            return;
+        }
+
+        if (getResources().getBoolean(R.bool.is_layout_landscape)) {
+            final GradientDrawable drawable =
+                    (GradientDrawable) mPrimaryCallCardContainer.getBackground();
+            drawable.setColor(themeColors.mPrimaryColor);
+        } else {
+            mPrimaryCallCardContainer.setBackgroundColor(themeColors.mPrimaryColor);
+        }
+        mCallButtonsContainer.setBackgroundColor(themeColors.mPrimaryColor);
+        mCallSubject.setTextColor(themeColors.mPrimaryColor);
+        mContactContext.setBackgroundColor(themeColors.mPrimaryColor);
+        //TODO: set color of message text in call context "recent messages" to be the theme color.
+
+        mCurrentThemeColors = themeColors;
+    }
+
+    private void dispatchPopulateAccessibilityEvent(AccessibilityEvent event, View view) {
+        if (view == null) return;
+        final List<CharSequence> eventText = event.getText();
+        int size = eventText.size();
+        view.dispatchPopulateAccessibilityEvent(event);
+        // if no text added write null to keep relative position
+        if (size == eventText.size()) {
+            eventText.add(null);
+        }
+    }
+
+    @Override
+    public void animateForNewOutgoingCall() {
+        final ViewGroup parent = (ViewGroup) mPrimaryCallCardContainer.getParent();
+
+        final ViewTreeObserver observer = getView().getViewTreeObserver();
+
+        mIsAnimating = true;
+
+        observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
+            @Override
+            public void onGlobalLayout() {
+                final ViewTreeObserver observer = getView().getViewTreeObserver();
+                if (!observer.isAlive()) {
+                    return;
+                }
+                observer.removeOnGlobalLayoutListener(this);
+
+                final LayoutIgnoringListener listener = new LayoutIgnoringListener();
+                mPrimaryCallCardContainer.addOnLayoutChangeListener(listener);
+
+                // Prepare the state of views before the slide animation
+                final int originalHeight = mPrimaryCallCardContainer.getHeight();
+                mPrimaryCallCardContainer.setTag(R.id.view_tag_callcard_actual_height,
+                        originalHeight);
+                mPrimaryCallCardContainer.setBottom(parent.getHeight());
+
+                // Set up FAB.
+                mFloatingActionButtonContainer.setVisibility(View.GONE);
+                mFloatingActionButtonController.setScreenWidth(parent.getWidth());
+
+                mCallButtonsContainer.setAlpha(0);
+                mCallStateLabel.setAlpha(0);
+                mPrimaryName.setAlpha(0);
+                mCallTypeLabel.setAlpha(0);
+                mCallNumberAndLabel.setAlpha(0);
+
+                assignTranslateAnimation(mCallStateLabel, 1);
+                assignTranslateAnimation(mCallStateIcon, 1);
+                assignTranslateAnimation(mPrimaryName, 2);
+                assignTranslateAnimation(mCallNumberAndLabel, 3);
+                assignTranslateAnimation(mCallTypeLabel, 4);
+                assignTranslateAnimation(mCallButtonsContainer, 5);
+
+                final Animator animator = getShrinkAnimator(parent.getHeight(), originalHeight);
+
+                animator.addListener(new AnimatorListenerAdapter() {
+                    @Override
+                    public void onAnimationEnd(Animator animation) {
+                        mPrimaryCallCardContainer.setTag(R.id.view_tag_callcard_actual_height,
+                                null);
+                        setViewStatePostAnimation(listener);
+                        mIsAnimating = false;
+                        InCallPresenter.getInstance().onShrinkAnimationComplete();
+                    }
+                });
+                animator.start();
+            }
+        });
+    }
+
+    @Override
+    public void showNoteSentToast() {
+        Toast.makeText(getContext(), R.string.note_sent, Toast.LENGTH_LONG).show();
+    }
+
+    public void onDialpadVisibilityChange(boolean isShown) {
+        mIsDialpadShowing = isShown;
+        updateFabPosition();
+    }
+
+    private void updateFabPosition() {
+        int offsetY = 0;
+        if (!mIsDialpadShowing) {
+            offsetY = mFloatingActionButtonVerticalOffset;
+            if (mSecondaryCallInfo.isShown() && mHasLargePhoto) {
+                offsetY -= mSecondaryCallInfo.getHeight();
+            }
+        }
+
+        mFloatingActionButtonController.align(
+                FloatingActionButtonController.ALIGN_MIDDLE,
+                0 /* offsetX */,
+                offsetY,
+                true);
+
+        mFloatingActionButtonController.resize(
+                mIsDialpadShowing ? mFabSmallDiameter : mFabNormalDiameter, true);
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // If the previous launch animation is still running, cancel it so that we don't get
+        // stuck in an intermediate animation state.
+        if (mAnimatorSet != null && mAnimatorSet.isRunning()) {
+            mAnimatorSet.cancel();
+        }
+
+        mIsLandscape = getResources().getBoolean(R.bool.is_layout_landscape);
+        mHasLargePhoto = getResources().getBoolean(R.bool.has_large_photo);
+
+        final ViewGroup parent = ((ViewGroup) mPrimaryCallCardContainer.getParent());
+        final ViewTreeObserver observer = parent.getViewTreeObserver();
+        parent.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
+            @Override
+            public void onGlobalLayout() {
+                ViewTreeObserver viewTreeObserver = observer;
+                if (!viewTreeObserver.isAlive()) {
+                    viewTreeObserver = parent.getViewTreeObserver();
+                }
+                viewTreeObserver.removeOnGlobalLayoutListener(this);
+                mFloatingActionButtonController.setScreenWidth(parent.getWidth());
+                updateFabPosition();
+            }
+        });
+
+        updateColors();
+    }
+
+    /**
+     * Adds a global layout listener to update the FAB's positioning on the next layout. This allows
+     * us to position the FAB after the secondary call info's height has been calculated.
+     */
+    private void updateFabPositionForSecondaryCallInfo() {
+        mSecondaryCallInfo.getViewTreeObserver().addOnGlobalLayoutListener(
+                new ViewTreeObserver.OnGlobalLayoutListener() {
+                    @Override
+                    public void onGlobalLayout() {
+                        final ViewTreeObserver observer = mSecondaryCallInfo.getViewTreeObserver();
+                        if (!observer.isAlive()) {
+                            return;
+                        }
+                        observer.removeOnGlobalLayoutListener(this);
+
+                        onDialpadVisibilityChange(mIsDialpadShowing);
+                    }
+                });
+    }
+
+    /**
+     * Animator that performs the upwards shrinking animation of the blue call card scrim.
+     * At the start of the animation, each child view is moved downwards by a pre-specified amount
+     * and then translated upwards together with the scrim.
+     */
+    private Animator getShrinkAnimator(int startHeight, int endHeight) {
+        final ObjectAnimator shrinkAnimator =
+                ObjectAnimator.ofInt(mPrimaryCallCardContainer, "bottom", startHeight, endHeight);
+        shrinkAnimator.setDuration(mShrinkAnimationDuration);
+        shrinkAnimator.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+                mFloatingActionButton.setEnabled(true);
+            }
+        });
+        shrinkAnimator.setInterpolator(AnimUtils.EASE_IN);
+        return shrinkAnimator;
+    }
+
+    private void assignTranslateAnimation(View view, int offset) {
+        view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+        view.buildLayer();
+        view.setTranslationY(mTranslationOffset * offset);
+        view.animate().translationY(0).alpha(1).withLayer()
+                .setDuration(mShrinkAnimationDuration).setInterpolator(AnimUtils.EASE_IN);
+    }
+
+    private void setViewStatePostAnimation(View view) {
+        view.setTranslationY(0);
+        view.setAlpha(1);
+    }
+
+    private void setViewStatePostAnimation(OnLayoutChangeListener layoutChangeListener) {
+        setViewStatePostAnimation(mCallButtonsContainer);
+        setViewStatePostAnimation(mCallStateLabel);
+        setViewStatePostAnimation(mPrimaryName);
+        setViewStatePostAnimation(mCallTypeLabel);
+        setViewStatePostAnimation(mCallNumberAndLabel);
+        setViewStatePostAnimation(mCallStateIcon);
+
+        mPrimaryCallCardContainer.removeOnLayoutChangeListener(layoutChangeListener);
+
+        mFloatingActionButtonController.scaleIn(AnimUtils.NO_DELAY);
+    }
+
+    private final class LayoutIgnoringListener implements View.OnLayoutChangeListener {
+        @Override
+        public void onLayoutChange(View v,
+                int left,
+                int top,
+                int right,
+                int bottom,
+                int oldLeft,
+                int oldTop,
+                int oldRight,
+                int oldBottom) {
+            v.setLeft(oldLeft);
+            v.setRight(oldRight);
+            v.setTop(oldTop);
+            v.setBottom(oldBottom);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
new file mode 100644
index 0000000..8c22f92
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -0,0 +1,1161 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.telecom.Call.Details;
+import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.StatusHints;
+import android.telecom.TelecomManager;
+import android.telecom.VideoProfile;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.accessibility.AccessibilityManager;
+import android.widget.ListAdapter;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.R;
+import com.android.incallui.Call.State;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
+import com.android.incallui.InCallPresenter.InCallDetailsListener;
+import com.android.incallui.InCallPresenter.InCallEventListener;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
+import com.android.incalluibind.ObjectFactory;
+
+import java.lang.ref.WeakReference;
+
+import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_WORK_CALL;
+/**
+ * Presenter for the Call Card Fragment.
+ * <p>
+ * This class listens for changes to InCallState and passes it along to the fragment.
+ */
+public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
+        implements InCallStateListener, IncomingCallListener, InCallDetailsListener,
+        InCallEventListener, CallList.CallUpdateListener, DistanceHelper.Listener {
+
+    public interface EmergencyCallListener {
+        public void onCallUpdated(BaseFragment fragment, boolean isEmergency);
+    }
+
+    private static final String TAG = CallCardPresenter.class.getSimpleName();
+    private static final long CALL_TIME_UPDATE_INTERVAL_MS = 1000;
+
+    private final EmergencyCallListener mEmergencyCallListener =
+            ObjectFactory.newEmergencyCallListener();
+    private DistanceHelper mDistanceHelper;
+
+    private Call mPrimary;
+    private Call mSecondary;
+    private ContactCacheEntry mPrimaryContactInfo;
+    private ContactCacheEntry mSecondaryContactInfo;
+    private CallTimer mCallTimer;
+    private Context mContext;
+    @Nullable private ContactsPreferences mContactsPreferences;
+    private boolean mSpinnerShowing = false;
+    private boolean mHasShownToast = false;
+    private InCallContactInteractions mInCallContactInteractions;
+    private boolean mIsFullscreen = false;
+
+    public static class ContactLookupCallback implements ContactInfoCacheCallback {
+        private final WeakReference<CallCardPresenter> mCallCardPresenter;
+        private final boolean mIsPrimary;
+
+        public ContactLookupCallback(CallCardPresenter callCardPresenter, boolean isPrimary) {
+            mCallCardPresenter = new WeakReference<CallCardPresenter>(callCardPresenter);
+            mIsPrimary = isPrimary;
+        }
+
+        @Override
+        public void onContactInfoComplete(String callId, ContactCacheEntry entry) {
+            CallCardPresenter presenter = mCallCardPresenter.get();
+            if (presenter != null) {
+                presenter.onContactInfoComplete(callId, entry, mIsPrimary);
+            }
+        }
+
+        @Override
+        public void onImageLoadComplete(String callId, ContactCacheEntry entry) {
+            CallCardPresenter presenter = mCallCardPresenter.get();
+            if (presenter != null) {
+                presenter.onImageLoadComplete(callId, entry);
+            }
+        }
+
+        @Override
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {
+            CallCardPresenter presenter = mCallCardPresenter.get();
+            if (presenter != null) {
+                presenter.onContactInteractionsInfoComplete(callId, entry);
+            }
+        }
+    }
+
+    public CallCardPresenter() {
+        // create the call timer
+        mCallTimer = new CallTimer(new Runnable() {
+            @Override
+            public void run() {
+                updateCallTime();
+            }
+        });
+    }
+
+    public void init(Context context, Call call) {
+        mContext = Preconditions.checkNotNull(context);
+        mDistanceHelper = ObjectFactory.newDistanceHelper(mContext, this);
+        mContactsPreferences = ContactsPreferencesFactory.newContactsPreferences(mContext);
+
+        // Call may be null if disconnect happened already.
+        if (call != null) {
+            mPrimary = call;
+            if (shouldShowNoteSentToast(mPrimary)) {
+                final CallCardUi ui = getUi();
+                if (ui != null) {
+                    ui.showNoteSentToast();
+                }
+            }
+            CallList.getInstance().addCallUpdateListener(call.getId(), this);
+
+            // start processing lookups right away.
+            if (!call.isConferenceCall()) {
+                startContactInfoSearch(call, true, call.getState() == Call.State.INCOMING);
+            } else {
+                updateContactEntry(null, true);
+            }
+        }
+
+        onStateChange(null, InCallPresenter.getInstance().getInCallState(), CallList.getInstance());
+    }
+
+    @Override
+    public void onUiReady(CallCardUi ui) {
+        super.onUiReady(ui);
+
+        if (mContactsPreferences != null) {
+            mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+        }
+
+        // Contact search may have completed before ui is ready.
+        if (mPrimaryContactInfo != null) {
+            updatePrimaryDisplayInfo();
+        }
+
+        // Register for call state changes last
+        InCallPresenter.getInstance().addListener(this);
+        InCallPresenter.getInstance().addIncomingCallListener(this);
+        InCallPresenter.getInstance().addDetailsListener(this);
+        InCallPresenter.getInstance().addInCallEventListener(this);
+    }
+
+    @Override
+    public void onUiUnready(CallCardUi ui) {
+        super.onUiUnready(ui);
+
+        // stop getting call state changes
+        InCallPresenter.getInstance().removeListener(this);
+        InCallPresenter.getInstance().removeIncomingCallListener(this);
+        InCallPresenter.getInstance().removeDetailsListener(this);
+        InCallPresenter.getInstance().removeInCallEventListener(this);
+        if (mPrimary != null) {
+            CallList.getInstance().removeCallUpdateListener(mPrimary.getId(), this);
+        }
+
+        if (mDistanceHelper != null) {
+            mDistanceHelper.cleanUp();
+        }
+
+        mPrimary = null;
+        mPrimaryContactInfo = null;
+        mSecondaryContactInfo = null;
+    }
+
+    @Override
+    public void onIncomingCall(InCallState oldState, InCallState newState, Call call) {
+        // same logic should happen as with onStateChange()
+        onStateChange(oldState, newState, CallList.getInstance());
+    }
+
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        Log.d(this, "onStateChange() " + newState);
+        final CallCardUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        Call primary = null;
+        Call secondary = null;
+
+        if (newState == InCallState.INCOMING) {
+            primary = callList.getIncomingCall();
+        } else if (newState == InCallState.PENDING_OUTGOING || newState == InCallState.OUTGOING) {
+            primary = callList.getOutgoingCall();
+            if (primary == null) {
+                primary = callList.getPendingOutgoingCall();
+            }
+
+            // getCallToDisplay doesn't go through outgoing or incoming calls. It will return the
+            // highest priority call to display as the secondary call.
+            secondary = getCallToDisplay(callList, null, true);
+        } else if (newState == InCallState.INCALL) {
+            primary = getCallToDisplay(callList, null, false);
+            secondary = getCallToDisplay(callList, primary, true);
+        }
+
+        if (mInCallContactInteractions != null &&
+                (oldState == InCallState.INCOMING || newState == InCallState.INCOMING)) {
+            ui.showContactContext(newState != InCallState.INCOMING);
+        }
+
+        Log.d(this, "Primary call: " + primary);
+        Log.d(this, "Secondary call: " + secondary);
+
+        final boolean primaryChanged = !(Call.areSame(mPrimary, primary) &&
+                Call.areSameNumber(mPrimary, primary));
+        final boolean secondaryChanged = !(Call.areSame(mSecondary, secondary) &&
+                Call.areSameNumber(mSecondary, secondary));
+
+        mSecondary = secondary;
+        Call previousPrimary = mPrimary;
+        mPrimary = primary;
+
+        if (primaryChanged && shouldShowNoteSentToast(primary)) {
+            ui.showNoteSentToast();
+        }
+
+        // Refresh primary call information if either:
+        // 1. Primary call changed.
+        // 2. The call's ability to manage conference has changed.
+        // 3. The call subject should be shown or hidden.
+        if (shouldRefreshPrimaryInfo(primaryChanged, ui, shouldShowCallSubject(mPrimary))) {
+            // primary call has changed
+            if (previousPrimary != null) {
+                //clear progess spinner (if any) related to previous primary call
+                maybeShowProgressSpinner(previousPrimary.getState(),
+                        Call.SessionModificationState.NO_REQUEST);
+                CallList.getInstance().removeCallUpdateListener(previousPrimary.getId(), this);
+            }
+            CallList.getInstance().addCallUpdateListener(mPrimary.getId(), this);
+
+            mPrimaryContactInfo = ContactInfoCache.buildCacheEntryFromCall(mContext, mPrimary,
+                    mPrimary.getState() == Call.State.INCOMING);
+            updatePrimaryDisplayInfo();
+            maybeStartSearch(mPrimary, true);
+            maybeClearSessionModificationState(mPrimary);
+        }
+
+        if (previousPrimary != null && mPrimary == null) {
+            //clear progess spinner (if any) related to previous primary call
+            maybeShowProgressSpinner(previousPrimary.getState(),
+                    Call.SessionModificationState.NO_REQUEST);
+            CallList.getInstance().removeCallUpdateListener(previousPrimary.getId(), this);
+        }
+
+        if (mSecondary == null) {
+            // Secondary call may have ended.  Update the ui.
+            mSecondaryContactInfo = null;
+            updateSecondaryDisplayInfo();
+        } else if (secondaryChanged) {
+            // secondary call has changed
+            mSecondaryContactInfo = ContactInfoCache.buildCacheEntryFromCall(mContext, mSecondary,
+                    mSecondary.getState() == Call.State.INCOMING);
+            updateSecondaryDisplayInfo();
+            maybeStartSearch(mSecondary, false);
+            maybeClearSessionModificationState(mSecondary);
+        }
+
+        // Start/stop timers.
+        if (isPrimaryCallActive()) {
+            Log.d(this, "Starting the calltime timer");
+            mCallTimer.start(CALL_TIME_UPDATE_INTERVAL_MS);
+        } else {
+            Log.d(this, "Canceling the calltime timer");
+            mCallTimer.cancel();
+            ui.setPrimaryCallElapsedTime(false, 0);
+        }
+
+        // Set the call state
+        int callState = Call.State.IDLE;
+        if (mPrimary != null) {
+            callState = mPrimary.getState();
+            updatePrimaryCallState();
+        } else {
+            getUi().setCallState(
+                    callState,
+                    VideoProfile.STATE_AUDIO_ONLY,
+                    Call.SessionModificationState.NO_REQUEST,
+                    new DisconnectCause(DisconnectCause.UNKNOWN),
+                    null,
+                    null,
+                    null,
+                    false /* isWifi */,
+                    false /* isConference */,
+                    false /* isWorkCall */);
+            getUi().showHdAudioIndicator(false);
+        }
+
+        maybeShowManageConferenceCallButton();
+
+        // Hide the end call button instantly if we're receiving an incoming call.
+        getUi().setEndCallButtonEnabled(shouldShowEndCallButton(mPrimary, callState),
+                callState != Call.State.INCOMING /* animate */);
+
+        maybeSendAccessibilityEvent(oldState, newState);
+    }
+
+    @Override
+    public void onDetailsChanged(Call call, Details details) {
+        updatePrimaryCallState();
+
+        if (call.can(Details.CAPABILITY_MANAGE_CONFERENCE) !=
+                details.can(Details.CAPABILITY_MANAGE_CONFERENCE)) {
+            maybeShowManageConferenceCallButton();
+        }
+    }
+
+    @Override
+    public void onCallChanged(Call call) {
+        // No-op; specific call updates handled elsewhere.
+    }
+
+    /**
+     * Handles a change to the session modification state for a call.  Triggers showing the progress
+     * spinner, as well as updating the call state label.
+     *
+     * @param sessionModificationState The new session modification state.
+     */
+    @Override
+    public void onSessionModificationStateChange(int sessionModificationState) {
+        Log.d(this, "onSessionModificationStateChange : sessionModificationState = " +
+                sessionModificationState);
+
+        if (mPrimary == null) {
+            return;
+        }
+        maybeShowProgressSpinner(mPrimary.getState(), sessionModificationState);
+        getUi().setEndCallButtonEnabled(sessionModificationState !=
+                        Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST,
+                true /* shouldAnimate */);
+        updatePrimaryCallState();
+    }
+
+    /**
+     * Handles a change to the last forwarding number by refreshing the primary call info.
+     */
+    @Override
+    public void onLastForwardedNumberChange() {
+        Log.v(this, "onLastForwardedNumberChange");
+
+        if (mPrimary == null) {
+            return;
+        }
+        updatePrimaryDisplayInfo();
+    }
+
+    /**
+     * Handles a change to the child number by refreshing the primary call info.
+     */
+    @Override
+    public void onChildNumberChange() {
+        Log.v(this, "onChildNumberChange");
+
+        if (mPrimary == null) {
+            return;
+        }
+        updatePrimaryDisplayInfo();
+    }
+
+    private boolean shouldRefreshPrimaryInfo(boolean primaryChanged, CallCardUi ui,
+            boolean shouldShowCallSubject) {
+        if (mPrimary == null) {
+            return false;
+        }
+        return primaryChanged ||
+                ui.isManageConferenceVisible() != shouldShowManageConference() ||
+                ui.isCallSubjectVisible() != shouldShowCallSubject;
+    }
+
+    private String getSubscriptionNumber() {
+        // If it's an emergency call, and they're not populating the callback number,
+        // then try to fall back to the phone sub info (to hopefully get the SIM's
+        // number directly from the telephony layer).
+        PhoneAccountHandle accountHandle = mPrimary.getAccountHandle();
+        if (accountHandle != null) {
+            TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
+            PhoneAccount account = TelecomManagerCompat.getPhoneAccount(mgr, accountHandle);
+            if (account != null) {
+                return getNumberFromHandle(account.getSubscriptionAddress());
+            }
+        }
+        return null;
+    }
+
+    private void updatePrimaryCallState() {
+        if (getUi() != null && mPrimary != null) {
+            boolean isWorkCall = mPrimary.hasProperty(PROPERTY_WORK_CALL)
+                    || (mPrimaryContactInfo == null ? false
+                            : mPrimaryContactInfo.userType == ContactsUtils.USER_TYPE_WORK);
+            getUi().setCallState(
+                    mPrimary.getState(),
+                    mPrimary.getVideoState(),
+                    mPrimary.getSessionModificationState(),
+                    mPrimary.getDisconnectCause(),
+                    getConnectionLabel(),
+                    getCallStateIcon(),
+                    getGatewayNumber(),
+                    mPrimary.hasProperty(Details.PROPERTY_WIFI),
+                    mPrimary.isConferenceCall(),
+                    isWorkCall);
+
+            maybeShowHdAudioIcon();
+            setCallbackNumber();
+        }
+    }
+
+    /**
+     * Show the HD icon if the call is active and has {@link Details#PROPERTY_HIGH_DEF_AUDIO},
+     * except if the call has a last forwarded number (we will show that icon instead).
+     */
+    private void maybeShowHdAudioIcon() {
+        boolean showHdAudioIndicator =
+                isPrimaryCallActive() && mPrimary.hasProperty(Details.PROPERTY_HIGH_DEF_AUDIO) &&
+                TextUtils.isEmpty(mPrimary.getLastForwardedNumber());
+        getUi().showHdAudioIndicator(showHdAudioIndicator);
+    }
+
+    /**
+     * Only show the conference call button if we can manage the conference.
+     */
+    private void maybeShowManageConferenceCallButton() {
+        getUi().showManageConferenceCallButton(shouldShowManageConference());
+    }
+
+    /**
+     * Determines if a pending session modification exists for the current call.  If so, the
+     * progress spinner is shown, and the call state is updated.
+     *
+     * @param callState The call state.
+     * @param sessionModificationState The session modification state.
+     */
+    private void maybeShowProgressSpinner(int callState, int sessionModificationState) {
+        final boolean show = sessionModificationState ==
+                Call.SessionModificationState.WAITING_FOR_RESPONSE
+                && callState == Call.State.ACTIVE;
+        if (show != mSpinnerShowing) {
+            getUi().setProgressSpinnerVisible(show);
+            mSpinnerShowing = show;
+        }
+    }
+
+    /**
+     * Determines if the manage conference button should be visible, based on the current primary
+     * call.
+     *
+     * @return {@code True} if the manage conference button should be visible.
+     */
+    private boolean shouldShowManageConference() {
+        if (mPrimary == null) {
+            return false;
+        }
+
+        return mPrimary.can(android.telecom.Call.Details.CAPABILITY_MANAGE_CONFERENCE)
+                && !mPrimary.isVideoCall(mContext);
+    }
+
+    private void setCallbackNumber() {
+        String callbackNumber = null;
+
+        // Show the emergency callback number if either:
+        // 1. This is an emergency call.
+        // 2. The phone is in Emergency Callback Mode, which means we should show the callback
+        //    number.
+        boolean showCallbackNumber = mPrimary.hasProperty(Details.PROPERTY_EMERGENCY_CALLBACK_MODE);
+
+        if (mPrimary.isEmergencyCall() || showCallbackNumber) {
+            callbackNumber = getSubscriptionNumber();
+        } else {
+            StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
+            if (statusHints != null) {
+                Bundle extras = statusHints.getExtras();
+                if (extras != null) {
+                    callbackNumber = extras.getString(TelecomManager.EXTRA_CALL_BACK_NUMBER);
+                }
+            }
+        }
+
+        final String simNumber = TelecomManagerCompat.getLine1Number(
+                InCallPresenter.getInstance().getTelecomManager(),
+                InCallPresenter.getInstance().getTelephonyManager(),
+                mPrimary.getAccountHandle());
+        if (!showCallbackNumber && PhoneNumberUtils.compare(callbackNumber, simNumber)) {
+            Log.d(this, "Numbers are the same (and callback number is not being forced to show);" +
+                    " not showing the callback number");
+            callbackNumber = null;
+        }
+
+        getUi().setCallbackNumber(callbackNumber, mPrimary.isEmergencyCall() || showCallbackNumber);
+    }
+
+    public void updateCallTime() {
+        final CallCardUi ui = getUi();
+
+        if (ui == null) {
+            mCallTimer.cancel();
+        } else if (!isPrimaryCallActive()) {
+            ui.setPrimaryCallElapsedTime(false, 0);
+            mCallTimer.cancel();
+        } else {
+            final long callStart = mPrimary.getConnectTimeMillis();
+            final long duration = System.currentTimeMillis() - callStart;
+            ui.setPrimaryCallElapsedTime(true, duration);
+        }
+    }
+
+    public void onCallStateButtonTouched() {
+        Intent broadcastIntent = ObjectFactory.getCallStateButtonBroadcastIntent(mContext);
+        if (broadcastIntent != null) {
+            Log.d(this, "Sending call state button broadcast: ", broadcastIntent);
+            mContext.sendBroadcast(broadcastIntent, Manifest.permission.READ_PHONE_STATE);
+        }
+    }
+
+    /**
+     * Handles click on the contact photo by toggling fullscreen mode if the current call is a video
+     * call.
+     */
+    public void onContactPhotoClick() {
+        if (mPrimary != null && mPrimary.isVideoCall(mContext)) {
+            InCallPresenter.getInstance().toggleFullscreenMode();
+        }
+    }
+
+    private void maybeStartSearch(Call call, boolean isPrimary) {
+        // no need to start search for conference calls which show generic info.
+        if (call != null && !call.isConferenceCall()) {
+            startContactInfoSearch(call, isPrimary, call.getState() == Call.State.INCOMING);
+        }
+    }
+
+    private void maybeClearSessionModificationState(Call call) {
+        if (call.getSessionModificationState() !=
+                Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            call.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
+        }
+    }
+
+    /**
+     * Starts a query for more contact data for the save primary and secondary calls.
+     */
+    private void startContactInfoSearch(final Call call, final boolean isPrimary,
+            boolean isIncoming) {
+        final ContactInfoCache cache = ContactInfoCache.getInstance(mContext);
+
+        cache.findInfo(call, isIncoming, new ContactLookupCallback(this, isPrimary));
+    }
+
+    private void onContactInfoComplete(String callId, ContactCacheEntry entry, boolean isPrimary) {
+        final boolean entryMatchesExistingCall =
+                (isPrimary && mPrimary != null && TextUtils.equals(callId,  mPrimary.getId())) ||
+                (!isPrimary && mSecondary != null && TextUtils.equals(callId, mSecondary.getId()));
+        if (entryMatchesExistingCall) {
+            updateContactEntry(entry, isPrimary);
+        } else {
+            Log.w(this, "Dropping stale contact lookup info for " + callId);
+        }
+
+        final Call call = CallList.getInstance().getCallById(callId);
+        if (call != null) {
+            call.getLogState().contactLookupResult = entry.contactLookupResult;
+        }
+        if (entry.contactUri != null) {
+            CallerInfoUtils.sendViewNotification(mContext, entry.contactUri);
+        }
+    }
+
+    private void onImageLoadComplete(String callId, ContactCacheEntry entry) {
+        if (getUi() == null) {
+            return;
+        }
+
+        if (entry.photo != null) {
+            if (mPrimary != null && callId.equals(mPrimary.getId())) {
+                boolean showContactPhoto = !VideoCallPresenter.showIncomingVideo(
+                        mPrimary.getVideoState(), mPrimary.getState());
+                getUi().setPrimaryImage(entry.photo, showContactPhoto);
+            }
+        }
+    }
+
+    private void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {
+        if (getUi() == null) {
+            return;
+        }
+
+        if (mPrimary != null && callId.equals(mPrimary.getId())) {
+            mPrimaryContactInfo.locationAddress = entry.locationAddress;
+            updateContactInteractions();
+        }
+    }
+
+    @Override
+    public void onLocationReady() {
+        // This will only update the contacts interactions data if the location returns after
+        // the contact information is found.
+        updateContactInteractions();
+    }
+
+    private void updateContactInteractions() {
+        if (mPrimary != null && mPrimaryContactInfo != null
+                && (mPrimaryContactInfo.locationAddress != null
+                        || mPrimaryContactInfo.openingHours != null)) {
+            // TODO: This is hardcoded to "isBusiness" because functionality to differentiate
+            // between business and personal has not yet been added.
+            if (setInCallContactInteractionsType(true /* isBusiness */)) {
+                getUi().setContactContextTitle(
+                        mInCallContactInteractions.getBusinessListHeaderView());
+            }
+
+            mInCallContactInteractions.setBusinessInfo(
+                    mPrimaryContactInfo.locationAddress,
+                    mDistanceHelper.calculateDistance(mPrimaryContactInfo.locationAddress),
+                    mPrimaryContactInfo.openingHours);
+            getUi().setContactContextContent(mInCallContactInteractions.getListAdapter());
+            getUi().showContactContext(mPrimary.getState() != State.INCOMING);
+        } else {
+            getUi().showContactContext(false);
+        }
+    }
+
+    /**
+     * Update the contact interactions type so that the correct UI is shown.
+     *
+     * @param isBusiness {@code true} if the interaction is a business interaction, {@code false} if
+     * it is a personal contact.
+     *
+     * @return {@code true} if this is a new type of contact interaction (business or personal).
+     * {@code false} if it hasn't changed.
+     */
+    private boolean setInCallContactInteractionsType(boolean isBusiness) {
+        if (mInCallContactInteractions == null) {
+            mInCallContactInteractions =
+                    new InCallContactInteractions(mContext, isBusiness);
+            return true;
+        }
+
+        return mInCallContactInteractions.switchContactType(isBusiness);
+    }
+
+    private void updateContactEntry(ContactCacheEntry entry, boolean isPrimary) {
+        if (isPrimary) {
+            mPrimaryContactInfo = entry;
+            updatePrimaryDisplayInfo();
+        } else {
+            mSecondaryContactInfo = entry;
+            updateSecondaryDisplayInfo();
+        }
+    }
+
+    /**
+     * Get the highest priority call to display.
+     * Goes through the calls and chooses which to return based on priority of which type of call
+     * to display to the user. Callers can use the "ignore" feature to get the second best call
+     * by passing a previously found primary call as ignore.
+     *
+     * @param ignore A call to ignore if found.
+     */
+    private Call getCallToDisplay(CallList callList, Call ignore, boolean skipDisconnected) {
+        // Active calls come second.  An active call always gets precedent.
+        Call retval = callList.getActiveCall();
+        if (retval != null && retval != ignore) {
+            return retval;
+        }
+
+        // Disconnected calls get primary position if there are no active calls
+        // to let user know quickly what call has disconnected. Disconnected
+        // calls are very short lived.
+        if (!skipDisconnected) {
+            retval = callList.getDisconnectingCall();
+            if (retval != null && retval != ignore) {
+                return retval;
+            }
+            retval = callList.getDisconnectedCall();
+            if (retval != null && retval != ignore) {
+                return retval;
+            }
+        }
+
+        // Then we go to background call (calls on hold)
+        retval = callList.getBackgroundCall();
+        if (retval != null && retval != ignore) {
+            return retval;
+        }
+
+        // Lastly, we go to a second background call.
+        retval = callList.getSecondBackgroundCall();
+
+        return retval;
+    }
+
+    private void updatePrimaryDisplayInfo() {
+        final CallCardUi ui = getUi();
+        if (ui == null) {
+            // TODO: May also occur if search result comes back after ui is destroyed. Look into
+            // removing that case completely.
+            Log.d(TAG, "updatePrimaryDisplayInfo called but ui is null!");
+            return;
+        }
+
+        if (mPrimary == null) {
+            // Clear the primary display info.
+            ui.setPrimary(null, null, false, null, null, false, false, false);
+            return;
+        }
+
+        // Hide the contact photo if we are in a video call and the incoming video surface is
+        // showing.
+        boolean showContactPhoto = !VideoCallPresenter
+                .showIncomingVideo(mPrimary.getVideoState(), mPrimary.getState());
+
+        // Call placed through a work phone account.
+        boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_WORK_CALL);
+
+        if (mPrimary.isConferenceCall()) {
+            Log.d(TAG, "Update primary display info for conference call.");
+
+            ui.setPrimary(
+                    null /* number */,
+                    getConferenceString(mPrimary),
+                    false /* nameIsNumber */,
+                    null /* label */,
+                    getConferencePhoto(mPrimary),
+                    false /* isSipCall */,
+                    showContactPhoto,
+                    hasWorkCallProperty);
+        } else if (mPrimaryContactInfo != null) {
+            Log.d(TAG, "Update primary display info for " + mPrimaryContactInfo);
+
+            String name = getNameForCall(mPrimaryContactInfo);
+            String number;
+
+            boolean isChildNumberShown = !TextUtils.isEmpty(mPrimary.getChildNumber());
+            boolean isForwardedNumberShown = !TextUtils.isEmpty(mPrimary.getLastForwardedNumber());
+            boolean isCallSubjectShown = shouldShowCallSubject(mPrimary);
+
+            if (isCallSubjectShown) {
+                ui.setCallSubject(mPrimary.getCallSubject());
+            } else {
+                ui.setCallSubject(null);
+            }
+
+            if (isCallSubjectShown) {
+                number = null;
+            } else if (isChildNumberShown) {
+                number = mContext.getString(R.string.child_number, mPrimary.getChildNumber());
+            } else if (isForwardedNumberShown) {
+                // Use last forwarded number instead of second line, if present.
+                number = mPrimary.getLastForwardedNumber();
+            } else {
+                number = getNumberForCall(mPrimaryContactInfo);
+            }
+
+            ui.showForwardIndicator(isForwardedNumberShown);
+            maybeShowHdAudioIcon();
+
+            boolean nameIsNumber = name != null && name.equals(mPrimaryContactInfo.number);
+            // Call with caller that is a work contact.
+            boolean isWorkContact = (mPrimaryContactInfo.userType == ContactsUtils.USER_TYPE_WORK);
+            ui.setPrimary(
+                    number,
+                    name,
+                    nameIsNumber,
+                    isChildNumberShown || isCallSubjectShown ? null : mPrimaryContactInfo.label,
+                    mPrimaryContactInfo.photo,
+                    mPrimaryContactInfo.isSipCall,
+                    showContactPhoto,
+                    hasWorkCallProperty || isWorkContact);
+
+            updateContactInteractions();
+        } else {
+            // Clear the primary display info.
+            ui.setPrimary(null, null, false, null, null, false, false, false);
+        }
+
+        if (mEmergencyCallListener != null) {
+            boolean isEmergencyCall = mPrimary.isEmergencyCall();
+            mEmergencyCallListener.onCallUpdated((BaseFragment) ui, isEmergencyCall);
+        }
+    }
+
+    private void updateSecondaryDisplayInfo() {
+        final CallCardUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        if (mSecondary == null) {
+            // Clear the secondary display info.
+            ui.setSecondary(false, null, false, null, null, false /* isConference */,
+                    false /* isVideoCall */, mIsFullscreen);
+            return;
+        }
+
+        if (mSecondary.isConferenceCall()) {
+            ui.setSecondary(
+                    true /* show */,
+                    getConferenceString(mSecondary),
+                    false /* nameIsNumber */,
+                    null /* label */,
+                    getCallProviderLabel(mSecondary),
+                    true /* isConference */,
+                    mSecondary.isVideoCall(mContext),
+                    mIsFullscreen);
+        } else if (mSecondaryContactInfo != null) {
+            Log.d(TAG, "updateSecondaryDisplayInfo() " + mSecondaryContactInfo);
+            String name = getNameForCall(mSecondaryContactInfo);
+            boolean nameIsNumber = name != null && name.equals(mSecondaryContactInfo.number);
+            ui.setSecondary(
+                    true /* show */,
+                    name,
+                    nameIsNumber,
+                    mSecondaryContactInfo.label,
+                    getCallProviderLabel(mSecondary),
+                    false /* isConference */,
+                    mSecondary.isVideoCall(mContext),
+                    mIsFullscreen);
+        } else {
+            // Clear the secondary display info.
+            ui.setSecondary(false, null, false, null, null, false /* isConference */,
+                    false /* isVideoCall */, mIsFullscreen);
+        }
+    }
+
+
+    /**
+     * Gets the phone account to display for a call.
+     */
+    private PhoneAccount getAccountForCall(Call call) {
+        PhoneAccountHandle accountHandle = call.getAccountHandle();
+        if (accountHandle == null) {
+            return null;
+        }
+        return TelecomManagerCompat.getPhoneAccount(
+                InCallPresenter.getInstance().getTelecomManager(),
+                accountHandle);
+    }
+
+    /**
+     * Returns the gateway number for any existing outgoing call.
+     */
+    private String getGatewayNumber() {
+        if (hasOutgoingGatewayCall()) {
+            return getNumberFromHandle(mPrimary.getGatewayInfo().getGatewayAddress());
+        }
+        return null;
+    }
+
+    /**
+     * Return the string label to represent the call provider
+     */
+    private String getCallProviderLabel(Call call) {
+        PhoneAccount account = getAccountForCall(call);
+        TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
+        if (account != null && !TextUtils.isEmpty(account.getLabel())
+                && TelecomManagerCompat.getCallCapablePhoneAccounts(mgr).size() > 1) {
+            return account.getLabel().toString();
+        }
+        return null;
+    }
+
+    /**
+     * Returns the label (line of text above the number/name) for any given call.
+     * For example, "calling via [Account/Google Voice]" for outgoing calls.
+     */
+    private String getConnectionLabel() {
+        StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
+        if (statusHints != null && !TextUtils.isEmpty(statusHints.getLabel())) {
+            return statusHints.getLabel().toString();
+        }
+
+        if (hasOutgoingGatewayCall() && getUi() != null) {
+            // Return the label for the gateway app on outgoing calls.
+            final PackageManager pm = mContext.getPackageManager();
+            try {
+                ApplicationInfo info = pm.getApplicationInfo(
+                        mPrimary.getGatewayInfo().getGatewayProviderPackageName(), 0);
+                return pm.getApplicationLabel(info).toString();
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.e(this, "Gateway Application Not Found.", e);
+                return null;
+            }
+        }
+        return getCallProviderLabel(mPrimary);
+    }
+
+    private Drawable getCallStateIcon() {
+        // Return connection icon if one exists.
+        StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
+        if (statusHints != null && statusHints.getIcon() != null) {
+            Drawable icon = statusHints.getIcon().loadDrawable(mContext);
+            if (icon != null) {
+                return icon;
+            }
+        }
+
+        return null;
+    }
+
+    private boolean hasOutgoingGatewayCall() {
+        // We only display the gateway information while STATE_DIALING so return false for any other
+        // call state.
+        // TODO: mPrimary can be null because this is called from updatePrimaryDisplayInfo which
+        // is also called after a contact search completes (call is not present yet).  Split the
+        // UI update so it can receive independent updates.
+        if (mPrimary == null) {
+            return false;
+        }
+        return Call.State.isDialing(mPrimary.getState()) && mPrimary.getGatewayInfo() != null &&
+                !mPrimary.getGatewayInfo().isEmpty();
+    }
+
+    /**
+     * Gets the name to display for the call.
+     */
+    @NeededForTesting
+    String getNameForCall(ContactCacheEntry contactInfo) {
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(
+                contactInfo.namePrimary,
+                contactInfo.nameAlternative,
+                mContactsPreferences);
+        if (TextUtils.isEmpty(preferredName)) {
+            return contactInfo.number;
+        }
+        return preferredName;
+    }
+
+    /**
+     * Gets the number to display for a call.
+     */
+    @NeededForTesting
+    String getNumberForCall(ContactCacheEntry contactInfo) {
+        // If the name is empty, we use the number for the name...so don't show a second
+        // number in the number field
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(
+                    contactInfo.namePrimary,
+                    contactInfo.nameAlternative,
+                    mContactsPreferences);
+        if (TextUtils.isEmpty(preferredName)) {
+            return contactInfo.location;
+        }
+        return contactInfo.number;
+    }
+
+    public void secondaryInfoClicked() {
+        if (mSecondary == null) {
+            Log.w(this, "Secondary info clicked but no secondary call.");
+            return;
+        }
+
+        Log.i(this, "Swapping call to foreground: " + mSecondary);
+        TelecomAdapter.getInstance().unholdCall(mSecondary.getId());
+    }
+
+    public void endCallClicked() {
+        if (mPrimary == null) {
+            return;
+        }
+
+        Log.i(this, "Disconnecting call: " + mPrimary);
+        final String callId = mPrimary.getId();
+        mPrimary.setState(Call.State.DISCONNECTING);
+        CallList.getInstance().onUpdate(mPrimary);
+        TelecomAdapter.getInstance().disconnectCall(callId);
+    }
+
+    private String getNumberFromHandle(Uri handle) {
+        return handle == null ? "" : handle.getSchemeSpecificPart();
+    }
+
+    /**
+     * Handles a change to the fullscreen mode of the in-call UI.
+     *
+     * @param isFullscreenMode {@code True} if the in-call UI is entering full screen mode.
+     */
+    @Override
+    public void onFullscreenModeChanged(boolean isFullscreenMode) {
+        mIsFullscreen = isFullscreenMode;
+        final CallCardUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+        ui.setCallCardVisible(!isFullscreenMode);
+        ui.setSecondaryInfoVisible(!isFullscreenMode);
+    }
+
+    @Override
+    public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        // No-op - the Call Card is the origin of this event.
+    }
+
+    private boolean isPrimaryCallActive() {
+        return mPrimary != null && mPrimary.getState() == Call.State.ACTIVE;
+    }
+
+    private String getConferenceString(Call call) {
+        boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE);
+        Log.v(this, "getConferenceString: " + isGenericConference);
+
+        final int resId = isGenericConference
+                ? R.string.card_title_in_call : R.string.card_title_conf_call;
+        return mContext.getResources().getString(resId);
+    }
+
+    private Drawable getConferencePhoto(Call call) {
+        boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE);
+        Log.v(this, "getConferencePhoto: " + isGenericConference);
+
+        final int resId = isGenericConference
+                ? R.drawable.img_phone : R.drawable.img_conference;
+        Drawable photo = mContext.getResources().getDrawable(resId);
+        photo.setAutoMirrored(true);
+        return photo;
+    }
+
+    private boolean shouldShowEndCallButton(Call primary, int callState) {
+        if (primary == null) {
+            return false;
+        }
+        if ((!Call.State.isConnectingOrConnected(callState)
+                && callState != Call.State.DISCONNECTING) || callState == Call.State.INCOMING) {
+            return false;
+        }
+        if (mPrimary.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            return false;
+        }
+        return true;
+    }
+
+    private void maybeSendAccessibilityEvent(InCallState oldState, InCallState newState) {
+        if (mContext == null) {
+            return;
+        }
+        final AccessibilityManager am = (AccessibilityManager) mContext.getSystemService(
+                Context.ACCESSIBILITY_SERVICE);
+        if (!am.isEnabled()) {
+            return;
+        }
+        if ((oldState != InCallState.OUTGOING && newState == InCallState.OUTGOING)
+                || (oldState != InCallState.INCOMING && newState == InCallState.INCOMING)) {
+            if (getUi() != null) {
+                getUi().sendAccessibilityAnnouncement();
+            }
+        }
+    }
+
+    /**
+     * Determines whether the call subject should be visible on the UI.  For the call subject to be
+     * visible, the call has to be in an incoming or waiting state, and the subject must not be
+     * empty.
+     *
+     * @param call The call.
+     * @return {@code true} if the subject should be shown, {@code false} otherwise.
+     */
+    private boolean shouldShowCallSubject(Call call) {
+        if (call == null) {
+            return false;
+        }
+
+        boolean isIncomingOrWaiting = mPrimary.getState() == Call.State.INCOMING ||
+                mPrimary.getState() == Call.State.CALL_WAITING;
+        return isIncomingOrWaiting && !TextUtils.isEmpty(call.getCallSubject()) &&
+                call.getNumberPresentation() == TelecomManager.PRESENTATION_ALLOWED &&
+                call.isCallSubjectSupported();
+    }
+
+    /**
+     * Determines whether the "note sent" toast should be shown.  It should be shown for a new
+     * outgoing call with a subject.
+     *
+     * @param call The call
+     * @return {@code true} if the toast should be shown, {@code false} otherwise.
+     */
+    private boolean shouldShowNoteSentToast(Call call) {
+        return call != null && hasCallSubject(call) && (call.getState() == Call.State.DIALING
+                || call.getState() == Call.State.CONNECTING);
+    }
+
+    private static boolean hasCallSubject(Call call) {
+        return !TextUtils.isEmpty(call.getTelecomCall().getDetails().getIntentExtras()
+                .getString(TelecomManager.EXTRA_CALL_SUBJECT));
+    }
+
+    public interface CallCardUi extends Ui {
+        void setVisible(boolean on);
+        void setContactContextTitle(View listHeaderView);
+        void setContactContextContent(ListAdapter listAdapter);
+        void showContactContext(boolean show);
+        void setCallCardVisible(boolean visible);
+        void setPrimary(String number, String name, boolean nameIsNumber, String label,
+                Drawable photo, boolean isSipCall, boolean isContactPhotoShown, boolean isWorkCall);
+        void setSecondary(boolean show, String name, boolean nameIsNumber, String label,
+                String providerLabel, boolean isConference, boolean isVideoCall,
+                boolean isFullscreen);
+        void setSecondaryInfoVisible(boolean visible);
+        void setCallState(int state, int videoState, int sessionModificationState,
+                DisconnectCause disconnectCause, String connectionLabel,
+                Drawable connectionIcon, String gatewayNumber, boolean isWifi,
+                boolean isConference, boolean isWorkCall);
+        void setPrimaryCallElapsedTime(boolean show, long duration);
+        void setPrimaryName(String name, boolean nameIsNumber);
+        void setPrimaryImage(Drawable image, boolean isVisible);
+        void setPrimaryPhoneNumber(String phoneNumber);
+        void setPrimaryLabel(String label);
+        void setEndCallButtonEnabled(boolean enabled, boolean animate);
+        void setCallbackNumber(String number, boolean isEmergencyCalls);
+        void setCallSubject(String callSubject);
+        void setProgressSpinnerVisible(boolean visible);
+        void showHdAudioIndicator(boolean visible);
+        void showForwardIndicator(boolean visible);
+        void showManageConferenceCallButton(boolean visible);
+        boolean isManageConferenceVisible();
+        boolean isCallSubjectVisible();
+        void animateForNewOutgoingCall();
+        void sendAccessibilityAnnouncement();
+        void showNoteSentToast();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
new file mode 100644
index 0000000..99def36
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -0,0 +1,674 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.os.Handler;
+import android.os.Message;
+import android.os.Trace;
+import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccount;
+
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.logging.Logger;
+import com.android.incallui.util.TelecomCallUtil;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Maintains the list of active calls and notifies interested classes of changes to the call list
+ * as they are received from the telephony stack. Primary listener of changes to this class is
+ * InCallPresenter.
+ */
+public class CallList {
+
+    private static final int DISCONNECTED_CALL_SHORT_TIMEOUT_MS = 200;
+    private static final int DISCONNECTED_CALL_MEDIUM_TIMEOUT_MS = 2000;
+    private static final int DISCONNECTED_CALL_LONG_TIMEOUT_MS = 5000;
+
+    private static final int EVENT_DISCONNECTED_TIMEOUT = 1;
+    private static final long BLOCK_QUERY_TIMEOUT_MS = 1000;
+
+    private static CallList sInstance = new CallList();
+
+    private final HashMap<String, Call> mCallById = new HashMap<>();
+    private final HashMap<android.telecom.Call, Call> mCallByTelecomCall = new HashMap<>();
+    private final HashMap<String, List<String>> mCallTextReponsesMap = Maps.newHashMap();
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
+    private final Set<Listener> mListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<Listener, Boolean>(8, 0.9f, 1));
+    private final HashMap<String, List<CallUpdateListener>> mCallUpdateListenerMap = Maps
+            .newHashMap();
+    private final Set<Call> mPendingDisconnectCalls = Collections.newSetFromMap(
+            new ConcurrentHashMap<Call, Boolean>(8, 0.9f, 1));
+    private FilteredNumberAsyncQueryHandler mFilteredQueryHandler;
+
+    /**
+     * Static singleton accessor method.
+     */
+    public static CallList getInstance() {
+        return sInstance;
+    }
+
+    /**
+     * USED ONLY FOR TESTING
+     * Testing-only constructor.  Instance should only be acquired through getInstance().
+     */
+    @NeededForTesting
+    CallList() {
+    }
+
+    public void onCallAdded(final android.telecom.Call telecomCall) {
+        Trace.beginSection("onCallAdded");
+        final Call call = new Call(telecomCall);
+        Log.d(this, "onCallAdded: callState=" + call.getState());
+
+        if (call.getState() == Call.State.INCOMING ||
+                call.getState() == Call.State.CALL_WAITING) {
+            onIncoming(call, call.getCannedSmsResponses());
+        } else {
+            onUpdate(call);
+        }
+
+        call.logCallInitiationType();
+        Trace.endSection();
+    }
+
+    public void onCallRemoved(android.telecom.Call telecomCall) {
+        if (mCallByTelecomCall.containsKey(telecomCall)) {
+            Call call = mCallByTelecomCall.get(telecomCall);
+            Logger.logCall(call);
+            if (updateCallInMap(call)) {
+                Log.w(this, "Removing call not previously disconnected " + call.getId());
+            }
+            updateCallTextMap(call, null);
+        }
+    }
+
+    /**
+     * Called when a single call disconnects.
+     */
+    public void onDisconnect(Call call) {
+        if (updateCallInMap(call)) {
+            Log.i(this, "onDisconnect: " + call);
+            // notify those listening for changes on this specific change
+            notifyCallUpdateListeners(call);
+            // notify those listening for all disconnects
+            notifyListenersOfDisconnect(call);
+        }
+    }
+
+    /**
+     * Called when a single call has changed.
+     */
+    public void onIncoming(Call call, List<String> textMessages) {
+        if (updateCallInMap(call)) {
+            Log.i(this, "onIncoming - " + call);
+        }
+        updateCallTextMap(call, textMessages);
+
+        for (Listener listener : mListeners) {
+            listener.onIncomingCall(call);
+        }
+    }
+
+    public void onUpgradeToVideo(Call call){
+        Log.d(this, "onUpgradeToVideo call=" + call);
+        for (Listener listener : mListeners) {
+            listener.onUpgradeToVideo(call);
+        }
+    }
+    /**
+     * Called when a single call has changed.
+     */
+    public void onUpdate(Call call) {
+        Trace.beginSection("onUpdate");
+        onUpdateCall(call);
+        notifyGenericListeners();
+        Trace.endSection();
+    }
+
+    /**
+     * Called when a single call has changed session modification state.
+     *
+     * @param call The call.
+     * @param sessionModificationState The new session modification state.
+     */
+    public void onSessionModificationStateChange(Call call, int sessionModificationState) {
+        final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+        if (listeners != null) {
+            for (CallUpdateListener listener : listeners) {
+                listener.onSessionModificationStateChange(sessionModificationState);
+            }
+        }
+    }
+
+    /**
+     * Called when the last forwarded number changes for a call.  With IMS, the last forwarded
+     * number changes due to a supplemental service notification, so it is not pressent at the
+     * start of the call.
+     *
+     * @param call The call.
+     */
+    public void onLastForwardedNumberChange(Call call) {
+        final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+        if (listeners != null) {
+            for (CallUpdateListener listener : listeners) {
+                listener.onLastForwardedNumberChange();
+            }
+        }
+    }
+
+    /**
+     * Called when the child number changes for a call.  The child number can be received after a
+     * call is initially set up, so we need to be able to inform listeners of the change.
+     *
+     * @param call The call.
+     */
+    public void onChildNumberChange(Call call) {
+        final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+        if (listeners != null) {
+            for (CallUpdateListener listener : listeners) {
+                listener.onChildNumberChange();
+            }
+        }
+    }
+
+    public void notifyCallUpdateListeners(Call call) {
+        final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+        if (listeners != null) {
+            for (CallUpdateListener listener : listeners) {
+                listener.onCallChanged(call);
+            }
+        }
+    }
+
+    /**
+     * Add a call update listener for a call id.
+     *
+     * @param callId The call id to get updates for.
+     * @param listener The listener to add.
+     */
+    public void addCallUpdateListener(String callId, CallUpdateListener listener) {
+        List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(callId);
+        if (listeners == null) {
+            listeners = new CopyOnWriteArrayList<CallUpdateListener>();
+            mCallUpdateListenerMap.put(callId, listeners);
+        }
+        listeners.add(listener);
+    }
+
+    /**
+     * Remove a call update listener for a call id.
+     *
+     * @param callId The call id to remove the listener for.
+     * @param listener The listener to remove.
+     */
+    public void removeCallUpdateListener(String callId, CallUpdateListener listener) {
+        List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(callId);
+        if (listeners != null) {
+            listeners.remove(listener);
+        }
+    }
+
+    public void addListener(Listener listener) {
+        Preconditions.checkNotNull(listener);
+
+        mListeners.add(listener);
+
+        // Let the listener know about the active calls immediately.
+        listener.onCallListChange(this);
+    }
+
+    public void removeListener(Listener listener) {
+        if (listener != null) {
+            mListeners.remove(listener);
+        }
+    }
+
+    /**
+     * TODO: Change so that this function is not needed. Instead of assuming there is an active
+     * call, the code should rely on the status of a specific Call and allow the presenters to
+     * update the Call object when the active call changes.
+     */
+    public Call getIncomingOrActive() {
+        Call retval = getIncomingCall();
+        if (retval == null) {
+            retval = getActiveCall();
+        }
+        return retval;
+    }
+
+    public Call getOutgoingOrActive() {
+        Call retval = getOutgoingCall();
+        if (retval == null) {
+            retval = getActiveCall();
+        }
+        return retval;
+    }
+
+    /**
+     * A call that is waiting for {@link PhoneAccount} selection
+     */
+    public Call getWaitingForAccountCall() {
+        return getFirstCallWithState(Call.State.SELECT_PHONE_ACCOUNT);
+    }
+
+    public Call getPendingOutgoingCall() {
+        return getFirstCallWithState(Call.State.CONNECTING);
+    }
+
+    public Call getOutgoingCall() {
+        Call call = getFirstCallWithState(Call.State.DIALING);
+        if (call == null) {
+            call = getFirstCallWithState(Call.State.REDIALING);
+        }
+        return call;
+    }
+
+    public Call getActiveCall() {
+        return getFirstCallWithState(Call.State.ACTIVE);
+    }
+
+    public Call getBackgroundCall() {
+        return getFirstCallWithState(Call.State.ONHOLD);
+    }
+
+    public Call getDisconnectedCall() {
+        return getFirstCallWithState(Call.State.DISCONNECTED);
+    }
+
+    public Call getDisconnectingCall() {
+        return getFirstCallWithState(Call.State.DISCONNECTING);
+    }
+
+    public Call getSecondBackgroundCall() {
+        return getCallWithState(Call.State.ONHOLD, 1);
+    }
+
+    public Call getActiveOrBackgroundCall() {
+        Call call = getActiveCall();
+        if (call == null) {
+            call = getBackgroundCall();
+        }
+        return call;
+    }
+
+    public Call getIncomingCall() {
+        Call call = getFirstCallWithState(Call.State.INCOMING);
+        if (call == null) {
+            call = getFirstCallWithState(Call.State.CALL_WAITING);
+        }
+
+        return call;
+    }
+
+    public Call getFirstCall() {
+        Call result = getIncomingCall();
+        if (result == null) {
+            result = getPendingOutgoingCall();
+        }
+        if (result == null) {
+            result = getOutgoingCall();
+        }
+        if (result == null) {
+            result = getFirstCallWithState(Call.State.ACTIVE);
+        }
+        if (result == null) {
+            result = getDisconnectingCall();
+        }
+        if (result == null) {
+            result = getDisconnectedCall();
+        }
+        return result;
+    }
+
+    public boolean hasLiveCall() {
+        Call call = getFirstCall();
+        if (call == null) {
+            return false;
+        }
+        return call != getDisconnectingCall() && call != getDisconnectedCall();
+    }
+
+    /**
+     * Returns the first call found in the call map with the specified call modification state.
+     * @param state The session modification state to search for.
+     * @return The first call with the specified state.
+     */
+    public Call getVideoUpgradeRequestCall() {
+        for(Call call : mCallById.values()) {
+            if (call.getSessionModificationState() ==
+                    Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+                return call;
+            }
+        }
+        return null;
+    }
+
+    public Call getCallById(String callId) {
+        return mCallById.get(callId);
+    }
+
+    public Call getCallByTelecomCall(android.telecom.Call telecomCall) {
+        return mCallByTelecomCall.get(telecomCall);
+    }
+
+    public List<String> getTextResponses(String callId) {
+        return mCallTextReponsesMap.get(callId);
+    }
+
+    /**
+     * Returns first call found in the call map with the specified state.
+     */
+    public Call getFirstCallWithState(int state) {
+        return getCallWithState(state, 0);
+    }
+
+    /**
+     * Returns the [position]th call found in the call map with the specified state.
+     * TODO: Improve this logic to sort by call time.
+     */
+    public Call getCallWithState(int state, int positionToFind) {
+        Call retval = null;
+        int position = 0;
+        for (Call call : mCallById.values()) {
+            if (call.getState() == state) {
+                if (position >= positionToFind) {
+                    retval = call;
+                    break;
+                } else {
+                    position++;
+                }
+            }
+        }
+
+        return retval;
+    }
+
+    /**
+     * This is called when the service disconnects, either expectedly or unexpectedly.
+     * For the expected case, it's because we have no calls left.  For the unexpected case,
+     * it is likely a crash of phone and we need to clean up our calls manually.  Without phone,
+     * there can be no active calls, so this is relatively safe thing to do.
+     */
+    public void clearOnDisconnect() {
+        for (Call call : mCallById.values()) {
+            final int state = call.getState();
+            if (state != Call.State.IDLE &&
+                    state != Call.State.INVALID &&
+                    state != Call.State.DISCONNECTED) {
+
+                call.setState(Call.State.DISCONNECTED);
+                call.setDisconnectCause(new DisconnectCause(DisconnectCause.UNKNOWN));
+                updateCallInMap(call);
+            }
+        }
+        notifyGenericListeners();
+    }
+
+    /**
+     * Called when the user has dismissed an error dialog. This indicates acknowledgement of
+     * the disconnect cause, and that any pending disconnects should immediately occur.
+     */
+    public void onErrorDialogDismissed() {
+        final Iterator<Call> iterator = mPendingDisconnectCalls.iterator();
+        while (iterator.hasNext()) {
+            Call call = iterator.next();
+            iterator.remove();
+            finishDisconnectedCall(call);
+        }
+    }
+
+    /**
+     * Processes an update for a single call.
+     *
+     * @param call The call to update.
+     */
+    private void onUpdateCall(Call call) {
+        Log.d(this, "\t" + call);
+        if (updateCallInMap(call)) {
+            Log.i(this, "onUpdate - " + call);
+        }
+        updateCallTextMap(call, call.getCannedSmsResponses());
+        notifyCallUpdateListeners(call);
+    }
+
+    /**
+     * Sends a generic notification to all listeners that something has changed.
+     * It is up to the listeners to call back to determine what changed.
+     */
+    private void notifyGenericListeners() {
+        for (Listener listener : mListeners) {
+            listener.onCallListChange(this);
+        }
+    }
+
+    private void notifyListenersOfDisconnect(Call call) {
+        for (Listener listener : mListeners) {
+            listener.onDisconnect(call);
+        }
+    }
+
+    /**
+     * Updates the call entry in the local map.
+     * @return false if no call previously existed and no call was added, otherwise true.
+     */
+    private boolean updateCallInMap(Call call) {
+        Preconditions.checkNotNull(call);
+
+        boolean updated = false;
+
+        if (call.getState() == Call.State.DISCONNECTED) {
+            // update existing (but do not add!!) disconnected calls
+            if (mCallById.containsKey(call.getId())) {
+                // For disconnected calls, we want to keep them alive for a few seconds so that the
+                // UI has a chance to display anything it needs when a call is disconnected.
+
+                // Set up a timer to destroy the call after X seconds.
+                final Message msg = mHandler.obtainMessage(EVENT_DISCONNECTED_TIMEOUT, call);
+                mHandler.sendMessageDelayed(msg, getDelayForDisconnect(call));
+                mPendingDisconnectCalls.add(call);
+
+                mCallById.put(call.getId(), call);
+                mCallByTelecomCall.put(call.getTelecomCall(), call);
+                updated = true;
+            }
+        } else if (!isCallDead(call)) {
+            mCallById.put(call.getId(), call);
+            mCallByTelecomCall.put(call.getTelecomCall(), call);
+            updated = true;
+        } else if (mCallById.containsKey(call.getId())) {
+            mCallById.remove(call.getId());
+            mCallByTelecomCall.remove(call.getTelecomCall());
+            updated = true;
+        }
+
+        return updated;
+    }
+
+    private int getDelayForDisconnect(Call call) {
+        Preconditions.checkState(call.getState() == Call.State.DISCONNECTED);
+
+
+        final int cause = call.getDisconnectCause().getCode();
+        final int delay;
+        switch (cause) {
+            case DisconnectCause.LOCAL:
+                delay = DISCONNECTED_CALL_SHORT_TIMEOUT_MS;
+                break;
+            case DisconnectCause.REMOTE:
+            case DisconnectCause.ERROR:
+                delay = DISCONNECTED_CALL_MEDIUM_TIMEOUT_MS;
+                break;
+            case DisconnectCause.REJECTED:
+            case DisconnectCause.MISSED:
+            case DisconnectCause.CANCELED:
+                // no delay for missed/rejected incoming calls and canceled outgoing calls.
+                delay = 0;
+                break;
+            default:
+                delay = DISCONNECTED_CALL_LONG_TIMEOUT_MS;
+                break;
+        }
+
+        return delay;
+    }
+
+    private void updateCallTextMap(Call call, List<String> textResponses) {
+        Preconditions.checkNotNull(call);
+
+        if (!isCallDead(call)) {
+            if (textResponses != null) {
+                mCallTextReponsesMap.put(call.getId(), textResponses);
+            }
+        } else if (mCallById.containsKey(call.getId())) {
+            mCallTextReponsesMap.remove(call.getId());
+        }
+    }
+
+    private boolean isCallDead(Call call) {
+        final int state = call.getState();
+        return Call.State.IDLE == state || Call.State.INVALID == state;
+    }
+
+    /**
+     * Sets up a call for deletion and notifies listeners of change.
+     */
+    private void finishDisconnectedCall(Call call) {
+        if (mPendingDisconnectCalls.contains(call)) {
+            mPendingDisconnectCalls.remove(call);
+        }
+        call.setState(Call.State.IDLE);
+        updateCallInMap(call);
+        notifyGenericListeners();
+    }
+
+    /**
+     * Notifies all video calls of a change in device orientation.
+     *
+     * @param rotation The new rotation angle (in degrees).
+     */
+    public void notifyCallsOfDeviceRotation(int rotation) {
+        for (Call call : mCallById.values()) {
+            // First, ensure that the call videoState has video enabled (there is no need to set
+            // device orientation on a voice call which has not yet been upgraded to video).
+            // Second, ensure a VideoCall is set on the call so that the change can be sent to the
+            // provider (a VideoCall can be present for a call that does not currently have video,
+            // but can be upgraded to video).
+
+            // NOTE: is it necessary to use this order because getVideoCall references the class
+            // VideoProfile which is not available on APIs <23 (M).
+            if (VideoUtils.isVideoCall(call) && call.getVideoCall() != null) {
+                call.getVideoCall().setDeviceOrientation(rotation);
+            }
+        }
+    }
+
+    /**
+     * Handles the timeout for destroying disconnected calls.
+     */
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case EVENT_DISCONNECTED_TIMEOUT:
+                    Log.d(this, "EVENT_DISCONNECTED_TIMEOUT ", msg.obj);
+                    finishDisconnectedCall((Call) msg.obj);
+                    break;
+                default:
+                    Log.wtf(this, "Message not expected: " + msg.what);
+                    break;
+            }
+        }
+    };
+
+    public void setFilteredNumberQueryHandler(FilteredNumberAsyncQueryHandler handler) {
+        mFilteredQueryHandler = handler;
+    }
+
+    /**
+     * Listener interface for any class that wants to be notified of changes
+     * to the call list.
+     */
+    public interface Listener {
+        /**
+         * Called when a new incoming call comes in.
+         * This is the only method that gets called for incoming calls. Listeners
+         * that want to perform an action on incoming call should respond in this method
+         * because {@link #onCallListChange} does not automatically get called for
+         * incoming calls.
+         */
+        public void onIncomingCall(Call call);
+        /**
+         * Called when a new modify call request comes in
+         * This is the only method that gets called for modify requests.
+         */
+        public void onUpgradeToVideo(Call call);
+        /**
+         * Called anytime there are changes to the call list.  The change can be switching call
+         * states, updating information, etc. This method will NOT be called for new incoming
+         * calls and for calls that switch to disconnected state. Listeners must add actions
+         * to those method implementations if they want to deal with those actions.
+         */
+        public void onCallListChange(CallList callList);
+
+        /**
+         * Called when a call switches to the disconnected state.  This is the only method
+         * that will get called upon disconnection.
+         */
+        public void onDisconnect(Call call);
+
+
+    }
+
+    public interface CallUpdateListener {
+        // TODO: refactor and limit arg to be call state.  Caller info is not needed.
+        public void onCallChanged(Call call);
+
+        /**
+         * Notifies of a change to the session modification state for a call.
+         *
+         * @param sessionModificationState The new session modification state.
+         */
+        public void onSessionModificationStateChange(int sessionModificationState);
+
+        /**
+         * Notifies of a change to the last forwarded number for a call.
+         */
+        public void onLastForwardedNumberChange();
+
+        /**
+         * Notifies of a change to the child number for a call.
+         */
+        public void onChildNumberChange();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallTimer.java b/InCallUI/src/com/android/incallui/CallTimer.java
new file mode 100644
index 0000000..d65e633
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallTimer.java
@@ -0,0 +1,90 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import android.os.Handler;
+import android.os.SystemClock;
+
+/**
+ * Helper class used to keep track of events requiring regular intervals.
+ */
+public class CallTimer extends Handler {
+    private Runnable mInternalCallback;
+    private Runnable mCallback;
+    private long mLastReportedTime;
+    private long mInterval;
+    private boolean mRunning;
+
+    public CallTimer(Runnable callback) {
+        Preconditions.checkNotNull(callback);
+
+        mInterval = 0;
+        mLastReportedTime = 0;
+        mRunning = false;
+        mCallback = callback;
+        mInternalCallback = new CallTimerCallback();
+    }
+
+    public boolean start(long interval) {
+        if (interval <= 0) {
+            return false;
+        }
+
+        // cancel any previous timer
+        cancel();
+
+        mInterval = interval;
+        mLastReportedTime = SystemClock.uptimeMillis();
+
+        mRunning = true;
+        periodicUpdateTimer();
+
+        return true;
+    }
+
+    public void cancel() {
+        removeCallbacks(mInternalCallback);
+        mRunning = false;
+    }
+
+    private void periodicUpdateTimer() {
+        if (!mRunning) {
+            return;
+        }
+
+        final long now = SystemClock.uptimeMillis();
+        long nextReport = mLastReportedTime + mInterval;
+        while (now >= nextReport) {
+            nextReport += mInterval;
+        }
+
+        postAtTime(mInternalCallback, nextReport);
+        mLastReportedTime = nextReport;
+
+        // Run the callback
+        mCallback.run();
+    }
+
+    private class CallTimerCallback implements Runnable {
+        @Override
+        public void run() {
+            periodicUpdateTimer();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallerInfo.java b/InCallUI/src/com/android/incallui/CallerInfo.java
new file mode 100644
index 0000000..a638e11
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallerInfo.java
@@ -0,0 +1,588 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import com.android.dialer.util.PhoneLookupUtil;
+import com.google.common.primitives.Longs;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.PhoneLookup;
+import android.provider.ContactsContract.RawContacts;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.PhoneLookupSdkCompat;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.ContactsUtils.UserType;
+import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.contacts.common.util.TelephonyManagerUtils;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfoHelper;
+
+/**
+ * Looks up caller information for the given phone number.
+ */
+public class CallerInfo {
+    private static final String TAG = "CallerInfo";
+
+    // We should always use this projection starting from NYC onward.
+    private static final String[] DEFAULT_PHONELOOKUP_PROJECTION = new String[] {
+            PhoneLookupSdkCompat.CONTACT_ID,
+            PhoneLookup.DISPLAY_NAME,
+            PhoneLookup.LOOKUP_KEY,
+            PhoneLookup.NUMBER,
+            PhoneLookup.NORMALIZED_NUMBER,
+            PhoneLookup.LABEL,
+            PhoneLookup.TYPE,
+            PhoneLookup.PHOTO_URI,
+            PhoneLookup.CUSTOM_RINGTONE,
+            PhoneLookup.SEND_TO_VOICEMAIL
+    };
+
+    // In pre-N, contact id is stored in {@link PhoneLookup._ID} in non-sip query.
+    private static final String[] BACKWARD_COMPATIBLE_NON_SIP_DEFAULT_PHONELOOKUP_PROJECTION =
+            new String[] {
+                    PhoneLookup._ID,
+                    PhoneLookup.DISPLAY_NAME,
+                    PhoneLookup.LOOKUP_KEY,
+                    PhoneLookup.NUMBER,
+                    PhoneLookup.NORMALIZED_NUMBER,
+                    PhoneLookup.LABEL,
+                    PhoneLookup.TYPE,
+                    PhoneLookup.PHOTO_URI,
+                    PhoneLookup.CUSTOM_RINGTONE,
+                    PhoneLookup.SEND_TO_VOICEMAIL
+    };
+
+    public static String[] getDefaultPhoneLookupProjection(Uri phoneLookupUri) {
+        if (CompatUtils.isNCompatible()) {
+            return DEFAULT_PHONELOOKUP_PROJECTION;
+        }
+        // Pre-N
+        boolean isSip = phoneLookupUri.getBooleanQueryParameter(
+                        ContactsContract.PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS, false);
+        return (isSip) ? DEFAULT_PHONELOOKUP_PROJECTION
+                : BACKWARD_COMPATIBLE_NON_SIP_DEFAULT_PHONELOOKUP_PROJECTION;
+    }
+
+    /**
+     * Please note that, any one of these member variables can be null,
+     * and any accesses to them should be prepared to handle such a case.
+     *
+     * Also, it is implied that phoneNumber is more often populated than
+     * name is, (think of calls being dialed/received using numbers where
+     * names are not known to the device), so phoneNumber should serve as
+     * a dependable fallback when name is unavailable.
+     *
+     * One other detail here is that this CallerInfo object reflects
+     * information found on a connection, it is an OUTPUT that serves
+     * mainly to display information to the user.  In no way is this object
+     * used as input to make a connection, so we can choose to display
+     * whatever human-readable text makes sense to the user for a
+     * connection.  This is especially relevant for the phone number field,
+     * since it is the one field that is most likely exposed to the user.
+     *
+     * As an example:
+     *   1. User dials "911"
+     *   2. Device recognizes that this is an emergency number
+     *   3. We use the "Emergency Number" string instead of "911" in the
+     *     phoneNumber field.
+     *
+     * What we're really doing here is treating phoneNumber as an essential
+     * field here, NOT name.  We're NOT always guaranteed to have a name
+     * for a connection, but the number should be displayable.
+     */
+    public String name;
+    public String nameAlternative;
+    public String phoneNumber;
+    public String normalizedNumber;
+    public String forwardingNumber;
+    public String geoDescription;
+
+    public String cnapName;
+    public int numberPresentation;
+    public int namePresentation;
+    public boolean contactExists;
+
+    public String phoneLabel;
+    /* Split up the phoneLabel into number type and label name */
+    public int    numberType;
+    public String numberLabel;
+
+    public int photoResource;
+
+    // Contact ID, which will be 0 if a contact comes from the corp CP2.
+    public long contactIdOrZero;
+    public String lookupKeyOrNull;
+    public boolean needUpdate;
+    public Uri contactRefUri;
+    public @UserType long userType;
+
+    /**
+     * Contact display photo URI.  If a contact has no display photo but a thumbnail, it'll be
+     * the thumbnail URI instead.
+     */
+    public Uri contactDisplayPhotoUri;
+
+    // fields to hold individual contact preference data,
+    // including the send to voicemail flag and the ringtone
+    // uri reference.
+    public Uri contactRingtoneUri;
+    public boolean shouldSendToVoicemail;
+
+    /**
+     * Drawable representing the caller image.  This is essentially
+     * a cache for the image data tied into the connection /
+     * callerinfo object.
+     *
+     * This might be a high resolution picture which is more suitable
+     * for full-screen image view than for smaller icons used in some
+     * kinds of notifications.
+     *
+     * The {@link #isCachedPhotoCurrent} flag indicates if the image
+     * data needs to be reloaded.
+     */
+    public Drawable cachedPhoto;
+    /**
+     * Bitmap representing the caller image which has possibly lower
+     * resolution than {@link #cachedPhoto} and thus more suitable for
+     * icons (like notification icons).
+     *
+     * In usual cases this is just down-scaled image of {@link #cachedPhoto}.
+     * If the down-scaling fails, this will just become null.
+     *
+     * The {@link #isCachedPhotoCurrent} flag indicates if the image
+     * data needs to be reloaded.
+     */
+    public Bitmap cachedPhotoIcon;
+    /**
+     * Boolean which indicates if {@link #cachedPhoto} and
+     * {@link #cachedPhotoIcon} is fresh enough. If it is false,
+     * those images aren't pointing to valid objects.
+     */
+    public boolean isCachedPhotoCurrent;
+
+    /**
+     * String which holds the call subject sent as extra from the lower layers for this call. This
+     * is used to display the no-caller ID reason for restricted/unknown number presentation.
+     */
+    public String callSubject;
+
+    private boolean mIsEmergency;
+    private boolean mIsVoiceMail;
+
+    public CallerInfo() {
+        // TODO: Move all the basic initialization here?
+        mIsEmergency = false;
+        mIsVoiceMail = false;
+        userType = ContactsUtils.USER_TYPE_CURRENT;
+    }
+
+    /**
+     * getCallerInfo given a Cursor.
+     * @param context the context used to retrieve string constants
+     * @param contactRef the URI to attach to this CallerInfo object
+     * @param cursor the first object in the cursor is used to build the CallerInfo object.
+     * @return the CallerInfo which contains the caller id for the given
+     * number. The returned CallerInfo is null if no number is supplied.
+     */
+    public static CallerInfo getCallerInfo(Context context, Uri contactRef, Cursor cursor) {
+        CallerInfo info = new CallerInfo();
+        info.photoResource = 0;
+        info.phoneLabel = null;
+        info.numberType = 0;
+        info.numberLabel = null;
+        info.cachedPhoto = null;
+        info.isCachedPhotoCurrent = false;
+        info.contactExists = false;
+        info.userType = ContactsUtils.USER_TYPE_CURRENT;
+
+        Log.v(TAG, "getCallerInfo() based on cursor...");
+
+        if (cursor != null) {
+            if (cursor.moveToFirst()) {
+                // TODO: photo_id is always available but not taken
+                // care of here. Maybe we should store it in the
+                // CallerInfo object as well.
+
+                long contactId = 0L;
+                int columnIndex;
+
+                // Look for the name
+                columnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
+                if (columnIndex != -1) {
+                    info.name = cursor.getString(columnIndex);
+                }
+
+                columnIndex = cursor.getColumnIndex(PhoneLookup.LOOKUP_KEY);
+                if (columnIndex != -1) {
+                    info.nameAlternative = ContactInfoHelper.lookUpDisplayNameAlternative(
+                            context, cursor.getString(columnIndex));
+                }
+
+                // Look for the number
+                columnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);
+                if (columnIndex != -1) {
+                    info.phoneNumber = cursor.getString(columnIndex);
+                }
+
+                // Look for the normalized number
+                columnIndex = cursor.getColumnIndex(PhoneLookup.NORMALIZED_NUMBER);
+                if (columnIndex != -1) {
+                    info.normalizedNumber = cursor.getString(columnIndex);
+                }
+
+                // Look for the label/type combo
+                columnIndex = cursor.getColumnIndex(PhoneLookup.LABEL);
+                if (columnIndex != -1) {
+                    int typeColumnIndex = cursor.getColumnIndex(PhoneLookup.TYPE);
+                    if (typeColumnIndex != -1) {
+                        info.numberType = cursor.getInt(typeColumnIndex);
+                        info.numberLabel = cursor.getString(columnIndex);
+                        info.phoneLabel = Phone.getTypeLabel(context.getResources(),
+                                info.numberType, info.numberLabel)
+                                .toString();
+                    }
+                }
+
+                // Look for the person_id.
+                columnIndex = getColumnIndexForPersonId(contactRef, cursor);
+                if (columnIndex != -1) {
+                    contactId = cursor.getLong(columnIndex);
+                    // QuickContacts in M doesn't support enterprise contact id
+                    if (contactId != 0 && (ContactsUtils.FLAG_N_FEATURE
+                            || !Contacts.isEnterpriseContactId(contactId))) {
+                        info.contactIdOrZero = contactId;
+                        Log.v(TAG, "==> got info.contactIdOrZero: " + info.contactIdOrZero);
+
+                        // cache the lookup key for later use with person_id to create lookup URIs
+                        columnIndex = cursor.getColumnIndex(PhoneLookup.LOOKUP_KEY);
+                        if (columnIndex != -1) {
+                            info.lookupKeyOrNull = cursor.getString(columnIndex);
+                        }
+                    }
+                } else {
+                    // No valid columnIndex, so we can't look up person_id.
+                    Log.v(TAG, "Couldn't find contactId column for " + contactRef);
+                    // Watch out: this means that anything that depends on
+                    // person_id will be broken (like contact photo lookups in
+                    // the in-call UI, for example.)
+                }
+
+                // Display photo URI.
+                columnIndex = cursor.getColumnIndex(PhoneLookup.PHOTO_URI);
+                if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
+                    info.contactDisplayPhotoUri = Uri.parse(cursor.getString(columnIndex));
+                } else {
+                    info.contactDisplayPhotoUri = null;
+                }
+
+                // look for the custom ringtone, create from the string stored
+                // in the database.
+                columnIndex = cursor.getColumnIndex(PhoneLookup.CUSTOM_RINGTONE);
+                if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
+                    if (TextUtils.isEmpty(cursor.getString(columnIndex))) {
+                        // make it consistent with frameworks/base/.../CallerInfo.java
+                        info.contactRingtoneUri = Uri.EMPTY;
+                    } else {
+                        info.contactRingtoneUri = Uri.parse(cursor.getString(columnIndex));
+                    }
+                } else {
+                    info.contactRingtoneUri = null;
+                }
+
+                // look for the send to voicemail flag, set it to true only
+                // under certain circumstances.
+                columnIndex = cursor.getColumnIndex(PhoneLookup.SEND_TO_VOICEMAIL);
+                info.shouldSendToVoicemail = (columnIndex != -1) &&
+                        ((cursor.getInt(columnIndex)) == 1);
+                info.contactExists = true;
+
+                // Determine userType by directoryId and contactId
+                final String directory = contactRef == null ? null
+                        : contactRef.getQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY);
+                final Long directoryId = directory == null ? null : Longs.tryParse(directory);
+                info.userType = ContactsUtils.determineUserType(directoryId, contactId);
+            }
+            cursor.close();
+        }
+
+        info.needUpdate = false;
+        info.name = normalize(info.name);
+        info.contactRefUri = contactRef;
+
+        return info;
+    }
+
+    /**
+     * getCallerInfo given a URI, look up in the call-log database
+     * for the uri unique key.
+     * @param context the context used to get the ContentResolver
+     * @param contactRef the URI used to lookup caller id
+     * @return the CallerInfo which contains the caller id for the given
+     * number. The returned CallerInfo is null if no number is supplied.
+     */
+    private static CallerInfo getCallerInfo(Context context, Uri contactRef) {
+
+        return getCallerInfo(context, contactRef,
+                context.getContentResolver().query(contactRef, null, null, null, null));
+    }
+
+    /**
+     * Performs another lookup if previous lookup fails and it's a SIP call
+     * and the peer's username is all numeric. Look up the username as it
+     * could be a PSTN number in the contact database.
+     *
+     * @param context the query context
+     * @param number the original phone number, could be a SIP URI
+     * @param previousResult the result of previous lookup
+     * @return previousResult if it's not the case
+     */
+    static CallerInfo doSecondaryLookupIfNecessary(Context context,
+            String number, CallerInfo previousResult) {
+        if (!previousResult.contactExists
+                && PhoneNumberHelper.isUriNumber(number)) {
+            String username = PhoneNumberHelper.getUsernameFromUriNumber(number);
+            if (PhoneNumberUtils.isGlobalPhoneNumber(username)) {
+                previousResult = getCallerInfo(context,
+                        Uri.withAppendedPath(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
+                                Uri.encode(username)));
+            }
+        }
+        return previousResult;
+    }
+
+    // Accessors
+
+    /**
+     * @return true if the caller info is an emergency number.
+     */
+    public boolean isEmergencyNumber() {
+        return mIsEmergency;
+    }
+
+    /**
+     * @return true if the caller info is a voicemail number.
+     */
+    public boolean isVoiceMailNumber() {
+        return mIsVoiceMail;
+    }
+
+    /**
+     * Mark this CallerInfo as an emergency call.
+     * @param context To lookup the localized 'Emergency Number' string.
+     * @return this instance.
+     */
+    /* package */ CallerInfo markAsEmergency(Context context) {
+        name = context.getString(R.string.emergency_call_dialog_number_for_display);
+        phoneNumber = null;
+
+        photoResource = R.drawable.img_phone;
+        mIsEmergency = true;
+        return this;
+    }
+
+
+    /**
+     * Mark this CallerInfo as a voicemail call. The voicemail label
+     * is obtained from the telephony manager. Caller must hold the
+     * READ_PHONE_STATE permission otherwise the phoneNumber will be
+     * set to null.
+     * @return this instance.
+     */
+    /* package */ CallerInfo markAsVoiceMail(Context context) {
+        mIsVoiceMail = true;
+
+        try {
+            // For voicemail calls, we display the voice mail tag
+            // instead of the real phone number in the "number"
+            // field.
+            name = TelephonyManagerUtils.getVoiceMailAlphaTag(context);
+            phoneNumber = null;
+        } catch (SecurityException se) {
+            // Should never happen: if this process does not have
+            // permission to retrieve VM tag, it should not have
+            // permission to retrieve VM number and would not call
+            // this method.
+            // Leave phoneNumber untouched.
+            Log.e(TAG, "Cannot access VoiceMail.", se);
+        }
+        // TODO: There is no voicemail picture?
+        // FIXME: FIND ANOTHER ICON
+        // photoResource = android.R.drawable.badge_voicemail;
+        return this;
+    }
+
+    private static String normalize(String s) {
+        if (s == null || s.length() > 0) {
+            return s;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Returns the column index to use to find the "person_id" field in
+     * the specified cursor, based on the contact URI that was originally
+     * queried.
+     *
+     * This is a helper function for the getCallerInfo() method that takes
+     * a Cursor.  Looking up the person_id is nontrivial (compared to all
+     * the other CallerInfo fields) since the column we need to use
+     * depends on what query we originally ran.
+     *
+     * Watch out: be sure to not do any database access in this method, since
+     * it's run from the UI thread (see comments below for more info.)
+     *
+     * @return the columnIndex to use (with cursor.getLong()) to get the
+     * person_id, or -1 if we couldn't figure out what colum to use.
+     *
+     * TODO: Add a unittest for this method.  (This is a little tricky to
+     * test, since we'll need a live contacts database to test against,
+     * preloaded with at least some phone numbers and SIP addresses.  And
+     * we'll probably have to hardcode the column indexes we expect, so
+     * the test might break whenever the contacts schema changes.  But we
+     * can at least make sure we handle all the URI patterns we claim to,
+     * and that the mime types match what we expect...)
+     */
+    private static int getColumnIndexForPersonId(Uri contactRef, Cursor cursor) {
+        // TODO: This is pretty ugly now, see bug 2269240 for
+        // more details. The column to use depends upon the type of URL:
+        // - content://com.android.contacts/data/phones ==> use the "contact_id" column
+        // - content://com.android.contacts/phone_lookup ==> use the "_ID" column
+        // - content://com.android.contacts/data ==> use the "contact_id" column
+        // If it's none of the above, we leave columnIndex=-1 which means
+        // that the person_id field will be left unset.
+        //
+        // The logic here *used* to be based on the mime type of contactRef
+        // (for example Phone.CONTENT_ITEM_TYPE would tell us to use the
+        // RawContacts.CONTACT_ID column).  But looking up the mime type requires
+        // a call to context.getContentResolver().getType(contactRef), which
+        // isn't safe to do from the UI thread since it can cause an ANR if
+        // the contacts provider is slow or blocked (like during a sync.)
+        //
+        // So instead, figure out the column to use for person_id by just
+        // looking at the URI itself.
+
+        Log.v(TAG, "- getColumnIndexForPersonId: contactRef URI = '"
+                + contactRef + "'...");
+        // Warning: Do not enable the following logging (due to ANR risk.)
+        // if (VDBG) Rlog.v(TAG, "- MIME type: "
+        //                 + context.getContentResolver().getType(contactRef));
+
+        String url = contactRef.toString();
+        String columnName = null;
+        if (url.startsWith("content://com.android.contacts/data/phones")) {
+            // Direct lookup in the Phone table.
+            // MIME type: Phone.CONTENT_ITEM_TYPE (= "vnd.android.cursor.item/phone_v2")
+            Log.v(TAG, "'data/phones' URI; using RawContacts.CONTACT_ID");
+            columnName = RawContacts.CONTACT_ID;
+        } else if (url.startsWith("content://com.android.contacts/data")) {
+            // Direct lookup in the Data table.
+            // MIME type: Data.CONTENT_TYPE (= "vnd.android.cursor.dir/data")
+            Log.v(TAG, "'data' URI; using Data.CONTACT_ID");
+            // (Note Data.CONTACT_ID and RawContacts.CONTACT_ID are equivalent.)
+            columnName = Data.CONTACT_ID;
+        } else if (url.startsWith("content://com.android.contacts/phone_lookup")) {
+            // Lookup in the PhoneLookup table, which provides "fuzzy matching"
+            // for phone numbers.
+            // MIME type: PhoneLookup.CONTENT_TYPE (= "vnd.android.cursor.dir/phone_lookup")
+            Log.v(TAG, "'phone_lookup' URI; using PhoneLookup._ID");
+            columnName = PhoneLookupUtil.getContactIdColumnNameForUri(contactRef);
+        } else {
+            Log.v(TAG, "Unexpected prefix for contactRef '" + url + "'");
+        }
+        int columnIndex = (columnName != null) ? cursor.getColumnIndex(columnName) : -1;
+        Log.v(TAG, "==> Using column '" + columnName
+                + "' (columnIndex = " + columnIndex + ") for person_id lookup...");
+        return columnIndex;
+    }
+
+    /**
+     * Updates this CallerInfo's geoDescription field, based on the raw
+     * phone number in the phoneNumber field.
+     *
+     * (Note that the various getCallerInfo() methods do *not* set the
+     * geoDescription automatically; you need to call this method
+     * explicitly to get it.)
+     *
+     * @param context the context used to look up the current locale / country
+     * @param fallbackNumber if this CallerInfo's phoneNumber field is empty,
+     *        this specifies a fallback number to use instead.
+     */
+    public void updateGeoDescription(Context context, String fallbackNumber) {
+        String number = TextUtils.isEmpty(phoneNumber) ? fallbackNumber : phoneNumber;
+        geoDescription = com.android.dialer.util.PhoneNumberUtil.getGeoDescription(context, number);
+    }
+
+    /**
+     * @return a string debug representation of this instance.
+     */
+    @Override
+    public String toString() {
+        // Warning: never check in this file with VERBOSE_DEBUG = true
+        // because that will result in PII in the system log.
+        final boolean VERBOSE_DEBUG = false;
+
+        if (VERBOSE_DEBUG) {
+            return new StringBuilder(384)
+                    .append(super.toString() + " { ")
+                    .append("\nname: " + name)
+                    .append("\nphoneNumber: " + phoneNumber)
+                    .append("\nnormalizedNumber: " + normalizedNumber)
+                    .append("\forwardingNumber: " + forwardingNumber)
+                    .append("\ngeoDescription: " + geoDescription)
+                    .append("\ncnapName: " + cnapName)
+                    .append("\nnumberPresentation: " + numberPresentation)
+                    .append("\nnamePresentation: " + namePresentation)
+                    .append("\ncontactExists: " + contactExists)
+                    .append("\nphoneLabel: " + phoneLabel)
+                    .append("\nnumberType: " + numberType)
+                    .append("\nnumberLabel: " + numberLabel)
+                    .append("\nphotoResource: " + photoResource)
+                    .append("\ncontactIdOrZero: " + contactIdOrZero)
+                    .append("\nneedUpdate: " + needUpdate)
+                    .append("\ncontactRefUri: " + contactRefUri)
+                    .append("\ncontactRingtoneUri: " + contactRingtoneUri)
+                    .append("\ncontactDisplayPhotoUri: " + contactDisplayPhotoUri)
+                    .append("\nshouldSendToVoicemail: " + shouldSendToVoicemail)
+                    .append("\ncachedPhoto: " + cachedPhoto)
+                    .append("\nisCachedPhotoCurrent: " + isCachedPhotoCurrent)
+                    .append("\nemergency: " + mIsEmergency)
+                    .append("\nvoicemail: " + mIsVoiceMail)
+                    .append("\nuserType: " + userType)
+                    .append(" }")
+                    .toString();
+        } else {
+            return new StringBuilder(128)
+                    .append(super.toString() + " { ")
+                    .append("name " + ((name == null) ? "null" : "non-null"))
+                    .append(", phoneNumber " + ((phoneNumber == null) ? "null" : "non-null"))
+                    .append(" }")
+                    .toString();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
new file mode 100644
index 0000000..6dbbfc1
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
@@ -0,0 +1,599 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import com.google.common.primitives.Longs;
+
+import android.Manifest;
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.SQLException;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Directory;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.contacts.common.util.PermissionsUtil;
+import com.android.contacts.common.util.TelephonyManagerUtils;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+import com.android.dialerbind.ObjectFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+
+/**
+ * Helper class to make it easier to run asynchronous caller-id lookup queries.
+ * @see CallerInfo
+ *
+ */
+public class CallerInfoAsyncQuery {
+    private static final boolean DBG = false;
+    private static final String LOG_TAG = "CallerInfoAsyncQuery";
+
+    private static final int EVENT_NEW_QUERY = 1;
+    private static final int EVENT_ADD_LISTENER = 2;
+    private static final int EVENT_END_OF_QUEUE = 3;
+    private static final int EVENT_EMERGENCY_NUMBER = 4;
+    private static final int EVENT_VOICEMAIL_NUMBER = 5;
+
+    private CallerInfoAsyncQueryHandler mHandler;
+
+    // If the CallerInfo query finds no contacts, should we use the
+    // PhoneNumberOfflineGeocoder to look up a "geo description"?
+    // (TODO: This could become a flag in config.xml if it ever needs to be
+    // configured on a per-product basis.)
+    private static final boolean ENABLE_UNKNOWN_NUMBER_GEO_DESCRIPTION = true;
+
+    /**
+     * Interface for a CallerInfoAsyncQueryHandler result return.
+     */
+    public interface OnQueryCompleteListener {
+        /**
+         * Called when the query is complete.
+         */
+        public void onQueryComplete(int token, Object cookie, CallerInfo ci);
+    }
+
+
+    /**
+     * Wrap the cookie from the WorkerArgs with additional information needed by our
+     * classes.
+     */
+    private static final class CookieWrapper {
+        public OnQueryCompleteListener listener;
+        public Object cookie;
+        public int event;
+        public String number;
+    }
+
+    /**
+     * Simple exception used to communicate problems with the query pool.
+     */
+    public static class QueryPoolException extends SQLException {
+        public QueryPoolException(String error) {
+            super(error);
+        }
+    }
+
+    /**
+     * Our own implementation of the AsyncQueryHandler.
+     */
+    private class CallerInfoAsyncQueryHandler extends AsyncQueryHandler {
+
+        @Override
+        public void startQuery(int token, Object cookie, Uri uri, String[] projection,
+                String selection, String[] selectionArgs, String orderBy) {
+            if (DBG) {
+                // Show stack trace with the arguments.
+                android.util.Log.d(LOG_TAG, "InCall: startQuery: url=" + uri +
+                                " projection=[" + Arrays.toString(projection) + "]" +
+                                " selection=" + selection + " " +
+                                " args=[" + Arrays.toString(selectionArgs) + "]",
+                        new RuntimeException("STACKTRACE"));
+            }
+            super.startQuery(token, cookie, uri, projection, selection, selectionArgs, orderBy);
+        }
+
+        /**
+         * The information relevant to each CallerInfo query.  Each query may have multiple
+         * listeners, so each AsyncCursorInfo is associated with 2 or more CookieWrapper
+         * objects in the queue (one with a new query event, and one with a end event, with
+         * 0 or more additional listeners in between).
+         */
+        private Context mQueryContext;
+        private Uri mQueryUri;
+        private CallerInfo mCallerInfo;
+
+        /**
+         * Our own query worker thread.
+         *
+         * This thread handles the messages enqueued in the looper.  The normal sequence
+         * of events is that a new query shows up in the looper queue, followed by 0 or
+         * more add listener requests, and then an end request.  Of course, these requests
+         * can be interlaced with requests from other tokens, but is irrelevant to this
+         * handler since the handler has no state.
+         *
+         * Note that we depend on the queue to keep things in order; in other words, the
+         * looper queue must be FIFO with respect to input from the synchronous startQuery
+         * calls and output to this handleMessage call.
+         *
+         * This use of the queue is required because CallerInfo objects may be accessed
+         * multiple times before the query is complete.  All accesses (listeners) must be
+         * queued up and informed in order when the query is complete.
+         */
+        protected class CallerInfoWorkerHandler extends WorkerHandler {
+            public CallerInfoWorkerHandler(Looper looper) {
+                super(looper);
+            }
+
+            @Override
+            public void handleMessage(Message msg) {
+                WorkerArgs args = (WorkerArgs) msg.obj;
+                CookieWrapper cw = (CookieWrapper) args.cookie;
+
+                if (cw == null) {
+                    // Normally, this should never be the case for calls originating
+                    // from within this code.
+                    // However, if there is any code that this Handler calls (such as in
+                    // super.handleMessage) that DOES place unexpected messages on the
+                    // queue, then we need pass these messages on.
+                    Log.d(this, "Unexpected command (CookieWrapper is null): " + msg.what +
+                            " ignored by CallerInfoWorkerHandler, passing onto parent.");
+
+                    super.handleMessage(msg);
+                } else {
+                    Log.d(this, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
+                            " command: " + msg.what + " query URI: " +
+                            sanitizeUriToString(args.uri));
+
+                    switch (cw.event) {
+                        case EVENT_NEW_QUERY:
+                            //start the sql command.
+                            super.handleMessage(msg);
+                            break;
+
+                        // shortcuts to avoid query for recognized numbers.
+                        case EVENT_EMERGENCY_NUMBER:
+                        case EVENT_VOICEMAIL_NUMBER:
+
+                        case EVENT_ADD_LISTENER:
+                        case EVENT_END_OF_QUEUE:
+                            // query was already completed, so just send the reply.
+                            // passing the original token value back to the caller
+                            // on top of the event values in arg1.
+                            Message reply = args.handler.obtainMessage(msg.what);
+                            reply.obj = args;
+                            reply.arg1 = msg.arg1;
+
+                            reply.sendToTarget();
+
+                            break;
+                        default:
+                    }
+                }
+            }
+        }
+
+
+        /**
+         * Asynchronous query handler class for the contact / callerinfo object.
+         */
+        private CallerInfoAsyncQueryHandler(Context context) {
+            super(context.getContentResolver());
+        }
+
+        @Override
+        protected Handler createHandler(Looper looper) {
+            return new CallerInfoWorkerHandler(looper);
+        }
+
+        /**
+         * Overrides onQueryComplete from AsyncQueryHandler.
+         *
+         * This method takes into account the state of this class; we construct the CallerInfo
+         * object only once for each set of listeners. When the query thread has done its work
+         * and calls this method, we inform the remaining listeners in the queue, until we're
+         * out of listeners.  Once we get the message indicating that we should expect no new
+         * listeners for this CallerInfo object, we release the AsyncCursorInfo back into the
+         * pool.
+         */
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+            try {
+                Log.d(this, "##### onQueryComplete() #####   query complete for token: " + token);
+
+                //get the cookie and notify the listener.
+                CookieWrapper cw = (CookieWrapper) cookie;
+                if (cw == null) {
+                    // Normally, this should never be the case for calls originating
+                    // from within this code.
+                    // However, if there is any code that calls this method, we should
+                    // check the parameters to make sure they're viable.
+                    Log.d(this, "Cookie is null, ignoring onQueryComplete() request.");
+                    return;
+                }
+
+                if (cw.event == EVENT_END_OF_QUEUE) {
+                    release();
+                    return;
+                }
+
+                // check the token and if needed, create the callerinfo object.
+                if (mCallerInfo == null) {
+                    if ((mQueryContext == null) || (mQueryUri == null)) {
+                        throw new QueryPoolException
+                            ("Bad context or query uri, or CallerInfoAsyncQuery already released.");
+                    }
+
+                    // adjust the callerInfo data as needed, and only if it was set from the
+                    // initial query request.
+                    // Change the callerInfo number ONLY if it is an emergency number or the
+                    // voicemail number, and adjust other data (including photoResource)
+                    // accordingly.
+                    if (cw.event == EVENT_EMERGENCY_NUMBER) {
+                        // Note we're setting the phone number here (refer to javadoc
+                        // comments at the top of CallerInfo class).
+                        mCallerInfo = new CallerInfo().markAsEmergency(mQueryContext);
+                    } else if (cw.event == EVENT_VOICEMAIL_NUMBER) {
+                        mCallerInfo = new CallerInfo().markAsVoiceMail(mQueryContext);
+                    } else {
+                        mCallerInfo = CallerInfo.getCallerInfo(mQueryContext, mQueryUri, cursor);
+                        Log.d(this, "==> Got mCallerInfo: " + mCallerInfo);
+
+                        CallerInfo newCallerInfo = CallerInfo.doSecondaryLookupIfNecessary(
+                                mQueryContext, cw.number, mCallerInfo);
+                        if (newCallerInfo != mCallerInfo) {
+                            mCallerInfo = newCallerInfo;
+                            Log.d(this, "#####async contact look up with numeric username"
+                                    + mCallerInfo);
+                        }
+
+                        // Final step: look up the geocoded description.
+                        if (ENABLE_UNKNOWN_NUMBER_GEO_DESCRIPTION) {
+                            // Note we do this only if we *don't* have a valid name (i.e. if
+                            // no contacts matched the phone number of the incoming call),
+                            // since that's the only case where the incoming-call UI cares
+                            // about this field.
+                            //
+                            // (TODO: But if we ever want the UI to show the geoDescription
+                            // even when we *do* match a contact, we'll need to either call
+                            // updateGeoDescription() unconditionally here, or possibly add a
+                            // new parameter to CallerInfoAsyncQuery.startQuery() to force
+                            // the geoDescription field to be populated.)
+
+                            if (TextUtils.isEmpty(mCallerInfo.name)) {
+                                // Actually when no contacts match the incoming phone number,
+                                // the CallerInfo object is totally blank here (i.e. no name
+                                // *or* phoneNumber).  So we need to pass in cw.number as
+                                // a fallback number.
+                                mCallerInfo.updateGeoDescription(mQueryContext, cw.number);
+                            }
+                        }
+
+                        // Use the number entered by the user for display.
+                        if (!TextUtils.isEmpty(cw.number)) {
+                            mCallerInfo.phoneNumber = PhoneNumberUtils.formatNumber(cw.number,
+                                    mCallerInfo.normalizedNumber,
+                                    TelephonyManagerUtils.getCurrentCountryIso(mQueryContext,
+                                            Locale.getDefault()));
+                        }
+                    }
+
+                    Log.d(this, "constructing CallerInfo object for token: " + token);
+
+                    //notify that we can clean up the queue after this.
+                    CookieWrapper endMarker = new CookieWrapper();
+                    endMarker.event = EVENT_END_OF_QUEUE;
+                    startQuery(token, endMarker, null, null, null, null, null);
+                }
+
+                //notify the listener that the query is complete.
+                if (cw.listener != null) {
+                    Log.d(this, "notifying listener: " + cw.listener.getClass().toString() +
+                            " for token: " + token + mCallerInfo);
+                    cw.listener.onQueryComplete(token, cw.cookie, mCallerInfo);
+                }
+            } finally {
+                // The cursor may have been closed in CallerInfo.getCallerInfo()
+                if (cursor != null && !cursor.isClosed()) {
+                    cursor.close();
+                }
+            }
+        }
+    }
+
+    /**
+     * Private constructor for factory methods.
+     */
+    private CallerInfoAsyncQuery() {
+    }
+
+    public static void startQuery(final int token, final Context context, final CallerInfo info,
+            final OnQueryCompleteListener listener, final Object cookie) {
+        Log.d(LOG_TAG, "##### CallerInfoAsyncQuery startContactProviderQuery()... #####");
+        Log.d(LOG_TAG, "- number: " + info.phoneNumber);
+        Log.d(LOG_TAG, "- cookie: " + cookie);
+        if (!PermissionsUtil.hasPermission(context, Manifest.permission.READ_CONTACTS)) {
+            Log.w(LOG_TAG, "Dialer doesn't have permission to read contacts.");
+            listener.onQueryComplete(token, cookie, info);
+            return;
+        }
+
+        OnQueryCompleteListener contactsProviderQueryCompleteListener =
+                new OnQueryCompleteListener() {
+                    @Override
+                    public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+                        Log.d(LOG_TAG, "contactsProviderQueryCompleteListener done");
+                        if (ci != null && ci.contactExists) {
+                            if (listener != null) {
+                                listener.onQueryComplete(token, cookie, ci);
+                            }
+                        } else {
+                            startOtherDirectoriesQuery(token, context, info, listener, cookie);
+                        }
+                    }
+                };
+        startDefaultDirectoryQuery(token, context, info, contactsProviderQueryCompleteListener,
+                cookie);
+    }
+
+    // Private methods
+    private static CallerInfoAsyncQuery startDefaultDirectoryQuery(int token, Context context,
+            CallerInfo info, OnQueryCompleteListener listener, Object cookie) {
+        // Construct the URI object and query params, and start the query.
+        Uri uri = ContactInfoHelper.getContactInfoLookupUri(info.phoneNumber);
+        return startQueryInternal(token, context, info, listener, cookie, uri);
+    }
+
+    /**
+     * Factory method to start the query based on a CallerInfo object.
+     *
+     * Note: if the number contains an "@" character we treat it
+     * as a SIP address, and look it up directly in the Data table
+     * rather than using the PhoneLookup table.
+     * TODO: But eventually we should expose two separate methods, one for
+     * numbers and one for SIP addresses, and then have
+     * PhoneUtils.startGetCallerInfo() decide which one to call based on
+     * the phone type of the incoming connection.
+     */
+    private static CallerInfoAsyncQuery startQueryInternal(int token, Context context,
+            CallerInfo info, OnQueryCompleteListener listener, Object cookie, Uri contactRef) {
+        if (DBG) {
+            Log.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
+        }
+
+        CallerInfoAsyncQuery c = new CallerInfoAsyncQuery();
+        c.allocate(context, contactRef);
+
+        //create cookieWrapper, start query
+        CookieWrapper cw = new CookieWrapper();
+        cw.listener = listener;
+        cw.cookie = cookie;
+        cw.number = info.phoneNumber;
+
+        // check to see if these are recognized numbers, and use shortcuts if we can.
+        if (PhoneNumberUtils.isLocalEmergencyNumber(context, info.phoneNumber)) {
+            cw.event = EVENT_EMERGENCY_NUMBER;
+        } else if (info.isVoiceMailNumber()) {
+            cw.event = EVENT_VOICEMAIL_NUMBER;
+        } else {
+            cw.event = EVENT_NEW_QUERY;
+        }
+
+
+        String[] proejection = CallerInfo.getDefaultPhoneLookupProjection(contactRef);
+        c.mHandler.startQuery(token,
+                cw,  // cookie
+                contactRef,  // uri
+                proejection, // projection
+                null,  // selection
+                null,  // selectionArgs
+                null);  // orderBy
+        return c;
+    }
+
+    private static void startOtherDirectoriesQuery(int token, Context context, CallerInfo info,
+            OnQueryCompleteListener listener, Object cookie) {
+        long[] directoryIds = getDirectoryIds(context);
+        int size = directoryIds.length;
+        if (size == 0) {
+            if (listener != null) {
+                listener.onQueryComplete(token, cookie, info);
+            }
+            return;
+        }
+
+        DirectoryQueryCompleteListenerFactory listenerFactory =
+                new DirectoryQueryCompleteListenerFactory(context, size, listener);
+
+        // The current implementation of multiple async query runs in single handler thread
+        // in AsyncQueryHandler.
+        // intermediateListener.onQueryComplete is also called from the same caller thread.
+        // TODO(b/26019872): use thread pool instead of single thread.
+        for (int i = 0; i < size; i++) {
+            long directoryId = directoryIds[i];
+            Uri uri = ContactInfoHelper.getContactInfoLookupUri(info.phoneNumber, directoryId);
+            if (DBG) {
+                Log.d(LOG_TAG, "directoryId: " + directoryId + " uri: " + uri);
+            }
+            OnQueryCompleteListener intermediateListener =
+                    listenerFactory.newListener(directoryId);
+            startQueryInternal(token, context, info, intermediateListener, cookie, uri);
+        }
+    }
+
+    /* Directory lookup related code - START */
+    private static final String[] DIRECTORY_PROJECTION = new String[] {Directory._ID};
+
+    private static long[] getDirectoryIds(Context context) {
+        ArrayList<Long> results = new ArrayList<>();
+
+        Uri uri = Directory.CONTENT_URI;
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            uri = Uri.withAppendedPath(ContactsContract.AUTHORITY_URI, "directories_enterprise");
+        }
+
+        ContentResolver cr = context.getContentResolver();
+        Cursor cursor = cr.query(uri, DIRECTORY_PROJECTION, null, null, null);
+        addDirectoryIdsFromCursor(cursor, results);
+
+        return Longs.toArray(results);
+    }
+
+    private static void addDirectoryIdsFromCursor(Cursor cursor, ArrayList<Long> results) {
+        if (cursor != null) {
+            int idIndex = cursor.getColumnIndex(Directory._ID);
+            while (cursor.moveToNext()) {
+                long id = cursor.getLong(idIndex);
+                if (DirectoryCompat.isRemoteDirectory(id)) {
+                    results.add(id);
+                }
+            }
+            cursor.close();
+        }
+    }
+
+    private static final class DirectoryQueryCompleteListenerFactory {
+        // Make sure listener to be called once and only once
+        private int mCount;
+        private boolean mIsListenerCalled;
+        private final OnQueryCompleteListener mListener;
+        private final Context mContext;
+        private final CachedNumberLookupService mCachedNumberLookupService =
+                ObjectFactory.newCachedNumberLookupService();
+
+        private class DirectoryQueryCompleteListener implements OnQueryCompleteListener {
+            private final long mDirectoryId;
+
+            DirectoryQueryCompleteListener(long directoryId) {
+                mDirectoryId = directoryId;
+            }
+
+            @Override
+            public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+                onDirectoryQueryComplete(token, cookie, ci, mDirectoryId);
+            }
+        }
+
+        DirectoryQueryCompleteListenerFactory(Context context, int size,
+                OnQueryCompleteListener listener) {
+            mCount = size;
+            mListener = listener;
+            mIsListenerCalled = false;
+            mContext = context;
+        }
+
+        private void onDirectoryQueryComplete(int token, Object cookie, CallerInfo ci,
+                long directoryId) {
+            boolean shouldCallListener = false;
+            synchronized (this) {
+                mCount = mCount - 1;
+                if (!mIsListenerCalled && (ci.contactExists || mCount == 0)) {
+                    mIsListenerCalled = true;
+                    shouldCallListener = true;
+                }
+            }
+
+            // Don't call callback in synchronized block because mListener.onQueryComplete may
+            // take long time to complete
+            if (shouldCallListener && mListener != null) {
+                addCallerInfoIntoCache(ci, directoryId);
+                mListener.onQueryComplete(token, cookie, ci);
+            }
+        }
+
+        private void addCallerInfoIntoCache(CallerInfo ci, long directoryId) {
+            if (ci.contactExists && mCachedNumberLookupService != null) {
+                // 1. Cache caller info
+                CachedContactInfo cachedContactInfo = CallerInfoUtils
+                        .buildCachedContactInfo(mCachedNumberLookupService, ci);
+                String directoryLabel = mContext.getString(R.string.directory_search_label);
+                cachedContactInfo.setDirectorySource(directoryLabel, directoryId);
+                mCachedNumberLookupService.addContact(mContext, cachedContactInfo);
+
+                // 2. Cache photo
+                if (ci.contactDisplayPhotoUri != null && ci.normalizedNumber != null) {
+                    try (InputStream in = mContext.getContentResolver()
+                            .openInputStream(ci.contactDisplayPhotoUri)) {
+                        if (in != null) {
+                            mCachedNumberLookupService.addPhoto(mContext, ci.normalizedNumber, in);
+                        }
+                    } catch (IOException e) {
+                        Log.e(LOG_TAG, "failed to fetch directory contact photo", e);
+                    }
+
+                }
+            }
+        }
+
+        public OnQueryCompleteListener newListener(long directoryId) {
+            return new DirectoryQueryCompleteListener(directoryId);
+        }
+    }
+    /* Directory lookup related code - END */
+
+    /**
+     * Method to create a new CallerInfoAsyncQueryHandler object, ensuring correct
+     * state of context and uri.
+     */
+    private void allocate(Context context, Uri contactRef) {
+        if ((context == null) || (contactRef == null)){
+            throw new QueryPoolException("Bad context or query uri.");
+        }
+        mHandler = new CallerInfoAsyncQueryHandler(context);
+        mHandler.mQueryContext = context;
+        mHandler.mQueryUri = contactRef;
+    }
+
+    /**
+     * Releases the relevant data.
+     */
+    private void release() {
+        mHandler.mQueryContext = null;
+        mHandler.mQueryUri = null;
+        mHandler.mCallerInfo = null;
+        mHandler = null;
+    }
+
+    private static String sanitizeUriToString(Uri uri) {
+        if (uri != null) {
+            String uriString = uri.toString();
+            int indexOfLastSlash = uriString.lastIndexOf('/');
+            if (indexOfLastSlash > 0) {
+                return uriString.substring(0, indexOfLastSlash) + "/xxxxxxx";
+            } else {
+                return uriString;
+            }
+        } else {
+            return "";
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CallerInfoUtils.java b/InCallUI/src/com/android/incallui/CallerInfoUtils.java
new file mode 100644
index 0000000..aff3956
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CallerInfoUtils.java
@@ -0,0 +1,235 @@
+package com.android.incallui;
+
+import android.content.Context;
+import android.content.Loader;
+import android.content.Loader.OnLoadCompleteListener;
+import android.net.Uri;
+import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.model.Contact;
+import com.android.contacts.common.model.ContactLoader;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfo;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+
+import java.util.Arrays;
+
+/**
+ * Utility methods for contact and caller info related functionality
+ */
+public class CallerInfoUtils {
+
+    private static final String TAG = CallerInfoUtils.class.getSimpleName();
+
+    /** Define for not a special CNAP string */
+    private static final int CNAP_SPECIAL_CASE_NO = -1;
+
+    public CallerInfoUtils() {
+    }
+
+    private static final int QUERY_TOKEN = -1;
+
+    /**
+     * This is called to get caller info for a call. This will return a CallerInfo
+     * object immediately based off information in the call, but
+     * more information is returned to the OnQueryCompleteListener (which contains
+     * information about the phone number label, user's name, etc).
+     */
+    public static CallerInfo getCallerInfoForCall(Context context, Call call,
+            CallerInfoAsyncQuery.OnQueryCompleteListener listener) {
+        CallerInfo info = buildCallerInfo(context, call);
+
+        // TODO: Have phoneapp send a Uri when it knows the contact that triggered this call.
+
+        if (info.numberPresentation == TelecomManager.PRESENTATION_ALLOWED) {
+            // Start the query with the number provided from the call.
+            Log.d(TAG, "==> Actually starting CallerInfoAsyncQuery.startQuery()...");
+            CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context, info, listener, call);
+        }
+        return info;
+    }
+
+    public static CallerInfo buildCallerInfo(Context context, Call call) {
+        CallerInfo info = new CallerInfo();
+
+        // Store CNAP information retrieved from the Connection (we want to do this
+        // here regardless of whether the number is empty or not).
+        info.cnapName = call.getCnapName();
+        info.name = info.cnapName;
+        info.numberPresentation = call.getNumberPresentation();
+        info.namePresentation = call.getCnapNamePresentation();
+        info.callSubject = call.getCallSubject();
+
+        String number = call.getNumber();
+        if (!TextUtils.isEmpty(number)) {
+            final String[] numbers = number.split("&");
+            number = numbers[0];
+            if (numbers.length > 1) {
+                info.forwardingNumber = numbers[1];
+            }
+
+            number = modifyForSpecialCnapCases(context, info, number, info.numberPresentation);
+            info.phoneNumber = number;
+        }
+
+        // Because the InCallUI is immediately launched before the call is connected, occasionally
+        // a voicemail call will be passed to InCallUI as a "voicemail:" URI without a number.
+        // This call should still be handled as a voicemail call.
+        if ((call.getHandle() != null &&
+                PhoneAccount.SCHEME_VOICEMAIL.equals(call.getHandle().getScheme())) ||
+                isVoiceMailNumber(context, call)) {
+            info.markAsVoiceMail(context);
+        }
+
+        ContactInfoCache.getInstance(context).maybeInsertCnapInformationIntoCache(context, call,
+                info);
+
+        return info;
+    }
+
+    /**
+     * Creates a new {@link CachedContactInfo} from a {@link CallerInfo}
+     *
+     * @param lookupService the {@link CachedNumberLookupService} used to build a
+     *        new {@link CachedContactInfo}
+     * @param {@link CallerInfo} object
+     * @return a CachedContactInfo object created from this CallerInfo
+     * @throws NullPointerException if lookupService or ci are null
+     */
+    public static CachedContactInfo buildCachedContactInfo(CachedNumberLookupService lookupService,
+            CallerInfo ci) {
+        ContactInfo info = new ContactInfo();
+        info.name = ci.name;
+        info.type = ci.numberType;
+        info.label = ci.phoneLabel;
+        info.number = ci.phoneNumber;
+        info.normalizedNumber = ci.normalizedNumber;
+        info.photoUri = ci.contactDisplayPhotoUri;
+        info.userType = ci.userType;
+
+        CachedContactInfo cacheInfo = lookupService.buildCachedContactInfo(info);
+        cacheInfo.setLookupKey(ci.lookupKeyOrNull);
+        return cacheInfo;
+    }
+
+    public static boolean isVoiceMailNumber(Context context, Call call) {
+         return TelecomManagerCompat.isVoiceMailNumber(
+                 (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE),
+                 call.getTelecomCall().getDetails().getAccountHandle(),
+                 call.getNumber());
+    }
+
+    /**
+     * Handles certain "corner cases" for CNAP. When we receive weird phone numbers
+     * from the network to indicate different number presentations, convert them to
+     * expected number and presentation values within the CallerInfo object.
+     * @param number number we use to verify if we are in a corner case
+     * @param presentation presentation value used to verify if we are in a corner case
+     * @return the new String that should be used for the phone number
+     */
+    /* package */static String modifyForSpecialCnapCases(Context context, CallerInfo ci,
+            String number, int presentation) {
+        // Obviously we return number if ci == null, but still return number if
+        // number == null, because in these cases the correct string will still be
+        // displayed/logged after this function returns based on the presentation value.
+        if (ci == null || number == null) return number;
+
+        Log.d(TAG, "modifyForSpecialCnapCases: initially, number="
+                + toLogSafePhoneNumber(number)
+                + ", presentation=" + presentation + " ci " + ci);
+
+        // "ABSENT NUMBER" is a possible value we could get from the network as the
+        // phone number, so if this happens, change it to "Unknown" in the CallerInfo
+        // and fix the presentation to be the same.
+        final String[] absentNumberValues =
+                context.getResources().getStringArray(R.array.absent_num);
+        if (Arrays.asList(absentNumberValues).contains(number)
+                && presentation == TelecomManager.PRESENTATION_ALLOWED) {
+            number = context.getString(R.string.unknown);
+            ci.numberPresentation = TelecomManager.PRESENTATION_UNKNOWN;
+        }
+
+        // Check for other special "corner cases" for CNAP and fix them similarly. Corner
+        // cases only apply if we received an allowed presentation from the network, so check
+        // if we think we have an allowed presentation, or if the CallerInfo presentation doesn't
+        // match the presentation passed in for verification (meaning we changed it previously
+        // because it's a corner case and we're being called from a different entry point).
+        if (ci.numberPresentation == TelecomManager.PRESENTATION_ALLOWED
+                || (ci.numberPresentation != presentation
+                        && presentation == TelecomManager.PRESENTATION_ALLOWED)) {
+            // For all special strings, change number & numberPrentation.
+            if (isCnapSpecialCaseRestricted(number)) {
+                number = context.getString(R.string.private_num);
+                ci.numberPresentation = TelecomManager.PRESENTATION_RESTRICTED;
+            } else if (isCnapSpecialCaseUnknown(number)) {
+                number = context.getString(R.string.unknown);
+                ci.numberPresentation = TelecomManager.PRESENTATION_UNKNOWN;
+            }
+            Log.d(TAG, "SpecialCnap: number=" + toLogSafePhoneNumber(number)
+                    + "; presentation now=" + ci.numberPresentation);
+        }
+        Log.d(TAG, "modifyForSpecialCnapCases: returning number string="
+                + toLogSafePhoneNumber(number));
+        return number;
+    }
+
+    private static boolean isCnapSpecialCaseRestricted(String n) {
+        return n.equals("PRIVATE") || n.equals("P") || n.equals("RES");
+    }
+
+    private static boolean isCnapSpecialCaseUnknown(String n) {
+        return n.equals("UNAVAILABLE") || n.equals("UNKNOWN") || n.equals("UNA") || n.equals("U");
+    }
+
+    /* package */static String toLogSafePhoneNumber(String number) {
+        // For unknown number, log empty string.
+        if (number == null) {
+            return "";
+        }
+
+        // Todo: Figure out an equivalent for VDBG
+        if (false) {
+            // When VDBG is true we emit PII.
+            return number;
+        }
+
+        // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
+        // sanitized phone numbers.
+        StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < number.length(); i++) {
+            char c = number.charAt(i);
+            if (c == '-' || c == '@' || c == '.' || c == '&') {
+                builder.append(c);
+            } else {
+                builder.append('x');
+            }
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Send a notification using a {@link ContactLoader} to inform the sync adapter that we are
+     * viewing a particular contact, so that it can download the high-res photo.
+     */
+    public static void sendViewNotification(Context context, Uri contactUri) {
+        final ContactLoader loader = new ContactLoader(context, contactUri,
+                true /* postViewNotification */);
+        loader.registerListener(0, new OnLoadCompleteListener<Contact>() {
+            @Override
+            public void onLoadComplete(
+                    Loader<Contact> loader, Contact contact) {
+                try {
+                    loader.reset();
+                } catch (RuntimeException e) {
+                    Log.e(TAG, "Error resetting loader", e);
+                }
+            }
+        });
+        loader.startLoading();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/CircularRevealFragment.java b/InCallUI/src/com/android/incallui/CircularRevealFragment.java
new file mode 100644
index 0000000..01bd253
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/CircularRevealFragment.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.graphics.Outline;
+import android.graphics.Point;
+import android.os.Bundle;
+import android.view.Display;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewAnimationUtils;
+import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
+import android.view.ViewTreeObserver;
+import android.view.ViewTreeObserver.OnPreDrawListener;
+
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.R;
+
+public class CircularRevealFragment extends Fragment {
+    static final String TAG = "CircularRevealFragment";
+
+    private Point mTouchPoint;
+    private OnCircularRevealCompleteListener mListener;
+    private boolean mAnimationStarted;
+
+    interface OnCircularRevealCompleteListener {
+        public void onCircularRevealComplete(FragmentManager fm);
+    }
+
+    public static void startCircularReveal(FragmentManager fm, Point touchPoint,
+            OnCircularRevealCompleteListener listener) {
+        if (fm.findFragmentByTag(TAG) == null) {
+            fm.beginTransaction().add(R.id.main,
+                    new CircularRevealFragment(touchPoint, listener), TAG)
+                            .commitAllowingStateLoss();
+        } else {
+            Log.w(TAG, "An instance of CircularRevealFragment already exists");
+        }
+    }
+
+    public static void endCircularReveal(FragmentManager fm) {
+        final Fragment fragment = fm.findFragmentByTag(TAG);
+        if (fragment != null) {
+            fm.beginTransaction().remove(fragment).commitAllowingStateLoss();
+        }
+    }
+
+    /**
+     * Empty constructor used only by the {@link FragmentManager}.
+     */
+    public CircularRevealFragment() {}
+
+    public CircularRevealFragment(Point touchPoint, OnCircularRevealCompleteListener listener) {
+        mTouchPoint = touchPoint;
+        mListener = listener;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (!mAnimationStarted) {
+            // Only run the animation once for each instance of the fragment
+            startOutgoingAnimation(InCallPresenter.getInstance().getThemeColors());
+        }
+        mAnimationStarted = true;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.outgoing_call_animation, container, false);
+    }
+
+    public void startOutgoingAnimation(MaterialPalette palette) {
+        final Activity activity = getActivity();
+        if (activity == null) {
+            Log.w(this, "Asked to do outgoing call animation when not attached");
+            return;
+        }
+
+        final View view  = activity.getWindow().getDecorView();
+
+        // The circle starts from an initial size of 0 so clip it such that it is invisible.
+        // Otherwise the first frame is drawn with a fully opaque screen which causes jank. When
+        // the animation later starts, this clip will be clobbered by the circular reveal clip.
+        // See ViewAnimationUtils.createCircularReveal.
+        view.setOutlineProvider(new ViewOutlineProvider() {
+            @Override
+            public void getOutline(View view, Outline outline) {
+                // Using (0, 0, 0, 0) will not work since the outline will simply be treated as
+                // an empty outline.
+                outline.setOval(-1, -1, 0, 0);
+            }
+        });
+        view.setClipToOutline(true);
+
+        if (palette != null) {
+            view.findViewById(R.id.outgoing_call_animation_circle).setBackgroundColor(
+                    palette.mPrimaryColor);
+            activity.getWindow().setStatusBarColor(palette.mSecondaryColor);
+        }
+
+        view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                final ViewTreeObserver vto = view.getViewTreeObserver();
+                if (vto.isAlive()) {
+                    vto.removeOnPreDrawListener(this);
+                }
+                final Animator animator = getRevealAnimator(mTouchPoint);
+                if (animator != null) {
+                    animator.addListener(new AnimatorListenerAdapter() {
+                        @Override
+                        public void onAnimationEnd(Animator animation) {
+                            view.setClipToOutline(false);
+                            if (mListener != null) {
+                                mListener.onCircularRevealComplete(getFragmentManager());
+                            }
+                        }
+                    });
+                    animator.start();
+                }
+                return false;
+            }
+        });
+    }
+
+    private Animator getRevealAnimator(Point touchPoint) {
+        final Activity activity = getActivity();
+        if (activity == null) {
+            return null;
+        }
+        final View view  = activity.getWindow().getDecorView();
+        final Display display = activity.getWindowManager().getDefaultDisplay();
+        final Point size = new Point();
+        display.getSize(size);
+
+        int startX = size.x / 2;
+        int startY = size.y / 2;
+        if (touchPoint != null) {
+            startX = touchPoint.x;
+            startY = touchPoint.y;
+        }
+
+        final Animator valueAnimator = ViewAnimationUtils.createCircularReveal(view,
+                startX, startY, 0, Math.max(size.x, size.y));
+        valueAnimator.setDuration(getResources().getInteger(R.integer.reveal_animation_duration));
+        return valueAnimator;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java b/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java
new file mode 100644
index 0000000..fe941c8
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java
@@ -0,0 +1,139 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.app.ActionBar;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.dialer.R;
+
+import java.util.List;
+
+/**
+ * Fragment that allows the user to manage a conference call.
+ */
+public class ConferenceManagerFragment
+        extends BaseFragment<ConferenceManagerPresenter,
+                ConferenceManagerPresenter.ConferenceManagerUi>
+        implements ConferenceManagerPresenter.ConferenceManagerUi {
+
+    private static final String KEY_IS_VISIBLE = "key_conference_is_visible";
+
+    private ListView mConferenceParticipantList;
+    private int mActionBarElevation;
+    private ContactPhotoManager mContactPhotoManager;
+    private LayoutInflater mInflater;
+    private ConferenceParticipantListAdapter mConferenceParticipantListAdapter;
+    private boolean mIsVisible;
+    private boolean mIsRecreating;
+
+    @Override
+    public ConferenceManagerPresenter createPresenter() {
+        return new ConferenceManagerPresenter();
+    }
+
+    @Override
+    public ConferenceManagerPresenter.ConferenceManagerUi getUi() {
+        return this;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState != null) {
+            mIsRecreating = true;
+            mIsVisible = savedInstanceState.getBoolean(KEY_IS_VISIBLE);
+        }
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View parent =
+                inflater.inflate(R.layout.conference_manager_fragment, container, false);
+
+        mConferenceParticipantList = (ListView) parent.findViewById(R.id.participantList);
+        mContactPhotoManager =
+                ContactPhotoManager.getInstance(getActivity().getApplicationContext());
+        mActionBarElevation =
+                (int) getResources().getDimension(R.dimen.incall_action_bar_elevation);
+        mInflater = LayoutInflater.from(getActivity().getApplicationContext());
+
+        return parent;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (mIsRecreating) {
+            onVisibilityChanged(mIsVisible);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putBoolean(KEY_IS_VISIBLE, mIsVisible);
+        super.onSaveInstanceState(outState);
+    }
+
+    public void onVisibilityChanged(boolean isVisible) {
+        mIsVisible = isVisible;
+        ActionBar actionBar = getActivity().getActionBar();
+        if (isVisible) {
+            actionBar.setTitle(R.string.manageConferenceLabel);
+            actionBar.setElevation(mActionBarElevation);
+            actionBar.setHideOffset(0);
+            actionBar.show();
+
+            final CallList calls = CallList.getInstance();
+            getPresenter().init(getActivity(), calls);
+            // Request focus on the list of participants for accessibility purposes.  This ensures
+            // that once the list of participants is shown, the first participant is announced.
+            mConferenceParticipantList.requestFocus();
+        } else {
+            actionBar.setElevation(0);
+            actionBar.setHideOffset(actionBar.getHeight());
+        }
+    }
+
+    @Override
+    public boolean isFragmentVisible() {
+        return isVisible();
+    }
+
+    @Override
+    public void update(Context context, List<Call> participants, boolean parentCanSeparate) {
+        if (mConferenceParticipantListAdapter == null) {
+            mConferenceParticipantListAdapter = new ConferenceParticipantListAdapter(
+                    mConferenceParticipantList, context, mInflater, mContactPhotoManager);
+
+            mConferenceParticipantList.setAdapter(mConferenceParticipantListAdapter);
+        }
+        mConferenceParticipantListAdapter.updateParticipants(participants, parentCanSeparate);
+    }
+
+    @Override
+    public void refreshCall(Call call) {
+        mConferenceParticipantListAdapter.refreshCall(call);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java b/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java
new file mode 100644
index 0000000..6fb6e5d
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java
@@ -0,0 +1,144 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+
+import com.android.incallui.InCallPresenter.InCallDetailsListener;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
+
+import com.google.common.base.Preconditions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Logic for call buttons.
+ */
+public class ConferenceManagerPresenter
+        extends Presenter<ConferenceManagerPresenter.ConferenceManagerUi>
+        implements InCallStateListener, InCallDetailsListener, IncomingCallListener {
+
+    private Context mContext;
+
+    @Override
+    public void onUiReady(ConferenceManagerUi ui) {
+        super.onUiReady(ui);
+
+        // register for call state changes last
+        InCallPresenter.getInstance().addListener(this);
+        InCallPresenter.getInstance().addIncomingCallListener(this);
+    }
+
+    @Override
+    public void onUiUnready(ConferenceManagerUi ui) {
+        super.onUiUnready(ui);
+
+        InCallPresenter.getInstance().removeListener(this);
+        InCallPresenter.getInstance().removeIncomingCallListener(this);
+    }
+
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        if (getUi().isFragmentVisible()) {
+            Log.v(this, "onStateChange" + newState);
+            if (newState == InCallState.INCALL) {
+                final Call call = callList.getActiveOrBackgroundCall();
+                if (call != null && call.isConferenceCall()) {
+                    Log.v(this, "Number of existing calls is " +
+                            String.valueOf(call.getChildCallIds().size()));
+                    update(callList);
+                } else {
+                    InCallPresenter.getInstance().showConferenceCallManager(false);
+                }
+            } else {
+                InCallPresenter.getInstance().showConferenceCallManager(false);
+            }
+        }
+    }
+
+    @Override
+    public void onDetailsChanged(Call call, android.telecom.Call.Details details) {
+        boolean canDisconnect = details.can(
+                android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE);
+        boolean canSeparate = details.can(
+                android.telecom.Call.Details.CAPABILITY_SEPARATE_FROM_CONFERENCE);
+
+        if (call.can(android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE)
+                != canDisconnect
+            || call.can(android.telecom.Call.Details.CAPABILITY_SEPARATE_FROM_CONFERENCE)
+                != canSeparate) {
+            getUi().refreshCall(call);
+        }
+
+        if (!details.can(
+                android.telecom.Call.Details.CAPABILITY_MANAGE_CONFERENCE)) {
+            InCallPresenter.getInstance().showConferenceCallManager(false);
+        }
+    }
+
+    @Override
+    public void onIncomingCall(InCallState oldState, InCallState newState, Call call) {
+        // When incoming call exists, set conference ui invisible.
+        if (getUi().isFragmentVisible()) {
+            Log.d(this, "onIncomingCall()... Conference ui is showing, hide it.");
+            InCallPresenter.getInstance().showConferenceCallManager(false);
+        }
+    }
+
+    public void init(Context context, CallList callList) {
+        mContext = Preconditions.checkNotNull(context);
+        mContext = context;
+        update(callList);
+    }
+
+    /**
+     * Updates the conference participant adapter.
+     *
+     * @param callList The callList.
+     */
+    private void update(CallList callList) {
+        // callList is non null, but getActiveOrBackgroundCall() may return null
+        final Call currentCall = callList.getActiveOrBackgroundCall();
+        if (currentCall == null) {
+            return;
+        }
+
+        ArrayList<Call> calls = new ArrayList<>(currentCall.getChildCallIds().size());
+        for (String callerId : currentCall.getChildCallIds()) {
+            calls.add(callList.getCallById(callerId));
+        }
+
+        Log.d(this, "Number of calls is " + String.valueOf(calls.size()));
+
+        // Users can split out a call from the conference call if either the active call or the
+        // holding call is empty. If both are filled, users can not split out another call.
+        final boolean hasActiveCall = (callList.getActiveCall() != null);
+        final boolean hasHoldingCall = (callList.getBackgroundCall() != null);
+        boolean canSeparate = !(hasActiveCall && hasHoldingCall);
+
+        getUi().update(mContext, calls, canSeparate);
+    }
+
+    public interface ConferenceManagerUi extends Ui {
+        boolean isFragmentVisible();
+        void update(Context context, List<Call> participants, boolean parentCanSeparate);
+        void refreshCall(Call call);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java b/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java
new file mode 100644
index 0000000..d68ae1f
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -0,0 +1,533 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.MoreObjects;
+
+import android.content.Context;
+import android.net.Uri;
+import android.support.annotation.Nullable;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.R;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Adapter for a ListView containing conference call participant information.
+ */
+public class ConferenceParticipantListAdapter extends BaseAdapter {
+
+    /**
+     * Internal class which represents a participant.  Includes a reference to the {@link Call} and
+     * the corresponding {@link ContactCacheEntry} for the participant.
+     */
+    private class ParticipantInfo {
+        private Call mCall;
+        private ContactCacheEntry mContactCacheEntry;
+        private boolean mCacheLookupComplete = false;
+
+        public ParticipantInfo(Call call, ContactCacheEntry contactCacheEntry) {
+            mCall = call;
+            mContactCacheEntry = contactCacheEntry;
+        }
+
+        public Call getCall() {
+            return mCall;
+        }
+
+        public void setCall(Call call) {
+            mCall = call;
+        }
+
+        public ContactCacheEntry getContactCacheEntry() {
+            return mContactCacheEntry;
+        }
+
+        public void setContactCacheEntry(ContactCacheEntry entry) {
+            mContactCacheEntry = entry;
+        }
+
+        public boolean isCacheLookupComplete() {
+            return mCacheLookupComplete;
+        }
+
+        public void setCacheLookupComplete(boolean cacheLookupComplete) {
+            mCacheLookupComplete = cacheLookupComplete;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof ParticipantInfo) {
+                ParticipantInfo p = (ParticipantInfo) o;
+                return
+                        Objects.equals(p.getCall().getId(), mCall.getId());
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return mCall.getId().hashCode();
+        }
+    }
+
+    /**
+     * Callback class used when making requests to the {@link ContactInfoCache} to resolve contact
+     * info and contact photos for conference participants.
+     */
+    public static class ContactLookupCallback implements ContactInfoCache.ContactInfoCacheCallback {
+        private final WeakReference<ConferenceParticipantListAdapter> mListAdapter;
+
+        public ContactLookupCallback(ConferenceParticipantListAdapter listAdapter) {
+            mListAdapter = new WeakReference<ConferenceParticipantListAdapter>(listAdapter);
+        }
+
+        /**
+         * Called when contact info has been resolved.
+         *
+         * @param callId The call id.
+         * @param entry The new contact information.
+         */
+        @Override
+        public void onContactInfoComplete(String callId, ContactCacheEntry entry) {
+            update(callId, entry);
+        }
+
+        /**
+         * Called when contact photo has been loaded into the cache.
+         *
+         * @param callId The call id.
+         * @param entry The new contact information.
+         */
+        @Override
+        public void onImageLoadComplete(String callId, ContactCacheEntry entry) {
+            update(callId, entry);
+        }
+
+        @Override
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {}
+
+        /**
+         * Updates the contact information for a participant.
+         *
+         * @param callId The call id.
+         * @param entry The new contact information.
+         */
+        private void update(String callId, ContactCacheEntry entry) {
+            ConferenceParticipantListAdapter listAdapter = mListAdapter.get();
+            if (listAdapter != null) {
+                listAdapter.updateContactInfo(callId, entry);
+            }
+        }
+    }
+
+    /**
+     * Listener used to handle tap of the "disconnect' button for a participant.
+     */
+    private View.OnClickListener mDisconnectListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            View parent = (View) v.getParent();
+            String callId = (String) parent.getTag();
+            TelecomAdapter.getInstance().disconnectCall(callId);
+        }
+    };
+
+    /**
+     * Listener used to handle tap of the "separate' button for a participant.
+     */
+    private View.OnClickListener mSeparateListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            View parent = (View) v.getParent();
+            String callId = (String) parent.getTag();
+            TelecomAdapter.getInstance().separateCall(callId);
+        }
+    };
+
+    /**
+     * The ListView containing the participant information.
+     */
+    private final ListView mListView;
+
+    /**
+     * The conference participants to show in the ListView.
+     */
+    private List<ParticipantInfo> mConferenceParticipants = new ArrayList<>();
+
+    /**
+     * Hashmap to make accessing participant info by call Id faster.
+     */
+    private final HashMap<String, ParticipantInfo> mParticipantsByCallId = new HashMap<>();
+
+    /**
+     * The context.
+     */
+    private final Context mContext;
+
+    /**
+     * ContactsPreferences used to lookup displayName preferences
+     */
+    @Nullable private final ContactsPreferences mContactsPreferences;
+
+    /**
+     * The layout inflater used to inflate new views.
+     */
+    private final LayoutInflater mLayoutInflater;
+
+    /**
+     * Contact photo manager to retrieve cached contact photo information.
+     */
+    private final ContactPhotoManager mContactPhotoManager;
+
+    /**
+     * {@code True} if the conference parent supports separating calls from the conference.
+     */
+    private boolean mParentCanSeparate;
+
+    /**
+     * Creates an instance of the ConferenceParticipantListAdapter.
+     *
+     * @param listView The listview.
+     * @param context The context.
+     * @param layoutInflater The layout inflater.
+     * @param contactPhotoManager The contact photo manager, used to load contact photos.
+     */
+    public ConferenceParticipantListAdapter(ListView listView, Context context,
+            LayoutInflater layoutInflater, ContactPhotoManager contactPhotoManager) {
+
+        mListView = listView;
+        mContext = context;
+        mContactsPreferences = ContactsPreferencesFactory.newContactsPreferences(mContext);
+        mLayoutInflater = layoutInflater;
+        mContactPhotoManager = contactPhotoManager;
+    }
+
+    /**
+     * Updates the adapter with the new conference participant information provided.
+     *
+     * @param conferenceParticipants The list of conference participants.
+     * @param parentCanSeparate {@code True} if the parent supports separating calls from the
+     *                                      conference.
+     */
+    public void updateParticipants(List<Call> conferenceParticipants, boolean parentCanSeparate) {
+        if (mContactsPreferences != null) {
+            mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+            mContactsPreferences.refreshValue(ContactsPreferences.SORT_ORDER_KEY);
+        }
+        mParentCanSeparate = parentCanSeparate;
+        updateParticipantInfo(conferenceParticipants);
+    }
+
+    /**
+     * Determines the number of participants in the conference.
+     *
+     * @return The number of participants.
+     */
+    @Override
+    public int getCount() {
+        return mConferenceParticipants.size();
+    }
+
+    /**
+     * Retrieves an item from the list of participants.
+     *
+     * @param position Position of the item whose data we want within the adapter's
+     * data set.
+     * @return The {@link ParticipantInfo}.
+     */
+    @Override
+    public Object getItem(int position) {
+        return mConferenceParticipants.get(position);
+    }
+
+    /**
+     * Retreives the adapter-specific item id for an item at a specified position.
+     *
+     * @param position The position of the item within the adapter's data set whose row id we want.
+     * @return The item id.
+     */
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    /**
+     * Refreshes call information for the call passed in.
+     *
+     * @param call The new call information.
+     */
+    public void refreshCall(Call call) {
+        String callId = call.getId();
+
+        if (mParticipantsByCallId.containsKey(callId)) {
+            ParticipantInfo participantInfo = mParticipantsByCallId.get(callId);
+            participantInfo.setCall(call);
+            refreshView(callId);
+        }
+    }
+
+    /**
+     * Attempts to refresh the view for the specified call ID.  This ensures the contact info and
+     * photo loaded from cache are updated.
+     *
+     * @param callId The call id.
+     */
+    private void refreshView(String callId) {
+        int first = mListView.getFirstVisiblePosition();
+        int last = mListView.getLastVisiblePosition();
+
+        for (int position = 0; position <= last - first; position++) {
+            View view = mListView.getChildAt(position);
+            String rowCallId = (String) view.getTag();
+            if (rowCallId.equals(callId)) {
+                getView(position+first, view, mListView);
+                break;
+            }
+        }
+    }
+
+    /**
+     * Creates or populates an existing conference participant row.
+     *
+     * @param position The position of the item within the adapter's data set of the item whose view
+     *        we want.
+     * @param convertView The old view to reuse, if possible.
+     * @param parent The parent that this view will eventually be attached to
+     * @return The populated view.
+     */
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        // Make sure we have a valid convertView to start with
+        final View result = convertView == null
+                        ? mLayoutInflater.inflate(R.layout.caller_in_conference, parent, false)
+                        : convertView;
+
+        ParticipantInfo participantInfo = mConferenceParticipants.get(position);
+        Call call = participantInfo.getCall();
+        ContactCacheEntry contactCache = participantInfo.getContactCacheEntry();
+
+        final ContactInfoCache cache = ContactInfoCache.getInstance(mContext);
+
+        // If a cache lookup has not yet been performed to retrieve the contact information and
+        // photo, do it now.
+        if (!participantInfo.isCacheLookupComplete()) {
+            cache.findInfo(participantInfo.getCall(),
+                    participantInfo.getCall().getState() == Call.State.INCOMING,
+                    new ContactLookupCallback(this));
+        }
+
+        boolean thisRowCanSeparate = mParentCanSeparate && call.getTelecomCall().getDetails().can(
+                android.telecom.Call.Details.CAPABILITY_SEPARATE_FROM_CONFERENCE);
+        boolean thisRowCanDisconnect = call.getTelecomCall().getDetails().can(
+                android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE);
+
+        setCallerInfoForRow(result, contactCache.namePrimary,
+                ContactDisplayUtils.getPreferredDisplayName(contactCache.namePrimary,
+                        contactCache.nameAlternative, mContactsPreferences),
+                contactCache.number, contactCache.label,
+                contactCache.lookupKey, contactCache.displayPhotoUri, thisRowCanSeparate,
+                thisRowCanDisconnect);
+
+        // Tag the row in the conference participant list with the call id to make it easier to
+        // find calls when contact cache information is loaded.
+        result.setTag(call.getId());
+
+        return result;
+    }
+
+    /**
+     * Replaces the contact info for a participant and triggers a refresh of the UI.
+     *
+     * @param callId The call id.
+     * @param entry The new contact info.
+     */
+    /* package */ void updateContactInfo(String callId, ContactCacheEntry entry) {
+        if (mParticipantsByCallId.containsKey(callId)) {
+            ParticipantInfo participantInfo = mParticipantsByCallId.get(callId);
+            participantInfo.setContactCacheEntry(entry);
+            participantInfo.setCacheLookupComplete(true);
+            refreshView(callId);
+        }
+    }
+
+    /**
+     * Sets the caller information for a row in the conference participant list.
+     *
+     * @param view The view to set the details on.
+     * @param callerName The participant's name.
+     * @param callerNumber The participant's phone number.
+     * @param callerNumberType The participant's phone number typ.e
+     * @param lookupKey The lookup key for the participant (for photo lookup).
+     * @param photoUri The URI of the contact photo.
+     * @param thisRowCanSeparate {@code True} if this participant can separate from the conference.
+     * @param thisRowCanDisconnect {@code True} if this participant can be disconnected.
+     */
+    private final void setCallerInfoForRow(View view, String callerName, String preferredName,
+            String callerNumber, String callerNumberType, String lookupKey, Uri photoUri,
+            boolean thisRowCanSeparate, boolean thisRowCanDisconnect) {
+
+        final ImageView photoView = (ImageView) view.findViewById(R.id.callerPhoto);
+        final TextView nameTextView = (TextView) view.findViewById(R.id.conferenceCallerName);
+        final TextView numberTextView = (TextView) view.findViewById(R.id.conferenceCallerNumber);
+        final TextView numberTypeTextView = (TextView) view.findViewById(
+                R.id.conferenceCallerNumberType);
+        final View endButton = view.findViewById(R.id.conferenceCallerDisconnect);
+        final View separateButton = view.findViewById(R.id.conferenceCallerSeparate);
+
+        endButton.setVisibility(thisRowCanDisconnect ? View.VISIBLE : View.GONE);
+        if (thisRowCanDisconnect) {
+            endButton.setOnClickListener(mDisconnectListener);
+        } else {
+            endButton.setOnClickListener(null);
+        }
+
+        separateButton.setVisibility(thisRowCanSeparate ? View.VISIBLE : View.GONE);
+        if (thisRowCanSeparate) {
+            separateButton.setOnClickListener(mSeparateListener);
+        } else {
+            separateButton.setOnClickListener(null);
+        }
+
+        DefaultImageRequest imageRequest = (photoUri != null) ? null :
+                new DefaultImageRequest(callerName, lookupKey, true /* isCircularPhoto */);
+
+        mContactPhotoManager.loadDirectoryPhoto(photoView, photoUri, false, true, imageRequest);
+
+        // set the caller name
+        nameTextView.setText(preferredName);
+
+        // set the caller number in subscript, or make the field disappear.
+        if (TextUtils.isEmpty(callerNumber)) {
+            numberTextView.setVisibility(View.GONE);
+            numberTypeTextView.setVisibility(View.GONE);
+        } else {
+            numberTextView.setVisibility(View.VISIBLE);
+            numberTextView.setText(PhoneNumberUtilsCompat.createTtsSpannable(
+                    BidiFormatter.getInstance().unicodeWrap(
+                            callerNumber, TextDirectionHeuristics.LTR)));
+            numberTypeTextView.setVisibility(View.VISIBLE);
+            numberTypeTextView.setText(callerNumberType);
+        }
+    }
+
+    /**
+     * Updates the participant info list which is bound to the ListView.  Stores the call and
+     * contact info for all entries.  The list is sorted alphabetically by participant name.
+     *
+     * @param conferenceParticipants The calls which make up the conference participants.
+     */
+    private void updateParticipantInfo(List<Call> conferenceParticipants) {
+        final ContactInfoCache cache = ContactInfoCache.getInstance(mContext);
+        boolean newParticipantAdded = false;
+        HashSet<String> newCallIds = new HashSet<>(conferenceParticipants.size());
+
+        // Update or add conference participant info.
+        for (Call call : conferenceParticipants) {
+            String callId = call.getId();
+            newCallIds.add(callId);
+            ContactCacheEntry contactCache = cache.getInfo(callId);
+            if (contactCache == null) {
+                contactCache = ContactInfoCache.buildCacheEntryFromCall(mContext, call,
+                        call.getState() == Call.State.INCOMING);
+            }
+
+            if (mParticipantsByCallId.containsKey(callId)) {
+                ParticipantInfo participantInfo = mParticipantsByCallId.get(callId);
+                participantInfo.setCall(call);
+                participantInfo.setContactCacheEntry(contactCache);
+            } else {
+                newParticipantAdded = true;
+                ParticipantInfo participantInfo = new ParticipantInfo(call, contactCache);
+                mConferenceParticipants.add(participantInfo);
+                mParticipantsByCallId.put(call.getId(), participantInfo);
+            }
+        }
+
+        // Remove any participants that no longer exist.
+        Iterator<Map.Entry<String, ParticipantInfo>> it =
+                mParticipantsByCallId.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry<String, ParticipantInfo> entry = it.next();
+            String existingCallId = entry.getKey();
+            if (!newCallIds.contains(existingCallId)) {
+                ParticipantInfo existingInfo = entry.getValue();
+                mConferenceParticipants.remove(existingInfo);
+                it.remove();
+            }
+        }
+
+        if (newParticipantAdded) {
+            // Sort the list of participants by contact name.
+            sortParticipantList();
+        }
+        notifyDataSetChanged();
+    }
+
+    /**
+     * Sorts the participant list by contact name.
+     */
+    private void sortParticipantList() {
+        Collections.sort(mConferenceParticipants, new Comparator<ParticipantInfo>() {
+            public int compare(ParticipantInfo p1, ParticipantInfo p2) {
+                // Contact names might be null, so replace with empty string.
+                ContactCacheEntry c1 = p1.getContactCacheEntry();
+                String p1Name = MoreObjects.firstNonNull(
+                        ContactDisplayUtils.getPreferredSortName(
+                                c1.namePrimary,
+                                c1.nameAlternative,
+                                mContactsPreferences),
+                        "");
+
+                ContactCacheEntry c2 = p2.getContactCacheEntry();
+                String p2Name = MoreObjects.firstNonNull(
+                        ContactDisplayUtils.getPreferredSortName(
+                                c2.namePrimary,
+                                c2.nameAlternative,
+                                mContactsPreferences),
+                        "");
+
+                return p1Name.compareToIgnoreCase(p2Name);
+            }
+        });
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ContactInfoCache.java b/InCallUI/src/com/android/incallui/ContactInfoCache.java
new file mode 100644
index 0000000..9d6fc46
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ContactInfoCache.java
@@ -0,0 +1,699 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.location.Address;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Looper;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.DisplayNameSources;
+import android.telecom.TelecomManager;
+import android.text.TextUtils;
+import android.util.Pair;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfo;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+import com.android.dialer.util.MoreStrings;
+import com.android.incallui.Call.LogState;
+import com.android.incallui.service.PhoneNumberService;
+import com.android.incalluibind.ObjectFactory;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Class responsible for querying Contact Information for Call objects. Can perform asynchronous
+ * requests to the Contact Provider for information as well as respond synchronously for any data
+ * that it currently has cached from previous queries. This class always gets called from the UI
+ * thread so it does not need thread protection.
+ */
+public class ContactInfoCache implements ContactsAsyncHelper.OnImageLoadCompleteListener {
+
+    private static final String TAG = ContactInfoCache.class.getSimpleName();
+    private static final int TOKEN_UPDATE_PHOTO_FOR_CALL_STATE = 0;
+
+    private final Context mContext;
+    private final PhoneNumberService mPhoneNumberService;
+    private final CachedNumberLookupService mCachedNumberLookupService;
+    private final HashMap<String, ContactCacheEntry> mInfoMap = Maps.newHashMap();
+    private final HashMap<String, Set<ContactInfoCacheCallback>> mCallBacks = Maps.newHashMap();
+
+    private static ContactInfoCache sCache = null;
+
+    private Drawable mDefaultContactPhotoDrawable;
+    private Drawable mConferencePhotoDrawable;
+    private ContactUtils mContactUtils;
+
+    public static synchronized ContactInfoCache getInstance(Context mContext) {
+        if (sCache == null) {
+            sCache = new ContactInfoCache(mContext.getApplicationContext());
+        }
+        return sCache;
+    }
+
+    private ContactInfoCache(Context context) {
+        mContext = context;
+        mPhoneNumberService = ObjectFactory.newPhoneNumberService(context);
+        mCachedNumberLookupService =
+                com.android.dialerbind.ObjectFactory.newCachedNumberLookupService();
+        mContactUtils = ObjectFactory.getContactUtilsInstance(context);
+
+    }
+
+    public ContactCacheEntry getInfo(String callId) {
+        return mInfoMap.get(callId);
+    }
+
+    public static ContactCacheEntry buildCacheEntryFromCall(Context context, Call call,
+            boolean isIncoming) {
+        final ContactCacheEntry entry = new ContactCacheEntry();
+
+        // TODO: get rid of caller info.
+        final CallerInfo info = CallerInfoUtils.buildCallerInfo(context, call);
+        ContactInfoCache.populateCacheEntry(context, info, entry, call.getNumberPresentation(),
+                isIncoming);
+        return entry;
+    }
+
+    public void maybeInsertCnapInformationIntoCache(Context context, final Call call,
+            final CallerInfo info) {
+        if (mCachedNumberLookupService == null || TextUtils.isEmpty(info.cnapName)
+                || mInfoMap.get(call.getId()) != null) {
+            return;
+        }
+        final Context applicationContext = context.getApplicationContext();
+        Log.i(TAG, "Found contact with CNAP name - inserting into cache");
+        new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                ContactInfo contactInfo = new ContactInfo();
+                CachedContactInfo cacheInfo = mCachedNumberLookupService.buildCachedContactInfo(
+                        contactInfo);
+                cacheInfo.setSource(CachedContactInfo.SOURCE_TYPE_CNAP, "CNAP", 0);
+                contactInfo.name = info.cnapName;
+                contactInfo.number = call.getNumber();
+                contactInfo.type = ContactsContract.CommonDataKinds.Phone.TYPE_MAIN;
+                try {
+                    final JSONObject contactRows = new JSONObject().put(Phone.CONTENT_ITEM_TYPE,
+                            new JSONObject()
+                                    .put(Phone.NUMBER, contactInfo.number)
+                                    .put(Phone.TYPE, Phone.TYPE_MAIN));
+                    final String jsonString = new JSONObject()
+                            .put(Contacts.DISPLAY_NAME, contactInfo.name)
+                            .put(Contacts.DISPLAY_NAME_SOURCE, DisplayNameSources.STRUCTURED_NAME)
+                            .put(Contacts.CONTENT_ITEM_TYPE, contactRows).toString();
+                    cacheInfo.setLookupKey(jsonString);
+                } catch (JSONException e) {
+                    Log.w(TAG, "Creation of lookup key failed when caching CNAP information");
+                }
+                mCachedNumberLookupService.addContact(applicationContext, cacheInfo);
+                return null;
+            }
+        }.execute();
+    }
+
+    private class FindInfoCallback implements CallerInfoAsyncQuery.OnQueryCompleteListener {
+        private final boolean mIsIncoming;
+
+        public FindInfoCallback(boolean isIncoming) {
+            mIsIncoming = isIncoming;
+        }
+
+        @Override
+        public void onQueryComplete(int token, Object cookie, CallerInfo callerInfo) {
+            findInfoQueryComplete((Call) cookie, callerInfo, mIsIncoming, true);
+        }
+    }
+
+    /**
+     * Requests contact data for the Call object passed in.
+     * Returns the data through callback.  If callback is null, no response is made, however the
+     * query is still performed and cached.
+     *
+     * @param callback The function to call back when the call is found. Can be null.
+     */
+    public void findInfo(final Call call, final boolean isIncoming,
+            ContactInfoCacheCallback callback) {
+        Preconditions.checkState(Looper.getMainLooper().getThread() == Thread.currentThread());
+        Preconditions.checkNotNull(callback);
+
+        final String callId = call.getId();
+        final ContactCacheEntry cacheEntry = mInfoMap.get(callId);
+        Set<ContactInfoCacheCallback> callBacks = mCallBacks.get(callId);
+
+        // If we have a previously obtained intermediate result return that now
+        if (cacheEntry != null) {
+            Log.d(TAG, "Contact lookup. In memory cache hit; lookup "
+                    + (callBacks == null ? "complete" : "still running"));
+            callback.onContactInfoComplete(callId, cacheEntry);
+            // If no other callbacks are in flight, we're done.
+            if (callBacks == null) {
+                return;
+            }
+        }
+
+        // If the entry already exists, add callback
+        if (callBacks != null) {
+            callBacks.add(callback);
+            return;
+        }
+        Log.d(TAG, "Contact lookup. In memory cache miss; searching provider.");
+        // New lookup
+        callBacks = Sets.newHashSet();
+        callBacks.add(callback);
+        mCallBacks.put(callId, callBacks);
+
+        /**
+         * Performs a query for caller information.
+         * Save any immediate data we get from the query. An asynchronous query may also be made
+         * for any data that we do not already have. Some queries, such as those for voicemail and
+         * emergency call information, will not perform an additional asynchronous query.
+         */
+        final CallerInfo callerInfo = CallerInfoUtils.getCallerInfoForCall(
+                mContext, call, new FindInfoCallback(isIncoming));
+
+        findInfoQueryComplete(call, callerInfo, isIncoming, false);
+    }
+
+    private void findInfoQueryComplete(Call call, CallerInfo callerInfo, boolean isIncoming,
+            boolean didLocalLookup) {
+        final String callId = call.getId();
+        int presentationMode = call.getNumberPresentation();
+        if (callerInfo.contactExists || callerInfo.isEmergencyNumber() ||
+                callerInfo.isVoiceMailNumber()) {
+            presentationMode = TelecomManager.PRESENTATION_ALLOWED;
+        }
+
+        ContactCacheEntry cacheEntry = mInfoMap.get(callId);
+        // Ensure we always have a cacheEntry. Replace the existing entry if
+        // it has no name or if we found a local contact.
+        if (cacheEntry == null || TextUtils.isEmpty(cacheEntry.namePrimary) ||
+                callerInfo.contactExists) {
+            cacheEntry = buildEntry(mContext, callId, callerInfo, presentationMode, isIncoming);
+            mInfoMap.put(callId, cacheEntry);
+        }
+
+        sendInfoNotifications(callId, cacheEntry);
+
+        if (didLocalLookup) {
+            // Before issuing a request for more data from other services, we only check that the
+            // contact wasn't found in the local DB.  We don't check the if the cache entry already
+            // has a name because we allow overriding cnap data with data from other services.
+            if (!callerInfo.contactExists && mPhoneNumberService != null) {
+                Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
+                final PhoneNumberServiceListener listener = new PhoneNumberServiceListener(callId);
+                mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener,
+                        isIncoming);
+            } else if (cacheEntry.displayPhotoUri != null) {
+                Log.d(TAG, "Contact lookup. Local contact found, starting image load");
+                // Load the image with a callback to update the image state.
+                // When the load is finished, onImageLoadComplete() will be called.
+                cacheEntry.isLoadingPhoto = true;
+                ContactsAsyncHelper.startObtainPhotoAsync(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE,
+                        mContext, cacheEntry.displayPhotoUri, ContactInfoCache.this, callId);
+            } else {
+                if (callerInfo.contactExists) {
+                    Log.d(TAG, "Contact lookup done. Local contact found, no image.");
+                } else {
+                    Log.d(TAG, "Contact lookup done. Local contact not found and"
+                            + " no remote lookup service available.");
+                }
+                clearCallbacks(callId);
+            }
+        }
+    }
+
+    class PhoneNumberServiceListener implements PhoneNumberService.NumberLookupListener,
+                                     PhoneNumberService.ImageLookupListener, ContactUtils.Listener {
+        private final String mCallId;
+
+        PhoneNumberServiceListener(String callId) {
+            mCallId = callId;
+        }
+
+        @Override
+        public void onPhoneNumberInfoComplete(
+                final PhoneNumberService.PhoneNumberInfo info) {
+            // If we got a miss, this is the end of the lookup pipeline,
+            // so clear the callbacks and return.
+            if (info == null) {
+                Log.d(TAG, "Contact lookup done. Remote contact not found.");
+                clearCallbacks(mCallId);
+                return;
+            }
+
+            ContactCacheEntry entry = new ContactCacheEntry();
+            entry.namePrimary = info.getDisplayName();
+            entry.number = info.getNumber();
+            entry.contactLookupResult = info.getLookupSource();
+            final int type = info.getPhoneType();
+            final String label = info.getPhoneLabel();
+            if (type == Phone.TYPE_CUSTOM) {
+                entry.label = label;
+            } else {
+                final CharSequence typeStr = Phone.getTypeLabel(
+                        mContext.getResources(), type, label);
+                entry.label = typeStr == null ? null : typeStr.toString();
+            }
+            final ContactCacheEntry oldEntry = mInfoMap.get(mCallId);
+            if (oldEntry != null) {
+                // Location is only obtained from local lookup so persist
+                // the value for remote lookups. Once we have a name this
+                // field is no longer used; it is persisted here in case
+                // the UI is ever changed to use it.
+                entry.location = oldEntry.location;
+                // Contact specific ringtone is obtained from local lookup.
+                entry.contactRingtoneUri = oldEntry.contactRingtoneUri;
+            }
+
+            // If no image and it's a business, switch to using the default business avatar.
+            if (info.getImageUrl() == null && info.isBusiness()) {
+                Log.d(TAG, "Business has no image. Using default.");
+                entry.photo = mContext.getResources().getDrawable(R.drawable.img_business);
+            }
+
+            mInfoMap.put(mCallId, entry);
+            sendInfoNotifications(mCallId, entry);
+
+            if (mContactUtils != null) {
+                // This method will callback "onContactInteractionsFound".
+                entry.isLoadingContactInteractions =
+                        mContactUtils.retrieveContactInteractionsFromLookupKey(
+                                info.getLookupKey(), this);
+            }
+
+            entry.isLoadingPhoto = info.getImageUrl() != null;
+
+            // If there is no image or contact interactions then we should not expect another
+            // callback.
+            if (!entry.isLoadingPhoto && !entry.isLoadingContactInteractions) {
+                // We're done, so clear callbacks
+                clearCallbacks(mCallId);
+            }
+        }
+
+        @Override
+        public void onImageFetchComplete(Bitmap bitmap) {
+            onImageLoadComplete(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE, null, bitmap, mCallId);
+        }
+
+        @Override
+        public void onContactInteractionsFound(Address address,
+                List<Pair<Calendar, Calendar>> openingHours) {
+            final ContactCacheEntry entry = mInfoMap.get(mCallId);
+            if (entry == null) {
+                Log.e(this, "Contact context received for empty search entry.");
+                clearCallbacks(mCallId);
+                return;
+            }
+
+            entry.isLoadingContactInteractions = false;
+
+            Log.v(ContactInfoCache.this, "Setting contact interactions for entry: ", entry);
+
+            entry.locationAddress = address;
+            entry.openingHours = openingHours;
+            sendContactInteractionsNotifications(mCallId, entry);
+
+            if (!entry.isLoadingPhoto) {
+                clearCallbacks(mCallId);
+            }
+        }
+    }
+
+    /**
+     * Implemented for ContactsAsyncHelper.OnImageLoadCompleteListener interface.
+     * make sure that the call state is reflected after the image is loaded.
+     */
+    @Override
+    public void onImageLoadComplete(int token, Drawable photo, Bitmap photoIcon, Object cookie) {
+        Log.d(this, "Image load complete with context: ", mContext);
+        // TODO: may be nice to update the image view again once the newer one
+        // is available on contacts database.
+
+        final String callId = (String) cookie;
+        final ContactCacheEntry entry = mInfoMap.get(callId);
+
+        if (entry == null) {
+            Log.e(this, "Image Load received for empty search entry.");
+            clearCallbacks(callId);
+            return;
+        }
+
+        entry.isLoadingPhoto = false;
+
+        Log.d(this, "setting photo for entry: ", entry);
+
+        // Conference call icons are being handled in CallCardPresenter.
+        if (photo != null) {
+            Log.v(this, "direct drawable: ", photo);
+            entry.photo = photo;
+        } else if (photoIcon != null) {
+            Log.v(this, "photo icon: ", photoIcon);
+            entry.photo = new BitmapDrawable(mContext.getResources(), photoIcon);
+        } else {
+            Log.v(this, "unknown photo");
+            entry.photo = null;
+        }
+
+        sendImageNotifications(callId, entry);
+
+        if (!entry.isLoadingContactInteractions) {
+            clearCallbacks(callId);
+        }
+    }
+
+    /**
+     * Blows away the stored cache values.
+     */
+    public void clearCache() {
+        mInfoMap.clear();
+        mCallBacks.clear();
+    }
+
+    private ContactCacheEntry buildEntry(Context context, String callId,
+            CallerInfo info, int presentation, boolean isIncoming) {
+        // The actual strings we're going to display onscreen:
+        Drawable photo = null;
+
+        final ContactCacheEntry cce = new ContactCacheEntry();
+        populateCacheEntry(context, info, cce, presentation, isIncoming);
+
+        // This will only be true for emergency numbers
+        if (info.photoResource != 0) {
+            photo = context.getResources().getDrawable(info.photoResource);
+        } else if (info.isCachedPhotoCurrent) {
+            if (info.cachedPhoto != null) {
+                photo = info.cachedPhoto;
+            } else {
+                photo = getDefaultContactPhotoDrawable();
+            }
+        } else if (info.contactDisplayPhotoUri == null) {
+            photo = getDefaultContactPhotoDrawable();
+        } else {
+            cce.displayPhotoUri = info.contactDisplayPhotoUri;
+        }
+
+        // Support any contact id in N because QuickContacts in N starts supporting enterprise
+        // contact id
+        if (info.lookupKeyOrNull != null
+                && (ContactsUtils.FLAG_N_FEATURE || info.contactIdOrZero != 0)) {
+            cce.lookupUri = Contacts.getLookupUri(info.contactIdOrZero, info.lookupKeyOrNull);
+        } else {
+            Log.v(TAG, "lookup key is null or contact ID is 0 on M. Don't create a lookup uri.");
+            cce.lookupUri = null;
+        }
+
+        cce.photo = photo;
+        cce.lookupKey = info.lookupKeyOrNull;
+        cce.contactRingtoneUri = info.contactRingtoneUri;
+        if (cce.contactRingtoneUri == null || cce.contactRingtoneUri == Uri.EMPTY) {
+            cce.contactRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
+        }
+
+        return cce;
+    }
+
+    /**
+     * Populate a cache entry from a call (which got converted into a caller info).
+     */
+    public static void populateCacheEntry(Context context, CallerInfo info, ContactCacheEntry cce,
+            int presentation, boolean isIncoming) {
+        Preconditions.checkNotNull(info);
+        String displayName = null;
+        String displayNumber = null;
+        String displayLocation = null;
+        String label = null;
+        boolean isSipCall = false;
+
+            // It appears that there is a small change in behaviour with the
+            // PhoneUtils' startGetCallerInfo whereby if we query with an
+            // empty number, we will get a valid CallerInfo object, but with
+            // fields that are all null, and the isTemporary boolean input
+            // parameter as true.
+
+            // In the past, we would see a NULL callerinfo object, but this
+            // ends up causing null pointer exceptions elsewhere down the
+            // line in other cases, so we need to make this fix instead. It
+            // appears that this was the ONLY call to PhoneUtils
+            // .getCallerInfo() that relied on a NULL CallerInfo to indicate
+            // an unknown contact.
+
+            // Currently, infi.phoneNumber may actually be a SIP address, and
+            // if so, it might sometimes include the "sip:" prefix. That
+            // prefix isn't really useful to the user, though, so strip it off
+            // if present. (For any other URI scheme, though, leave the
+            // prefix alone.)
+            // TODO: It would be cleaner for CallerInfo to explicitly support
+            // SIP addresses instead of overloading the "phoneNumber" field.
+            // Then we could remove this hack, and instead ask the CallerInfo
+            // for a "user visible" form of the SIP address.
+            String number = info.phoneNumber;
+
+            if (!TextUtils.isEmpty(number)) {
+                isSipCall = PhoneNumberHelper.isUriNumber(number);
+                if (number.startsWith("sip:")) {
+                    number = number.substring(4);
+                }
+            }
+
+            if (TextUtils.isEmpty(info.name)) {
+                // No valid "name" in the CallerInfo, so fall back to
+                // something else.
+                // (Typically, we promote the phone number up to the "name" slot
+                // onscreen, and possibly display a descriptive string in the
+                // "number" slot.)
+                if (TextUtils.isEmpty(number)) {
+                    // No name *or* number! Display a generic "unknown" string
+                    // (or potentially some other default based on the presentation.)
+                    displayName = getPresentationString(context, presentation, info.callSubject);
+                    Log.d(TAG, "  ==> no name *or* number! displayName = " + displayName);
+                } else if (presentation != TelecomManager.PRESENTATION_ALLOWED) {
+                    // This case should never happen since the network should never send a phone #
+                    // AND a restricted presentation. However we leave it here in case of weird
+                    // network behavior
+                    displayName = getPresentationString(context, presentation, info.callSubject);
+                    Log.d(TAG, "  ==> presentation not allowed! displayName = " + displayName);
+                } else if (!TextUtils.isEmpty(info.cnapName)) {
+                    // No name, but we do have a valid CNAP name, so use that.
+                    displayName = info.cnapName;
+                    info.name = info.cnapName;
+                    displayNumber = number;
+                    Log.d(TAG, "  ==> cnapName available: displayName '" + displayName +
+                            "', displayNumber '" + displayNumber + "'");
+                } else {
+                    // No name; all we have is a number. This is the typical
+                    // case when an incoming call doesn't match any contact,
+                    // or if you manually dial an outgoing number using the
+                    // dialpad.
+                    displayNumber = number;
+
+                    // Display a geographical description string if available
+                    // (but only for incoming calls.)
+                    if (isIncoming) {
+                        // TODO (CallerInfoAsyncQuery cleanup): Fix the CallerInfo
+                        // query to only do the geoDescription lookup in the first
+                        // place for incoming calls.
+                        displayLocation = info.geoDescription; // may be null
+                        Log.d(TAG, "Geodescrption: " + info.geoDescription);
+                    }
+
+                    Log.d(TAG, "  ==>  no name; falling back to number:"
+                            + " displayNumber '" + Log.pii(displayNumber)
+                            + "', displayLocation '" + displayLocation + "'");
+                }
+            } else {
+                // We do have a valid "name" in the CallerInfo. Display that
+                // in the "name" slot, and the phone number in the "number" slot.
+                if (presentation != TelecomManager.PRESENTATION_ALLOWED) {
+                    // This case should never happen since the network should never send a name
+                    // AND a restricted presentation. However we leave it here in case of weird
+                    // network behavior
+                    displayName = getPresentationString(context, presentation, info.callSubject);
+                    Log.d(TAG, "  ==> valid name, but presentation not allowed!" +
+                            " displayName = " + displayName);
+                } else {
+                    // Causes cce.namePrimary to be set as info.name below. CallCardPresenter will
+                    // later determine whether to use the name or nameAlternative when presenting
+                    displayName = info.name;
+                    cce.nameAlternative = info.nameAlternative;
+                    displayNumber = number;
+                    label = info.phoneLabel;
+                    Log.d(TAG, "  ==>  name is present in CallerInfo: displayName '" + displayName
+                            + "', displayNumber '" + displayNumber + "'");
+                }
+            }
+
+        cce.namePrimary = displayName;
+        cce.number = displayNumber;
+        cce.location = displayLocation;
+        cce.label = label;
+        cce.isSipCall = isSipCall;
+        cce.userType = info.userType;
+
+        if (info.contactExists) {
+            cce.contactLookupResult = LogState.LOOKUP_LOCAL_CONTACT;
+        }
+    }
+
+    /**
+     * Sends the updated information to call the callbacks for the entry.
+     */
+    private void sendInfoNotifications(String callId, ContactCacheEntry entry) {
+        final Set<ContactInfoCacheCallback> callBacks = mCallBacks.get(callId);
+        if (callBacks != null) {
+            for (ContactInfoCacheCallback callBack : callBacks) {
+                callBack.onContactInfoComplete(callId, entry);
+            }
+        }
+    }
+
+    private void sendImageNotifications(String callId, ContactCacheEntry entry) {
+        final Set<ContactInfoCacheCallback> callBacks = mCallBacks.get(callId);
+        if (callBacks != null && entry.photo != null) {
+            for (ContactInfoCacheCallback callBack : callBacks) {
+                callBack.onImageLoadComplete(callId, entry);
+            }
+        }
+    }
+
+    private void sendContactInteractionsNotifications(String callId, ContactCacheEntry entry) {
+        final Set<ContactInfoCacheCallback> callBacks = mCallBacks.get(callId);
+        if (callBacks != null) {
+            for (ContactInfoCacheCallback callBack : callBacks) {
+                callBack.onContactInteractionsInfoComplete(callId, entry);
+            }
+        }
+    }
+
+    private void clearCallbacks(String callId) {
+        mCallBacks.remove(callId);
+    }
+
+    /**
+     * Gets name strings based on some special presentation modes and the associated custom label.
+     */
+    private static String getPresentationString(Context context, int presentation,
+             String customLabel) {
+        String name = context.getString(R.string.unknown);
+        if (!TextUtils.isEmpty(customLabel) &&
+                ((presentation == TelecomManager.PRESENTATION_UNKNOWN) ||
+                 (presentation == TelecomManager.PRESENTATION_RESTRICTED))) {
+            name = customLabel;
+            return name;
+        } else {
+            if (presentation == TelecomManager.PRESENTATION_RESTRICTED) {
+                name = context.getString(R.string.private_num);
+            } else if (presentation == TelecomManager.PRESENTATION_PAYPHONE) {
+                name = context.getString(R.string.payphone);
+            }
+        }
+        return name;
+    }
+
+    public Drawable getDefaultContactPhotoDrawable() {
+        if (mDefaultContactPhotoDrawable == null) {
+            mDefaultContactPhotoDrawable =
+                    mContext.getResources().getDrawable(R.drawable.img_no_image_automirrored);
+        }
+        return mDefaultContactPhotoDrawable;
+    }
+
+    public Drawable getConferenceDrawable() {
+        if (mConferencePhotoDrawable == null) {
+            mConferencePhotoDrawable =
+                    mContext.getResources().getDrawable(R.drawable.img_conference_automirrored);
+        }
+        return mConferencePhotoDrawable;
+    }
+
+    /**
+     * Callback interface for the contact query.
+     */
+    public interface ContactInfoCacheCallback {
+        public void onContactInfoComplete(String callId, ContactCacheEntry entry);
+        public void onImageLoadComplete(String callId, ContactCacheEntry entry);
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry);
+    }
+
+    public static class ContactCacheEntry {
+        public String namePrimary;
+        public String nameAlternative;
+        public String number;
+        public String location;
+        public String label;
+        public Drawable photo;
+        public boolean isSipCall;
+        // Note in cache entry whether this is a pending async loading action to know whether to
+        // wait for its callback or not.
+        public boolean isLoadingPhoto;
+        public boolean isLoadingContactInteractions;
+        /** This will be used for the "view" notification. */
+        public Uri contactUri;
+        /** Either a display photo or a thumbnail URI. */
+        public Uri displayPhotoUri;
+        public Uri lookupUri; // Sent to NotificationMananger
+        public String lookupKey;
+        public Address locationAddress;
+        public List<Pair<Calendar, Calendar>> openingHours;
+        public int contactLookupResult = LogState.LOOKUP_NOT_FOUND;
+        public long userType = ContactsUtils.USER_TYPE_CURRENT;
+        public Uri contactRingtoneUri;
+
+        @Override
+        public String toString() {
+            return MoreObjects.toStringHelper(this)
+                    .add("name", MoreStrings.toSafeString(namePrimary))
+                    .add("nameAlternative", MoreStrings.toSafeString(nameAlternative))
+                    .add("number", MoreStrings.toSafeString(number))
+                    .add("location", MoreStrings.toSafeString(location))
+                    .add("label", label)
+                    .add("photo", photo)
+                    .add("isSipCall", isSipCall)
+                    .add("contactUri", contactUri)
+                    .add("displayPhotoUri", displayPhotoUri)
+                    .add("locationAddress", locationAddress)
+                    .add("openingHours", openingHours)
+                    .add("contactLookupResult", contactLookupResult)
+                    .add("userType", userType)
+                    .add("contactRingtoneUri", contactRingtoneUri)
+                    .toString();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ContactUtils.java b/InCallUI/src/com/android/incallui/ContactUtils.java
new file mode 100644
index 0000000..0750af7
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ContactUtils.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.incallui;
+
+import android.content.Context;
+import android.location.Address;
+import android.util.Pair;
+
+import com.android.incalluibind.ObjectFactory;
+
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * Utility functions to help manipulate contact data.
+ */
+public abstract class ContactUtils {
+    protected Context mContext;
+
+    public static ContactUtils getInstance(Context context) {
+        return ObjectFactory.getContactUtilsInstance(context);
+    }
+
+    protected ContactUtils(Context context) {
+        mContext = context;
+    }
+
+    public interface Listener {
+        public void onContactInteractionsFound(Address address,
+                List<Pair<Calendar, Calendar>> openingHours);
+    }
+
+    public abstract boolean retrieveContactInteractionsFromLookupKey(String lookupKey,
+            Listener listener);
+}
diff --git a/InCallUI/src/com/android/incallui/ContactsAsyncHelper.java b/InCallUI/src/com/android/incallui/ContactsAsyncHelper.java
new file mode 100644
index 0000000..d959fad
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ContactsAsyncHelper.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.app.Notification;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
+import android.provider.ContactsContract.Contacts;
+
+import com.android.dialer.R;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Helper class for loading contacts photo asynchronously.
+ */
+public class ContactsAsyncHelper {
+
+    /**
+     * Interface for a WorkerHandler result return.
+     */
+    public interface OnImageLoadCompleteListener {
+        /**
+         * Called when the image load is complete.
+         *
+         * @param token Integer passed in {@link ContactsAsyncHelper#startObtainPhotoAsync(int,
+         * Context, Uri, OnImageLoadCompleteListener, Object)}.
+         * @param photo Drawable object obtained by the async load.
+         * @param photoIcon Bitmap object obtained by the async load.
+         * @param cookie Object passed in {@link ContactsAsyncHelper#startObtainPhotoAsync(int,
+         * Context, Uri, OnImageLoadCompleteListener, Object)}. Can be null iff. the original
+         * cookie is null.
+         */
+        public void onImageLoadComplete(int token, Drawable photo, Bitmap photoIcon,
+                Object cookie);
+    }
+
+    // constants
+    private static final int EVENT_LOAD_IMAGE = 1;
+
+    private final Handler mResultHandler = new Handler() {
+        /** Called when loading is done. */
+        @Override
+        public void handleMessage(Message msg) {
+            WorkerArgs args = (WorkerArgs) msg.obj;
+            switch (msg.arg1) {
+                case EVENT_LOAD_IMAGE:
+                    if (args.listener != null) {
+                        Log.d(this, "Notifying listener: " + args.listener.toString() +
+                                " image: " + args.displayPhotoUri + " completed");
+                        args.listener.onImageLoadComplete(msg.what, args.photo, args.photoIcon,
+                                args.cookie);
+                    }
+                    break;
+                default:
+            }
+        }
+    };
+
+    /** Handler run on a worker thread to load photo asynchronously. */
+    private static Handler sThreadHandler;
+
+    /** For forcing the system to call its constructor */
+    @SuppressWarnings("unused")
+    private static ContactsAsyncHelper sInstance;
+
+    static {
+        sInstance = new ContactsAsyncHelper();
+    }
+
+    private static final class WorkerArgs {
+        public Context context;
+        public Uri displayPhotoUri;
+        public Drawable photo;
+        public Bitmap photoIcon;
+        public Object cookie;
+        public OnImageLoadCompleteListener listener;
+    }
+
+    /**
+     * Thread worker class that handles the task of opening the stream and loading
+     * the images.
+     */
+    private class WorkerHandler extends Handler {
+        public WorkerHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            WorkerArgs args = (WorkerArgs) msg.obj;
+
+            switch (msg.arg1) {
+                case EVENT_LOAD_IMAGE:
+                    InputStream inputStream = null;
+                    try {
+                        try {
+                            inputStream = args.context.getContentResolver()
+                                    .openInputStream(args.displayPhotoUri);
+                        } catch (Exception e) {
+                            Log.e(this, "Error opening photo input stream", e);
+                        }
+
+                        if (inputStream != null) {
+                            args.photo = Drawable.createFromStream(inputStream,
+                                    args.displayPhotoUri.toString());
+
+                            // This assumes Drawable coming from contact database is usually
+                            // BitmapDrawable and thus we can have (down)scaled version of it.
+                            args.photoIcon = getPhotoIconWhenAppropriate(args.context, args.photo);
+
+                            Log.d(ContactsAsyncHelper.this, "Loading image: " + msg.arg1 +
+                                    " token: " + msg.what + " image URI: " + args.displayPhotoUri);
+                        } else {
+                            args.photo = null;
+                            args.photoIcon = null;
+                            Log.d(ContactsAsyncHelper.this, "Problem with image: " + msg.arg1 +
+                                    " token: " + msg.what + " image URI: " + args.displayPhotoUri +
+                                    ", using default image.");
+                        }
+                    } finally {
+                        if (inputStream != null) {
+                            try {
+                                inputStream.close();
+                            } catch (IOException e) {
+                                Log.e(this, "Unable to close input stream.", e);
+                            }
+                        }
+                    }
+                    break;
+                default:
+            }
+
+            // send the reply to the enclosing class.
+            Message reply = ContactsAsyncHelper.this.mResultHandler.obtainMessage(msg.what);
+            reply.arg1 = msg.arg1;
+            reply.obj = msg.obj;
+            reply.sendToTarget();
+        }
+
+        /**
+         * Returns a Bitmap object suitable for {@link Notification}'s large icon. This might
+         * return null when the given Drawable isn't BitmapDrawable, or if the system fails to
+         * create a scaled Bitmap for the Drawable.
+         */
+        private Bitmap getPhotoIconWhenAppropriate(Context context, Drawable photo) {
+            if (!(photo instanceof BitmapDrawable)) {
+                return null;
+            }
+            int iconSize = context.getResources()
+                    .getDimensionPixelSize(R.dimen.notification_icon_size);
+            Bitmap orgBitmap = ((BitmapDrawable) photo).getBitmap();
+            int orgWidth = orgBitmap.getWidth();
+            int orgHeight = orgBitmap.getHeight();
+            int longerEdge = orgWidth > orgHeight ? orgWidth : orgHeight;
+            // We want downscaled one only when the original icon is too big.
+            if (longerEdge > iconSize) {
+                float ratio = ((float) longerEdge) / iconSize;
+                int newWidth = (int) (orgWidth / ratio);
+                int newHeight = (int) (orgHeight / ratio);
+                // If the longer edge is much longer than the shorter edge, the latter may
+                // become 0 which will cause a crash.
+                if (newWidth <= 0 || newHeight <= 0) {
+                    Log.w(this, "Photo icon's width or height become 0.");
+                    return null;
+                }
+
+                // It is sure ratio >= 1.0f in any case and thus the newly created Bitmap
+                // should be smaller than the original.
+                return Bitmap.createScaledBitmap(orgBitmap, newWidth, newHeight, true);
+            } else {
+                return orgBitmap;
+            }
+        }
+    }
+
+    /**
+     * Private constructor for static class
+     */
+    private ContactsAsyncHelper() {
+        HandlerThread thread = new HandlerThread("ContactsAsyncWorker");
+        thread.start();
+        sThreadHandler = new WorkerHandler(thread.getLooper());
+    }
+
+    /**
+     * Starts an asynchronous image load. After finishing the load,
+     * {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable, Bitmap, Object)}
+     * will be called.
+     *
+     * @param token Arbitrary integer which will be returned as the first argument of
+     * {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable, Bitmap, Object)}
+     * @param context Context object used to do the time-consuming operation.
+     * @param displayPhotoUri Uri to be used to fetch the photo
+     * @param listener Callback object which will be used when the asynchronous load is done.
+     * Can be null, which means only the asynchronous load is done while there's no way to
+     * obtain the loaded photos.
+     * @param cookie Arbitrary object the caller wants to remember, which will become the
+     * fourth argument of {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable,
+     * Bitmap, Object)}. Can be null, at which the callback will also has null for the argument.
+     */
+    public static final void startObtainPhotoAsync(int token, Context context, Uri displayPhotoUri,
+            OnImageLoadCompleteListener listener, Object cookie) {
+        // in case the source caller info is null, the URI will be null as well.
+        // just update using the placeholder image in this case.
+        if (displayPhotoUri == null) {
+            Log.wtf("startObjectPhotoAsync", "Uri is missing");
+            return;
+        }
+
+        // Added additional Cookie field in the callee to handle arguments
+        // sent to the callback function.
+
+        // setup arguments
+        WorkerArgs args = new WorkerArgs();
+        args.cookie = cookie;
+        args.context = context;
+        args.displayPhotoUri = displayPhotoUri;
+        args.listener = listener;
+
+        // setup message arguments
+        Message msg = sThreadHandler.obtainMessage(token);
+        msg.arg1 = EVENT_LOAD_IMAGE;
+        msg.obj = args;
+
+        Log.d("startObjectPhotoAsync", "Begin loading image: " + args.displayPhotoUri +
+                ", displaying default image for now.");
+
+        // notify the thread to begin working
+        sThreadHandler.sendMessage(msg);
+    }
+
+
+}
diff --git a/InCallUI/src/com/android/incallui/ContactsPreferencesFactory.java b/InCallUI/src/com/android/incallui/ContactsPreferencesFactory.java
new file mode 100644
index 0000000..a9cc93b
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ContactsPreferencesFactory.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import com.android.dialer.compat.UserManagerCompat;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.testing.NeededForTesting;
+
+/**
+ * Factory class for {@link ContactsPreferences}.
+ */
+public class ContactsPreferencesFactory {
+
+    private static boolean sUseTestInstance;
+    private static ContactsPreferences sTestInstance;
+
+    /**
+     * Creates a new {@link ContactsPreferences} object if possible.
+     *
+     * @param context the context to use when creating the ContactsPreferences.
+     * @return a new ContactsPreferences object or {@code null} if the user is locked.
+     */
+    @Nullable
+    public static ContactsPreferences newContactsPreferences(Context context) {
+        if (sUseTestInstance) {
+            return sTestInstance;
+        }
+        if (UserManagerCompat.isUserUnlocked(context)) {
+            return new ContactsPreferences(context);
+        }
+        return null;
+    }
+
+    /**
+     * Sets the instance to be returned by all calls to {@link #newContactsPreferences(Context)}.
+     *
+     * @param testInstance the instance to return.
+     */
+    @NeededForTesting
+    static void setTestInstance(ContactsPreferences testInstance) {
+        sUseTestInstance = true;
+        sTestInstance = testInstance;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/DialpadFragment.java b/InCallUI/src/com/android/incallui/DialpadFragment.java
new file mode 100644
index 0000000..ad288bd
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/DialpadFragment.java
@@ -0,0 +1,563 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.text.Editable;
+import android.text.method.DialerKeyListener;
+import android.util.AttributeSet;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityManager;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
+import com.android.dialer.R;
+import com.android.phone.common.dialpad.DialpadKeyButton;
+import com.android.phone.common.dialpad.DialpadView;
+
+import java.util.HashMap;
+
+/**
+ * Fragment for call control buttons
+ */
+public class DialpadFragment extends BaseFragment<DialpadPresenter, DialpadPresenter.DialpadUi>
+        implements DialpadPresenter.DialpadUi, View.OnTouchListener, View.OnKeyListener,
+        View.OnHoverListener, View.OnClickListener {
+
+    private static final int ACCESSIBILITY_DTMF_STOP_DELAY_MILLIS = 50;
+
+    private final int[] mButtonIds = new int[] {R.id.zero, R.id.one, R.id.two, R.id.three,
+            R.id.four, R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine, R.id.star,
+            R.id.pound};
+
+    /**
+     * LinearLayout with getter and setter methods for the translationY property using floats,
+     * for animation purposes.
+     */
+    public static class DialpadSlidingLinearLayout extends LinearLayout {
+
+        public DialpadSlidingLinearLayout(Context context) {
+            super(context);
+        }
+
+        public DialpadSlidingLinearLayout(Context context, AttributeSet attrs) {
+            super(context, attrs);
+        }
+
+        public DialpadSlidingLinearLayout(Context context, AttributeSet attrs, int defStyle) {
+            super(context, attrs, defStyle);
+        }
+
+        public float getYFraction() {
+            final int height = getHeight();
+            if (height == 0) return 0;
+            return getTranslationY() / height;
+        }
+
+        public void setYFraction(float yFraction) {
+            setTranslationY(yFraction * getHeight());
+        }
+    }
+
+    private EditText mDtmfDialerField;
+
+    /** Hash Map to map a view id to a character*/
+    private static final HashMap<Integer, Character> mDisplayMap =
+        new HashMap<Integer, Character>();
+
+    private static final Handler sHandler = new Handler(Looper.getMainLooper());
+
+
+    /** Set up the static maps*/
+    static {
+        // Map the buttons to the display characters
+        mDisplayMap.put(R.id.one, '1');
+        mDisplayMap.put(R.id.two, '2');
+        mDisplayMap.put(R.id.three, '3');
+        mDisplayMap.put(R.id.four, '4');
+        mDisplayMap.put(R.id.five, '5');
+        mDisplayMap.put(R.id.six, '6');
+        mDisplayMap.put(R.id.seven, '7');
+        mDisplayMap.put(R.id.eight, '8');
+        mDisplayMap.put(R.id.nine, '9');
+        mDisplayMap.put(R.id.zero, '0');
+        mDisplayMap.put(R.id.pound, '#');
+        mDisplayMap.put(R.id.star, '*');
+    }
+
+    // KeyListener used with the "dialpad digits" EditText widget.
+    private DTMFKeyListener mDialerKeyListener;
+
+    private DialpadView mDialpadView;
+
+    private int mCurrentTextColor;
+
+    /**
+     * Our own key listener, specialized for dealing with DTMF codes.
+     *   1. Ignore the backspace since it is irrelevant.
+     *   2. Allow ONLY valid DTMF characters to generate a tone and be
+     *      sent as a DTMF code.
+     *   3. All other remaining characters are handled by the superclass.
+     *
+     * This code is purely here to handle events from the hardware keyboard
+     * while the DTMF dialpad is up.
+     */
+    private class DTMFKeyListener extends DialerKeyListener {
+
+        private DTMFKeyListener() {
+            super();
+        }
+
+        /**
+         * Overriden to return correct DTMF-dialable characters.
+         */
+        @Override
+        protected char[] getAcceptedChars(){
+            return DTMF_CHARACTERS;
+        }
+
+        /** special key listener ignores backspace. */
+        @Override
+        public boolean backspace(View view, Editable content, int keyCode,
+                KeyEvent event) {
+            return false;
+        }
+
+        /**
+         * Return true if the keyCode is an accepted modifier key for the
+         * dialer (ALT or SHIFT).
+         */
+        private boolean isAcceptableModifierKey(int keyCode) {
+            switch (keyCode) {
+                case KeyEvent.KEYCODE_ALT_LEFT:
+                case KeyEvent.KEYCODE_ALT_RIGHT:
+                case KeyEvent.KEYCODE_SHIFT_LEFT:
+                case KeyEvent.KEYCODE_SHIFT_RIGHT:
+                    return true;
+                default:
+                    return false;
+            }
+        }
+
+        /**
+         * Overriden so that with each valid button press, we start sending
+         * a dtmf code and play a local dtmf tone.
+         */
+        @Override
+        public boolean onKeyDown(View view, Editable content,
+                                 int keyCode, KeyEvent event) {
+            // if (DBG) log("DTMFKeyListener.onKeyDown, keyCode " + keyCode + ", view " + view);
+
+            // find the character
+            char c = (char) lookup(event, content);
+
+            // if not a long press, and parent onKeyDown accepts the input
+            if (event.getRepeatCount() == 0 && super.onKeyDown(view, content, keyCode, event)) {
+
+                boolean keyOK = ok(getAcceptedChars(), c);
+
+                // if the character is a valid dtmf code, start playing the tone and send the
+                // code.
+                if (keyOK) {
+                    Log.d(this, "DTMFKeyListener reading '" + c + "' from input.");
+                    getPresenter().processDtmf(c);
+                } else {
+                    Log.d(this, "DTMFKeyListener rejecting '" + c + "' from input.");
+                }
+                return true;
+            }
+            return false;
+        }
+
+        /**
+         * Overriden so that with each valid button up, we stop sending
+         * a dtmf code and the dtmf tone.
+         */
+        @Override
+        public boolean onKeyUp(View view, Editable content,
+                                 int keyCode, KeyEvent event) {
+            // if (DBG) log("DTMFKeyListener.onKeyUp, keyCode " + keyCode + ", view " + view);
+
+            super.onKeyUp(view, content, keyCode, event);
+
+            // find the character
+            char c = (char) lookup(event, content);
+
+            boolean keyOK = ok(getAcceptedChars(), c);
+
+            if (keyOK) {
+                Log.d(this, "Stopping the tone for '" + c + "'");
+                getPresenter().stopDtmf();
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * Handle individual keydown events when we DO NOT have an Editable handy.
+         */
+        public boolean onKeyDown(KeyEvent event) {
+            char c = lookup(event);
+            Log.d(this, "DTMFKeyListener.onKeyDown: event '" + c + "'");
+
+            // if not a long press, and parent onKeyDown accepts the input
+            if (event.getRepeatCount() == 0 && c != 0) {
+                // if the character is a valid dtmf code, start playing the tone and send the
+                // code.
+                if (ok(getAcceptedChars(), c)) {
+                    Log.d(this, "DTMFKeyListener reading '" + c + "' from input.");
+                    getPresenter().processDtmf(c);
+                    return true;
+                } else {
+                    Log.d(this, "DTMFKeyListener rejecting '" + c + "' from input.");
+                }
+            }
+            return false;
+        }
+
+        /**
+         * Handle individual keyup events.
+         *
+         * @param event is the event we are trying to stop.  If this is null,
+         * then we just force-stop the last tone without checking if the event
+         * is an acceptable dialer event.
+         */
+        public boolean onKeyUp(KeyEvent event) {
+            if (event == null) {
+                //the below piece of code sends stopDTMF event unnecessarily even when a null event
+                //is received, hence commenting it.
+                /*if (DBG) log("Stopping the last played tone.");
+                stopTone();*/
+                return true;
+            }
+
+            char c = lookup(event);
+            Log.d(this, "DTMFKeyListener.onKeyUp: event '" + c + "'");
+
+            // TODO: stopTone does not take in character input, we may want to
+            // consider checking for this ourselves.
+            if (ok(getAcceptedChars(), c)) {
+                Log.d(this, "Stopping the tone for '" + c + "'");
+                getPresenter().stopDtmf();
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * Find the Dialer Key mapped to this event.
+         *
+         * @return The char value of the input event, otherwise
+         * 0 if no matching character was found.
+         */
+        private char lookup(KeyEvent event) {
+            // This code is similar to {@link DialerKeyListener#lookup(KeyEvent, Spannable) lookup}
+            int meta = event.getMetaState();
+            int number = event.getNumber();
+
+            if (!((meta & (KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON)) == 0) || (number == 0)) {
+                int match = event.getMatch(getAcceptedChars(), meta);
+                number = (match != 0) ? match : number;
+            }
+
+            return (char) number;
+        }
+
+        /**
+         * Check to see if the keyEvent is dialable.
+         */
+        boolean isKeyEventAcceptable (KeyEvent event) {
+            return (ok(getAcceptedChars(), lookup(event)));
+        }
+
+        /**
+         * Overrides the characters used in {@link DialerKeyListener#CHARACTERS}
+         * These are the valid dtmf characters.
+         */
+        public final char[] DTMF_CHARACTERS = new char[] {
+            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*'
+        };
+    }
+
+    @Override
+    public void onClick(View v) {
+        final AccessibilityManager accessibilityManager = (AccessibilityManager)
+            v.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
+        // When accessibility is on, simulate press and release to preserve the
+        // semantic meaning of performClick(). Required for Braille support.
+        if (accessibilityManager.isEnabled()) {
+            final int id = v.getId();
+            // Checking the press state prevents double activation.
+            if (!v.isPressed() && mDisplayMap.containsKey(id)) {
+                getPresenter().processDtmf(mDisplayMap.get(id));
+                sHandler.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        getPresenter().stopDtmf();
+                    }
+                }, ACCESSIBILITY_DTMF_STOP_DELAY_MILLIS);
+            }
+        }
+        if (v.getId() == R.id.dialpad_back) {
+            getActivity().onBackPressed();
+        }
+    }
+
+    @Override
+    public boolean onHover(View v, MotionEvent event) {
+        // When touch exploration is turned on, lifting a finger while inside
+        // the button's hover target bounds should perform a click action.
+        final AccessibilityManager accessibilityManager = (AccessibilityManager)
+            v.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
+
+        if (accessibilityManager.isEnabled()
+                && accessibilityManager.isTouchExplorationEnabled()) {
+            final int left = v.getPaddingLeft();
+            final int right = (v.getWidth() - v.getPaddingRight());
+            final int top = v.getPaddingTop();
+            final int bottom = (v.getHeight() - v.getPaddingBottom());
+
+            switch (event.getActionMasked()) {
+                case MotionEvent.ACTION_HOVER_ENTER:
+                    // Lift-to-type temporarily disables double-tap activation.
+                    v.setClickable(false);
+                    break;
+                case MotionEvent.ACTION_HOVER_EXIT:
+                    final int x = (int) event.getX();
+                    final int y = (int) event.getY();
+                    if ((x > left) && (x < right) && (y > top) && (y < bottom)) {
+                        v.performClick();
+                    }
+                    v.setClickable(true);
+                    break;
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean onKey(View v, int keyCode, KeyEvent event) {
+        Log.d(this, "onKey:  keyCode " + keyCode + ", view " + v);
+
+        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
+            int viewId = v.getId();
+            if (mDisplayMap.containsKey(viewId)) {
+                switch (event.getAction()) {
+                case KeyEvent.ACTION_DOWN:
+                    if (event.getRepeatCount() == 0) {
+                        getPresenter().processDtmf(mDisplayMap.get(viewId));
+                    }
+                    break;
+                case KeyEvent.ACTION_UP:
+                    getPresenter().stopDtmf();
+                    break;
+                }
+                // do not return true [handled] here, since we want the
+                // press / click animation to be handled by the framework.
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        Log.d(this, "onTouch");
+        int viewId = v.getId();
+
+        // if the button is recognized
+        if (mDisplayMap.containsKey(viewId)) {
+            switch (event.getAction()) {
+                case MotionEvent.ACTION_DOWN:
+                    // Append the character mapped to this button, to the display.
+                    // start the tone
+                    getPresenter().processDtmf(mDisplayMap.get(viewId));
+                    break;
+                case MotionEvent.ACTION_UP:
+                case MotionEvent.ACTION_CANCEL:
+                    // stop the tone on ANY other event, except for MOVE.
+                    getPresenter().stopDtmf();
+                    break;
+            }
+            // do not return true [handled] here, since we want the
+            // press / click animation to be handled by the framework.
+        }
+        return false;
+    }
+
+    // TODO(klp) Adds hardware keyboard listener
+
+    @Override
+    public DialpadPresenter createPresenter() {
+        return new DialpadPresenter();
+    }
+
+    @Override
+    public DialpadPresenter.DialpadUi getUi() {
+        return this;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View parent = inflater.inflate(
+                R.layout.incall_dialpad_fragment, container, false);
+        mDialpadView = (DialpadView) parent.findViewById(R.id.dialpad_view);
+        mDialpadView.setCanDigitsBeEdited(false);
+        mDialpadView.setBackgroundResource(R.color.incall_dialpad_background);
+        mDtmfDialerField = (EditText) parent.findViewById(R.id.digits);
+        if (mDtmfDialerField != null) {
+            mDialerKeyListener = new DTMFKeyListener();
+            mDtmfDialerField.setKeyListener(mDialerKeyListener);
+            // remove the long-press context menus that support
+            // the edit (copy / paste / select) functions.
+            mDtmfDialerField.setLongClickable(false);
+            mDtmfDialerField.setElegantTextHeight(false);
+            configureKeypadListeners();
+        }
+        View backButton = mDialpadView.findViewById(R.id.dialpad_back);
+        backButton.setVisibility(View.VISIBLE);
+        backButton.setOnClickListener(this);
+
+        return parent;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateColors();
+    }
+
+    public void updateColors() {
+        int textColor = InCallPresenter.getInstance().getThemeColors().mPrimaryColor;
+
+        if (mCurrentTextColor == textColor) {
+            return;
+        }
+
+        DialpadKeyButton dialpadKey;
+        for (int i = 0; i < mButtonIds.length; i++) {
+            dialpadKey = (DialpadKeyButton) mDialpadView.findViewById(mButtonIds[i]);
+            ((TextView) dialpadKey.findViewById(R.id.dialpad_key_number)).setTextColor(textColor);
+        }
+
+        mCurrentTextColor = textColor;
+    }
+
+    @Override
+    public void onDestroyView() {
+        mDialerKeyListener = null;
+        super.onDestroyView();
+    }
+
+    /**
+     * Getter for Dialpad text.
+     *
+     * @return String containing current Dialpad EditText text.
+     */
+    public String getDtmfText() {
+        return mDtmfDialerField.getText().toString();
+    }
+
+    /**
+     * Sets the Dialpad text field with some text.
+     *
+     * @param text Text to set Dialpad EditText to.
+     */
+    public void setDtmfText(String text) {
+        mDtmfDialerField.setText(PhoneNumberUtilsCompat.createTtsSpannable(text));
+    }
+
+    @Override
+    public void setVisible(boolean on) {
+        if (on) {
+            getView().setVisibility(View.VISIBLE);
+        } else {
+            getView().setVisibility(View.INVISIBLE);
+        }
+    }
+
+    /**
+     * Starts the slide up animation for the Dialpad keys when the Dialpad is revealed.
+     */
+    public void animateShowDialpad() {
+        final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view);
+        dialpadView.animateShow();
+    }
+
+    @Override
+    public void appendDigitsToField(char digit) {
+        if (mDtmfDialerField != null) {
+            // TODO: maybe *don't* manually append this digit if
+            // mDialpadDigits is focused and this key came from the HW
+            // keyboard, since in that case the EditText field will
+            // get the key event directly and automatically appends
+            // whetever the user types.
+            // (Or, a cleaner fix would be to just make mDialpadDigits
+            // *not* handle HW key presses.  That seems to be more
+            // complicated than just setting focusable="false" on it,
+            // though.)
+            mDtmfDialerField.getText().append(digit);
+        }
+    }
+
+    /**
+     * Called externally (from InCallScreen) to play a DTMF Tone.
+     */
+    /* package */ boolean onDialerKeyDown(KeyEvent event) {
+        Log.d(this, "Notifying dtmf key down.");
+        if (mDialerKeyListener != null) {
+            return mDialerKeyListener.onKeyDown(event);
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Called externally (from InCallScreen) to cancel the last DTMF Tone played.
+     */
+    public boolean onDialerKeyUp(KeyEvent event) {
+        Log.d(this, "Notifying dtmf key up.");
+        if (mDialerKeyListener != null) {
+            return mDialerKeyListener.onKeyUp(event);
+        } else {
+            return false;
+        }
+    }
+
+    private void configureKeypadListeners() {
+        DialpadKeyButton dialpadKey;
+        for (int i = 0; i < mButtonIds.length; i++) {
+            dialpadKey = (DialpadKeyButton) mDialpadView.findViewById(mButtonIds[i]);
+            dialpadKey.setOnTouchListener(this);
+            dialpadKey.setOnKeyListener(this);
+            dialpadKey.setOnHoverListener(this);
+            dialpadKey.setOnClickListener(this);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/DialpadPresenter.java b/InCallUI/src/com/android/incallui/DialpadPresenter.java
new file mode 100644
index 0000000..5e24bed
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/DialpadPresenter.java
@@ -0,0 +1,84 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.telephony.PhoneNumberUtils;
+
+/**
+ * Logic for call buttons.
+ */
+public class DialpadPresenter extends Presenter<DialpadPresenter.DialpadUi>
+        implements InCallPresenter.InCallStateListener {
+
+    private Call mCall;
+
+    @Override
+    public void onUiReady(DialpadUi ui) {
+        super.onUiReady(ui);
+        InCallPresenter.getInstance().addListener(this);
+        mCall = CallList.getInstance().getOutgoingOrActive();
+    }
+
+    @Override
+    public void onUiUnready(DialpadUi ui) {
+        super.onUiUnready(ui);
+        InCallPresenter.getInstance().removeListener(this);
+    }
+
+    @Override
+    public void onStateChange(InCallPresenter.InCallState oldState,
+            InCallPresenter.InCallState newState, CallList callList) {
+        mCall = callList.getOutgoingOrActive();
+        Log.d(this, "DialpadPresenter mCall = " + mCall);
+    }
+
+    /**
+     * Processes the specified digit as a DTMF key, by playing the
+     * appropriate DTMF tone, and appending the digit to the EditText
+     * field that displays the DTMF digits sent so far.
+     *
+     */
+    public final void processDtmf(char c) {
+        Log.d(this, "Processing dtmf key " + c);
+        // if it is a valid key, then update the display and send the dtmf tone.
+        if (PhoneNumberUtils.is12Key(c) && mCall != null) {
+            Log.d(this, "updating display and sending dtmf tone for '" + c + "'");
+
+            // Append this key to the "digits" widget.
+            getUi().appendDigitsToField(c);
+            // Plays the tone through Telecom.
+            TelecomAdapter.getInstance().playDtmfTone(mCall.getId(), c);
+        } else {
+            Log.d(this, "ignoring dtmf request for '" + c + "'");
+        }
+    }
+
+    /**
+     * Stops the local tone based on the phone type.
+     */
+    public void stopDtmf() {
+        if (mCall != null) {
+            Log.d(this, "stopping remote tone");
+            TelecomAdapter.getInstance().stopDtmfTone(mCall.getId());
+        }
+    }
+
+    public interface DialpadUi extends Ui {
+        void setVisible(boolean on);
+        void appendDigitsToField(char digit);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/DistanceHelper.java b/InCallUI/src/com/android/incallui/DistanceHelper.java
new file mode 100644
index 0000000..a4db5fe
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/DistanceHelper.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.incallui;
+
+import android.location.Address;
+
+/**
+ * Superclass for a helper class to get the current location and distance to other locations.
+ */
+public abstract class DistanceHelper {
+    public static final float DISTANCE_NOT_FOUND = -1;
+    public static final float MILES_PER_METER = (float) 0.000621371192;
+    public static final float KILOMETERS_PER_METER = (float) 0.001;
+
+    public interface Listener {
+        public void onLocationReady();
+    }
+
+    public void cleanUp() {}
+
+    public float calculateDistance(Address address) {
+        return DISTANCE_NOT_FOUND;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/FragmentDisplayManager.java b/InCallUI/src/com/android/incallui/FragmentDisplayManager.java
new file mode 100644
index 0000000..045d999
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/FragmentDisplayManager.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.app.Fragment;
+
+interface FragmentDisplayManager {
+    public void onFragmentAttached(Fragment fragment);
+}
diff --git a/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
new file mode 100644
index 0000000..62a8e78
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
@@ -0,0 +1,155 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.VideoProfile;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+
+public class GlowPadAnswerFragment extends AnswerFragment {
+
+    private GlowPadWrapper mGlowpad;
+
+    public GlowPadAnswerFragment() {
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        mGlowpad = (GlowPadWrapper) inflater.inflate(R.layout.answer_fragment,
+                container, false);
+
+        Log.d(this, "Creating view for answer fragment ", this);
+        Log.d(this, "Created from activity", getActivity());
+        mGlowpad.setAnswerFragment(this);
+
+        return mGlowpad;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mGlowpad.requestFocus();
+    }
+
+    @Override
+    public void onDestroyView() {
+        Log.d(this, "onDestroyView");
+        if (mGlowpad != null) {
+            mGlowpad.stopPing();
+            mGlowpad = null;
+        }
+        super.onDestroyView();
+    }
+
+    @Override
+    public void onShowAnswerUi(boolean shown) {
+        Log.d(this, "Show answer UI: " + shown);
+        if (shown) {
+            mGlowpad.startPing();
+        } else {
+            mGlowpad.stopPing();
+        }
+    }
+
+    /**
+     * Sets targets on the glowpad according to target set identified by the parameter.
+     *
+     * @param targetSet Integer identifying the set of targets to use.
+     */
+    public void showTargets(int targetSet) {
+        showTargets(targetSet, VideoProfile.STATE_BIDIRECTIONAL);
+    }
+
+    /**
+     * Sets targets on the glowpad according to target set identified by the parameter.
+     *
+     * @param targetSet Integer identifying the set of targets to use.
+     */
+    @Override
+    public void showTargets(int targetSet, int videoState) {
+        final int targetResourceId;
+        final int targetDescriptionsResourceId;
+        final int directionDescriptionsResourceId;
+        final int handleDrawableResourceId;
+        mGlowpad.setVideoState(videoState);
+
+        switch (targetSet) {
+            case TARGET_SET_FOR_AUDIO_WITH_SMS:
+                targetResourceId = R.array.incoming_call_widget_audio_with_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_with_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_with_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_WITHOUT_SMS:
+                targetResourceId = R.array.incoming_call_widget_video_without_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_without_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_without_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_WITH_SMS:
+                targetResourceId = R.array.incoming_call_widget_video_with_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_with_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_with_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST:
+                targetResourceId =
+                        R.array.incoming_call_widget_video_request_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_request_target_descriptions;
+                directionDescriptionsResourceId = R.array
+                        .incoming_call_widget_video_request_target_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_AUDIO_WITHOUT_SMS:
+            default:
+                targetResourceId = R.array.incoming_call_widget_audio_without_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_without_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_without_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
+                break;
+        }
+
+        if (targetResourceId != mGlowpad.getTargetResourceId()) {
+            mGlowpad.setTargetResources(targetResourceId);
+            mGlowpad.setTargetDescriptionsResourceId(targetDescriptionsResourceId);
+            mGlowpad.setDirectionDescriptionsResourceId(directionDescriptionsResourceId);
+            mGlowpad.setHandleDrawable(handleDrawableResourceId);
+            mGlowpad.reset(false);
+        }
+    }
+
+    @Override
+    protected void onMessageDialogCancel() {
+        if (mGlowpad != null) {
+            mGlowpad.startPing();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/GlowPadWrapper.java b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
new file mode 100644
index 0000000..342f6b4
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
@@ -0,0 +1,158 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.telecom.VideoProfile;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.android.dialer.R;
+import com.android.incallui.widget.multiwaveview.GlowPadView;
+
+/**
+ *
+ */
+public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTriggerListener {
+
+    // Parameters for the GlowPadView "ping" animation; see triggerPing().
+    private static final int PING_MESSAGE_WHAT = 101;
+    private static final boolean ENABLE_PING_AUTO_REPEAT = true;
+    private static final long PING_REPEAT_DELAY_MS = 1200;
+
+    private final Handler mPingHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case PING_MESSAGE_WHAT:
+                    triggerPing();
+                    break;
+            }
+        }
+    };
+
+    private AnswerFragment mAnswerFragment;
+    private boolean mPingEnabled = true;
+    private boolean mTargetTriggered = false;
+    private int mVideoState = VideoProfile.STATE_BIDIRECTIONAL;
+
+    public GlowPadWrapper(Context context) {
+        super(context);
+        Log.d(this, "class created " + this + " ");
+    }
+
+    public GlowPadWrapper(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        Log.d(this, "class created " + this);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        Log.d(this, "onFinishInflate()");
+        super.onFinishInflate();
+        setOnTriggerListener(this);
+    }
+
+    public void startPing() {
+        Log.d(this, "startPing");
+        mPingEnabled = true;
+        triggerPing();
+    }
+
+    public void stopPing() {
+        Log.d(this, "stopPing");
+        mPingEnabled = false;
+        mPingHandler.removeMessages(PING_MESSAGE_WHAT);
+    }
+
+    private void triggerPing() {
+        Log.d(this, "triggerPing(): " + mPingEnabled + " " + this);
+        if (mPingEnabled && !mPingHandler.hasMessages(PING_MESSAGE_WHAT)) {
+            ping();
+
+            if (ENABLE_PING_AUTO_REPEAT) {
+                mPingHandler.sendEmptyMessageDelayed(PING_MESSAGE_WHAT, PING_REPEAT_DELAY_MS);
+            }
+        }
+    }
+
+    @Override
+    public void onGrabbed(View v, int handle) {
+        Log.d(this, "onGrabbed()");
+        stopPing();
+    }
+
+    @Override
+    public void onReleased(View v, int handle) {
+        Log.d(this, "onReleased()");
+        if (mTargetTriggered) {
+            mTargetTriggered = false;
+        } else {
+            startPing();
+        }
+    }
+
+    @Override
+    public void onTrigger(View v, int target) {
+        Log.d(this, "onTrigger() view=" + v + " target=" + target);
+        final int resId = getResourceIdForTarget(target);
+        if (resId == R.drawable.ic_lockscreen_answer) {
+            mAnswerFragment.onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+            mTargetTriggered = true;
+        } else if (resId == R.drawable.ic_lockscreen_decline) {
+            mAnswerFragment.onDecline(getContext());
+            mTargetTriggered = true;
+        } else if (resId == R.drawable.ic_lockscreen_text) {
+            mAnswerFragment.onText();
+            mTargetTriggered = true;
+        } else if (resId == R.drawable.ic_videocam || resId == R.drawable.ic_lockscreen_answer_video) {
+            mAnswerFragment.onAnswer(mVideoState, getContext());
+            mTargetTriggered = true;
+        } else if (resId == R.drawable.ic_lockscreen_decline_video) {
+            mAnswerFragment.onDeclineUpgradeRequest(getContext());
+            mTargetTriggered = true;
+        } else {
+            // Code should never reach here.
+            Log.e(this, "Trigger detected on unhandled resource. Skipping.");
+        }
+    }
+
+    @Override
+    public void onGrabbedStateChange(View v, int handle) {
+
+    }
+
+    @Override
+    public void onFinishFinalAnimation() {
+
+    }
+
+    public void setAnswerFragment(AnswerFragment fragment) {
+        mAnswerFragment = fragment;
+    }
+
+    /**
+     * Sets the video state represented by the "video" icon on the glow pad.
+     *
+     * @param videoState The new video state.
+     */
+    public void setVideoState(int videoState) {
+        mVideoState = videoState;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
new file mode 100644
index 0000000..eca79f8
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -0,0 +1,964 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.AlertDialog;
+import android.app.DialogFragment;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
+import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.graphics.Point;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.os.Trace;
+import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccountHandle;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.OrientationEventListener;
+import android.view.Surface;
+import android.view.View;
+import android.view.View.OnTouchListener;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+
+import com.android.contacts.common.activity.TransactionSafeActivity;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.interactions.TouchPointManager;
+import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment;
+import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.SelectPhoneAccountListener;
+import com.android.dialer.R;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
+import com.android.incallui.Call.State;
+import com.android.incallui.util.AccessibilityUtil;
+import com.android.phone.common.animation.AnimUtils;
+import com.android.phone.common.animation.AnimationListenerAdapter;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Main activity that the user interacts with while in a live call.
+ */
+public class InCallActivity extends TransactionSafeActivity implements FragmentDisplayManager {
+
+    public static final String TAG = InCallActivity.class.getSimpleName();
+
+    public static final String SHOW_DIALPAD_EXTRA = "InCallActivity.show_dialpad";
+    public static final String DIALPAD_TEXT_EXTRA = "InCallActivity.dialpad_text";
+    public static final String NEW_OUTGOING_CALL_EXTRA = "InCallActivity.new_outgoing_call";
+
+    private static final String TAG_DIALPAD_FRAGMENT = "tag_dialpad_fragment";
+    private static final String TAG_CONFERENCE_FRAGMENT = "tag_conference_manager_fragment";
+    private static final String TAG_CALLCARD_FRAGMENT = "tag_callcard_fragment";
+    private static final String TAG_ANSWER_FRAGMENT = "tag_answer_fragment";
+    private static final String TAG_SELECT_ACCT_FRAGMENT = "tag_select_acct_fragment";
+
+    private static final int DIALPAD_REQUEST_NONE = 1;
+    private static final int DIALPAD_REQUEST_SHOW = 2;
+    private static final int DIALPAD_REQUEST_HIDE = 3;
+
+    /**
+     * This is used to relaunch the activity if resizing beyond which it needs to load different
+     * layout file.
+     */
+    private static final int SCREEN_HEIGHT_RESIZE_THRESHOLD = 500;
+
+    private CallButtonFragment mCallButtonFragment;
+    private CallCardFragment mCallCardFragment;
+    private AnswerFragment mAnswerFragment;
+    private DialpadFragment mDialpadFragment;
+    private ConferenceManagerFragment mConferenceManagerFragment;
+    private FragmentManager mChildFragmentManager;
+
+    private AlertDialog mDialog;
+    private InCallOrientationEventListener mInCallOrientationEventListener;
+
+    /**
+     * Used to indicate whether the dialpad should be hidden or shown {@link #onResume}.
+     * {@code #DIALPAD_REQUEST_SHOW} indicates that the dialpad should be shown.
+     * {@code #DIALPAD_REQUEST_HIDE} indicates that the dialpad should be hidden.
+     * {@code #DIALPAD_REQUEST_NONE} indicates no change should be made to dialpad visibility.
+     */
+    private int mShowDialpadRequest = DIALPAD_REQUEST_NONE;
+
+    /**
+     * Use to determine if the dialpad should be animated on show.
+     */
+    private boolean mAnimateDialpadOnShow;
+
+    /**
+     * Use to determine the DTMF Text which should be pre-populated in the dialpad.
+     */
+    private String mDtmfText;
+
+    /**
+     * Use to pass parameters for showing the PostCharDialog to {@link #onResume}
+     */
+    private boolean mShowPostCharWaitDialogOnResume;
+    private String mShowPostCharWaitDialogCallId;
+    private String mShowPostCharWaitDialogChars;
+
+    private boolean mIsLandscape;
+    private Animation mSlideIn;
+    private Animation mSlideOut;
+    private boolean mDismissKeyguard = false;
+
+    AnimationListenerAdapter mSlideOutListener = new AnimationListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animation animation) {
+            showFragment(TAG_DIALPAD_FRAGMENT, false, true);
+        }
+    };
+
+    private OnTouchListener mDispatchTouchEventListener;
+
+    private SelectPhoneAccountListener mSelectAcctListener = new SelectPhoneAccountListener() {
+        @Override
+        public void onPhoneAccountSelected(PhoneAccountHandle selectedAccountHandle,
+                boolean setDefault) {
+            InCallPresenter.getInstance().handleAccountSelection(selectedAccountHandle,
+                    setDefault);
+        }
+
+        @Override
+        public void onDialogDismissed() {
+            InCallPresenter.getInstance().cancelAccountSelection();
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        Log.d(this, "onCreate()...  this = " + this);
+
+        super.onCreate(icicle);
+
+        // set this flag so this activity will stay in front of the keyguard
+        // Have the WindowManager filter out touch events that are "too fat".
+        int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                | WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES;
+
+        getWindow().addFlags(flags);
+
+        // Setup action bar for the conference call manager.
+        requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+            actionBar.setDisplayShowTitleEnabled(true);
+            actionBar.hide();
+        }
+
+        // TODO(klp): Do we need to add this back when prox sensor is not available?
+        // lp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
+
+        setContentView(R.layout.incall_screen);
+
+        internalResolveIntent(getIntent());
+
+        mIsLandscape = getResources().getConfiguration().orientation ==
+                Configuration.ORIENTATION_LANDSCAPE;
+
+        final boolean isRtl = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) ==
+                View.LAYOUT_DIRECTION_RTL;
+
+        if (mIsLandscape) {
+            mSlideIn = AnimationUtils.loadAnimation(this,
+                    isRtl ? R.anim.dialpad_slide_in_left : R.anim.dialpad_slide_in_right);
+            mSlideOut = AnimationUtils.loadAnimation(this,
+                    isRtl ? R.anim.dialpad_slide_out_left : R.anim.dialpad_slide_out_right);
+        } else {
+            mSlideIn = AnimationUtils.loadAnimation(this, R.anim.dialpad_slide_in_bottom);
+            mSlideOut = AnimationUtils.loadAnimation(this, R.anim.dialpad_slide_out_bottom);
+        }
+
+        mSlideIn.setInterpolator(AnimUtils.EASE_IN);
+        mSlideOut.setInterpolator(AnimUtils.EASE_OUT);
+
+        mSlideOut.setAnimationListener(mSlideOutListener);
+
+        // If the dialpad fragment already exists, retrieve it.  This is important when rotating as
+        // we will not be able to hide or show the dialpad after the rotation otherwise.
+        Fragment existingFragment =
+                getFragmentManager().findFragmentByTag(DialpadFragment.class.getName());
+        if (existingFragment != null) {
+            mDialpadFragment = (DialpadFragment) existingFragment;
+        }
+
+        if (icicle != null) {
+            // If the dialpad was shown before, set variables indicating it should be shown and
+            // populated with the previous DTMF text.  The dialpad is actually shown and populated
+            // in onResume() to ensure the hosting CallCardFragment has been inflated and is ready
+            // to receive it.
+            if (icicle.containsKey(SHOW_DIALPAD_EXTRA)) {
+                boolean showDialpad = icicle.getBoolean(SHOW_DIALPAD_EXTRA);
+                mShowDialpadRequest = showDialpad ? DIALPAD_REQUEST_SHOW : DIALPAD_REQUEST_HIDE;
+                mAnimateDialpadOnShow = false;
+            }
+            mDtmfText = icicle.getString(DIALPAD_TEXT_EXTRA);
+
+            SelectPhoneAccountDialogFragment dialogFragment = (SelectPhoneAccountDialogFragment)
+                    getFragmentManager().findFragmentByTag(TAG_SELECT_ACCT_FRAGMENT);
+            if (dialogFragment != null) {
+                dialogFragment.setListener(mSelectAcctListener);
+            }
+        }
+        mInCallOrientationEventListener = new InCallOrientationEventListener(this);
+
+        Log.d(this, "onCreate(): exit");
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle out) {
+        // TODO: The dialpad fragment should handle this as part of its own state
+        out.putBoolean(SHOW_DIALPAD_EXTRA,
+                mCallButtonFragment != null && mCallButtonFragment.isDialpadVisible());
+        if (mDialpadFragment != null) {
+            out.putString(DIALPAD_TEXT_EXTRA, mDialpadFragment.getDtmfText());
+        }
+        super.onSaveInstanceState(out);
+    }
+
+    @Override
+    protected void onStart() {
+        Log.d(this, "onStart()...");
+        super.onStart();
+
+        // setting activity should be last thing in setup process
+        InCallPresenter.getInstance().setActivity(this);
+        enableInCallOrientationEventListener(getRequestedOrientation() ==
+                InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION);
+
+        InCallPresenter.getInstance().onActivityStarted();
+    }
+
+    @Override
+    protected void onResume() {
+        Log.i(this, "onResume()...");
+        super.onResume();
+
+        InCallPresenter.getInstance().setThemeColors();
+        InCallPresenter.getInstance().onUiShowing(true);
+
+        // Clear fullscreen state onResume; the stored value may not match reality.
+        InCallPresenter.getInstance().clearFullscreen();
+
+        // If there is a pending request to show or hide the dialpad, handle that now.
+        if (mShowDialpadRequest != DIALPAD_REQUEST_NONE) {
+            if (mShowDialpadRequest == DIALPAD_REQUEST_SHOW) {
+                // Exit fullscreen so that the user has access to the dialpad hide/show button and
+                // can hide the dialpad.  Important when showing the dialpad from within dialer.
+                InCallPresenter.getInstance().setFullScreen(false, true /* force */);
+
+                mCallButtonFragment.displayDialpad(true /* show */,
+                        mAnimateDialpadOnShow /* animate */);
+                mAnimateDialpadOnShow = false;
+
+                if (mDialpadFragment != null) {
+                    mDialpadFragment.setDtmfText(mDtmfText);
+                    mDtmfText = null;
+                }
+            } else {
+                Log.v(this, "onResume : force hide dialpad");
+                if (mDialpadFragment != null) {
+                    mCallButtonFragment.displayDialpad(false /* show */, false /* animate */);
+                }
+            }
+            mShowDialpadRequest = DIALPAD_REQUEST_NONE;
+        }
+
+        if (mShowPostCharWaitDialogOnResume) {
+            showPostCharWaitDialog(mShowPostCharWaitDialogCallId, mShowPostCharWaitDialogChars);
+        }
+    }
+
+    // onPause is guaranteed to be called when the InCallActivity goes
+    // in the background.
+    @Override
+    protected void onPause() {
+        Log.d(this, "onPause()...");
+        if (mDialpadFragment != null) {
+            mDialpadFragment.onDialerKeyUp(null);
+        }
+
+        InCallPresenter.getInstance().onUiShowing(false);
+        if (isFinishing()) {
+            InCallPresenter.getInstance().unsetActivity(this);
+        }
+        super.onPause();
+    }
+
+    @Override
+    protected void onStop() {
+        Log.d(this, "onStop()...");
+        enableInCallOrientationEventListener(false);
+        InCallPresenter.getInstance().updateIsChangingConfigurations();
+        InCallPresenter.getInstance().onActivityStopped();
+        super.onStop();
+    }
+
+    @Override
+    protected void onDestroy() {
+        Log.d(this, "onDestroy()...  this = " + this);
+        InCallPresenter.getInstance().unsetActivity(this);
+        InCallPresenter.getInstance().updateIsChangingConfigurations();
+        super.onDestroy();
+    }
+
+    /**
+     * When fragments have a parent fragment, onAttachFragment is not called on the parent
+     * activity. To fix this, register our own callback instead that is always called for
+     * all fragments.
+     *
+     * @see {@link BaseFragment#onAttach(Activity)}
+     */
+    @Override
+    public void onFragmentAttached(Fragment fragment) {
+        if (fragment instanceof DialpadFragment) {
+            mDialpadFragment = (DialpadFragment) fragment;
+        } else if (fragment instanceof AnswerFragment) {
+            mAnswerFragment = (AnswerFragment) fragment;
+        } else if (fragment instanceof CallCardFragment) {
+            mCallCardFragment = (CallCardFragment) fragment;
+            mChildFragmentManager = mCallCardFragment.getChildFragmentManager();
+        } else if (fragment instanceof ConferenceManagerFragment) {
+            mConferenceManagerFragment = (ConferenceManagerFragment) fragment;
+        } else if (fragment instanceof CallButtonFragment) {
+            mCallButtonFragment = (CallButtonFragment) fragment;
+        }
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        Configuration oldConfig = getResources().getConfiguration();
+        Log.v(this, String.format(
+                "incallui config changed, screen size: w%ddp x h%ddp old:w%ddp x h%ddp",
+                newConfig.screenWidthDp, newConfig.screenHeightDp,
+                oldConfig.screenWidthDp, oldConfig.screenHeightDp));
+        // Recreate this activity if height is changing beyond the threshold to load different
+        // layout file.
+        if (oldConfig.screenHeightDp < SCREEN_HEIGHT_RESIZE_THRESHOLD &&
+                newConfig.screenHeightDp > SCREEN_HEIGHT_RESIZE_THRESHOLD ||
+                oldConfig.screenHeightDp > SCREEN_HEIGHT_RESIZE_THRESHOLD &&
+                        newConfig.screenHeightDp < SCREEN_HEIGHT_RESIZE_THRESHOLD) {
+            Log.i(this, String.format(
+                    "Recreate activity due to resize beyond threshold: %d dp",
+                    SCREEN_HEIGHT_RESIZE_THRESHOLD));
+            recreate();
+        }
+    }
+
+    /**
+     * Returns true when the Activity is currently visible.
+     */
+    /* package */ boolean isVisible() {
+        return isSafeToCommitTransactions();
+    }
+
+    private boolean hasPendingDialogs() {
+        return mDialog != null || (mAnswerFragment != null && mAnswerFragment.hasPendingDialogs());
+    }
+
+    @Override
+    public void finish() {
+        Log.i(this, "finish().  Dialog showing: " + (mDialog != null));
+
+        // skip finish if we are still showing a dialog.
+        if (!hasPendingDialogs()) {
+            super.finish();
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        Log.d(this, "onNewIntent: intent = " + intent);
+
+        // We're being re-launched with a new Intent.  Since it's possible for a
+        // single InCallActivity instance to persist indefinitely (even if we
+        // finish() ourselves), this sequence can potentially happen any time
+        // the InCallActivity needs to be displayed.
+
+        // Stash away the new intent so that we can get it in the future
+        // by calling getIntent().  (Otherwise getIntent() will return the
+        // original Intent from when we first got created!)
+        setIntent(intent);
+
+        // Activities are always paused before receiving a new intent, so
+        // we can count on our onResume() method being called next.
+
+        // Just like in onCreate(), handle the intent.
+        internalResolveIntent(intent);
+    }
+
+    @Override
+    public void onBackPressed() {
+        Log.i(this, "onBackPressed");
+
+        // BACK is also used to exit out of any "special modes" of the
+        // in-call UI:
+        if (!isVisible()) {
+            return;
+        }
+
+        if ((mConferenceManagerFragment == null || !mConferenceManagerFragment.isVisible())
+                && (mCallCardFragment == null || !mCallCardFragment.isVisible())) {
+            return;
+        }
+
+        if (mDialpadFragment != null && mDialpadFragment.isVisible()) {
+            mCallButtonFragment.displayDialpad(false /* show */, true /* animate */);
+            return;
+        } else if (mConferenceManagerFragment != null && mConferenceManagerFragment.isVisible()) {
+            showConferenceFragment(false);
+            return;
+        }
+
+        // Always disable the Back key while an incoming call is ringing
+        final Call call = CallList.getInstance().getIncomingCall();
+        if (call != null) {
+            Log.i(this, "Consume Back press for an incoming call");
+            return;
+        }
+
+        // Nothing special to do.  Fall back to the default behavior.
+        super.onBackPressed();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {
+            onBackPressed();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        // push input to the dialer.
+        if (mDialpadFragment != null && (mDialpadFragment.isVisible()) &&
+                (mDialpadFragment.onDialerKeyUp(event))) {
+            return true;
+        } else if (keyCode == KeyEvent.KEYCODE_CALL) {
+            // Always consume CALL to be sure the PhoneWindow won't do anything with it
+            return true;
+        }
+        return super.onKeyUp(keyCode, event);
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (mDispatchTouchEventListener != null) {
+            boolean handled = mDispatchTouchEventListener.onTouch(null, ev);
+            if (handled) {
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(ev);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_CALL:
+                boolean handled = InCallPresenter.getInstance().handleCallKey();
+                if (!handled) {
+                    Log.w(this, "InCallActivity should always handle KEYCODE_CALL in onKeyDown");
+                }
+                // Always consume CALL to be sure the PhoneWindow won't do anything with it
+                return true;
+
+            // Note there's no KeyEvent.KEYCODE_ENDCALL case here.
+            // The standard system-wide handling of the ENDCALL key
+            // (see PhoneWindowManager's handling of KEYCODE_ENDCALL)
+            // already implements exactly what the UI spec wants,
+            // namely (1) "hang up" if there's a current active call,
+            // or (2) "don't answer" if there's a current ringing call.
+
+            case KeyEvent.KEYCODE_CAMERA:
+                // Disable the CAMERA button while in-call since it's too
+                // easy to press accidentally.
+                return true;
+
+            case KeyEvent.KEYCODE_VOLUME_UP:
+            case KeyEvent.KEYCODE_VOLUME_DOWN:
+            case KeyEvent.KEYCODE_VOLUME_MUTE:
+                // Ringer silencing handled by PhoneWindowManager.
+                break;
+
+            case KeyEvent.KEYCODE_MUTE:
+                // toggle mute
+                TelecomAdapter.getInstance().mute(!AudioModeProvider.getInstance().getMute());
+                return true;
+
+            // Various testing/debugging features, enabled ONLY when VERBOSE == true.
+            case KeyEvent.KEYCODE_SLASH:
+                if (Log.VERBOSE) {
+                    Log.v(this, "----------- InCallActivity View dump --------------");
+                    // Dump starting from the top-level view of the entire activity:
+                    Window w = this.getWindow();
+                    View decorView = w.getDecorView();
+                    Log.d(this, "View dump:" + decorView);
+                    return true;
+                }
+                break;
+            case KeyEvent.KEYCODE_EQUALS:
+                // TODO: Dump phone state?
+                break;
+        }
+
+        if (event.getRepeatCount() == 0 && handleDialerKeyDown(keyCode, event)) {
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private boolean handleDialerKeyDown(int keyCode, KeyEvent event) {
+        Log.v(this, "handleDialerKeyDown: keyCode " + keyCode + ", event " + event + "...");
+
+        // As soon as the user starts typing valid dialable keys on the
+        // keyboard (presumably to type DTMF tones) we start passing the
+        // key events to the DTMFDialer's onDialerKeyDown.
+        if (mDialpadFragment != null && mDialpadFragment.isVisible()) {
+            return mDialpadFragment.onDialerKeyDown(event);
+        }
+
+        return false;
+    }
+
+    public CallButtonFragment getCallButtonFragment() {
+        return mCallButtonFragment;
+    }
+
+    public CallCardFragment getCallCardFragment() {
+        return mCallCardFragment;
+    }
+
+    public AnswerFragment getAnswerFragment() {
+        return mAnswerFragment;
+    }
+
+    private void internalResolveIntent(Intent intent) {
+        final String action = intent.getAction();
+        if (action.equals(Intent.ACTION_MAIN)) {
+            // This action is the normal way to bring up the in-call UI.
+            //
+            // But we do check here for one extra that can come along with the
+            // ACTION_MAIN intent:
+
+            if (intent.hasExtra(SHOW_DIALPAD_EXTRA)) {
+                // SHOW_DIALPAD_EXTRA can be used here to specify whether the DTMF
+                // dialpad should be initially visible.  If the extra isn't
+                // present at all, we just leave the dialpad in its previous state.
+
+                final boolean showDialpad = intent.getBooleanExtra(SHOW_DIALPAD_EXTRA, false);
+                Log.d(this, "- internalResolveIntent: SHOW_DIALPAD_EXTRA: " + showDialpad);
+
+                relaunchedFromDialer(showDialpad);
+            }
+
+            boolean newOutgoingCall = false;
+            if (intent.getBooleanExtra(NEW_OUTGOING_CALL_EXTRA, false)) {
+                intent.removeExtra(NEW_OUTGOING_CALL_EXTRA);
+                Call call = CallList.getInstance().getOutgoingCall();
+                if (call == null) {
+                    call = CallList.getInstance().getPendingOutgoingCall();
+                }
+
+                Bundle extras = null;
+                if (call != null) {
+                    extras = call.getTelecomCall().getDetails().getIntentExtras();
+                }
+                if (extras == null) {
+                    // Initialize the extras bundle to avoid NPE
+                    extras = new Bundle();
+                }
+
+                Point touchPoint = null;
+                if (TouchPointManager.getInstance().hasValidPoint()) {
+                    // Use the most immediate touch point in the InCallUi if available
+                    touchPoint = TouchPointManager.getInstance().getPoint();
+                } else {
+                    // Otherwise retrieve the touch point from the call intent
+                    if (call != null) {
+                        touchPoint = (Point) extras.getParcelable(TouchPointManager.TOUCH_POINT);
+                    }
+                }
+
+                // Start animation for new outgoing call
+                CircularRevealFragment.startCircularReveal(getFragmentManager(), touchPoint,
+                        InCallPresenter.getInstance());
+
+                // InCallActivity is responsible for disconnecting a new outgoing call if there
+                // is no way of making it (i.e. no valid call capable accounts).
+                // If the version is not MSIM compatible, then ignore this code.
+                if (CompatUtils.isMSIMCompatible()
+                        && InCallPresenter.isCallWithNoValidAccounts(call)) {
+                    TelecomAdapter.getInstance().disconnectCall(call.getId());
+                }
+
+                dismissKeyguard(true);
+                newOutgoingCall = true;
+            }
+
+            Call pendingAccountSelectionCall = CallList.getInstance().getWaitingForAccountCall();
+            if (pendingAccountSelectionCall != null) {
+                showCallCardFragment(false);
+                Bundle extras =
+                        pendingAccountSelectionCall.getTelecomCall().getDetails().getIntentExtras();
+
+                final List<PhoneAccountHandle> phoneAccountHandles;
+                if (extras != null) {
+                    phoneAccountHandles = extras.getParcelableArrayList(
+                            android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS);
+                } else {
+                    phoneAccountHandles = new ArrayList<>();
+                }
+
+                DialogFragment dialogFragment = SelectPhoneAccountDialogFragment.newInstance(
+                        R.string.select_phone_account_for_calls, true, phoneAccountHandles,
+                        mSelectAcctListener);
+                dialogFragment.show(getFragmentManager(), TAG_SELECT_ACCT_FRAGMENT);
+            } else if (!newOutgoingCall) {
+                showCallCardFragment(true);
+            }
+            return;
+        }
+    }
+
+    /**
+     * When relaunching from the dialer app, {@code showDialpad} indicates whether the dialpad
+     * should be shown on launch.
+     *
+     * @param showDialpad {@code true} to indicate the dialpad should be shown on launch, and
+     *                                {@code false} to indicate no change should be made to the
+     *                                dialpad visibility.
+     */
+    private void relaunchedFromDialer(boolean showDialpad) {
+        mShowDialpadRequest = showDialpad ? DIALPAD_REQUEST_SHOW : DIALPAD_REQUEST_NONE;
+        mAnimateDialpadOnShow = true;
+
+        if (mShowDialpadRequest == DIALPAD_REQUEST_SHOW) {
+            // If there's only one line in use, AND it's on hold, then we're sure the user
+            // wants to use the dialpad toward the exact line, so un-hold the holding line.
+            final Call call = CallList.getInstance().getActiveOrBackgroundCall();
+            if (call != null && call.getState() == State.ONHOLD) {
+                TelecomAdapter.getInstance().unholdCall(call.getId());
+            }
+        }
+    }
+
+    public void dismissKeyguard(boolean dismiss) {
+        if (mDismissKeyguard == dismiss) {
+            return;
+        }
+        mDismissKeyguard = dismiss;
+        if (dismiss) {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        } else {
+            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        }
+    }
+
+    private void showFragment(String tag, boolean show, boolean executeImmediately) {
+        Trace.beginSection("showFragment - " + tag);
+        final FragmentManager fm = getFragmentManagerForTag(tag);
+
+        if (fm == null) {
+            Log.w(TAG, "Fragment manager is null for : " + tag);
+            return;
+        }
+
+        Fragment fragment = fm.findFragmentByTag(tag);
+        if (!show && fragment == null) {
+            // Nothing to show, so bail early.
+            return;
+        }
+
+        final FragmentTransaction transaction = fm.beginTransaction();
+        if (show) {
+            if (fragment == null) {
+                fragment = createNewFragmentForTag(tag);
+                transaction.add(getContainerIdForFragment(tag), fragment, tag);
+            } else {
+                transaction.show(fragment);
+            }
+            Logger.logScreenView(getScreenTypeForTag(tag), this);
+        } else {
+            transaction.hide(fragment);
+        }
+
+        transaction.commitAllowingStateLoss();
+        if (executeImmediately) {
+            fm.executePendingTransactions();
+        }
+        Trace.endSection();
+    }
+
+    private Fragment createNewFragmentForTag(String tag) {
+        if (TAG_DIALPAD_FRAGMENT.equals(tag)) {
+            mDialpadFragment = new DialpadFragment();
+            return mDialpadFragment;
+        } else if (TAG_ANSWER_FRAGMENT.equals(tag)) {
+            if (AccessibilityUtil.isTalkBackEnabled(this)) {
+                mAnswerFragment = new AccessibleAnswerFragment();
+            } else {
+                mAnswerFragment = new GlowPadAnswerFragment();
+            }
+            return mAnswerFragment;
+        } else if (TAG_CONFERENCE_FRAGMENT.equals(tag)) {
+            mConferenceManagerFragment = new ConferenceManagerFragment();
+            return mConferenceManagerFragment;
+        } else if (TAG_CALLCARD_FRAGMENT.equals(tag)) {
+            mCallCardFragment = new CallCardFragment();
+            return mCallCardFragment;
+        }
+        throw new IllegalStateException("Unexpected fragment: " + tag);
+    }
+
+    private FragmentManager getFragmentManagerForTag(String tag) {
+        if (TAG_DIALPAD_FRAGMENT.equals(tag)) {
+            return mChildFragmentManager;
+        } else if (TAG_ANSWER_FRAGMENT.equals(tag)) {
+            return mChildFragmentManager;
+        } else if (TAG_CONFERENCE_FRAGMENT.equals(tag)) {
+            return getFragmentManager();
+        } else if (TAG_CALLCARD_FRAGMENT.equals(tag)) {
+            return getFragmentManager();
+        }
+        throw new IllegalStateException("Unexpected fragment: " + tag);
+    }
+
+    private int getScreenTypeForTag(String tag) {
+        switch (tag) {
+            case TAG_DIALPAD_FRAGMENT:
+                return ScreenEvent.INCALL_DIALPAD;
+            case TAG_CALLCARD_FRAGMENT:
+                return ScreenEvent.INCALL;
+            case TAG_CONFERENCE_FRAGMENT:
+                return ScreenEvent.CONFERENCE_MANAGEMENT;
+            case TAG_ANSWER_FRAGMENT:
+                return ScreenEvent.INCOMING_CALL;
+            default:
+                return ScreenEvent.UNKNOWN;
+        }
+    }
+
+    private int getContainerIdForFragment(String tag) {
+        if (TAG_DIALPAD_FRAGMENT.equals(tag)) {
+            return R.id.answer_and_dialpad_container;
+        } else if (TAG_ANSWER_FRAGMENT.equals(tag)) {
+            return R.id.answer_and_dialpad_container;
+        } else if (TAG_CONFERENCE_FRAGMENT.equals(tag)) {
+            return R.id.main;
+        } else if (TAG_CALLCARD_FRAGMENT.equals(tag)) {
+            return R.id.main;
+        }
+        throw new IllegalStateException("Unexpected fragment: " + tag);
+    }
+
+    /**
+     * @return {@code true} while the visibility of the dialpad has actually changed.
+     */
+    public boolean showDialpadFragment(boolean show, boolean animate) {
+        // If the dialpad is already visible, don't animate in. If it's gone, don't animate out.
+        if ((show && isDialpadVisible()) || (!show && !isDialpadVisible())) {
+            return false;
+        }
+        // We don't do a FragmentTransaction on the hide case because it will be dealt with when
+        // the listener is fired after an animation finishes.
+        if (!animate) {
+            showFragment(TAG_DIALPAD_FRAGMENT, show, true);
+        } else {
+            if (show) {
+                showFragment(TAG_DIALPAD_FRAGMENT, true, true);
+                mDialpadFragment.animateShowDialpad();
+            }
+            mDialpadFragment.getView().startAnimation(show ? mSlideIn : mSlideOut);
+        }
+        // Note:  onDialpadVisibilityChange is called here to ensure that the dialpad FAB
+        // repositions itself.
+        mCallCardFragment.onDialpadVisibilityChange(show);
+
+        final ProximitySensor sensor = InCallPresenter.getInstance().getProximitySensor();
+        if (sensor != null) {
+            sensor.onDialpadVisible(show);
+        }
+        return true;
+    }
+
+    public boolean isDialpadVisible() {
+        return mDialpadFragment != null && mDialpadFragment.isVisible();
+    }
+
+    public void showCallCardFragment(boolean show) {
+        showFragment(TAG_CALLCARD_FRAGMENT, show, true);
+    }
+
+    /**
+     * Hides or shows the conference manager fragment.
+     *
+     * @param show {@code true} if the conference manager should be shown, {@code false} if it
+     * should be hidden.
+     */
+    public void showConferenceFragment(boolean show) {
+        showFragment(TAG_CONFERENCE_FRAGMENT, show, true);
+        mConferenceManagerFragment.onVisibilityChanged(show);
+
+        // Need to hide the call card fragment to ensure that accessibility service does not try to
+        // give focus to the call card when the conference manager is visible.
+        mCallCardFragment.getView().setVisibility(show ? View.GONE : View.VISIBLE);
+    }
+
+    public void showAnswerFragment(boolean show) {
+        showFragment(TAG_ANSWER_FRAGMENT, show, true);
+    }
+
+    public void showPostCharWaitDialog(String callId, String chars) {
+        if (isVisible()) {
+            final PostCharDialogFragment fragment = new PostCharDialogFragment(callId, chars);
+            fragment.show(getFragmentManager(), "postCharWait");
+
+            mShowPostCharWaitDialogOnResume = false;
+            mShowPostCharWaitDialogCallId = null;
+            mShowPostCharWaitDialogChars = null;
+        } else {
+            mShowPostCharWaitDialogOnResume = true;
+            mShowPostCharWaitDialogCallId = callId;
+            mShowPostCharWaitDialogChars = chars;
+        }
+    }
+
+    @Override
+    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        if (mCallCardFragment != null) {
+            mCallCardFragment.dispatchPopulateAccessibilityEvent(event);
+        }
+        return super.dispatchPopulateAccessibilityEvent(event);
+    }
+
+    public void maybeShowErrorDialogOnDisconnect(DisconnectCause disconnectCause) {
+        Log.d(this, "maybeShowErrorDialogOnDisconnect");
+
+        if (!isFinishing() && !TextUtils.isEmpty(disconnectCause.getDescription())
+                && (disconnectCause.getCode() == DisconnectCause.ERROR ||
+                disconnectCause.getCode() == DisconnectCause.RESTRICTED)) {
+            showErrorDialog(disconnectCause.getDescription());
+        }
+    }
+
+    public void dismissPendingDialogs() {
+        if (mDialog != null) {
+            mDialog.dismiss();
+            mDialog = null;
+        }
+        if (mAnswerFragment != null) {
+            mAnswerFragment.dismissPendingDialogs();
+        }
+    }
+
+    /**
+     * Utility function to bring up a generic "error" dialog.
+     */
+    private void showErrorDialog(CharSequence msg) {
+        Log.i(this, "Show Dialog: " + msg);
+
+        dismissPendingDialogs();
+
+        mDialog = new AlertDialog.Builder(this)
+                .setMessage(msg)
+                .setPositiveButton(android.R.string.ok, new OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        onDialogDismissed();
+                    }
+                })
+                .setOnCancelListener(new OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialog) {
+                        onDialogDismissed();
+                    }
+                })
+                .create();
+
+        mDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+        mDialog.show();
+    }
+
+    private void onDialogDismissed() {
+        mDialog = null;
+        CallList.getInstance().onErrorDialogDismissed();
+        InCallPresenter.getInstance().onDismissDialog();
+    }
+
+    public void setExcludeFromRecents(boolean exclude) {
+        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+        List<ActivityManager.AppTask> tasks = am.getAppTasks();
+        int taskId = getTaskId();
+        for (int i = 0; i < tasks.size(); i++) {
+            ActivityManager.AppTask task = tasks.get(i);
+            if (task.getTaskInfo().id == taskId) {
+                try {
+                    task.setExcludeFromRecents(exclude);
+                } catch (RuntimeException e) {
+                    Log.e(TAG, "RuntimeException when excluding task from recents.", e);
+                }
+            }
+        }
+    }
+
+
+    public OnTouchListener getDispatchTouchEventListener() {
+        return mDispatchTouchEventListener;
+    }
+
+    public void setDispatchTouchEventListener(OnTouchListener mDispatchTouchEventListener) {
+        this.mDispatchTouchEventListener = mDispatchTouchEventListener;
+    }
+
+    /**
+     * Enables the OrientationEventListener if enable flag is true. Disables it if enable is
+     * false
+     * @param enable true or false.
+     */
+    public void enableInCallOrientationEventListener(boolean enable) {
+        if (enable) {
+            mInCallOrientationEventListener.enable(enable);
+        } else {
+            mInCallOrientationEventListener.disable();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallAnimationUtils.java b/InCallUI/src/com/android/incallui/InCallAnimationUtils.java
new file mode 100644
index 0000000..44bb369
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallAnimationUtils.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.graphics.Canvas;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+import android.view.ViewPropertyAnimator;
+import android.widget.ImageView;
+
+/**
+ * Utilities for Animation.
+ */
+public class InCallAnimationUtils {
+    private static final String LOG_TAG = InCallAnimationUtils.class.getSimpleName();
+    /**
+     * Turn on when you're interested in fading animation. Intentionally untied from other debug
+     * settings.
+     */
+    private static final boolean FADE_DBG = false;
+
+    /**
+     * Duration for animations in msec, which can be used with
+     * {@link ViewPropertyAnimator#setDuration(long)} for example.
+     */
+    public static final int ANIMATION_DURATION = 250;
+
+    private InCallAnimationUtils() {
+    }
+
+    /**
+     * Drawable achieving cross-fade, just like TransitionDrawable. We can have
+     * call-backs via animator object (see also {@link CrossFadeDrawable#getAnimator()}).
+     */
+    private static class CrossFadeDrawable extends LayerDrawable {
+        private final ObjectAnimator mAnimator;
+
+        public CrossFadeDrawable(Drawable[] layers) {
+            super(layers);
+            mAnimator = ObjectAnimator.ofInt(this, "crossFadeAlpha", 0xff, 0);
+        }
+
+        private int mCrossFadeAlpha;
+
+        /**
+         * This will be used from ObjectAnimator.
+         * Note: this method is protected by proguard.flags so that it won't be removed
+         * automatically.
+         */
+        @SuppressWarnings("unused")
+        public void setCrossFadeAlpha(int alpha) {
+            mCrossFadeAlpha = alpha;
+            invalidateSelf();
+        }
+
+        public ObjectAnimator getAnimator() {
+            return mAnimator;
+        }
+
+        @Override
+        public void draw(Canvas canvas) {
+            Drawable first = getDrawable(0);
+            Drawable second = getDrawable(1);
+
+            if (mCrossFadeAlpha > 0) {
+                first.setAlpha(mCrossFadeAlpha);
+                first.draw(canvas);
+                first.setAlpha(255);
+            }
+
+            if (mCrossFadeAlpha < 0xff) {
+                second.setAlpha(0xff - mCrossFadeAlpha);
+                second.draw(canvas);
+                second.setAlpha(0xff);
+            }
+        }
+    }
+
+    private static CrossFadeDrawable newCrossFadeDrawable(Drawable first, Drawable second) {
+        Drawable[] layers = new Drawable[2];
+        layers[0] = first;
+        layers[1] = second;
+        return new CrossFadeDrawable(layers);
+    }
+
+    /**
+     * Starts cross-fade animation using TransitionDrawable. Nothing will happen if "from" and "to"
+     * are the same.
+     */
+    public static void startCrossFade(
+            final ImageView imageView, final Drawable from, final Drawable to) {
+        // We skip the cross-fade when those two Drawables are equal, or they are BitmapDrawables
+        // pointing to the same Bitmap.
+        final boolean drawableIsEqual = (from != null && to != null && from.equals(to));
+        final boolean hasFromImage = ((from instanceof BitmapDrawable) &&
+                ((BitmapDrawable) from).getBitmap() != null);
+        final boolean hasToImage = ((to instanceof BitmapDrawable) &&
+                ((BitmapDrawable) to).getBitmap() != null);
+        final boolean areSameImage = drawableIsEqual || (hasFromImage && hasToImage &&
+                ((BitmapDrawable) from).getBitmap().equals(((BitmapDrawable) to).getBitmap()));
+
+        if (!areSameImage) {
+            if (FADE_DBG) {
+                log("Start cross-fade animation for " + imageView
+                        + "(" + Integer.toHexString(from.hashCode()) + " -> "
+                        + Integer.toHexString(to.hashCode()) + ")");
+            }
+
+            CrossFadeDrawable crossFadeDrawable = newCrossFadeDrawable(from, to);
+            ObjectAnimator animator = crossFadeDrawable.getAnimator();
+            imageView.setImageDrawable(crossFadeDrawable);
+            animator.setDuration(ANIMATION_DURATION);
+            animator.addListener(new AnimatorListenerAdapter() {
+                @Override
+                public void onAnimationStart(Animator animation) {
+                    if (FADE_DBG) {
+                        log("cross-fade animation start ("
+                                + Integer.toHexString(from.hashCode()) + " -> "
+                                + Integer.toHexString(to.hashCode()) + ")");
+                    }
+                }
+
+                @Override
+                public void onAnimationEnd(Animator animation) {
+                    if (FADE_DBG) {
+                        log("cross-fade animation ended ("
+                                + Integer.toHexString(from.hashCode()) + " -> "
+                                + Integer.toHexString(to.hashCode()) + ")");
+                    }
+                    animation.removeAllListeners();
+                    // Workaround for issue 6300562; this will force the drawable to the
+                    // resultant one regardless of animation glitch.
+                    imageView.setImageDrawable(to);
+                }
+            });
+            animator.start();
+
+            /* We could use TransitionDrawable here, but it may cause some weird animation in
+             * some corner cases. See issue 6300562
+             * TODO: decide which to be used in the long run. TransitionDrawable is old but system
+             * one. Ours uses new animation framework and thus have callback (great for testing),
+             * while no framework support for the exact class.
+
+            Drawable[] layers = new Drawable[2];
+            layers[0] = from;
+            layers[1] = to;
+            TransitionDrawable transitionDrawable = new TransitionDrawable(layers);
+            imageView.setImageDrawable(transitionDrawable);
+            transitionDrawable.startTransition(ANIMATION_DURATION); */
+            imageView.setTag(to);
+        } else if (!hasFromImage && hasToImage) {
+            imageView.setImageDrawable(to);
+            imageView.setTag(to);
+        } else {
+            if (FADE_DBG) {
+                log("*Not* start cross-fade. " + imageView);
+            }
+        }
+    }
+
+    // Debugging / testing code
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
\ No newline at end of file
diff --git a/InCallUI/src/com/android/incallui/InCallCameraManager.java b/InCallUI/src/com/android/incallui/InCallCameraManager.java
new file mode 100644
index 0000000..53000f1
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.graphics.SurfaceTexture;
+import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CameraManager;
+import android.hardware.camera2.params.StreamConfigurationMap;
+import android.util.Size;
+
+import java.lang.String;
+import java.util.Collections;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.Set;
+
+/**
+ * Used to track which camera is used for outgoing video.
+ */
+public class InCallCameraManager {
+
+    public interface Listener {
+        void onActiveCameraSelectionChanged(boolean isUsingFrontFacingCamera);
+    }
+
+    private final Set<Listener> mCameraSelectionListeners = Collections.
+        newSetFromMap(new ConcurrentHashMap<Listener, Boolean>(8,0.9f,1));
+
+    /**
+     * The camera ID for the front facing camera.
+     */
+    private String mFrontFacingCameraId;
+
+    /**
+     * The camera ID for the rear facing camera.
+     */
+    private String mRearFacingCameraId;
+
+    /**
+     * The currently active camera.
+     */
+    private boolean mUseFrontFacingCamera;
+
+    /**
+     * Indicates whether the list of cameras has been initialized yet.  Initialization is delayed
+     * until a video call is present.
+     */
+    private boolean mIsInitialized = false;
+
+    /**
+     * The context.
+     */
+    private Context mContext;
+
+    /**
+     * Initializes the InCall CameraManager.
+     *
+     * @param context The current context.
+     */
+    public InCallCameraManager(Context context) {
+        mUseFrontFacingCamera = true;
+        mContext = context;
+    }
+
+    /**
+     * Sets whether the front facing camera should be used or not.
+     *
+     * @param useFrontFacingCamera {@code True} if the front facing camera is to be used.
+     */
+    public void setUseFrontFacingCamera(boolean useFrontFacingCamera) {
+        mUseFrontFacingCamera = useFrontFacingCamera;
+        for (Listener listener : mCameraSelectionListeners) {
+            listener.onActiveCameraSelectionChanged(mUseFrontFacingCamera);
+        }
+    }
+
+    /**
+     * Determines whether the front facing camera is currently in use.
+     *
+     * @return {@code True} if the front facing camera is in use.
+     */
+    public boolean isUsingFrontFacingCamera() {
+        return mUseFrontFacingCamera;
+    }
+
+    /**
+     * Determines the active camera ID.
+     *
+     * @return The active camera ID.
+     */
+    public String getActiveCameraId() {
+        maybeInitializeCameraList(mContext);
+
+        if (mUseFrontFacingCamera) {
+            return mFrontFacingCameraId;
+        } else {
+            return mRearFacingCameraId;
+        }
+    }
+
+    /**
+     * Get the list of cameras available for use.
+     *
+     * @param context The context.
+     */
+    private void maybeInitializeCameraList(Context context) {
+        if (mIsInitialized || context == null) {
+            return;
+        }
+
+        Log.v(this, "initializeCameraList");
+
+        CameraManager cameraManager = null;
+        try {
+            cameraManager = (CameraManager) context.getSystemService(
+                    Context.CAMERA_SERVICE);
+        } catch (Exception e) {
+            Log.e(this, "Could not get camera service.");
+            return;
+        }
+
+        if (cameraManager == null) {
+            return;
+        }
+
+        String[] cameraIds = {};
+        try {
+            cameraIds = cameraManager.getCameraIdList();
+        } catch (CameraAccessException e) {
+            Log.d(this, "Could not access camera: "+e);
+            // Camera disabled by device policy.
+            return;
+        }
+
+        for (int i = 0; i < cameraIds.length; i++) {
+            CameraCharacteristics c = null;
+            try {
+                c = cameraManager.getCameraCharacteristics(cameraIds[i]);
+            } catch (IllegalArgumentException e) {
+                // Device Id is unknown.
+            } catch (CameraAccessException e) {
+                // Camera disabled by device policy.
+            }
+            if (c != null) {
+                int facingCharacteristic = c.get(CameraCharacteristics.LENS_FACING);
+                if (facingCharacteristic == CameraCharacteristics.LENS_FACING_FRONT) {
+                    mFrontFacingCameraId = cameraIds[i];
+                } else if (facingCharacteristic == CameraCharacteristics.LENS_FACING_BACK) {
+                    mRearFacingCameraId = cameraIds[i];
+                }
+            }
+        }
+
+        mIsInitialized = true;
+        Log.v(this, "initializeCameraList : done");
+    }
+
+    public void addCameraSelectionListener(Listener listener) {
+        if (listener != null) {
+            mCameraSelectionListeners.add(listener);
+        }
+    }
+
+    public void removeCameraSelectionListener(Listener listener) {
+        if (listener != null) {
+            mCameraSelectionListeners.remove(listener);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallContactInteractions.java b/InCallUI/src/com/android/incallui/InCallContactInteractions.java
new file mode 100644
index 0000000..88070fe
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallContactInteractions.java
@@ -0,0 +1,399 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import android.content.Context;
+import android.location.Address;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListAdapter;
+import android.widget.RelativeLayout;
+import android.widget.RelativeLayout.LayoutParams;
+import android.widget.TextView;
+
+import com.android.dialer.R;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Wrapper class for objects that are used in generating the context about the contact in the InCall
+ * screen.
+ *
+ * This handles generating the appropriate resource for the ListAdapter based on whether the contact
+ * is a business contact or not and logic for the manipulation of data for the call context.
+ */
+public class InCallContactInteractions {
+    private static final String TAG = InCallContactInteractions.class.getSimpleName();
+
+    private Context mContext;
+    private InCallContactInteractionsListAdapter mListAdapter;
+    private boolean mIsBusiness;
+    private View mBusinessHeaderView;
+    private LayoutInflater mInflater;
+
+    public InCallContactInteractions(Context context, boolean isBusiness) {
+        mContext = context;
+        mInflater = (LayoutInflater)
+                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        switchContactType(isBusiness);
+    }
+
+    public InCallContactInteractionsListAdapter getListAdapter() {
+        return mListAdapter;
+    }
+
+    /**
+     * Switches the "isBusiness" value, if applicable. Recreates the list adapter with the resource
+     * corresponding to the new isBusiness value if the "isBusiness" value is switched.
+     *
+     * @param isBusiness Whether or not the contact is a business.
+     *
+     * @return {@code true} if a new list adapter was created, {@code} otherwise.
+     */
+    public boolean switchContactType(boolean isBusiness) {
+        if (mIsBusiness != isBusiness || mListAdapter == null) {
+            mIsBusiness = isBusiness;
+            mListAdapter = new InCallContactInteractionsListAdapter(mContext,
+                    mIsBusiness ? R.layout.business_context_info_list_item
+                            : R.layout.person_context_info_list_item);
+            return true;
+        }
+        return false;
+    }
+
+    public View getBusinessListHeaderView() {
+        if (mBusinessHeaderView == null) {
+            mBusinessHeaderView = mInflater.inflate(
+                    R.layout.business_contact_context_list_header, null);
+        }
+        return mBusinessHeaderView;
+    }
+
+    public void setBusinessInfo(Address address, float distance,
+            List<Pair<Calendar, Calendar>> openingHours) {
+        mListAdapter.clear();
+        List<ContactContextInfo> info = new ArrayList<ContactContextInfo>();
+
+        // Hours of operation
+        if (openingHours != null) {
+            BusinessContextInfo hoursInfo = constructHoursInfo(openingHours);
+            if (hoursInfo != null) {
+                info.add(hoursInfo);
+            }
+        }
+
+        // Location information
+        if (address != null) {
+            BusinessContextInfo locationInfo = constructLocationInfo(address, distance);
+            info.add(locationInfo);
+        }
+
+        mListAdapter.addAll(info);
+    }
+
+    /**
+     * Construct a BusinessContextInfo object containing hours of operation information.
+     * The format is:
+     *      [Open now/Closed now]
+     *      [Hours]
+     *
+     * @param openingHours
+     * @return BusinessContextInfo object with the schedule icon, the heading set to whether the
+     * business is open or not and the details set to the hours of operation.
+     */
+    private BusinessContextInfo constructHoursInfo(List<Pair<Calendar, Calendar>> openingHours) {
+        try {
+            return constructHoursInfo(Calendar.getInstance(), openingHours);
+        } catch (Exception e) {
+            // Catch all exceptions here because we don't want any crashes if something goes wrong.
+            Log.e(TAG, "Error constructing hours info: ", e);
+        }
+        return null;
+    }
+
+    /**
+     * Pass in arbitrary current calendar time.
+     */
+    @VisibleForTesting
+    BusinessContextInfo constructHoursInfo(Calendar currentTime,
+            List<Pair<Calendar, Calendar>> openingHours) {
+        if (currentTime == null || openingHours == null || openingHours.size() == 0) {
+            return null;
+        }
+
+        BusinessContextInfo hoursInfo = new BusinessContextInfo();
+        hoursInfo.iconId = R.drawable.ic_schedule_white_24dp;
+
+        boolean isOpenNow = false;
+        // This variable records which interval the current time is after. 0 denotes none of the
+        // intervals, 1 after the first interval, etc. It is also the index of the interval the
+        // current time is in (if open) or the next interval (if closed).
+        int afterInterval = 0;
+        // This variable counts the number of time intervals in today's opening hours.
+        int todaysIntervalCount = 0;
+
+        for (Pair<Calendar, Calendar> hours : openingHours) {
+            if (hours.first.compareTo(currentTime) <= 0
+                    && currentTime.compareTo(hours.second) < 0) {
+                // If the current time is on or after the opening time and strictly before the
+                // closing time, then this business is open.
+                isOpenNow = true;
+            }
+
+            if (currentTime.get(Calendar.DAY_OF_YEAR) == hours.first.get(Calendar.DAY_OF_YEAR)) {
+                todaysIntervalCount += 1;
+            }
+
+            if (currentTime.compareTo(hours.second) > 0) {
+                // This assumes that the list of intervals is sorted by time.
+                afterInterval += 1;
+            }
+        }
+
+        hoursInfo.heading = isOpenNow ? mContext.getString(R.string.open_now)
+                : mContext.getString(R.string.closed_now);
+
+        /*
+         * The following logic determines what to display in various cases for hours of operation.
+         *
+         * - Display all intervals if open now and number of intervals is <=2.
+         * - Display next closing time if open now and number of intervals is >2.
+         * - Display next opening time if currently closed but opens later today.
+         * - Display last time it closed today if closed now and tomorrow's hours are unknown.
+         * - Display tomorrow's first open time if closed today and tomorrow's hours are known.
+         *
+         * NOTE: The logic below assumes that the intervals are sorted by ascending time. Possible
+         * TODO to modify the logic above and ensure this is true.
+         */
+        if (isOpenNow) {
+            if (todaysIntervalCount == 1) {
+                hoursInfo.detail = getTimeSpanStringForHours(openingHours.get(0));
+            } else if (todaysIntervalCount == 2) {
+                hoursInfo.detail = mContext.getString(
+                        R.string.opening_hours,
+                        getTimeSpanStringForHours(openingHours.get(0)),
+                        getTimeSpanStringForHours(openingHours.get(1)));
+            } else if (afterInterval < openingHours.size()) {
+                // This check should not be necessary since if it is currently open, we should not
+                // be after the last interval, but just in case, we don't want to crash.
+                hoursInfo.detail = mContext.getString(
+                        R.string.closes_today_at,
+                        getFormattedTimeForCalendar(openingHours.get(afterInterval).second));
+            }
+        } else { // Currently closed
+            final int lastIntervalToday = todaysIntervalCount - 1;
+            if (todaysIntervalCount == 0) { // closed today
+                hoursInfo.detail = mContext.getString(
+                        R.string.opens_tomorrow_at,
+                        getFormattedTimeForCalendar(openingHours.get(0).first));
+            } else if (currentTime.after(openingHours.get(lastIntervalToday).second)) {
+                // Passed hours for today
+                if (todaysIntervalCount < openingHours.size()) {
+                    // If all of today's intervals are exhausted, assume the next are tomorrow's.
+                    hoursInfo.detail = mContext.getString(
+                            R.string.opens_tomorrow_at,
+                            getFormattedTimeForCalendar(
+                                    openingHours.get(todaysIntervalCount).first));
+                } else {
+                    // Grab the last time it was open today.
+                    hoursInfo.detail = mContext.getString(
+                            R.string.closed_today_at,
+                            getFormattedTimeForCalendar(
+                                    openingHours.get(lastIntervalToday).second));
+                }
+            } else if (afterInterval < openingHours.size()) {
+                // This check should not be necessary since if it is currently before the last
+                // interval, afterInterval should be less than the count of intervals, but just in
+                // case, we don't want to crash.
+                hoursInfo.detail = mContext.getString(
+                        R.string.opens_today_at,
+                        getFormattedTimeForCalendar(openingHours.get(afterInterval).first));
+            }
+        }
+
+        return hoursInfo;
+    }
+
+    String getFormattedTimeForCalendar(Calendar calendar) {
+        return DateFormat.getTimeFormat(mContext).format(calendar.getTime());
+    }
+
+    String getTimeSpanStringForHours(Pair<Calendar, Calendar> hours) {
+        return mContext.getString(R.string.open_time_span,
+                getFormattedTimeForCalendar(hours.first),
+                getFormattedTimeForCalendar(hours.second));
+    }
+
+    /**
+     * Construct a BusinessContextInfo object with the location information of the business.
+     * The format is:
+     *      [Straight line distance in miles or kilometers]
+     *      [Address without state/country/etc.]
+     *
+     * @param address An Address object containing address details of the business
+     * @param distance The distance to the location in meters
+     * @return A BusinessContextInfo object with the location icon, the heading as the distance to
+     * the business and the details containing the address.
+     */
+    private BusinessContextInfo constructLocationInfo(Address address, float distance) {
+        return constructLocationInfo(Locale.getDefault(), address, distance);
+    }
+
+    @VisibleForTesting
+    BusinessContextInfo constructLocationInfo(Locale locale, Address address,
+            float distance) {
+        if (address == null) {
+            return null;
+        }
+
+        BusinessContextInfo locationInfo = new BusinessContextInfo();
+        locationInfo.iconId = R.drawable.ic_location_on_white_24dp;
+        if (distance != DistanceHelper.DISTANCE_NOT_FOUND) {
+            //TODO: add a setting to allow the user to select "KM" or "MI" as their distance units.
+            if (Locale.US.equals(locale)) {
+                locationInfo.heading = mContext.getString(R.string.distance_imperial_away,
+                        distance * DistanceHelper.MILES_PER_METER);
+            } else {
+                locationInfo.heading = mContext.getString(R.string.distance_metric_away,
+                        distance * DistanceHelper.KILOMETERS_PER_METER);
+            }
+        }
+        if (address.getLocality() != null) {
+            locationInfo.detail = mContext.getString(
+                    R.string.display_address,
+                    address.getAddressLine(0),
+                    address.getLocality());
+        } else {
+            locationInfo.detail = address.getAddressLine(0);
+        }
+        return locationInfo;
+    }
+
+    /**
+     * Get the appropriate title for the context.
+     * @return The "Business info" title for a business contact and the "Recent messages" title for
+     *         personal contacts.
+     */
+    public String getContactContextTitle() {
+        return mIsBusiness
+                ? mContext.getResources().getString(R.string.business_contact_context_title)
+                : mContext.getResources().getString(R.string.person_contact_context_title);
+    }
+
+    public static abstract class ContactContextInfo {
+        public abstract void bindView(View listItem);
+    }
+
+    public static class BusinessContextInfo extends ContactContextInfo {
+        int iconId;
+        String heading;
+        String detail;
+
+        @Override
+        public void bindView(View listItem) {
+            ImageView imageView = (ImageView) listItem.findViewById(R.id.icon);
+            TextView headingTextView = (TextView) listItem.findViewById(R.id.heading);
+            TextView detailTextView = (TextView) listItem.findViewById(R.id.detail);
+
+            if (this.iconId == 0 || (this.heading == null && this.detail == null)) {
+                return;
+            }
+
+            imageView.setImageDrawable(listItem.getContext().getDrawable(this.iconId));
+
+            headingTextView.setText(this.heading);
+            headingTextView.setVisibility(TextUtils.isEmpty(this.heading)
+                    ? View.GONE : View.VISIBLE);
+
+            detailTextView.setText(this.detail);
+            detailTextView.setVisibility(TextUtils.isEmpty(this.detail)
+                    ? View.GONE : View.VISIBLE);
+
+        }
+    }
+
+    public static class PersonContextInfo extends ContactContextInfo {
+        boolean isIncoming;
+        String message;
+        String detail;
+
+        @Override
+        public void bindView(View listItem) {
+            TextView messageTextView = (TextView) listItem.findViewById(R.id.message);
+            TextView detailTextView = (TextView) listItem.findViewById(R.id.detail);
+
+            if (this.message == null || this.detail == null) {
+                return;
+            }
+
+            messageTextView.setBackgroundResource(this.isIncoming ?
+                    R.drawable.incoming_sms_background : R.drawable.outgoing_sms_background);
+            messageTextView.setText(this.message);
+            LayoutParams messageLayoutParams = (LayoutParams) messageTextView.getLayoutParams();
+            messageLayoutParams.addRule(this.isIncoming?
+                    RelativeLayout.ALIGN_PARENT_START : RelativeLayout.ALIGN_PARENT_END);
+            messageTextView.setLayoutParams(messageLayoutParams);
+
+            LayoutParams detailLayoutParams = (LayoutParams) detailTextView.getLayoutParams();
+            detailLayoutParams.addRule(this.isIncoming ?
+                    RelativeLayout.ALIGN_PARENT_START : RelativeLayout.ALIGN_PARENT_END);
+            detailTextView.setLayoutParams(detailLayoutParams);
+            detailTextView.setText(this.detail);
+        }
+    }
+
+    /**
+     * A list adapter for call context information. We use the same adapter for both business and
+     * contact context.
+     */
+    private class InCallContactInteractionsListAdapter extends ArrayAdapter<ContactContextInfo> {
+        // The resource id of the list item layout.
+        int mResId;
+
+        public InCallContactInteractionsListAdapter(Context context, int resource) {
+            super(context, resource);
+            mResId = resource;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            View listItem = mInflater.inflate(mResId, null);
+            ContactContextInfo item = getItem(position);
+
+            if (item == null) {
+                return listItem;
+            }
+
+            item.bindView(listItem);
+            return listItem;
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallDateUtils.java b/InCallUI/src/com/android/incallui/InCallDateUtils.java
new file mode 100644
index 0000000..e6089d5
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallDateUtils.java
@@ -0,0 +1,56 @@
+package com.android.incallui;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import com.android.dialer.R;
+
+/**
+ * Methods to parse time and date information in the InCallUi
+ */
+public class InCallDateUtils {
+
+    /**
+     * Return given duration in a human-friendly format. For example, "4 minutes 3 seconds" or
+     * "3 hours 1 second". Returns the hours, minutes and seconds in that order if they exist.
+     */
+    public static String formatDuration(Context context, long millis) {
+        int hours = 0;
+        int minutes = 0;
+        int seconds = 0;
+        int elapsedSeconds = (int) (millis / 1000);
+        if (elapsedSeconds >= 3600) {
+            hours = elapsedSeconds / 3600;
+            elapsedSeconds -= hours * 3600;
+        }
+        if (elapsedSeconds >= 60) {
+            minutes = elapsedSeconds / 60;
+            elapsedSeconds -= minutes * 60;
+        }
+        seconds = elapsedSeconds;
+
+        final Resources res = context.getResources();
+        StringBuilder duration = new StringBuilder();
+        try {
+            if (hours > 0) {
+                duration.append(res.getQuantityString(R.plurals.duration_hours, hours, hours));
+            }
+            if (minutes > 0) {
+                if (hours > 0) {
+                    duration.append(' ');
+                }
+                duration.append(res.getQuantityString(R.plurals.duration_minutes, minutes, minutes));
+            }
+            if (seconds > 0) {
+                if (hours > 0 || minutes > 0) {
+                    duration.append(' ');
+                }
+                duration.append(res.getQuantityString(R.plurals.duration_seconds, seconds, seconds));
+            }
+        } catch (Resources.NotFoundException e) {
+            // Ignore; plurals throws an exception for an untranslated quantity for a given locale.
+            return null;
+        }
+        return duration.toString();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
new file mode 100644
index 0000000..d3334a3
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.view.OrientationEventListener;
+import android.hardware.SensorManager;
+import android.view.Surface;
+import android.content.pm.ActivityInfo;
+
+/**
+ * This class listens to Orientation events and overrides onOrientationChanged which gets
+ * invoked when an orientation change occurs. When that happens, we notify InCallUI registrants
+ * of the change.
+ */
+public class InCallOrientationEventListener extends OrientationEventListener {
+
+    /**
+     * Screen orientation angles one of 0, 90, 180, 270, 360 in degrees.
+     */
+    public static int SCREEN_ORIENTATION_0 = 0;
+    public static int SCREEN_ORIENTATION_90 = 90;
+    public static int SCREEN_ORIENTATION_180 = 180;
+    public static int SCREEN_ORIENTATION_270 = 270;
+    public static int SCREEN_ORIENTATION_360 = 360;
+
+    public static int FULL_SENSOR_SCREEN_ORIENTATION =
+            ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
+
+    public static int NO_SENSOR_SCREEN_ORIENTATION =
+            ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
+
+    /**
+     * This is to identify dead zones where we won't notify others of orientation changed.
+     * Say for e.g our threshold is x degrees. We will only notify UI when our current rotation is
+     * within x degrees right or left of the screen orientation angles. If it's not within those
+     * ranges, we return SCREEN_ORIENTATION_UNKNOWN and ignore it.
+     */
+    private static int SCREEN_ORIENTATION_UNKNOWN = -1;
+
+    // Rotation threshold is 10 degrees. So if the rotation angle is within 10 degrees of any of
+    // the above angles, we will notify orientation changed.
+    private static int ROTATION_THRESHOLD = 10;
+
+
+    /**
+     * Cache the current rotation of the device.
+     */
+    private static int sCurrentOrientation = SCREEN_ORIENTATION_0;
+
+    public InCallOrientationEventListener(Context context) {
+        super(context);
+    }
+
+    /**
+     * Handles changes in device orientation. Notifies InCallPresenter of orientation changes.
+     *
+     * Note that this API receives sensor rotation in degrees as a param and we convert that to
+     * one of our screen orientation constants - (one of: {@link SCREEN_ORIENTATION_0},
+     * {@link SCREEN_ORIENTATION_90}, {@link SCREEN_ORIENTATION_180},
+     * {@link SCREEN_ORIENTATION_270}).
+     *
+     * @param rotation The new device sensor rotation in degrees
+     */
+    @Override
+    public void onOrientationChanged(int rotation) {
+        if (rotation == OrientationEventListener.ORIENTATION_UNKNOWN) {
+            return;
+        }
+
+        final int orientation = toScreenOrientation(rotation);
+
+        if (orientation != SCREEN_ORIENTATION_UNKNOWN && sCurrentOrientation != orientation) {
+            sCurrentOrientation = orientation;
+            InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
+        }
+    }
+
+    /**
+     * Enables the OrientationEventListener and notifies listeners of current orientation if
+     * notify flag is true
+     * @param notify true or false. Notify device orientation changed if true.
+     */
+    public void enable(boolean notify) {
+        super.enable();
+        if (notify) {
+            InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
+        }
+    }
+
+    /**
+     * Enables the OrientationEventListener with notify flag defaulting to false.
+     */
+    public void enable() {
+        enable(false);
+    }
+
+    /**
+     * Converts sensor rotation in degrees to screen orientation constants.
+     * @param rotation sensor rotation angle in degrees
+     * @return Screen orientation angle in degrees (0, 90, 180, 270). Returns -1 for degrees not
+     * within threshold to identify zones where orientation change should not be trigerred.
+     */
+    private int toScreenOrientation(int rotation) {
+        // Sensor orientation 90 is equivalent to screen orientation 270 and vice versa. This
+        // function returns the screen orientation. So we convert sensor rotation 90 to 270 and
+        // vice versa here.
+        if (isInLeftRange(rotation, SCREEN_ORIENTATION_360, ROTATION_THRESHOLD) ||
+                isInRightRange(rotation, SCREEN_ORIENTATION_0, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_0;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_90, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_270;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_180, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_180;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_270, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_90;
+        }
+        return SCREEN_ORIENTATION_UNKNOWN;
+    }
+
+    private static boolean isWithinRange(int value, int begin, int end) {
+        return value >= begin && value < end;
+    }
+
+    private static boolean isWithinThreshold(int value, int center, int threshold) {
+        return isWithinRange(value, center - threshold, center + threshold);
+    }
+
+    private static boolean isInLeftRange(int value, int center, int threshold) {
+        return isWithinRange(value, center - threshold, center);
+    }
+
+    private static boolean isInRightRange(int value, int center, int threshold) {
+        return isWithinRange(value, center, center + threshold);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
new file mode 100644
index 0000000..5a27b4c
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -0,0 +1,1872 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import android.app.ActivityManager.TaskDescription;
+import android.app.FragmentManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.database.ContentObserver;
+import android.graphics.Point;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.CallLog;
+import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telecom.VideoProfile;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.interactions.TouchPointManager;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil.OnCallLogQueryFinishedListener;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.filterednumber.FilteredNumbersUtil;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.util.TelecomUtil;
+import com.android.incallui.util.TelecomCallUtil;
+import com.android.incalluibind.ObjectFactory;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Takes updates from the CallList and notifies the InCallActivity (UI)
+ * of the changes.
+ * Responsible for starting the activity for a new call and finishing the activity when all calls
+ * are disconnected.
+ * Creates and manages the in-call state and provides a listener pattern for the presenters
+ * that want to listen in on the in-call state changes.
+ * TODO: This class has become more of a state machine at this point.  Consider renaming.
+ */
+public class InCallPresenter implements CallList.Listener,
+        CircularRevealFragment.OnCircularRevealCompleteListener,
+        InCallVideoCallCallbackNotifier.SessionModificationListener {
+
+    private static final String EXTRA_FIRST_TIME_SHOWN =
+            "com.android.incallui.intent.extra.FIRST_TIME_SHOWN";
+
+    private static final long BLOCK_QUERY_TIMEOUT_MS = 1000;
+
+    private static final Bundle EMPTY_EXTRAS = new Bundle();
+
+    private static InCallPresenter sInCallPresenter;
+
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
+    private final Set<InCallStateListener> mListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<InCallStateListener, Boolean>(8, 0.9f, 1));
+    private final List<IncomingCallListener> mIncomingCallListeners = new CopyOnWriteArrayList<>();
+    private final Set<InCallDetailsListener> mDetailsListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<InCallDetailsListener, Boolean>(8, 0.9f, 1));
+    private final Set<CanAddCallListener> mCanAddCallListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<CanAddCallListener, Boolean>(8, 0.9f, 1));
+    private final Set<InCallUiListener> mInCallUiListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<InCallUiListener, Boolean>(8, 0.9f, 1));
+    private final Set<InCallOrientationListener> mOrientationListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<InCallOrientationListener, Boolean>(8, 0.9f, 1));
+    private final Set<InCallEventListener> mInCallEventListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<InCallEventListener, Boolean>(8, 0.9f, 1));
+
+    private AudioModeProvider mAudioModeProvider;
+    private StatusBarNotifier mStatusBarNotifier;
+    private ContactInfoCache mContactInfoCache;
+    private Context mContext;
+    private CallList mCallList;
+    private InCallActivity mInCallActivity;
+    private InCallState mInCallState = InCallState.NO_CALLS;
+    private ProximitySensor mProximitySensor;
+    private boolean mServiceConnected = false;
+    private boolean mAccountSelectionCancelled = false;
+    private InCallCameraManager mInCallCameraManager = null;
+    private AnswerPresenter mAnswerPresenter = new AnswerPresenter();
+    private FilteredNumberAsyncQueryHandler mFilteredQueryHandler;
+
+    /**
+     * Whether or not we are currently bound and waiting for Telecom to send us a new call.
+     */
+    private boolean mBoundAndWaitingForOutgoingCall;
+
+    /**
+     * If there is no actual call currently in the call list, this will be used as a fallback
+     * to determine the theme color for InCallUI.
+     */
+    private PhoneAccountHandle mPendingPhoneAccountHandle;
+
+    /**
+     * Determines if the InCall UI is in fullscreen mode or not.
+     */
+    private boolean mIsFullScreen = false;
+
+    private final android.telecom.Call.Callback mCallCallback = new android.telecom.Call.Callback() {
+        @Override
+        public void onPostDialWait(android.telecom.Call telecomCall,
+                String remainingPostDialSequence) {
+            final Call call = mCallList.getCallByTelecomCall(telecomCall);
+            if (call == null) {
+                Log.w(this, "Call not found in call list: " + telecomCall);
+                return;
+            }
+            onPostDialCharWait(call.getId(), remainingPostDialSequence);
+        }
+
+        @Override
+        public void onDetailsChanged(android.telecom.Call telecomCall,
+                android.telecom.Call.Details details) {
+            final Call call = mCallList.getCallByTelecomCall(telecomCall);
+            if (call == null) {
+                Log.w(this, "Call not found in call list: " + telecomCall);
+                return;
+            }
+            for (InCallDetailsListener listener : mDetailsListeners) {
+                listener.onDetailsChanged(call, details);
+            }
+        }
+
+        @Override
+        public void onConferenceableCallsChanged(android.telecom.Call telecomCall,
+                List<android.telecom.Call> conferenceableCalls) {
+            Log.i(this, "onConferenceableCallsChanged: " + telecomCall);
+            onDetailsChanged(telecomCall, telecomCall.getDetails());
+        }
+    };
+
+    private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+        public void onCallStateChanged(int state, String incomingNumber) {
+            if (state == TelephonyManager.CALL_STATE_RINGING) {
+                // Check if the number is blocked, to silence the ringer.
+                String countryIso = GeoUtil.getCurrentCountryIso(mContext);
+                mFilteredQueryHandler.isBlockedNumber(
+                        mOnCheckBlockedListener, incomingNumber, countryIso);
+            }
+        }
+    };
+
+    private final OnCheckBlockedListener mOnCheckBlockedListener = new OnCheckBlockedListener() {
+        @Override
+        public void onCheckComplete(final Integer id) {
+            if (id != null) {
+                // Silence the ringer now to prevent ringing and vibration before the call is
+                // terminated when Telecom attempts to add it.
+                TelecomUtil.silenceRinger(mContext);
+            }
+        }
+    };
+
+    /**
+     * Observes the CallLog to delete the call log entry for the blocked call after it is added.
+     * Times out if too much time has passed.
+     */
+    private class BlockedNumberContentObserver extends ContentObserver {
+        private static final int TIMEOUT_MS = 5000;
+
+        private Handler mHandler;
+        private String mNumber;
+        private long mTimeAddedMs;
+
+        private Runnable mTimeoutRunnable = new Runnable() {
+            @Override
+            public void run() {
+                unregister();
+            }
+        };
+
+        public BlockedNumberContentObserver(Handler handler, String number, long timeAddedMs) {
+            super(handler);
+
+            mHandler = handler;
+            mNumber = number;
+            mTimeAddedMs = timeAddedMs;
+        }
+
+        @Override
+        public void onChange(boolean selfChange) {
+            CallLogAsyncTaskUtil.deleteBlockedCall(mContext, mNumber, mTimeAddedMs,
+                    new OnCallLogQueryFinishedListener() {
+                        @Override
+                        public void onQueryFinished(boolean hasEntry) {
+                            if (mContext != null && hasEntry) {
+                                unregister();
+                            }
+                        }
+                    });
+        }
+
+        public void register() {
+            if (mContext != null) {
+                mContext.getContentResolver().registerContentObserver(
+                        CallLog.CONTENT_URI, true, this);
+                mHandler.postDelayed(mTimeoutRunnable, TIMEOUT_MS);
+            }
+        }
+
+        private void unregister() {
+            if (mContext != null) {
+                mHandler.removeCallbacks(mTimeoutRunnable);
+                mContext.getContentResolver().unregisterContentObserver(this);
+            }
+        }
+    };
+
+    /**
+     * Is true when the activity has been previously started. Some code needs to know not just if
+     * the activity is currently up, but if it had been previously shown in foreground for this
+     * in-call session (e.g., StatusBarNotifier). This gets reset when the session ends in the
+     * tear-down method.
+     */
+    private boolean mIsActivityPreviouslyStarted = false;
+
+    /**
+     * Whether or not InCallService is bound to Telecom.
+     */
+    private boolean mServiceBound = false;
+
+    /**
+     * When configuration changes Android kills the current activity and starts a new one.
+     * The flag is used to check if full clean up is necessary (activity is stopped and new
+     * activity won't be started), or if a new activity will be started right after the current one
+     * is destroyed, and therefore no need in release all resources.
+     */
+    private boolean mIsChangingConfigurations = false;
+
+    /** Display colors for the UI. Consists of a primary color and secondary (darker) color */
+    private MaterialPalette mThemeColors;
+
+    private TelecomManager mTelecomManager;
+    private TelephonyManager mTelephonyManager;
+
+    public static synchronized InCallPresenter getInstance() {
+        if (sInCallPresenter == null) {
+            sInCallPresenter = new InCallPresenter();
+        }
+        return sInCallPresenter;
+    }
+
+    @NeededForTesting
+    static synchronized void setInstance(InCallPresenter inCallPresenter) {
+        sInCallPresenter = inCallPresenter;
+    }
+
+    public InCallState getInCallState() {
+        return mInCallState;
+    }
+
+    public CallList getCallList() {
+        return mCallList;
+    }
+
+    public void setUp(Context context,
+            CallList callList,
+            AudioModeProvider audioModeProvider,
+            StatusBarNotifier statusBarNotifier,
+            ContactInfoCache contactInfoCache,
+            ProximitySensor proximitySensor) {
+        if (mServiceConnected) {
+            Log.i(this, "New service connection replacing existing one.");
+            // retain the current resources, no need to create new ones.
+            Preconditions.checkState(context == mContext);
+            Preconditions.checkState(callList == mCallList);
+            Preconditions.checkState(audioModeProvider == mAudioModeProvider);
+            return;
+        }
+
+        Preconditions.checkNotNull(context);
+        mContext = context;
+
+        mContactInfoCache = contactInfoCache;
+
+        mStatusBarNotifier = statusBarNotifier;
+        addListener(mStatusBarNotifier);
+
+        mAudioModeProvider = audioModeProvider;
+
+        mProximitySensor = proximitySensor;
+        addListener(mProximitySensor);
+
+        addIncomingCallListener(mAnswerPresenter);
+        addInCallUiListener(mAnswerPresenter);
+
+        mCallList = callList;
+
+        // This only gets called by the service so this is okay.
+        mServiceConnected = true;
+
+        // The final thing we do in this set up is add ourselves as a listener to CallList.  This
+        // will kick off an update and the whole process can start.
+        mCallList.addListener(this);
+
+        VideoPauseController.getInstance().setUp(this);
+        InCallVideoCallCallbackNotifier.getInstance().addSessionModificationListener(this);
+
+        mFilteredQueryHandler = new FilteredNumberAsyncQueryHandler(context.getContentResolver());
+        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+        mCallList.setFilteredNumberQueryHandler(mFilteredQueryHandler);
+
+        Log.d(this, "Finished InCallPresenter.setUp");
+    }
+
+    /**
+     * Called when the telephony service has disconnected from us.  This will happen when there are
+     * no more active calls. However, we may still want to continue showing the UI for
+     * certain cases like showing "Call Ended".
+     * What we really want is to wait for the activity and the service to both disconnect before we
+     * tear things down. This method sets a serviceConnected boolean and calls a secondary method
+     * that performs the aforementioned logic.
+     */
+    public void tearDown() {
+        Log.d(this, "tearDown");
+        mCallList.clearOnDisconnect();
+
+        mServiceConnected = false;
+        attemptCleanup();
+
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        VideoPauseController.getInstance().tearDown();
+        InCallVideoCallCallbackNotifier.getInstance().removeSessionModificationListener(this);
+    }
+
+    private void attemptFinishActivity() {
+        final boolean doFinish = (mInCallActivity != null && isActivityStarted());
+        Log.i(this, "Hide in call UI: " + doFinish);
+        if (doFinish) {
+            mInCallActivity.setExcludeFromRecents(true);
+            mInCallActivity.finish();
+
+            if (mAccountSelectionCancelled) {
+                // This finish is a result of account selection cancellation
+                // do not include activity ending transition
+                mInCallActivity.overridePendingTransition(0, 0);
+            }
+        }
+    }
+
+    /**
+     * Called when the UI begins, and starts the callstate callbacks if necessary.
+     */
+    public void setActivity(InCallActivity inCallActivity) {
+        if (inCallActivity == null) {
+            throw new IllegalArgumentException("registerActivity cannot be called with null");
+        }
+        if (mInCallActivity != null && mInCallActivity != inCallActivity) {
+            Log.w(this, "Setting a second activity before destroying the first.");
+        }
+        updateActivity(inCallActivity);
+    }
+
+    /**
+     * Called when the UI ends. Attempts to tear down everything if necessary. See
+     * {@link #tearDown()} for more insight on the tear-down process.
+     */
+    public void unsetActivity(InCallActivity inCallActivity) {
+        if (inCallActivity == null) {
+            throw new IllegalArgumentException("unregisterActivity cannot be called with null");
+        }
+        if (mInCallActivity == null) {
+            Log.i(this, "No InCallActivity currently set, no need to unset.");
+            return;
+        }
+        if (mInCallActivity != inCallActivity) {
+            Log.w(this, "Second instance of InCallActivity is trying to unregister when another"
+                    + " instance is active. Ignoring.");
+            return;
+        }
+        updateActivity(null);
+    }
+
+    /**
+     * Updates the current instance of {@link InCallActivity} with the provided one. If a
+     * {@code null} activity is provided, it means that the activity was finished and we should
+     * attempt to cleanup.
+     */
+    private void updateActivity(InCallActivity inCallActivity) {
+        boolean updateListeners = false;
+        boolean doAttemptCleanup = false;
+
+        if (inCallActivity != null) {
+            if (mInCallActivity == null) {
+                updateListeners = true;
+                Log.i(this, "UI Initialized");
+            } else {
+                // since setActivity is called onStart(), it can be called multiple times.
+                // This is fine and ignorable, but we do not want to update the world every time
+                // this happens (like going to/from background) so we do not set updateListeners.
+            }
+
+            mInCallActivity = inCallActivity;
+            mInCallActivity.setExcludeFromRecents(false);
+
+            // By the time the UI finally comes up, the call may already be disconnected.
+            // If that's the case, we may need to show an error dialog.
+            if (mCallList != null && mCallList.getDisconnectedCall() != null) {
+                maybeShowErrorDialogOnDisconnect(mCallList.getDisconnectedCall());
+            }
+
+            // When the UI comes up, we need to first check the in-call state.
+            // If we are showing NO_CALLS, that means that a call probably connected and
+            // then immediately disconnected before the UI was able to come up.
+            // If we dont have any calls, start tearing down the UI instead.
+            // NOTE: This code relies on {@link #mInCallActivity} being set so we run it after
+            // it has been set.
+            if (mInCallState == InCallState.NO_CALLS) {
+                Log.i(this, "UI Initialized, but no calls left.  shut down.");
+                attemptFinishActivity();
+                return;
+            }
+        } else {
+            Log.i(this, "UI Destroyed");
+            updateListeners = true;
+            mInCallActivity = null;
+
+            // We attempt cleanup for the destroy case but only after we recalculate the state
+            // to see if we need to come back up or stay shut down. This is why we do the
+            // cleanup after the call to onCallListChange() instead of directly here.
+            doAttemptCleanup = true;
+        }
+
+        // Messages can come from the telephony layer while the activity is coming up
+        // and while the activity is going down.  So in both cases we need to recalculate what
+        // state we should be in after they complete.
+        // Examples: (1) A new incoming call could come in and then get disconnected before
+        //               the activity is created.
+        //           (2) All calls could disconnect and then get a new incoming call before the
+        //               activity is destroyed.
+        //
+        // b/1122139 - We previously had a check for mServiceConnected here as well, but there are
+        // cases where we need to recalculate the current state even if the service in not
+        // connected.  In particular the case where startOrFinish() is called while the app is
+        // already finish()ing. In that case, we skip updating the state with the knowledge that
+        // we will check again once the activity has finished. That means we have to recalculate the
+        // state here even if the service is disconnected since we may not have finished a state
+        // transition while finish()ing.
+        if (updateListeners) {
+            onCallListChange(mCallList);
+        }
+
+        if (doAttemptCleanup) {
+            attemptCleanup();
+        }
+    }
+
+    private boolean mAwaitingCallListUpdate = false;
+
+    public void onBringToForeground(boolean showDialpad) {
+        Log.i(this, "Bringing UI to foreground.");
+        bringToForeground(showDialpad);
+    }
+
+    public void onCallAdded(final android.telecom.Call call) {
+        // Check if call should be blocked.
+        if (!TelecomCallUtil.isEmergencyCall(call)
+                && !FilteredNumbersUtil.hasRecentEmergencyCall(mContext)
+                && call.getState() == android.telecom.Call.STATE_RINGING) {
+            maybeBlockCall(call);
+        } else {
+            mCallList.onCallAdded(call);
+        }
+
+        // Since a call has been added we are no longer waiting for Telecom to send us a call.
+        setBoundAndWaitingForOutgoingCall(false, null);
+        call.registerCallback(mCallCallback);
+    }
+
+    /**
+     * Checks whether a call should be blocked, and blocks it if so. Otherwise, it adds the call
+     * to the CallList so it can proceed as normal. There is a timeout, so if the function for
+     * checking whether a function is blocked does not return in a reasonable time, we proceed
+     * with adding the call anyways.
+     */
+    private void maybeBlockCall(final android.telecom.Call call) {
+        final String countryIso = GeoUtil.getCurrentCountryIso(mContext);
+        final String number = TelecomCallUtil.getNumber(call);
+        final long timeAdded = System.currentTimeMillis();
+
+        // Though AtomicBoolean's can be scary, don't fear, as in this case it is only used on the
+        // main UI thread. It is needed so we can change its value within different scopes, since
+        // that cannot be done with a final boolean.
+        final AtomicBoolean hasTimedOut = new AtomicBoolean(false);
+
+        final Handler handler = new Handler();
+
+        // Proceed if the query is slow; the call may still be blocked after the query returns.
+        final Runnable runnable = new Runnable() {
+            public void run() {
+                hasTimedOut.set(true);
+                mCallList.onCallAdded(call);
+            }
+        };
+        handler.postDelayed(runnable, BLOCK_QUERY_TIMEOUT_MS);
+
+        OnCheckBlockedListener onCheckBlockedListener = new OnCheckBlockedListener() {
+            @Override
+            public void onCheckComplete(final Integer id) {
+                if (!hasTimedOut.get()) {
+                    handler.removeCallbacks(runnable);
+                }
+                if (id == null) {
+                    if (!hasTimedOut.get()) {
+                        mCallList.onCallAdded(call);
+                    }
+                } else {
+                    call.reject(false, null);
+                    Log.d(this, "checkForBlockedCall: " + Log.pii(number) + " blocked.");
+                    Logger.logInteraction(InteractionEvent.CALL_BLOCKED);
+
+                    mFilteredQueryHandler.incrementFilteredCount(id);
+
+                    // Register observer to update the call log.
+                    // BlockedNumberContentObserver will unregister after successful log or timeout.
+                    BlockedNumberContentObserver contentObserver =
+                            new BlockedNumberContentObserver(new Handler(), number, timeAdded);
+                    contentObserver.register();
+                }
+            }
+        };
+
+        final boolean success = mFilteredQueryHandler.isBlockedNumber(
+                onCheckBlockedListener, number, countryIso);
+        if (!success) {
+            Log.d(this, "checkForBlockedCall: invalid number, skipping block checking");
+            if (!hasTimedOut.get()) {
+                handler.removeCallbacks(runnable);
+                mCallList.onCallAdded(call);
+            }
+        }
+    }
+
+    public void onCallRemoved(android.telecom.Call call) {
+        mCallList.onCallRemoved(call);
+        call.unregisterCallback(mCallCallback);
+    }
+
+    public void onCanAddCallChanged(boolean canAddCall) {
+        for (CanAddCallListener listener : mCanAddCallListeners) {
+            listener.onCanAddCallChanged(canAddCall);
+        }
+    }
+
+    /**
+     * Called when there is a change to the call list.
+     * Sets the In-Call state for the entire in-call app based on the information it gets from
+     * CallList. Dispatches the in-call state to all listeners. Can trigger the creation or
+     * destruction of the UI based on the states that is calculates.
+     */
+    @Override
+    public void onCallListChange(CallList callList) {
+        if (mInCallActivity != null && mInCallActivity.getCallCardFragment() != null &&
+                mInCallActivity.getCallCardFragment().isAnimating()) {
+            mAwaitingCallListUpdate = true;
+            return;
+        }
+        if (callList == null) {
+            return;
+        }
+
+        mAwaitingCallListUpdate = false;
+
+        InCallState newState = getPotentialStateFromCallList(callList);
+        InCallState oldState = mInCallState;
+        Log.d(this, "onCallListChange oldState= " + oldState + " newState=" + newState);
+        newState = startOrFinishUi(newState);
+        Log.d(this, "onCallListChange newState changed to " + newState);
+
+        // Set the new state before announcing it to the world
+        Log.i(this, "Phone switching state: " + oldState + " -> " + newState);
+        mInCallState = newState;
+
+        // notify listeners of new state
+        for (InCallStateListener listener : mListeners) {
+            Log.d(this, "Notify " + listener + " of state " + mInCallState.toString());
+            listener.onStateChange(oldState, mInCallState, callList);
+        }
+
+        if (isActivityStarted()) {
+            final boolean hasCall = callList.getActiveOrBackgroundCall() != null ||
+                    callList.getOutgoingCall() != null;
+            mInCallActivity.dismissKeyguard(hasCall);
+        }
+    }
+
+    /**
+     * Called when there is a new incoming call.
+     *
+     * @param call
+     */
+    @Override
+    public void onIncomingCall(Call call) {
+        InCallState newState = startOrFinishUi(InCallState.INCOMING);
+        InCallState oldState = mInCallState;
+
+        Log.i(this, "Phone switching state: " + oldState + " -> " + newState);
+        mInCallState = newState;
+
+        for (IncomingCallListener listener : mIncomingCallListeners) {
+            listener.onIncomingCall(oldState, mInCallState, call);
+        }
+    }
+
+    @Override
+    public void onUpgradeToVideo(Call call) {
+        //NO-OP
+    }
+    /**
+     * Called when a call becomes disconnected. Called everytime an existing call
+     * changes from being connected (incoming/outgoing/active) to disconnected.
+     */
+    @Override
+    public void onDisconnect(Call call) {
+        maybeShowErrorDialogOnDisconnect(call);
+
+        // We need to do the run the same code as onCallListChange.
+        onCallListChange(mCallList);
+
+        if (isActivityStarted()) {
+            mInCallActivity.dismissKeyguard(false);
+        }
+
+        if (call.isEmergencyCall()) {
+            FilteredNumbersUtil.recordLastEmergencyCallTime(mContext);
+        }
+    }
+
+    @Override
+    public void onUpgradeToVideoRequest(Call call, int videoState) {
+        Log.d(this, "onUpgradeToVideoRequest call = " + call + " video state = " + videoState);
+
+        if (call == null) {
+            return;
+        }
+
+        call.setRequestedVideoState(videoState);
+    }
+
+    /**
+     * Given the call list, return the state in which the in-call screen should be.
+     */
+    public InCallState getPotentialStateFromCallList(CallList callList) {
+
+        InCallState newState = InCallState.NO_CALLS;
+
+        if (callList == null) {
+            return newState;
+        }
+        if (callList.getIncomingCall() != null) {
+            newState = InCallState.INCOMING;
+        } else if (callList.getWaitingForAccountCall() != null) {
+            newState = InCallState.WAITING_FOR_ACCOUNT;
+        } else if (callList.getPendingOutgoingCall() != null) {
+            newState = InCallState.PENDING_OUTGOING;
+        } else if (callList.getOutgoingCall() != null) {
+            newState = InCallState.OUTGOING;
+        } else if (callList.getActiveCall() != null ||
+                callList.getBackgroundCall() != null ||
+                callList.getDisconnectedCall() != null ||
+                callList.getDisconnectingCall() != null) {
+            newState = InCallState.INCALL;
+        }
+
+        if (newState == InCallState.NO_CALLS) {
+            if (mBoundAndWaitingForOutgoingCall) {
+                return InCallState.OUTGOING;
+            }
+        }
+
+        return newState;
+    }
+
+    public boolean isBoundAndWaitingForOutgoingCall() {
+        return mBoundAndWaitingForOutgoingCall;
+    }
+
+    public void setBoundAndWaitingForOutgoingCall(boolean isBound, PhoneAccountHandle handle) {
+        // NOTE: It is possible for there to be a race and have handle become null before
+        // the circular reveal starts. This should not cause any problems because CallCardFragment
+        // should fallback to the actual call in the CallList at that point in time to determine
+        // the theme color.
+        Log.i(this, "setBoundAndWaitingForOutgoingCall: " + isBound);
+        mBoundAndWaitingForOutgoingCall = isBound;
+        mPendingPhoneAccountHandle = handle;
+        if (isBound && mInCallState == InCallState.NO_CALLS) {
+            mInCallState = InCallState.OUTGOING;
+        }
+    }
+
+    @Override
+    public void onCircularRevealComplete(FragmentManager fm) {
+        if (mInCallActivity != null) {
+            mInCallActivity.showCallCardFragment(true);
+            mInCallActivity.getCallCardFragment().animateForNewOutgoingCall();
+            CircularRevealFragment.endCircularReveal(mInCallActivity.getFragmentManager());
+        }
+    }
+
+    public void onShrinkAnimationComplete() {
+        if (mAwaitingCallListUpdate) {
+            onCallListChange(mCallList);
+        }
+    }
+
+    public void addIncomingCallListener(IncomingCallListener listener) {
+        Preconditions.checkNotNull(listener);
+        mIncomingCallListeners.add(listener);
+    }
+
+    public void removeIncomingCallListener(IncomingCallListener listener) {
+        if (listener != null) {
+            mIncomingCallListeners.remove(listener);
+        }
+    }
+
+    public void addListener(InCallStateListener listener) {
+        Preconditions.checkNotNull(listener);
+        mListeners.add(listener);
+    }
+
+    public void removeListener(InCallStateListener listener) {
+        if (listener != null) {
+            mListeners.remove(listener);
+        }
+    }
+
+    public void addDetailsListener(InCallDetailsListener listener) {
+        Preconditions.checkNotNull(listener);
+        mDetailsListeners.add(listener);
+    }
+
+    public void removeDetailsListener(InCallDetailsListener listener) {
+        if (listener != null) {
+            mDetailsListeners.remove(listener);
+        }
+    }
+
+    public void addCanAddCallListener(CanAddCallListener listener) {
+        Preconditions.checkNotNull(listener);
+        mCanAddCallListeners.add(listener);
+    }
+
+    public void removeCanAddCallListener(CanAddCallListener listener) {
+        if (listener != null) {
+            mCanAddCallListeners.remove(listener);
+        }
+    }
+
+    public void addOrientationListener(InCallOrientationListener listener) {
+        Preconditions.checkNotNull(listener);
+        mOrientationListeners.add(listener);
+    }
+
+    public void removeOrientationListener(InCallOrientationListener listener) {
+        if (listener != null) {
+            mOrientationListeners.remove(listener);
+        }
+    }
+
+    public void addInCallEventListener(InCallEventListener listener) {
+        Preconditions.checkNotNull(listener);
+        mInCallEventListeners.add(listener);
+    }
+
+    public void removeInCallEventListener(InCallEventListener listener) {
+        if (listener != null) {
+            mInCallEventListeners.remove(listener);
+        }
+    }
+
+    public ProximitySensor getProximitySensor() {
+        return mProximitySensor;
+    }
+
+    public void handleAccountSelection(PhoneAccountHandle accountHandle, boolean setDefault) {
+        if (mCallList != null) {
+            Call call = mCallList.getWaitingForAccountCall();
+            if (call != null) {
+                String callId = call.getId();
+                TelecomAdapter.getInstance().phoneAccountSelected(callId, accountHandle, setDefault);
+            }
+        }
+    }
+
+    public void cancelAccountSelection() {
+        mAccountSelectionCancelled = true;
+        if (mCallList != null) {
+            Call call = mCallList.getWaitingForAccountCall();
+            if (call != null) {
+                String callId = call.getId();
+                TelecomAdapter.getInstance().disconnectCall(callId);
+            }
+        }
+    }
+
+    /**
+     * Hangs up any active or outgoing calls.
+     */
+    public void hangUpOngoingCall(Context context) {
+        // By the time we receive this intent, we could be shut down and call list
+        // could be null.  Bail in those cases.
+        if (mCallList == null) {
+            if (mStatusBarNotifier == null) {
+                // The In Call UI has crashed but the notification still stayed up. We should not
+                // come to this stage.
+                StatusBarNotifier.clearAllCallNotifications(context);
+            }
+            return;
+        }
+
+        Call call = mCallList.getOutgoingCall();
+        if (call == null) {
+            call = mCallList.getActiveOrBackgroundCall();
+        }
+
+        if (call != null) {
+            TelecomAdapter.getInstance().disconnectCall(call.getId());
+            call.setState(Call.State.DISCONNECTING);
+            mCallList.onUpdate(call);
+        }
+    }
+
+    /**
+     * Answers any incoming call.
+     */
+    public void answerIncomingCall(Context context, int videoState) {
+        // By the time we receive this intent, we could be shut down and call list
+        // could be null.  Bail in those cases.
+        if (mCallList == null) {
+            StatusBarNotifier.clearAllCallNotifications(context);
+            return;
+        }
+
+        Call call = mCallList.getIncomingCall();
+        if (call != null) {
+            TelecomAdapter.getInstance().answerCall(call.getId(), videoState);
+            showInCall(false, false/* newOutgoingCall */);
+        }
+    }
+
+    /**
+     * Declines any incoming call.
+     */
+    public void declineIncomingCall(Context context) {
+        // By the time we receive this intent, we could be shut down and call list
+        // could be null.  Bail in those cases.
+        if (mCallList == null) {
+            StatusBarNotifier.clearAllCallNotifications(context);
+            return;
+        }
+
+        Call call = mCallList.getIncomingCall();
+        if (call != null) {
+            TelecomAdapter.getInstance().rejectCall(call.getId(), false, null);
+        }
+    }
+
+    public void acceptUpgradeRequest(int videoState, Context context) {
+        Log.d(this, " acceptUpgradeRequest videoState " + videoState);
+        // Bail if we have been shut down and the call list is null.
+        if (mCallList == null) {
+            StatusBarNotifier.clearAllCallNotifications(context);
+            Log.e(this, " acceptUpgradeRequest mCallList is empty so returning");
+            return;
+        }
+
+        Call call = mCallList.getVideoUpgradeRequestCall();
+        if (call != null) {
+            VideoProfile videoProfile = new VideoProfile(videoState);
+            call.getVideoCall().sendSessionModifyResponse(videoProfile);
+            call.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
+        }
+    }
+
+    public void declineUpgradeRequest(Context context) {
+        Log.d(this, " declineUpgradeRequest");
+        // Bail if we have been shut down and the call list is null.
+        if (mCallList == null) {
+            StatusBarNotifier.clearAllCallNotifications(context);
+            Log.e(this, " declineUpgradeRequest mCallList is empty so returning");
+            return;
+        }
+
+        Call call = mCallList.getVideoUpgradeRequestCall();
+        if (call != null) {
+            VideoProfile videoProfile =
+                    new VideoProfile(call.getVideoState());
+            call.getVideoCall().sendSessionModifyResponse(videoProfile);
+            call.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
+        }
+    }
+
+    /*package*/
+    void declineUpgradeRequest() {
+        // Pass mContext if InCallActivity is destroyed.
+        // Ex: When user pressed back key while in active call and
+        // then modify request is received followed by MT call.
+        declineUpgradeRequest(mInCallActivity != null ? mInCallActivity : mContext);
+    }
+
+    /**
+     * Returns true if the incall app is the foreground application.
+     */
+    public boolean isShowingInCallUi() {
+        return (isActivityStarted() && mInCallActivity.isVisible());
+    }
+
+    /**
+     * Returns true if the activity has been created and is running.
+     * Returns true as long as activity is not destroyed or finishing.  This ensures that we return
+     * true even if the activity is paused (not in foreground).
+     */
+    public boolean isActivityStarted() {
+        return (mInCallActivity != null &&
+                !mInCallActivity.isDestroyed() &&
+                !mInCallActivity.isFinishing());
+    }
+
+    public boolean isActivityPreviouslyStarted() {
+        return mIsActivityPreviouslyStarted;
+    }
+
+    /**
+     * Determines if the In-Call app is currently changing configuration.
+     *
+     * @return {@code true} if the In-Call app is changing configuration.
+     */
+    public boolean isChangingConfigurations() {
+        return mIsChangingConfigurations;
+    }
+
+    /**
+     * Tracks whether the In-Call app is currently in the process of changing configuration (i.e.
+     * screen orientation).
+     */
+    /*package*/
+    void updateIsChangingConfigurations() {
+        mIsChangingConfigurations = false;
+        if (mInCallActivity != null) {
+            mIsChangingConfigurations = mInCallActivity.isChangingConfigurations();
+        }
+        Log.v(this, "updateIsChangingConfigurations = " + mIsChangingConfigurations);
+    }
+
+
+    /**
+     * Called when the activity goes in/out of the foreground.
+     */
+    public void onUiShowing(boolean showing) {
+        // We need to update the notification bar when we leave the UI because that
+        // could trigger it to show again.
+        if (mStatusBarNotifier != null) {
+            mStatusBarNotifier.updateNotification(mInCallState, mCallList);
+        }
+
+        if (mProximitySensor != null) {
+            mProximitySensor.onInCallShowing(showing);
+        }
+
+        Intent broadcastIntent = ObjectFactory.getUiReadyBroadcastIntent(mContext);
+        if (broadcastIntent != null) {
+            broadcastIntent.putExtra(EXTRA_FIRST_TIME_SHOWN, !mIsActivityPreviouslyStarted);
+
+            if (showing) {
+                Log.d(this, "Sending sticky broadcast: ", broadcastIntent);
+                mContext.sendStickyBroadcast(broadcastIntent);
+            } else {
+                Log.d(this, "Removing sticky broadcast: ", broadcastIntent);
+                mContext.removeStickyBroadcast(broadcastIntent);
+            }
+        }
+
+        if (showing) {
+            mIsActivityPreviouslyStarted = true;
+        } else {
+            updateIsChangingConfigurations();
+        }
+
+        for (InCallUiListener listener : mInCallUiListeners) {
+            listener.onUiShowing(showing);
+        }
+    }
+
+    public void addInCallUiListener(InCallUiListener listener) {
+        mInCallUiListeners.add(listener);
+    }
+
+    public boolean removeInCallUiListener(InCallUiListener listener) {
+        return mInCallUiListeners.remove(listener);
+    }
+
+    /*package*/
+    void onActivityStarted() {
+        Log.d(this, "onActivityStarted");
+        notifyVideoPauseController(true);
+    }
+
+    /*package*/
+    void onActivityStopped() {
+        Log.d(this, "onActivityStopped");
+        notifyVideoPauseController(false);
+    }
+
+    private void notifyVideoPauseController(boolean showing) {
+        Log.d(this, "notifyVideoPauseController: mIsChangingConfigurations=" +
+                mIsChangingConfigurations);
+        if (!mIsChangingConfigurations) {
+            VideoPauseController.getInstance().onUiShowing(showing);
+        }
+    }
+
+    /**
+     * Brings the app into the foreground if possible.
+     */
+    public void bringToForeground(boolean showDialpad) {
+        // Before we bring the incall UI to the foreground, we check to see if:
+        // 1. It is not currently in the foreground
+        // 2. We are in a state where we want to show the incall ui (i.e. there are calls to
+        // be displayed)
+        // If the activity hadn't actually been started previously, yet there are still calls
+        // present (e.g. a call was accepted by a bluetooth or wired headset), we want to
+        // bring it up the UI regardless.
+        if (!isShowingInCallUi() && mInCallState != InCallState.NO_CALLS) {
+            showInCall(showDialpad, false /* newOutgoingCall */);
+        }
+    }
+
+    public void onPostDialCharWait(String callId, String chars) {
+        if (isActivityStarted()) {
+            mInCallActivity.showPostCharWaitDialog(callId, chars);
+        }
+    }
+
+    /**
+     * Handles the green CALL key while in-call.
+     * @return true if we consumed the event.
+     */
+    public boolean handleCallKey() {
+        Log.v(this, "handleCallKey");
+
+        // The green CALL button means either "Answer", "Unhold", or
+        // "Swap calls", or can be a no-op, depending on the current state
+        // of the Phone.
+
+        /**
+         * INCOMING CALL
+         */
+        final CallList calls = mCallList;
+        final Call incomingCall = calls.getIncomingCall();
+        Log.v(this, "incomingCall: " + incomingCall);
+
+        // (1) Attempt to answer a call
+        if (incomingCall != null) {
+            TelecomAdapter.getInstance().answerCall(
+                    incomingCall.getId(), VideoProfile.STATE_AUDIO_ONLY);
+            return true;
+        }
+
+        /**
+         * STATE_ACTIVE CALL
+         */
+        final Call activeCall = calls.getActiveCall();
+        if (activeCall != null) {
+            // TODO: This logic is repeated from CallButtonPresenter.java. We should
+            // consolidate this logic.
+            final boolean canMerge = activeCall.can(
+                    android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
+            final boolean canSwap = activeCall.can(
+                    android.telecom.Call.Details.CAPABILITY_SWAP_CONFERENCE);
+
+            Log.v(this, "activeCall: " + activeCall + ", canMerge: " + canMerge +
+                    ", canSwap: " + canSwap);
+
+            // (2) Attempt actions on conference calls
+            if (canMerge) {
+                TelecomAdapter.getInstance().merge(activeCall.getId());
+                return true;
+            } else if (canSwap) {
+                TelecomAdapter.getInstance().swap(activeCall.getId());
+                return true;
+            }
+        }
+
+        /**
+         * BACKGROUND CALL
+         */
+        final Call heldCall = calls.getBackgroundCall();
+        if (heldCall != null) {
+            // We have a hold call so presumeable it will always support HOLD...but
+            // there is no harm in double checking.
+            final boolean canHold = heldCall.can(android.telecom.Call.Details.CAPABILITY_HOLD);
+
+            Log.v(this, "heldCall: " + heldCall + ", canHold: " + canHold);
+
+            // (4) unhold call
+            if (heldCall.getState() == Call.State.ONHOLD && canHold) {
+                TelecomAdapter.getInstance().unholdCall(heldCall.getId());
+                return true;
+            }
+        }
+
+        // Always consume hard keys
+        return true;
+    }
+
+    /**
+     * A dialog could have prevented in-call screen from being previously finished.
+     * This function checks to see if there should be any UI left and if not attempts
+     * to tear down the UI.
+     */
+    public void onDismissDialog() {
+        Log.i(this, "Dialog dismissed");
+        if (mInCallState == InCallState.NO_CALLS) {
+            attemptFinishActivity();
+            attemptCleanup();
+        }
+    }
+
+    /**
+     * Toggles whether the application is in fullscreen mode or not.
+     *
+     * @return {@code true} if in-call is now in fullscreen mode.
+     */
+    public boolean toggleFullscreenMode() {
+        boolean isFullScreen = !mIsFullScreen;
+        Log.v(this, "toggleFullscreenMode = " + isFullScreen);
+        setFullScreen(isFullScreen);
+        return mIsFullScreen;
+    }
+
+    /**
+     * Clears the previous fullscreen state.
+     */
+    public void clearFullscreen() {
+        mIsFullScreen = false;
+    }
+
+    /**
+     * Changes the fullscreen mode of the in-call UI.
+     *
+     * @param isFullScreen {@code true} if in-call should be in fullscreen mode, {@code false}
+     *                                 otherwise.
+     */
+    public void setFullScreen(boolean isFullScreen) {
+        setFullScreen(isFullScreen, false /* force */);
+    }
+
+    /**
+     * Changes the fullscreen mode of the in-call UI.
+     *
+     * @param isFullScreen {@code true} if in-call should be in fullscreen mode, {@code false}
+     *                                 otherwise.
+     * @param force {@code true} if fullscreen mode should be set regardless of its current state.
+     */
+    public void setFullScreen(boolean isFullScreen, boolean force) {
+        Log.v(this, "setFullScreen = " + isFullScreen);
+
+        // As a safeguard, ensure we cannot enter fullscreen if the dialpad is shown.
+        if (isDialpadVisible()) {
+            isFullScreen = false;
+            Log.v(this, "setFullScreen overridden as dialpad is shown = " + isFullScreen);
+        }
+
+        if (mIsFullScreen == isFullScreen && !force) {
+            Log.v(this, "setFullScreen ignored as already in that state.");
+            return;
+        }
+        mIsFullScreen = isFullScreen;
+        notifyFullscreenModeChange(mIsFullScreen);
+    }
+
+    /**
+     * @return {@code true} if the in-call ui is currently in fullscreen mode, {@code false}
+     * otherwise.
+     */
+    public boolean isFullscreen() {
+        return mIsFullScreen;
+    }
+
+
+    /**
+     * Called by the {@link VideoCallPresenter} to inform of a change in full screen video status.
+     *
+     * @param isFullscreenMode {@code True} if entering full screen mode.
+     */
+    public void notifyFullscreenModeChange(boolean isFullscreenMode) {
+        for (InCallEventListener listener : mInCallEventListeners) {
+            listener.onFullscreenModeChanged(isFullscreenMode);
+        }
+    }
+
+    /**
+     * Called by the {@link CallCardPresenter} to inform of a change in visibility of the secondary
+     * caller info bar.
+     *
+     * @param isVisible {@code true} if the secondary caller info is visible, {@code false}
+     *      otherwise.
+     * @param height the height of the secondary caller info bar.
+     */
+    public void notifySecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        for (InCallEventListener listener : mInCallEventListeners) {
+            listener.onSecondaryCallerInfoVisibilityChanged(isVisible, height);
+        }
+    }
+
+
+    /**
+     * For some disconnected causes, we show a dialog.  This calls into the activity to show
+     * the dialog if appropriate for the call.
+     */
+    private void maybeShowErrorDialogOnDisconnect(Call call) {
+        // For newly disconnected calls, we may want to show a dialog on specific error conditions
+        if (isActivityStarted() && call.getState() == Call.State.DISCONNECTED) {
+            if (call.getAccountHandle() == null && !call.isConferenceCall()) {
+                setDisconnectCauseForMissingAccounts(call);
+            }
+            mInCallActivity.maybeShowErrorDialogOnDisconnect(call.getDisconnectCause());
+        }
+    }
+
+    /**
+     * When the state of in-call changes, this is the first method to get called. It determines if
+     * the UI needs to be started or finished depending on the new state and does it.
+     */
+    private InCallState startOrFinishUi(InCallState newState) {
+        Log.d(this, "startOrFinishUi: " + mInCallState + " -> " + newState);
+
+        // TODO: Consider a proper state machine implementation
+
+        // If the state isn't changing we have already done any starting/stopping of activities in
+        // a previous pass...so lets cut out early
+        if (newState == mInCallState) {
+            return newState;
+        }
+
+        // A new Incoming call means that the user needs to be notified of the the call (since
+        // it wasn't them who initiated it).  We do this through full screen notifications and
+        // happens indirectly through {@link StatusBarNotifier}.
+        //
+        // The process for incoming calls is as follows:
+        //
+        // 1) CallList          - Announces existence of new INCOMING call
+        // 2) InCallPresenter   - Gets announcement and calculates that the new InCallState
+        //                      - should be set to INCOMING.
+        // 3) InCallPresenter   - This method is called to see if we need to start or finish
+        //                        the app given the new state.
+        // 4) StatusBarNotifier - Listens to InCallState changes. InCallPresenter calls
+        //                        StatusBarNotifier explicitly to issue a FullScreen Notification
+        //                        that will either start the InCallActivity or show the user a
+        //                        top-level notification dialog if the user is in an immersive app.
+        //                        That notification can also start the InCallActivity.
+        // 5) InCallActivity    - Main activity starts up and at the end of its onCreate will
+        //                        call InCallPresenter::setActivity() to let the presenter
+        //                        know that start-up is complete.
+        //
+        //          [ AND NOW YOU'RE IN THE CALL. voila! ]
+        //
+        // Our app is started using a fullScreen notification.  We need to do this whenever
+        // we get an incoming call. Depending on the current context of the device, either a
+        // incoming call HUN or the actual InCallActivity will be shown.
+        final boolean startIncomingCallSequence = (InCallState.INCOMING == newState);
+
+        // A dialog to show on top of the InCallUI to select a PhoneAccount
+        final boolean showAccountPicker = (InCallState.WAITING_FOR_ACCOUNT == newState);
+
+        // A new outgoing call indicates that the user just now dialed a number and when that
+        // happens we need to display the screen immediately or show an account picker dialog if
+        // no default is set. However, if the main InCallUI is already visible, we do not want to
+        // re-initiate the start-up animation, so we do not need to do anything here.
+        //
+        // It is also possible to go into an intermediate state where the call has been initiated
+        // but Telecom has not yet returned with the details of the call (handle, gateway, etc.).
+        // This pending outgoing state can also launch the call screen.
+        //
+        // This is different from the incoming call sequence because we do not need to shock the
+        // user with a top-level notification.  Just show the call UI normally.
+        final boolean mainUiNotVisible = !isShowingInCallUi() || !getCallCardFragmentVisible();
+        boolean showCallUi = InCallState.OUTGOING == newState && mainUiNotVisible;
+
+        // Direct transition from PENDING_OUTGOING -> INCALL means that there was an error in the
+        // outgoing call process, so the UI should be brought up to show an error dialog.
+        showCallUi |= (InCallState.PENDING_OUTGOING == mInCallState
+                && InCallState.INCALL == newState && !isShowingInCallUi());
+
+        // Another exception - InCallActivity is in charge of disconnecting a call with no
+        // valid accounts set. Bring the UI up if this is true for the current pending outgoing
+        // call so that:
+        // 1) The call can be disconnected correctly
+        // 2) The UI comes up and correctly displays the error dialog.
+        // TODO: Remove these special case conditions by making InCallPresenter a true state
+        // machine. Telecom should also be the component responsible for disconnecting a call
+        // with no valid accounts.
+        showCallUi |= InCallState.PENDING_OUTGOING == newState && mainUiNotVisible
+                && isCallWithNoValidAccounts(mCallList.getPendingOutgoingCall());
+
+        // The only time that we have an instance of mInCallActivity and it isn't started is
+        // when it is being destroyed.  In that case, lets avoid bringing up another instance of
+        // the activity.  When it is finally destroyed, we double check if we should bring it back
+        // up so we aren't going to lose anything by avoiding a second startup here.
+        boolean activityIsFinishing = mInCallActivity != null && !isActivityStarted();
+        if (activityIsFinishing) {
+            Log.i(this, "Undo the state change: " + newState + " -> " + mInCallState);
+            return mInCallState;
+        }
+
+        if (showCallUi || showAccountPicker) {
+            Log.i(this, "Start in call UI");
+            showInCall(false /* showDialpad */, !showAccountPicker /* newOutgoingCall */);
+        } else if (startIncomingCallSequence) {
+            Log.i(this, "Start Full Screen in call UI");
+
+            // We're about the bring up the in-call UI for an incoming call. If we still have
+            // dialogs up, we need to clear them out before showing incoming screen.
+            if (isActivityStarted()) {
+                mInCallActivity.dismissPendingDialogs();
+            }
+            if (!startUi(newState)) {
+                // startUI refused to start the UI. This indicates that it needed to restart the
+                // activity.  When it finally restarts, it will call us back, so we do not actually
+                // change the state yet (we return mInCallState instead of newState).
+                return mInCallState;
+            }
+        } else if (newState == InCallState.NO_CALLS) {
+            // The new state is the no calls state.  Tear everything down.
+            attemptFinishActivity();
+            attemptCleanup();
+        }
+
+        return newState;
+    }
+
+    /**
+     * Determines whether or not a call has no valid phone accounts that can be used to make the
+     * call with. Emergency calls do not require a phone account.
+     *
+     * @param call to check accounts for.
+     * @return {@code true} if the call has no call capable phone accounts set, {@code false} if
+     * the call contains a phone account that could be used to initiate it with, or is an emergency
+     * call.
+     */
+    public static boolean isCallWithNoValidAccounts(Call call) {
+        if (call != null && !call.isEmergencyCall()) {
+            Bundle extras = call.getIntentExtras();
+
+            if (extras == null) {
+                extras = EMPTY_EXTRAS;
+            }
+
+            final List<PhoneAccountHandle> phoneAccountHandles = extras
+                    .getParcelableArrayList(android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS);
+
+            if ((call.getAccountHandle() == null &&
+                    (phoneAccountHandles == null || phoneAccountHandles.isEmpty()))) {
+                Log.i(InCallPresenter.getInstance(), "No valid accounts for call " + call);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Sets the DisconnectCause for a call that was disconnected because it was missing a
+     * PhoneAccount or PhoneAccounts to select from.
+     * @param call
+     */
+    private void setDisconnectCauseForMissingAccounts(Call call) {
+        android.telecom.Call telecomCall = call.getTelecomCall();
+
+        Bundle extras = telecomCall.getDetails().getIntentExtras();
+        // Initialize the extras bundle to avoid NPE
+        if (extras == null) {
+            extras = new Bundle();
+        }
+
+        final List<PhoneAccountHandle> phoneAccountHandles = extras.getParcelableArrayList(
+                android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS);
+
+        if (phoneAccountHandles == null || phoneAccountHandles.isEmpty()) {
+            String scheme = telecomCall.getDetails().getHandle().getScheme();
+            final String errorMsg = PhoneAccount.SCHEME_TEL.equals(scheme) ?
+                    mContext.getString(R.string.callFailed_simError) :
+                        mContext.getString(R.string.incall_error_supp_service_unknown);
+            DisconnectCause disconnectCause =
+                    new DisconnectCause(DisconnectCause.ERROR, null, errorMsg, errorMsg);
+            call.setDisconnectCause(disconnectCause);
+        }
+    }
+
+    private boolean startUi(InCallState inCallState) {
+        boolean isCallWaiting = mCallList.getActiveCall() != null &&
+                mCallList.getIncomingCall() != null;
+
+        // If the screen is off, we need to make sure it gets turned on for incoming calls.
+        // This normally works just fine thanks to FLAG_TURN_SCREEN_ON but that only works
+        // when the activity is first created. Therefore, to ensure the screen is turned on
+        // for the call waiting case, we finish() the current activity and start a new one.
+        // There should be no jank from this since the screen is already off and will remain so
+        // until our new activity is up.
+
+        if (isCallWaiting) {
+            if (mProximitySensor.isScreenReallyOff() && isActivityStarted()) {
+                Log.i(this, "Restarting InCallActivity to turn screen on for call waiting");
+                mInCallActivity.finish();
+                // When the activity actually finishes, we will start it again if there are
+                // any active calls, so we do not need to start it explicitly here. Note, we
+                // actually get called back on this function to restart it.
+
+                // We return false to indicate that we did not actually start the UI.
+                return false;
+            } else {
+                showInCall(false, false);
+            }
+        } else {
+            mStatusBarNotifier.updateNotification(inCallState, mCallList);
+        }
+        return true;
+    }
+
+    /**
+     * Checks to see if both the UI is gone and the service is disconnected. If so, tear it all
+     * down.
+     */
+    private void attemptCleanup() {
+        boolean shouldCleanup = (mInCallActivity == null && !mServiceConnected &&
+                mInCallState == InCallState.NO_CALLS);
+        Log.i(this, "attemptCleanup? " + shouldCleanup);
+
+        if (shouldCleanup) {
+            mIsActivityPreviouslyStarted = false;
+            mIsChangingConfigurations = false;
+
+            // blow away stale contact info so that we get fresh data on
+            // the next set of calls
+            if (mContactInfoCache != null) {
+                mContactInfoCache.clearCache();
+            }
+            mContactInfoCache = null;
+
+            if (mProximitySensor != null) {
+                removeListener(mProximitySensor);
+                mProximitySensor.tearDown();
+            }
+            mProximitySensor = null;
+
+            mAudioModeProvider = null;
+
+            if (mStatusBarNotifier != null) {
+                removeListener(mStatusBarNotifier);
+            }
+            mStatusBarNotifier = null;
+
+            if (mCallList != null) {
+                mCallList.removeListener(this);
+            }
+            mCallList = null;
+
+            mContext = null;
+            mInCallActivity = null;
+
+            mListeners.clear();
+            mIncomingCallListeners.clear();
+            mDetailsListeners.clear();
+            mCanAddCallListeners.clear();
+            mOrientationListeners.clear();
+            mInCallEventListeners.clear();
+
+            Log.d(this, "Finished InCallPresenter.CleanUp");
+        }
+    }
+
+    public void showInCall(final boolean showDialpad, final boolean newOutgoingCall) {
+        Log.i(this, "Showing InCallActivity");
+        mContext.startActivity(getInCallIntent(showDialpad, newOutgoingCall));
+    }
+
+    public void onServiceBind() {
+        mServiceBound = true;
+    }
+
+    public void onServiceUnbind() {
+        InCallPresenter.getInstance().setBoundAndWaitingForOutgoingCall(false, null);
+        mServiceBound = false;
+    }
+
+    public boolean isServiceBound() {
+        return mServiceBound;
+    }
+
+    public void maybeStartRevealAnimation(Intent intent) {
+        if (intent == null || mInCallActivity != null) {
+            return;
+        }
+        final Bundle extras = intent.getBundleExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS);
+        if (extras == null) {
+            // Incoming call, just show the in-call UI directly.
+            return;
+        }
+
+        if (extras.containsKey(android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS)) {
+            // Account selection dialog will show up so don't show the animation.
+            return;
+        }
+
+        final PhoneAccountHandle accountHandle =
+                intent.getParcelableExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE);
+        final Point touchPoint = extras.getParcelable(TouchPointManager.TOUCH_POINT);
+
+        InCallPresenter.getInstance().setBoundAndWaitingForOutgoingCall(true, accountHandle);
+
+        final Intent incallIntent = getInCallIntent(false, true);
+        incallIntent.putExtra(TouchPointManager.TOUCH_POINT, touchPoint);
+        mContext.startActivity(incallIntent);
+    }
+
+    public Intent getInCallIntent(boolean showDialpad, boolean newOutgoingCall) {
+        final Intent intent = new Intent(Intent.ACTION_MAIN, null);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        intent.setClass(mContext, InCallActivity.class);
+        if (showDialpad) {
+            intent.putExtra(InCallActivity.SHOW_DIALPAD_EXTRA, true);
+        }
+        intent.putExtra(InCallActivity.NEW_OUTGOING_CALL_EXTRA, newOutgoingCall);
+        return intent;
+    }
+
+    /**
+     * Retrieves the current in-call camera manager instance, creating if necessary.
+     *
+     * @return The {@link InCallCameraManager}.
+     */
+    public InCallCameraManager getInCallCameraManager() {
+        synchronized(this) {
+            if (mInCallCameraManager == null) {
+                mInCallCameraManager = new InCallCameraManager(mContext);
+            }
+
+            return mInCallCameraManager;
+        }
+    }
+
+    /**
+     * Notifies listeners of changes in orientation and notify calls of rotation angle change.
+     *
+     * @param orientation The screen orientation of the device (one of:
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
+     */
+    public void onDeviceOrientationChange(int orientation) {
+        Log.d(this, "onDeviceOrientationChange: orientation= " + orientation);
+
+        if (mCallList != null) {
+            mCallList.notifyCallsOfDeviceRotation(orientation);
+        } else {
+            Log.w(this, "onDeviceOrientationChange: CallList is null.");
+        }
+
+        // Notify listeners of device orientation changed.
+        for (InCallOrientationListener listener : mOrientationListeners) {
+            listener.onDeviceOrientationChanged(orientation);
+        }
+    }
+
+    /**
+     * Configures the in-call UI activity so it can change orientations or not. Enables the
+     * orientation event listener if allowOrientationChange is true, disables it if false.
+     *
+     * @param allowOrientationChange {@code True} if the in-call UI can change between portrait
+     *      and landscape.  {@Code False} if the in-call UI should be locked in portrait.
+     */
+    public void setInCallAllowsOrientationChange(boolean allowOrientationChange) {
+        if (mInCallActivity == null) {
+            Log.e(this, "InCallActivity is null. Can't set requested orientation.");
+            return;
+        }
+
+        if (!allowOrientationChange) {
+            mInCallActivity.setRequestedOrientation(
+                    InCallOrientationEventListener.NO_SENSOR_SCREEN_ORIENTATION);
+        } else {
+            // Using SCREEN_ORIENTATION_FULL_SENSOR allows for reverse-portrait orientation, where
+            // SCREEN_ORIENTATION_SENSOR does not.
+            mInCallActivity.setRequestedOrientation(
+                    InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION);
+        }
+        mInCallActivity.enableInCallOrientationEventListener(allowOrientationChange);
+    }
+
+    public void enableScreenTimeout(boolean enable) {
+        Log.v(this, "enableScreenTimeout: value=" + enable);
+        if (mInCallActivity == null) {
+            Log.e(this, "enableScreenTimeout: InCallActivity is null.");
+            return;
+        }
+
+        final Window window = mInCallActivity.getWindow();
+        if (enable) {
+            window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        } else {
+            window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        }
+    }
+
+    /**
+     * Returns the space available beside the call card.
+     *
+     * @return The space beside the call card.
+     */
+    public float getSpaceBesideCallCard() {
+        if (mInCallActivity != null && mInCallActivity.getCallCardFragment() != null) {
+            return mInCallActivity.getCallCardFragment().getSpaceBesideCallCard();
+        }
+        return 0;
+    }
+
+    /**
+     * Returns whether the call card fragment is currently visible.
+     *
+     * @return True if the call card fragment is visible.
+     */
+    public boolean getCallCardFragmentVisible() {
+        if (mInCallActivity != null && mInCallActivity.getCallCardFragment() != null) {
+            return mInCallActivity.getCallCardFragment().isVisible();
+        }
+        return false;
+    }
+
+    /**
+     * Hides or shows the conference manager fragment.
+     *
+     * @param show {@code true} if the conference manager should be shown, {@code false} if it
+     *                         should be hidden.
+     */
+    public void showConferenceCallManager(boolean show) {
+        if (mInCallActivity == null) {
+            return;
+        }
+
+        mInCallActivity.showConferenceFragment(show);
+    }
+
+    /**
+     * Determines if the dialpad is visible.
+     *
+     * @return {@code true} if the dialpad is visible, {@code false} otherwise.
+     */
+    public boolean isDialpadVisible() {
+        if (mInCallActivity == null) {
+            return false;
+        }
+        return mInCallActivity.isDialpadVisible();
+    }
+
+    /**
+     * @return True if the application is currently running in a right-to-left locale.
+     */
+    public static boolean isRtl() {
+        return TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) ==
+                View.LAYOUT_DIRECTION_RTL;
+    }
+
+    /**
+     * Extract background color from call object. The theme colors will include a primary color
+     * and a secondary color.
+     */
+    public void setThemeColors() {
+        // This method will set the background to default if the color is PhoneAccount.NO_COLOR.
+        mThemeColors = getColorsFromCall(mCallList.getFirstCall());
+
+        if (mInCallActivity == null) {
+            return;
+        }
+
+        final Resources resources = mInCallActivity.getResources();
+        final int color;
+        if (resources.getBoolean(R.bool.is_layout_landscape)) {
+            // TODO use ResourcesCompat.getColor(Resources, int, Resources.Theme) when available
+            // {@link Resources#getColor(int)} used for compatibility
+            color = resources.getColor(R.color.statusbar_background_color);
+        } else {
+            color = mThemeColors.mSecondaryColor;
+        }
+
+        mInCallActivity.getWindow().setStatusBarColor(color);
+        final TaskDescription td = new TaskDescription(
+                resources.getString(R.string.notification_ongoing_call), null, color);
+        mInCallActivity.setTaskDescription(td);
+    }
+
+    /**
+     * @return A palette for colors to display in the UI.
+     */
+    public MaterialPalette getThemeColors() {
+        return mThemeColors;
+    }
+
+    private MaterialPalette getColorsFromCall(Call call) {
+        if (call == null) {
+            return getColorsFromPhoneAccountHandle(mPendingPhoneAccountHandle);
+        } else {
+            return getColorsFromPhoneAccountHandle(call.getAccountHandle());
+        }
+    }
+
+    private MaterialPalette getColorsFromPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
+        int highlightColor = PhoneAccount.NO_HIGHLIGHT_COLOR;
+        if (phoneAccountHandle != null) {
+            final TelecomManager tm = getTelecomManager();
+
+            if (tm != null) {
+                final PhoneAccount account =
+                        TelecomManagerCompat.getPhoneAccount(tm, phoneAccountHandle);
+                // For single-sim devices, there will be no selected highlight color, so the phone
+                // account will default to NO_HIGHLIGHT_COLOR.
+                if (account != null && CompatUtils.isLollipopMr1Compatible()) {
+                    highlightColor = account.getHighlightColor();
+                }
+            }
+        }
+        return new InCallUIMaterialColorMapUtils(
+                mContext.getResources()).calculatePrimaryAndSecondaryColor(highlightColor);
+    }
+
+    /**
+     * @return An instance of TelecomManager.
+     */
+    public TelecomManager getTelecomManager() {
+        if (mTelecomManager == null) {
+            mTelecomManager = (TelecomManager)
+                    mContext.getSystemService(Context.TELECOM_SERVICE);
+        }
+        return mTelecomManager;
+    }
+
+    /**
+     * @return An instance of TelephonyManager
+     */
+    public TelephonyManager getTelephonyManager() {
+        return mTelephonyManager;
+    }
+
+    InCallActivity getActivity() {
+        return mInCallActivity;
+    }
+
+    AnswerPresenter getAnswerPresenter() {
+        return mAnswerPresenter;
+    }
+
+    /**
+     * Private constructor. Must use getInstance() to get this singleton.
+     */
+    private InCallPresenter() {
+    }
+
+    /**
+     * All the main states of InCallActivity.
+     */
+    public enum InCallState {
+        // InCall Screen is off and there are no calls
+        NO_CALLS,
+
+        // Incoming-call screen is up
+        INCOMING,
+
+        // In-call experience is showing
+        INCALL,
+
+        // Waiting for user input before placing outgoing call
+        WAITING_FOR_ACCOUNT,
+
+        // UI is starting up but no call has been initiated yet.
+        // The UI is waiting for Telecom to respond.
+        PENDING_OUTGOING,
+
+        // User is dialing out
+        OUTGOING;
+
+        public boolean isIncoming() {
+            return (this == INCOMING);
+        }
+
+        public boolean isConnectingOrConnected() {
+            return (this == INCOMING ||
+                    this == OUTGOING ||
+                    this == INCALL);
+        }
+    }
+
+    /**
+     * Interface implemented by classes that need to know about the InCall State.
+     */
+    public interface InCallStateListener {
+        // TODO: Enhance state to contain the call objects instead of passing CallList
+        public void onStateChange(InCallState oldState, InCallState newState, CallList callList);
+    }
+
+    public interface IncomingCallListener {
+        public void onIncomingCall(InCallState oldState, InCallState newState, Call call);
+    }
+
+    public interface CanAddCallListener {
+        public void onCanAddCallChanged(boolean canAddCall);
+    }
+
+    public interface InCallDetailsListener {
+        public void onDetailsChanged(Call call, android.telecom.Call.Details details);
+    }
+
+    public interface InCallOrientationListener {
+        public void onDeviceOrientationChanged(int orientation);
+    }
+
+    /**
+     * Interface implemented by classes that need to know about events which occur within the
+     * In-Call UI.  Used as a means of communicating between fragments that make up the UI.
+     */
+    public interface InCallEventListener {
+        public void onFullscreenModeChanged(boolean isFullscreenMode);
+        public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height);
+    }
+
+    public interface InCallUiListener {
+        void onUiShowing(boolean showing);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallServiceImpl.java b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
new file mode 100644
index 0000000..8693697
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.telecom.Call;
+import android.telecom.CallAudioState;
+import android.telecom.InCallService;
+
+/**
+ * Used to receive updates about calls from the Telecom component.  This service is bound to
+ * Telecom while there exist calls which potentially require UI. This includes ringing (incoming),
+ * dialing (outgoing), and active calls. When the last call is disconnected, Telecom will unbind to
+ * the service triggering InCallActivity (via CallList) to finish soon after.
+ */
+public class InCallServiceImpl extends InCallService {
+
+    @Override
+    public void onCallAudioStateChanged(CallAudioState audioState) {
+        AudioModeProvider.getInstance().onAudioStateChanged(audioState.isMuted(),
+                audioState.getRoute(), audioState.getSupportedRouteMask());
+    }
+
+    @Override
+    public void onBringToForeground(boolean showDialpad) {
+        InCallPresenter.getInstance().onBringToForeground(showDialpad);
+    }
+
+    @Override
+    public void onCallAdded(Call call) {
+        InCallPresenter.getInstance().onCallAdded(call);
+    }
+
+    @Override
+    public void onCallRemoved(Call call) {
+        InCallPresenter.getInstance().onCallRemoved(call);
+    }
+
+    @Override
+    public void onCanAddCallChanged(boolean canAddCall) {
+        InCallPresenter.getInstance().onCanAddCallChanged(canAddCall);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        final Context context = getApplicationContext();
+        final ContactInfoCache contactInfoCache = ContactInfoCache.getInstance(context);
+        InCallPresenter.getInstance().setUp(
+                getApplicationContext(),
+                CallList.getInstance(),
+                AudioModeProvider.getInstance(),
+                new StatusBarNotifier(context, contactInfoCache),
+                contactInfoCache,
+                new ProximitySensor(
+                        context,
+                        AudioModeProvider.getInstance(),
+                        new AccelerometerListener(context))
+                );
+        InCallPresenter.getInstance().onServiceBind();
+        InCallPresenter.getInstance().maybeStartRevealAnimation(intent);
+        TelecomAdapter.getInstance().setInCallService(this);
+
+        return super.onBind(intent);
+    }
+
+    @Override
+    public boolean onUnbind(Intent intent) {
+        super.onUnbind(intent);
+
+        InCallPresenter.getInstance().onServiceUnbind();
+        tearDown();
+
+        return false;
+    }
+
+    private void tearDown() {
+        Log.v(this, "tearDown");
+        // Tear down the InCall system
+        TelecomAdapter.getInstance().clearInCallService();
+        InCallPresenter.getInstance().tearDown();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallServiceListener.java b/InCallUI/src/com/android/incallui/InCallServiceListener.java
new file mode 100644
index 0000000..11a5b08
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallServiceListener.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.telecom.InCallService;
+
+/**
+ * Interface implemented by In-Call components that maintain a reference to the Telecom API
+ * {@code InCallService} object. Clarifies the expectations associated with the relevant method
+ * calls.
+ */
+public interface InCallServiceListener {
+
+    /**
+     * Called once at {@code InCallService} startup time with a valid instance. At
+     * that time, there will be no existing {@code Call}s.
+     *
+     * @param inCallService The {@code InCallService} object.
+     */
+    void setInCallService(InCallService inCallService);
+
+    /**
+     * Called once at {@code InCallService} shutdown time. At that time, any {@code Call}s
+     * will have transitioned through the disconnected state and will no longer exist.
+     */
+    void clearInCallService();
+}
diff --git a/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java
new file mode 100644
index 0000000..9c108b8
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java
@@ -0,0 +1,55 @@
+package com.android.incallui;
+
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.telecom.PhoneAccount;
+
+import com.android.contacts.common.util.MaterialColorMapUtils;
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.R;
+
+public class InCallUIMaterialColorMapUtils extends MaterialColorMapUtils {
+    private final TypedArray sPrimaryColors;
+    private final TypedArray sSecondaryColors;
+    private final Resources mResources;
+
+    public InCallUIMaterialColorMapUtils(Resources resources) {
+        super(resources);
+        sPrimaryColors = resources.obtainTypedArray(R.array.background_colors);
+        sSecondaryColors = resources.obtainTypedArray(R.array.background_colors_dark);
+        mResources = resources;
+    }
+
+    /**
+     * Currently the InCallUI color will only vary by SIM color which is a list of colors
+     * defined in the background_colors array, so first search the list for the matching color and
+     * fall back to the closest matching color if an exact match does not exist.
+     */
+    @Override
+    public MaterialPalette calculatePrimaryAndSecondaryColor(int color) {
+        if (color == PhoneAccount.NO_HIGHLIGHT_COLOR) {
+            return getDefaultPrimaryAndSecondaryColors(mResources);
+        }
+
+        for (int i = 0; i < sPrimaryColors.length(); i++) {
+            if (sPrimaryColors.getColor(i, 0) == color) {
+                return new MaterialPalette(
+                        sPrimaryColors.getColor(i, 0),
+                        sSecondaryColors.getColor(i, 0));
+            }
+        }
+
+        // The color isn't in the list, so use the superclass to find an approximate color.
+        return super.calculatePrimaryAndSecondaryColor(color);
+    }
+
+    /**
+     * {@link Resources#getColor(int) used for compatibility
+     */
+    @SuppressWarnings("deprecation")
+    public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
+        final int primaryColor = resources.getColor(R.color.dialer_theme_color);
+        final int secondaryColor = resources.getColor(R.color.dialer_theme_color_dark);
+        return new MaterialPalette(primaryColor, secondaryColor);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
new file mode 100644
index 0000000..99e6d51
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.telecom.Connection;
+import android.telecom.Connection.VideoProvider;
+import android.telecom.InCallService.VideoCall;
+import android.telecom.VideoProfile;
+import android.telecom.VideoProfile.CameraCapabilities;
+
+/**
+ * Implements the InCallUI VideoCall Callback.
+ */
+public class InCallVideoCallCallback extends VideoCall.Callback {
+
+    /**
+     * The call associated with this {@link InCallVideoCallCallback}.
+     */
+    private Call mCall;
+
+    /**
+     * Creates an instance of the call video client, specifying the call it is related to.
+     *
+     * @param call The call.
+     */
+    public InCallVideoCallCallback(Call call) {
+        mCall = call;
+    }
+
+    /**
+     * Handles an incoming session modification request.
+     *
+     * @param videoProfile The requested video call profile.
+     */
+    @Override
+    public void onSessionModifyRequestReceived(VideoProfile videoProfile) {
+        Log.d(this, " onSessionModifyRequestReceived videoProfile=" + videoProfile);
+        int previousVideoState = VideoUtils.getUnPausedVideoState(mCall.getVideoState());
+        int newVideoState = VideoUtils.getUnPausedVideoState(videoProfile.getVideoState());
+
+        boolean wasVideoCall = VideoUtils.isVideoCall(previousVideoState);
+        boolean isVideoCall = VideoUtils.isVideoCall(newVideoState);
+
+        // Check for upgrades to video.
+        if (!wasVideoCall && isVideoCall && previousVideoState != newVideoState) {
+            InCallVideoCallCallbackNotifier.getInstance().upgradeToVideoRequest(mCall,
+                newVideoState);
+        }
+    }
+
+    /**
+     * Handles a session modification response.
+     *
+     * @param status Status of the session modify request. Valid values are
+     *            {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_SUCCESS},
+     *            {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_FAIL},
+     *            {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_INVALID}
+     * @param requestedProfile
+     * @param responseProfile The actual profile changes made by the peer device.
+     */
+    @Override
+    public void onSessionModifyResponseReceived(int status, VideoProfile requestedProfile,
+            VideoProfile responseProfile) {
+        Log.d(this, "onSessionModifyResponseReceived status=" + status + " requestedProfile="
+                + requestedProfile + " responseProfile=" + responseProfile);
+        if (status != VideoProvider.SESSION_MODIFY_REQUEST_SUCCESS) {
+            // Report the reason the upgrade failed as the new session modification state.
+            if (status == VideoProvider.SESSION_MODIFY_REQUEST_TIMED_OUT) {
+                mCall.setSessionModificationState(
+                        Call.SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT);
+            } else {
+                if (status == VideoProvider.SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE) {
+                    mCall.setSessionModificationState(
+                            Call.SessionModificationState.REQUEST_REJECTED);
+                } else {
+                    mCall.setSessionModificationState(
+                            Call.SessionModificationState.REQUEST_FAILED);
+                }
+            }
+        }
+
+        // Finally clear the outstanding request.
+        mCall.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
+    }
+
+    /**
+     * Handles a call session event.
+     *
+     * @param event The event.
+     */
+    @Override
+    public void onCallSessionEvent(int event) {
+        InCallVideoCallCallbackNotifier.getInstance().callSessionEvent(event);
+    }
+
+    /**
+     * Handles a change to the peer video dimensions.
+     *
+     * @param width  The updated peer video width.
+     * @param height The updated peer video height.
+     */
+    @Override
+    public void onPeerDimensionsChanged(int width, int height) {
+        InCallVideoCallCallbackNotifier.getInstance().peerDimensionsChanged(mCall, width, height);
+    }
+
+    /**
+     * Handles a change to the video quality of the call.
+     *
+     * @param videoQuality The updated video call quality.
+     */
+    @Override
+    public void onVideoQualityChanged(int videoQuality) {
+        InCallVideoCallCallbackNotifier.getInstance().videoQualityChanged(mCall, videoQuality);
+    }
+
+    /**
+     * Handles a change to the call data usage.  No implementation as the in-call UI does not
+     * display data usage.
+     *
+     * @param dataUsage The updated data usage.
+     */
+    @Override
+    public void onCallDataUsageChanged(long dataUsage) {
+        Log.d(this, "onCallDataUsageChanged: dataUsage = " + dataUsage);
+        InCallVideoCallCallbackNotifier.getInstance().callDataUsageChanged(dataUsage);
+    }
+
+    /**
+     * Handles changes to the camera capabilities.  No implementation as the in-call UI does not
+     * make use of camera capabilities.
+     *
+     * @param cameraCapabilities The changed camera capabilities.
+     */
+    @Override
+    public void onCameraCapabilitiesChanged(CameraCapabilities cameraCapabilities) {
+        if (cameraCapabilities != null) {
+            InCallVideoCallCallbackNotifier.getInstance().cameraDimensionsChanged(
+                    mCall, cameraCapabilities.getWidth(), cameraCapabilities.getHeight());
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallVideoCallCallbackNotifier.java b/InCallUI/src/com/android/incallui/InCallVideoCallCallbackNotifier.java
new file mode 100644
index 0000000..bb75292
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallVideoCallCallbackNotifier.java
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Class used by {@link InCallService.VideoCallCallback} to notify interested parties of incoming
+ * events.
+ */
+public class InCallVideoCallCallbackNotifier {
+    /**
+     * Singleton instance of this class.
+     */
+    private static InCallVideoCallCallbackNotifier sInstance =
+            new InCallVideoCallCallbackNotifier();
+
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
+    private final Set<SessionModificationListener> mSessionModificationListeners =
+            Collections.newSetFromMap(new ConcurrentHashMap<SessionModificationListener, Boolean>
+                    (8, 0.9f, 1));
+    private final Set<VideoEventListener> mVideoEventListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<VideoEventListener, Boolean>(8, 0.9f, 1));
+    private final Set<SurfaceChangeListener> mSurfaceChangeListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<SurfaceChangeListener, Boolean>(8, 0.9f, 1));
+
+    /**
+     * Static singleton accessor method.
+     */
+    public static InCallVideoCallCallbackNotifier getInstance() {
+        return sInstance;
+    }
+
+    /**
+     * Private constructor.  Instance should only be acquired through getInstance().
+     */
+    private InCallVideoCallCallbackNotifier() {
+    }
+
+    /**
+     * Adds a new {@link SessionModificationListener}.
+     *
+     * @param listener The listener.
+     */
+    public void addSessionModificationListener(SessionModificationListener listener) {
+        Preconditions.checkNotNull(listener);
+        mSessionModificationListeners.add(listener);
+    }
+
+    /**
+     * Remove a {@link SessionModificationListener}.
+     *
+     * @param listener The listener.
+     */
+    public void removeSessionModificationListener(SessionModificationListener listener) {
+        if (listener != null) {
+            mSessionModificationListeners.remove(listener);
+        }
+    }
+
+    /**
+     * Adds a new {@link VideoEventListener}.
+     *
+     * @param listener The listener.
+     */
+    public void addVideoEventListener(VideoEventListener listener) {
+        Preconditions.checkNotNull(listener);
+        mVideoEventListeners.add(listener);
+    }
+
+    /**
+     * Remove a {@link VideoEventListener}.
+     *
+     * @param listener The listener.
+     */
+    public void removeVideoEventListener(VideoEventListener listener) {
+        if (listener != null) {
+            mVideoEventListeners.remove(listener);
+        }
+    }
+
+    /**
+     * Adds a new {@link SurfaceChangeListener}.
+     *
+     * @param listener The listener.
+     */
+    public void addSurfaceChangeListener(SurfaceChangeListener listener) {
+        Preconditions.checkNotNull(listener);
+        mSurfaceChangeListeners.add(listener);
+    }
+
+    /**
+     * Remove a {@link SurfaceChangeListener}.
+     *
+     * @param listener The listener.
+     */
+    public void removeSurfaceChangeListener(SurfaceChangeListener listener) {
+        if (listener != null) {
+            mSurfaceChangeListeners.remove(listener);
+        }
+    }
+
+    /**
+     * Inform listeners of an upgrade to video request for a call.
+     * @param call The call.
+     * @param videoState The video state we want to upgrade to.
+     */
+    public void upgradeToVideoRequest(Call call, int videoState) {
+        Log.d(this, "upgradeToVideoRequest call = " + call + " new video state = " + videoState);
+        for (SessionModificationListener listener : mSessionModificationListeners) {
+            listener.onUpgradeToVideoRequest(call, videoState);
+        }
+    }
+
+    /**
+     * Inform listeners of a call session event.
+     *
+     * @param event The call session event.
+     */
+    public void callSessionEvent(int event) {
+        for (VideoEventListener listener : mVideoEventListeners) {
+            listener.onCallSessionEvent(event);
+        }
+    }
+
+    /**
+     * Inform listeners of a downgrade to audio.
+     *
+     * @param call The call.
+     * @param paused The paused state.
+     */
+    public void peerPausedStateChanged(Call call, boolean paused) {
+        for (VideoEventListener listener : mVideoEventListeners) {
+            listener.onPeerPauseStateChanged(call, paused);
+        }
+    }
+
+    /**
+     * Inform listeners of any change in the video quality of the call
+     *
+     * @param call The call.
+     * @param videoQuality The updated video quality of the call.
+     */
+    public void videoQualityChanged(Call call, int videoQuality) {
+        for (VideoEventListener listener : mVideoEventListeners) {
+            listener.onVideoQualityChanged(call, videoQuality);
+        }
+    }
+
+    /**
+     * Inform listeners of a change to peer dimensions.
+     *
+     * @param call The call.
+     * @param width New peer width.
+     * @param height New peer height.
+     */
+    public void peerDimensionsChanged(Call call, int width, int height) {
+        for (SurfaceChangeListener listener : mSurfaceChangeListeners) {
+            listener.onUpdatePeerDimensions(call, width, height);
+        }
+    }
+
+    /**
+     * Inform listeners of a change to camera dimensions.
+     *
+     * @param call The call.
+     * @param width The new camera video width.
+     * @param height The new camera video height.
+     */
+    public void cameraDimensionsChanged(Call call, int width, int height) {
+        for (SurfaceChangeListener listener : mSurfaceChangeListeners) {
+            listener.onCameraDimensionsChange(call, width, height);
+        }
+    }
+
+    /**
+     * Inform listeners of a change to call data usage.
+     *
+     * @param dataUsage data usage value
+     */
+    public void callDataUsageChanged(long dataUsage) {
+        for (VideoEventListener listener : mVideoEventListeners) {
+            listener.onCallDataUsageChange(dataUsage);
+        }
+    }
+
+    /**
+     * Listener interface for any class that wants to be notified of upgrade to video request.
+     */
+    public interface SessionModificationListener {
+        /**
+         * Called when a peer request is received to upgrade an audio-only call to a video call.
+         *
+         * @param call The call the request was received for.
+         * @param videoState The requested video state.
+         */
+        public void onUpgradeToVideoRequest(Call call, int videoState);
+    }
+
+    /**
+     * Listener interface for any class that wants to be notified of video events, including pause
+     * and un-pause of peer video, video quality changes.
+     */
+    public interface VideoEventListener {
+        /**
+         * Called when the peer pauses or un-pauses video transmission.
+         *
+         * @param call   The call which paused or un-paused video transmission.
+         * @param paused {@code True} when the video transmission is paused, {@code false}
+         *               otherwise.
+         */
+        public void onPeerPauseStateChanged(Call call, boolean paused);
+
+        /**
+         * Called when the video quality changes.
+         *
+         * @param call   The call whose video quality changes.
+         * @param videoCallQuality - values are QUALITY_HIGH, MEDIUM, LOW and UNKNOWN.
+         */
+        public void onVideoQualityChanged(Call call, int videoCallQuality);
+
+        /*
+         * Called when call data usage value is requested or when call data usage value is updated
+         * because of a call state change
+         *
+         * @param dataUsage call data usage value
+         */
+        public void onCallDataUsageChange(long dataUsage);
+
+        /**
+         * Called when call session event is raised.
+         *
+         * @param event The call session event.
+         */
+        public void onCallSessionEvent(int event);
+    }
+
+    /**
+     * Listener interface for any class that wants to be notified of changes to the video surfaces.
+     */
+    public interface SurfaceChangeListener {
+        /**
+         * Called when the peer video feed changes dimensions. This can occur when the peer rotates
+         * their device, changing the aspect ratio of the video signal.
+         *
+         * @param call The call which experienced a peer video
+         * @param width
+         * @param height
+         */
+        public void onUpdatePeerDimensions(Call call, int width, int height);
+
+        /**
+         * Called when the local camera changes dimensions.  This occurs when a change in camera
+         * occurs.
+         *
+         * @param call The call which experienced the camera dimension change.
+         * @param width The new camera video width.
+         * @param height The new camera video height.
+         */
+        public void onCameraDimensionsChange(Call call, int width, int height);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/Log.java b/InCallUI/src/com/android/incallui/Log.java
new file mode 100644
index 0000000..07a0e61
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/Log.java
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import android.net.Uri;
+import android.telecom.PhoneAccount;
+import android.telephony.PhoneNumberUtils;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Manages logging for the entire class.
+ */
+public class Log {
+
+    // Generic tag for all In Call logging
+    public static final String TAG = "InCall";
+
+    public static final boolean FORCE_DEBUG = false; /* STOPSHIP if true */
+    public static final boolean DEBUG = FORCE_DEBUG ||
+            android.util.Log.isLoggable(TAG, android.util.Log.DEBUG);
+    public static final boolean VERBOSE = FORCE_DEBUG ||
+            android.util.Log.isLoggable(TAG, android.util.Log.VERBOSE);
+    public static final String TAG_DELIMETER = " - ";
+
+    public static void d(String tag, String msg) {
+        if (DEBUG) {
+            android.util.Log.d(TAG, delimit(tag) + msg);
+        }
+    }
+
+    public static void d(Object obj, String msg) {
+        if (DEBUG) {
+            android.util.Log.d(TAG, getPrefix(obj) + msg);
+        }
+    }
+
+    public static void d(Object obj, String str1, Object str2) {
+        if (DEBUG) {
+            android.util.Log.d(TAG, getPrefix(obj) + str1 + str2);
+        }
+    }
+
+    public static void v(Object obj, String msg) {
+        if (VERBOSE) {
+            android.util.Log.v(TAG, getPrefix(obj) + msg);
+        }
+    }
+
+    public static void v(Object obj, String str1, Object str2) {
+        if (VERBOSE) {
+            android.util.Log.d(TAG, getPrefix(obj) + str1 + str2);
+        }
+    }
+
+    public static void e(String tag, String msg, Exception e) {
+        android.util.Log.e(TAG, delimit(tag) + msg, e);
+    }
+
+    public static void e(String tag, String msg) {
+        android.util.Log.e(TAG, delimit(tag) + msg);
+    }
+
+    public static void e(Object obj, String msg, Exception e) {
+        android.util.Log.e(TAG, getPrefix(obj) + msg, e);
+    }
+
+    public static void e(Object obj, String msg) {
+        android.util.Log.e(TAG, getPrefix(obj) + msg);
+    }
+
+    public static void i(String tag, String msg) {
+        android.util.Log.i(TAG, delimit(tag) + msg);
+    }
+
+    public static void i(Object obj, String msg) {
+        android.util.Log.i(TAG, getPrefix(obj) + msg);
+    }
+
+    public static void w(Object obj, String msg) {
+        android.util.Log.w(TAG, getPrefix(obj) + msg);
+    }
+
+    public static void wtf(Object obj, String msg) {
+        android.util.Log.wtf(TAG, getPrefix(obj) + msg);
+    }
+
+    public static String piiHandle(Object pii) {
+        if (pii == null || VERBOSE) {
+            return String.valueOf(pii);
+        }
+
+        if (pii instanceof Uri) {
+            Uri uri = (Uri) pii;
+
+            // All Uri's which are not "tel" go through normal pii() method.
+            if (!PhoneAccount.SCHEME_TEL.equals(uri.getScheme())) {
+                return pii(pii);
+            } else {
+                pii = uri.getSchemeSpecificPart();
+            }
+        }
+
+        String originalString = String.valueOf(pii);
+        StringBuilder stringBuilder = new StringBuilder(originalString.length());
+        for (char c : originalString.toCharArray()) {
+            if (PhoneNumberUtils.isDialable(c)) {
+                stringBuilder.append('*');
+            } else {
+                stringBuilder.append(c);
+            }
+        }
+        return stringBuilder.toString();
+    }
+
+    /**
+     * Redact personally identifiable information for production users.
+     * If we are running in verbose mode, return the original string, otherwise
+     * return a SHA-1 hash of the input string.
+     */
+    public static String pii(Object pii) {
+        if (pii == null || VERBOSE) {
+            return String.valueOf(pii);
+        }
+        return "[" + secureHash(String.valueOf(pii).getBytes()) + "]";
+    }
+
+    private static String secureHash(byte[] input) {
+        MessageDigest messageDigest;
+        try {
+            messageDigest = MessageDigest.getInstance("SHA-1");
+        } catch (NoSuchAlgorithmException e) {
+            return null;
+        }
+        messageDigest.update(input);
+        byte[] result = messageDigest.digest();
+        return encodeHex(result);
+    }
+
+    private static String encodeHex(byte[] bytes) {
+        StringBuffer hex = new StringBuffer(bytes.length * 2);
+
+        for (int i = 0; i < bytes.length; i++) {
+            int byteIntValue = bytes[i] & 0xff;
+            if (byteIntValue < 0x10) {
+                hex.append("0");
+            }
+            hex.append(Integer.toString(byteIntValue, 16));
+        }
+
+        return hex.toString();
+    }
+
+    private static String getPrefix(Object obj) {
+        return (obj == null ? "" : (obj.getClass().getSimpleName() + TAG_DELIMETER));
+    }
+
+    private static String delimit(String tag) {
+        return tag + TAG_DELIMETER;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/NeededForReflection.java b/InCallUI/src/com/android/incallui/NeededForReflection.java
new file mode 100644
index 0000000..363a0a5
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/NeededForReflection.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the class, constructor, method or field is used for reflection and therefore cannot
+ * be removed by tools like ProGuard.
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.FIELD})
+public @interface NeededForReflection {}
diff --git a/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java b/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java
new file mode 100644
index 0000000..2543b78
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.VideoProfile;
+
+/**
+ * Accepts broadcast Intents which will be prepared by {@link StatusBarNotifier} and thus
+ * sent from the notification manager.
+ * This should be visible from outside, but shouldn't be exported.
+ */
+public class NotificationBroadcastReceiver extends BroadcastReceiver {
+
+    /**
+     * Intent Action used for hanging up the current call from Notification bar. This will
+     * choose first ringing call, first active call, or first background call (typically in
+     * STATE_HOLDING state).
+     */
+    public static final String ACTION_DECLINE_INCOMING_CALL =
+            "com.android.incallui.ACTION_DECLINE_INCOMING_CALL";
+    public static final String ACTION_HANG_UP_ONGOING_CALL =
+            "com.android.incallui.ACTION_HANG_UP_ONGOING_CALL";
+    public static final String ACTION_ANSWER_VIDEO_INCOMING_CALL =
+            "com.android.incallui.ACTION_ANSWER_VIDEO_INCOMING_CALL";
+    public static final String ACTION_ANSWER_VOICE_INCOMING_CALL =
+            "com.android.incallui.ACTION_ANSWER_VOICE_INCOMING_CALL";
+    public static final String ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST =
+            "com.android.incallui.ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST";
+    public static final String ACTION_DECLINE_VIDEO_UPGRADE_REQUEST =
+            "com.android.incallui.ACTION_DECLINE_VIDEO_UPGRADE_REQUEST";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        final String action = intent.getAction();
+        Log.i(this, "Broadcast from Notification: " + action);
+
+        // TODO: Commands of this nature should exist in the CallList.
+        if (action.equals(ACTION_ANSWER_VIDEO_INCOMING_CALL)) {
+            InCallPresenter.getInstance().answerIncomingCall(
+                    context, VideoProfile.STATE_BIDIRECTIONAL);
+        } else if (action.equals(ACTION_ANSWER_VOICE_INCOMING_CALL)) {
+            InCallPresenter.getInstance().answerIncomingCall(
+                    context, VideoProfile.STATE_AUDIO_ONLY);
+        } else if (action.equals(ACTION_DECLINE_INCOMING_CALL)) {
+            InCallPresenter.getInstance().declineIncomingCall(context);
+        } else if (action.equals(ACTION_HANG_UP_ONGOING_CALL)) {
+            InCallPresenter.getInstance().hangUpOngoingCall(context);
+        } else if (action.equals(ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST)) {
+            //TODO: Change calltype after adding support for TX and RX
+            InCallPresenter.getInstance().acceptUpgradeRequest(
+                    VideoProfile.STATE_BIDIRECTIONAL, context);
+        } else if (action.equals(ACTION_DECLINE_VIDEO_UPGRADE_REQUEST)) {
+            InCallPresenter.getInstance().declineUpgradeRequest(context);
+        }
+    }
+
+}
diff --git a/InCallUI/src/com/android/incallui/PostCharDialogFragment.java b/InCallUI/src/com/android/incallui/PostCharDialogFragment.java
new file mode 100644
index 0000000..6f904ad
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/PostCharDialogFragment.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.WindowManager;
+
+import com.android.dialer.R;
+
+/**
+ * Pop up an alert dialog with OK and Cancel buttons to allow user to Accept or Reject the WAIT
+ * inserted as part of the Dial string.
+ */
+public class PostCharDialogFragment extends DialogFragment {
+
+    private static final String STATE_CALL_ID = "CALL_ID";
+    private static final String STATE_POST_CHARS = "POST_CHARS";
+
+    private String mCallId;
+    private String mPostDialStr;
+
+    public PostCharDialogFragment() {
+    }
+
+    public PostCharDialogFragment(String callId, String postDialStr) {
+        mCallId = callId;
+        mPostDialStr = postDialStr;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        super.onCreateDialog(savedInstanceState);
+
+        if (mPostDialStr == null && savedInstanceState != null) {
+            mCallId = savedInstanceState.getString(STATE_CALL_ID);
+            mPostDialStr = savedInstanceState.getString(STATE_POST_CHARS);
+        }
+
+        final StringBuilder buf = new StringBuilder();
+        buf.append(getResources().getText(R.string.wait_prompt_str));
+        buf.append(mPostDialStr);
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setMessage(buf.toString());
+
+        builder.setPositiveButton(R.string.pause_prompt_yes, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int whichButton) {
+                TelecomAdapter.getInstance().postDialContinue(mCallId, true);
+            }
+        });
+        builder.setNegativeButton(R.string.pause_prompt_no, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int whichButton) {
+                dialog.cancel();
+            }
+        });
+
+        final AlertDialog dialog = builder.create();
+        return dialog;
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+
+        TelecomAdapter.getInstance().postDialContinue(mCallId, false);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        outState.putString(STATE_CALL_ID, mCallId);
+        outState.putString(STATE_POST_CHARS, mPostDialStr);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/Presenter.java b/InCallUI/src/com/android/incallui/Presenter.java
new file mode 100644
index 0000000..4e1fa97
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/Presenter.java
@@ -0,0 +1,59 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+
+/**
+ * Base class for Presenters.
+ */
+public abstract class Presenter<U extends Ui> {
+
+    private U mUi;
+
+    /**
+     * Called after the UI view has been created.  That is when fragment.onViewCreated() is called.
+     *
+     * @param ui The Ui implementation that is now ready to be used.
+     */
+    public void onUiReady(U ui) {
+        mUi = ui;
+    }
+
+    /**
+     * Called when the UI view is destroyed in Fragment.onDestroyView().
+     */
+    public final void onUiDestroy(U ui) {
+        onUiUnready(ui);
+        mUi = null;
+    }
+
+    /**
+     * To be overriden by Presenter implementations.  Called when the fragment is being
+     * destroyed but before ui is set to null.
+     */
+    public void onUiUnready(U ui) {
+    }
+
+    public void onSaveInstanceState(Bundle outState) {}
+
+    public void onRestoreInstanceState(Bundle savedInstanceState) {}
+
+    public U getUi() {
+        return mUi;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ProximitySensor.java b/InCallUI/src/com/android/incallui/ProximitySensor.java
new file mode 100644
index 0000000..3c9fd93
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ProximitySensor.java
@@ -0,0 +1,317 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Objects;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManager.DisplayListener;
+import android.os.PowerManager;
+import android.telecom.CallAudioState;
+import android.view.Display;
+
+import com.android.incallui.AudioModeProvider.AudioModeListener;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+
+/**
+ * Class manages the proximity sensor for the in-call UI.
+ * We enable the proximity sensor while the user in a phone call. The Proximity sensor turns off
+ * the touchscreen and display when the user is close to the screen to prevent user's cheek from
+ * causing touch events.
+ * The class requires special knowledge of the activity and device state to know when the proximity
+ * sensor should be enabled and disabled. Most of that state is fed into this class through
+ * public methods.
+ */
+public class ProximitySensor implements AccelerometerListener.OrientationListener,
+        InCallStateListener, AudioModeListener {
+    private static final String TAG = ProximitySensor.class.getSimpleName();
+
+    private final PowerManager mPowerManager;
+    private final PowerManager.WakeLock mProximityWakeLock;
+    private final AudioModeProvider mAudioModeProvider;
+    private final AccelerometerListener mAccelerometerListener;
+    private final ProximityDisplayListener mDisplayListener;
+    private int mOrientation = AccelerometerListener.ORIENTATION_UNKNOWN;
+    private boolean mUiShowing = false;
+    private boolean mIsPhoneOffhook = false;
+    private boolean mDialpadVisible;
+
+    // True if the keyboard is currently *not* hidden
+    // Gets updated whenever there is a Configuration change
+    private boolean mIsHardKeyboardOpen;
+
+    public ProximitySensor(Context context, AudioModeProvider audioModeProvider,
+            AccelerometerListener accelerometerListener) {
+        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+        if (mPowerManager.isWakeLockLevelSupported(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
+            mProximityWakeLock = mPowerManager.newWakeLock(
+                    PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);
+        } else {
+            Log.w(TAG, "Device does not support proximity wake lock.");
+            mProximityWakeLock = null;
+        }
+        mAccelerometerListener = accelerometerListener;
+        mAccelerometerListener.setListener(this);
+
+        mDisplayListener = new ProximityDisplayListener(
+                (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE));
+        mDisplayListener.register();
+
+        mAudioModeProvider = audioModeProvider;
+        mAudioModeProvider.addListener(this);
+    }
+
+    public void tearDown() {
+        mAudioModeProvider.removeListener(this);
+
+        mAccelerometerListener.enable(false);
+        mDisplayListener.unregister();
+
+        turnOffProximitySensor(true);
+    }
+
+    /**
+     * Called to identify when the device is laid down flat.
+     */
+    @Override
+    public void orientationChanged(int orientation) {
+        mOrientation = orientation;
+        updateProximitySensorMode();
+    }
+
+    /**
+     * Called to keep track of the overall UI state.
+     */
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        // We ignore incoming state because we do not want to enable proximity
+        // sensor during incoming call screen. We check hasLiveCall() because a disconnected call
+        // can also put the in-call screen in the INCALL state.
+        boolean hasOngoingCall = InCallState.INCALL == newState && callList.hasLiveCall();
+        boolean isOffhook = (InCallState.OUTGOING == newState) || hasOngoingCall;
+
+        if (isOffhook != mIsPhoneOffhook) {
+            mIsPhoneOffhook = isOffhook;
+
+            mOrientation = AccelerometerListener.ORIENTATION_UNKNOWN;
+            mAccelerometerListener.enable(mIsPhoneOffhook);
+
+            updateProximitySensorMode();
+        }
+    }
+
+    @Override
+    public void onSupportedAudioMode(int modeMask) {
+    }
+
+    @Override
+    public void onMute(boolean muted) {
+    }
+
+    /**
+     * Called when the audio mode changes during a call.
+     */
+    @Override
+    public void onAudioMode(int mode) {
+        updateProximitySensorMode();
+    }
+
+    public void onDialpadVisible(boolean visible) {
+        mDialpadVisible = visible;
+        updateProximitySensorMode();
+    }
+
+    /**
+     * Called by InCallActivity to listen for hard keyboard events.
+     */
+    public void onConfigurationChanged(Configuration newConfig) {
+        mIsHardKeyboardOpen = newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO;
+
+        // Update the Proximity sensor based on keyboard state
+        updateProximitySensorMode();
+    }
+
+    /**
+     * Used to save when the UI goes in and out of the foreground.
+     */
+    public void onInCallShowing(boolean showing) {
+        if (showing) {
+            mUiShowing = true;
+
+        // We only consider the UI not showing for instances where another app took the foreground.
+        // If we stopped showing because the screen is off, we still consider that showing.
+        } else if (mPowerManager.isScreenOn()) {
+            mUiShowing = false;
+        }
+        updateProximitySensorMode();
+    }
+
+    void onDisplayStateChanged(boolean isDisplayOn) {
+        Log.i(this, "isDisplayOn: " + isDisplayOn);
+        mAccelerometerListener.enable(isDisplayOn);
+    }
+
+    /**
+     * TODO: There is no way to determine if a screen is off due to proximity or if it is
+     * legitimately off, but if ever we can do that in the future, it would be useful here.
+     * Until then, this function will simply return true of the screen is off.
+     * TODO: Investigate whether this can be replaced with the ProximityDisplayListener.
+     */
+    public boolean isScreenReallyOff() {
+        return !mPowerManager.isScreenOn();
+    }
+
+    private void turnOnProximitySensor() {
+        if (mProximityWakeLock != null) {
+            if (!mProximityWakeLock.isHeld()) {
+                Log.i(this, "Acquiring proximity wake lock");
+                mProximityWakeLock.acquire();
+            } else {
+                Log.i(this, "Proximity wake lock already acquired");
+            }
+        }
+    }
+
+    private void turnOffProximitySensor(boolean screenOnImmediately) {
+        if (mProximityWakeLock != null) {
+            if (mProximityWakeLock.isHeld()) {
+                Log.i(this, "Releasing proximity wake lock");
+                int flags =
+                    (screenOnImmediately ? 0 : PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY);
+                mProximityWakeLock.release(flags);
+            } else {
+                Log.i(this, "Proximity wake lock already released");
+            }
+        }
+    }
+
+    /**
+     * Updates the wake lock used to control proximity sensor behavior,
+     * based on the current state of the phone.
+     *
+     * On devices that have a proximity sensor, to avoid false touches
+     * during a call, we hold a PROXIMITY_SCREEN_OFF_WAKE_LOCK wake lock
+     * whenever the phone is off hook.  (When held, that wake lock causes
+     * the screen to turn off automatically when the sensor detects an
+     * object close to the screen.)
+     *
+     * This method is a no-op for devices that don't have a proximity
+     * sensor.
+     *
+     * Proximity wake lock will *not* be held if any one of the
+     * conditions is true while on a call:
+     * 1) If the audio is routed via Bluetooth
+     * 2) If a wired headset is connected
+     * 3) if the speaker is ON
+     * 4) If the slider is open(i.e. the hardkeyboard is *not* hidden)
+     */
+    private synchronized void updateProximitySensorMode() {
+        final int audioMode = mAudioModeProvider.getAudioMode();
+
+        // turn proximity sensor off and turn screen on immediately if
+        // we are using a headset, the keyboard is open, or the device
+        // is being held in a horizontal position.
+            boolean screenOnImmediately = (CallAudioState.ROUTE_WIRED_HEADSET == audioMode
+                    || CallAudioState.ROUTE_SPEAKER == audioMode
+                    || CallAudioState.ROUTE_BLUETOOTH == audioMode
+                    || mIsHardKeyboardOpen);
+
+            // We do not keep the screen off when the user is outside in-call screen and we are
+            // horizontal, but we do not force it on when we become horizontal until the
+            // proximity sensor goes negative.
+            final boolean horizontal =
+                    (mOrientation == AccelerometerListener.ORIENTATION_HORIZONTAL);
+            screenOnImmediately |= !mUiShowing && horizontal;
+
+            // We do not keep the screen off when dialpad is visible, we are horizontal, and
+            // the in-call screen is being shown.
+            // At that moment we're pretty sure users want to use it, instead of letting the
+            // proximity sensor turn off the screen by their hands.
+            screenOnImmediately |= mDialpadVisible && horizontal;
+
+            Log.v(this, "screenonImmediately: ", screenOnImmediately);
+
+            Log.i(this, Objects.toStringHelper(this)
+                    .add("keybrd", mIsHardKeyboardOpen ? 1 : 0)
+                    .add("dpad", mDialpadVisible ? 1 : 0)
+                    .add("offhook", mIsPhoneOffhook ? 1 : 0)
+                    .add("hor", horizontal ? 1 : 0)
+                    .add("ui", mUiShowing ? 1 : 0)
+                    .add("aud", CallAudioState.audioRouteToString(audioMode))
+                    .toString());
+
+            if (mIsPhoneOffhook && !screenOnImmediately) {
+                Log.d(this, "Turning on proximity sensor");
+                // Phone is in use!  Arrange for the screen to turn off
+                // automatically when the sensor detects a close object.
+                turnOnProximitySensor();
+            } else {
+                Log.d(this, "Turning off proximity sensor");
+                // Phone is either idle, or ringing.  We don't want any special proximity sensor
+                // behavior in either case.
+                turnOffProximitySensor(screenOnImmediately);
+            }
+        }
+
+    /**
+     * Implementation of a {@link DisplayListener} that maintains a binary state:
+     * Screen on vs screen off. Used by the proximity sensor manager to decide whether or not
+     * it needs to listen to accelerometer events.
+     */
+    public class ProximityDisplayListener implements DisplayListener {
+        private DisplayManager mDisplayManager;
+        private boolean mIsDisplayOn = true;
+
+        ProximityDisplayListener(DisplayManager displayManager) {
+            mDisplayManager = displayManager;
+        }
+
+        void register() {
+            mDisplayManager.registerDisplayListener(this, null);
+        }
+
+        void unregister() {
+            mDisplayManager.unregisterDisplayListener(this);
+        }
+
+        @Override
+        public void onDisplayRemoved(int displayId) {
+        }
+
+        @Override
+        public void onDisplayChanged(int displayId) {
+            if (displayId == Display.DEFAULT_DISPLAY) {
+                final Display display = mDisplayManager.getDisplay(displayId);
+
+                final boolean isDisplayOn = display.getState() != Display.STATE_OFF;
+                // For call purposes, we assume that as long as the screen is not truly off, it is
+                // considered on, even if it is in an unknown or low power idle state.
+                if (isDisplayOn != mIsDisplayOn) {
+                    mIsDisplayOn = isDisplayOn;
+                    onDisplayStateChanged(mIsDisplayOn);
+                }
+            }
+        }
+
+        @Override
+        public void onDisplayAdded(int displayId) {
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
new file mode 100644
index 0000000..315c0d0
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -0,0 +1,745 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui;
+
+import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_WORK_CALL;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VIDEO_INCOMING_CALL;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VOICE_INCOMING_CALL;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_DECLINE_INCOMING_CALL;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_DECLINE_VIDEO_UPGRADE_REQUEST;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_HANG_UP_ONGOING_CALL;
+
+import com.google.common.base.Preconditions;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.media.AudioAttributes;
+import android.net.Uri;
+import android.support.annotation.Nullable;
+import android.telecom.Call.Details;
+import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.ContactsUtils.UserType;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.contacts.common.util.BitmapUtil;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.R;
+import com.android.incallui.Call.State;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.async.PausableExecutorImpl;
+import com.android.incallui.ringtone.DialerRingtoneManager;
+import com.android.incallui.ringtone.InCallTonePlayer;
+import com.android.incallui.ringtone.ToneGeneratorFactory;
+
+import java.util.Objects;
+
+/**
+ * This class adds Notifications to the status bar for the in-call experience.
+ */
+public class StatusBarNotifier implements InCallPresenter.InCallStateListener,
+        CallList.CallUpdateListener {
+
+    // Notification types
+    // Indicates that no notification is currently showing.
+    private static final int NOTIFICATION_NONE = 0;
+    // Notification for an active call. This is non-interruptive, but cannot be dismissed.
+    private static final int NOTIFICATION_IN_CALL = 1;
+    // Notification for incoming calls. This is interruptive and will show up as a HUN.
+    private static final int NOTIFICATION_INCOMING_CALL = 2;
+
+    private static final long[] VIBRATE_PATTERN = new long[] {0, 1000, 1000};
+
+    private final Context mContext;
+    @Nullable private ContactsPreferences mContactsPreferences;
+    private final ContactInfoCache mContactInfoCache;
+    private final NotificationManager mNotificationManager;
+    private final DialerRingtoneManager mDialerRingtoneManager;
+    private int mCurrentNotification = NOTIFICATION_NONE;
+    private int mCallState = Call.State.INVALID;
+    private int mSavedIcon = 0;
+    private String mSavedContent = null;
+    private Bitmap mSavedLargeIcon;
+    private String mSavedContentTitle;
+    private String mCallId = null;
+    private InCallState mInCallState;
+    private Uri mRingtone;
+
+    public StatusBarNotifier(Context context, ContactInfoCache contactInfoCache) {
+        Preconditions.checkNotNull(context);
+        mContext = context;
+        mContactsPreferences = ContactsPreferencesFactory.newContactsPreferences(mContext);
+        mContactInfoCache = contactInfoCache;
+        mNotificationManager =
+                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+        mDialerRingtoneManager = new DialerRingtoneManager(
+                new InCallTonePlayer(
+                        AudioModeProvider.getInstance(),
+                        new ToneGeneratorFactory(),
+                        new PausableExecutorImpl()),
+                CallList.getInstance());
+        mCurrentNotification = NOTIFICATION_NONE;
+    }
+
+    /**
+     * Creates notifications according to the state we receive from {@link InCallPresenter}.
+     */
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        Log.d(this, "onStateChange");
+        mInCallState = newState;
+        updateNotification(newState, callList);
+    }
+
+    /**
+     * Updates the phone app's status bar notification *and* launches the
+     * incoming call UI in response to a new incoming call.
+     *
+     * If an incoming call is ringing (or call-waiting), the notification
+     * will also include a "fullScreenIntent" that will cause the
+     * InCallScreen to be launched, unless the current foreground activity
+     * is marked as "immersive".
+     *
+     * (This is the mechanism that actually brings up the incoming call UI
+     * when we receive a "new ringing connection" event from the telephony
+     * layer.)
+     *
+     * Also note that this method is safe to call even if the phone isn't
+     * actually ringing (or, more likely, if an incoming call *was*
+     * ringing briefly but then disconnected).  In that case, we'll simply
+     * update or cancel the in-call notification based on the current
+     * phone state.
+     *
+     * @see #updateInCallNotification(InCallState,CallList)
+     */
+    public void updateNotification(InCallState state, CallList callList) {
+        updateInCallNotification(state, callList);
+    }
+
+    /**
+     * Take down the in-call notification.
+     * @see #updateInCallNotification(InCallState,CallList)
+     */
+    private void cancelNotification() {
+        if (!TextUtils.isEmpty(mCallId)) {
+            CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            mCallId = null;
+        }
+        if (mCurrentNotification != NOTIFICATION_NONE) {
+            Log.d(this, "cancelInCall()...");
+            mNotificationManager.cancel(mCurrentNotification);
+        }
+        mCurrentNotification = NOTIFICATION_NONE;
+    }
+
+    /**
+     * Should only be called from a irrecoverable state where it is necessary to dismiss all
+     * notifications.
+     */
+    static void clearAllCallNotifications(Context backupContext) {
+        Log.i(StatusBarNotifier.class.getSimpleName(),
+                "Something terrible happened. Clear all InCall notifications");
+
+        NotificationManager notificationManager =
+                (NotificationManager) backupContext.getSystemService(Context.NOTIFICATION_SERVICE);
+        notificationManager.cancel(NOTIFICATION_IN_CALL);
+        notificationManager.cancel(NOTIFICATION_INCOMING_CALL);
+    }
+
+    /**
+     * Helper method for updateInCallNotification() and
+     * updateNotification(): Update the phone app's
+     * status bar notification based on the current telephony state, or
+     * cancels the notification if the phone is totally idle.
+     */
+    private void updateInCallNotification(final InCallState state, CallList callList) {
+        Log.d(this, "updateInCallNotification...");
+
+        final Call call = getCallToShow(callList);
+
+        if (call != null) {
+            showNotification(call);
+        } else {
+            cancelNotification();
+        }
+    }
+
+    private void showNotification(final Call call) {
+        final boolean isIncoming = (call.getState() == Call.State.INCOMING ||
+                call.getState() == Call.State.CALL_WAITING);
+        if (!TextUtils.isEmpty(mCallId)) {
+            CallList.getInstance().removeCallUpdateListener(mCallId, this);
+        }
+        mCallId = call.getId();
+        CallList.getInstance().addCallUpdateListener(call.getId(), this);
+
+        // we make a call to the contact info cache to query for supplemental data to what the
+        // call provides.  This includes the contact name and photo.
+        // This callback will always get called immediately and synchronously with whatever data
+        // it has available, and may make a subsequent call later (same thread) if it had to
+        // call into the contacts provider for more data.
+        mContactInfoCache.findInfo(call, isIncoming, new ContactInfoCacheCallback() {
+            @Override
+            public void onContactInfoComplete(String callId, ContactCacheEntry entry) {
+                Call call = CallList.getInstance().getCallById(callId);
+                if (call != null) {
+                    call.getLogState().contactLookupResult = entry.contactLookupResult;
+                    buildAndSendNotification(call, entry);
+                }
+            }
+
+            @Override
+            public void onImageLoadComplete(String callId, ContactCacheEntry entry) {
+                Call call = CallList.getInstance().getCallById(callId);
+                if (call != null) {
+                    buildAndSendNotification(call, entry);
+                }
+            }
+
+            @Override
+            public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {}
+        });
+    }
+
+    /**
+     * Sets up the main Ui for the notification
+     */
+    private void buildAndSendNotification(Call originalCall, ContactCacheEntry contactInfo) {
+
+        // This can get called to update an existing notification after contact information has come
+        // back. However, it can happen much later. Before we continue, we need to make sure that
+        // the call being passed in is still the one we want to show in the notification.
+        final Call call = getCallToShow(CallList.getInstance());
+        if (call == null || !call.getId().equals(originalCall.getId())) {
+            return;
+        }
+
+        final int callState = call.getState();
+
+        // Check if data has changed; if nothing is different, don't issue another notification.
+        final int iconResId = getIconToDisplay(call);
+        Bitmap largeIcon = getLargeIconToDisplay(contactInfo, call);
+        final String content =
+                getContentString(call, contactInfo.userType);
+        final String contentTitle = getContentTitle(contactInfo, call);
+
+        final int notificationType;
+        if (callState == Call.State.INCOMING || callState == Call.State.CALL_WAITING) {
+            notificationType = NOTIFICATION_INCOMING_CALL;
+        } else {
+            notificationType = NOTIFICATION_IN_CALL;
+        }
+
+        if (!checkForChangeAndSaveData(iconResId, content, largeIcon, contentTitle, callState,
+                notificationType, contactInfo.contactRingtoneUri)) {
+            return;
+        }
+
+        if (largeIcon != null) {
+            largeIcon = getRoundedIcon(largeIcon);
+        }
+
+        /*
+         * Nothing more to check...build and send it.
+         */
+        final Notification.Builder builder = getNotificationBuilder();
+
+        // Set up the main intent to send the user to the in-call screen
+        final PendingIntent inCallPendingIntent = createLaunchPendingIntent();
+        builder.setContentIntent(inCallPendingIntent);
+
+        // Set the intent as a full screen intent as well if a call is incoming
+        if (notificationType == NOTIFICATION_INCOMING_CALL
+                && !InCallPresenter.getInstance().isShowingInCallUi()) {
+            configureFullScreenIntent(builder, inCallPendingIntent, call);
+            // Set the notification category for incoming calls
+            builder.setCategory(Notification.CATEGORY_CALL);
+        }
+
+        // Set the content
+        builder.setContentText(content);
+        builder.setSmallIcon(iconResId);
+        builder.setContentTitle(contentTitle);
+        builder.setLargeIcon(largeIcon);
+        builder.setColor(mContext.getResources().getColor(R.color.dialer_theme_color));
+
+        final boolean isVideoUpgradeRequest = call.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+        if (isVideoUpgradeRequest) {
+            builder.setUsesChronometer(false);
+            addDismissUpgradeRequestAction(builder);
+            addAcceptUpgradeRequestAction(builder);
+        } else {
+            createIncomingCallNotification(call, callState, builder);
+        }
+
+        addPersonReference(builder, contactInfo, call);
+
+        /*
+         * Fire off the notification
+         */
+        Notification notification = builder.build();
+
+        if (mDialerRingtoneManager.shouldPlayRingtone(callState, contactInfo.contactRingtoneUri)) {
+            notification.flags |= Notification.FLAG_INSISTENT;
+            notification.sound = contactInfo.contactRingtoneUri;
+            AudioAttributes.Builder audioAttributes = new AudioAttributes.Builder();
+            audioAttributes.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC);
+            audioAttributes.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE);
+            notification.audioAttributes = audioAttributes.build();
+            if (mDialerRingtoneManager.shouldVibrate(mContext.getContentResolver())) {
+                notification.vibrate = VIBRATE_PATTERN;
+            }
+        }
+        if (mDialerRingtoneManager.shouldPlayCallWaitingTone(callState)) {
+            Log.v(this, "Playing call waiting tone");
+            mDialerRingtoneManager.playCallWaitingTone();
+        }
+        if (mCurrentNotification != notificationType && mCurrentNotification != NOTIFICATION_NONE) {
+            Log.i(this, "Previous notification already showing - cancelling "
+                    + mCurrentNotification);
+            mNotificationManager.cancel(mCurrentNotification);
+        }
+        Log.i(this, "Displaying notification for " + notificationType);
+        mNotificationManager.notify(notificationType, notification);
+        mCurrentNotification = notificationType;
+    }
+
+    private void createIncomingCallNotification(
+            Call call, int state, Notification.Builder builder) {
+        if (state == Call.State.ACTIVE) {
+            builder.setUsesChronometer(true);
+            builder.setWhen(call.getConnectTimeMillis());
+        } else {
+            builder.setUsesChronometer(false);
+        }
+
+        // Add hang up option for any active calls (active | onhold), outgoing calls (dialing).
+        if (state == Call.State.ACTIVE ||
+                state == Call.State.ONHOLD ||
+                Call.State.isDialing(state)) {
+            addHangupAction(builder);
+        } else if (state == Call.State.INCOMING || state == Call.State.CALL_WAITING) {
+            addDismissAction(builder);
+            if (call.isVideoCall(mContext)) {
+                addVoiceAction(builder);
+                addVideoCallAction(builder);
+            } else {
+                addAnswerAction(builder);
+            }
+        }
+    }
+
+    /**
+     * Checks the new notification data and compares it against any notification that we
+     * are already displaying. If the data is exactly the same, we return false so that
+     * we do not issue a new notification for the exact same data.
+     */
+    private boolean checkForChangeAndSaveData(int icon, String content, Bitmap largeIcon,
+            String contentTitle, int state, int notificationType, Uri ringtone) {
+
+        // The two are different:
+        // if new title is not null, it should be different from saved version OR
+        // if new title is null, the saved version should not be null
+        final boolean contentTitleChanged =
+                (contentTitle != null && !contentTitle.equals(mSavedContentTitle)) ||
+                (contentTitle == null && mSavedContentTitle != null);
+
+        // any change means we are definitely updating
+        boolean retval = (mSavedIcon != icon) || !Objects.equals(mSavedContent, content)
+                || (mCallState != state) || (mSavedLargeIcon != largeIcon)
+                || contentTitleChanged || !Objects.equals(mRingtone, ringtone);
+
+        // If we aren't showing a notification right now or the notification type is changing,
+        // definitely do an update.
+        if (mCurrentNotification != notificationType) {
+            if (mCurrentNotification == NOTIFICATION_NONE) {
+                Log.d(this, "Showing notification for first time.");
+            }
+            retval = true;
+        }
+
+        mSavedIcon = icon;
+        mSavedContent = content;
+        mCallState = state;
+        mSavedLargeIcon = largeIcon;
+        mSavedContentTitle = contentTitle;
+        mRingtone = ringtone;
+
+        if (retval) {
+            Log.d(this, "Data changed.  Showing notification");
+        }
+
+        return retval;
+    }
+
+    /**
+     * Returns the main string to use in the notification.
+     */
+    @NeededForTesting
+    String getContentTitle(ContactCacheEntry contactInfo, Call call) {
+        if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
+            return mContext.getResources().getString(R.string.card_title_conf_call);
+        }
+
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(contactInfo.namePrimary,
+                    contactInfo.nameAlternative, mContactsPreferences);
+        if (TextUtils.isEmpty(preferredName)) {
+            return TextUtils.isEmpty(contactInfo.number) ? null : BidiFormatter.getInstance()
+                    .unicodeWrap(contactInfo.number, TextDirectionHeuristics.LTR);
+        }
+        return preferredName;
+    }
+
+    private void addPersonReference(Notification.Builder builder, ContactCacheEntry contactInfo,
+            Call call) {
+        if (contactInfo.lookupUri != null) {
+            builder.addPerson(contactInfo.lookupUri.toString());
+        } else if (!TextUtils.isEmpty(call.getNumber())) {
+            builder.addPerson(Uri.fromParts(PhoneAccount.SCHEME_TEL,
+                            call.getNumber(), null).toString());
+        }
+    }
+
+    /**
+     * Gets a large icon from the contact info object to display in the notification.
+     */
+    private Bitmap getLargeIconToDisplay(ContactCacheEntry contactInfo, Call call) {
+        Bitmap largeIcon = null;
+        if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
+            largeIcon = BitmapFactory.decodeResource(mContext.getResources(),
+                    R.drawable.img_conference);
+        }
+        if (contactInfo.photo != null && (contactInfo.photo instanceof BitmapDrawable)) {
+            largeIcon = ((BitmapDrawable) contactInfo.photo).getBitmap();
+        }
+        return largeIcon;
+    }
+
+    private Bitmap getRoundedIcon(Bitmap bitmap) {
+        if (bitmap == null) {
+            return null;
+        }
+        final int height = (int) mContext.getResources().getDimension(
+                android.R.dimen.notification_large_icon_height);
+        final int width = (int) mContext.getResources().getDimension(
+                android.R.dimen.notification_large_icon_width);
+        return BitmapUtil.getRoundedBitmap(bitmap, width, height);
+    }
+
+    /**
+     * Returns the appropriate icon res Id to display based on the call for which
+     * we want to display information.
+     */
+    private int getIconToDisplay(Call call) {
+        // Even if both lines are in use, we only show a single item in
+        // the expanded Notifications UI.  It's labeled "Ongoing call"
+        // (or "On hold" if there's only one call, and it's on hold.)
+        // Also, we don't have room to display caller-id info from two
+        // different calls.  So if both lines are in use, display info
+        // from the foreground call.  And if there's a ringing call,
+        // display that regardless of the state of the other calls.
+        if (call.getState() == Call.State.ONHOLD) {
+            return R.drawable.ic_phone_paused_white_24dp;
+        } else if (call.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            return R.drawable.ic_videocam;
+        }
+        return R.drawable.ic_call_white_24dp;
+    }
+
+    /**
+     * Returns the message to use with the notification.
+     */
+    private String getContentString(Call call, @UserType long userType) {
+        boolean isIncomingOrWaiting = call.getState() == Call.State.INCOMING ||
+                call.getState() == Call.State.CALL_WAITING;
+
+        if (isIncomingOrWaiting &&
+                call.getNumberPresentation() == TelecomManager.PRESENTATION_ALLOWED) {
+
+            if (!TextUtils.isEmpty(call.getChildNumber())) {
+                return mContext.getString(R.string.child_number, call.getChildNumber());
+            } else if (!TextUtils.isEmpty(call.getCallSubject()) && call.isCallSubjectSupported()) {
+                return call.getCallSubject();
+            }
+        }
+
+        int resId = R.string.notification_ongoing_call;
+        if (call.hasProperty(Details.PROPERTY_WIFI)) {
+            resId = R.string.notification_ongoing_call_wifi;
+        }
+
+        if (isIncomingOrWaiting) {
+            if (call.hasProperty(Details.PROPERTY_WIFI)) {
+                resId = R.string.notification_incoming_call_wifi;
+            } else {
+                resId = R.string.notification_incoming_call;
+            }
+        } else if (call.getState() == Call.State.ONHOLD) {
+            resId = R.string.notification_on_hold;
+        } else if (Call.State.isDialing(call.getState())) {
+            resId = R.string.notification_dialing;
+        } else if (call.getSessionModificationState()
+                == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+            resId = R.string.notification_requesting_video_call;
+        }
+
+        // Is the call placed through work connection service.
+        boolean isWorkCall = call.hasProperty(PROPERTY_WORK_CALL);
+        if(userType == ContactsUtils.USER_TYPE_WORK || isWorkCall) {
+            resId = getWorkStringFromPersonalString(resId);
+        }
+
+        return mContext.getString(resId);
+    }
+
+    private static int getWorkStringFromPersonalString(int resId) {
+        if (resId == R.string.notification_ongoing_call) {
+            return R.string.notification_ongoing_work_call;
+        } else if (resId == R.string.notification_ongoing_call_wifi) {
+            return R.string.notification_ongoing_work_call_wifi;
+        } else if (resId == R.string.notification_incoming_call_wifi) {
+            return R.string.notification_incoming_work_call_wifi;
+        } else if (resId == R.string.notification_incoming_call) {
+            return R.string.notification_incoming_work_call;
+        } else {
+            return resId;
+        }
+    }
+
+    /**
+     * Gets the most relevant call to display in the notification.
+     */
+    private Call getCallToShow(CallList callList) {
+        if (callList == null) {
+            return null;
+        }
+        Call call = callList.getIncomingCall();
+        if (call == null) {
+            call = callList.getOutgoingCall();
+        }
+        if (call == null) {
+            call = callList.getVideoUpgradeRequestCall();
+        }
+        if (call == null) {
+            call = callList.getActiveOrBackgroundCall();
+        }
+        return call;
+    }
+
+    private void addAnswerAction(Notification.Builder builder) {
+        Log.d(this, "Will show \"answer\" action in the incoming call Notification");
+
+        PendingIntent answerVoicePendingIntent = createNotificationPendingIntent(
+                mContext, ACTION_ANSWER_VOICE_INCOMING_CALL);
+        builder.addAction(R.drawable.ic_call_white_24dp,
+                mContext.getText(R.string.notification_action_answer),
+                answerVoicePendingIntent);
+    }
+
+    private void addDismissAction(Notification.Builder builder) {
+        Log.d(this, "Will show \"dismiss\" action in the incoming call Notification");
+
+        PendingIntent declinePendingIntent =
+                createNotificationPendingIntent(mContext, ACTION_DECLINE_INCOMING_CALL);
+        builder.addAction(R.drawable.ic_close_dk,
+                mContext.getText(R.string.notification_action_dismiss),
+                declinePendingIntent);
+    }
+
+    private void addHangupAction(Notification.Builder builder) {
+        Log.d(this, "Will show \"hang-up\" action in the ongoing active call Notification");
+
+        PendingIntent hangupPendingIntent =
+                createNotificationPendingIntent(mContext, ACTION_HANG_UP_ONGOING_CALL);
+        builder.addAction(R.drawable.ic_call_end_white_24dp,
+                mContext.getText(R.string.notification_action_end_call),
+                hangupPendingIntent);
+    }
+
+    private void addVideoCallAction(Notification.Builder builder) {
+        Log.i(this, "Will show \"video\" action in the incoming call Notification");
+
+        PendingIntent answerVideoPendingIntent = createNotificationPendingIntent(
+                mContext, ACTION_ANSWER_VIDEO_INCOMING_CALL);
+        builder.addAction(R.drawable.ic_videocam,
+                mContext.getText(R.string.notification_action_answer_video),
+                answerVideoPendingIntent);
+    }
+
+    private void addVoiceAction(Notification.Builder builder) {
+        Log.d(this, "Will show \"voice\" action in the incoming call Notification");
+
+        PendingIntent answerVoicePendingIntent = createNotificationPendingIntent(
+                mContext, ACTION_ANSWER_VOICE_INCOMING_CALL);
+        builder.addAction(R.drawable.ic_call_white_24dp,
+                mContext.getText(R.string.notification_action_answer_voice),
+                answerVoicePendingIntent);
+    }
+
+    private void addAcceptUpgradeRequestAction(Notification.Builder builder) {
+        Log.i(this, "Will show \"accept upgrade\" action in the incoming call Notification");
+
+        PendingIntent acceptVideoPendingIntent = createNotificationPendingIntent(
+                mContext, ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST);
+        builder.addAction(0, mContext.getText(R.string.notification_action_accept),
+                acceptVideoPendingIntent);
+    }
+
+    private void addDismissUpgradeRequestAction(Notification.Builder builder) {
+        Log.i(this, "Will show \"dismiss upgrade\" action in the incoming call Notification");
+
+        PendingIntent declineVideoPendingIntent = createNotificationPendingIntent(
+                mContext, ACTION_DECLINE_VIDEO_UPGRADE_REQUEST);
+        builder.addAction(0, mContext.getText(R.string.notification_action_dismiss),
+                declineVideoPendingIntent);
+    }
+
+    /**
+     * Adds fullscreen intent to the builder.
+     */
+    private void configureFullScreenIntent(Notification.Builder builder, PendingIntent intent,
+            Call call) {
+        // Ok, we actually want to launch the incoming call
+        // UI at this point (in addition to simply posting a notification
+        // to the status bar).  Setting fullScreenIntent will cause
+        // the InCallScreen to be launched immediately *unless* the
+        // current foreground activity is marked as "immersive".
+        Log.d(this, "- Setting fullScreenIntent: " + intent);
+        builder.setFullScreenIntent(intent, true);
+
+        // Ugly hack alert:
+        //
+        // The NotificationManager has the (undocumented) behavior
+        // that it will *ignore* the fullScreenIntent field if you
+        // post a new Notification that matches the ID of one that's
+        // already active.  Unfortunately this is exactly what happens
+        // when you get an incoming call-waiting call:  the
+        // "ongoing call" notification is already visible, so the
+        // InCallScreen won't get launched in this case!
+        // (The result: if you bail out of the in-call UI while on a
+        // call and then get a call-waiting call, the incoming call UI
+        // won't come up automatically.)
+        //
+        // The workaround is to just notice this exact case (this is a
+        // call-waiting call *and* the InCallScreen is not in the
+        // foreground) and manually cancel the in-call notification
+        // before (re)posting it.
+        //
+        // TODO: there should be a cleaner way of avoiding this
+        // problem (see discussion in bug 3184149.)
+
+        // If a call is onhold during an incoming call, the call actually comes in as
+        // INCOMING.  For that case *and* traditional call-waiting, we want to
+        // cancel the notification.
+        boolean isCallWaiting = (call.getState() == Call.State.CALL_WAITING ||
+                (call.getState() == Call.State.INCOMING &&
+                        CallList.getInstance().getBackgroundCall() != null));
+
+        if (isCallWaiting) {
+            Log.i(this, "updateInCallNotification: call-waiting! force relaunch...");
+            // Cancel the IN_CALL_NOTIFICATION immediately before
+            // (re)posting it; this seems to force the
+            // NotificationManager to launch the fullScreenIntent.
+            mNotificationManager.cancel(NOTIFICATION_IN_CALL);
+        }
+    }
+
+    private Notification.Builder getNotificationBuilder() {
+        final Notification.Builder builder = new Notification.Builder(mContext);
+        builder.setOngoing(true);
+
+        // Make the notification prioritized over the other normal notifications.
+        builder.setPriority(Notification.PRIORITY_HIGH);
+
+        return builder;
+    }
+
+    private PendingIntent createLaunchPendingIntent() {
+
+        final Intent intent = InCallPresenter.getInstance().getInCallIntent(
+                false /* showDialpad */, false /* newOutgoingCall */);
+
+        // PendingIntent that can be used to launch the InCallActivity.  The
+        // system fires off this intent if the user pulls down the windowshade
+        // and clicks the notification's expanded view.  It's also used to
+        // launch the InCallActivity immediately when when there's an incoming
+        // call (see the "fullScreenIntent" field below).
+        PendingIntent inCallPendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
+
+        return inCallPendingIntent;
+    }
+
+    /**
+     * Returns PendingIntent for answering a phone call. This will typically be used from
+     * Notification context.
+     */
+    private static PendingIntent createNotificationPendingIntent(Context context, String action) {
+        final Intent intent = new Intent(action, null,
+                context, NotificationBroadcastReceiver.class);
+        return PendingIntent.getBroadcast(context, 0, intent, 0);
+    }
+
+    @Override
+    public void onCallChanged(Call call) {
+        if (CallList.getInstance().getIncomingCall() == null) {
+            mDialerRingtoneManager.stopCallWaitingTone();
+        }
+    }
+
+    /**
+     * Responds to changes in the session modification state for the call by dismissing the
+     * status bar notification as required.
+     *
+     * @param sessionModificationState The new session modification state.
+     */
+    @Override
+    public void onSessionModificationStateChange(int sessionModificationState) {
+        if (sessionModificationState == Call.SessionModificationState.NO_REQUEST) {
+            if (mCallId != null) {
+                CallList.getInstance().removeCallUpdateListener(mCallId, this);
+            }
+
+            updateNotification(mInCallState, CallList.getInstance());
+        }
+    }
+
+    @Override
+    public void onLastForwardedNumberChange() {
+        // no-op
+    }
+
+    @Override
+    public void onChildNumberChange() {
+        // no-op
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/TelecomAdapter.java b/InCallUI/src/com/android/incallui/TelecomAdapter.java
new file mode 100644
index 0000000..f172270
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/TelecomAdapter.java
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.os.Looper;
+import android.telecom.InCallService;
+import android.telecom.PhoneAccountHandle;
+
+import java.util.List;
+
+final class TelecomAdapter implements InCallServiceListener {
+    private static final String ADD_CALL_MODE_KEY = "add_call_mode";
+
+    private static TelecomAdapter sInstance;
+    private InCallService mInCallService;
+
+    static TelecomAdapter getInstance() {
+        Preconditions.checkState(Looper.getMainLooper().getThread() == Thread.currentThread());
+        if (sInstance == null) {
+            sInstance = new TelecomAdapter();
+        }
+        return sInstance;
+    }
+
+    private TelecomAdapter() {
+    }
+
+    @Override
+    public void setInCallService(InCallService inCallService) {
+        mInCallService = inCallService;
+    }
+
+    @Override
+    public void clearInCallService() {
+        mInCallService = null;
+    }
+
+    private android.telecom.Call getTelecomCallById(String callId) {
+        Call call = CallList.getInstance().getCallById(callId);
+        return call == null ? null : call.getTelecomCall();
+    }
+
+    void answerCall(String callId, int videoState) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.answer(videoState);
+        } else {
+            Log.e(this, "error answerCall, call not in call list: " + callId);
+        }
+    }
+
+    void rejectCall(String callId, boolean rejectWithMessage, String message) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.reject(rejectWithMessage, message);
+        } else {
+            Log.e(this, "error rejectCall, call not in call list: " + callId);
+        }
+    }
+
+    void disconnectCall(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.disconnect();
+        } else {
+            Log.e(this, "error disconnectCall, call not in call list " + callId);
+        }
+    }
+
+    void holdCall(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.hold();
+        } else {
+            Log.e(this, "error holdCall, call not in call list " + callId);
+        }
+    }
+
+    void unholdCall(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.unhold();
+        } else {
+            Log.e(this, "error unholdCall, call not in call list " + callId);
+        }
+    }
+
+    void mute(boolean shouldMute) {
+        if (mInCallService != null) {
+            mInCallService.setMuted(shouldMute);
+        } else {
+            Log.e(this, "error mute, mInCallService is null");
+        }
+    }
+
+    void setAudioRoute(int route) {
+        if (mInCallService != null) {
+            mInCallService.setAudioRoute(route);
+        } else {
+            Log.e(this, "error setAudioRoute, mInCallService is null");
+        }
+    }
+
+    void separateCall(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.splitFromConference();
+        } else {
+            Log.e(this, "error separateCall, call not in call list " + callId);
+        }
+    }
+
+    void merge(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            List<android.telecom.Call> conferenceable = call.getConferenceableCalls();
+            if (!conferenceable.isEmpty()) {
+                call.conference(conferenceable.get(0));
+            } else {
+                if (call.getDetails().can(android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE)) {
+                    call.mergeConference();
+                }
+            }
+        } else {
+            Log.e(this, "error merge, call not in call list " + callId);
+        }
+    }
+
+    void swap(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            if (call.getDetails().can(android.telecom.Call.Details.CAPABILITY_SWAP_CONFERENCE)) {
+                call.swapConference();
+            }
+        } else {
+            Log.e(this, "error swap, call not in call list " + callId);
+        }
+    }
+
+    void addCall() {
+        if (mInCallService != null) {
+            Intent intent = new Intent(Intent.ACTION_DIAL);
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+            // when we request the dialer come up, we also want to inform
+            // it that we're going through the "add call" option from the
+            // InCallScreen / PhoneUtils.
+            intent.putExtra(ADD_CALL_MODE_KEY, true);
+            try {
+                Log.d(this, "Sending the add Call intent");
+                mInCallService.startActivity(intent);
+            } catch (ActivityNotFoundException e) {
+                // This is rather rare but possible.
+                // Note: this method is used even when the phone is encrypted. At that moment
+                // the system may not find any Activity which can accept this Intent.
+                Log.e(this, "Activity for adding calls isn't found.", e);
+            }
+        }
+    }
+
+    void playDtmfTone(String callId, char digit) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.playDtmfTone(digit);
+        } else {
+            Log.e(this, "error playDtmfTone, call not in call list " + callId);
+        }
+    }
+
+    void stopDtmfTone(String callId) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.stopDtmfTone();
+        } else {
+            Log.e(this, "error stopDtmfTone, call not in call list " + callId);
+        }
+    }
+
+    void postDialContinue(String callId, boolean proceed) {
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.postDialContinue(proceed);
+        } else {
+            Log.e(this, "error postDialContinue, call not in call list " + callId);
+        }
+    }
+
+    void phoneAccountSelected(String callId, PhoneAccountHandle accountHandle, boolean setDefault) {
+        if (accountHandle == null) {
+            Log.e(this, "error phoneAccountSelected, accountHandle is null");
+            // TODO: Do we really want to send null accountHandle?
+        }
+
+        android.telecom.Call call = getTelecomCallById(callId);
+        if (call != null) {
+            call.phoneAccountSelected(accountHandle, setDefault);
+        } else {
+            Log.e(this, "error phoneAccountSelected, call not in call list " + callId);
+        }
+    }
+
+    boolean canAddCall() {
+        if (mInCallService != null) {
+            return mInCallService.canAddCall();
+        }
+        return false;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/Ui.java b/InCallUI/src/com/android/incallui/Ui.java
new file mode 100644
index 0000000..e453ccb
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/Ui.java
@@ -0,0 +1,24 @@
+/*
+ * 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
+ */
+
+package com.android.incallui;
+
+/**
+ * Base class for all presenter ui.
+ */
+public interface Ui {
+
+}
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
new file mode 100644
index 0000000..cb8c644
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -0,0 +1,899 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.graphics.Matrix;
+import android.graphics.Point;
+import android.graphics.SurfaceTexture;
+import android.os.Bundle;
+import android.view.Display;
+import android.view.LayoutInflater;
+import android.view.Surface;
+import android.view.TextureView;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.view.ViewTreeObserver;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import com.android.dialer.R;
+import com.android.phone.common.animation.AnimUtils;
+import com.google.common.base.Objects;
+
+/**
+ * Fragment containing video calling surfaces.
+ */
+public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
+        VideoCallPresenter.VideoCallUi> implements VideoCallPresenter.VideoCallUi {
+    private static final String TAG = VideoCallFragment.class.getSimpleName();
+    private static final boolean DEBUG = false;
+
+    /**
+     * Used to indicate that the surface dimensions are not set.
+     */
+    private static final int DIMENSIONS_NOT_SET = -1;
+
+    /**
+     * Surface ID for the display surface.
+     */
+    public static final int SURFACE_DISPLAY = 1;
+
+    /**
+     * Surface ID for the preview surface.
+     */
+    public static final int SURFACE_PREVIEW = 2;
+
+    /**
+     * Used to indicate that the UI rotation is unknown.
+     */
+    public static final int ORIENTATION_UNKNOWN = -1;
+
+    // Static storage used to retain the video surfaces across Activity restart.
+    // TextureViews are not parcelable, so it is not possible to store them in the saved state.
+    private static boolean sVideoSurfacesInUse = false;
+    private static VideoCallSurface sPreviewSurface = null;
+    private static VideoCallSurface sDisplaySurface = null;
+    private static Point sDisplaySize = null;
+
+    /**
+     * {@link ViewStub} holding the video call surfaces.  This is the parent for the
+     * {@link VideoCallFragment}.  Used to ensure that the video surfaces are only inflated when
+     * required.
+     */
+    private ViewStub mVideoViewsStub;
+
+    /**
+     * Inflated view containing the video call surfaces represented by the {@link ViewStub}.
+     */
+    private View mVideoViews;
+
+    /**
+     * The {@link FrameLayout} containing the preview surface.
+     */
+    private View mPreviewVideoContainer;
+
+    /**
+     * Icon shown to indicate that the outgoing camera has been turned off.
+     */
+    private View mCameraOff;
+
+    /**
+     * {@link ImageView} containing the user's profile photo.
+     */
+    private ImageView mPreviewPhoto;
+
+    /**
+     * {@code True} when the layout of the activity has been completed.
+     */
+    private boolean mIsLayoutComplete = false;
+
+    /**
+     * {@code True} if in landscape mode.
+     */
+    private boolean mIsLandscape;
+
+    private int mAnimationDuration;
+
+    /**
+     * Inner-class representing a {@link TextureView} and its associated {@link SurfaceTexture} and
+     * {@link Surface}.  Used to manage the lifecycle of these objects across device orientation
+     * changes.
+     */
+    private static class VideoCallSurface implements TextureView.SurfaceTextureListener,
+            View.OnClickListener, View.OnAttachStateChangeListener {
+        private int mSurfaceId;
+        private VideoCallPresenter mPresenter;
+        private TextureView mTextureView;
+        private SurfaceTexture mSavedSurfaceTexture;
+        private Surface mSavedSurface;
+        private boolean mIsDoneWithSurface;
+        private int mWidth = DIMENSIONS_NOT_SET;
+        private int mHeight = DIMENSIONS_NOT_SET;
+
+        /**
+         * Creates an instance of a {@link VideoCallSurface}.
+         *
+         * @param surfaceId The surface ID of the surface.
+         * @param textureView The {@link TextureView} for the surface.
+         */
+        public VideoCallSurface(VideoCallPresenter presenter, int surfaceId,
+                TextureView textureView) {
+            this(presenter, surfaceId, textureView, DIMENSIONS_NOT_SET, DIMENSIONS_NOT_SET);
+        }
+
+        /**
+         * Creates an instance of a {@link VideoCallSurface}.
+         *
+         * @param surfaceId The surface ID of the surface.
+         * @param textureView The {@link TextureView} for the surface.
+         * @param width The width of the surface.
+         * @param height The height of the surface.
+         */
+        public VideoCallSurface(VideoCallPresenter presenter,int surfaceId, TextureView textureView,
+                int width, int height) {
+            Log.d(this, "VideoCallSurface: surfaceId=" + surfaceId +
+                    " width=" + width + " height=" + height);
+            mPresenter = presenter;
+            mWidth = width;
+            mHeight = height;
+            mSurfaceId = surfaceId;
+
+            recreateView(textureView);
+        }
+
+        /**
+         * Recreates a {@link VideoCallSurface} after a device orientation change.  Re-applies the
+         * saved {@link SurfaceTexture} to the
+         *
+         * @param view The {@link TextureView}.
+         */
+        public void recreateView(TextureView view) {
+            if (DEBUG) {
+                Log.i(TAG, "recreateView: " + view);
+            }
+
+            if (mTextureView == view) {
+                return;
+            }
+
+            mTextureView = view;
+            mTextureView.setSurfaceTextureListener(this);
+            mTextureView.setOnClickListener(this);
+
+            final boolean areSameSurfaces =
+                    Objects.equal(mSavedSurfaceTexture, mTextureView.getSurfaceTexture());
+            Log.d(this, "recreateView: SavedSurfaceTexture=" + mSavedSurfaceTexture
+                    + " areSameSurfaces=" + areSameSurfaces);
+            if (mSavedSurfaceTexture != null && !areSameSurfaces) {
+                mTextureView.setSurfaceTexture(mSavedSurfaceTexture);
+                if (createSurface(mWidth, mHeight)) {
+                    onSurfaceCreated();
+                }
+            }
+            mIsDoneWithSurface = false;
+        }
+
+        public void resetPresenter(VideoCallPresenter presenter) {
+            Log.d(this, "resetPresenter: CurrentPresenter=" + mPresenter + " NewPresenter="
+                    + presenter);
+            mPresenter = presenter;
+        }
+
+        /**
+         * Handles {@link SurfaceTexture} callback to indicate that a {@link SurfaceTexture} has
+         * been successfully created.
+         *
+         * @param surfaceTexture The {@link SurfaceTexture} which has been created.
+         * @param width The width of the {@link SurfaceTexture}.
+         * @param height The height of the {@link SurfaceTexture}.
+         */
+        @Override
+        public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width,
+                int height) {
+            boolean surfaceCreated;
+            if (DEBUG) {
+                Log.i(TAG, "onSurfaceTextureAvailable: " + surfaceTexture);
+            }
+            // Where there is no saved {@link SurfaceTexture} available, use the newly created one.
+            // If a saved {@link SurfaceTexture} is available, we are re-creating after an
+            // orientation change.
+            Log.d(this, " onSurfaceTextureAvailable mSurfaceId=" + mSurfaceId + " surfaceTexture="
+                    + surfaceTexture + " width=" + width
+                    + " height=" + height + " mSavedSurfaceTexture=" + mSavedSurfaceTexture);
+            Log.d(this, " onSurfaceTextureAvailable VideoCallPresenter=" + mPresenter);
+            if (mSavedSurfaceTexture == null) {
+                mSavedSurfaceTexture = surfaceTexture;
+                surfaceCreated = createSurface(width, height);
+            } else {
+                // A saved SurfaceTexture was found.
+                Log.d(this, " onSurfaceTextureAvailable: Replacing with cached surface...");
+                mTextureView.setSurfaceTexture(mSavedSurfaceTexture);
+                surfaceCreated = true;
+            }
+
+            // Inform presenter that the surface is available.
+            if (surfaceCreated) {
+                onSurfaceCreated();
+            }
+        }
+
+        private void onSurfaceCreated() {
+            if (mPresenter != null) {
+                mPresenter.onSurfaceCreated(mSurfaceId);
+            } else {
+                Log.e(this, "onSurfaceTextureAvailable: Presenter is null");
+            }
+        }
+
+        /**
+         * Handles a change in the {@link SurfaceTexture}'s size.
+         *
+         * @param surfaceTexture The {@link SurfaceTexture}.
+         * @param width The new width.
+         * @param height The new height.
+         */
+        @Override
+        public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int width,
+                int height) {
+            // Not handled
+        }
+
+        /**
+         * Handles {@link SurfaceTexture} destruct callback, indicating that it has been destroyed.
+         *
+         * @param surfaceTexture The {@link SurfaceTexture}.
+         * @return {@code True} if the {@link TextureView} can release the {@link SurfaceTexture}.
+         */
+        @Override
+        public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
+            /**
+             * Destroying the surface texture; inform the presenter so it can null the surfaces.
+             */
+            Log.d(this, " onSurfaceTextureDestroyed mSurfaceId=" + mSurfaceId + " surfaceTexture="
+                    + surfaceTexture + " SavedSurfaceTexture=" + mSavedSurfaceTexture
+                    + " SavedSurface=" + mSavedSurface);
+            Log.d(this, " onSurfaceTextureDestroyed VideoCallPresenter=" + mPresenter);
+
+            // Notify presenter if it is not null.
+            onSurfaceDestroyed();
+
+            if (mIsDoneWithSurface) {
+                onSurfaceReleased();
+                if (mSavedSurface != null) {
+                    mSavedSurface.release();
+                    mSavedSurface = null;
+                }
+            }
+            return mIsDoneWithSurface;
+        }
+
+        private void onSurfaceDestroyed() {
+            if (mPresenter != null) {
+                mPresenter.onSurfaceDestroyed(mSurfaceId);
+            } else {
+                Log.e(this, "onSurfaceTextureDestroyed: Presenter is null.");
+            }
+        }
+
+        /**
+         * Handles {@link SurfaceTexture} update callback.
+         * @param surface
+         */
+        @Override
+        public void onSurfaceTextureUpdated(SurfaceTexture surface) {
+            // Not Handled
+        }
+
+        @Override
+        public void onViewAttachedToWindow(View v) {
+            if (DEBUG) {
+                Log.i(TAG, "OnViewAttachedToWindow");
+            }
+            if (mSavedSurfaceTexture != null) {
+                mTextureView.setSurfaceTexture(mSavedSurfaceTexture);
+            }
+        }
+
+        @Override
+        public void onViewDetachedFromWindow(View v) {}
+
+        /**
+         * Retrieves the current {@link TextureView}.
+         *
+         * @return The {@link TextureView}.
+         */
+        public TextureView getTextureView() {
+            return mTextureView;
+        }
+
+        /**
+         * Called by the user presenter to indicate that the surface is no longer required due to a
+         * change in video state.  Releases and clears out the saved surface and surface textures.
+         */
+        public void setDoneWithSurface() {
+            Log.d(this, "setDoneWithSurface: SavedSurface=" + mSavedSurface
+                    + " SavedSurfaceTexture=" + mSavedSurfaceTexture);
+            mIsDoneWithSurface = true;
+            if (mTextureView != null && mTextureView.isAvailable()) {
+                return;
+            }
+
+            if (mSavedSurface != null) {
+                onSurfaceReleased();
+                mSavedSurface.release();
+                mSavedSurface = null;
+            }
+            if (mSavedSurfaceTexture != null) {
+                mSavedSurfaceTexture.release();
+                mSavedSurfaceTexture = null;
+            }
+        }
+
+        private void onSurfaceReleased() {
+            if (mPresenter != null) {
+                mPresenter.onSurfaceReleased(mSurfaceId);
+            } else {
+                Log.d(this, "setDoneWithSurface: Presenter is null.");
+            }
+        }
+
+        /**
+         * Retrieves the saved surface instance.
+         *
+         * @return The surface.
+         */
+        public Surface getSurface() {
+            return mSavedSurface;
+        }
+
+        /**
+         * Sets the dimensions of the surface.
+         *
+         * @param width The width of the surface, in pixels.
+         * @param height The height of the surface, in pixels.
+         */
+        public void setSurfaceDimensions(int width, int height) {
+            Log.d(this, "setSurfaceDimensions, width=" + width + " height=" + height);
+            mWidth = width;
+            mHeight = height;
+
+            if (width != DIMENSIONS_NOT_SET && height != DIMENSIONS_NOT_SET
+                    && mSavedSurfaceTexture != null) {
+                Log.d(this, "setSurfaceDimensions, mSavedSurfaceTexture is NOT equal to null.");
+                mSavedSurfaceTexture.setDefaultBufferSize(width, height);
+            }
+        }
+
+        /**
+         * Creates the {@link Surface}, adjusting the {@link SurfaceTexture} buffer size.
+         * @param width The width of the surface to create.
+         * @param height The height of the surface to create.
+         */
+        private boolean createSurface(int width, int height) {
+            Log.d(this, "createSurface mSavedSurfaceTexture=" + mSavedSurfaceTexture
+                    + " mSurfaceId =" + mSurfaceId + " mWidth " + width + " mHeight=" + height);
+            if (width != DIMENSIONS_NOT_SET && height != DIMENSIONS_NOT_SET
+                    && mSavedSurfaceTexture != null) {
+                mSavedSurfaceTexture.setDefaultBufferSize(width, height);
+                mSavedSurface = new Surface(mSavedSurfaceTexture);
+                return true;
+            }
+            return false;
+        }
+
+        /**
+         * Handles a user clicking the surface, which is the trigger to toggle the full screen
+         * Video UI.
+         *
+         * @param view The view receiving the click.
+         */
+        @Override
+        public void onClick(View view) {
+            if (mPresenter != null) {
+                mPresenter.onSurfaceClick(mSurfaceId);
+            } else {
+                Log.e(this, "onClick: Presenter is null.");
+            }
+        }
+
+        /**
+         * Returns the dimensions of the surface.
+         *
+         * @return The dimensions of the surface.
+         */
+        public Point getSurfaceDimensions() {
+            return new Point(mWidth, mHeight);
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mAnimationDuration = getResources().getInteger(R.integer.video_animation_duration);
+    }
+
+    /**
+     * Handles creation of the activity and initialization of the presenter.
+     *
+     * @param savedInstanceState The saved instance state.
+     */
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        mIsLandscape = getResources().getBoolean(R.bool.is_layout_landscape);
+
+        Log.d(this, "onActivityCreated: IsLandscape=" + mIsLandscape);
+        getPresenter().init(getActivity());
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        super.onCreateView(inflater, container, savedInstanceState);
+
+        final View view = inflater.inflate(R.layout.video_call_fragment, container, false);
+
+        return view;
+    }
+
+    /**
+     * Centers the display view vertically for portrait orientations. The view is centered within
+     * the available space not occupied by the call card. This is a no-op for landscape mode.
+     *
+     * @param displayVideo The video view to center.
+     */
+    private void centerDisplayView(View displayVideo) {
+        if (!mIsLandscape) {
+            ViewGroup.LayoutParams p = displayVideo.getLayoutParams();
+            int height = p.height;
+
+            float spaceBesideCallCard = InCallPresenter.getInstance().getSpaceBesideCallCard();
+            // If space beside call card is zeo, layout hasn't happened yet so there is no point
+            // in attempting to center the view.
+            if (Math.abs(spaceBesideCallCard - 0.0f) < 0.0001) {
+                return;
+            }
+            float videoViewTranslation = height / 2  - spaceBesideCallCard / 2;
+            displayVideo.setTranslationY(videoViewTranslation);
+        }
+    }
+
+    /**
+     * After creation of the fragment view, retrieves the required views.
+     *
+     * @param view The fragment view.
+     * @param savedInstanceState The saved instance state.
+     */
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        Log.d(this, "onViewCreated: VideoSurfacesInUse=" + sVideoSurfacesInUse);
+
+        mVideoViewsStub = (ViewStub) view.findViewById(R.id.videoCallViewsStub);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        Log.d(this, "onStop:");
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        Log.d(this, "onPause:");
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        Log.d(this, "onDestroyView:");
+    }
+
+    /**
+     * Creates the presenter for the {@link VideoCallFragment}.
+     * @return The presenter instance.
+     */
+    @Override
+    public VideoCallPresenter createPresenter() {
+        Log.d(this, "createPresenter");
+        VideoCallPresenter presenter = new VideoCallPresenter();
+        onPresenterChanged(presenter);
+        return presenter;
+    }
+
+    /**
+     * @return The user interface for the presenter, which is this fragment.
+     */
+    @Override
+    public VideoCallPresenter.VideoCallUi getUi() {
+        return this;
+    }
+
+    /**
+     * Inflate video surfaces.
+     *
+     * @param show {@code True} if the video surfaces should be shown.
+     */
+    private void inflateVideoUi(boolean show) {
+        int visibility = show ? View.VISIBLE : View.GONE;
+        getView().setVisibility(visibility);
+
+        if (show) {
+            inflateVideoCallViews();
+        }
+
+        if (mVideoViews != null) {
+            mVideoViews.setVisibility(visibility);
+        }
+    }
+
+    /**
+     * Hides and shows the incoming video view and changes the outgoing video view's state based on
+     * whether outgoing view is enabled or not.
+     */
+    public void showVideoViews(boolean previewPaused, boolean showIncoming) {
+        inflateVideoUi(true);
+
+        View incomingVideoView = mVideoViews.findViewById(R.id.incomingVideo);
+        if (incomingVideoView != null) {
+            incomingVideoView.setVisibility(showIncoming ? View.VISIBLE : View.INVISIBLE);
+        }
+        if (mCameraOff != null) {
+            mCameraOff.setVisibility(!previewPaused ? View.VISIBLE : View.INVISIBLE);
+        }
+        if (mPreviewPhoto != null) {
+            mPreviewPhoto.setVisibility(!previewPaused ? View.VISIBLE : View.INVISIBLE);
+        }
+    }
+
+    /**
+     * Hide all video views.
+     */
+    public void hideVideoUi() {
+        inflateVideoUi(false);
+    }
+
+    /**
+     * Cleans up the video telephony surfaces.  Used when the presenter indicates a change to an
+     * audio-only state.  Since the surfaces are static, it is important to ensure they are cleaned
+     * up promptly.
+     */
+    @Override
+    public void cleanupSurfaces() {
+        Log.d(this, "cleanupSurfaces");
+        if (sDisplaySurface != null) {
+            sDisplaySurface.setDoneWithSurface();
+            sDisplaySurface = null;
+        }
+        if (sPreviewSurface != null) {
+            sPreviewSurface.setDoneWithSurface();
+            sPreviewSurface = null;
+        }
+        sVideoSurfacesInUse = false;
+    }
+
+    @Override
+    public ImageView getPreviewPhotoView() {
+        return mPreviewPhoto;
+    }
+
+    /**
+     * Adjusts the location of the video preview view by the specified offset.
+     *
+     * @param shiftUp {@code true} if the preview should shift up, {@code false} if it should shift
+     *      down.
+     * @param offset The offset.
+     */
+    @Override
+    public void adjustPreviewLocation(boolean shiftUp, int offset) {
+        if (sPreviewSurface == null || mPreviewVideoContainer == null) {
+            return;
+        }
+
+        // Set the position of the secondary call info card to its starting location.
+        mPreviewVideoContainer.setTranslationY(shiftUp ? 0 : -offset);
+
+        // Animate the secondary card info slide up/down as it appears and disappears.
+        mPreviewVideoContainer.animate()
+                .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                .setDuration(mAnimationDuration)
+                .translationY(shiftUp ? -offset : 0)
+                .start();
+    }
+
+    private void onPresenterChanged(VideoCallPresenter presenter) {
+        Log.d(this, "onPresenterChanged: Presenter=" + presenter);
+        if (sDisplaySurface != null) {
+            sDisplaySurface.resetPresenter(presenter);;
+        }
+        if (sPreviewSurface != null) {
+            sPreviewSurface.resetPresenter(presenter);
+        }
+    }
+
+    /**
+     * @return {@code True} if the display video surface has been created.
+     */
+    @Override
+    public boolean isDisplayVideoSurfaceCreated() {
+        boolean ret = sDisplaySurface != null && sDisplaySurface.getSurface() != null;
+        Log.d(this, " isDisplayVideoSurfaceCreated returns " + ret);
+        return ret;
+    }
+
+    /**
+     * @return {@code True} if the preview video surface has been created.
+     */
+    @Override
+    public boolean isPreviewVideoSurfaceCreated() {
+        boolean ret = sPreviewSurface != null && sPreviewSurface.getSurface() != null;
+        Log.d(this, " isPreviewVideoSurfaceCreated returns " + ret);
+        return ret;
+    }
+
+    /**
+     * {@link android.view.Surface} on which incoming video for a video call is displayed.
+     * {@code Null} until the video views {@link android.view.ViewStub} is inflated.
+     */
+    @Override
+    public Surface getDisplayVideoSurface() {
+        return sDisplaySurface == null ? null : sDisplaySurface.getSurface();
+    }
+
+    /**
+     * {@link android.view.Surface} on which a preview of the outgoing video for a video call is
+     * displayed.  {@code Null} until the video views {@link android.view.ViewStub} is inflated.
+     */
+    @Override
+    public Surface getPreviewVideoSurface() {
+        return sPreviewSurface == null ? null : sPreviewSurface.getSurface();
+    }
+
+    /**
+     * Changes the dimensions of the preview surface.  Called when the dimensions change due to a
+     * device orientation change.
+     *
+     * @param width The new width.
+     * @param height The new height.
+     */
+    @Override
+    public void setPreviewSize(int width, int height) {
+        Log.d(this, "setPreviewSize: width=" + width + " height=" + height);
+        if (sPreviewSurface != null) {
+            TextureView preview = sPreviewSurface.getTextureView();
+
+            if (preview == null ) {
+                return;
+            }
+
+            // Set the dimensions of both the video surface and the FrameLayout containing it.
+            ViewGroup.LayoutParams params = preview.getLayoutParams();
+            params.width = width;
+            params.height = height;
+            preview.setLayoutParams(params);
+
+            if (mPreviewVideoContainer != null) {
+                ViewGroup.LayoutParams containerParams = mPreviewVideoContainer.getLayoutParams();
+                containerParams.width = width;
+                containerParams.height = height;
+                mPreviewVideoContainer.setLayoutParams(containerParams);
+            }
+
+            // The width and height are interchanged outside of this method based on the current
+            // orientation, so we can transform using "width", which will be either the width or
+            // the height.
+            Matrix transform = new Matrix();
+            transform.setScale(-1, 1, width/2, 0);
+            preview.setTransform(transform);
+        }
+    }
+
+    /**
+     * Sets the rotation of the preview surface.  Called when the dimensions change due to a
+     * device orientation change.
+     *
+     * Please note that the screen orientation passed in is subtracted from 360 to get the actual
+     * preview rotation values.
+     *
+     * @param rotation The screen orientation. One of -
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
+     */
+    @Override
+    public void setPreviewRotation(int orientation) {
+        Log.d(this, "setPreviewRotation: orientation=" + orientation);
+        if (sPreviewSurface != null) {
+            TextureView preview = sPreviewSurface.getTextureView();
+
+            if (preview == null ) {
+                return;
+            }
+
+            preview.setRotation(orientation);
+        }
+    }
+
+    @Override
+    public void setPreviewSurfaceSize(int width, int height) {
+        final boolean isPreviewSurfaceAvailable = sPreviewSurface != null;
+        Log.d(this, "setPreviewSurfaceSize: width=" + width + " height=" + height +
+                " isPreviewSurfaceAvailable=" + isPreviewSurfaceAvailable);
+        if (isPreviewSurfaceAvailable) {
+            sPreviewSurface.setSurfaceDimensions(width, height);
+        }
+    }
+
+    /**
+     * returns UI's current orientation.
+     */
+    @Override
+    public int getCurrentRotation() {
+        try {
+            return getActivity().getWindowManager().getDefaultDisplay().getRotation();
+        } catch (Exception e) {
+            Log.e(this, "getCurrentRotation: Retrieving current rotation failed. Ex=" + e);
+        }
+        return ORIENTATION_UNKNOWN;
+    }
+
+    /**
+     * Changes the dimensions of the display video surface. Called when the dimensions change due to
+     * a peer resolution update
+     *
+     * @param width The new width.
+     * @param height The new height.
+     */
+    @Override
+    public void setDisplayVideoSize(int width, int height) {
+        Log.v(this, "setDisplayVideoSize: width=" + width + " height=" + height);
+        if (sDisplaySurface != null) {
+            TextureView displayVideo = sDisplaySurface.getTextureView();
+            if (displayVideo == null) {
+                Log.e(this, "Display Video texture view is null. Bail out");
+                return;
+            }
+            sDisplaySize = new Point(width, height);
+            setSurfaceSizeAndTranslation(displayVideo, sDisplaySize);
+        } else {
+            Log.e(this, "Display Video Surface is null. Bail out");
+        }
+    }
+
+    /**
+     * Determines the size of the device screen.
+     *
+     * @return {@link Point} specifying the width and height of the screen.
+     */
+    @Override
+    public Point getScreenSize() {
+        // Get current screen size.
+        Display display = getActivity().getWindowManager().getDefaultDisplay();
+        Point size = new Point();
+        display.getSize(size);
+
+        return size;
+    }
+
+    /**
+     * Determines the size of the preview surface.
+     *
+     * @return {@link Point} specifying the width and height of the preview surface.
+     */
+    @Override
+    public Point getPreviewSize() {
+        if (sPreviewSurface == null) {
+            return null;
+        }
+        return sPreviewSurface.getSurfaceDimensions();
+    }
+
+    /**
+     * Inflates the {@link ViewStub} containing the incoming and outgoing surfaces, if necessary,
+     * and creates {@link VideoCallSurface} instances to track the surfaces.
+     */
+    private void inflateVideoCallViews() {
+        Log.d(this, "inflateVideoCallViews");
+        if (mVideoViews == null ) {
+            mVideoViews = mVideoViewsStub.inflate();
+        }
+
+        if (mVideoViews != null) {
+            mPreviewVideoContainer = mVideoViews.findViewById(R.id.previewVideoContainer);
+            mCameraOff = mVideoViews.findViewById(R.id.previewCameraOff);
+            mPreviewPhoto = (ImageView) mVideoViews.findViewById(R.id.previewProfilePhoto);
+
+            TextureView displaySurface = (TextureView) mVideoViews.findViewById(R.id.incomingVideo);
+
+            Log.d(this, "inflateVideoCallViews: sVideoSurfacesInUse=" + sVideoSurfacesInUse);
+            //If peer adjusted screen size is not available, set screen size to default display size
+            Point screenSize = sDisplaySize == null ? getScreenSize() : sDisplaySize;
+            setSurfaceSizeAndTranslation(displaySurface, screenSize);
+
+            if (!sVideoSurfacesInUse) {
+                // Where the video surfaces are not already in use (first time creating them),
+                // setup new VideoCallSurface instances to track them.
+                Log.d(this, " inflateVideoCallViews screenSize" + screenSize);
+
+                sDisplaySurface = new VideoCallSurface(getPresenter(), SURFACE_DISPLAY,
+                        (TextureView) mVideoViews.findViewById(R.id.incomingVideo), screenSize.x,
+                        screenSize.y);
+                sPreviewSurface = new VideoCallSurface(getPresenter(), SURFACE_PREVIEW,
+                        (TextureView) mVideoViews.findViewById(R.id.previewVideo));
+                sVideoSurfacesInUse = true;
+            } else {
+                // In this case, the video surfaces are already in use (we are recreating the
+                // Fragment after a destroy/create cycle resulting from a rotation.
+                sDisplaySurface.recreateView((TextureView) mVideoViews.findViewById(
+                        R.id.incomingVideo));
+                sPreviewSurface.recreateView((TextureView) mVideoViews.findViewById(
+                        R.id.previewVideo));
+            }
+
+            // Attempt to center the incoming video view, if it is in the layout.
+            final ViewTreeObserver observer = mVideoViews.getViewTreeObserver();
+            observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+                @Override
+                public void onGlobalLayout() {
+                    // Check if the layout includes the incoming video surface -- this will only be the
+                    // case for a video call.
+                    View displayVideo = mVideoViews.findViewById(R.id.incomingVideo);
+                    if (displayVideo != null) {
+                        centerDisplayView(displayVideo);
+                    }
+                    mIsLayoutComplete = true;
+
+                    // Remove the listener so we don't continually re-layout.
+                    ViewTreeObserver observer = mVideoViews.getViewTreeObserver();
+                    if (observer.isAlive()) {
+                        observer.removeOnGlobalLayoutListener(this);
+                    }
+                }
+            });
+        }
+    }
+
+    /**
+     * Resizes a surface so that it has the same size as the full screen and so that it is
+     * centered vertically below the call card.
+     *
+     * @param textureView The {@link TextureView} to resize and position.
+     * @param size The size of the screen.
+     */
+    private void setSurfaceSizeAndTranslation(TextureView textureView, Point size) {
+        // Set the surface to have that size.
+        ViewGroup.LayoutParams params = textureView.getLayoutParams();
+        params.width = size.x;
+        params.height = size.y;
+        textureView.setLayoutParams(params);
+        Log.d(this, "setSurfaceSizeAndTranslation: Size=" + size + "IsLayoutComplete=" +
+                mIsLayoutComplete + "IsLandscape=" + mIsLandscape);
+
+        // It is only possible to center the display view if layout of the views has completed.
+        // It is only after layout is complete that the dimensions of the Call Card has been
+        // established, which is a prerequisite to centering the view.
+        // Incoming video calls will center the view
+        if (mIsLayoutComplete) {
+            centerDisplayView(textureView);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
new file mode 100644
index 0000000..9a33d80
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -0,0 +1,1297 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.graphics.Point;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Handler;
+import android.os.Looper;
+import android.provider.ContactsContract;
+import android.telecom.Connection;
+import android.telecom.InCallService.VideoCall;
+import android.telecom.VideoProfile;
+import android.telecom.VideoProfile.CameraCapabilities;
+import android.view.Surface;
+import android.widget.ImageView;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.dialer.R;
+import com.android.incallui.InCallPresenter.InCallDetailsListener;
+import com.android.incallui.InCallPresenter.InCallOrientationListener;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
+import com.android.incallui.InCallVideoCallCallbackNotifier.SurfaceChangeListener;
+import com.android.incallui.InCallVideoCallCallbackNotifier.VideoEventListener;
+
+import java.util.Objects;
+
+/**
+ * Logic related to the {@link VideoCallFragment} and for managing changes to the video calling
+ * surfaces based on other user interface events and incoming events from the
+ * {@class VideoCallListener}.
+ * <p>
+ * When a call's video state changes to bi-directional video, the
+ * {@link com.android.incallui.VideoCallPresenter} performs the following negotiation with the
+ * telephony layer:
+ * <ul>
+ *     <li>{@code VideoCallPresenter} creates and informs telephony of the display surface.</li>
+ *     <li>{@code VideoCallPresenter} creates the preview surface.</li>
+ *     <li>{@code VideoCallPresenter} informs telephony of the currently selected camera.</li>
+ *     <li>Telephony layer sends {@link CameraCapabilities}, including the
+ *     dimensions of the video for the current camera.</li>
+ *     <li>{@code VideoCallPresenter} adjusts size of the preview surface to match the aspect
+ *     ratio of the camera.</li>
+ *     <li>{@code VideoCallPresenter} informs telephony of the new preview surface.</li>
+ * </ul>
+ * <p>
+ * When downgrading to an audio-only video state, the {@code VideoCallPresenter} nulls both
+ * surfaces.
+ */
+public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi> implements
+        IncomingCallListener, InCallOrientationListener, InCallStateListener,
+        InCallDetailsListener, SurfaceChangeListener, VideoEventListener,
+        InCallPresenter.InCallEventListener {
+    public static final String TAG = "VideoCallPresenter";
+
+    public static final boolean DEBUG = false;
+
+    /**
+     * Runnable which is posted to schedule automatically entering fullscreen mode.  Will not auto
+     * enter fullscreen mode if the dialpad is visible (doing so would make it impossible to exit
+     * the dialpad).
+     */
+    private Runnable mAutoFullscreenRunnable =  new Runnable() {
+        @Override
+        public void run() {
+            if (mAutoFullScreenPending && !InCallPresenter.getInstance().isDialpadVisible()) {
+                Log.v(this, "Automatically entering fullscreen mode.");
+                InCallPresenter.getInstance().setFullScreen(true);
+                mAutoFullScreenPending = false;
+            } else {
+                Log.v(this, "Skipping scheduled fullscreen mode.");
+            }
+        }
+    };
+
+    /**
+     * Defines the state of the preview surface negotiation with the telephony layer.
+     */
+    private class PreviewSurfaceState {
+        /**
+         * The camera has not yet been set on the {@link VideoCall}; negotiation has not yet
+         * started.
+         */
+        private static final int NONE = 0;
+
+        /**
+         * The camera has been set on the {@link VideoCall}, but camera capabilities have not yet
+         * been received.
+         */
+        private static final int CAMERA_SET = 1;
+
+        /**
+         * The camera capabilties have been received from telephony, but the surface has not yet
+         * been set on the {@link VideoCall}.
+         */
+        private static final int CAPABILITIES_RECEIVED = 2;
+
+        /**
+         * The surface has been set on the {@link VideoCall}.
+         */
+        private static final int SURFACE_SET = 3;
+    }
+
+    /**
+     * The minimum width or height of the preview surface.  Used when re-sizing the preview surface
+     * to match the aspect ratio of the currently selected camera.
+     */
+    private float mMinimumVideoDimension;
+
+    /**
+     * The current context.
+     */
+    private Context mContext;
+
+    /**
+     * The call the video surfaces are currently related to
+     */
+    private Call mPrimaryCall;
+
+    /**
+     * The {@link VideoCall} used to inform the video telephony layer of changes to the video
+     * surfaces.
+     */
+    private VideoCall mVideoCall;
+
+    /**
+     * Determines if the current UI state represents a video call.
+     */
+    private int mCurrentVideoState;
+
+    /**
+     * Call's current state
+     */
+    private int mCurrentCallState = Call.State.INVALID;
+
+    /**
+     * Determines the device orientation (portrait/lanscape).
+     */
+    private int mDeviceOrientation = InCallOrientationEventListener.SCREEN_ORIENTATION_0;
+
+    /**
+     * Tracks the state of the preview surface negotiation with the telephony layer.
+     */
+    private int mPreviewSurfaceState = PreviewSurfaceState.NONE;
+
+    private static boolean mIsVideoMode = false;
+
+    /**
+     * Contact photo manager to retrieve cached contact photo information.
+     */
+    private ContactPhotoManager mContactPhotoManager = null;
+
+    /**
+     * The URI for the user's profile photo, or {@code null} if not specified.
+     */
+    private ContactInfoCache.ContactCacheEntry mProfileInfo = null;
+
+    /**
+     * UI thread handler used for delayed task execution.
+     */
+    private Handler mHandler;
+
+    /**
+     * Determines whether video calls should automatically enter full screen mode after
+     * {@link #mAutoFullscreenTimeoutMillis} milliseconds.
+     */
+    private boolean mIsAutoFullscreenEnabled = false;
+
+    /**
+     * Determines the number of milliseconds after which a video call will automatically enter
+     * fullscreen mode.  Requires {@link #mIsAutoFullscreenEnabled} to be {@code true}.
+     */
+    private int mAutoFullscreenTimeoutMillis = 0;
+
+    /**
+     * Determines if the countdown is currently running to automatically enter full screen video
+     * mode.
+     */
+    private boolean mAutoFullScreenPending = false;
+
+    /**
+     * Initializes the presenter.
+     *
+     * @param context The current context.
+     */
+    public void init(Context context) {
+        mContext = context;
+        mMinimumVideoDimension = mContext.getResources().getDimension(
+                R.dimen.video_preview_small_dimension);
+        mHandler = new Handler(Looper.getMainLooper());
+        mIsAutoFullscreenEnabled = mContext.getResources()
+                .getBoolean(R.bool.video_call_auto_fullscreen);
+        mAutoFullscreenTimeoutMillis = mContext.getResources().getInteger(
+                R.integer.video_call_auto_fullscreen_timeout);
+    }
+
+    /**
+     * Called when the user interface is ready to be used.
+     *
+     * @param ui The Ui implementation that is now ready to be used.
+     */
+    @Override
+    public void onUiReady(VideoCallUi ui) {
+        super.onUiReady(ui);
+        Log.d(this, "onUiReady:");
+
+        // Do not register any listeners if video calling is not compatible to safeguard against
+        // any accidental calls of video calling code.
+        if (!CompatUtils.isVideoCompatible()) {
+            return;
+        }
+
+        // Register for call state changes last
+        InCallPresenter.getInstance().addListener(this);
+        InCallPresenter.getInstance().addDetailsListener(this);
+        InCallPresenter.getInstance().addIncomingCallListener(this);
+        InCallPresenter.getInstance().addOrientationListener(this);
+        // To get updates of video call details changes
+        InCallPresenter.getInstance().addDetailsListener(this);
+        InCallPresenter.getInstance().addInCallEventListener(this);
+
+        // Register for surface and video events from {@link InCallVideoCallListener}s.
+        InCallVideoCallCallbackNotifier.getInstance().addSurfaceChangeListener(this);
+        InCallVideoCallCallbackNotifier.getInstance().addVideoEventListener(this);
+        mCurrentVideoState = VideoProfile.STATE_AUDIO_ONLY;
+        mCurrentCallState = Call.State.INVALID;
+    }
+
+    /**
+     * Called when the user interface is no longer ready to be used.
+     *
+     * @param ui The Ui implementation that is no longer ready to be used.
+     */
+    @Override
+    public void onUiUnready(VideoCallUi ui) {
+        super.onUiUnready(ui);
+        Log.d(this, "onUiUnready:");
+
+        if (!CompatUtils.isVideoCompatible()) {
+            return;
+        }
+
+        InCallPresenter.getInstance().removeListener(this);
+        InCallPresenter.getInstance().removeDetailsListener(this);
+        InCallPresenter.getInstance().removeIncomingCallListener(this);
+        InCallPresenter.getInstance().removeOrientationListener(this);
+        InCallPresenter.getInstance().removeInCallEventListener(this);
+
+        InCallVideoCallCallbackNotifier.getInstance().removeSurfaceChangeListener(this);
+        InCallVideoCallCallbackNotifier.getInstance().removeVideoEventListener(this);
+    }
+
+    /**
+     * Handles the creation of a surface in the {@link VideoCallFragment}.
+     *
+     * @param surface The surface which was created.
+     */
+    public void onSurfaceCreated(int surface) {
+        Log.d(this, "onSurfaceCreated surface=" + surface + " mVideoCall=" + mVideoCall);
+        Log.d(this, "onSurfaceCreated PreviewSurfaceState=" + mPreviewSurfaceState);
+        Log.d(this, "onSurfaceCreated presenter=" + this);
+
+        final VideoCallUi ui = getUi();
+        if (ui == null || mVideoCall == null) {
+            Log.w(this, "onSurfaceCreated: Error bad state VideoCallUi=" + ui + " mVideoCall="
+                    + mVideoCall);
+            return;
+        }
+
+        // If the preview surface has just been created and we have already received camera
+        // capabilities, but not yet set the surface, we will set the surface now.
+        if (surface == VideoCallFragment.SURFACE_PREVIEW ) {
+            if (mPreviewSurfaceState == PreviewSurfaceState.CAPABILITIES_RECEIVED) {
+                mPreviewSurfaceState = PreviewSurfaceState.SURFACE_SET;
+                mVideoCall.setPreviewSurface(ui.getPreviewVideoSurface());
+            } else if (mPreviewSurfaceState == PreviewSurfaceState.NONE && isCameraRequired()){
+                enableCamera(mVideoCall, true);
+            }
+        } else if (surface == VideoCallFragment.SURFACE_DISPLAY) {
+            mVideoCall.setDisplaySurface(ui.getDisplayVideoSurface());
+        }
+    }
+
+    /**
+     * Handles structural changes (format or size) to a surface.
+     *
+     * @param surface The surface which changed.
+     * @param format The new PixelFormat of the surface.
+     * @param width The new width of the surface.
+     * @param height The new height of the surface.
+     */
+    public void onSurfaceChanged(int surface, int format, int width, int height) {
+        //Do stuff
+    }
+
+    /**
+     * Handles the destruction of a surface in the {@link VideoCallFragment}.
+     * Note: The surface is being released, that is, it is no longer valid.
+     *
+     * @param surface The surface which was destroyed.
+     */
+    public void onSurfaceReleased(int surface) {
+        Log.d(this, "onSurfaceReleased: mSurfaceId=" + surface);
+        if ( mVideoCall == null) {
+            Log.w(this, "onSurfaceReleased: VideoCall is null. mSurfaceId=" +
+                    surface);
+            return;
+        }
+
+        if (surface == VideoCallFragment.SURFACE_DISPLAY) {
+            mVideoCall.setDisplaySurface(null);
+        } else if (surface == VideoCallFragment.SURFACE_PREVIEW) {
+            mVideoCall.setPreviewSurface(null);
+            enableCamera(mVideoCall, false);
+        }
+    }
+
+    /**
+     * Called by {@link VideoCallFragment} when the surface is detached from UI (TextureView).
+     * Note: The surface will be cached by {@link VideoCallFragment}, so we don't immediately
+     * null out incoming video surface.
+     * @see VideoCallPresenter#onSurfaceReleased(int)
+     *
+     * @param surface The surface which was detached.
+     */
+    public void onSurfaceDestroyed(int surface) {
+        Log.d(this, "onSurfaceDestroyed: mSurfaceId=" + surface);
+        if (mVideoCall == null) {
+            return;
+        }
+
+        final boolean isChangingConfigurations =
+                InCallPresenter.getInstance().isChangingConfigurations();
+        Log.d(this, "onSurfaceDestroyed: isChangingConfigurations=" + isChangingConfigurations);
+
+        if (surface == VideoCallFragment.SURFACE_PREVIEW) {
+            if (!isChangingConfigurations) {
+                enableCamera(mVideoCall, false);
+            } else {
+                Log.w(this, "onSurfaceDestroyed: Activity is being destroyed due "
+                        + "to configuration changes. Not closing the camera.");
+            }
+        }
+    }
+
+    /**
+     * Handles clicks on the video surfaces by toggling full screen state.
+     * Informs the {@link InCallPresenter} of the change so that it can inform the
+     * {@link CallCardPresenter} of the change.
+     *
+     * @param surfaceId The video surface receiving the click.
+     */
+    public void onSurfaceClick(int surfaceId) {
+        boolean isFullscreen = InCallPresenter.getInstance().toggleFullscreenMode();
+        Log.v(this, "toggleFullScreen = " + isFullscreen);
+    }
+
+    /**
+     * Handles incoming calls.
+     *
+     * @param oldState The old in call state.
+     * @param newState The new in call state.
+     * @param call The call.
+     */
+    @Override
+    public void onIncomingCall(InCallPresenter.InCallState oldState,
+            InCallPresenter.InCallState newState, Call call) {
+        // same logic should happen as with onStateChange()
+        onStateChange(oldState, newState, CallList.getInstance());
+    }
+
+    /**
+     * Handles state changes (including incoming calls)
+     *
+     * @param newState The in call state.
+     * @param callList The call list.
+     */
+    @Override
+    public void onStateChange(InCallPresenter.InCallState oldState,
+            InCallPresenter.InCallState newState, CallList callList) {
+        Log.d(this, "onStateChange oldState" + oldState + " newState=" + newState +
+                " isVideoMode=" + isVideoMode());
+
+        if (newState == InCallPresenter.InCallState.NO_CALLS) {
+            if (isVideoMode()) {
+                exitVideoMode();
+            }
+
+            cleanupSurfaces();
+        }
+
+        // Determine the primary active call).
+        Call primary = null;
+
+        // Determine the call which is the focus of the user's attention.  In the case of an
+        // incoming call waiting call, the primary call is still the active video call, however
+        // the determination of whether we should be in fullscreen mode is based on the type of the
+        // incoming call, not the active video call.
+        Call currentCall = null;
+
+        if (newState == InCallPresenter.InCallState.INCOMING) {
+            // We don't want to replace active video call (primary call)
+            // with a waiting call, since user may choose to ignore/decline the waiting call and
+            // this should have no impact on current active video call, that is, we should not
+            // change the camera or UI unless the waiting VT call becomes active.
+            primary = callList.getActiveCall();
+            currentCall = callList.getIncomingCall();
+            if (!VideoUtils.isActiveVideoCall(primary)) {
+                primary = callList.getIncomingCall();
+            }
+        } else if (newState == InCallPresenter.InCallState.OUTGOING) {
+            currentCall = primary = callList.getOutgoingCall();
+        } else if (newState == InCallPresenter.InCallState.PENDING_OUTGOING) {
+            currentCall = primary = callList.getPendingOutgoingCall();
+        } else if (newState == InCallPresenter.InCallState.INCALL) {
+            currentCall = primary = callList.getActiveCall();
+        }
+
+        final boolean primaryChanged = !Objects.equals(mPrimaryCall, primary);
+        Log.d(this, "onStateChange primaryChanged=" + primaryChanged);
+        Log.d(this, "onStateChange primary= " + primary);
+        Log.d(this, "onStateChange mPrimaryCall = " + mPrimaryCall);
+        if (primaryChanged) {
+            onPrimaryCallChanged(primary);
+        } else if (mPrimaryCall != null) {
+            updateVideoCall(primary);
+        }
+        updateCallCache(primary);
+
+        // If the call context changed, potentially exit fullscreen or schedule auto enter of
+        // fullscreen mode.
+        // If the current call context is no longer a video call, exit fullscreen mode.
+        maybeExitFullscreen(currentCall);
+        // Schedule auto-enter of fullscreen mode if the current call context is a video call
+        maybeAutoEnterFullscreen(currentCall);
+    }
+
+    /**
+     * Handles a change to the fullscreen mode of the app.
+     *
+     * @param isFullscreenMode {@code true} if the app is now fullscreen, {@code false} otherwise.
+     */
+    @Override
+    public void onFullscreenModeChanged(boolean isFullscreenMode) {
+        cancelAutoFullScreen();
+    }
+
+    /**
+     * Handles changes to the visibility of the secondary caller info bar.
+     *
+     * @param isVisible {@code true} if the secondary caller info is showing, {@code false}
+     *      otherwise.
+     * @param height the height of the secondary caller info bar.
+     */
+    @Override
+    public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        Log.d(this,
+                "onSecondaryCallerInfoVisibilityChanged : isVisible = " + isVisible + " height = "
+                        + height);
+        getUi().adjustPreviewLocation(isVisible /* shiftUp */, height);
+    }
+
+    private void checkForVideoStateChange(Call call) {
+        final boolean isVideoCall = VideoUtils.isVideoCall(call);
+        final boolean hasVideoStateChanged = mCurrentVideoState != call.getVideoState();
+
+        Log.d(this, "checkForVideoStateChange: isVideoCall= " + isVideoCall
+                + " hasVideoStateChanged=" + hasVideoStateChanged + " isVideoMode="
+                + isVideoMode() + " previousVideoState: " +
+                VideoProfile.videoStateToString(mCurrentVideoState) + " newVideoState: "
+                + VideoProfile.videoStateToString(call.getVideoState()));
+
+        if (!hasVideoStateChanged) {
+            return;
+        }
+
+        updateCameraSelection(call);
+
+        if (isVideoCall) {
+            enterVideoMode(call);
+        } else if (isVideoMode()) {
+            exitVideoMode();
+        }
+    }
+
+    private void checkForCallStateChange(Call call) {
+        final boolean isVideoCall = VideoUtils.isVideoCall(call);
+        final boolean hasCallStateChanged = mCurrentCallState != call.getState();
+
+        Log.d(this, "checkForCallStateChange: isVideoCall= " + isVideoCall
+                + " hasCallStateChanged=" +
+                hasCallStateChanged + " isVideoMode=" + isVideoMode());
+
+        if (!hasCallStateChanged) {
+            return;
+        }
+
+        if (isVideoCall) {
+            final InCallCameraManager cameraManager = InCallPresenter.getInstance().
+                    getInCallCameraManager();
+
+            String prevCameraId = cameraManager.getActiveCameraId();
+            updateCameraSelection(call);
+            String newCameraId = cameraManager.getActiveCameraId();
+
+            if (!Objects.equals(prevCameraId, newCameraId) && VideoUtils.isActiveVideoCall(call)) {
+                enableCamera(call.getVideoCall(), true);
+            }
+        }
+
+        // Make sure we hide or show the video UI if needed.
+        showVideoUi(call.getVideoState(), call.getState());
+    }
+
+    private void cleanupSurfaces() {
+        final VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.w(this, "cleanupSurfaces");
+            return;
+        }
+        ui.cleanupSurfaces();
+    }
+
+    private void onPrimaryCallChanged(Call newPrimaryCall) {
+        final boolean isVideoCall = VideoUtils.isVideoCall(newPrimaryCall);
+        final boolean isVideoMode = isVideoMode();
+
+        Log.d(this, "onPrimaryCallChanged: isVideoCall=" + isVideoCall + " isVideoMode="
+                + isVideoMode);
+
+        if (!isVideoCall && isVideoMode) {
+            // Terminate video mode if new primary call is not a video call
+            // and we are currently in video mode.
+            Log.d(this, "onPrimaryCallChanged: Exiting video mode...");
+            exitVideoMode();
+        } else if (isVideoCall) {
+            Log.d(this, "onPrimaryCallChanged: Entering video mode...");
+
+            updateCameraSelection(newPrimaryCall);
+            enterVideoMode(newPrimaryCall);
+        }
+    }
+
+    private boolean isVideoMode() {
+        return mIsVideoMode;
+    }
+
+    private void updateCallCache(Call call) {
+        if (call == null) {
+            mCurrentVideoState = VideoProfile.STATE_AUDIO_ONLY;
+            mCurrentCallState = Call.State.INVALID;
+            mVideoCall = null;
+            mPrimaryCall = null;
+        } else {
+            mCurrentVideoState = call.getVideoState();
+            mVideoCall = call.getVideoCall();
+            mCurrentCallState = call.getState();
+            mPrimaryCall = call;
+        }
+    }
+
+    /**
+     * Handles changes to the details of the call.  The {@link VideoCallPresenter} is interested in
+     * changes to the video state.
+     *
+     * @param call The call for which the details changed.
+     * @param details The new call details.
+     */
+    @Override
+    public void onDetailsChanged(Call call, android.telecom.Call.Details details) {
+        Log.d(this, " onDetailsChanged call=" + call + " details=" + details + " mPrimaryCall="
+                + mPrimaryCall);
+        if (call == null) {
+            return;
+        }
+        // If the details change is not for the currently active call no update is required.
+        if (!call.equals(mPrimaryCall)) {
+            Log.d(this, " onDetailsChanged: Details not for current active call so returning. ");
+            return;
+        }
+
+        updateVideoCall(call);
+
+        updateCallCache(call);
+    }
+
+    private void updateVideoCall(Call call) {
+        checkForVideoCallChange(call);
+        checkForVideoStateChange(call);
+        checkForCallStateChange(call);
+        checkForOrientationAllowedChange(call);
+    }
+
+    private void checkForOrientationAllowedChange(Call call) {
+        InCallPresenter.getInstance().setInCallAllowsOrientationChange(
+                VideoUtils.isVideoCall(call));
+    }
+
+    /**
+     * Checks for a change to the video call and changes it if required.
+     */
+    private void checkForVideoCallChange(Call call) {
+        final VideoCall videoCall = call.getTelecomCall().getVideoCall();
+        Log.d(this, "checkForVideoCallChange: videoCall=" + videoCall + " mVideoCall="
+                + mVideoCall);
+        if (!Objects.equals(videoCall, mVideoCall)) {
+            changeVideoCall(call);
+        }
+    }
+
+    /**
+     * Handles a change to the video call. Sets the surfaces on the previous call to null and sets
+     * the surfaces on the new video call accordingly.
+     *
+     * @param videoCall The new video call.
+     */
+    private void changeVideoCall(Call call) {
+        final VideoCall videoCall = call.getTelecomCall().getVideoCall();
+        Log.d(this, "changeVideoCall to videoCall=" + videoCall + " mVideoCall=" + mVideoCall);
+        // Null out the surfaces on the previous video call.
+        if (mVideoCall != null) {
+            // Log.d(this, "Null out the surfaces on the previous video call.");
+            // mVideoCall.setDisplaySurface(null);
+            // mVideoCall.setPreviewSurface(null);
+        }
+
+        final boolean hasChanged = mVideoCall == null && videoCall != null;
+
+        mVideoCall = videoCall;
+        if (mVideoCall == null || call == null) {
+            Log.d(this, "Video call or primary call is null. Return");
+            return;
+        }
+
+        if (VideoUtils.isVideoCall(call) && hasChanged) {
+            enterVideoMode(call);
+        }
+    }
+
+    private static boolean isCameraRequired(int videoState) {
+        return VideoProfile.isBidirectional(videoState) ||
+                VideoProfile.isTransmissionEnabled(videoState);
+    }
+
+    private boolean isCameraRequired() {
+        return mPrimaryCall != null && isCameraRequired(mPrimaryCall.getVideoState());
+    }
+
+    /**
+     * Enters video mode by showing the video surfaces and making other adjustments (eg. audio).
+     * TODO(vt): Need to adjust size and orientation of preview surface here.
+     */
+    private void enterVideoMode(Call call) {
+        VideoCall videoCall = call.getVideoCall();
+        int newVideoState = call.getVideoState();
+
+        Log.d(this, "enterVideoMode videoCall= " + videoCall + " videoState: " + newVideoState);
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "Error VideoCallUi is null so returning");
+            return;
+        }
+
+        showVideoUi(newVideoState, call.getState());
+
+        // Communicate the current camera to telephony and make a request for the camera
+        // capabilities.
+        if (videoCall != null) {
+            if (ui.isDisplayVideoSurfaceCreated()) {
+                Log.d(this, "Calling setDisplaySurface with " + ui.getDisplayVideoSurface());
+                videoCall.setDisplaySurface(ui.getDisplayVideoSurface());
+            }
+
+            videoCall.setDeviceOrientation(mDeviceOrientation);
+            enableCamera(videoCall, isCameraRequired(newVideoState));
+        }
+        mCurrentVideoState = newVideoState;
+
+        mIsVideoMode = true;
+
+        maybeAutoEnterFullscreen(call);
+    }
+
+    private static boolean isSpeakerEnabledForVideoCalls() {
+        // TODO: Make this a carrier configurable setting. For now this is always true. b/20090407
+        return true;
+    }
+
+    private void enableCamera(VideoCall videoCall, boolean isCameraRequired) {
+        Log.d(this, "enableCamera: VideoCall=" + videoCall + " enabling=" + isCameraRequired);
+        if (videoCall == null) {
+            Log.w(this, "enableCamera: VideoCall is null.");
+            return;
+        }
+
+        if (isCameraRequired) {
+            InCallCameraManager cameraManager = InCallPresenter.getInstance().
+                    getInCallCameraManager();
+            videoCall.setCamera(cameraManager.getActiveCameraId());
+            mPreviewSurfaceState = PreviewSurfaceState.CAMERA_SET;
+
+            videoCall.requestCameraCapabilities();
+        } else {
+            mPreviewSurfaceState = PreviewSurfaceState.NONE;
+            videoCall.setCamera(null);
+        }
+    }
+
+    /**
+     * Exits video mode by hiding the video surfaces and making other adjustments (eg. audio).
+     */
+    private void exitVideoMode() {
+        Log.d(this, "exitVideoMode");
+
+        showVideoUi(VideoProfile.STATE_AUDIO_ONLY, Call.State.ACTIVE);
+        enableCamera(mVideoCall, false);
+        InCallPresenter.getInstance().setFullScreen(false);
+
+        mIsVideoMode = false;
+    }
+
+    /**
+     * Based on the current video state and call state, show or hide the incoming and
+     * outgoing video surfaces.  The outgoing video surface is shown any time video is transmitting.
+     * The incoming video surface is shown whenever the video is un-paused and active.
+     *
+     * @param videoState The video state.
+     * @param callState The call state.
+     */
+    private void showVideoUi(int videoState, int callState) {
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "showVideoUi, VideoCallUi is null returning");
+            return;
+        }
+        boolean showIncomingVideo = showIncomingVideo(videoState, callState);
+        boolean showOutgoingVideo = showOutgoingVideo(videoState);
+        Log.v(this, "showVideoUi : showIncoming = " + showIncomingVideo + " showOutgoing = "
+                + showOutgoingVideo);
+        if (showIncomingVideo || showOutgoingVideo) {
+            ui.showVideoViews(showOutgoingVideo, showIncomingVideo);
+
+            if (VideoProfile.isReceptionEnabled(videoState)) {
+                loadProfilePhotoAsync();
+            }
+        } else {
+            ui.hideVideoUi();
+        }
+
+        InCallPresenter.getInstance().enableScreenTimeout(
+                VideoProfile.isAudioOnly(videoState));
+    }
+
+    /**
+     * Determines if the incoming video surface should be shown based on the current videoState and
+     * callState.  The video surface is shown when incoming video is not paused, the call is active,
+     * and video reception is enabled.
+     *
+     * @param videoState The current video state.
+     * @param callState The current call state.
+     * @return {@code true} if the incoming video surface should be shown, {@code false} otherwise.
+     */
+    public static boolean showIncomingVideo(int videoState, int callState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        boolean isPaused = VideoProfile.isPaused(videoState);
+        boolean isCallActive = callState == Call.State.ACTIVE;
+
+        return !isPaused && isCallActive && VideoProfile.isReceptionEnabled(videoState);
+    }
+
+    /**
+     * Determines if the outgoing video surface should be shown based on the current videoState.
+     * The video surface is shown if video transmission is enabled.
+     *
+     * @param videoState The current video state.
+     * @return {@code true} if the the outgoing video surface should be shown, {@code false}
+     *      otherwise.
+     */
+    public static boolean showOutgoingVideo(int videoState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfile.isTransmissionEnabled(videoState);
+    }
+
+    /**
+     * Handles peer video pause state changes.
+     *
+     * @param call The call which paused or un-pausedvideo transmission.
+     * @param paused {@code True} when the video transmission is paused, {@code false} when video
+     *               transmission resumes.
+     */
+    @Override
+    public void onPeerPauseStateChanged(Call call, boolean paused) {
+        if (!call.equals(mPrimaryCall)) {
+            return;
+        }
+
+        // TODO(vt): Show/hide the peer contact photo.
+    }
+
+    /**
+     * Handles peer video dimension changes.
+     *
+     * @param call The call which experienced a peer video dimension change.
+     * @param width The new peer video width .
+     * @param height The new peer video height.
+     */
+    @Override
+    public void onUpdatePeerDimensions(Call call, int width, int height) {
+        Log.d(this, "onUpdatePeerDimensions: width= " + width + " height= " + height);
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "VideoCallUi is null. Bail out");
+            return;
+        }
+        if (!call.equals(mPrimaryCall)) {
+            Log.e(this, "Current call is not equal to primary call. Bail out");
+            return;
+        }
+
+        // Change size of display surface to match the peer aspect ratio
+        if (width > 0 && height > 0) {
+            setDisplayVideoSize(width, height);
+        }
+    }
+
+    /**
+     * Handles any video quality changes in the call.
+     *
+     * @param call The call which experienced a video quality change.
+     * @param videoQuality The new video call quality.
+     */
+    @Override
+    public void onVideoQualityChanged(Call call, int videoQuality) {
+        // No-op
+    }
+
+    /**
+     * Handles a change to the dimensions of the local camera.  Receiving the camera capabilities
+     * triggers the creation of the video
+     *
+     * @param call The call which experienced the camera dimension change.
+     * @param width The new camera video width.
+     * @param height The new camera video height.
+     */
+    @Override
+    public void onCameraDimensionsChange(Call call, int width, int height) {
+        Log.d(this, "onCameraDimensionsChange call=" + call + " width=" + width + " height="
+                + height);
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "onCameraDimensionsChange ui is null");
+            return;
+        }
+
+        if (!call.equals(mPrimaryCall)) {
+            Log.e(this, "Call is not primary call");
+            return;
+        }
+
+        mPreviewSurfaceState = PreviewSurfaceState.CAPABILITIES_RECEIVED;
+        changePreviewDimensions(width, height);
+
+        // Check if the preview surface is ready yet; if it is, set it on the {@code VideoCall}.
+        // If it not yet ready, it will be set when when creation completes.
+        if (ui.isPreviewVideoSurfaceCreated()) {
+            mPreviewSurfaceState = PreviewSurfaceState.SURFACE_SET;
+            mVideoCall.setPreviewSurface(ui.getPreviewVideoSurface());
+        }
+    }
+
+    /**
+     * Changes the dimensions of the preview surface.
+     *
+     * @param width The new width.
+     * @param height The new height.
+     */
+    private void changePreviewDimensions(int width, int height) {
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        // Resize the surface used to display the preview video
+        ui.setPreviewSurfaceSize(width, height);
+
+        // Configure the preview surface to the correct aspect ratio.
+        float aspectRatio = 1.0f;
+        if (width > 0 && height > 0) {
+            aspectRatio = (float) width / (float) height;
+        }
+
+        // Resize the textureview housing the preview video and rotate it appropriately based on
+        // the device orientation
+        setPreviewSize(mDeviceOrientation, aspectRatio);
+    }
+
+    /**
+     * Called when call session event is raised.
+     *
+     * @param event The call session event.
+     */
+    @Override
+    public void onCallSessionEvent(int event) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("onCallSessionEvent = ");
+
+        switch (event) {
+            case Connection.VideoProvider.SESSION_EVENT_RX_PAUSE:
+                sb.append("rx_pause");
+                break;
+            case Connection.VideoProvider.SESSION_EVENT_RX_RESUME:
+                sb.append("rx_resume");
+                break;
+            case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE:
+                sb.append("camera_failure");
+                break;
+            case Connection.VideoProvider.SESSION_EVENT_CAMERA_READY:
+                sb.append("camera_ready");
+                break;
+            default:
+                sb.append("unknown event = ");
+                sb.append(event);
+                break;
+        }
+        Log.d(this, sb.toString());
+    }
+
+    /**
+     * Handles a change to the call data usage
+     *
+     * @param dataUsage call data usage value
+     */
+    @Override
+    public void onCallDataUsageChange(long dataUsage) {
+        Log.d(this, "onCallDataUsageChange dataUsage=" + dataUsage);
+    }
+
+    /**
+     * Handles changes to the device orientation.
+     * @param orientation The screen orientation of the device (one of:
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
+     */
+    @Override
+    public void onDeviceOrientationChanged(int orientation) {
+        mDeviceOrientation = orientation;
+
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "onDeviceOrientationChanged: VideoCallUi is null");
+            return;
+        }
+
+        Point previewDimensions = ui.getPreviewSize();
+        if (previewDimensions == null) {
+            return;
+        }
+        Log.d(this, "onDeviceOrientationChanged: orientation=" + orientation + " size: "
+                + previewDimensions);
+        changePreviewDimensions(previewDimensions.x, previewDimensions.y);
+
+        ui.setPreviewRotation(mDeviceOrientation);
+    }
+
+    /**
+     * Sets the preview surface size based on the current device orientation.
+     * See: {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
+     *
+     * @param orientation The device orientation
+     * @param aspectRatio The aspect ratio of the camera (width / height).
+     */
+    private void setPreviewSize(int orientation, float aspectRatio) {
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        int height;
+        int width;
+
+        if (orientation == InCallOrientationEventListener.SCREEN_ORIENTATION_90 ||
+                orientation == InCallOrientationEventListener.SCREEN_ORIENTATION_270) {
+            width = (int) (mMinimumVideoDimension * aspectRatio);
+            height = (int) mMinimumVideoDimension;
+        } else {
+            // Portrait or reverse portrait orientation.
+            width = (int) mMinimumVideoDimension;
+            height = (int) (mMinimumVideoDimension * aspectRatio);
+        }
+        ui.setPreviewSize(width, height);
+    }
+
+    /**
+     * Sets the display video surface size based on peer width and height
+     *
+     * @param width peer width
+     * @param height peer height
+     */
+    private void setDisplayVideoSize(int width, int height) {
+        Log.v(this, "setDisplayVideoSize: Received peer width=" + width + " height=" + height);
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        // Get current display size
+        Point size = ui.getScreenSize();
+        Log.v(this, "setDisplayVideoSize: windowmgr width=" + size.x
+                + " windowmgr height=" + size.y);
+        if (size.y * width > size.x * height) {
+            // current display height is too much. Correct it
+            size.y = (int) (size.x * height / width);
+        } else if (size.y * width < size.x * height) {
+            // current display width is too much. Correct it
+            size.x = (int) (size.y * width / height);
+        }
+        ui.setDisplayVideoSize(size.x, size.y);
+    }
+
+    /**
+     * Exits fullscreen mode if the current call context has changed to a non-video call.
+     *
+     * @param call The call.
+     */
+    protected void maybeExitFullscreen(Call call) {
+        if (call == null) {
+            return;
+        }
+
+        if (!VideoUtils.isVideoCall(call) || call.getState() == Call.State.INCOMING) {
+            InCallPresenter.getInstance().setFullScreen(false);
+        }
+    }
+
+    /**
+     * Schedules auto-entering of fullscreen mode.
+     * Will not enter full screen mode if any of the following conditions are met:
+     * 1. No call
+     * 2. Call is not active
+     * 3. Call is not video call
+     * 4. Already in fullscreen mode
+     *
+     * @param call The current call.
+     */
+    protected void maybeAutoEnterFullscreen(Call call) {
+        if (!mIsAutoFullscreenEnabled) {
+            return;
+        }
+
+        if (call == null || (
+                call != null && (call.getState() != Call.State.ACTIVE ||
+                        !VideoUtils.isVideoCall(call)) ||
+                        InCallPresenter.getInstance().isFullscreen())) {
+            // Ensure any previously scheduled attempt to enter fullscreen is cancelled.
+            cancelAutoFullScreen();
+            return;
+        }
+
+        if (mAutoFullScreenPending) {
+            Log.v(this, "maybeAutoEnterFullscreen : already pending.");
+            return;
+        }
+        Log.v(this, "maybeAutoEnterFullscreen : scheduled");
+        mAutoFullScreenPending = true;
+        mHandler.postDelayed(mAutoFullscreenRunnable, mAutoFullscreenTimeoutMillis);
+    }
+
+    /**
+     * Cancels pending auto fullscreen mode.
+     */
+    public void cancelAutoFullScreen() {
+        if (!mAutoFullScreenPending) {
+            Log.v(this, "cancelAutoFullScreen : none pending.");
+            return;
+        }
+        Log.v(this, "cancelAutoFullScreen : cancelling pending");
+        mAutoFullScreenPending = false;
+    }
+
+    private static boolean isAudioRouteEnabled(int audioRoute, int audioRouteMask) {
+        return ((audioRoute & audioRouteMask) != 0);
+    }
+
+    private static void updateCameraSelection(Call call) {
+        Log.d(TAG, "updateCameraSelection: call=" + call);
+        Log.d(TAG, "updateCameraSelection: call=" + toSimpleString(call));
+
+        final Call activeCall = CallList.getInstance().getActiveCall();
+        int cameraDir = Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
+
+        // this function should never be called with null call object, however if it happens we
+        // should handle it gracefully.
+        if (call == null) {
+            cameraDir = Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
+            com.android.incallui.Log.e(TAG, "updateCameraSelection: Call object is null."
+                    + " Setting camera direction to default value (CAMERA_DIRECTION_UNKNOWN)");
+        }
+
+        // Clear camera direction if this is not a video call.
+        else if (VideoUtils.isAudioCall(call)) {
+            cameraDir = Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
+            call.getVideoSettings().setCameraDir(cameraDir);
+        }
+
+        // If this is a waiting video call, default to active call's camera,
+        // since we don't want to change the current camera for waiting call
+        // without user's permission.
+        else if (VideoUtils.isVideoCall(activeCall) && VideoUtils.isIncomingVideoCall(call)) {
+            cameraDir = activeCall.getVideoSettings().getCameraDir();
+        }
+
+        // Infer the camera direction from the video state and store it,
+        // if this is an outgoing video call.
+        else if (VideoUtils.isOutgoingVideoCall(call) && !isCameraDirectionSet(call) ) {
+            cameraDir = toCameraDirection(call.getVideoState());
+            call.getVideoSettings().setCameraDir(cameraDir);
+        }
+
+        // Use the stored camera dir if this is an outgoing video call for which camera direction
+        // is set.
+        else if (VideoUtils.isOutgoingVideoCall(call)) {
+            cameraDir = call.getVideoSettings().getCameraDir();
+        }
+
+        // Infer the camera direction from the video state and store it,
+        // if this is an active video call and camera direction is not set.
+        else if (VideoUtils.isActiveVideoCall(call) && !isCameraDirectionSet(call)) {
+            cameraDir = toCameraDirection(call.getVideoState());
+            call.getVideoSettings().setCameraDir(cameraDir);
+        }
+
+        // Use the stored camera dir if this is an active video call for which camera direction
+        // is set.
+        else if (VideoUtils.isActiveVideoCall(call)) {
+            cameraDir = call.getVideoSettings().getCameraDir();
+        }
+
+        // For all other cases infer the camera direction but don't store it in the call object.
+        else {
+            cameraDir = toCameraDirection(call.getVideoState());
+        }
+
+        com.android.incallui.Log.d(TAG, "updateCameraSelection: Setting camera direction to " +
+                cameraDir + " Call=" + call);
+        final InCallCameraManager cameraManager = InCallPresenter.getInstance().
+                getInCallCameraManager();
+        cameraManager.setUseFrontFacingCamera(cameraDir ==
+                Call.VideoSettings.CAMERA_DIRECTION_FRONT_FACING);
+    }
+
+    private static int toCameraDirection(int videoState) {
+        return VideoProfile.isTransmissionEnabled(videoState) &&
+                !VideoProfile.isBidirectional(videoState)
+                ? Call.VideoSettings.CAMERA_DIRECTION_BACK_FACING
+                : Call.VideoSettings.CAMERA_DIRECTION_FRONT_FACING;
+    }
+
+    private static boolean isCameraDirectionSet(Call call) {
+        return VideoUtils.isVideoCall(call) && call.getVideoSettings().getCameraDir()
+                    != Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
+    }
+
+    private static String toSimpleString(Call call) {
+        return call == null ? null : call.toSimpleString();
+    }
+
+    /**
+     * Starts an asynchronous load of the user's profile photo.
+     */
+    public void loadProfilePhotoAsync() {
+        final VideoCallUi ui = getUi();
+        if (ui == null) {
+            return;
+        }
+
+        final AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
+            /**
+             * Performs asynchronous load of the user profile information.
+             *
+             * @param params The parameters of the task.
+             *
+             * @return {@code null}.
+             */
+            @Override
+            protected Void doInBackground(Void... params) {
+                if (mProfileInfo == null) {
+                    // Try and read the photo URI from the local profile.
+                    mProfileInfo = new ContactInfoCache.ContactCacheEntry();
+                    final Cursor cursor = mContext.getContentResolver().query(
+                            ContactsContract.Profile.CONTENT_URI, new String[]{
+                                    ContactsContract.CommonDataKinds.Phone._ID,
+                                    ContactsContract.CommonDataKinds.Phone.PHOTO_URI,
+                                    ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
+                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
+                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_ALTERNATIVE
+                            }, null, null, null);
+                    if (cursor != null) {
+                        try {
+                            if (cursor.moveToFirst()) {
+                                mProfileInfo.lookupKey = cursor.getString(cursor.getColumnIndex(
+                                        ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY));
+                                String photoUri = cursor.getString(cursor.getColumnIndex(
+                                        ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
+                                mProfileInfo.displayPhotoUri = photoUri == null ? null
+                                        : Uri.parse(photoUri);
+                                mProfileInfo.namePrimary = cursor.getString(cursor.getColumnIndex(
+                                        ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
+                                mProfileInfo.nameAlternative = cursor.getString(
+                                        cursor.getColumnIndex(ContactsContract.CommonDataKinds
+                                                        .Phone.DISPLAY_NAME_ALTERNATIVE));
+                            }
+                        } finally {
+                            cursor.close();
+                        }
+                    }
+                }
+                return null;
+            }
+
+            @Override
+            protected void onPostExecute(Void result) {
+                // If user profile information was found, issue an async request to load the user's
+                // profile photo.
+                if (mProfileInfo != null) {
+                    if (mContactPhotoManager == null) {
+                        mContactPhotoManager = ContactPhotoManager.getInstance(mContext);
+                    }
+                    ContactPhotoManager.DefaultImageRequest imageRequest = (mProfileInfo != null)
+                            ? null :
+                            new ContactPhotoManager.DefaultImageRequest(mProfileInfo.namePrimary,
+                                    mProfileInfo.lookupKey, false /* isCircularPhoto */);
+
+                    ImageView photoView = ui.getPreviewPhotoView();
+                    if (photoView == null) {
+                        return;
+                    }
+                    mContactPhotoManager.loadDirectoryPhoto(photoView,
+                                    mProfileInfo.displayPhotoUri,
+                                    false /* darkTheme */, false /* isCircular */, imageRequest);
+                }
+            }
+        };
+
+        task.execute();
+    }
+
+    /**
+     * Defines the VideoCallUI interactions.
+     */
+    public interface VideoCallUi extends Ui {
+        void showVideoViews(boolean showPreview, boolean showIncoming);
+        void hideVideoUi();
+        boolean isDisplayVideoSurfaceCreated();
+        boolean isPreviewVideoSurfaceCreated();
+        Surface getDisplayVideoSurface();
+        Surface getPreviewVideoSurface();
+        int getCurrentRotation();
+        void setPreviewSize(int width, int height);
+        void setPreviewSurfaceSize(int width, int height);
+        void setDisplayVideoSize(int width, int height);
+        Point getScreenSize();
+        Point getPreviewSize();
+        void cleanupSurfaces();
+        ImageView getPreviewPhotoView();
+        void adjustPreviewLocation(boolean shiftUp, int offset);
+        void setPreviewRotation(int orientation);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/VideoPauseController.java b/InCallUI/src/com/android/incallui/VideoPauseController.java
new file mode 100644
index 0000000..a529d20
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/VideoPauseController.java
@@ -0,0 +1,415 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.android.incallui.Call.State;
+import com.android.incallui.InCallPresenter.InCallState;
+import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
+import com.android.incallui.InCallVideoCallCallbackNotifier.SessionModificationListener;
+import com.google.common.base.Preconditions;
+
+/**
+ * This class is responsible for generating video pause/resume requests when the InCall UI is sent
+ * to the background and subsequently brought back to the foreground.
+ */
+class VideoPauseController implements InCallStateListener, IncomingCallListener {
+    private static final String TAG = "VideoPauseController";
+
+    /**
+     * Keeps track of the current active/foreground call.
+     */
+    private class CallContext {
+        public CallContext(Call call) {
+            Preconditions.checkNotNull(call);
+            update(call);
+        }
+
+        public void update(Call call) {
+            mCall = Preconditions.checkNotNull(call);
+            mState = call.getState();
+            mVideoState = call.getVideoState();
+        }
+
+        public int getState() {
+            return mState;
+        }
+
+        public int getVideoState() {
+            return mVideoState;
+        }
+
+        public String toString() {
+            return String.format("CallContext {CallId=%s, State=%s, VideoState=%d}",
+                    mCall.getId(), mState, mVideoState);
+        }
+
+        public Call getCall() {
+            return mCall;
+        }
+
+        private int mState = State.INVALID;
+        private int mVideoState;
+        private Call mCall;
+    }
+
+    private InCallPresenter mInCallPresenter;
+    private static VideoPauseController sVideoPauseController;
+
+    /**
+     * The current call context, if applicable.
+     */
+    private CallContext mPrimaryCallContext = null;
+
+    /**
+     * Tracks whether the application is in the background. {@code True} if the application is in
+     * the background, {@code false} otherwise.
+     */
+    private boolean mIsInBackground = false;
+
+    /**
+     * Singleton accessor for the {@link VideoPauseController}.
+     * @return Singleton instance of the {@link VideoPauseController}.
+     */
+    /*package*/
+    static synchronized VideoPauseController getInstance() {
+        if (sVideoPauseController == null) {
+            sVideoPauseController = new VideoPauseController();
+        }
+        return sVideoPauseController;
+    }
+
+    /**
+     * Configures the {@link VideoPauseController} to listen to call events.  Configured via the
+     * {@link com.android.incallui.InCallPresenter}.
+     *
+     * @param inCallPresenter The {@link com.android.incallui.InCallPresenter}.
+     */
+    public void setUp(InCallPresenter inCallPresenter) {
+        log("setUp");
+        mInCallPresenter = Preconditions.checkNotNull(inCallPresenter);
+        mInCallPresenter.addListener(this);
+        mInCallPresenter.addIncomingCallListener(this);
+    }
+
+    /**
+     * Cleans up the {@link VideoPauseController} by removing all listeners and clearing its
+     * internal state.  Called from {@link com.android.incallui.InCallPresenter}.
+     */
+    public void tearDown() {
+        log("tearDown...");
+        mInCallPresenter.removeListener(this);
+        mInCallPresenter.removeIncomingCallListener(this);
+        clear();
+    }
+
+    /**
+     * Clears the internal state for the {@link VideoPauseController}.
+     */
+    private void clear() {
+        mInCallPresenter = null;
+        mPrimaryCallContext = null;
+        mIsInBackground = false;
+    }
+
+    /**
+     * Handles changes in the {@link InCallState}.  Triggers pause and resumption of video for the
+     * current foreground call.
+     *
+     * @param oldState The previous {@link InCallState}.
+     * @param newState The current {@link InCallState}.
+     * @param callList List of current call.
+     */
+    @Override
+    public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
+        log("onStateChange, OldState=" + oldState + " NewState=" + newState);
+
+        Call call = null;
+        if (newState == InCallState.INCOMING) {
+            call = callList.getIncomingCall();
+        } else if (newState == InCallState.WAITING_FOR_ACCOUNT) {
+            call = callList.getWaitingForAccountCall();
+        } else if (newState == InCallState.PENDING_OUTGOING) {
+            call = callList.getPendingOutgoingCall();
+        } else if (newState == InCallState.OUTGOING) {
+            call = callList.getOutgoingCall();
+        } else {
+            call = callList.getActiveCall();
+        }
+
+        boolean hasPrimaryCallChanged = !areSame(call, mPrimaryCallContext);
+        boolean canVideoPause = VideoUtils.canVideoPause(call);
+        log("onStateChange, hasPrimaryCallChanged=" + hasPrimaryCallChanged);
+        log("onStateChange, canVideoPause=" + canVideoPause);
+        log("onStateChange, IsInBackground=" + mIsInBackground);
+
+        if (hasPrimaryCallChanged) {
+            onPrimaryCallChanged(call);
+            return;
+        }
+
+        if (isDialing(mPrimaryCallContext) && canVideoPause && mIsInBackground) {
+            // Bring UI to foreground if outgoing request becomes active while UI is in
+            // background.
+            bringToForeground();
+        } else if (!isVideoCall(mPrimaryCallContext) && canVideoPause && mIsInBackground) {
+            // Bring UI to foreground if VoLTE call becomes active while UI is in
+            // background.
+            bringToForeground();
+        }
+
+        updatePrimaryCallContext(call);
+    }
+
+    /**
+     * Handles a change to the primary call.
+     * <p>
+     * Reject incoming or hangup dialing call: Where the previous call was an incoming call or a
+     * call in dialing state, resume the new primary call.
+     * Call swap: Where the new primary call is incoming, pause video on the previous primary call.
+     *
+     * @param call The new primary call.
+     */
+    private void onPrimaryCallChanged(Call call) {
+        log("onPrimaryCallChanged: New call = " + call);
+        log("onPrimaryCallChanged: Old call = " + mPrimaryCallContext);
+        log("onPrimaryCallChanged, IsInBackground=" + mIsInBackground);
+
+        Preconditions.checkState(!areSame(call, mPrimaryCallContext));
+        final boolean canVideoPause = VideoUtils.canVideoPause(call);
+
+        if ((isIncomingCall(mPrimaryCallContext) || isDialing(mPrimaryCallContext))
+                && canVideoPause && !mIsInBackground) {
+            // Send resume request for the active call, if user rejects incoming call or ends
+            // dialing call and UI is in the foreground.
+            sendRequest(call, true);
+        } else if (isIncomingCall(call) && canVideoPause(mPrimaryCallContext)) {
+            // Send pause request if there is an active video call, and we just received a new
+            // incoming call.
+            sendRequest(mPrimaryCallContext.getCall(), false);
+        }
+
+        updatePrimaryCallContext(call);
+    }
+
+    /**
+     * Handles new incoming calls by triggering a change in the primary call.
+     *
+     * @param oldState the old {@link InCallState}.
+     * @param newState the new {@link InCallState}.
+     * @param call the incoming call.
+     */
+    @Override
+    public void onIncomingCall(InCallState oldState, InCallState newState, Call call) {
+        log("onIncomingCall, OldState=" + oldState + " NewState=" + newState + " Call=" + call);
+
+        if (areSame(call, mPrimaryCallContext)) {
+            return;
+        }
+
+        onPrimaryCallChanged(call);
+    }
+
+    /**
+     * Caches a reference to the primary call and stores its previous state.
+     *
+     * @param call The new primary call.
+     */
+    private void updatePrimaryCallContext(Call call) {
+        if (call == null) {
+            mPrimaryCallContext = null;
+        } else if (mPrimaryCallContext != null) {
+            mPrimaryCallContext.update(call);
+        } else {
+            mPrimaryCallContext = new CallContext(call);
+        }
+    }
+
+    /**
+     * Called when UI goes in/out of the foreground.
+     * @param showing true if UI is in the foreground, false otherwise.
+     */
+    public void onUiShowing(boolean showing) {
+        // Only send pause/unpause requests if we are in the INCALL state.
+        if (mInCallPresenter == null || mInCallPresenter.getInCallState() != InCallState.INCALL) {
+            return;
+        }
+
+        if (showing) {
+            onResume();
+        } else {
+            onPause();
+        }
+    }
+
+    /**
+     * Called when UI is brought to the foreground.  Sends a session modification request to resume
+     * the outgoing video.
+     */
+    private void onResume() {
+        log("onResume");
+
+        mIsInBackground = false;
+        if (canVideoPause(mPrimaryCallContext)) {
+            sendRequest(mPrimaryCallContext.getCall(), true);
+        } else {
+            log("onResume. Ignoring...");
+        }
+    }
+
+    /**
+     * Called when UI is sent to the background.  Sends a session modification request to pause the
+     * outgoing video.
+     */
+    private void onPause() {
+        log("onPause");
+
+        mIsInBackground = true;
+        if (canVideoPause(mPrimaryCallContext)) {
+            sendRequest(mPrimaryCallContext.getCall(), false);
+        } else {
+            log("onPause, Ignoring...");
+        }
+    }
+
+    private void bringToForeground() {
+        if (mInCallPresenter != null) {
+            log("Bringing UI to foreground");
+            mInCallPresenter.bringToForeground(false);
+        } else {
+            loge("InCallPresenter is null. Cannot bring UI to foreground");
+        }
+    }
+
+    /**
+     * Sends Pause/Resume request.
+     *
+     * @param call Call to be paused/resumed.
+     * @param resume If true resume request will be sent, otherwise pause request.
+     */
+    private void sendRequest(Call call, boolean resume) {
+        // Check if this call supports pause/un-pause.
+        if (!call.can(android.telecom.Call.Details.CAPABILITY_CAN_PAUSE_VIDEO)) {
+            return;
+        }
+
+        if (resume) {
+            log("sending resume request, call=" + call);
+            call.getVideoCall()
+                    .sendSessionModifyRequest(VideoUtils.makeVideoUnPauseProfile(call));
+        } else {
+            log("sending pause request, call=" + call);
+            call.getVideoCall().sendSessionModifyRequest(VideoUtils.makeVideoPauseProfile(call));
+        }
+    }
+
+    /**
+     * Determines if a given call is the same one stored in a {@link CallContext}.
+     *
+     * @param call The call.
+     * @param callContext The call context.
+     * @return {@code true} if the {@link Call} is the same as the one referenced in the
+     *      {@link CallContext}.
+     */
+    private static boolean areSame(Call call, CallContext callContext) {
+        if (call == null && callContext == null) {
+            return true;
+        } else if (call == null || callContext == null) {
+            return false;
+        }
+        return call.equals(callContext.getCall());
+    }
+
+    /**
+     * Determines if a video call can be paused.  Only a video call which is active can be paused.
+     *
+     * @param callContext The call context to check.
+     * @return {@code true} if the call is an active video call.
+     */
+    private static boolean canVideoPause(CallContext callContext) {
+        return isVideoCall(callContext) && callContext.getState() == Call.State.ACTIVE;
+    }
+
+    /**
+     * Determines if a call referenced by a {@link CallContext} is a video call.
+     *
+     * @param callContext The call context.
+     * @return {@code true} if the call is a video call, {@code false} otherwise.
+     */
+    private static boolean isVideoCall(CallContext callContext) {
+        return callContext != null && VideoUtils.isVideoCall(callContext.getVideoState());
+    }
+
+    /**
+     * Determines if call is in incoming/waiting state.
+     *
+     * @param call The call context.
+     * @return {@code true} if the call is in incoming or waiting state, {@code false} otherwise.
+     */
+    private static boolean isIncomingCall(CallContext call) {
+        return call != null && isIncomingCall(call.getCall());
+    }
+
+    /**
+     * Determines if a call is in incoming/waiting state.
+     *
+     * @param call The call.
+     * @return {@code true} if the call is in incoming or waiting state, {@code false} otherwise.
+     */
+    private static boolean isIncomingCall(Call call) {
+        return call != null && (call.getState() == Call.State.CALL_WAITING
+                || call.getState() == Call.State.INCOMING);
+    }
+
+    /**
+     * Determines if a call is dialing.
+     *
+     * @param call The call context.
+     * @return {@code true} if the call is dialing, {@code false} otherwise.
+     */
+    private static boolean isDialing(CallContext call) {
+        return call != null && Call.State.isDialing(call.getState());
+    }
+
+    /**
+     * Determines if a call is holding.
+     *
+     * @param call The call context.
+     * @return {@code true} if the call is holding, {@code false} otherwise.
+     */
+    private static boolean isHolding(CallContext call) {
+        return call != null && call.getState() == Call.State.ONHOLD;
+    }
+
+    /**
+     * Logs a debug message.
+     *
+     * @param msg The message.
+     */
+    private void log(String msg) {
+        Log.d(this, TAG + msg);
+    }
+
+    /**
+     * Logs an error message.
+     *
+     * @param msg The message.
+     */
+    private void loge(String msg) {
+        Log.e(this, TAG + msg);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/VideoUtils.java b/InCallUI/src/com/android/incallui/VideoUtils.java
new file mode 100644
index 0000000..8641d60
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/VideoUtils.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.telecom.VideoProfile;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+import com.google.common.base.Preconditions;
+
+public class VideoUtils {
+
+    public static boolean isVideoCall(Call call) {
+        return call != null && isVideoCall(call.getVideoState());
+    }
+
+    public static boolean isVideoCall(int videoState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfile.isTransmissionEnabled(videoState)
+                || VideoProfile.isReceptionEnabled(videoState);
+    }
+
+    public static boolean isBidirectionalVideoCall(Call call) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfile.isBidirectional(call.getVideoState());
+    }
+
+    public static boolean isIncomingVideoCall(Call call) {
+        if (!VideoUtils.isVideoCall(call)) {
+            return false;
+        }
+        final int state = call.getState();
+        return (state == Call.State.INCOMING) || (state == Call.State.CALL_WAITING);
+    }
+
+    public static boolean isActiveVideoCall(Call call) {
+        return VideoUtils.isVideoCall(call) && call.getState() == Call.State.ACTIVE;
+    }
+
+    public static boolean isOutgoingVideoCall(Call call) {
+        if (!VideoUtils.isVideoCall(call)) {
+            return false;
+        }
+        final int state = call.getState();
+        return Call.State.isDialing(state) || state == Call.State.CONNECTING
+                || state == Call.State.SELECT_PHONE_ACCOUNT;
+    }
+
+    public static boolean isAudioCall(Call call) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return true;
+        }
+
+        return call != null && VideoProfile.isAudioOnly(call.getVideoState());
+    }
+
+    // TODO (ims-vt) Check if special handling is needed for CONF calls.
+    public static boolean canVideoPause(Call call) {
+        return isVideoCall(call) && call.getState() == Call.State.ACTIVE;
+    }
+
+    public static VideoProfile makeVideoPauseProfile(Call call) {
+        Preconditions.checkNotNull(call);
+        Preconditions.checkState(!VideoProfile.isAudioOnly(call.getVideoState()));
+        return new VideoProfile(getPausedVideoState(call.getVideoState()));
+    }
+
+    public static VideoProfile makeVideoUnPauseProfile(Call call) {
+        Preconditions.checkNotNull(call);
+        return new VideoProfile(getUnPausedVideoState(call.getVideoState()));
+    }
+
+    public static int getUnPausedVideoState(int videoState) {
+        return videoState & (~VideoProfile.STATE_PAUSED);
+    }
+
+    public static int getPausedVideoState(int videoState) {
+        return videoState | VideoProfile.STATE_PAUSED;
+    }
+
+}
diff --git a/InCallUI/src/com/android/incallui/async/PausableExecutor.java b/InCallUI/src/com/android/incallui/async/PausableExecutor.java
new file mode 100644
index 0000000..1b8201a
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/async/PausableExecutor.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.async;
+
+import com.android.contacts.common.testing.NeededForTesting;
+
+import java.util.concurrent.Executor;
+
+/**
+ * Executor that can be used to easily synchronize testing and production code. Production code
+ * should call {@link #milestone()} at points in the code where the state of the system is worthy of
+ * testing. In a test scenario, this method will pause execution until the test acknowledges the
+ * milestone through the use of {@link #ackMilestoneForTesting()}.
+ */
+public interface PausableExecutor extends Executor {
+
+    /**
+     * Method called from asynchronous production code to inform this executor that it has
+     * reached a point that puts the system into a state worth testing. TestableExecutors intended
+     * for use in a testing environment should cause the calling thread to block. In the production
+     * environment this should be a no-op.
+     */
+    void milestone();
+
+    /**
+     * Method called from the test code to inform this executor that the state of the production
+     * system at the current milestone has been sufficiently tested. Every milestone must be
+     * acknowledged.
+     */
+    @NeededForTesting
+    void ackMilestoneForTesting();
+
+    /**
+     * Method called from the test code to inform this executor that the tests are finished with all
+     * milestones. Future calls to {@link #milestone()} or {@link #awaitMilestoneForTesting()}
+     * should return immediately.
+     */
+    @NeededForTesting
+    void ackAllMilestonesForTesting();
+
+    /**
+     * Method called from the test code to block until a milestone has been reached in the
+     * production code.
+     */
+    @NeededForTesting
+    void awaitMilestoneForTesting() throws InterruptedException;
+}
diff --git a/InCallUI/src/com/android/incallui/async/PausableExecutorImpl.java b/InCallUI/src/com/android/incallui/async/PausableExecutorImpl.java
new file mode 100644
index 0000000..15900e5
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/async/PausableExecutorImpl.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.async;
+
+import java.util.concurrent.Executors;
+
+/**
+ * {@link PausableExecutor} intended for use in production environments.
+ */
+public class PausableExecutorImpl implements PausableExecutor {
+
+    @Override
+    public void milestone() {}
+
+    @Override
+    public void ackMilestoneForTesting() {}
+
+    @Override
+    public void ackAllMilestonesForTesting() {}
+
+    @Override
+    public void awaitMilestoneForTesting() {}
+
+    @Override
+    public void execute(Runnable command) {
+        Executors.newSingleThreadExecutor().execute(command);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java b/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java
new file mode 100644
index 0000000..39844e5
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.ringtone;
+
+import com.google.common.base.Preconditions;
+
+import android.content.ContentResolver;
+import android.net.Uri;
+import android.provider.Settings;
+import android.support.annotation.Nullable;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.incallui.Call;
+import com.android.incallui.Call.State;
+import com.android.incallui.CallList;
+
+/**
+ * Class that determines when ringtones should be played and can play the call waiting tone when
+ * necessary.
+ */
+public class DialerRingtoneManager {
+
+    /*
+     * Flag used to determine if the Dialer is responsible for playing ringtones for incoming calls.
+     * Once we're ready to enable Dialer Ringing, these flags should be removed.
+     */
+    private static final boolean IS_DIALER_RINGING_ENABLED = false;
+    private Boolean mIsDialerRingingEnabledForTesting;
+
+    private final InCallTonePlayer mInCallTonePlayer;
+    private final CallList mCallList;
+
+    /**
+     * Creates the DialerRingtoneManager with the given {@link InCallTonePlayer}.
+     *
+     * @param inCallTonePlayer the tone player used to play in-call tones.
+     * @param callList the CallList used to check for {@link State#CALL_WAITING}
+     * @throws NullPointerException if inCallTonePlayer or callList are null
+     */
+    public DialerRingtoneManager(InCallTonePlayer inCallTonePlayer, CallList callList) {
+        mInCallTonePlayer = Preconditions.checkNotNull(inCallTonePlayer);
+        mCallList = Preconditions.checkNotNull(callList);
+    }
+
+    /**
+     * Determines if a ringtone should be played for the given call state (see {@link State}) and
+     * {@link Uri}.
+     *
+     * @param callState the call state for the call being checked.
+     * @param ringtoneUri the ringtone to potentially play.
+     * @return {@code true} if the ringtone should be played, {@code false} otherwise.
+     */
+    public boolean shouldPlayRingtone(int callState, @Nullable Uri ringtoneUri) {
+        return isDialerRingingEnabled()
+                && translateCallStateForCallWaiting(callState) == State.INCOMING
+                && ringtoneUri != null;
+    }
+
+    /**
+     * Determines if an incoming call should vibrate as well as ring.
+     *
+     * @param resolver {@link ContentResolver} used to look up the
+     * {@link Settings.System#VIBRATE_WHEN_RINGING} setting.
+     * @return {@code true} if the call should vibrate, {@code false} otherwise.
+     */
+    public boolean shouldVibrate(ContentResolver resolver) {
+        return Settings.System.getInt(resolver, Settings.System.VIBRATE_WHEN_RINGING, 0) != 0;
+    }
+
+    /**
+     * The incoming callState is never set as {@link State#CALL_WAITING} because
+     * {@link Call#translateState(int)} doesn't account for that case, check for it here
+     */
+    private int translateCallStateForCallWaiting(int callState) {
+        if (callState != State.INCOMING) {
+            return callState;
+        }
+        return mCallList.getActiveCall() == null ? State.INCOMING : State.CALL_WAITING;
+    }
+
+    private boolean isDialerRingingEnabled() {
+        if (mIsDialerRingingEnabledForTesting != null) {
+            return mIsDialerRingingEnabledForTesting;
+        }
+        return CompatUtils.isNCompatible() && IS_DIALER_RINGING_ENABLED;
+    }
+
+    /**
+     * Determines if a call waiting tone should be played for the the given call state
+     * (see {@link State}).
+     *
+     * @param callState the call state for the call being checked.
+     * @return {@code true} if the call waiting tone should be played, {@code false} otherwise.
+     */
+    public boolean shouldPlayCallWaitingTone(int callState) {
+        return isDialerRingingEnabled()
+                && translateCallStateForCallWaiting(callState) == State.CALL_WAITING
+                && !mInCallTonePlayer.isPlayingTone();
+    }
+
+    /**
+     * Plays the call waiting tone.
+     */
+    public void playCallWaitingTone() {
+        if (!isDialerRingingEnabled()) {
+            return;
+        }
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+    }
+
+    /**
+     * Stops playing the call waiting tone.
+     */
+    public void stopCallWaitingTone() {
+        if (!isDialerRingingEnabled()) {
+            return;
+        }
+        mInCallTonePlayer.stop();
+    }
+
+    @NeededForTesting
+    void setDialerRingingEnabledForTesting(boolean status) {
+        mIsDialerRingingEnabledForTesting = status;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ringtone/InCallTonePlayer.java b/InCallUI/src/com/android/incallui/ringtone/InCallTonePlayer.java
new file mode 100644
index 0000000..d930a92
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ringtone/InCallTonePlayer.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.ringtone;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
+
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.provider.MediaStore.Audio;
+import android.support.annotation.Nullable;
+import android.telecom.CallAudioState;
+
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.incallui.AudioModeProvider;
+import com.android.incallui.Log;
+import com.android.incallui.async.PausableExecutor;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+/**
+ * Class responsible for playing in-call related tones in a background thread. This class only
+ * allows one tone to be played at a time.
+ */
+public class InCallTonePlayer {
+
+    public static final int TONE_CALL_WAITING = 4;
+
+    public static final int VOLUME_RELATIVE_HIGH_PRIORITY = 80;
+
+    private final AudioModeProvider mAudioModeProvider;
+    private final ToneGeneratorFactory mToneGeneratorFactory;
+    private final PausableExecutor mExecutor;
+    private @Nullable CountDownLatch mNumPlayingTones;
+
+    /**
+     * Creates a new InCallTonePlayer.
+     *
+     * @param audioModeProvider the {@link AudioModeProvider} used to determine through which stream
+     * to play tones.
+     * @param toneGeneratorFactory the {@link ToneGeneratorFactory} used to create
+     * {@link ToneGenerator}s.
+     * @param executor the {@link PausableExecutor} used to play tones in a background thread.
+     * @throws NullPointerException if audioModeProvider, toneGeneratorFactory, or executor are
+     * {@code null}.
+     */
+    public InCallTonePlayer(AudioModeProvider audioModeProvider,
+            ToneGeneratorFactory toneGeneratorFactory, PausableExecutor executor) {
+        mAudioModeProvider = Preconditions.checkNotNull(audioModeProvider);
+        mToneGeneratorFactory = Preconditions.checkNotNull(toneGeneratorFactory);
+        mExecutor = Preconditions.checkNotNull(executor);
+    }
+
+    /**
+     * @return {@code true} if a tone is currently playing, {@code false} otherwise
+     */
+    public boolean isPlayingTone() {
+        return mNumPlayingTones != null && mNumPlayingTones.getCount() > 0;
+    }
+
+    /**
+     * Plays the given tone in a background thread.
+     *
+     * @param tone the tone to play.
+     * @throws IllegalStateException if a tone is already playing
+     * @throws IllegalArgumentException if the tone is invalid
+     */
+    public void play(int tone) {
+        if (isPlayingTone()) {
+            throw new IllegalStateException("Tone already playing");
+        }
+        final ToneGeneratorInfo info = getToneGeneratorInfo(tone);
+        mNumPlayingTones = new CountDownLatch(1);
+        mExecutor.execute(new Runnable() {
+            @Override
+            public void run() {
+                playOnBackgroundThread(info);
+            }
+        });
+    }
+
+    private ToneGeneratorInfo getToneGeneratorInfo(int tone) {
+        int stream = getPlaybackStream();
+        switch (tone) {
+            case TONE_CALL_WAITING:
+                return new ToneGeneratorInfo(ToneGenerator.TONE_SUP_CALL_WAITING,
+                        VOLUME_RELATIVE_HIGH_PRIORITY,
+                        Integer.MAX_VALUE,
+                        stream);
+            default:
+                throw new IllegalArgumentException("Bad tone: " + tone);
+        }
+    }
+
+    private int getPlaybackStream() {
+        if (mAudioModeProvider.getAudioMode() == CallAudioState.ROUTE_BLUETOOTH) {
+            // TODO (maxwelb): b/26932998 play through bluetooth
+            // return AudioManager.STREAM_BLUETOOTH_SCO;
+        }
+        return AudioManager.STREAM_VOICE_CALL;
+    }
+
+    private void playOnBackgroundThread(ToneGeneratorInfo info) {
+        ToneGenerator toneGenerator = null;
+        try {
+            Log.v(this, "Starting tone " + info);
+            toneGenerator = mToneGeneratorFactory.newInCallToneGenerator(info.stream, info.volume);
+            toneGenerator.startTone(info.tone);
+            /*
+             * During tests, this will block until the tests call mExecutor.ackMilestone. This call
+             * allows for synchronization to the point where the tone has started playing.
+             */
+            mExecutor.milestone();
+            if (mNumPlayingTones != null) {
+                mNumPlayingTones.await(info.toneLengthMillis, TimeUnit.MILLISECONDS);
+                // Allows for synchronization to the point where the tone has completed playing.
+                mExecutor.milestone();
+            }
+        } catch (InterruptedException e) {
+            Log.w(this, "Interrupted while playing in-call tone.");
+        } finally {
+            if (toneGenerator != null) {
+                toneGenerator.release();
+            }
+            if (mNumPlayingTones != null) {
+                mNumPlayingTones.countDown();
+            }
+            // Allows for synchronization to the point where this background thread has cleaned up.
+            mExecutor.milestone();
+        }
+    }
+
+    /**
+     * Stops playback of the current tone.
+     */
+    public void stop() {
+        if (mNumPlayingTones != null) {
+            mNumPlayingTones.countDown();
+        }
+    }
+
+    private static class ToneGeneratorInfo {
+        public final int tone;
+        public final int volume;
+        public final int toneLengthMillis;
+        public final int stream;
+
+        public ToneGeneratorInfo(int toneGeneratorType, int volume, int toneLengthMillis,
+                int stream) {
+            this.tone = toneGeneratorType;
+            this.volume = volume;
+            this.toneLengthMillis = toneLengthMillis;
+            this.stream = stream;
+        }
+
+        @Override
+        public String toString() {
+            return MoreObjects.toStringHelper(this)
+                    .add("tone", tone)
+                    .add("volume", volume)
+                    .add("toneLengthMillis", toneLengthMillis).toString();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ringtone/ToneGeneratorFactory.java b/InCallUI/src/com/android/incallui/ringtone/ToneGeneratorFactory.java
new file mode 100644
index 0000000..ac47c8a
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ringtone/ToneGeneratorFactory.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.ringtone;
+
+import android.media.ToneGenerator;
+
+/**
+ * Factory used to create {@link ToneGenerator}s.
+ */
+public class ToneGeneratorFactory {
+
+    /**
+     * Creates a new {@link ToneGenerator} to use while in a call.
+     *
+     * @param stream the stream through which to play tones.
+     * @param volume the volume at which to play tones.
+     * @return a new ToneGenerator.
+     */
+    public ToneGenerator newInCallToneGenerator(int stream, int volume) {
+        return new ToneGenerator(stream, volume);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/service/PhoneNumberService.java b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
new file mode 100644
index 0000000..70da4ef
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
@@ -0,0 +1,67 @@
+/*
+ * 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
+ */
+
+package com.android.incallui.service;
+
+import android.graphics.Bitmap;
+
+/**
+ * Provides phone number lookup services.
+ */
+public interface PhoneNumberService {
+
+    /**
+     * Get a phone number number asynchronously.
+     *
+     * @param phoneNumber The phone number to lookup.
+     * @param listener The listener to notify when the phone number lookup is complete.
+     * @param imageListener The listener to notify when the image lookup is complete.
+     */
+    public void getPhoneNumberInfo(String phoneNumber, NumberLookupListener listener,
+            ImageLookupListener imageListener, boolean isIncoming);
+
+    public interface NumberLookupListener {
+
+        /**
+         * Callback when a phone number has been looked up.
+         *
+         * @param info The looked up information.  Or (@literal null} if there are no results.
+         */
+        public void onPhoneNumberInfoComplete(PhoneNumberInfo info);
+    }
+
+    public interface ImageLookupListener {
+
+        /**
+         * Callback when a image has been fetched.
+         *
+         * @param bitmap The fetched image.
+         */
+        public void onImageFetchComplete(Bitmap bitmap);
+    }
+
+    public interface PhoneNumberInfo {
+        public String getDisplayName();
+        public String getNumber();
+        public int getPhoneType();
+        public String getPhoneLabel();
+        public String getNormalizedNumber();
+        public String getImageUrl();
+        public String getLookupKey();
+        public boolean isBusiness();
+        public int getLookupSource();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java b/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java
new file mode 100644
index 0000000..1fdd2ba
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java
@@ -0,0 +1,30 @@
+/*
+ * 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
+ */
+
+package com.android.incallui.util;
+
+import android.content.Context;
+import android.view.accessibility.AccessibilityManager;
+
+public class AccessibilityUtil {
+    public static boolean isTalkBackEnabled(Context context) {
+        AccessibilityManager accessibilityManager = (AccessibilityManager) context
+                .getSystemService(Context.ACCESSIBILITY_SERVICE);
+        return accessibilityManager != null
+                && accessibilityManager.isEnabled()
+                && accessibilityManager.isTouchExplorationEnabled();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java b/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java
new file mode 100644
index 0000000..53ecc29
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.util;
+
+import android.net.Uri;
+import android.telecom.Call;
+import android.telephony.PhoneNumberUtils;
+
+/**
+ * Class to provide a standard interface for obtaining information from the underlying
+ * android.telecom.Call. Much of this should be obtained through the incall.Call, but
+ * on occasion we need to interact with the telecom.Call directly (eg. call blocking,
+ * before the incall.Call has been created).
+ */
+public class TelecomCallUtil {
+
+    // Whether the call handle is an emergency number.
+    public static boolean isEmergencyCall(Call call) {
+        Uri handle = call.getDetails().getHandle();
+        return PhoneNumberUtils.isEmergencyNumber(
+                handle == null ? "" : handle.getSchemeSpecificPart());
+    }
+
+    public static String getNumber(Call call) {
+        if (call == null) {
+            return null;
+        }
+        if (call.getDetails().getGatewayInfo() != null) {
+            return call.getDetails().getGatewayInfo()
+                    .getOriginalAddress().getSchemeSpecificPart();
+        }
+        Uri handle = getHandle(call);
+        return handle == null ? null : handle.getSchemeSpecificPart();
+    }
+
+    public static Uri getHandle(Call call) {
+        return call == null ? null : call.getDetails().getHandle();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/Ease.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/Ease.java
new file mode 100644
index 0000000..5ef6897
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/Ease.java
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui.widget.multiwaveview;
+
+import android.animation.TimeInterpolator;
+
+class Ease {
+    private static final float DOMAIN = 1.0f;
+    private static final float DURATION = 1.0f;
+    private static final float START = 0.0f;
+
+    static class Linear {
+        public static final TimeInterpolator easeNone = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return input;
+            }
+        };
+    }
+
+    static class Cubic {
+        public static final TimeInterpolator easeIn = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN*(input/=DURATION)*input*input + START;
+            }
+        };
+        public static final TimeInterpolator easeOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN*((input=input/DURATION-1)*input*input + 1) + START;
+            }
+        };
+        public static final TimeInterpolator easeInOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return ((input/=DURATION/2) < 1.0f) ?
+                        (DOMAIN/2*input*input*input + START)
+                            : (DOMAIN/2*((input-=2)*input*input + 2) + START);
+            }
+        };
+    }
+
+    static class Quad {
+        public static final TimeInterpolator easeIn = new TimeInterpolator() {
+            public float getInterpolation (float input) {
+                return DOMAIN*(input/=DURATION)*input + START;
+            }
+        };
+        public static final TimeInterpolator easeOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return -DOMAIN *(input/=DURATION)*(input-2) + START;
+            }
+        };
+        public static final TimeInterpolator easeInOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return ((input/=DURATION/2) < 1) ?
+                        (DOMAIN/2*input*input + START)
+                            : (-DOMAIN/2 * ((--input)*(input-2) - 1) + START);
+            }
+        };
+    }
+
+    static class Quart {
+        public static final TimeInterpolator easeIn = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN*(input/=DURATION)*input*input*input + START;
+            }
+        };
+        public static final TimeInterpolator easeOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return -DOMAIN * ((input=input/DURATION-1)*input*input*input - 1) + START;
+            }
+        };
+        public static final TimeInterpolator easeInOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return ((input/=DURATION/2) < 1) ?
+                        (DOMAIN/2*input*input*input*input + START)
+                            : (-DOMAIN/2 * ((input-=2)*input*input*input - 2) + START);
+            }
+        };
+    }
+
+    static class Quint {
+        public static final TimeInterpolator easeIn = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN*(input/=DURATION)*input*input*input*input + START;
+            }
+        };
+        public static final TimeInterpolator easeOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN*((input=input/DURATION-1)*input*input*input*input + 1) + START;
+            }
+        };
+        public static final TimeInterpolator easeInOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return ((input/=DURATION/2) < 1) ?
+                        (DOMAIN/2*input*input*input*input*input + START)
+                            : (DOMAIN/2*((input-=2)*input*input*input*input + 2) + START);
+            }
+        };
+    }
+
+    static class Sine {
+        public static final TimeInterpolator easeIn = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return -DOMAIN * (float) Math.cos(input/DURATION * (Math.PI/2)) + DOMAIN + START;
+            }
+        };
+        public static final TimeInterpolator easeOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return DOMAIN * (float) Math.sin(input/DURATION * (Math.PI/2)) + START;
+            }
+        };
+        public static final TimeInterpolator easeInOut = new TimeInterpolator() {
+            public float getInterpolation(float input) {
+                return -DOMAIN/2 * ((float)Math.cos(Math.PI*input/DURATION) - 1.0f) + START;
+            }
+        };
+    }
+
+}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
new file mode 100644
index 0000000..efeb4b7
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
@@ -0,0 +1,1473 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.widget.multiwaveview;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.TimeInterpolator;
+import android.animation.ValueAnimator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Vibrator;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.view.accessibility.AccessibilityEventCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.support.v4.widget.ExploreByTouchHelper;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
+import android.view.accessibility.AccessibilityNodeProvider;
+
+import com.android.dialer.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This is a copy of com.android.internal.widget.multiwaveview.GlowPadView with minor changes
+ * to remove dependencies on private api's.
+ *
+ * Incoporated the scaling functionality.
+ *
+ * A re-usable widget containing a center, outer ring and wave animation.
+ */
+public class GlowPadView extends View {
+    private static final String TAG = "GlowPadView";
+    private static final boolean DEBUG = false;
+
+    // Wave state machine
+    private static final int STATE_IDLE = 0;
+    private static final int STATE_START = 1;
+    private static final int STATE_FIRST_TOUCH = 2;
+    private static final int STATE_TRACKING = 3;
+    private static final int STATE_SNAP = 4;
+    private static final int STATE_FINISH = 5;
+
+    // Animation properties.
+    private static final float SNAP_MARGIN_DEFAULT = 20.0f; // distance to ring before we snap to it
+
+    public interface OnTriggerListener {
+        int NO_HANDLE = 0;
+        int CENTER_HANDLE = 1;
+        public void onGrabbed(View v, int handle);
+        public void onReleased(View v, int handle);
+        public void onTrigger(View v, int target);
+        public void onGrabbedStateChange(View v, int handle);
+        public void onFinishFinalAnimation();
+    }
+
+    // Tuneable parameters for animation
+    private static final int WAVE_ANIMATION_DURATION = 1350;
+    private static final int RETURN_TO_HOME_DELAY = 1200;
+    private static final int RETURN_TO_HOME_DURATION = 200;
+    private static final int HIDE_ANIMATION_DELAY = 200;
+    private static final int HIDE_ANIMATION_DURATION = 200;
+    private static final int SHOW_ANIMATION_DURATION = 200;
+    private static final int SHOW_ANIMATION_DELAY = 50;
+    private static final int INITIAL_SHOW_HANDLE_DURATION = 200;
+    private static final int REVEAL_GLOW_DELAY = 0;
+    private static final int REVEAL_GLOW_DURATION = 0;
+
+    private static final float TAP_RADIUS_SCALE_ACCESSIBILITY_ENABLED = 1.3f;
+    private static final float TARGET_SCALE_EXPANDED = 1.0f;
+    private static final float TARGET_SCALE_COLLAPSED = 0.8f;
+    private static final float RING_SCALE_EXPANDED = 1.0f;
+    private static final float RING_SCALE_COLLAPSED = 0.5f;
+
+    private ArrayList<TargetDrawable> mTargetDrawables = new ArrayList<TargetDrawable>();
+    private AnimationBundle mWaveAnimations = new AnimationBundle();
+    private AnimationBundle mTargetAnimations = new AnimationBundle();
+    private AnimationBundle mGlowAnimations = new AnimationBundle();
+    private ArrayList<String> mTargetDescriptions;
+    private ArrayList<String> mDirectionDescriptions;
+    private OnTriggerListener mOnTriggerListener;
+    private TargetDrawable mHandleDrawable;
+    private TargetDrawable mOuterRing;
+    private Vibrator mVibrator;
+
+    private int mFeedbackCount = 3;
+    private int mVibrationDuration = 0;
+    private int mGrabbedState;
+    private int mActiveTarget = -1;
+    private float mGlowRadius;
+    private float mWaveCenterX;
+    private float mWaveCenterY;
+    private int mMaxTargetHeight;
+    private int mMaxTargetWidth;
+    private float mRingScaleFactor = 1f;
+    private boolean mAllowScaling;
+
+    private float mOuterRadius = 0.0f;
+    private float mSnapMargin = 0.0f;
+    private boolean mDragging;
+    private int mNewTargetResources;
+
+    private AccessibilityNodeProvider mAccessibilityNodeProvider;
+    private GlowpadExploreByTouchHelper mExploreByTouchHelper;
+
+    private class AnimationBundle extends ArrayList<Tweener> {
+        private static final long serialVersionUID = 0xA84D78726F127468L;
+        private boolean mSuspended;
+
+        public void start() {
+            if (mSuspended) return; // ignore attempts to start animations
+            final int count = size();
+            for (int i = 0; i < count; i++) {
+                Tweener anim = get(i);
+                anim.animator.start();
+            }
+        }
+
+        public void cancel() {
+            final int count = size();
+            for (int i = 0; i < count; i++) {
+                Tweener anim = get(i);
+                anim.animator.cancel();
+            }
+            clear();
+        }
+
+        public void stop() {
+            final int count = size();
+            for (int i = 0; i < count; i++) {
+                Tweener anim = get(i);
+                anim.animator.end();
+            }
+            clear();
+        }
+
+        public void setSuspended(boolean suspend) {
+            mSuspended = suspend;
+        }
+    };
+
+    private AnimatorListener mResetListener = new AnimatorListenerAdapter() {
+        public void onAnimationEnd(Animator animator) {
+            switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY);
+            dispatchOnFinishFinalAnimation();
+        }
+    };
+
+    private AnimatorListener mResetListenerWithPing = new AnimatorListenerAdapter() {
+        public void onAnimationEnd(Animator animator) {
+            ping();
+            switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY);
+            dispatchOnFinishFinalAnimation();
+        }
+    };
+
+    private AnimatorUpdateListener mUpdateListener = new AnimatorUpdateListener() {
+        public void onAnimationUpdate(ValueAnimator animation) {
+            invalidate();
+        }
+    };
+
+    private boolean mAnimatingTargets;
+    private AnimatorListener mTargetUpdateListener = new AnimatorListenerAdapter() {
+        public void onAnimationEnd(Animator animator) {
+            if (mNewTargetResources != 0) {
+                internalSetTargetResources(mNewTargetResources);
+                mNewTargetResources = 0;
+                hideTargets(false, false);
+            }
+            mAnimatingTargets = false;
+        }
+    };
+    private int mTargetResourceId;
+    private int mTargetDescriptionsResourceId;
+    private int mDirectionDescriptionsResourceId;
+    private boolean mAlwaysTrackFinger;
+    private int mHorizontalInset;
+    private int mVerticalInset;
+    private int mGravity = Gravity.TOP;
+    private boolean mInitialLayout = true;
+    private Tweener mBackgroundAnimator;
+    private PointCloud mPointCloud;
+    private float mInnerRadius;
+    private int mPointerId;
+
+    public GlowPadView(Context context) {
+        this(context, null);
+    }
+
+    public GlowPadView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        Resources res = context.getResources();
+
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.GlowPadView);
+        mInnerRadius = a.getDimension(R.styleable.GlowPadView_innerRadius, mInnerRadius);
+        mOuterRadius = a.getDimension(R.styleable.GlowPadView_outerRadius, mOuterRadius);
+        mSnapMargin = a.getDimension(R.styleable.GlowPadView_snapMargin, mSnapMargin);
+        mVibrationDuration = a.getInt(R.styleable.GlowPadView_vibrationDuration,
+                mVibrationDuration);
+        mFeedbackCount = a.getInt(R.styleable.GlowPadView_feedbackCount,
+                mFeedbackCount);
+        mAllowScaling = a.getBoolean(R.styleable.GlowPadView_allowScaling, false);
+        TypedValue handle = a.peekValue(R.styleable.GlowPadView_handleDrawable);
+        setHandleDrawable(handle != null ? handle.resourceId : R.drawable.ic_incall_audio_handle);
+        mOuterRing = new TargetDrawable(res,
+                getResourceId(a, R.styleable.GlowPadView_outerRingDrawable), 1);
+
+        mAlwaysTrackFinger = a.getBoolean(R.styleable.GlowPadView_alwaysTrackFinger, false);
+
+        int pointId = getResourceId(a, R.styleable.GlowPadView_pointDrawable);
+        Drawable pointDrawable = pointId != 0 ? res.getDrawable(pointId) : null;
+        mGlowRadius = a.getDimension(R.styleable.GlowPadView_glowRadius, 0.0f);
+
+        TypedValue outValue = new TypedValue();
+
+        // Read array of target drawables
+        if (a.getValue(R.styleable.GlowPadView_targetDrawables, outValue)) {
+            internalSetTargetResources(outValue.resourceId);
+        }
+        if (mTargetDrawables == null || mTargetDrawables.size() == 0) {
+            throw new IllegalStateException("Must specify at least one target drawable");
+        }
+
+        // Read array of target descriptions
+        if (a.getValue(R.styleable.GlowPadView_targetDescriptions, outValue)) {
+            final int resourceId = outValue.resourceId;
+            if (resourceId == 0) {
+                throw new IllegalStateException("Must specify target descriptions");
+            }
+            setTargetDescriptionsResourceId(resourceId);
+        }
+
+        // Read array of direction descriptions
+        if (a.getValue(R.styleable.GlowPadView_directionDescriptions, outValue)) {
+            final int resourceId = outValue.resourceId;
+            if (resourceId == 0) {
+                throw new IllegalStateException("Must specify direction descriptions");
+            }
+            setDirectionDescriptionsResourceId(resourceId);
+        }
+
+        // Use gravity attribute from LinearLayout
+        //a = context.obtainStyledAttributes(attrs, R.styleable.LinearLayout);
+        mGravity = a.getInt(R.styleable.GlowPadView_android_gravity, Gravity.TOP);
+        a.recycle();
+
+
+        setVibrateEnabled(mVibrationDuration > 0);
+
+        assignDefaultsIfNeeded();
+
+        mPointCloud = new PointCloud(pointDrawable);
+        mPointCloud.makePointCloud(mInnerRadius, mOuterRadius);
+        mPointCloud.glowManager.setRadius(mGlowRadius);
+
+        mExploreByTouchHelper = new GlowpadExploreByTouchHelper(this);
+        ViewCompat.setAccessibilityDelegate(this, mExploreByTouchHelper);
+    }
+
+    private int getResourceId(TypedArray a, int id) {
+        TypedValue tv = a.peekValue(id);
+        return tv == null ? 0 : tv.resourceId;
+    }
+
+    private void dump() {
+        Log.v(TAG, "Outer Radius = " + mOuterRadius);
+        Log.v(TAG, "SnapMargin = " + mSnapMargin);
+        Log.v(TAG, "FeedbackCount = " + mFeedbackCount);
+        Log.v(TAG, "VibrationDuration = " + mVibrationDuration);
+        Log.v(TAG, "GlowRadius = " + mGlowRadius);
+        Log.v(TAG, "WaveCenterX = " + mWaveCenterX);
+        Log.v(TAG, "WaveCenterY = " + mWaveCenterY);
+    }
+
+    public void suspendAnimations() {
+        mWaveAnimations.setSuspended(true);
+        mTargetAnimations.setSuspended(true);
+        mGlowAnimations.setSuspended(true);
+    }
+
+    public void resumeAnimations() {
+        mWaveAnimations.setSuspended(false);
+        mTargetAnimations.setSuspended(false);
+        mGlowAnimations.setSuspended(false);
+        mWaveAnimations.start();
+        mTargetAnimations.start();
+        mGlowAnimations.start();
+    }
+
+    @Override
+    protected int getSuggestedMinimumWidth() {
+        // View should be large enough to contain the background + handle and
+        // target drawable on either edge.
+        return (int) (Math.max(mOuterRing.getWidth(), 2 * mOuterRadius) + mMaxTargetWidth);
+    }
+
+    @Override
+    protected int getSuggestedMinimumHeight() {
+        // View should be large enough to contain the unlock ring + target and
+        // target drawable on either edge
+        return (int) (Math.max(mOuterRing.getHeight(), 2 * mOuterRadius) + mMaxTargetHeight);
+    }
+
+    /**
+     * This gets the suggested width accounting for the ring's scale factor.
+     */
+    protected int getScaledSuggestedMinimumWidth() {
+        return (int) (mRingScaleFactor * Math.max(mOuterRing.getWidth(), 2 * mOuterRadius)
+                + mMaxTargetWidth);
+    }
+
+    /**
+     * This gets the suggested height accounting for the ring's scale factor.
+     */
+    protected int getScaledSuggestedMinimumHeight() {
+        return (int) (mRingScaleFactor * Math.max(mOuterRing.getHeight(), 2 * mOuterRadius)
+                + mMaxTargetHeight);
+    }
+
+    private int resolveMeasured(int measureSpec, int desired)
+    {
+        int result = 0;
+        int specSize = MeasureSpec.getSize(measureSpec);
+        switch (MeasureSpec.getMode(measureSpec)) {
+            case MeasureSpec.UNSPECIFIED:
+                result = desired;
+                break;
+            case MeasureSpec.AT_MOST:
+                result = Math.min(specSize, desired);
+                break;
+            case MeasureSpec.EXACTLY:
+            default:
+                result = specSize;
+        }
+        return result;
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        final int minimumWidth = getSuggestedMinimumWidth();
+        final int minimumHeight = getSuggestedMinimumHeight();
+        int computedWidth = resolveMeasured(widthMeasureSpec, minimumWidth);
+        int computedHeight = resolveMeasured(heightMeasureSpec, minimumHeight);
+
+        mRingScaleFactor = computeScaleFactor(minimumWidth, minimumHeight,
+                computedWidth, computedHeight);
+
+        int scaledWidth = getScaledSuggestedMinimumWidth();
+        int scaledHeight = getScaledSuggestedMinimumHeight();
+
+        computeInsets(computedWidth - scaledWidth, computedHeight - scaledHeight);
+        setMeasuredDimension(computedWidth, computedHeight);
+    }
+
+    private void switchToState(int state, float x, float y) {
+        switch (state) {
+            case STATE_IDLE:
+                deactivateTargets();
+                hideGlow(0, 0, 0.0f, null);
+                startBackgroundAnimation(0, 0.0f);
+                mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE);
+                mHandleDrawable.setAlpha(1.0f);
+                break;
+
+            case STATE_START:
+                startBackgroundAnimation(0, 0.0f);
+                break;
+
+            case STATE_FIRST_TOUCH:
+                mHandleDrawable.setAlpha(0.0f);
+                deactivateTargets();
+                showTargets(true);
+                startBackgroundAnimation(INITIAL_SHOW_HANDLE_DURATION, 1.0f);
+                setGrabbedState(OnTriggerListener.CENTER_HANDLE);
+
+                final AccessibilityManager accessibilityManager =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+                if (accessibilityManager.isEnabled()) {
+                    announceTargets();
+                }
+                break;
+
+            case STATE_TRACKING:
+                mHandleDrawable.setAlpha(0.0f);
+                break;
+
+            case STATE_SNAP:
+                // TODO: Add transition states (see list_selector_background_transition.xml)
+                mHandleDrawable.setAlpha(0.0f);
+                showGlow(REVEAL_GLOW_DURATION , REVEAL_GLOW_DELAY, 0.0f, null);
+                break;
+
+            case STATE_FINISH:
+                doFinish();
+                break;
+        }
+    }
+
+    private void showGlow(int duration, int delay, float finalAlpha,
+            AnimatorListener finishListener) {
+        mGlowAnimations.cancel();
+        mGlowAnimations.add(Tweener.to(mPointCloud.glowManager, duration,
+                "ease", Ease.Cubic.easeIn,
+                "delay", delay,
+                "alpha", finalAlpha,
+                "onUpdate", mUpdateListener,
+                "onComplete", finishListener));
+        mGlowAnimations.start();
+    }
+
+    private void hideGlow(int duration, int delay, float finalAlpha,
+            AnimatorListener finishListener) {
+        mGlowAnimations.cancel();
+        mGlowAnimations.add(Tweener.to(mPointCloud.glowManager, duration,
+                "ease", Ease.Quart.easeOut,
+                "delay", delay,
+                "alpha", finalAlpha,
+                "x", 0.0f,
+                "y", 0.0f,
+                "onUpdate", mUpdateListener,
+                "onComplete", finishListener));
+        mGlowAnimations.start();
+    }
+
+    private void deactivateTargets() {
+        final int count = mTargetDrawables.size();
+        for (int i = 0; i < count; i++) {
+            TargetDrawable target = mTargetDrawables.get(i);
+            target.setState(TargetDrawable.STATE_INACTIVE);
+        }
+        mActiveTarget = -1;
+    }
+
+    /**
+     * Dispatches a trigger event to listener. Ignored if a listener is not set.
+     * @param whichTarget the target that was triggered.
+     */
+    private void dispatchTriggerEvent(int whichTarget) {
+        vibrate();
+        if (mOnTriggerListener != null) {
+            mOnTriggerListener.onTrigger(this, whichTarget);
+        }
+    }
+
+    private void dispatchOnFinishFinalAnimation() {
+        if (mOnTriggerListener != null) {
+            mOnTriggerListener.onFinishFinalAnimation();
+        }
+    }
+
+    private void doFinish() {
+        final int activeTarget = mActiveTarget;
+        final boolean targetHit =  activeTarget != -1;
+
+        if (targetHit) {
+            if (DEBUG) Log.v(TAG, "Finish with target hit = " + targetHit);
+
+            highlightSelected(activeTarget);
+
+            // Inform listener of any active targets.  Typically only one will be active.
+            hideGlow(RETURN_TO_HOME_DURATION, RETURN_TO_HOME_DELAY, 0.0f, mResetListener);
+            dispatchTriggerEvent(activeTarget);
+            if (!mAlwaysTrackFinger) {
+                // Force ring and targets to finish animation to final expanded state
+                mTargetAnimations.stop();
+            }
+        } else {
+            // Animate handle back to the center based on current state.
+            hideGlow(HIDE_ANIMATION_DURATION, 0, 0.0f, mResetListenerWithPing);
+            hideTargets(true, false);
+        }
+
+        setGrabbedState(OnTriggerListener.NO_HANDLE);
+    }
+
+    private void highlightSelected(int activeTarget) {
+        // Highlight the given target and fade others
+        mTargetDrawables.get(activeTarget).setState(TargetDrawable.STATE_ACTIVE);
+        hideUnselected(activeTarget);
+    }
+
+    private void hideUnselected(int active) {
+        for (int i = 0; i < mTargetDrawables.size(); i++) {
+            if (i != active) {
+                mTargetDrawables.get(i).setAlpha(0.0f);
+            }
+        }
+    }
+
+    private void hideTargets(boolean animate, boolean expanded) {
+        mTargetAnimations.cancel();
+        // Note: these animations should complete at the same time so that we can swap out
+        // the target assets asynchronously from the setTargetResources() call.
+        mAnimatingTargets = animate;
+        final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
+        final int delay = animate ? HIDE_ANIMATION_DELAY : 0;
+
+        final float targetScale = expanded ?
+                TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
+        final int length = mTargetDrawables.size();
+        final TimeInterpolator interpolator = Ease.Cubic.easeOut;
+        for (int i = 0; i < length; i++) {
+            TargetDrawable target = mTargetDrawables.get(i);
+            target.setState(TargetDrawable.STATE_INACTIVE);
+            mTargetAnimations.add(Tweener.to(target, duration,
+                    "ease", interpolator,
+                    "alpha", 0.0f,
+                    "scaleX", targetScale,
+                    "scaleY", targetScale,
+                    "delay", delay,
+                    "onUpdate", mUpdateListener));
+        }
+
+        float ringScaleTarget = expanded ?
+                RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
+        ringScaleTarget *= mRingScaleFactor;
+        mTargetAnimations.add(Tweener.to(mOuterRing, duration,
+                "ease", interpolator,
+                "alpha", 0.0f,
+                "scaleX", ringScaleTarget,
+                "scaleY", ringScaleTarget,
+                "delay", delay,
+                "onUpdate", mUpdateListener,
+                "onComplete", mTargetUpdateListener));
+
+        mTargetAnimations.start();
+    }
+
+    private void showTargets(boolean animate) {
+        mTargetAnimations.stop();
+        mAnimatingTargets = animate;
+        final int delay = animate ? SHOW_ANIMATION_DELAY : 0;
+        final int duration = animate ? SHOW_ANIMATION_DURATION : 0;
+        final int length = mTargetDrawables.size();
+        for (int i = 0; i < length; i++) {
+            TargetDrawable target = mTargetDrawables.get(i);
+            target.setState(TargetDrawable.STATE_INACTIVE);
+            mTargetAnimations.add(Tweener.to(target, duration,
+                    "ease", Ease.Cubic.easeOut,
+                    "alpha", 1.0f,
+                    "scaleX", 1.0f,
+                    "scaleY", 1.0f,
+                    "delay", delay,
+                    "onUpdate", mUpdateListener));
+        }
+        float ringScale = mRingScaleFactor * RING_SCALE_EXPANDED;
+        mTargetAnimations.add(Tweener.to(mOuterRing, duration,
+                "ease", Ease.Cubic.easeOut,
+                "alpha", 1.0f,
+                "scaleX", ringScale,
+                "scaleY", ringScale,
+                "delay", delay,
+                "onUpdate", mUpdateListener,
+                "onComplete", mTargetUpdateListener));
+
+        mTargetAnimations.start();
+    }
+
+    private void vibrate() {
+        if (mVibrator != null) {
+            mVibrator.vibrate(mVibrationDuration);
+        }
+    }
+
+    private ArrayList<TargetDrawable> loadDrawableArray(int resourceId) {
+        Resources res = getContext().getResources();
+        TypedArray array = res.obtainTypedArray(resourceId);
+        final int count = array.length();
+        ArrayList<TargetDrawable> drawables = new ArrayList<TargetDrawable>(count);
+        for (int i = 0; i < count; i++) {
+            TypedValue value = array.peekValue(i);
+            TargetDrawable target = new TargetDrawable(res, value != null ? value.resourceId : 0, 3);
+            drawables.add(target);
+        }
+        array.recycle();
+        return drawables;
+    }
+
+    private void internalSetTargetResources(int resourceId) {
+        final ArrayList<TargetDrawable> targets = loadDrawableArray(resourceId);
+        mTargetDrawables = targets;
+        mTargetResourceId = resourceId;
+
+        int maxWidth = mHandleDrawable.getWidth();
+        int maxHeight = mHandleDrawable.getHeight();
+        final int count = targets.size();
+        for (int i = 0; i < count; i++) {
+            TargetDrawable target = targets.get(i);
+            maxWidth = Math.max(maxWidth, target.getWidth());
+            maxHeight = Math.max(maxHeight, target.getHeight());
+        }
+        if (mMaxTargetWidth != maxWidth || mMaxTargetHeight != maxHeight) {
+            mMaxTargetWidth = maxWidth;
+            mMaxTargetHeight = maxHeight;
+            requestLayout(); // required to resize layout and call updateTargetPositions()
+        } else {
+            updateTargetPositions(mWaveCenterX, mWaveCenterY);
+            updatePointCloudPosition(mWaveCenterX, mWaveCenterY);
+        }
+    }
+    /**
+     * Loads an array of drawables from the given resourceId.
+     *
+     * @param resourceId
+     */
+    public void setTargetResources(int resourceId) {
+        if (mAnimatingTargets) {
+            // postpone this change until we return to the initial state
+            mNewTargetResources = resourceId;
+        } else {
+            internalSetTargetResources(resourceId);
+        }
+    }
+
+    public int getTargetResourceId() {
+        return mTargetResourceId;
+    }
+
+    /**
+     * Sets the handle drawable to the drawable specified by the resource ID.
+     * @param resourceId
+     */
+    public void setHandleDrawable(int resourceId) {
+        if (mHandleDrawable != null) {
+            mHandleDrawable.setDrawable(getResources(), resourceId);
+        } else {
+            mHandleDrawable = new TargetDrawable(getResources(), resourceId, 1);
+        }
+        mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE);
+    }
+
+    /**
+     * Sets the resource id specifying the target descriptions for accessibility.
+     *
+     * @param resourceId The resource id.
+     */
+    public void setTargetDescriptionsResourceId(int resourceId) {
+        mTargetDescriptionsResourceId = resourceId;
+        if (mTargetDescriptions != null) {
+            mTargetDescriptions.clear();
+        }
+    }
+
+    /**
+     * Gets the resource id specifying the target descriptions for accessibility.
+     *
+     * @return The resource id.
+     */
+    public int getTargetDescriptionsResourceId() {
+        return mTargetDescriptionsResourceId;
+    }
+
+    /**
+     * Sets the resource id specifying the target direction descriptions for accessibility.
+     *
+     * @param resourceId The resource id.
+     */
+    public void setDirectionDescriptionsResourceId(int resourceId) {
+        mDirectionDescriptionsResourceId = resourceId;
+        if (mDirectionDescriptions != null) {
+            mDirectionDescriptions.clear();
+        }
+    }
+
+    /**
+     * Gets the resource id specifying the target direction descriptions.
+     *
+     * @return The resource id.
+     */
+    public int getDirectionDescriptionsResourceId() {
+        return mDirectionDescriptionsResourceId;
+    }
+
+    /**
+     * Enable or disable vibrate on touch.
+     *
+     * @param enabled
+     */
+    public void setVibrateEnabled(boolean enabled) {
+        if (enabled && mVibrator == null) {
+            mVibrator = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
+        } else {
+            mVibrator = null;
+        }
+    }
+
+    /**
+     * Starts wave animation.
+     *
+     */
+    public void ping() {
+        if (mFeedbackCount > 0) {
+            boolean doWaveAnimation = true;
+            final AnimationBundle waveAnimations = mWaveAnimations;
+
+            // Don't do a wave if there's already one in progress
+            if (waveAnimations.size() > 0 && waveAnimations.get(0).animator.isRunning()) {
+                long t = waveAnimations.get(0).animator.getCurrentPlayTime();
+                if (t < WAVE_ANIMATION_DURATION/2) {
+                    doWaveAnimation = false;
+                }
+            }
+
+            if (doWaveAnimation) {
+                startWaveAnimation();
+            }
+        }
+    }
+
+    private void stopAndHideWaveAnimation() {
+        mWaveAnimations.cancel();
+        mPointCloud.waveManager.setAlpha(0.0f);
+    }
+
+    private void startWaveAnimation() {
+        mWaveAnimations.cancel();
+        mPointCloud.waveManager.setAlpha(1.0f);
+        mPointCloud.waveManager.setRadius(mHandleDrawable.getWidth()/2.0f);
+        mWaveAnimations.add(Tweener.to(mPointCloud.waveManager, WAVE_ANIMATION_DURATION,
+                "ease", Ease.Quad.easeOut,
+                "delay", 0,
+                "radius", 2.0f * mOuterRadius,
+                "onUpdate", mUpdateListener,
+                "onComplete",
+                new AnimatorListenerAdapter() {
+                    public void onAnimationEnd(Animator animator) {
+                        mPointCloud.waveManager.setRadius(0.0f);
+                        mPointCloud.waveManager.setAlpha(0.0f);
+                    }
+                }));
+        mWaveAnimations.start();
+    }
+
+    /**
+     * Resets the widget to default state and cancels all animation. If animate is 'true', will
+     * animate objects into place. Otherwise, objects will snap back to place.
+     *
+     * @param animate
+     */
+    public void reset(boolean animate) {
+        mGlowAnimations.stop();
+        mTargetAnimations.stop();
+        startBackgroundAnimation(0, 0.0f);
+        stopAndHideWaveAnimation();
+        hideTargets(animate, false);
+        hideGlow(0, 0, 0.0f, null);
+        Tweener.reset();
+    }
+
+    private void startBackgroundAnimation(int duration, float alpha) {
+        final Drawable background = getBackground();
+        if (mAlwaysTrackFinger && background != null) {
+            if (mBackgroundAnimator != null) {
+                mBackgroundAnimator.animator.cancel();
+            }
+            mBackgroundAnimator = Tweener.to(background, duration,
+                    "ease", Ease.Cubic.easeIn,
+                    "alpha", (int)(255.0f * alpha),
+                    "delay", SHOW_ANIMATION_DELAY);
+            mBackgroundAnimator.animator.start();
+        }
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        final int action = event.getActionMasked();
+        boolean handled = false;
+        switch (action) {
+            case MotionEvent.ACTION_POINTER_DOWN:
+            case MotionEvent.ACTION_DOWN:
+                if (DEBUG) Log.v(TAG, "*** DOWN ***");
+                handleDown(event);
+                handleMove(event);
+                handled = true;
+                break;
+
+            case MotionEvent.ACTION_MOVE:
+                if (DEBUG) Log.v(TAG, "*** MOVE ***");
+                handleMove(event);
+                handled = true;
+                break;
+
+            case MotionEvent.ACTION_POINTER_UP:
+            case MotionEvent.ACTION_UP:
+                if (DEBUG) Log.v(TAG, "*** UP ***");
+                handleMove(event);
+                handleUp(event);
+                handled = true;
+                break;
+
+            case MotionEvent.ACTION_CANCEL:
+                if (DEBUG) Log.v(TAG, "*** CANCEL ***");
+                handleMove(event);
+                handleCancel(event);
+                handled = true;
+                break;
+        }
+        invalidate();
+        return handled ? true : super.onTouchEvent(event);
+    }
+
+    private void updateGlowPosition(float x, float y) {
+        float dx = x - mOuterRing.getX();
+        float dy = y - mOuterRing.getY();
+        dx *= 1f / mRingScaleFactor;
+        dy *= 1f / mRingScaleFactor;
+        mPointCloud.glowManager.setX(mOuterRing.getX() + dx);
+        mPointCloud.glowManager.setY(mOuterRing.getY() + dy);
+    }
+
+    private void handleDown(MotionEvent event) {
+        int actionIndex = event.getActionIndex();
+        float eventX = event.getX(actionIndex);
+        float eventY = event.getY(actionIndex);
+        switchToState(STATE_START, eventX, eventY);
+        if (!trySwitchToFirstTouchState(eventX, eventY)) {
+            mDragging = false;
+        } else {
+            mPointerId = event.getPointerId(actionIndex);
+            updateGlowPosition(eventX, eventY);
+        }
+    }
+
+    private void handleUp(MotionEvent event) {
+        if (DEBUG && mDragging) Log.v(TAG, "** Handle RELEASE");
+        int actionIndex = event.getActionIndex();
+        if (event.getPointerId(actionIndex) == mPointerId) {
+            switchToState(STATE_FINISH, event.getX(actionIndex), event.getY(actionIndex));
+        }
+    }
+
+    private void handleCancel(MotionEvent event) {
+        if (DEBUG && mDragging) Log.v(TAG, "** Handle CANCEL");
+
+        // We should drop the active target here but it interferes with
+        // moving off the screen in the direction of the navigation bar. At some point we may
+        // want to revisit how we handle this. For now we'll allow a canceled event to
+        // activate the current target.
+
+        // mActiveTarget = -1; // Drop the active target if canceled.
+
+        int actionIndex = event.findPointerIndex(mPointerId);
+        actionIndex = actionIndex == -1 ? 0 : actionIndex;
+        switchToState(STATE_FINISH, event.getX(actionIndex), event.getY(actionIndex));
+    }
+
+    private void handleMove(MotionEvent event) {
+        int activeTarget = -1;
+        final int historySize = event.getHistorySize();
+        ArrayList<TargetDrawable> targets = mTargetDrawables;
+        int ntargets = targets.size();
+        float x = 0.0f;
+        float y = 0.0f;
+        int actionIndex = event.findPointerIndex(mPointerId);
+
+        if (actionIndex == -1) {
+            return;  // no data for this pointer
+        }
+
+        for (int k = 0; k < historySize + 1; k++) {
+            float eventX = k < historySize ? event.getHistoricalX(actionIndex, k)
+                    : event.getX(actionIndex);
+            float eventY = k < historySize ? event.getHistoricalY(actionIndex, k)
+                    :event.getY(actionIndex);
+            // tx and ty are relative to wave center
+            float tx = eventX - mWaveCenterX;
+            float ty = eventY - mWaveCenterY;
+            float touchRadius = (float) Math.hypot(tx, ty);
+            final float scale = touchRadius > mOuterRadius ? mOuterRadius / touchRadius : 1.0f;
+            float limitX = tx * scale;
+            float limitY = ty * scale;
+            double angleRad = Math.atan2(-ty, tx);
+
+            if (!mDragging) {
+                trySwitchToFirstTouchState(eventX, eventY);
+            }
+
+            if (mDragging) {
+                // For multiple targets, snap to the one that matches
+                final float snapRadius = mRingScaleFactor * mOuterRadius - mSnapMargin;
+                final float snapDistance2 = snapRadius * snapRadius;
+                // Find first target in range
+                for (int i = 0; i < ntargets; i++) {
+                    TargetDrawable target = targets.get(i);
+
+                    double targetMinRad = (i - 0.5) * 2 * Math.PI / ntargets;
+                    double targetMaxRad = (i + 0.5) * 2 * Math.PI / ntargets;
+                    if (target.isEnabled()) {
+                        boolean angleMatches =
+                            (angleRad > targetMinRad && angleRad <= targetMaxRad) ||
+                            (angleRad + 2 * Math.PI > targetMinRad &&
+                             angleRad + 2 * Math.PI <= targetMaxRad);
+                        if (angleMatches && (dist2(tx, ty) > snapDistance2)) {
+                            activeTarget = i;
+                        }
+                    }
+                }
+            }
+            x = limitX;
+            y = limitY;
+        }
+
+        if (!mDragging) {
+            return;
+        }
+
+        if (activeTarget != -1) {
+            switchToState(STATE_SNAP, x,y);
+            updateGlowPosition(x, y);
+        } else {
+            switchToState(STATE_TRACKING, x, y);
+            updateGlowPosition(x, y);
+        }
+
+        if (mActiveTarget != activeTarget) {
+            // Defocus the old target
+            if (mActiveTarget != -1) {
+                TargetDrawable target = targets.get(mActiveTarget);
+                target.setState(TargetDrawable.STATE_INACTIVE);
+            }
+            // Focus the new target
+            if (activeTarget != -1) {
+                TargetDrawable target = targets.get(activeTarget);
+                target.setState(TargetDrawable.STATE_FOCUSED);
+                final AccessibilityManager accessibilityManager =
+                        (AccessibilityManager) getContext().getSystemService(
+                                Context.ACCESSIBILITY_SERVICE);
+                if (accessibilityManager.isEnabled()) {
+                    String targetContentDescription = getTargetDescription(activeTarget);
+                    announceForAccessibility(targetContentDescription);
+                }
+            }
+        }
+        mActiveTarget = activeTarget;
+    }
+
+    @Override
+    public boolean onHoverEvent(MotionEvent event) {
+        final AccessibilityManager accessibilityManager =
+                (AccessibilityManager) getContext().getSystemService(
+                        Context.ACCESSIBILITY_SERVICE);
+        if (accessibilityManager.isTouchExplorationEnabled()) {
+            final int action = event.getAction();
+            switch (action) {
+                case MotionEvent.ACTION_HOVER_ENTER:
+                    event.setAction(MotionEvent.ACTION_DOWN);
+                    break;
+                case MotionEvent.ACTION_HOVER_MOVE:
+                    event.setAction(MotionEvent.ACTION_MOVE);
+                    break;
+                case MotionEvent.ACTION_HOVER_EXIT:
+                    event.setAction(MotionEvent.ACTION_UP);
+                    break;
+            }
+            onTouchEvent(event);
+            event.setAction(action);
+        }
+        super.onHoverEvent(event);
+        return true;
+    }
+
+    /**
+     * Sets the current grabbed state, and dispatches a grabbed state change
+     * event to our listener.
+     */
+    private void setGrabbedState(int newState) {
+        if (newState != mGrabbedState) {
+            if (newState != OnTriggerListener.NO_HANDLE) {
+                vibrate();
+            }
+            mGrabbedState = newState;
+            if (mOnTriggerListener != null) {
+                if (newState == OnTriggerListener.NO_HANDLE) {
+                    mOnTriggerListener.onReleased(this, OnTriggerListener.CENTER_HANDLE);
+                } else {
+                    mOnTriggerListener.onGrabbed(this, OnTriggerListener.CENTER_HANDLE);
+                }
+                mOnTriggerListener.onGrabbedStateChange(this, newState);
+            }
+        }
+    }
+
+    private boolean trySwitchToFirstTouchState(float x, float y) {
+        final float tx = x - mWaveCenterX;
+        final float ty = y - mWaveCenterY;
+        if (mAlwaysTrackFinger || dist2(tx,ty) <= getScaledGlowRadiusSquared()) {
+            if (DEBUG) Log.v(TAG, "** Handle HIT");
+            switchToState(STATE_FIRST_TOUCH, x, y);
+            updateGlowPosition(tx, ty);
+            mDragging = true;
+            return true;
+        }
+        return false;
+    }
+
+    private void assignDefaultsIfNeeded() {
+        if (mOuterRadius == 0.0f) {
+            mOuterRadius = Math.max(mOuterRing.getWidth(), mOuterRing.getHeight())/2.0f;
+        }
+        if (mSnapMargin == 0.0f) {
+            mSnapMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                    SNAP_MARGIN_DEFAULT, getContext().getResources().getDisplayMetrics());
+        }
+        if (mInnerRadius == 0.0f) {
+            mInnerRadius = mHandleDrawable.getWidth() / 10.0f;
+        }
+    }
+
+    private void computeInsets(int dx, int dy) {
+        final int layoutDirection = getLayoutDirection();
+        final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
+
+        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
+            case Gravity.LEFT:
+                mHorizontalInset = 0;
+                break;
+            case Gravity.RIGHT:
+                mHorizontalInset = dx;
+                break;
+            case Gravity.CENTER_HORIZONTAL:
+            default:
+                mHorizontalInset = dx / 2;
+                break;
+        }
+        switch (absoluteGravity & Gravity.VERTICAL_GRAVITY_MASK) {
+            case Gravity.TOP:
+                mVerticalInset = 0;
+                break;
+            case Gravity.BOTTOM:
+                mVerticalInset = dy;
+                break;
+            case Gravity.CENTER_VERTICAL:
+            default:
+                mVerticalInset = dy / 2;
+                break;
+        }
+    }
+
+    /**
+     * Given the desired width and height of the ring and the allocated width and height, compute
+     * how much we need to scale the ring.
+     */
+    private float computeScaleFactor(int desiredWidth, int desiredHeight,
+            int actualWidth, int actualHeight) {
+
+        // Return unity if scaling is not allowed.
+        if (!mAllowScaling) return 1f;
+
+        final int layoutDirection = getLayoutDirection();
+        final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
+
+        float scaleX = 1f;
+        float scaleY = 1f;
+
+        // We use the gravity as a cue for whether we want to scale on a particular axis.
+        // We only scale to fit horizontally if we're not pinned to the left or right. Likewise,
+        // we only scale to fit vertically if we're not pinned to the top or bottom. In these
+        // cases, we want the ring to hang off the side or top/bottom, respectively.
+        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
+            case Gravity.LEFT:
+            case Gravity.RIGHT:
+                break;
+            case Gravity.CENTER_HORIZONTAL:
+            default:
+                if (desiredWidth > actualWidth) {
+                    scaleX = (1f * actualWidth - mMaxTargetWidth) /
+                            (desiredWidth - mMaxTargetWidth);
+                }
+                break;
+        }
+        switch (absoluteGravity & Gravity.VERTICAL_GRAVITY_MASK) {
+            case Gravity.TOP:
+            case Gravity.BOTTOM:
+                break;
+            case Gravity.CENTER_VERTICAL:
+            default:
+                if (desiredHeight > actualHeight) {
+                    scaleY = (1f * actualHeight - mMaxTargetHeight) /
+                            (desiredHeight - mMaxTargetHeight);
+                }
+                break;
+        }
+        return Math.min(scaleX, scaleY);
+    }
+
+    private float getRingWidth() {
+        return mRingScaleFactor * Math.max(mOuterRing.getWidth(), 2 * mOuterRadius);
+    }
+
+    private float getRingHeight() {
+        return mRingScaleFactor * Math.max(mOuterRing.getHeight(), 2 * mOuterRadius);
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        super.onLayout(changed, left, top, right, bottom);
+        final int width = right - left;
+        final int height = bottom - top;
+
+        // Target placement width/height. This puts the targets on the greater of the ring
+        // width or the specified outer radius.
+        final float placementWidth = getRingWidth();
+        final float placementHeight = getRingHeight();
+        float newWaveCenterX = mHorizontalInset
+                + (mMaxTargetWidth + placementWidth) / 2;
+        float newWaveCenterY = mVerticalInset
+                + (mMaxTargetHeight + placementHeight) / 2;
+
+        if (mInitialLayout) {
+            stopAndHideWaveAnimation();
+            hideTargets(false, false);
+            mInitialLayout = false;
+        }
+
+        mOuterRing.setPositionX(newWaveCenterX);
+        mOuterRing.setPositionY(newWaveCenterY);
+
+        mPointCloud.setScale(mRingScaleFactor);
+
+        mHandleDrawable.setPositionX(newWaveCenterX);
+        mHandleDrawable.setPositionY(newWaveCenterY);
+
+        updateTargetPositions(newWaveCenterX, newWaveCenterY);
+        updatePointCloudPosition(newWaveCenterX, newWaveCenterY);
+        updateGlowPosition(newWaveCenterX, newWaveCenterY);
+
+        mWaveCenterX = newWaveCenterX;
+        mWaveCenterY = newWaveCenterY;
+
+        if (DEBUG) dump();
+    }
+
+    private void updateTargetPositions(float centerX, float centerY) {
+        // Reposition the target drawables if the view changed.
+        ArrayList<TargetDrawable> targets = mTargetDrawables;
+        final int size = targets.size();
+        final float alpha = (float) (-2.0f * Math.PI / size);
+        for (int i = 0; i < size; i++) {
+            final TargetDrawable targetIcon = targets.get(i);
+            final float angle = alpha * i;
+            targetIcon.setPositionX(centerX);
+            targetIcon.setPositionY(centerY);
+            targetIcon.setX(getRingWidth() / 2 * (float) Math.cos(angle));
+            targetIcon.setY(getRingHeight() / 2 * (float) Math.sin(angle));
+        }
+    }
+
+    private void updatePointCloudPosition(float centerX, float centerY) {
+        mPointCloud.setCenter(centerX, centerY);
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        mPointCloud.draw(canvas);
+        mOuterRing.draw(canvas);
+        final int ntargets = mTargetDrawables.size();
+        for (int i = 0; i < ntargets; i++) {
+            TargetDrawable target = mTargetDrawables.get(i);
+            if (target != null) {
+                target.draw(canvas);
+            }
+        }
+        mHandleDrawable.draw(canvas);
+    }
+
+    public void setOnTriggerListener(OnTriggerListener listener) {
+        mOnTriggerListener = listener;
+    }
+
+    private float square(float d) {
+        return d * d;
+    }
+
+    private float dist2(float dx, float dy) {
+        return dx*dx + dy*dy;
+    }
+
+    private float getScaledGlowRadiusSquared() {
+        final float scaledTapRadius;
+        final AccessibilityManager accessibilityManager =
+                (AccessibilityManager) getContext().getSystemService(
+                        Context.ACCESSIBILITY_SERVICE);
+        if (accessibilityManager.isEnabled()) {
+            scaledTapRadius = TAP_RADIUS_SCALE_ACCESSIBILITY_ENABLED * mGlowRadius;
+        } else {
+            scaledTapRadius = mGlowRadius;
+        }
+        return square(scaledTapRadius);
+    }
+
+    private void announceTargets() {
+        StringBuilder utterance = new StringBuilder();
+        final int targetCount = mTargetDrawables.size();
+        for (int i = 0; i < targetCount; i++) {
+            String targetDescription = getTargetDescription(i);
+            String directionDescription = getDirectionDescription(i);
+            if (!TextUtils.isEmpty(targetDescription)
+                    && !TextUtils.isEmpty(directionDescription)) {
+                String text = String.format(directionDescription, targetDescription);
+                utterance.append(text);
+            }
+        }
+        if (utterance.length() > 0) {
+            announceForAccessibility(utterance.toString());
+        }
+    }
+
+    private String getTargetDescription(int index) {
+        if (mTargetDescriptions == null || mTargetDescriptions.isEmpty()) {
+            mTargetDescriptions = loadDescriptions(mTargetDescriptionsResourceId);
+            if (mTargetDrawables.size() != mTargetDescriptions.size()) {
+                Log.w(TAG, "The number of target drawables must be"
+                        + " equal to the number of target descriptions.");
+                return null;
+            }
+        }
+        return mTargetDescriptions.get(index);
+    }
+
+    private String getDirectionDescription(int index) {
+        if (mDirectionDescriptions == null || mDirectionDescriptions.isEmpty()) {
+            mDirectionDescriptions = loadDescriptions(mDirectionDescriptionsResourceId);
+            if (mTargetDrawables.size() != mDirectionDescriptions.size()) {
+                Log.w(TAG, "The number of target drawables must be"
+                        + " equal to the number of direction descriptions.");
+                return null;
+            }
+        }
+        return mDirectionDescriptions.get(index);
+    }
+
+    private ArrayList<String> loadDescriptions(int resourceId) {
+        TypedArray array = getContext().getResources().obtainTypedArray(resourceId);
+        final int count = array.length();
+        ArrayList<String> targetContentDescriptions = new ArrayList<String>(count);
+        for (int i = 0; i < count; i++) {
+            String contentDescription = array.getString(i);
+            targetContentDescriptions.add(contentDescription);
+        }
+        array.recycle();
+        return targetContentDescriptions;
+    }
+
+    public int getResourceIdForTarget(int index) {
+        final TargetDrawable drawable = mTargetDrawables.get(index);
+        return drawable == null ? 0 : drawable.getResourceId();
+    }
+
+    public void setEnableTarget(int resourceId, boolean enabled) {
+        for (int i = 0; i < mTargetDrawables.size(); i++) {
+            final TargetDrawable target = mTargetDrawables.get(i);
+            if (target.getResourceId() == resourceId) {
+                target.setEnabled(enabled);
+                break; // should never be more than one match
+            }
+        }
+    }
+
+    /**
+     * Gets the position of a target in the array that matches the given resource.
+     * @param resourceId
+     * @return the index or -1 if not found
+     */
+    public int getTargetPosition(int resourceId) {
+        for (int i = 0; i < mTargetDrawables.size(); i++) {
+            final TargetDrawable target = mTargetDrawables.get(i);
+            if (target.getResourceId() == resourceId) {
+                return i; // should never be more than one match
+            }
+        }
+        return -1;
+    }
+
+    private boolean replaceTargetDrawables(Resources res, int existingResourceId,
+            int newResourceId) {
+        if (existingResourceId == 0 || newResourceId == 0) {
+            return false;
+        }
+
+        boolean result = false;
+        final ArrayList<TargetDrawable> drawables = mTargetDrawables;
+        final int size = drawables.size();
+        for (int i = 0; i < size; i++) {
+            final TargetDrawable target = drawables.get(i);
+            if (target != null && target.getResourceId() == existingResourceId) {
+                target.setDrawable(res, newResourceId);
+                result = true;
+            }
+        }
+
+        if (result) {
+            requestLayout(); // in case any given drawable's size changes
+        }
+
+        return result;
+    }
+
+    /**
+     * Searches the given package for a resource to use to replace the Drawable on the
+     * target with the given resource id
+     * @param component of the .apk that contains the resource
+     * @param name of the metadata in the .apk
+     * @param existingResId the resource id of the target to search for
+     * @return true if found in the given package and replaced at least one target Drawables
+     */
+    public boolean replaceTargetDrawablesIfPresent(ComponentName component, String name,
+                int existingResId) {
+        if (existingResId == 0) return false;
+
+        boolean replaced = false;
+        if (component != null) {
+            try {
+                PackageManager packageManager = getContext().getPackageManager();
+                // Look for the search icon specified in the activity meta-data
+                Bundle metaData = packageManager.getActivityInfo(
+                        component, PackageManager.GET_META_DATA).metaData;
+                if (metaData != null) {
+                    int iconResId = metaData.getInt(name);
+                    if (iconResId != 0) {
+                        Resources res = packageManager.getResourcesForActivity(component);
+                        replaced = replaceTargetDrawables(res, existingResId, iconResId);
+                    }
+                }
+            } catch (NameNotFoundException e) {
+                Log.w(TAG, "Failed to swap drawable; "
+                        + component.flattenToShortString() + " not found", e);
+            } catch (Resources.NotFoundException nfe) {
+                Log.w(TAG, "Failed to swap drawable from "
+                        + component.flattenToShortString(), nfe);
+            }
+        }
+        if (!replaced) {
+            // Restore the original drawable
+            replaceTargetDrawables(getContext().getResources(), existingResId, existingResId);
+        }
+        return replaced;
+    }
+
+    public class GlowpadExploreByTouchHelper extends ExploreByTouchHelper {
+
+        private Rect mBounds = new Rect();
+
+        public GlowpadExploreByTouchHelper(View forView) {
+            super(forView);
+        }
+
+        @Override
+        protected int getVirtualViewAt(float x, float y) {
+            if (mGrabbedState == OnTriggerListener.CENTER_HANDLE) {
+                for (int i = 0; i < mTargetDrawables.size(); i++) {
+                    final TargetDrawable target = mTargetDrawables.get(i);
+                    if (target.isEnabled() && target.getBounds().contains((int) x, (int) y)) {
+                        return i;
+                    }
+                }
+                return INVALID_ID;
+            } else {
+                return HOST_ID;
+            }
+        }
+
+        @Override
+        protected void getVisibleVirtualViews(List<Integer> virtualViewIds) {
+            if (mGrabbedState == OnTriggerListener.CENTER_HANDLE) {
+                // Add virtual views backwards so that accessibility services like switch
+                // access traverse them in the correct order
+                for (int i = mTargetDrawables.size() - 1; i >= 0; i--) {
+                    if (mTargetDrawables.get(i).isEnabled()) {
+                        virtualViewIds.add(i);
+                    }
+                }
+            }
+        }
+
+        @Override
+        protected void onPopulateEventForVirtualView(int virtualViewId, AccessibilityEvent event) {
+            if (virtualViewId >= 0 && virtualViewId < mTargetDescriptions.size()) {
+                event.setContentDescription(mTargetDescriptions.get(virtualViewId));
+            }
+        }
+
+        @Override
+        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
+            if (host == GlowPadView.this && event.getEventType()
+                    == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) {
+                event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE);
+            }
+            super.onInitializeAccessibilityEvent(host, event);
+        }
+
+        @Override
+        public void onPopulateNodeForHost(AccessibilityNodeInfoCompat node) {
+            if (mGrabbedState == OnTriggerListener.NO_HANDLE) {
+                node.setClickable(true);
+                node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
+            }
+            mBounds.set(0, 0, GlowPadView.this.getWidth(), GlowPadView.this.getHeight());
+            node.setBoundsInParent(mBounds);
+        }
+
+        @Override
+        public boolean performAccessibilityAction(View host, int action, Bundle args) {
+            if (mGrabbedState == OnTriggerListener.NO_HANDLE) {
+                // Simulate handle being grabbed to expose targets.
+                trySwitchToFirstTouchState(mWaveCenterX, mWaveCenterY);
+                invalidateRoot();
+                return true;
+            }
+            return super.performAccessibilityAction(host, action, args);
+        }
+
+        @Override
+        protected void onPopulateNodeForVirtualView(int virtualViewId,
+                AccessibilityNodeInfoCompat node) {
+            if (virtualViewId < mTargetDrawables.size()) {
+                final TargetDrawable target = mTargetDrawables.get(virtualViewId);
+                node.setBoundsInParent(target.getBounds());
+                node.setClickable(true);
+                node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
+                node.setContentDescription(getTargetDescription(virtualViewId));
+            }
+        }
+
+        @Override
+        protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
+                Bundle arguments) {
+            if (action == AccessibilityNodeInfo.ACTION_CLICK) {
+                if (virtualViewId >= 0 && virtualViewId < mTargetDrawables.size()) {
+                    dispatchTriggerEvent(virtualViewId);
+                    return true;
+                }
+            }
+            return false;
+        }
+
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/PointCloud.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/PointCloud.java
new file mode 100644
index 0000000..07a2cb9
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/PointCloud.java
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.widget.multiwaveview;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+
+import java.util.ArrayList;
+
+public class PointCloud {
+    private static final float MIN_POINT_SIZE = 2.0f;
+    private static final float MAX_POINT_SIZE = 4.0f;
+    private static final int INNER_POINTS = 8;
+    private static final String TAG = "PointCloud";
+    private ArrayList<Point> mPointCloud = new ArrayList<Point>();
+    private Drawable mDrawable;
+    private float mCenterX;
+    private float mCenterY;
+    private Paint mPaint;
+    private float mScale = 1.0f;
+    private static final float PI = (float) Math.PI;
+
+    // These allow us to have multiple concurrent animations.
+    WaveManager waveManager = new WaveManager();
+    GlowManager glowManager = new GlowManager();
+    private float mOuterRadius;
+
+    public class WaveManager {
+        private float radius = 50;
+        private float width = 200.0f; // TODO: Make configurable
+        private float alpha = 0.0f;
+        public void setRadius(float r) {
+            radius = r;
+        }
+
+        public float getRadius() {
+            return radius;
+        }
+
+        public void setAlpha(float a) {
+            alpha = a;
+        }
+
+        public float getAlpha() {
+            return alpha;
+        }
+    };
+
+    public class GlowManager {
+        private float x;
+        private float y;
+        private float radius = 0.0f;
+        private float alpha = 0.0f;
+
+        public void setX(float x1) {
+            x = x1;
+        }
+
+        public float getX() {
+            return x;
+        }
+
+        public void setY(float y1) {
+            y = y1;
+        }
+
+        public float getY() {
+            return y;
+        }
+
+        public void setAlpha(float a) {
+            alpha = a;
+        }
+
+        public float getAlpha() {
+            return alpha;
+        }
+
+        public void setRadius(float r) {
+            radius = r;
+        }
+
+        public float getRadius() {
+            return radius;
+        }
+    }
+
+    class Point {
+        float x;
+        float y;
+        float radius;
+
+        public Point(float x2, float y2, float r) {
+            x = (float) x2;
+            y = (float) y2;
+            radius = r;
+        }
+    }
+
+    public PointCloud(Drawable drawable) {
+        mPaint = new Paint();
+        mPaint.setFilterBitmap(true);
+        mPaint.setColor(Color.rgb(255, 255, 255)); // TODO: make configurable
+        mPaint.setAntiAlias(true);
+        mPaint.setDither(true);
+
+        mDrawable = drawable;
+        if (mDrawable != null) {
+            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+        }
+    }
+
+    public void setCenter(float x, float y) {
+        mCenterX = x;
+        mCenterY = y;
+    }
+
+    public void makePointCloud(float innerRadius, float outerRadius) {
+        if (innerRadius == 0) {
+            Log.w(TAG, "Must specify an inner radius");
+            return;
+        }
+        mOuterRadius = outerRadius;
+        mPointCloud.clear();
+        final float pointAreaRadius =  (outerRadius - innerRadius);
+        final float ds = (2.0f * PI * innerRadius / INNER_POINTS);
+        final int bands = (int) Math.round(pointAreaRadius / ds);
+        final float dr = pointAreaRadius / bands;
+        float r = innerRadius;
+        for (int b = 0; b <= bands; b++, r += dr) {
+            float circumference = 2.0f * PI * r;
+            final int pointsInBand = (int) (circumference / ds);
+            float eta = PI/2.0f;
+            float dEta = 2.0f * PI / pointsInBand;
+            for (int i = 0; i < pointsInBand; i++) {
+                float x = r * (float) Math.cos(eta);
+                float y = r * (float) Math.sin(eta);
+                eta += dEta;
+                mPointCloud.add(new Point(x, y, r));
+            }
+        }
+    }
+
+    public void setScale(float scale) {
+        mScale  = scale;
+    }
+
+    public float getScale() {
+        return mScale;
+    }
+
+    private static float hypot(float x, float y) {
+        return (float) Math.hypot(x, y);
+    }
+
+    private static float max(float a, float b) {
+        return a > b ? a : b;
+    }
+
+    public int getAlphaForPoint(Point point) {
+        // Contribution from positional glow
+        float glowDistance = hypot(glowManager.x - point.x, glowManager.y - point.y);
+        float glowAlpha = 0.0f;
+
+        if (glowDistance < glowManager.radius) {
+            double cos = Math.cos(Math.PI * 0.25d * glowDistance / glowManager.radius);
+            glowAlpha = glowManager.alpha * max(0.0f, (float) Math.pow(cos, 10.0d));
+        }
+
+        // Compute contribution from Wave
+        float radius = hypot(point.x, point.y);
+        float distanceToWaveRing = (radius - waveManager.radius);
+        float waveAlpha = 0.0f;
+        if (distanceToWaveRing < waveManager.width * 0.5f && distanceToWaveRing < 0.0f) {
+            double cos = Math.cos(Math.PI * 0.25d * distanceToWaveRing / waveManager.width);
+            waveAlpha = waveManager.alpha * max(0.0f, (float) Math.pow(cos, 20.0d));
+        }
+
+        return (int) (max(glowAlpha, waveAlpha) * 255);
+    }
+
+    private float interp(float min, float max, float f) {
+        return min + (max - min) * f;
+    }
+
+    public void draw(Canvas canvas) {
+        ArrayList<Point> points = mPointCloud;
+        canvas.save(Canvas.MATRIX_SAVE_FLAG);
+        canvas.scale(mScale, mScale, mCenterX, mCenterY);
+        for (int i = 0; i < points.size(); i++) {
+            Point point = points.get(i);
+            final float pointSize = interp(MAX_POINT_SIZE, MIN_POINT_SIZE,
+                    point.radius / mOuterRadius);
+            final float px = point.x + mCenterX;
+            final float py = point.y + mCenterY;
+            int alpha = getAlphaForPoint(point);
+
+            if (alpha == 0) continue;
+
+            if (mDrawable != null) {
+                canvas.save(Canvas.MATRIX_SAVE_FLAG);
+                final float cx = mDrawable.getIntrinsicWidth() * 0.5f;
+                final float cy = mDrawable.getIntrinsicHeight() * 0.5f;
+                final float s = pointSize / MAX_POINT_SIZE;
+                canvas.scale(s, s, px, py);
+                canvas.translate(px - cx, py - cy);
+                mDrawable.setAlpha(alpha);
+                mDrawable.draw(canvas);
+                canvas.restore();
+            } else {
+                mPaint.setAlpha(alpha);
+                canvas.drawCircle(px, py, pointSize, mPaint);
+            }
+        }
+        canvas.restore();
+    }
+
+}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/TargetDrawable.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/TargetDrawable.java
new file mode 100644
index 0000000..adc5324
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/TargetDrawable.java
@@ -0,0 +1,250 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui.widget.multiwaveview;
+
+import android.content.res.Resources;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
+import android.util.Log;
+
+public class TargetDrawable {
+    private static final String TAG = "TargetDrawable";
+    private static final boolean DEBUG = false;
+
+    public static final int[] STATE_ACTIVE =
+            { android.R.attr.state_enabled, android.R.attr.state_active };
+    public static final int[] STATE_INACTIVE =
+            { android.R.attr.state_enabled, -android.R.attr.state_active };
+    public static final int[] STATE_FOCUSED =
+            { android.R.attr.state_enabled, -android.R.attr.state_active,
+                android.R.attr.state_focused };
+
+    private float mTranslationX = 0.0f;
+    private float mTranslationY = 0.0f;
+    private float mPositionX = 0.0f;
+    private float mPositionY = 0.0f;
+    private float mScaleX = 1.0f;
+    private float mScaleY = 1.0f;
+    private float mAlpha = 1.0f;
+    private Drawable mDrawable;
+    private boolean mEnabled = true;
+    private final int mResourceId;
+    private int mNumDrawables = 1;
+    private Rect mBounds;
+
+    /**
+     * This is changed from the framework version to pass in the number of drawables in the
+     * container. The framework version relies on private api's to get the count from
+     * StateListDrawable.
+     *
+     * @param res
+     * @param resId
+     * @param count The number of drawables in the resource.
+     */
+    public TargetDrawable(Resources res, int resId, int count) {
+        mResourceId = resId;
+        setDrawable(res, resId);
+        mNumDrawables = count;
+    }
+
+    public void setDrawable(Resources res, int resId) {
+        // Note we explicitly don't set mResourceId to resId since we allow the drawable to be
+        // swapped at runtime and want to re-use the existing resource id for identification.
+        Drawable drawable = resId == 0 ? null : res.getDrawable(resId);
+        // Mutate the drawable so we can animate shared drawable properties.
+        mDrawable = drawable != null ? drawable.mutate() : null;
+        resizeDrawables();
+        setState(STATE_INACTIVE);
+    }
+
+    public TargetDrawable(TargetDrawable other) {
+        mResourceId = other.mResourceId;
+        // Mutate the drawable so we can animate shared drawable properties.
+        mDrawable = other.mDrawable != null ? other.mDrawable.mutate() : null;
+        resizeDrawables();
+        setState(STATE_INACTIVE);
+    }
+
+    public void setState(int [] state) {
+        if (mDrawable instanceof StateListDrawable) {
+            StateListDrawable d = (StateListDrawable) mDrawable;
+            d.setState(state);
+        }
+    }
+
+    /**
+     * Returns true if the drawable is a StateListDrawable and is in the focused state.
+     *
+     * @return
+     */
+    public boolean isActive() {
+        if (mDrawable instanceof StateListDrawable) {
+            StateListDrawable d = (StateListDrawable) mDrawable;
+            int[] states = d.getState();
+            for (int i = 0; i < states.length; i++) {
+                if (states[i] == android.R.attr.state_focused) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if this target is enabled. Typically an enabled target contains a valid
+     * drawable in a valid state. Currently all targets with valid drawables are valid.
+     *
+     * @return
+     */
+    public boolean isEnabled() {
+        return mDrawable != null && mEnabled;
+    }
+
+    /**
+     * Makes drawables in a StateListDrawable all the same dimensions.
+     * If not a StateListDrawable, then justs sets the bounds to the intrinsic size of the
+     * drawable.
+     */
+    private void resizeDrawables() {
+        if (mDrawable instanceof StateListDrawable) {
+            StateListDrawable d = (StateListDrawable) mDrawable;
+            int maxWidth = 0;
+            int maxHeight = 0;
+
+            for (int i = 0; i < mNumDrawables; i++) {
+                d.selectDrawable(i);
+                Drawable childDrawable = d.getCurrent();
+                maxWidth = Math.max(maxWidth, childDrawable.getIntrinsicWidth());
+                maxHeight = Math.max(maxHeight, childDrawable.getIntrinsicHeight());
+            }
+
+            if (DEBUG) Log.v(TAG, "union of childDrawable rects " + d + " to: "
+                    + maxWidth + "x" + maxHeight);
+            d.setBounds(0, 0, maxWidth, maxHeight);
+
+            for (int i = 0; i < mNumDrawables; i++) {
+                d.selectDrawable(i);
+                Drawable childDrawable = d.getCurrent();
+                if (DEBUG) Log.v(TAG, "sizing drawable " + childDrawable + " to: "
+                            + maxWidth + "x" + maxHeight);
+                childDrawable.setBounds(0, 0, maxWidth, maxHeight);
+            }
+        } else if (mDrawable != null) {
+            mDrawable.setBounds(0, 0,
+                    mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight());
+        }
+    }
+
+    public void setX(float x) {
+        mTranslationX = x;
+    }
+
+    public void setY(float y) {
+        mTranslationY = y;
+    }
+
+    public void setScaleX(float x) {
+        mScaleX = x;
+    }
+
+    public void setScaleY(float y) {
+        mScaleY = y;
+    }
+
+    public void setAlpha(float alpha) {
+        mAlpha = alpha;
+    }
+
+    public float getX() {
+        return mTranslationX;
+    }
+
+    public float getY() {
+        return mTranslationY;
+    }
+
+    public float getScaleX() {
+        return mScaleX;
+    }
+
+    public float getScaleY() {
+        return mScaleY;
+    }
+
+    public float getAlpha() {
+        return mAlpha;
+    }
+
+    public void setPositionX(float x) {
+        mPositionX = x;
+    }
+
+    public void setPositionY(float y) {
+        mPositionY = y;
+    }
+
+    public float getPositionX() {
+        return mPositionX;
+    }
+
+    public float getPositionY() {
+        return mPositionY;
+    }
+
+    public int getWidth() {
+        return mDrawable != null ? mDrawable.getIntrinsicWidth() : 0;
+    }
+
+    public int getHeight() {
+        return mDrawable != null ? mDrawable.getIntrinsicHeight() : 0;
+    }
+
+    public Rect getBounds() {
+        if (mBounds == null) {
+            mBounds = new Rect();
+        }
+        mBounds.set((int) (mTranslationX + mPositionX - getWidth() * 0.5),
+                (int) (mTranslationY + mPositionY - getHeight() * 0.5),
+                (int) (mTranslationX + mPositionX + getWidth() * 0.5),
+                (int) (mTranslationY + mPositionY + getHeight() * 0.5));
+        return mBounds;
+    }
+
+    public void draw(Canvas canvas) {
+        if (mDrawable == null || !mEnabled) {
+            return;
+        }
+        canvas.save(Canvas.MATRIX_SAVE_FLAG);
+        canvas.scale(mScaleX, mScaleY, mPositionX, mPositionY);
+        canvas.translate(mTranslationX + mPositionX, mTranslationY + mPositionY);
+        canvas.translate(-0.5f * getWidth(), -0.5f * getHeight());
+        mDrawable.setAlpha((int) Math.round(mAlpha * 255f));
+        mDrawable.draw(canvas);
+        canvas.restore();
+    }
+
+    public void setEnabled(boolean enabled) {
+        mEnabled  = enabled;
+    }
+
+    public int getResourceId() {
+        return mResourceId;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/Tweener.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/Tweener.java
new file mode 100644
index 0000000..7222442
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/Tweener.java
@@ -0,0 +1,178 @@
+/*
+ * 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.
+ */
+
+package com.android.incallui.widget.multiwaveview;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.animation.TimeInterpolator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map.Entry;
+
+class Tweener {
+    private static final String TAG = "Tweener";
+    private static final boolean DEBUG = false;
+
+    ObjectAnimator animator;
+    private static HashMap<Object, Tweener> sTweens = new HashMap<Object, Tweener>();
+
+    public Tweener(ObjectAnimator anim) {
+        animator = anim;
+    }
+
+    private static void remove(Animator animator) {
+        Iterator<Entry<Object, Tweener>> iter = sTweens.entrySet().iterator();
+        while (iter.hasNext()) {
+            Entry<Object, Tweener> entry = iter.next();
+            if (entry.getValue().animator == animator) {
+                if (DEBUG) Log.v(TAG, "Removing tweener " + sTweens.get(entry.getKey())
+                        + " sTweens.size() = " + sTweens.size());
+                iter.remove();
+                break; // an animator can only be attached to one object
+            }
+        }
+    }
+
+    public static Tweener to(Object object, long duration, Object... vars) {
+        long delay = 0;
+        AnimatorUpdateListener updateListener = null;
+        AnimatorListener listener = null;
+        TimeInterpolator interpolator = null;
+
+        // Iterate through arguments and discover properties to animate
+        ArrayList<PropertyValuesHolder> props = new ArrayList<PropertyValuesHolder>(vars.length/2);
+        for (int i = 0; i < vars.length; i+=2) {
+            if (!(vars[i] instanceof String)) {
+                throw new IllegalArgumentException("Key must be a string: " + vars[i]);
+            }
+            String key = (String) vars[i];
+            Object value = vars[i+1];
+
+            if ("simultaneousTween".equals(key)) {
+                // TODO
+            } else if ("ease".equals(key)) {
+                interpolator = (TimeInterpolator) value; // TODO: multiple interpolators?
+            } else if ("onUpdate".equals(key) || "onUpdateListener".equals(key)) {
+                updateListener = (AnimatorUpdateListener) value;
+            } else if ("onComplete".equals(key) || "onCompleteListener".equals(key)) {
+                listener = (AnimatorListener) value;
+            } else if ("delay".equals(key)) {
+                delay = ((Number) value).longValue();
+            } else if ("syncWith".equals(key)) {
+                // TODO
+            } else if (value instanceof float[]) {
+                props.add(PropertyValuesHolder.ofFloat(key,
+                        ((float[])value)[0], ((float[])value)[1]));
+            } else if (value instanceof int[]) {
+                props.add(PropertyValuesHolder.ofInt(key,
+                        ((int[])value)[0], ((int[])value)[1]));
+            } else if (value instanceof Number) {
+                float floatValue = ((Number)value).floatValue();
+                props.add(PropertyValuesHolder.ofFloat(key, floatValue));
+            } else {
+                throw new IllegalArgumentException(
+                        "Bad argument for key \"" + key + "\" with value " + value.getClass());
+            }
+        }
+
+        // Re-use existing tween, if present
+        Tweener tween = sTweens.get(object);
+        ObjectAnimator anim = null;
+        if (tween == null) {
+            anim = ObjectAnimator.ofPropertyValuesHolder(object,
+                    props.toArray(new PropertyValuesHolder[props.size()]));
+            tween = new Tweener(anim);
+            sTweens.put(object, tween);
+            if (DEBUG) Log.v(TAG, "Added new Tweener " + tween);
+        } else {
+            anim = sTweens.get(object).animator;
+            replace(props, object); // Cancel all animators for given object
+        }
+
+        if (interpolator != null) {
+            anim.setInterpolator(interpolator);
+        }
+
+        // Update animation with properties discovered in loop above
+        anim.setStartDelay(delay);
+        anim.setDuration(duration);
+        if (updateListener != null) {
+            anim.removeAllUpdateListeners(); // There should be only one
+            anim.addUpdateListener(updateListener);
+        }
+        if (listener != null) {
+            anim.removeAllListeners(); // There should be only one.
+            anim.addListener(listener);
+        }
+        anim.addListener(mCleanupListener);
+
+        return tween;
+    }
+
+    Tweener from(Object object, long duration, Object... vars) {
+        // TODO:  for v of vars
+        //            toVars[v] = object[v]
+        //            object[v] = vars[v]
+        return Tweener.to(object, duration, vars);
+    }
+
+    // Listener to watch for completed animations and remove them.
+    private static AnimatorListener mCleanupListener = new AnimatorListenerAdapter() {
+
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            remove(animation);
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animation) {
+            remove(animation);
+        }
+    };
+
+    public static void reset() {
+        if (DEBUG) {
+            Log.v(TAG, "Reset()");
+            if (sTweens.size() > 0) {
+                Log.v(TAG, "Cleaning up " + sTweens.size() + " animations");
+            }
+        }
+        sTweens.clear();
+    }
+
+    private static void replace(ArrayList<PropertyValuesHolder> props, Object... args) {
+        for (final Object killobject : args) {
+            Tweener tween = sTweens.get(killobject);
+            if (tween != null) {
+                tween.animator.cancel();
+                if (props != null) {
+                    tween.animator.setValues(
+                            props.toArray(new PropertyValuesHolder[props.size()]));
+                } else {
+                    sTweens.remove(tween);
+                }
+            }
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incalluibind/ObjectFactory.java b/InCallUI/src/com/android/incalluibind/ObjectFactory.java
new file mode 100644
index 0000000..7e9423a
--- /dev/null
+++ b/InCallUI/src/com/android/incalluibind/ObjectFactory.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incalluibind;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.incallui.CallCardPresenter.EmergencyCallListener;
+import com.android.incallui.ContactUtils;
+import com.android.incallui.DistanceHelper;
+import com.android.incallui.service.PhoneNumberService;
+
+public class ObjectFactory {
+
+    public static PhoneNumberService newPhoneNumberService(Context context) {
+        // no phone number service.
+        return null;
+    }
+
+    public static EmergencyCallListener newEmergencyCallListener() {
+        return null;
+    }
+
+    /** @return An {@link Intent} to be broadcast when the InCallUI is visible. */
+    public static Intent getUiReadyBroadcastIntent(Context context) {
+        return null;
+    }
+
+    /**
+     * @return An {@link Intent} to be broadcast when the call state button in the InCallUI is
+     * touched while in a call.
+     */
+    public static Intent getCallStateButtonBroadcastIntent(Context context) {
+        return null;
+    }
+
+    public static DistanceHelper newDistanceHelper(Context context,
+            DistanceHelper.Listener listener) {
+        return null;
+    }
+
+    public static ContactUtils getContactUtilsInstance(Context context) {
+        return null;
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java b/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java
new file mode 100644
index 0000000..79545ce
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class CallCardPresenterTest extends AndroidTestCase {
+
+    private static final String NAME_PRIMARY = "Full Name";
+    private static final String NAME_ALTERNATIVE = "Name, Full";
+    private static final String LOCATION = "US";
+    private static final String NUMBER = "8006459001";
+
+    @Mock private ContactsPreferences mContactsPreferences;
+    private ContactCacheEntry mUnlockedContactInfo;
+    private ContactCacheEntry mLockedContactInfo;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+
+        Mockito.when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        // Unlocked all contact info is available
+        mUnlockedContactInfo = new ContactCacheEntry();
+        mUnlockedContactInfo.namePrimary = NAME_PRIMARY;
+        mUnlockedContactInfo.nameAlternative = NAME_ALTERNATIVE;
+        mUnlockedContactInfo.location = LOCATION;
+        mUnlockedContactInfo.number = NUMBER;
+
+        // Locked only number and location are available
+        mLockedContactInfo = new ContactCacheEntry();
+        mLockedContactInfo .location = LOCATION;
+        mLockedContactInfo .number = NUMBER;
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        ContactsPreferencesFactory.setTestInstance(null);
+    }
+
+    public void testGetNameForCall_Unlocked() {
+        ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(NAME_PRIMARY, presenter.getNameForCall(mUnlockedContactInfo));
+    }
+
+    public void testGetNameForCall_Locked() {
+        ContactsPreferencesFactory.setTestInstance(null);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(NUMBER, presenter.getNameForCall(mLockedContactInfo));
+    }
+
+    public void testGetNameForCall_EmptyPreferredName() {
+        ContactCacheEntry contactInfo = new ContactCacheEntry();
+        contactInfo.number = NUMBER;
+
+        ContactsPreferencesFactory.setTestInstance(null);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(NUMBER, presenter.getNameForCall(contactInfo));
+    }
+
+    public void testGetNumberForCall_Unlocked() {
+        ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(NUMBER, presenter.getNumberForCall(mUnlockedContactInfo));
+    }
+
+    public void testGetNumberForCall_Locked() {
+        ContactsPreferencesFactory.setTestInstance(null);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(LOCATION, presenter.getNumberForCall(mLockedContactInfo));
+    }
+
+    public void testGetNumberForCall_EmptyPreferredName() {
+        ContactCacheEntry contactInfo = new ContactCacheEntry();
+        contactInfo.location = LOCATION;
+
+        ContactsPreferencesFactory.setTestInstance(null);
+        CallCardPresenter presenter = new CallCardPresenter();
+        presenter.init(getContext(), null);
+
+        assertEquals(LOCATION, presenter.getNumberForCall(contactInfo));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/CallTest.java b/InCallUI/tests/src/com/android/incallui/CallTest.java
new file mode 100644
index 0000000..118ec38
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/CallTest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.Connection;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+// @formatter:off
+/**
+ * Run test with
+ * adb shell am instrument -e class com.android.incallui.CallTest -w com.google.android.dialer.tests/android.test.InstrumentationTestRunner
+ */
+// @formatter:on
+
+@SmallTest
+public class CallTest extends AndroidTestCase {
+
+    private TestCall mCall;
+
+    private final static String CHILD_NUMBER = "123";
+    private final static ArrayList<String> LAST_FORWARDED_NUMBER_LIST =
+            new ArrayList(Arrays.asList("456", "789"));
+    private final static String LAST_FORWARDED_NUMBER = "789";
+    private final static String CALL_SUBJECT = "foo";
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+
+        mCall = new TestCall();
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public void testUpdateFromCallExtras() {
+        mCall.updateFromCallExtras(getTestBundle());
+        verifyTestBundleResult();
+    }
+
+    public void testUpdateFromCallExtras_corruptedBundle() {
+        mCall.setBundleCorrupted(true);
+        mCall.updateFromCallExtras(getTestBundle());
+
+        assertEquals(mCall.getChildNumber(), null);
+        assertEquals(mCall.getLastForwardedNumber(), null);
+        assertEquals(mCall.getCallSubject(), null);
+    }
+
+    public void testUpdateFromCallExtras_corruptedBundleOverwrite() {
+
+        mCall.updateFromCallExtras(getTestBundle());
+        mCall.setBundleCorrupted(true);
+        Bundle bundle = new Bundle();
+        bundle.putString(Connection.EXTRA_CHILD_ADDRESS, "321");
+        bundle.putStringArrayList(Connection.EXTRA_LAST_FORWARDED_NUMBER,
+                new ArrayList(Arrays.asList("654", "987")));
+        bundle.putString(Connection.EXTRA_CALL_SUBJECT, "bar");
+        mCall.updateFromCallExtras(bundle);
+        //corrupted bundle should not overwrite existing values.
+        verifyTestBundleResult();
+    }
+
+    private Bundle getTestBundle() {
+        Bundle bundle = new Bundle();
+        bundle.putString(Connection.EXTRA_CHILD_ADDRESS, CHILD_NUMBER);
+        bundle.putStringArrayList(Connection.EXTRA_LAST_FORWARDED_NUMBER,
+                LAST_FORWARDED_NUMBER_LIST);
+        bundle.putString(Connection.EXTRA_CALL_SUBJECT, CALL_SUBJECT);
+        return bundle;
+    }
+
+    private void verifyTestBundleResult() {
+        assertEquals(CHILD_NUMBER, mCall.getChildNumber());
+        assertEquals(LAST_FORWARDED_NUMBER, mCall.getLastForwardedNumber());
+        assertEquals(CALL_SUBJECT, mCall.getCallSubject());
+    }
+
+    private class TestCall extends Call {
+
+        private boolean mBundleCorrupted = false;
+
+        public TestCall() {
+            super(Call.State.NEW);
+        }
+
+        @Override
+        public void updateFromCallExtras(Bundle bundle) {
+            super.updateFromCallExtras(bundle);
+        }
+
+        public void setBundleCorrupted(boolean value) {
+            this.mBundleCorrupted = value;
+        }
+
+        @Override
+        protected boolean areCallExtrasCorrupted(Bundle callExtras) {
+            if (mBundleCorrupted) {
+                return true;
+            }
+            return super.areCallExtrasCorrupted(callExtras);
+        }
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java b/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java
new file mode 100644
index 0000000..de5a023
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class CallerInfoUtilsTest extends AndroidTestCase {
+    public void testToLogSafeNumber_email() {
+        assertEquals("xxx@xxx.xxx", CallerInfoUtils.toLogSafePhoneNumber("foo@foo.com"));
+    }
+
+    public void testToLogSafeNumber_phoneNumber() {
+        assertEquals("xxx-xxx-xxxx", CallerInfoUtils.toLogSafePhoneNumber("123-456-6789"));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java b/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java
new file mode 100644
index 0000000..bf91555
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.android.dialer.compat.UserManagerCompat;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+
+import org.mockito.Mockito;
+
+@SmallTest
+public class ContactsPreferencesFactoryTest extends AndroidTestCase {
+
+    public void testNewContactsPreferences_Unlocked() {
+        if (!UserManagerCompat.isUserUnlocked(getContext())) {
+            return;
+        }
+        assertNotNull(ContactsPreferencesFactory.newContactsPreferences(getContext()));
+    }
+
+    public void testNewContactsPreferences_Locked() {
+        if (UserManagerCompat.isUserUnlocked(getContext())) {
+            return;
+        }
+        assertNull(ContactsPreferencesFactory.newContactsPreferences(getContext()));
+    }
+
+    public void testNewContactsPreferences_TestInstance() {
+        ContactsPreferences testInstance = Mockito.mock(ContactsPreferences.class);
+        ContactsPreferencesFactory.setTestInstance(testInstance);
+        // Assert that it returns the same object always
+        assertSame(testInstance, ContactsPreferencesFactory.newContactsPreferences(getContext()));
+        assertSame(testInstance, ContactsPreferencesFactory.newContactsPreferences(getContext()));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java b/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java
new file mode 100644
index 0000000..625cda4
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java
@@ -0,0 +1,325 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.location.Address;
+import android.test.AndroidTestCase;
+import android.util.Pair;
+
+import com.android.incallui.InCallContactInteractions.BusinessContextInfo;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Tests for InCallContactInteractions class methods for formatting info for display.
+ *
+ * NOTE: tests assume system settings are set to 12hr time format and US locale. This means that
+ * the output of InCallContactInteractions methods are compared against strings in 12hr time format
+ * and US locale address formatting unless otherwise specified.
+ */
+public class InCallContactInteractionsTest extends AndroidTestCase {
+    private InCallContactInteractions mInCallContactInteractions;
+    private static final float TEST_DISTANCE = (float) 1234.56;
+
+    @Override
+    protected void setUp() {
+        mInCallContactInteractions = new InCallContactInteractions(mContext, true /* isBusiness */);
+    }
+
+    public void testIsOpenNow_NowMatchesOpenTime() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(8),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsOpenNow_ClosingAfterMidnight() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(10),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHourAndDaysFromToday(1, 1))))
+                .heading);
+    }
+
+    public void testIsOpenNow_Open24Hours() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(10),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHourAndDaysFromToday(8, 1))))
+                .heading);
+    }
+
+    public void testIsOpenNow_AfterMiddayBreak() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(13),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .heading);
+    }
+
+    public void testIsClosedNow_DuringMiddayBreak() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(11),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .heading);
+    }
+
+    public void testIsClosedNow_BeforeOpen() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(6),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsClosedNow_NowMatchesClosedTime() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(20),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsClosedNow_AfterClosed() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testOpeningHours_SingleOpenRangeWhileOpen() {
+        assertEquals("8:00 AM - 8:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(12),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .detail);
+    }
+
+    public void testOpeningHours_TwoOpenRangesWhileOpen() {
+        assertEquals("8:00 AM - 10:00 AM, 12:00 PM - 3:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(12),
+                        Arrays.asList(
+                                Pair.create(
+                                    getTestCalendarWithHour(8),
+                                    getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .detail);
+    }
+
+    public void testOpeningHours_AfterClosedNoTomorrow() {
+        assertEquals("Closed today at 8:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .detail);
+    }
+
+    public void testOpeningHours_NotOpenTodayOpenTomorrow() {
+        assertEquals("Opens tomorrow at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHourAndDaysFromToday(8, 1),
+                                        getTestCalendarWithHourAndDaysFromToday(10, 1))))
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_BeforeOpen() {
+        assertEquals("Opens today at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(7),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_DuringFirstRange() {
+        assertEquals("Closes at 10:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(9),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_BeforeMiddleRange() {
+        assertEquals("Opens today at 12:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(11),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpeningHours_DuringLastRange() {
+        assertEquals("Closes at 9:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(19),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpeningHours_AfterClose() {
+        assertEquals("Opens tomorrow at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(22),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testNotOpenTodayOrTomorrow() {
+        assertEquals(null,
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        new ArrayList<Pair<Calendar, Calendar>>()));
+    }
+
+    public void testLocationInfo_ForUS() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.US,
+                        getAddressForTest(),
+                        TEST_DISTANCE);
+        assertEquals("0.8 mi away", info.heading);
+        assertEquals("Test address, Test locality", info.detail);
+    }
+
+    public void testLocationInfo_ForNotUS() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        getAddressForTest(),
+                        TEST_DISTANCE);
+        assertEquals("1.2 km away", info.heading);
+        assertEquals("Test address, Test locality", info.detail);
+    }
+
+    public void testLocationInfo_NoLocality() {
+        Address address = getAddressForTest();
+        address.setLocality(null);
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        address,
+                        TEST_DISTANCE);
+        assertEquals("1.2 km away", info.heading);
+        assertEquals("Test address", info.detail);
+    }
+
+    public void testLocationInfo_NoAddress() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        null,
+                        TEST_DISTANCE);
+        assertEquals(null, info);
+    }
+
+    public void testLocationInfo_NoDistance() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.US,
+                        getAddressForTest(),
+                        DistanceHelper.DISTANCE_NOT_FOUND);
+        assertEquals(null, info.heading);
+    }
+
+    private Address getAddressForTest() {
+        Address address = new Address(Locale.US);
+        address.setAddressLine(0, "Test address");
+        address.setLocality("Test locality");
+        return address;
+    }
+
+    private Calendar getTestCalendarWithHour(int hour) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, hour);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar;
+    }
+
+    private Calendar getTestCalendarWithHourAndDaysFromToday(int hour, int daysFromToday) {
+        Calendar calendar = getTestCalendarWithHour(hour);
+        calendar.add(Calendar.DATE, daysFromToday);
+        return calendar;
+    }
+
+    private List<Pair<Calendar, Calendar>> getMultipleOpeningHours() {
+        return Arrays.asList(
+                Pair.create(
+                    getTestCalendarWithHour(8),
+                    getTestCalendarWithHour(10)),
+                Pair.create(
+                        getTestCalendarWithHour(12),
+                        getTestCalendarWithHour(15)),
+                Pair.create(
+                        getTestCalendarWithHour(17),
+                        getTestCalendarWithHour(21)),
+                Pair.create(
+                        getTestCalendarWithHourAndDaysFromToday(8, 1),
+                        getTestCalendarWithHourAndDaysFromToday(10, 1)),
+                Pair.create(
+                        getTestCalendarWithHourAndDaysFromToday(12, 1),
+                        getTestCalendarWithHourAndDaysFromToday(8, 1)));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
new file mode 100644
index 0000000..ed8d622
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.incallui.InCallPresenter.InCallState;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class InCallPresenterTest extends InstrumentationTestCase {
+    private MockCallListWrapper mCallList;
+    @Mock private InCallActivity mInCallActivity;
+    @Mock private AudioModeProvider mAudioModeProvider;
+    @Mock private StatusBarNotifier mStatusBarNotifier;
+    @Mock private ContactInfoCache mContactInfoCache;
+    @Mock private ProximitySensor mProximitySensor;
+
+    InCallPresenter mInCallPresenter;
+    @Mock private Context mContext;
+    @Mock private TelephonyManager mTelephonyManager;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        System.setProperty("dexmaker.dexcache",
+                getInstrumentation().getTargetContext().getCacheDir().getPath());
+        MockitoAnnotations.initMocks(this);
+        mCallList = new MockCallListWrapper();
+
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+
+        mInCallPresenter = InCallPresenter.getInstance();
+        mInCallPresenter.setUp(mContext, mCallList.getCallList(), mAudioModeProvider,
+                mStatusBarNotifier, mContactInfoCache, mProximitySensor);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // The tear down method needs to run in the main thread since there is an explicit check
+        // inside TelecomAdapter.getInstance().
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mInCallPresenter.unsetActivity(mInCallActivity);
+                mInCallPresenter.tearDown();
+                InCallPresenter.setInstance(null);
+            }
+        });
+    }
+
+    public void testOnActivitySet_finishesActivityWhenNoCalls() {
+        mInCallPresenter.setActivity(mInCallActivity);
+
+        verify(mInCallActivity).finish();
+    }
+
+    public void testOnCallListChange_sendsNotificationWhenInCall() {
+        mCallList.setHasCall(Call.State.INCOMING, true);
+
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        verify(mStatusBarNotifier).updateNotification(InCallState.INCOMING,
+                mCallList.getCallList());
+        verifyInCallActivityNotStarted();
+    }
+
+    /**
+     * This behavior is required to ensure that the screen is turned on again by the restarting
+     * activity.
+     */
+    public void testOnCallListChange_handlesCallWaitingWhenScreenOffShouldRestartActivity() {
+        mCallList.setHasCall(Call.State.ACTIVE, true);
+
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+        mInCallPresenter.setActivity(mInCallActivity);
+
+        // Pretend that there is a call waiting and the screen is off
+        when(mInCallActivity.isDestroyed()).thenReturn(false);
+        when(mInCallActivity.isFinishing()).thenReturn(false);
+        when(mProximitySensor.isScreenReallyOff()).thenReturn(true);
+        mCallList.setHasCall(Call.State.INCOMING, true);
+
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+        verify(mInCallActivity).finish();
+    }
+
+    /**
+     * Verifies that the PENDING_OUTGOING -> IN_CALL transition brings up InCallActivity so
+     * that it can display an error dialog.
+     */
+    public void testOnCallListChange_pendingOutgoingToInCallTransitionShowsUiForErrorDialog() {
+        mCallList.setHasCall(Call.State.CONNECTING, true);
+
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        mCallList.setHasCall(Call.State.CONNECTING, false);
+        mCallList.setHasCall(Call.State.ACTIVE, true);
+
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        verify(mContext).startActivity(InCallPresenter.getInstance().getInCallIntent(false, false));
+        verifyIncomingCallNotificationNotSent();
+    }
+
+    /**
+     * Verifies that if there is a call in the SELECT_PHONE_ACCOUNT state, InCallActivity is displayed
+     * to display the account picker.
+     */
+    public void testOnCallListChange_noAccountProvidedForCallShowsUiForAccountPicker() {
+        mCallList.setHasCall(Call.State.SELECT_PHONE_ACCOUNT, true);
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        verify(mContext).startActivity(InCallPresenter.getInstance().getInCallIntent(false, false));
+        verifyIncomingCallNotificationNotSent();
+    }
+
+    /**
+     * Verifies that for an expected call state change (e.g. NO_CALLS -> PENDING_OUTGOING),
+     * InCallActivity is not displayed.
+     */
+    public void testOnCallListChange_noCallsToPendingOutgoingDoesNotShowUi() {
+        mCallList.setHasCall(Call.State.CONNECTING, true);
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        verifyInCallActivityNotStarted();
+        verifyIncomingCallNotificationNotSent();
+    }
+
+    public void testOnCallListChange_LastCallDisconnectedNoCallsLeftFinishesUi() {
+        mCallList.setHasCall(Call.State.DISCONNECTED, true);
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+
+        mInCallPresenter.setActivity(mInCallActivity);
+
+        verify(mInCallActivity, never()).finish();
+
+        // Last remaining disconnected call is removed from CallList, activity should shut down.
+        mCallList.setHasCall(Call.State.DISCONNECTED, false);
+        mInCallPresenter.onCallListChange(mCallList.getCallList());
+        verify(mInCallActivity).finish();
+    }
+
+
+    //TODO
+    public void testCircularReveal_startsCircularRevealForOutgoingCalls() {
+
+    }
+
+    public void testCircularReveal_waitTillCircularRevealSentBeforeShowingCallCard() {
+    }
+
+    public void testHangupOngoingCall_disconnectsCallCorrectly() {
+    }
+
+    public void testAnswerIncomingCall() {
+    }
+
+    public void testDeclineIncomingCall() {
+    }
+
+    private void verifyInCallActivityNotStarted() {
+        verify(mContext, never()).startActivity(Mockito.any(Intent.class));
+    }
+
+    private void verifyIncomingCallNotificationNotSent() {
+        verify(mStatusBarNotifier, never()).updateNotification(Mockito.any(InCallState.class),
+                Mockito.any(CallList.class));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/MockCallListWrapper.java b/InCallUI/tests/src/com/android/incallui/MockCallListWrapper.java
new file mode 100644
index 0000000..369c430
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/MockCallListWrapper.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.telecom.PhoneAccountHandle;
+
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.util.HashSet;
+
+/**
+ * Provides an instance of a mock CallList, and provides utility methods to put the CallList into
+ * various states (e.g. incoming call, active call, call waiting).
+ */
+public class MockCallListWrapper {
+    private CallList mCallList;
+    private HashSet<Integer> mCallSet = new HashSet<>();
+
+    public MockCallListWrapper() {
+        mCallList = Mockito.mock(CallList.class);
+        mCallList = spy(new CallList());
+        when(mCallList.getFirstCallWithState(anyInt())).thenAnswer(new Answer<Call>() {
+            @Override
+            public Call answer(InvocationOnMock i) throws Throwable {
+                Object[] args = i.getArguments();
+                final int state = (int) args[0];
+                if (mCallSet.contains(state)) {
+                    return getMockCall(state);
+                } else {
+                    return null;
+                }
+            }
+        });
+    }
+
+    public CallList getCallList() {
+        return mCallList;
+    }
+
+    public void setHasCall(int state, boolean hasCall) {
+        if (hasCall) {
+            mCallSet.add(state);
+        } else {
+            mCallSet.remove(state);
+        }
+    }
+
+    private static Call getMockCall(int state) {
+        return getMockCall(state, state != Call.State.SELECT_PHONE_ACCOUNT);
+    }
+
+    private static Call getMockCall(int state, boolean hasAccountHandle) {
+        final Call call = Mockito.mock(Call.class);
+        when(call.getState()).thenReturn(Integer.valueOf(state));
+        if (hasAccountHandle) {
+            when(call.getAccountHandle()).thenReturn(new PhoneAccountHandle(null, null));
+        }
+        return call;
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java b/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java
new file mode 100644
index 0000000..1c8f347
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.incallui.InCallPresenter.InCallState;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class ProximitySensorTest extends InstrumentationTestCase {
+    @Mock private AccelerometerListener mAccelerometerListener;
+    private MockCallListWrapper mCallList;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        System.setProperty("dexmaker.dexcache",
+                getInstrumentation().getTargetContext().getCacheDir().getPath());
+        MockitoAnnotations.initMocks(this);
+        mCallList = new MockCallListWrapper();
+    }
+
+    public void testAccelerometerBehaviorOnDisplayChange() {
+        final ProximitySensor proximitySensor =
+                new ProximitySensor(
+                        getInstrumentation().getContext(),
+                        new AudioModeProvider(),
+                        mAccelerometerListener);
+        verify(mAccelerometerListener, never()).enable(anyBoolean());
+        proximitySensor.onStateChange(null, InCallState.OUTGOING, mCallList.getCallList());
+        verify(mAccelerometerListener).enable(true);
+        verify(mAccelerometerListener, never()).enable(false);
+
+        proximitySensor.onDisplayStateChanged(false);
+        verify(mAccelerometerListener).enable(true);
+        verify(mAccelerometerListener).enable(false);
+
+        proximitySensor.onDisplayStateChanged(true);
+        verify(mAccelerometerListener, times(2)).enable(true);
+        verify(mAccelerometerListener).enable(false);
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java b/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java
new file mode 100644
index 0000000..4c55ddc
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class StatusBarNotifierTest extends AndroidTestCase {
+
+    private static final String NAME_PRIMARY = "Full Name";
+    private static final String NAME_ALTERNATIVE = "Name, Full";
+    private static final String LOCATION = "US";
+    private static final String NUMBER = "8006459001";
+
+    @Mock private Call mCall;
+    @Mock private ContactsPreferences mContactsPreferences;
+    private ContactCacheEntry mUnlockedContactInfo;
+    private ContactCacheEntry mLockedContactInfo;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+
+        Mockito.when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        // Unlocked all contact info is available
+        mUnlockedContactInfo = new ContactCacheEntry();
+        mUnlockedContactInfo.namePrimary = NAME_PRIMARY;
+        mUnlockedContactInfo.nameAlternative = NAME_ALTERNATIVE;
+        mUnlockedContactInfo.location = LOCATION;
+        mUnlockedContactInfo.number = NUMBER;
+
+        // Locked only number and location are available
+        mLockedContactInfo = new ContactCacheEntry();
+        mLockedContactInfo .location = LOCATION;
+        mLockedContactInfo .number = NUMBER;
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        ContactsPreferencesFactory.setTestInstance(null);
+    }
+
+    public void testGetContentTitle_ConferenceCall() {
+        ContactsPreferencesFactory.setTestInstance(null);
+        StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+
+        Mockito.when(mCall.isConferenceCall()).thenReturn(true);
+        Mockito.when(mCall.hasProperty(Mockito.anyInt())).thenReturn(false);
+
+        assertEquals(mContext.getResources().getString(R.string.card_title_conf_call),
+                statusBarNotifier.getContentTitle(null, mCall));
+    }
+
+    public void testGetContentTitle_Unlocked() {
+        ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+        StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+        assertEquals(NAME_PRIMARY, statusBarNotifier.getContentTitle(mUnlockedContactInfo, mCall));
+    }
+
+    public void testGetContentTitle_Locked() {
+        ContactsPreferencesFactory.setTestInstance(null);
+        StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+        assertEquals(NUMBER, statusBarNotifier.getContentTitle(mLockedContactInfo, mCall));
+    }
+
+    public void testGetContentTitle_EmptyPreferredName() {
+        ContactCacheEntry contactCacheEntry = new ContactCacheEntry();
+        contactCacheEntry.number = NUMBER;
+        StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+        assertEquals(NUMBER, statusBarNotifier.getContentTitle(contactCacheEntry, mCall));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/async/SingleProdThreadExecutor.java b/InCallUI/tests/src/com/android/incallui/async/SingleProdThreadExecutor.java
new file mode 100644
index 0000000..5717c94
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/async/SingleProdThreadExecutor.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.async;
+
+import java.util.concurrent.Executors;
+
+import javax.annotation.concurrent.ThreadSafe;
+
+/**
+ * {@link PausableExecutor} for use in tests. It is intended to be used between one test thread
+ * and one prod thread. See {@link com.android.incallui.ringtone.InCallTonePlayerTest} for example
+ * usage.
+ */
+@ThreadSafe
+public final class SingleProdThreadExecutor implements PausableExecutor {
+
+    private int mMilestonesReached;
+    private int mMilestonesAcked;
+    private boolean mHasAckedAllMilestones;
+
+    @Override
+    public synchronized void milestone() {
+        ++mMilestonesReached;
+        notify();
+        while (!mHasAckedAllMilestones && mMilestonesReached > mMilestonesAcked) {
+            try {
+                wait();
+            } catch (InterruptedException e) {}
+        }
+    }
+
+    @Override
+    public synchronized void ackMilestoneForTesting() {
+        ++mMilestonesAcked;
+        notify();
+    }
+
+    @Override
+    public synchronized void ackAllMilestonesForTesting() {
+        mHasAckedAllMilestones = true;
+        notify();
+    }
+
+    @Override
+    public synchronized void awaitMilestoneForTesting() throws InterruptedException {
+        while (!mHasAckedAllMilestones && mMilestonesReached <= mMilestonesAcked) {
+            wait();
+        }
+    }
+
+    @Override
+    public synchronized void execute(Runnable command) {
+        Executors.newSingleThreadExecutor().execute(command);
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ringtone/DialerRingtoneManagerTest.java b/InCallUI/tests/src/com/android/incallui/ringtone/DialerRingtoneManagerTest.java
new file mode 100644
index 0000000..01db202
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ringtone/DialerRingtoneManagerTest.java
@@ -0,0 +1,219 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.ringtone;
+
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.incallui.Call;
+import com.android.incallui.Call.State;
+import com.android.incallui.CallList;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+public class DialerRingtoneManagerTest extends AndroidTestCase {
+
+    private static final Uri RINGTONE_URI = RingtoneManager
+            .getDefaultUri(RingtoneManager.TYPE_RINGTONE);
+
+    @Mock private InCallTonePlayer mInCallTonePlayer;
+    @Mock private CallList mCallList;
+    @Mock private Call mCall;
+    private DialerRingtoneManager mRingtoneManagerEnabled;
+    private DialerRingtoneManager mRingtoneManagerDisabled;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+        mRingtoneManagerEnabled = new DialerRingtoneManager(mInCallTonePlayer, mCallList);
+        mRingtoneManagerEnabled.setDialerRingingEnabledForTesting(true);
+        mRingtoneManagerDisabled = new DialerRingtoneManager(mInCallTonePlayer, mCallList);
+        mRingtoneManagerDisabled.setDialerRingingEnabledForTesting(false);
+    }
+
+    public void testNullInCallTonePlayer() {
+        try {
+            new DialerRingtoneManager(null, mCallList);
+            fail();
+        } catch (NullPointerException e) {}
+    }
+
+    public void testNullCallList() {
+        try {
+            new DialerRingtoneManager(mInCallTonePlayer, null);
+            fail();
+        } catch (NullPointerException e) {}
+    }
+
+    public void testShouldPlayRingtone_M() {
+        if (CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayRingtone(0, RINGTONE_URI));
+    }
+
+    public void testShouldPlayRingtone_N_NullUri() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayRingtone(State.INCOMING, null));
+    }
+
+    public void testShouldPlayRingtone_N_Disabled() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerDisabled.shouldPlayRingtone(State.INCOMING, RINGTONE_URI));
+    }
+
+    public void testShouldPlayRingtone_N_NotIncoming() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayRingtone(State.ACTIVE, RINGTONE_URI));
+    }
+
+    // Specific case for call waiting since that needs its own sound
+    public void testShouldPlayRingtone_N_CallWaitingByState() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayRingtone(State.CALL_WAITING, RINGTONE_URI));
+    }
+
+    public void testShouldPlayRingtone_N_CallWaitingByActiveCall() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        Mockito.when(mCallList.getActiveCall()).thenReturn(mCall);
+        assertFalse(mRingtoneManagerEnabled.shouldPlayRingtone(State.INCOMING, RINGTONE_URI));
+    }
+
+    public void testShouldPlayRingtone_N() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertTrue(mRingtoneManagerEnabled.shouldPlayRingtone(State.INCOMING, RINGTONE_URI));
+    }
+
+    public void testShouldPlayCallWaitingTone_M() {
+        if (CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(0));
+    }
+
+    public void testShouldPlayCallWaitingTone_N_Disabled() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerDisabled.shouldPlayCallWaitingTone(State.CALL_WAITING));
+    }
+
+    public void testShouldPlayCallWaitingTone_N_NotCallWaiting() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(State.ACTIVE));
+    }
+
+    // Specific case for incoming since it plays its own sound
+    public void testShouldPlayCallWaitingTone_N_Incoming() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertFalse(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(State.INCOMING));
+    }
+
+    public void testShouldPlayCallWaitingTone_N_AlreadyPlaying() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        Mockito.when(mInCallTonePlayer.isPlayingTone()).thenReturn(true);
+        assertFalse(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(State.CALL_WAITING));
+    }
+
+    public void testShouldPlayCallWaitingTone_N_ByState() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        assertTrue(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(State.CALL_WAITING));
+    }
+
+    public void testShouldPlayCallWaitingTone_N_ByActiveCall() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        Mockito.when(mCallList.getActiveCall()).thenReturn(mCall);
+        assertTrue(mRingtoneManagerEnabled.shouldPlayCallWaitingTone(State.INCOMING));
+    }
+
+    public void testPlayCallWaitingTone_M() {
+        if (CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerEnabled.playCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer, Mockito.never()).play(Mockito.anyInt());
+    }
+
+    public void testPlayCallWaitingTone_N_NotEnabled() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerDisabled.playCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer, Mockito.never()).play(Mockito.anyInt());
+    }
+
+    public void testPlayCallWaitingTone_N() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerEnabled.playCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer).play(Mockito.anyInt());
+    }
+
+    public void testStopCallWaitingTone_M() {
+        if (CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerEnabled.stopCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer, Mockito.never()).stop();
+    }
+
+    public void testStopCallWaitingTone_N_NotEnabled() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerDisabled.stopCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer, Mockito.never()).stop();
+    }
+
+    public void testStopCallWaitingTone_N() {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        mRingtoneManagerEnabled.stopCallWaitingTone();
+        Mockito.verify(mInCallTonePlayer).stop();
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ringtone/InCallTonePlayerTest.java b/InCallUI/tests/src/com/android/incallui/ringtone/InCallTonePlayerTest.java
new file mode 100644
index 0000000..59611f7
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ringtone/InCallTonePlayerTest.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.ringtone;
+
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.incallui.AudioModeProvider;
+import com.android.incallui.async.PausableExecutor;
+import com.android.incallui.async.SingleProdThreadExecutor;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+public class InCallTonePlayerTest extends AndroidTestCase {
+
+    @Mock private AudioModeProvider mAudioModeProvider;
+    @Mock private ToneGeneratorFactory mToneGeneratorFactory;
+    @Mock private ToneGenerator mToneGenerator;
+    private InCallTonePlayer mInCallTonePlayer;
+
+    /*
+     * InCallTonePlayer milestones:
+     * 1) After tone starts playing
+     * 2) After tone finishes waiting (could have timed out)
+     * 3) After cleaning up state to allow new tone to play
+     */
+    private PausableExecutor mExecutor;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+        Mockito.when(mToneGeneratorFactory.newInCallToneGenerator(Mockito.anyInt(),
+                Mockito.anyInt())).thenReturn(mToneGenerator);
+        mExecutor = new SingleProdThreadExecutor();
+        mInCallTonePlayer = new InCallTonePlayer(mAudioModeProvider, mToneGeneratorFactory,
+                mExecutor);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        // Stop any playing so the InCallTonePlayer isn't stuck waiting for the tone to complete
+        mInCallTonePlayer.stop();
+        // Ack all milestones to ensure that the prod thread doesn't block forever
+        mExecutor.ackAllMilestonesForTesting();
+    }
+
+    public void testIsPlayingTone_False() {
+        assertFalse(mInCallTonePlayer.isPlayingTone());
+    }
+
+    public void testIsPlayingTone_True() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+
+        assertTrue(mInCallTonePlayer.isPlayingTone());
+    }
+
+    public void testPlay_InvalidTone() {
+        try {
+            mInCallTonePlayer.play(Integer.MIN_VALUE);
+            fail();
+        } catch (IllegalArgumentException e) {}
+    }
+
+    public void testPlay_CurrentlyPlaying() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+        try {
+            mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+            fail();
+        } catch (IllegalStateException e) {}
+    }
+
+    public void testPlay_BlueToothStream() {
+        // TODO (maxwelb): b/26932998 play through bluetooth
+    }
+
+    public void testPlay_VoiceCallStream() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+        Mockito.verify(mToneGeneratorFactory).newInCallToneGenerator(AudioManager.STREAM_VOICE_CALL,
+                InCallTonePlayer.VOLUME_RELATIVE_HIGH_PRIORITY);
+    }
+
+    public void testPlay_Single() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+        mInCallTonePlayer.stop();
+        mExecutor.ackMilestoneForTesting();
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+
+        Mockito.verify(mToneGenerator).startTone(ToneGenerator.TONE_SUP_CALL_WAITING);
+    }
+
+    public void testPlay_Consecutive() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+        // Prevent waiting forever
+        mInCallTonePlayer.stop();
+        mExecutor.ackMilestoneForTesting();
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+        mInCallTonePlayer.stop();
+        mExecutor.ackMilestoneForTesting();
+        mExecutor.awaitMilestoneForTesting();
+        mExecutor.ackMilestoneForTesting();
+
+        Mockito.verify(mToneGenerator, Mockito.times(2))
+                .startTone(ToneGenerator.TONE_SUP_CALL_WAITING);
+    }
+
+    public void testStop_NotPlaying() {
+        // No crash
+        mInCallTonePlayer.stop();
+    }
+
+    public void testStop() throws InterruptedException {
+        mInCallTonePlayer.play(InCallTonePlayer.TONE_CALL_WAITING);
+        mExecutor.awaitMilestoneForTesting();
+
+        mInCallTonePlayer.stop();
+        mExecutor.ackMilestoneForTesting();
+        mExecutor.awaitMilestoneForTesting();
+
+        assertFalse(mInCallTonePlayer.isPlayingTone());
+    }
+}
diff --git a/build-app.gradle b/build-app.gradle
new file mode 100644
index 0000000..9e24136
--- /dev/null
+++ b/build-app.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'com.android.application'
+
+android {
+    defaultConfig {
+        minSdkVersion 23
+        targetSdkVersion 23
+        multiDexEnabled true
+    }
+
+    sourceSets.main {
+        java.srcDirs = ['src', 'src-pre-N', 'InCallUI/src']
+        manifest.srcFile 'AndroidManifest.xml'
+        res.srcDirs = ['res']
+    }
+}
+
+dependencies {
+    compile 'com.android.support:support-v4:23.1.+'
+    compile 'com.android.support:support-v13:23.1.+'
+    compile 'com.android.support:appcompat-v7:23.1.+'
+    compile 'com.android.support:cardview-v7:23.1.+'
+    compile 'com.android.support:design:23.1.+'
+    compile 'com.android.support:recyclerview-v7:23.1.+'
+
+    compile project(':android-common')
+    compile project(':guava')
+    compile project(':libphonenumber')
+    compile project(':jsr305')
+    compile project(':vcard')
+
+    compile project(':contactscommon')
+    compile project(':incallui')
+    compile project(':phonecommon')
+}
diff --git a/build-library.gradle b/build-library.gradle
new file mode 100644
index 0000000..d353016
--- /dev/null
+++ b/build-library.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'com.android.library'
+
+android {
+    defaultConfig {
+        minSdkVersion 23
+        targetSdkVersion 23
+        multiDexEnabled true
+    }
+
+    sourceSets.main {
+        java.srcDirs = ['src', 'src-pre-N', 'InCallUI/src']
+        manifest.srcFile 'AndroidManifest.xml'
+        res.srcDirs = ['res']
+    }
+}
+
+dependencies {
+    compile 'com.android.support:support-v4:23.1.+'
+    compile 'com.android.support:support-v13:23.1.+'
+    compile 'com.android.support:appcompat-v7:23.1.+'
+    compile 'com.android.support:cardview-v7:23.1.+'
+    compile 'com.android.support:design:23.1.+'
+    compile 'com.android.support:recyclerview-v7:23.1.+'
+
+    compile project(':android-common')
+    compile project(':guava')
+    compile project(':libphonenumber')
+    compile project(':jsr305')
+    compile project(':vcard')
+
+    compile project(':contactscommon')
+    compile project(':incallui')
+    compile project(':phonecommon')
+}
diff --git a/res/drawable-hdpi/ic_archive_white_24dp.png b/res/drawable-hdpi/ic_archive_white_24dp.png
new file mode 100644
index 0000000..bb72e89
--- /dev/null
+++ b/res/drawable-hdpi/ic_archive_white_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_archive_white_24dp.png b/res/drawable-mdpi/ic_archive_white_24dp.png
new file mode 100644
index 0000000..f6aa3f9
--- /dev/null
+++ b/res/drawable-mdpi/ic_archive_white_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_archive_white_24dp.png b/res/drawable-xhdpi/ic_archive_white_24dp.png
new file mode 100644
index 0000000..3513bd9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_archive_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_archive_white_24dp.png b/res/drawable-xxhdpi/ic_archive_white_24dp.png
new file mode 100644
index 0000000..00e04e4
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_archive_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_archive_white_24dp.png b/res/drawable-xxxhdpi/ic_archive_white_24dp.png
new file mode 100644
index 0000000..34cd3fd
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_archive_white_24dp.png
Binary files differ
diff --git a/res/drawable/blocked_contact.xml b/res/drawable/blocked_contact.xml
index 2e73437..0957585 100644
--- a/res/drawable/blocked_contact.xml
+++ b/res/drawable/blocked_contact.xml
@@ -25,7 +25,7 @@
         </shape>
     </item>
 
-    <item android:drawable="@drawable/ic_block_24dp"
+    <item android:drawable="@drawable/ic_report_24dp"
         android:width="18dp"
         android:height="18dp"
         android:gravity="center" />
diff --git a/res/drawable/ic_voicemail_seek_handle.xml b/res/drawable/ic_voicemail_seek_handle.xml
index a6f02be..d3fc95a 100644
--- a/res/drawable/ic_voicemail_seek_handle.xml
+++ b/res/drawable/ic_voicemail_seek_handle.xml
@@ -16,6 +16,5 @@
   -->
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
         android:src="@drawable/ic_handle"
-        android:autoMirrored="true"
         android:tint="@color/actionbar_background_color" >
 </bitmap>
\ No newline at end of file
diff --git a/res/layout-land/dialpad_fragment.xml b/res/layout-land/dialpad_fragment.xml
index 680c2d7..70a38ae 100644
--- a/res/layout-land/dialpad_fragment.xml
+++ b/res/layout-land/dialpad_fragment.xml
@@ -28,7 +28,7 @@
             android:id="@+id/spacer"
             android:layout_width="0dp"
             android:layout_height="match_parent"
-            android:layout_weight="1"
+            android:layout_weight="4"
             android:background="#00000000" />
 
         <!-- Dialpad shadow -->
@@ -40,7 +40,7 @@
         <RelativeLayout
             android:layout_height="match_parent"
             android:layout_width="0dp"
-            android:layout_weight="1">
+            android:layout_weight="6">
 
             <include layout="@layout/dialpad_view"
                  android:layout_height="match_parent"
@@ -60,7 +60,7 @@
             <!-- Margin bottom and alignParentBottom don't work well together, so use a Space instead. -->
             <Space android:id="@+id/dialpad_floating_action_button_margin_bottom"
                 android:layout_width="match_parent"
-                android:layout_height="8dp"
+                android:layout_height="@dimen/floating_action_button_margin_bottom"
                 android:layout_alignParentBottom="true" />
 
             <FrameLayout
diff --git a/res/layout/call_log_list_item_actions.xml b/res/layout/call_log_list_item_actions.xml
index 63385ee..78203b7 100644
--- a/res/layout/call_log_list_item_actions.xml
+++ b/res/layout/call_log_list_item_actions.xml
@@ -130,7 +130,7 @@
     </LinearLayout>
 
     <ViewStub
-        android:id="@+id/spam_actions_container"
+        android:id="@+id/extended_blocking_actions_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
 
diff --git a/res/layout/phone_favorite_tile_view.xml b/res/layout/phone_favorite_tile_view.xml
index 8b00fba..aa82ca0 100644
--- a/res/layout/phone_favorite_tile_view.xml
+++ b/res/layout/phone_favorite_tile_view.xml
@@ -24,7 +24,8 @@
         android:id="@+id/contact_favorite_card"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:focusable="true" >
+        android:focusable="true"
+        android:nextFocusRight="@+id/contact_tile_secondary_button">
 
         <com.android.contacts.common.widget.LayoutSuppressingImageView
             android:id="@+id/contact_tile_image"
@@ -102,8 +103,7 @@
             android:id="@+id/contact_tile_push_state"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:focusable="true"
-            android:nextFocusRight="@+id/contact_tile_secondary_button"
+            android:importantForAccessibility="no"
             android:background="@drawable/item_background_material_dark" />
 
         <ImageButton
diff --git a/res/layout/voicemail_playback_layout.xml b/res/layout/voicemail_playback_layout.xml
index bb7fe34..64a68bd 100644
--- a/res/layout/voicemail_playback_layout.xml
+++ b/res/layout/voicemail_playback_layout.xml
@@ -97,6 +97,17 @@
                     android:tint="@color/voicemail_icon_tint"
                     android:contentDescription="@string/call_log_trash_voicemail" />
 
+                <Space
+                    android:layout_width="0dp"
+                    android:layout_height="0dp"
+                    android:layout_weight="1" />
+
+                <ImageButton android:id="@+id/archive_voicemail"
+                    style="@style/VoicemailPlaybackLayoutButtonStyle"
+                    android:src="@drawable/ic_archive_white_24dp"
+                    android:tint="@color/voicemail_icon_tint"
+                    android:contentDescription="@string/call_log_archive_voicemail" />
+
             </LinearLayout>
 
         </LinearLayout>
diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index 8a9e25f..8e31026 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -20,6 +20,9 @@
         android:icon="@drawable/ic_menu_history_lt"
         android:title="@string/action_menu_call_history_description" />
     <item
+        android:id="@+id/menu_archive"
+        android:title="@string/voicemail_archive_activity_title" />
+    <item
         android:id="@+id/menu_import_export"
         android:title="@string/menu_import_export" />
     <item
diff --git a/res/mipmap-hdpi/ic_launcher_phone.png b/res/mipmap-hdpi/ic_launcher_phone.png
index 5a3dff1..15c4142 100644
--- a/res/mipmap-hdpi/ic_launcher_phone.png
+++ b/res/mipmap-hdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_phone.png b/res/mipmap-mdpi/ic_launcher_phone.png
index 9ea0d8c..3088f75 100644
--- a/res/mipmap-mdpi/ic_launcher_phone.png
+++ b/res/mipmap-mdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_phone.png b/res/mipmap-xhdpi/ic_launcher_phone.png
index e97836c..e87de01 100644
--- a/res/mipmap-xhdpi/ic_launcher_phone.png
+++ b/res/mipmap-xhdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_phone.png b/res/mipmap-xxhdpi/ic_launcher_phone.png
index 1594e4e..b866b79 100644
--- a/res/mipmap-xxhdpi/ic_launcher_phone.png
+++ b/res/mipmap-xxhdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_phone.png b/res/mipmap-xxxhdpi/ic_launcher_phone.png
index 8c92ac1..26f51f1 100644
--- a/res/mipmap-xxxhdpi/ic_launcher_phone.png
+++ b/res/mipmap-xxxhdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 42def84..c2cc6b7 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Wysig nommer voor oproep"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Vee oproepgeskiedenis uit"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Vee stemboodskap uit"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Argiveer stemboodskap"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Stemboodskap is uitgevee"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Stemboodskap is geargiveer"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ONTDOEN"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"GAAN NA ARGIEF"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vee oproepgeskiedenis uit?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dit sal alle oproepe uit jou geskiedenis vee"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Vee tans oproepgeskiedenis uit …"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Foon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Gemiste oproep"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Gemiste werkoproep"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Gemiste oproepe"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepe"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Bel terug"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuwe stemboodskap van <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Kon nie stemboodskap speel nie"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Laai tans stemboodskap …"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Argiveer tans stemboodskap …"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kon nie stemboodskap laai nie"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Slegs oproepe met stemboodskappe"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Slegs inkomende oproepe"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Maak \'n oproep"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Jy het geen gemiste oproepe nie."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Jou stemboodskapdiens se inkassie is leeg."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Jou stemboodskap-argief is leeg."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Wys net gunstelinge"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Oproepgeskiedenis"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Stemboodskap-argief"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alles"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Gemis"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Stemboodskap"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Bekyk nommers"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Voer in"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Kon nie invoer nie"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Kon nie stemboodskap argiveer nie."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokkeer nommer"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Voeg nommer by"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Oproepe van hierdie nommers af sal geblokkeer word en stemboodskappe sal outomaties uitgevee word."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Skakel die foontoestemming aan om \'n oproep te maak."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Foonprogram het nie toestemming om stelselinstellings te stel nie."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Geblokkeer"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index f16ee25..80cfe33 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ከመደወል በፊት ቁጥር አርትዕ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"የጥሪ ታሪክን አጽዳ"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"የድምፅ መልዕክት ሰርዝ"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"የድምፅ መልዕክት በማህደር አስቀምጥ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"የድምጽ ፖስታ ተፈልጎ ተገኝቷል"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"የድምፅ መልዕክት በማህደር ተቀምጧል"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ቀልብስ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ወደ መዝገብ ሂድ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"የጥሪ ታሪክ ይጽዳ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ይሄ ሁሉንም ጥሪዎች ከታሪክዎ ይሰርዛቸዋል"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"የጥሪ ታሪክን በማጽዳት ላይ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ስልክ"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"ያመለጠ ጥሪ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"ያመለጠ የሥራ ጥሪ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"ያመለጡ ጥሪዎች"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ያመለጡ ጥሪዎች"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"የኋላ ጥሪ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ከ<xliff:g id="CALLER">%1$s</xliff:g> አዲስ የድምፅመልዕክት"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"የድምጽ መልዕክትን ማጫወት አልተቻለም"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"የድምጽ መልዕክትን በመጫን ላይ…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"የድምፅ መልዕክት ማህደር ውስጥ በማስቀመጥ ላይ…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"የድምጽ መልዕክትን መጫን አልተቻለም"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"የድምጽ መልዕክት ያላቸው ጥሪዎች ብቻ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ገቢ ጥሪዎች ብቻ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ደውል"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ምንም ያመለጡዎት ጥሪዎች የሉዎትም።"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"የእርስዎ የድምጽ መልዕክት ገቢ መልዕክት ባዶ ነው።"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"የድምፅ መልዕክት መዝገብዎ ባዶ ነው።"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ተወዳጆችን ብቻ አሳይ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"የጥሪ ታሪክ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"የድምፅ መልዕክት መዝገብ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ሁሉም"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ያመለጡ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"የድምፅ መልዕክት"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ቁጥሮችን ይመልከቱ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"አስመጣ"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ማስመጣት አልተሳካም"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"የድምፅ መልዕክት ማህደር ውስጥ ማስቀመጥ አልተሳካም።"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ቁጥርን አታግድ"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"ቁጥር አክል"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ከእነዚህ ቁትሮች የሚመጡ ጥሪዎች ይታገዳሉ፣ እና የድምጽ መልዕክቶች በራስ-ሰር ይሰረዛሉ።"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"የስልክ መተግበሪያ ወደ የስርዓት ቅንብሮች የመጻፍ ፍቃድ የለውም።"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"የታገዱ"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index ebce9e8..92b14c4 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"تعديل الرقم قبل الاتصال"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"محو سجل المكالمات"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"حذف رسالة البريد الصوتي"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"البريد الصوتي للأرشيف"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"تم حذف الرسالة الصوتية"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"البريد الصوتي المؤرشف"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"تراجع"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"انتقال إلى الأرشيف"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"هل تريد محو سجل المكالمات؟"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"سيؤدي ذلك إلى حذف جميع المكالمات من السجل"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"جارٍ محو سجل المكالمات…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"الهاتف"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"مكالمة فائتة"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"مكالمة عمل فائتة"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"المكالمات الفائتة"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> من المكالمات الفائتة"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"معاودة الاتصال"</string>
@@ -58,6 +62,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"بريد صوتي جديد من <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"تعذر تشغيل البريد الصوتي"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"جارٍ تحميل البريد الصوتي…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"تجري أرشفة البريد الصوتي..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"تعذر تحميل البريد الصوتي"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"المكالمات التي تشتمل على بريد صوتي فقط"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"المكالمات الواردة فقط"</string>
@@ -151,8 +156,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"إجراء مكالمة"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ليست لديك أية مكالمات لم يتم الرد عليها."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"مجلد بريدك الوارد الصوتي فارغ."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"أرشيف البريد الصوتي الخاص بك فارغ."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"عرض المفضلة فقط"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"سجل المكالمات"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"أرشيف البريد الصوتي"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"فائتة"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"البريد الصوتي"</string>
@@ -242,6 +249,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"عرض الأرقام"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"استيراد"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"أخفق الاستيراد"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"فشلت أرشفة البريد الصوتي."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"إلغاء حظر الرقم"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"إضافة رقم"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"سيتم حظر المكالمات من هذه الأرقام وسيتم حذف الرسائل الصوتية تلقائيًا."</string>
@@ -261,4 +269,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"لإجراء مكالمة، شغِّل إذن الهاتف."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ليس لدى تطبيق الهاتف إذن لتعديل إعدادات النظام."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"تم الحظر"</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 1ba23a2..c32ded6 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Zəng tarixçəsini təmizləyin"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Səsli məktubu silin"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Səsli poçtu arxivləşdirin"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Səsli məktub silindi"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Səsli poçt arxivləşdirildi"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"GERİ ALIN"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARXİVƏ GEDİN"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Zəng tarixçəsi təmizlənsin?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu, tarixçənizdən bütün zəngləri siləcəkdir"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Zəng tarixçəsi silinir…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Buraxılmış zəng"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Buraxılmış iş çağrısı"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Buraxılmış zənglər"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> buraxılmış zənglər"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Geriyə zəng"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> adlı şəxsdən yeni səsli məktub"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Səsli poçtu səsləndirmək mümkün deyil"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Səsli poçt yüklənir…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Səsli poçt arxivləşdirilir…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Səsli poçtu yükləmək mümkün olmadı"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Yalnız səsli məktublu zənglər"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Yalnız daxil olan zənglər"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zəng edin"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Buraxılmış heç bir zənginiz yoxdur."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Səsli poçt qutunuz boşdur."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Səsli poçt arxiviliniz boşdur."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Yalnız seçilmişləri göstər"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Zəng Tarixçəsi"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Səsli Poçt Arxivi"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Bütün"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Buraxılmış"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Səsli poçt"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Rəqəmlərə baxın"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İmport"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import alınmadı"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Səsli poçtu arxivləşdirmək uğursuz oldu."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nömrəni blokdan çıxarın"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Nömrə əlavə edin"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu nömrələrdən zənglər blok ediləcək və səsli məktublar avtomatik silinəcək."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon tətbiqinin sistem ayarlarına yazmaq icazəsi yoxdur."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloklanıb"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..57b8b79
--- /dev/null
+++ b/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2012 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="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
+    <string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+    <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Numerička tastatura telefona"</string>
+    <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+    <string name="callHistoryIconLabel" msgid="3734413397291301223">"Istorija poziva"</string>
+    <string name="action_report_number" msgid="4635403959812186162">"Prijavi netačan broj"</string>
+    <string name="action_copy_number_text" msgid="588249522108594155">"Kopiraj broj"</string>
+    <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiraj transkripciju"</string>
+    <string name="action_block_number" msgid="1482657602262262134">"Blokiraj broj"</string>
+    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> je blokiran"</string>
+    <string name="action_unblock_number" msgid="3043777622269776127">"Deblokiraj broj"</string>
+    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> je deblokiran"</string>
+    <string name="block_number_undo" msgid="591338370336724156">"OPOZOVI"</string>
+    <string name="call_details_delete" msgid="1833359621896346955">"Izbriši"</string>
+    <string name="action_edit_number_before_call" msgid="3100221149873436485">"Izmeni broj pre poziva"</string>
+    <string name="call_log_delete_all" msgid="4677609108288680411">"Obriši istoriju poziva"</string>
+    <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Izbriši govornu poruku"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arhiviraj govornu poštu"</string>
+    <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Gov. pošta je izbrisana"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Govorna pošta je arhivirana"</string>
+    <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"OPOZOVI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARHIVA"</string>
+    <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite da obrišete istoriju poziva?"</string>
+    <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ovo će izbrisati sve pozive iz istorije"</string>
+    <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Briše se istorija poziva…"</string>
+    <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
+    <string name="notification_missedCallTitle" msgid="2078223183024451723">"Propušten poziv"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Propušten poziv za Work"</string>
+    <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="158790423221579961">"Broj propuštenih poziva: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Uzvrati poziv"</string>
+    <string name="notification_missedCall_message" msgid="3042123733754151052">"Pošalji SMS"</string>
+    <plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
+      <item quantity="one"> <xliff:g id="COUNT">%1$d</xliff:g> govorna poruka </item>
+      <item quantity="few"> <xliff:g id="COUNT">%1$d</xliff:g> govorne poruke </item>
+      <item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> govornih poruka </item>
+    </plurals>
+    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Pusti"</string>
+    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
+    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova govorna poruka od <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+    <string name="voicemail_playback_error" msgid="3356071912353297599">"Puštanje govorne pošte nije uspelo"</string>
+    <string name="voicemail_fetching_content" msgid="1287895365599580842">"Govorna pošta se učitava…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Govorna pošta se arhivira…"</string>
+    <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Učitavanje govorne pošte nije uspelo"</string>
+    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo pozivi sa govornom poštom"</string>
+    <string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dolazni pozivi"</string>
+    <string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odlazni pozivi"</string>
+    <string name="call_log_missed_header" msgid="8017148056610855956">"Samo propušteni pozivi"</string>
+    <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuelna govorna pošta"</string>
+    <string name="visual_voicemail_text" msgid="164967285234132509">"Pregledajte i slušajte govornu poštu bez pozivanja broja. Možda će biti naplaćeni troškovi za prenos podataka."</string>
+    <string name="visual_voicemail_settings" msgid="8090338793118794741">"Podešavanja"</string>
+    <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ažuriranja govorne pošte nisu dostupna"</string>
+    <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Imate novu govornu poštu. Trenutno ne može da se učita."</string>
+    <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Podesite govornu poštu"</string>
+    <string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio nije dostupan"</string>
+    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Podesi"</string>
+    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Zovi govornu poštu"</string>
+    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
+    <string name="sms_disambig_title" msgid="5846266399240630846">"Izbor broja"</string>
+    <string name="call_disambig_title" msgid="4392886850104795739">"Izbor broja"</string>
+    <string name="make_primary" msgid="5829291915305113983">"Zapamti ovaj izbor"</string>
+    <string name="description_search_button" msgid="3660807558587384889">"pretraži"</string>
+    <string name="description_dial_button" msgid="1274091017188142646">"biranje"</string>
+    <string name="description_digits_edittext" msgid="8760207516497016437">"broj za biranje"</string>
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"Pokretanje ili zaustavljanje reprodukcije"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"Uključivanje ili isključivanje spikerfona"</string>
+    <string name="description_playback_seek" msgid="4509404274968530055">"Traženje pozicije u reprodukciji"</string>
+    <string name="description_rate_decrease" msgid="3161652589401708284">"Smanjivanje brzine reprodukcije"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"Povećavanje brzine reprodukcije"</string>
+    <string name="action_menu_call_history_description" msgid="9018442816219748968">"Istorija poziva"</string>
+    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Još opcija"</string>
+    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"numerička tastatura"</string>
+    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Prikaži samo odlazne"</string>
+    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Prikaži samo dolazne"</string>
+    <string name="menu_show_missed_only" msgid="154473166059743996">"Prikaži samo propuštene"</string>
+    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Prikaži samo govorne poruke"</string>
+    <string name="menu_show_all_calls" msgid="7560347482073345885">"Prikaži sve pozive"</string>
+    <string name="add_2sec_pause" msgid="9214012315201040129">"Dodaj pauzu od 2 sekunde"</string>
+    <string name="add_wait" msgid="3360818652790319634">"Dodaj čekanje"</string>
+    <string name="dialer_settings_label" msgid="4305043242594150479">"Podešavanja"</string>
+    <string name="menu_newContact" msgid="1209922412763274638">"Novi kontakt"</string>
+    <string name="menu_allContacts" msgid="6948308384034051670">"Svi kontakti"</string>
+    <string name="callDetailTitle" msgid="5340227785196217938">"Detalji poziva"</string>
+    <string name="toast_call_detail_error" msgid="6947041258280380832">"Detalji nisu dostupni"</string>
+    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Upotrebite brojčanik za tonsko biranje"</string>
+    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Vrati se na poziv koji je u toku"</string>
+    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Dodaj poziv"</string>
+    <string name="type_incoming" msgid="6502076603836088532">"Dolazni poziv"</string>
+    <string name="type_outgoing" msgid="343108709599392641">"Odlazni poziv"</string>
+    <string name="type_missed" msgid="2720502601640509542">"Propušten poziv"</string>
+    <string name="type_incoming_video" msgid="82323391702796181">"Dolazni video poziv"</string>
+    <string name="type_outgoing_video" msgid="2858140021680755266">"Odlazni video poziv"</string>
+    <string name="type_missed_video" msgid="954396897034220545">"Propušten video poziv"</string>
+    <string name="type_voicemail" msgid="5153139450668549908">"Govorna pošta"</string>
+    <string name="type_rejected" msgid="7783201828312472691">"Odbijen poziv"</string>
+    <string name="type_blocked" msgid="3521686227115330015">"Blokiran poziv"</string>
+    <string name="actionIncomingCall" msgid="6028930669817038600">"Dolazni pozivi"</string>
+    <string name="description_call_log_play_button" msgid="651182125650429846">"Puštanje govorne pošte"</string>
+    <string name="description_view_contact" msgid="5205669345700598415">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_call" msgid="3443678121983852666">"Pozovi korisnika <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Detalji o kontaktu za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> poziva."</string>
+    <string name="description_video_call" msgid="2933838090743214204">"Video poziv."</string>
+    <string name="description_send_text_message" msgid="3118485319691414221">"Slanje SMS-a za <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nepreslušana govorna pošta"</string>
+    <string name="description_start_voice_search" msgid="520539488194946012">"Pokretanje glasovne pretrage"</string>
+    <string name="menu_callNumber" msgid="997146291983360266">"Pozovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+    <string name="unknown" msgid="740067747858270469">"Nepoznato"</string>
+    <string name="voicemail" msgid="3851469869202611441">"Govorna pošta"</string>
+    <string name="private_num" msgid="6374339738119166953">"Privatan broj"</string>
+    <string name="payphone" msgid="7726415831153618726">"Telefonska govornica"</string>
+    <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+    <skip />
+    <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
+    <string name="voicemailDurationFormat" msgid="228211252076289564">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
+    <string name="voicemailCallLogDateTimeFormatWithDuration" msgid="5118563814451588397">"<xliff:g id="DATEANDTIME">%1$s</xliff:g> • <xliff:g id="DURATION">%2$s</xliff:g>"</string>
+    <string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nije moguće pozvati ovaj broj"</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Da biste podesili govornu poštu, idite u Meni &gt; Podešavanja."</string>
+    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Da biste pozvali govornu poštu, prvo isključite režim aviona."</string>
+    <string name="contact_list_loading" msgid="5488620820563977329">"Učitava se…"</string>
+    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+    <string name="meid" msgid="6210568493746275750">"MEID"</string>
+    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Učitava se sa SIM kartice…"</string>
+    <string name="simContacts_title" msgid="27341688347689769">"Kontakti na SIM kartici"</string>
+    <string name="add_contact_not_available" msgid="5547311613368004859">"Nema dostupne aplikacije za kontakte"</string>
+    <string name="voice_search_not_available" msgid="2977719040254285301">"Glasovna pretraga nije dostupna"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string>
+    <string name="activity_not_available" msgid="2287665636817987623">"Na ovom uređaju nema aplikacija za to"</string>
+    <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pretražite kontakte"</string>
+    <string name="block_number_search_hint" msgid="5409571607043872758">"Dodajte broj ili pretražite kontakte"</string>
+    <string name="call_log_all_empty" msgid="8357417710416340920">"Istorija poziva je prazna"</string>
+    <string name="call_log_all_empty_action" msgid="9093210119068366147">"Pozovi"</string>
+    <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemate nijedan propušten poziv."</string>
+    <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Prijemno sanduče govorne pošte je prazno."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arhiva govorne pošte je prazna."</string>
+    <string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo omiljene"</string>
+    <string name="call_log_activity_title" msgid="7949633151371183580">"Istorija poziva"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arhiva govorne pošte"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Svi"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Govorna pošta"</string>
+    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite li da blokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+    <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Pozivi sa ovog broja će biti blokirani i poruke govorne pošte će se automatski brisati."</string>
+    <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Pozivi sa ovog broja će biti blokirani, ali pozivalac i dalje može da vam ostavlja poruke govorne pošte."</string>
+    <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
+    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite li da deblokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+    <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Deblokiraćemo ovaj broj i moći će da vam upućuje pozive."</string>
+    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKIRAJ"</string>
+    <string name="tab_speed_dial" msgid="7552166276545648893">"Brzo biranje"</string>
+    <string name="tab_history" msgid="2563144697322434940">"Istorija poziva"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakti"</string>
+    <string name="tab_voicemail" msgid="155024725947496746">"Govorna pošta"</string>
+    <string name="favorite_hidden" msgid="5011234945140912047">"Uklonjeno je iz omiljenih"</string>
+    <string name="favorite_hidden_undo" msgid="2508998611039406474">"Opozovi"</string>
+    <string name="search_shortcut_call_number" msgid="7277194656832895870">"Pozovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+    <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Napravi novi kontakt"</string>
+    <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Dodaj u kontakt"</string>
+    <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Pošalji SMS"</string>
+    <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Uputi video poziv"</string>
+    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj broj"</string>
+    <string name="num_missed_calls" msgid="8081736535604293886">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+    <string name="speed_dial_empty" msgid="8838921693673366129">"Nemate nijedan kontakt na brzom biranju"</string>
+    <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Dodaj omiljen kontakt"</string>
+    <string name="all_contacts_empty" msgid="471370638298229686">"Još uvek nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Dodaj kontakt"</string>
+    <string name="contact_tooltip" msgid="2019777545923635266">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste promenili raspored"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Ukloni"</string>
+    <string name="call_log_action_video_call" msgid="7724301709041128296">"Video poziv"</string>
+    <string name="call_log_action_send_message" msgid="5679719296905285131">"Pošalji poruku"</string>
+    <string name="call_log_action_details" msgid="701345508704970622">"Detalji poziva"</string>
+    <string name="call_log_action_call" msgid="463690849042459842">"Pozovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_incoming_missed_call" msgid="2381085098795943627">"Propušteni poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7117665748428816544">"Primljeni poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+    <string name="description_unread_voicemail" msgid="5826351827625665597">"Nepročitana govorna poruka od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+    <string name="description_read_voicemail" msgid="133974208364152610">"Govorna poruka od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="6386364390619734734">"Pozvali ste: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+    <string name="description_phone_account" msgid="1767072759541443861">"na nalogu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
+    <string name="description_call_log_call_action" msgid="3682561657090693134">"Pozovi"</string>
+    <string name="description_call_action" msgid="4000549004089776147">"Pozovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_video_call_action" msgid="7386922428155062213">"Uputite video poziv kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Pusti govornu poštu od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_voicemail_play" msgid="2689369874037785439">"Reprodukuj govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_voicemail_pause" msgid="3905259748756919693">"Pauziraj govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_voicemail_delete" msgid="2025472770630153436">"Izbriši govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nova poruka govorne pošte</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nove poruke govorne pošte</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novih poruka govorne pošte</item>
+    </plurals>
+    <string name="description_create_new_contact_action" msgid="818755978791008167">"Napravite kontakt za <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Dodajte <xliff:g id="NAMEORNUMBER">^1</xliff:g> postojećem kontaktu"</string>
+    <string name="description_details_action" msgid="2433827152749491785">"Detalji poziva za <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="8010830299576311534">"Izbrisano iz istorije poziva"</string>
+    <string name="call_log_header_today" msgid="3225248682434212981">"Danas"</string>
+    <string name="call_log_header_yesterday" msgid="9139172458834033092">"Juče"</string>
+    <string name="call_log_header_other" msgid="5769921959940709084">"Stariji"</string>
+    <string name="call_detail_list_header" msgid="3752717059699600861">"Lista poziva"</string>
+    <string name="voicemail_speaker_on" msgid="209154030283487068">"Uključite zvučnik."</string>
+    <string name="voicemail_speaker_off" msgid="7390530056413093958">"Isključite zvučnik."</string>
+    <string name="voicemail_play_faster" msgid="3444751008615323006">"Brža reprodukcija."</string>
+    <string name="voicemail_play_slower" msgid="4544796503902818832">"Sporija reprodukcija."</string>
+    <string name="voicemail_play_start_pause" msgid="3687447935787768983">"Započnite ili pauzirajte reprodukciju."</string>
+    <string name="list_delimeter" msgid="4571593167738725100">", "</string>
+    <string name="display_options_title" msgid="7812852361055667468">"Opcije prikaza"</string>
+    <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Zvuci i vibracija"</string>
+    <string name="accessibility_settings_title" msgid="6068141142874046249">"Pristupačnost"</string>
+    <string name="ringtone_title" msgid="760362035635084653">"Zvuk zvona telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibriraj i za pozive"</string>
+    <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Zvuci numeričke tastature"</string>
+    <string name="dtmf_tone_length_title" msgid="8581125689808919460">"Trajanje tonova numeričke tastature"</string>
+  <string-array name="dtmf_tone_length_entries">
+    <item msgid="1036113889050195575">"Normalno"</item>
+    <item msgid="6177579030803486015">"Dugačko"</item>
+  </string-array>
+    <string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Brzi odgovori"</string>
+    <string name="call_settings_label" msgid="313434211353070209">"Pozivi"</string>
+    <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokiranje poziva"</string>
+    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje poziva je privremeno isključeno"</string>
+    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokiranje poziva je onemogućeno zato što ste kontaktirali službe za pomoć u hitnim slučajevima sa ovog telefona u poslednjih 48 sati. Automatski će biti ponovo omogućeno kada istekne period od 48 sati."</string>
+    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvezi brojeve"</string>
+    <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ranije ste označili neke pozivaoce koje automatski treba preusmeriti na govornu poštu preko drugih aplikacija."</string>
+    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
+    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
+    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspeo"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Arhiviranje govorne pošte nije uspelo."</string>
+    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiraj broj"</string>
+    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
+    <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Pozivi sa ovih brojeva će biti blokirani i poruke govorne pošte će se automatski brisati."</string>
+    <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Pozivi sa ovih brojeva će biti blokirani, ali pozivaoci sa ovih brojeva će i dalje moći da vam ostavljaju poruke govorne pošte."</string>
+    <string name="block_list" msgid="7760188925338078011">"Blokirani brojevi"</string>
+    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> je nevažeći."</string>
+    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
+    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje poziva je onemogućeno na 48 sati"</string>
+    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogućeno je zato što je upućen hitan poziv."</string>
+    <string name="phone_account_settings_label" msgid="5864322009841175294">"Nalozi za pozivanje"</string>
+    <string name="permission_single_turn_on" msgid="1543391076065465464">"Uključi"</string>
+    <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Podesi dozvole"</string>
+    <string name="permission_no_speeddial" msgid="6882563445996184051">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string>
+    <string name="permission_no_calllog" msgid="555711464287041043">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string>
+    <string name="permission_no_contacts" msgid="6237980143178936279">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
+    <string name="permission_no_voicemail" msgid="8306280257799917574">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string>
+    <string name="permission_no_search" msgid="84152933267902056">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
+    <string name="permission_place_call" msgid="2101287782615887547">"Da biste uputili poziv, uključite dozvolu za Telefon."</string>
+    <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nema dozvolu za upisivanje u sistemska podešavanja."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokiran"</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 3d0efc0..2dbee88 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Редактиране на номера преди обаждане"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Изчистване на историята на обажданията"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Изтриване на гласова поща"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Архивиране на гласовата поща"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гл. поща е изтрита"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Гласовата поща бе архивирана"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОТМЯНА"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"КЪМ АРХИВА"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Да се изчисти ли историята на обажд.?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Така ще се изтрият всички обаждания от историята ви"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Историята на обажд. се изчиства…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Телефон"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Пропуснато обаждане"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Пропуснато служебно обаждане"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Пропуснати обаждания"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуснати обаждания"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Обратно обаждане"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова гласова поща от <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Гл. поща не можа да се възпроизведе"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Гласовата поща се зарежда…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Гласовата поща се архивира…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Гласовата поща не можа да се зареди"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Само обаждания с гласова поща"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Само входящи обаждания"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Извършване на обаждане"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Нямате пропуснати обаждания."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Входящата ви гласова поща е празна."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Архивът на гласовата ви поща е празен."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Показване само на любимите"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"История на обажданията"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Архив на гласовата поща"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Всички"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуснати"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Гл. поща"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Преглед на номерата"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортиране"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортирането не бе успешно"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Неуспешно архивиране на гласовата поща."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Отблокиране на номера"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Добавяне на номер"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Обажданията от тези номера ще бъдат блокирани, а гласовите съобщения – автоматично изтривани."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"За да търсите в контактите си, включете разрешенията за тях."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"За да извършите обаждане, включете разрешението за Телефон."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Приложението Телефон няма разрешение да записва в системните настройки."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Блокирано"</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 37ad783..50096b1 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"কল করার আগে নম্বর সম্পাদনা করুন"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"পুরোনো কলের তালিকা সাফ করুন"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ভয়েসমেল মুছুন"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ভয়েসমেল সংরক্ষণাগারভুক্ত করুন"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ভয়েসমেল মোছা হয়েছে"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ভয়েসমেল সংরক্ষণাগারভুক্ত"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"পূর্বাবস্থায় ফিরুন"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"সংরক্ষণাগারে যান"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"কল ইতিহাস সাফ করবেন?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"এটি আপনার ইতিহাস থেকে সমস্ত কল মুছে দেবে"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"কল ইতিহাস সাফ করা হচ্ছে…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ফোন"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"মিস করা কল"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"কাজের কল মিস করেছেন"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"মিস করা কলগুলি"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>টি মিস করা কল"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ঘুরিয়ে কল করুন"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> এর থেকে নতুন ভয়েসমেল"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ভয়েসমেল প্লে করা যায়নি"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ভয়েসমেল লোড করা হচ্ছে..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ভয়েসমেল সংরক্ষণাগারভুক্ত করা হচ্ছে…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ভয়েসমেল লোড করা যায়নি"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"কেবলমাত্র ভয়েসমেলের সাথে কলগুলি"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"কেবলমাত্র ইনকামিং কলগুলি"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"একটি কল করুন"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"আপনার কোনো মিসড কল নেই।"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"আপনার ভয়েসমেলের ইনবক্স খালি রয়েছে।"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"আপনার ভয়েসমেলের সংরক্ষণাগারটি খালি।"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"কেবলমাত্র পছন্দসইগুলি দেখান"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"পুরোনো কলের তালিকা"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ভয়েসমেলের সংরক্ষাণাগার"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"সমস্ত"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"মিসড"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ভয়েসমেল"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"নম্বরগুলি দেখুন"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"আমদানি করুন"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"আমদানি ব্যর্থ হয়েছে"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ভয়েসমেল সংরক্ষণাগারভুক্ত করতে ব্যর্থ হয়েছে।"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"নম্বর অবরোধ মুক্ত করুন"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"একটি নম্বর যোগ করুন"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"এই নম্বরগুলি থেকে আসা কলগুলি অবরোধ করা হবে এবং ভয়েসমেলগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে৷"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ফোনের অ্যাপ্লিকেশানকে সিস্টেম সেটিংসে লেখার অনুমতি দেওয়া হয়নি।"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"অবরুদ্ধ"</string>
 </resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
new file mode 100644
index 0000000..730a43c
--- /dev/null
+++ b/res/values-bs-rBA/strings.xml
@@ -0,0 +1,484 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2012 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">
+    <!-- no translation found for applicationLabel (7762561155467201526) -->
+    <skip />
+    <!-- no translation found for launcherActivityLabel (1129729740601172692) -->
+    <skip />
+    <!-- no translation found for launcherDialpadActivityLabel (3959809805046059167) -->
+    <skip />
+    <!-- no translation found for dialerIconLabel (6500826552823403796) -->
+    <skip />
+    <!-- no translation found for callHistoryIconLabel (3734413397291301223) -->
+    <skip />
+    <!-- no translation found for action_report_number (4635403959812186162) -->
+    <skip />
+    <!-- no translation found for action_copy_number_text (588249522108594155) -->
+    <skip />
+    <!-- no translation found for copy_transcript_text (5652787482893879382) -->
+    <skip />
+    <!-- no translation found for action_block_number (1482657602262262134) -->
+    <skip />
+    <!-- no translation found for snackbar_number_blocked (939830142765936021) -->
+    <skip />
+    <!-- no translation found for action_unblock_number (3043777622269776127) -->
+    <skip />
+    <!-- no translation found for snackbar_number_unblocked (4854738171099045912) -->
+    <skip />
+    <!-- no translation found for block_number_undo (591338370336724156) -->
+    <skip />
+    <!-- no translation found for call_details_delete (1833359621896346955) -->
+    <skip />
+    <!-- no translation found for action_edit_number_before_call (3100221149873436485) -->
+    <skip />
+    <!-- no translation found for call_log_delete_all (4677609108288680411) -->
+    <skip />
+    <!-- no translation found for call_log_trash_voicemail (1283948488625129019) -->
+    <skip />
+    <!-- no translation found for call_log_archive_voicemail (9072936797223284265) -->
+    <skip />
+    <!-- no translation found for snackbar_voicemail_deleted (5098542835986188582) -->
+    <skip />
+    <!-- no translation found for snackbar_voicemail_archived (7442340403660554373) -->
+    <skip />
+    <!-- no translation found for snackbar_voicemail_deleted_undo (3741811385891289167) -->
+    <skip />
+    <!-- no translation found for snackbar_voicemail_archived_goto (9186182602955185448) -->
+    <skip />
+    <!-- no translation found for clearCallLogConfirmation_title (801753155679372984) -->
+    <skip />
+    <!-- no translation found for clearCallLogConfirmation (7899552396101432827) -->
+    <skip />
+    <!-- no translation found for clearCallLogProgress_title (3372471156216306132) -->
+    <skip />
+    <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
+    <string name="notification_missedCallTitle" msgid="2078223183024451723">"Propušteni poziv"</string>
+    <!-- no translation found for notification_missedWorkCallTitle (8418335304394771688) -->
+    <skip />
+    <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="158790423221579961">"Propuštenih poziva: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Pozovi ovaj broj"</string>
+    <string name="notification_missedCall_message" msgid="3042123733754151052">"Poruka"</string>
+    <!-- no translation found for notification_voicemail_title (9088953961148324851) -->
+    <!-- no translation found for notification_action_voicemail_play (6113133136977996863) -->
+    <skip />
+    <!-- no translation found for notification_voicemail_callers_list (1153954809339404149) -->
+    <skip />
+    <!-- no translation found for notification_new_voicemail_ticker (895342132049452081) -->
+    <skip />
+    <!-- no translation found for voicemail_playback_error (3356071912353297599) -->
+    <skip />
+    <!-- no translation found for voicemail_fetching_content (1287895365599580842) -->
+    <skip />
+    <!-- no translation found for voicemail_archiving_content (722322091690281157) -->
+    <skip />
+    <!-- no translation found for voicemail_fetching_timout (3959428065511972176) -->
+    <skip />
+    <!-- no translation found for call_log_voicemail_header (3945407886667089173) -->
+    <skip />
+    <!-- no translation found for call_log_incoming_header (2787722299753674684) -->
+    <skip />
+    <!-- no translation found for call_log_outgoing_header (761009180766735769) -->
+    <skip />
+    <!-- no translation found for call_log_missed_header (8017148056610855956) -->
+    <skip />
+    <!-- no translation found for visual_voicemail_title (4574199312906348905) -->
+    <skip />
+    <!-- no translation found for visual_voicemail_text (164967285234132509) -->
+    <skip />
+    <!-- no translation found for visual_voicemail_settings (8090338793118794741) -->
+    <skip />
+    <!-- no translation found for voicemail_status_voicemail_not_available (5222480147701456390) -->
+    <skip />
+    <!-- no translation found for voicemail_status_messages_waiting (6329544650250068650) -->
+    <skip />
+    <!-- no translation found for voicemail_status_configure_voicemail (8300808991932816153) -->
+    <skip />
+    <!-- no translation found for voicemail_status_audio_not_available (2449801102560158082) -->
+    <skip />
+    <!-- no translation found for voicemail_status_action_configure (8671796489912239589) -->
+    <skip />
+    <!-- no translation found for voicemail_status_action_call_server (1824816252288551794) -->
+    <skip />
+    <!-- no translation found for call_log_item_count_and_date (7641933305703520787) -->
+    <skip />
+    <!-- no translation found for sms_disambig_title (5846266399240630846) -->
+    <skip />
+    <!-- no translation found for call_disambig_title (4392886850104795739) -->
+    <skip />
+    <!-- no translation found for make_primary (5829291915305113983) -->
+    <skip />
+    <!-- no translation found for description_search_button (3660807558587384889) -->
+    <skip />
+    <!-- no translation found for description_dial_button (1274091017188142646) -->
+    <skip />
+    <!-- no translation found for description_digits_edittext (8760207516497016437) -->
+    <skip />
+    <!-- no translation found for description_playback_start_stop (5060732345522492292) -->
+    <skip />
+    <!-- no translation found for description_playback_speakerphone (6008323900245707504) -->
+    <skip />
+    <!-- no translation found for description_playback_seek (4509404274968530055) -->
+    <skip />
+    <!-- no translation found for description_rate_decrease (3161652589401708284) -->
+    <skip />
+    <!-- no translation found for description_rate_increase (6324606574127052385) -->
+    <skip />
+    <!-- no translation found for action_menu_call_history_description (9018442816219748968) -->
+    <skip />
+    <!-- no translation found for action_menu_overflow_description (2303272250613084574) -->
+    <!-- no translation found for action_menu_overflow_description (2295659037509008453) -->
+    <skip />
+    <!-- no translation found for action_menu_dialpad_button (1425910318049008136) -->
+    <skip />
+    <!-- no translation found for menu_show_outgoing_only (1965570298133301970) -->
+    <skip />
+    <!-- no translation found for menu_show_incoming_only (7534206815238877417) -->
+    <skip />
+    <!-- no translation found for menu_show_missed_only (154473166059743996) -->
+    <skip />
+    <!-- no translation found for menu_show_voicemails_only (1898421289561435703) -->
+    <skip />
+    <!-- no translation found for menu_show_all_calls (7560347482073345885) -->
+    <skip />
+    <!-- no translation found for add_2sec_pause (9214012315201040129) -->
+    <skip />
+    <!-- no translation found for add_wait (3360818652790319634) -->
+    <skip />
+    <!-- no translation found for dialer_settings_label (4305043242594150479) -->
+    <skip />
+    <!-- no translation found for menu_newContact (1209922412763274638) -->
+    <skip />
+    <!-- no translation found for menu_allContacts (6948308384034051670) -->
+    <skip />
+    <!-- no translation found for callDetailTitle (5340227785196217938) -->
+    <skip />
+    <!-- no translation found for toast_call_detail_error (6947041258280380832) -->
+    <skip />
+    <!-- no translation found for dialer_useDtmfDialpad (1707548397435075040) -->
+    <skip />
+    <!-- no translation found for dialer_returnToInCallScreen (3719386377550913067) -->
+    <skip />
+    <!-- no translation found for dialer_addAnotherCall (4205688819890074468) -->
+    <skip />
+    <!-- no translation found for type_incoming (6502076603836088532) -->
+    <skip />
+    <!-- no translation found for type_outgoing (343108709599392641) -->
+    <skip />
+    <!-- no translation found for type_missed (2720502601640509542) -->
+    <skip />
+    <!-- no translation found for type_incoming_video (82323391702796181) -->
+    <skip />
+    <!-- no translation found for type_outgoing_video (2858140021680755266) -->
+    <skip />
+    <!-- no translation found for type_missed_video (954396897034220545) -->
+    <skip />
+    <!-- no translation found for type_voicemail (5153139450668549908) -->
+    <skip />
+    <!-- no translation found for type_rejected (7783201828312472691) -->
+    <skip />
+    <!-- no translation found for type_blocked (3521686227115330015) -->
+    <skip />
+    <!-- no translation found for actionIncomingCall (6028930669817038600) -->
+    <skip />
+    <!-- no translation found for description_call_log_play_button (651182125650429846) -->
+    <skip />
+    <!-- no translation found for description_view_contact (5205669345700598415) -->
+    <skip />
+    <!-- no translation found for description_call (3443678121983852666) -->
+    <skip />
+    <!-- no translation found for description_contact_details (51229793651342809) -->
+    <skip />
+    <!-- no translation found for description_num_calls (1601505153694540074) -->
+    <skip />
+    <!-- no translation found for description_video_call (2933838090743214204) -->
+    <skip />
+    <!-- no translation found for description_send_text_message (3118485319691414221) -->
+    <skip />
+    <!-- no translation found for description_call_log_unheard_voicemail (118101684236996786) -->
+    <skip />
+    <!-- no translation found for description_start_voice_search (520539488194946012) -->
+    <skip />
+    <!-- no translation found for menu_callNumber (997146291983360266) -->
+    <skip />
+    <!-- no translation found for unknown (740067747858270469) -->
+    <skip />
+    <!-- no translation found for voicemail (3851469869202611441) -->
+    <skip />
+    <!-- no translation found for private_num (6374339738119166953) -->
+    <skip />
+    <!-- no translation found for payphone (7726415831153618726) -->
+    <skip />
+    <!-- no translation found for callDetailsShortDurationFormat (3988146235579303592) -->
+    <skip />
+    <!-- no translation found for callDetailsDurationFormat (6061406028764382234) -->
+    <skip />
+    <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+    <skip />
+    <!-- no translation found for voicemailCallLogDateTimeFormat (4388070029056487713) -->
+    <skip />
+    <!-- no translation found for voicemailDurationFormat (228211252076289564) -->
+    <skip />
+    <!-- no translation found for voicemailCallLogDateTimeFormatWithDuration (5118563814451588397) -->
+    <skip />
+    <!-- no translation found for dialog_phone_call_prohibited_message (5730565540182492608) -->
+    <!-- no translation found for dialog_phone_call_prohibited_message (4313552620858880999) -->
+    <skip />
+    <!-- no translation found for dialog_voicemail_not_ready_message (4384716252789515378) -->
+    <skip />
+    <!-- no translation found for dialog_voicemail_airplane_mode_message (530922773669546093) -->
+    <skip />
+    <!-- no translation found for contact_list_loading (5488620820563977329) -->
+    <skip />
+    <!-- no translation found for imei (3045126336951684285) -->
+    <skip />
+    <!-- no translation found for meid (6210568493746275750) -->
+    <skip />
+    <!-- no translation found for simContacts_emptyLoading (6700035985448642408) -->
+    <skip />
+    <!-- no translation found for simContacts_title (27341688347689769) -->
+    <skip />
+    <!-- no translation found for add_contact_not_available (5547311613368004859) -->
+    <skip />
+    <!-- no translation found for voice_search_not_available (2977719040254285301) -->
+    <skip />
+    <!-- no translation found for call_not_available (8941576511946492225) -->
+    <skip />
+    <!-- no translation found for activity_not_available (2287665636817987623) -->
+    <skip />
+    <!-- no translation found for dialer_hint_find_contact (3574350254520035364) -->
+    <skip />
+    <!-- no translation found for block_number_search_hint (5409571607043872758) -->
+    <skip />
+    <!-- no translation found for call_log_all_empty (8357417710416340920) -->
+    <skip />
+    <!-- no translation found for call_log_all_empty_action (9093210119068366147) -->
+    <skip />
+    <!-- no translation found for call_log_missed_empty (3927274175205520135) -->
+    <skip />
+    <!-- no translation found for call_log_voicemail_empty (8383585074222277550) -->
+    <skip />
+    <!-- no translation found for voicemail_archive_empty (1087408796679056787) -->
+    <skip />
+    <!-- no translation found for show_favorites_only (5520072531022614595) -->
+    <skip />
+    <!-- no translation found for call_log_activity_title (7949633151371183580) -->
+    <skip />
+    <!-- no translation found for voicemail_archive_activity_title (2638669189424535229) -->
+    <skip />
+    <!-- no translation found for call_log_all_title (3566738938889333307) -->
+    <skip />
+    <!-- no translation found for call_log_missed_title (4541142293870638971) -->
+    <skip />
+    <!-- no translation found for call_log_voicemail_title (940422274047025948) -->
+    <skip />
+    <!-- no translation found for block_number_confirmation_title (6862219558186931304) -->
+    <skip />
+    <!-- no translation found for block_number_confirmation_message_vvm (5655646611437082611) -->
+    <skip />
+    <!-- no translation found for block_number_confirmation_message_no_vvm (4511900601491718173) -->
+    <skip />
+    <!-- no translation found for block_number_ok (770551992296781873) -->
+    <skip />
+    <!-- no translation found for unblock_number_confirmation_title (252824779504084354) -->
+    <skip />
+    <!-- no translation found for unblock_number_confirmation_message (8521058345002166692) -->
+    <skip />
+    <!-- no translation found for unblock_number_ok (6449899182699684786) -->
+    <skip />
+    <!-- no translation found for tab_speed_dial (7552166276545648893) -->
+    <skip />
+    <!-- no translation found for tab_history (2563144697322434940) -->
+    <skip />
+    <!-- no translation found for tab_all_contacts (1410922767166533690) -->
+    <skip />
+    <!-- no translation found for tab_voicemail (155024725947496746) -->
+    <skip />
+    <!-- no translation found for favorite_hidden (5011234945140912047) -->
+    <skip />
+    <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
+    <skip />
+    <!-- no translation found for search_shortcut_call_number (7277194656832895870) -->
+    <skip />
+    <!-- no translation found for search_shortcut_create_new_contact (1679917465521554093) -->
+    <skip />
+    <!-- no translation found for search_shortcut_add_to_contact (4327842393369915751) -->
+    <skip />
+    <!-- no translation found for search_shortcut_send_sms_message (2569304043345025525) -->
+    <skip />
+    <!-- no translation found for search_shortcut_make_video_call (1265971685034465166) -->
+    <skip />
+    <!-- no translation found for search_shortcut_block_number (4787156645163436072) -->
+    <skip />
+    <!-- no translation found for num_missed_calls (8081736535604293886) -->
+    <skip />
+    <!-- no translation found for speed_dial_empty (8838921693673366129) -->
+    <skip />
+    <!-- no translation found for speed_dial_empty_add_favorite_action (7944893641496695770) -->
+    <skip />
+    <!-- no translation found for all_contacts_empty (471370638298229686) -->
+    <skip />
+    <!-- no translation found for all_contacts_empty_add_contact_action (1515782853819374618) -->
+    <skip />
+    <!-- no translation found for contact_tooltip (2019777545923635266) -->
+    <skip />
+    <!-- no translation found for remove_contact (1080555335283662961) -->
+    <skip />
+    <!-- no translation found for call_log_action_video_call (7724301709041128296) -->
+    <skip />
+    <!-- no translation found for call_log_action_send_message (5679719296905285131) -->
+    <skip />
+    <!-- no translation found for call_log_action_details (701345508704970622) -->
+    <skip />
+    <!-- no translation found for call_log_action_call (463690849042459842) -->
+    <skip />
+    <!-- no translation found for description_incoming_missed_call (2381085098795943627) -->
+    <skip />
+    <!-- no translation found for description_incoming_answered_call (7117665748428816544) -->
+    <skip />
+    <!-- no translation found for description_unread_voicemail (5826351827625665597) -->
+    <skip />
+    <!-- no translation found for description_read_voicemail (133974208364152610) -->
+    <skip />
+    <!-- no translation found for description_outgoing_call (6386364390619734734) -->
+    <skip />
+    <!-- no translation found for description_phone_account (1767072759541443861) -->
+    <skip />
+    <!-- no translation found for description_call_log_call_action (3682561657090693134) -->
+    <skip />
+    <!-- no translation found for description_call_action (4000549004089776147) -->
+    <skip />
+    <!-- no translation found for description_video_call_action (7386922428155062213) -->
+    <skip />
+    <!-- no translation found for description_voicemail_action (8054891873788903063) -->
+    <skip />
+    <!-- no translation found for description_voicemail_play (2689369874037785439) -->
+    <skip />
+    <!-- no translation found for description_voicemail_pause (3905259748756919693) -->
+    <skip />
+    <!-- no translation found for description_voicemail_delete (2025472770630153436) -->
+    <skip />
+    <!-- no translation found for description_voicemail_unread (8708346053055570332) -->
+    <!-- no translation found for description_create_new_contact_action (818755978791008167) -->
+    <skip />
+    <!-- no translation found for description_add_to_existing_contact_action (6081200053494414351) -->
+    <skip />
+    <!-- no translation found for description_details_action (2433827152749491785) -->
+    <skip />
+    <!-- no translation found for toast_entry_removed (8010830299576311534) -->
+    <skip />
+    <!-- no translation found for call_log_header_today (3225248682434212981) -->
+    <skip />
+    <!-- no translation found for call_log_header_yesterday (9139172458834033092) -->
+    <skip />
+    <!-- no translation found for call_log_header_other (5769921959940709084) -->
+    <skip />
+    <!-- no translation found for call_detail_list_header (3752717059699600861) -->
+    <skip />
+    <!-- no translation found for voicemail_speaker_on (209154030283487068) -->
+    <skip />
+    <!-- no translation found for voicemail_speaker_off (7390530056413093958) -->
+    <skip />
+    <!-- no translation found for voicemail_play_faster (3444751008615323006) -->
+    <skip />
+    <!-- no translation found for voicemail_play_slower (4544796503902818832) -->
+    <skip />
+    <!-- no translation found for voicemail_play_start_pause (3687447935787768983) -->
+    <skip />
+    <!-- no translation found for list_delimeter (4571593167738725100) -->
+    <skip />
+    <!-- no translation found for display_options_title (7812852361055667468) -->
+    <skip />
+    <!-- no translation found for sounds_and_vibration_title (1692290115642160845) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (6068141142874046249) -->
+    <skip />
+    <!-- no translation found for ringtone_title (760362035635084653) -->
+    <skip />
+    <!-- no translation found for vibrate_on_ring_title (3362916460327555241) -->
+    <skip />
+    <!-- no translation found for dtmf_tone_enable_title (6571449695997521615) -->
+    <skip />
+    <!-- no translation found for dtmf_tone_length_title (8581125689808919460) -->
+    <skip />
+    <!-- no translation found for dtmf_tone_length_entries:0 (1036113889050195575) -->
+    <!-- no translation found for dtmf_tone_length_entries:1 (6177579030803486015) -->
+    <!-- no translation found for respond_via_sms_setting_title (1318281521087951580) -->
+    <skip />
+    <!-- no translation found for call_settings_label (313434211353070209) -->
+    <skip />
+    <!-- no translation found for manage_blocked_numbers_label (5959801428936629196) -->
+    <skip />
+    <!-- no translation found for blocked_numbers_disabled_emergency_header_label (7870947220238070418) -->
+    <skip />
+    <!-- no translation found for blocked_numbers_disabled_emergency_desc (7755803249073401381) -->
+    <skip />
+    <!-- no translation found for import_send_to_voicemail_numbers_label (1606601823746799926) -->
+    <skip />
+    <!-- no translation found for blocked_call_settings_import_description (8640906226815125906) -->
+    <skip />
+    <!-- no translation found for blocked_call_settings_view_numbers_button (6698986720875955935) -->
+    <skip />
+    <!-- no translation found for blocked_call_settings_import_button (178821255125295473) -->
+    <skip />
+    <!-- no translation found for send_to_voicemail_import_failed (5547202002133560069) -->
+    <skip />
+    <!-- no translation found for voicemail_archive_failed (6263467962738772223) -->
+    <skip />
+    <!-- no translation found for description_blocked_number_list_delete (3240093199107796792) -->
+    <skip />
+    <!-- no translation found for addBlockedNumber (6064812257482886526) -->
+    <skip />
+    <!-- no translation found for block_number_footer_message_vvm (5387302253765439712) -->
+    <skip />
+    <!-- no translation found for block_number_footer_message_no_vvm (223238617533822381) -->
+    <skip />
+    <!-- no translation found for block_list (7760188925338078011) -->
+    <skip />
+    <!-- no translation found for invalidNumber (619058581062192851) -->
+    <skip />
+    <!-- no translation found for alreadyBlocked (282340105563646876) -->
+    <skip />
+    <!-- no translation found for call_blocking_disabled_notification_title (8185193413377920194) -->
+    <skip />
+    <!-- no translation found for call_blocking_disabled_notification_text (5330772013626378526) -->
+    <skip />
+    <!-- no translation found for phone_account_settings_label (5864322009841175294) -->
+    <skip />
+    <!-- no translation found for permission_single_turn_on (1543391076065465464) -->
+    <skip />
+    <!-- no translation found for permission_multiple_turn_on (2426278457455950554) -->
+    <skip />
+    <!-- no translation found for permission_no_speeddial (6882563445996184051) -->
+    <skip />
+    <!-- no translation found for permission_no_calllog (555711464287041043) -->
+    <skip />
+    <!-- no translation found for permission_no_contacts (6237980143178936279) -->
+    <skip />
+    <!-- no translation found for permission_no_voicemail (8306280257799917574) -->
+    <skip />
+    <!-- no translation found for permission_no_search (84152933267902056) -->
+    <skip />
+    <!-- no translation found for permission_place_call (2101287782615887547) -->
+    <skip />
+    <!-- no translation found for toast_cannot_write_system_settings (5614246168296606709) -->
+    <skip />
+    <!-- no translation found for blocked_number_call_log_label (8912042441473014712) -->
+    <skip />
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index b2839ae..461d3e1 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edita el número abans de trucar"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Esborra l\'historial de trucades"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Suprimeix la bústia de veu"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arxiva el missatge de veu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correu de veu suprimit"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Missatge de veu arxivat"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFÉS"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"OBRE ARXIU"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Esborrar l\'historial de trucades?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se suprimiran totes les trucades de l\'historial."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Esborrant historial de trucades..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telèfon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Trucada perduda"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Trucada perduda de feina"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Trucades perdudes"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> trucades perdudes"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Torna la trucada"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nou missatge de veu de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Error en reproduir el missatge de veu."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"S\'està carregant la bústia de veu..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"S\'estan arxivant els missatges de veu…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"No s\'ha pogut carregar la bústia de veu."</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Només trucades amb bústia de veu"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Només trucades entrants"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fes una trucada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"No tens cap trucada perduda."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La safata d\'entrada de la bústia de veu està buida."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"L\'arxiu de missatges de veu està buit."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostra només els preferits"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de trucades"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arxiu de missatges de veu"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Totes"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdudes"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Missatge de veu"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Mostra els números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error en la importació"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Error en arxivar el missatge de veu."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloqueja el número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Afegeix un número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Es bloquejaran les trucades d\'aquests números i els missatges de veu se suprimiran automàticament."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Activa el permís Telèfon per fer una trucada."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'aplicació Telèfon no té permís per escriure a la configuració del sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloquejat"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 8f524a3..877903d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Před voláním upravit číslo"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Vymazat historii volání"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Smazat hlasovou zprávu"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archivovat hlasovou zprávu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hlas. zpráva smazána"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Hlasová zpráva archivována"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VRÁTIT"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"DO ARCHIVU"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vymazat historii hovorů?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tímto z historie smažete všechny hovory."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Mazání historie volání…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Zmeškaný hovor"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Zmeškaný pracovní hovor"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Zmeškané hovory"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Zavolat zpět"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nová hlasová zpráva – <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Hlasovou schránku nelze přehrát."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Načítání hlasové schránky…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivace hlasové zprávy…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hlasovou schránku nelze načíst."</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Jen hovory s hlasovou schránkou"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Jen příchozí hovory"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zavolat"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemáte žádné zmeškané hovory."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hlasová schránka je prázdná."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Archiv vašich hlasových zpráv je prázdný."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Zobrazit pouze oblíbené"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historie volání"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archiv hlasových zpráv"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Všechny"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobrazit čísla"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovat"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import se nezdařil."</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Hlasovou zprávu se nepodařilo archivovat"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušit blokování čísla"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Přidat číslo"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Volání z těchto čísel budou zablokována. Hlasové zprávy budou automaticky smazány."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikace Telefon nemá oprávnění provádět zápis do nastavení systému."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokováno"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 0762924..0bf7f16 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Rediger nummeret før opkald"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Ryd opkaldshistorik"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Slet talemeddelelsen"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkivér talebesked"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Talebeskeden blev slettet"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Talebeskeden blev arkiveret"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"FORTRYD"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"GÅ TIL ARKIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vil du rydde opkaldshistorikken?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dette vil slette alle opkald fra din historik"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Opkaldshistorik ryddes..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Ubesvaret opkald"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Ubesvaret arbejdsopkald"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Ubesvarede opkald"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ubesvarede opkald"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Ring tilbage"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Ny besked fra <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Telefonsvarerbesked kan ikke afspilles"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Telefonsvarerbesked indlæses..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arkiverer talebeskeden…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Telefonsvarerbesked kan ikke indlæses"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Kun opkald med telefonsvarer"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Kun indgående opkald"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Foretag et opkald"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har ingen ubesvarede opkald."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Indbakken for din telefonsvarer er tom."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Dit arkiv med talebeskeder er tomt."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Vis kun foretrukne"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Opkaldshistorik"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arkiv med talebeskeder"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvarede"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Talebesked"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importen mislykkedes"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Talebeskeden kunne ikke arkiveres."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ophæv blokering af nummer"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Tilføj nummer"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Opkald fra disse numre blokeres, og beskeder i telefonsvareren slettes automatisk."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Slå tilladelsen Telefon til for at foretage et opkald."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Opkaldsappen har ikke tilladelse til at ændre systemindstillinger."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokeret"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f1683f6..6f02fad 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Nummer vor Anruf bearbeiten"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Anrufliste löschen"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Mailbox-Nachricht löschen"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Mailbox-Nachricht archivieren"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mailbox gelöscht"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Mailbox-Nachricht archiviert"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"Rückgängig"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ZUM ARCHIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Anrufliste löschen?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Alle Anrufe werden aus deinem Verlauf gelöscht."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Anrufliste wird gelöscht…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Verpasster Anruf"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Verpasster geschäftlicher Anruf"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Verpasste Anrufe"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> verpasste Anrufe"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Zurückrufen"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Neue Mailbox-Nachricht von <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Mailbox-Nachricht-Wiedergabe nicht möglich"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Mailbox-Nachricht wird geladen…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Mailbox-Nachricht wird archiviert…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Laden der Mailbox-Nachricht nicht möglich"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Nur Mailbox-Anrufe"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Nur eingehende Anrufe"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Anrufen"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Keine verpassten Anrufe"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Dein Mailbox-Posteingang ist leer."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Das Archiv für Mailbox-Nachrichten ist leer."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Nur Favoriten anzeigen"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Anrufliste"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archiv für Mailbox-Nachrichten"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Entgangen"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mailbox-Nachrichten"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummern anzeigen"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importieren"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import fehlgeschlagen"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Mailbox-Nachricht nicht archiviert."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blockierung der Nummer aufheben"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer hinzufügen"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Anrufe von diesen Nummern werden blockiert und Mailbox-Nachrichten automatisch gelöscht."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Die App \"Telefon\" ist nicht berechtigt, die Systemeinstellungen zu überschreiben."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blockiert"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9f7a6b2..d42fa6f 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Επεξεργασία αριθμού πριν την κλήση"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Εκκαθάριση ιστορικού κλήσεων"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Διαγραφή αυτόματου τηλεφωνητή"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Αρχειοθ. μην. αυτόμ. τηλεφων."</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Μήν.αυτ. τηλ. διαγρ."</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Μήν. αυτ. τηλεφ. αρχειοθετήθ."</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ΑΝΑΙΡΕΣΗ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ΜΤΒ ΣΕ ΑΡΧ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Διαγραφή ιστορικού κλήσεων;"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Αυτό θα διαγράψει όλες τις κλήσεις από το ιστορικό σας"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Διαγραφή ιστορικού κλήσεων…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Τηλέφωνο"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Αναπάντητη κλήση"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Αναπάντητη κλήση εργασίας"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Αναπάντητες κλήσεις"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> αναπάντητες κλήσεις"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Επανάκληση"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Νέα μην. αυτ. τηλεφ. από <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Αδύνατη αναπαραγωγή φωνητικού μηνύματος"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Φόρτωση φωνητικών μηνυμάτων…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Αρχειοθέτηση μηνυμ. αυτόμ. τηλεφωνητή…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Αδύνατη φόρτωση φωνητικών μηνυμάτων"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Μόνο κλήσεις με ηχητικά μηνύματα"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Μόνο εισερχόμενες κλήσεις"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Πραγματοποίηση κλήσης"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Δεν υπάρχουν αναπάντητες κλήσεις."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ο φάκελος εισερχομένων του αυτόματου τηλεφωνητή σας είναι κενός."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Δεν υπάρχουν αρχειοθετημένα μηνύματα αυτόματου τηλεφωνητή."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Εμφάνιση μόνο των αγαπημένων"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Ιστορικό κλήσεων"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Αρχειοθετημένα μηνύματα αυτόματου τηλεφωνητή"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Όλα"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητες"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Φωνητικό μήνυμα"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Προβολή αριθμών"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Εισαγωγή"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Αποτυχία εισαγωγής"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Απέτυχε η αρχειοθέτ. μην. αυτόμ. τηλεφ."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Κατάργηση αποκλεισμού αριθμού"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Προσθήκη αριθμού"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Οι κλήσεις από αυτούς τους αριθμούς θα αποκλείονται και τα μηνύματα στον αυτόματο τηλεφωνητή θα διαγράφονται αυτόματα."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Η εφαρμογή \"Τηλέφωνο\" δεν έχει άδεια εγγραφής στις ρυθμίσεις συστήματος."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Αποκλεισμένος"</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 2b09419..f4bd35a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archive voicemail"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Voicemail archived"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"TO ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telephone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Missed call"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Missed work call"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Missed calls"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Call back"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archiving voicemail…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Your voicemail archive is empty."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Voicemail archive"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Failed to archive voicemail."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blocked"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 2b09419..f4bd35a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archive voicemail"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Voicemail archived"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"TO ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telephone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Missed call"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Missed work call"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Missed calls"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Call back"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archiving voicemail…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Your voicemail archive is empty."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Voicemail archive"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Failed to archive voicemail."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blocked"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 2b09419..f4bd35a 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archive voicemail"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Voicemail archived"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"TO ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telephone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Missed call"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Missed work call"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Missed calls"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Call back"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archiving voicemail…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Your voicemail archive is empty."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Voicemail archive"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Failed to archive voicemail."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blocked"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 7078e45..90bbce1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de realizar llamada"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Eliminar el historial de llamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Borrar buzón de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archivar un mensaje de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Buzón de voz borrado"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Se archivó el mensaje de voz"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESHACER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"IR ARCHIVO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"¿Eliminar el historial de llamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se eliminarán todas las llamadas del historial."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Eliminando historial de llamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Teléfono"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Llamada perdida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Llamada de trabajo perdida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Llamadas perdidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Llamar"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuevo mensaje de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Error al reproducir el buzón de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando buzón de voz…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivando el mensaje de voz…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Error al cargar el buzón de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo llamadas con buzón de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Solo llamadas entrantes"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hacer una llamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"No tienes llamadas perdidas"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La bandeja de entrada del buzón de voz está vacía."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Tu archivo de mensajes de voz está vacío."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de llamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archivo de mensajes de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Buzón voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"No se pudo archivar el mensaje de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Agregar número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Se bloquearán las llamadas que provengan de estos números y se borrarán los mensajes del buzón de voz de forma automática."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para buscar contactos, activa el permiso Contactos."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para realizar una llamada, activa el permiso Teléfono."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"La aplicación de teléfono no tiene permiso para modificar la configuración del sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 730b963..0f91f38 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de llamar"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Borrar historial de llamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar mensaje de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archivar mensaje de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Buzón voz eliminado"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Mensaje de voz archivado"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESHACER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"IR A ARCHIVO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"¿Borrar historial de llamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se eliminarán todas las llamadas del historial."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Borrando historial de llamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Teléfono"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Llamada perdida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Llamada de trabajo perdida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Llamadas perdidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Llamar"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuevo mensaje de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Error al reproducir el buzón de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando buzón de voz…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivando el mensaje de voz…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Error al cargar el buzón de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo llamadas con mensajes de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Solo llamadas entrantes"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hacer una llamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"No tienes llamadas perdidas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La bandeja de entrada del buzón de voz está vacía."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Tu archivo de mensajes de voz está vacío."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de llamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archivo de mensajes de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mensaje de voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"No se ha podido archivar mensaje de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Añadir número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Se bloquearán las llamadas de estos números y se eliminarán los mensajes del buzón de voz automáticamente."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"La aplicación Teléfono no tiene permiso para editar los ajustes del sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 516316d..908d403 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Muuda enne helistamist numbrit"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Kustuta kõneajalugu"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Kustuta kõnepost"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Kõnepostisõnumi arhiivimine"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Kõnepost kustutati"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Kõnepostisõnum arhiiviti"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VÕTA TAGASI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"AVA ARHIIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Kas kustutada kõneajalugu?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"See kustutab ajaloost kõik kõned"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Kõneajaloo kustutamine ..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Vastamata kõne"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Vastamata kõne töölt"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Vastamata kõned"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastamata kõnet"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Helista tagasi"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Uus kõnepostisõnum kasutajalt <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Kõneposti ei õnnestunud esitada"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Kõneposti laadimine ..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Kõnepostisõnumi arhiivimine …"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kõneposti laadimine ebaõnnestus"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Ainult kõnepostiga kõned"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Ainult sissetulevad kõned"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Helista"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Vastamata kõnesid pole."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kõneposti postkast on tühi."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Teie kõnepostisõnumite arhiiv on tühi."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Kõneajalugu"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Kõnepostisõnumite arhiiv"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Kõnepost"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vaata numbreid"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impordi"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimine ebaõnnestus"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Kõnepostisõnumi arhiivimine ebaõnnestus."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numbri deblokeerimine"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Lisa number"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Kõned nendelt numbritelt blokeeritakse ja kõnepostisõnumid kustutatakse automaatselt."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Helistamiseks lülitage sisse telefoniluba."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonirakendusel pole luba süsteemiseadetesse kirjutada."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokeeritud"</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index dc3674e..67ebec4 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editatu zenbakia deitu aurretik"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Garbitu deien historia"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ezabatu ahots-mezua"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Artxibatu erantzungailua"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ahots-mezua ezabatzea"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Artxibatu da erantzungailua"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESEGIN"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"JOAN ARTXIBORA"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Deien historia garbitu nahi duzu?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Historiako dei guztiak ezabatuko dira"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Deien historia garbitzen…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefonoa"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Dei galdua"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Laneko dei bat galdu duzu"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Dei galduak"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> dei galdu"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Itzuli deia"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> deitzailearen ahots-mezu berria"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Ezin izan dira erreproduzitu ahots-mezuak"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Erantzungailua kargatzen…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Erantzungailua artxibatzen…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ezin izan da kargatu erantzungailua"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Erantzungailuko deiak soilik"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Sarrerako deiak soilik"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Deitu"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Ez duzu galdutako deirik."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hutsik dago erantzungailuaren sarrerako ontzia."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Erantzungailuen artxiboa hutsik dago."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Erakutsi gogokoak soilik"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Deien historia"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Erantzungailuen artxiboa"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Guztiak"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Galduak"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Erantzungailuko deiak"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ikusi zenbakiak"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Inportatu"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ezin izan da inportatu"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Ezin izan da artxibatu erantzungailua."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desblokeatu zenbakia"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Gehitu zenbakia"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Zenbaki hauetatik jasotzen diren deiak blokeatu egingo dira, eta mezuak automatikoki ezabatuko dira erantzungailutik."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonoaren aplikazioak ez du baimenik sistemaren ezarpenetan ezer idazteko."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokeatuta"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6fee3bd..4f376ec 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ویرایش شماره قبل از تماس"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"پاک کردن سابقه تماس"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"حذف پست صوتی"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"بایگانی پست صوتی"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"پست صوتی حذف شد"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"پست صوتی بایگانی شد"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"واگرد"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"رفتن به بایگانی"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"سابقه تماس پاک شود؟"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"این کار همه تماس‌ها را از سابقه شما حذف می‌کند"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"در حال پاک کردن سابقه تماس..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"تلفن"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"تماس بی‌پاسخ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"تماس کاری بی‌پاسخ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"تماس‌های بی‌پاسخ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> تماس بی‌پاسخ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"پاسخ تماس"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"پست صوتی جدید از <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"پست صوتی پخش نشد"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"در حال بارگیری پست صوتی..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"در حال بایگانی کردن پست صوتی..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"پست صوتی بارگیری نشد"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"فقط تماس‌های دارای پست صوتی"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"فقط تماس‌های دریافتی"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"برقراری تماس تلفنی"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"تماس از دست رفته‌ای ندارید."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"صندوق پست صوتی‌تان خالی است."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"بایگانی پست صوتی خالی است."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"فقط نمایش موارد دلخواه"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"سابقه تماس"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"بایگانی پست صوتی"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"همه موارد"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"بی‌پاسخ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"پست صوتی"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"مشاهده شماره‌ها"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"وارد کردن"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"وارد کردن انجام نشد"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"پست صوتی بایگانی نشد."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"گشودن شماره"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"افزودن شماره"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"تماس‌‌ها از این شماره‌ها مسدود می‌شود و پست‌‌های صوتی به‌طور خودکار حذف می‌شود."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"برنامه تلفن اجازه نوشتن در تنظیمات سیستم را ندارد."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"مسدودشده"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index e132146..c8a0346 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Muokkaa numeroa ennen puhelua"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Tyhjennä soittohistoria"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Poista vastaajaviesti"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkistoi vastaajaviesti"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Viesti poistettiin."</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Vastaajaviesti arkistoitiin."</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"KUMOA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARKISTOON"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Tyhjennetäänkö soittohistoria?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Kaikki soittohistorian tiedot poistetaan"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Tyhjennetään soittohistoriaa…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Puhelin"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Vastaamaton puhelu"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Vastaamaton työpuhelu"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Vastaamattomat puhelut"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastaamatonta puhelua"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Soita takaisin"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Uusi vastaajaviesti: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Viestin toistaminen epäonnistui"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Ladataan puhelinvastaajaa…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arkistoidaan vastaajaviestiä…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Puhelinvastaajan lataaminen epäonnistui"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Vain vastaajaan menneet puhelut"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Vain saapuvat puhelut"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Soita puhelu"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Sinulla ei ole vastaamattomia puheluita."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Puhelinvastaajasi postilaatikko on tyhjä."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Vastaaja-arkisto on tyhjä."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Näytä vain suosikit"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Soittohistoria"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arkistoidut vastaajaviestit"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Kaikki"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Vastaamattomat"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Vastaaja"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Näytä numerot"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Tuo"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Tuonti epäonnistui."</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Vastaajaviestin arkistointi epäonnistui."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Poista numeron esto"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Lisää numero"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Näistä numeroista tulevat puhelut estetään, ja vastaajaviestit poistetaan automaattisesti."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Puhelinsovelluksella ei ole oikeutta muokata järjestelmän asetuksia."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Estetyt"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index b9a6232..1ce1f94 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifier le numéro avant l\'appel"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Effacer l\'historique des appels"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Supprimer le message vocal"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archiver les messages vocaux"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mess. vocal supprimé"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Messages vocaux archivés"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Effacer l\'historique des appels?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tous les appels seront supprimés de votre historique."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Suppression historique des appels…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Téléphone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Appel manqué"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Appel professionnel manqué"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Appels manqués"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Rappeler"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nouveau message vocal de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Impossible de lire le message vocal"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Chargement du message vocal en cours…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivage des messages vocaux en cours…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossible de charger la messagerie vocale"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Seulement les appels avec message vocal"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Seulement les appels entrants"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Faire un appel"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Vous n\'avez aucun appel manqué."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La boîte de réception de votre messagerie vocale est vide."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Votre archive de messages vocaux est vide."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts favoris uniquement"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historique des appels"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archive des messages vocaux"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. voc."</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec de l\'importation"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Échec de l\'archivage des messages vocaux"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Les appels provenant de ces numéros seront bloqués et les messages vocaux seront automatiquement supprimés."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Pour faire un appel, activez l\'autorisation Téléphone."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'application Téléphone n\'est pas autorisée à modifier les paramètres du système."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqué"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 04f94b2..101ff01 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifier le numéro avant de passer l\'appel"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Supprimer l\'historique des appels"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Supprimer le message vocal"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archiver le message vocal"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mess. vocal supprimé"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Message vocal archivé"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ACCÉDER À L\'ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Supprimer l\'historique des appels ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tous les appels seront supprimés de votre historique."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Suppression historique des appels…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Téléphoner"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Appel manqué"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Appel professionnel manqué"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Appels manqués"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Rappeler"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nouveau message vocal de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Impossible de lire le message vocal."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Chargement du message vocal en cours…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivage du message vocal…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossible de charger le message vocal."</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Seulement les appels avec message vocal"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Seulement les appels entrants"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Passer un appel"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Vous n\'avez aucun appel manqué."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La boîte de réception de la messagerie vocale est vide."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"L\'archive de messages vocaux est vide."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts ajoutés aux favoris uniquement"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historique des appels"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archive de messages vocaux"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. vocale"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec lors de l\'importation."</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Échec de l\'archivage du message vocal."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Les appels associés à ces numéros seront bloqués, et les messages vocaux seront automatiquement supprimés."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Pour passer un appel, activez l\'autorisation Téléphone."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'application Téléphone n\'est pas autorisée à modifier les paramètres du système."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqué"</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 23ca8a5..f8e5eb6 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Borrar historial de chamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar correo de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arquivar correo de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correo voz eliminado"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Correo de voz arquivado"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFACER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARQUIVO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Borrar o historial de chamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta acción eliminará todas as chamadas do teu historial"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Borrando historial de chamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Teléfono"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Chamada perdida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Chamada de traballo perdida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Chamadas perdidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Devolver chamada"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Novo correo de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Non se puido reproducir o correo de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando correo de voz…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arquivando correo de voz…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Non se puido cargar o correo de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Só chamadas con correo de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Só chamadas entrantes"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Facer unha chamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Non tes chamadas perdidas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"A caixa de entrada do correo de voz está baleira."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"O teu arquivo de correo de voz está baleiro."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar só os favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de chamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arquivo de correo de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Correo de voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Produciuse un erro na importación"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Erro ao arquivar o correo de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Engadir número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bloquearanse as chamadas destes números e eliminaranse automaticamente os correos de voz."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para facer unha chamada, activa o permiso de Teléfono."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A aplicación Teléfono non ten permiso para modificar a configuración do sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 055ad72..716ab48 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"કૉલ ઇતિહાસ સાફ કરો"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"વૉઇસમેઇલ કાઢી નાખો"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"વૉઇસમેઇલને આર્કાઇવ કરો"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"વૉઇસમેઇલ કાઢી નાખ્યો"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"વૉઇસમેઇલ આર્કાઇવ કર્યો"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"પૂર્વવત્ કરો"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"આર્કાઇવ પર જાઓ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"કૉલ ઇતિહાસ સાફ કરીએ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"આ તમારા ઇતિહાસમાંથી તમામ કૉલ્સ કાઢી નાખશે"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"કૉલ ઇતિહાસ સાફ કરી રહ્યાં છે…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ફોન"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"છૂટેલો કૉલ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"ચૂકી ગયેલ કાર્ય કૉલ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"છૂટેલા કૉલ્સ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> છૂટેલા કૉલ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"કૉલ બૅક કરો"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> તરફથી નવો વૉઇસમેઇલ."</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"વૉઇસમેઇલ ચલાવી શકાઈ નથી"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"વૉઇસમેઇલ લોડ કરી રહ્યું છે…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"વૉઇસમેઇલને આર્કાઇવ કરી રહ્યાં છે…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"વૉઇસમેઇલ લોડ કરી શકાઈ નથી"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"ફક્ત વૉઇસમેઇલ સાથેના કૉલ્સ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ફક્ત ઇનકમિંગ કૉલ્સ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"એક કૉલ કરો"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"તમારી પાસે કોઇ છૂટેલાં કૉલ્સ નથી."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"તમારું વૉઇસમેઇલ ઇનબોક્સ ખાલી છે."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"તમારું વૉઇસમેઇલ આર્કાઇવ ખાલી છે."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ફક્ત મનપસંદ બતાવો"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"કૉલ ઇતિહાસ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"વૉઇસમેઇલ આર્કાઇવ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"તમામ"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"છૂટેલ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"વૉઇસમેઇલ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"સંખ્યા જુઓ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"આયાત કરો"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"આયાત નિષ્ફળ થયું"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"વૉઇસમેઇલને આર્કાઇવ કરવામાં નિષ્ફળ થયાં."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"નંબર અનાવરોધિત કરો"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"નંબર ઉમેરો"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"આ નંબરથી આવનારા કૉલ્સ અવરોધિત કરવામાં આવશે અને વૉઇસમેઇલ્સ આપમેળે કાઢી નાખવામાં આવશે."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ફોન એપ્લિકેશનને સિસ્ટમ સેટિંગ્સ પર લખવાની પરવાનગી નથી."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"અવરોધિત"</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 241480d..296d4ba 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"कॉल करने से पहले नंबर संपादित करें"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"कॉल इतिहास साफ़ करें"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"वॉइसमेल हटाएं"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"वॉइसमेल संग्रहीत करें"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"वॉइसमेल हटाया गया"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"वॉइसमेल संग्रहीत किया गया"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"वापस लाएं"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"संग्रह पर जाएं"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कॉल इतिहास साफ़ करें?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"इससे आपके इतिहास से सभी कॉल हटा दिए जाएंगे"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"कॉल इतिहास साफ़ किया जा रहा है…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"फ़ोन"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"छूटा कॉल"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"कार्यस्थल का छूटा हुआ कॉल"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"छूटे कॉल"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छूटे कॉल"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"वापस कॉल करें"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> की ओर से नया ध्‍वनिमेल"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"वॉइसमेल नहीं चलाया जा सका"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"वॉइसमेल लोड हो रहा है…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"वॉइसमेल संग्रहीत किया जा रहा है…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"वॉइसमेल लोड नहीं किया जा सका"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"केवल वॉयस मेल वाले कॉल"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"केवल इनकमिंग कॉल"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"कॉल करें"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"आपके पास कोई भी छूटा हुआ कॉल नहीं है."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"आपका वॉइसमेल इनबाॅक्‍स खाली है."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"आपका वॉइसमेल संग्रह खाली है."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"केवल पसंदीदा दिखाएं"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"कॉल इतिहास"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"वॉइसमेल संग्रह"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"वॉयस मेल"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर देखें"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करें"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात करना विफल रहा"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"वॉइसमेल संग्रहीत नहीं कर सके."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनवरोधित करें"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोड़ें"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"इन नंबर से आने वाले कॉल अवरुद्ध कर दिए जाएंगे और वॉइसमेल अपने आप हटा दिए जाएंगे."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"फ़ोन ऐप को सिस्टम सेटिंग में लिखने की अनुमति नहीं है."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"अवरोधित"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 7dc1ec2..7069bcd 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Uredi broj prije pozivanja"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Izbriši povijest poziva"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Izbriši govornu poštu"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arhiviranje govorne pošte"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Gov. pošta izbrisana"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Govorna pošta je arhivirana"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"PONIŠTI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"IDI NA ARHIVIRANO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite li izbrisati povijest poziva?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Izbrisat će se svi pozivi iz vaše povijesti"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Brisanje povijesti poziva…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Propušteni poziv"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Propušten poslovni poziv"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Propušteni pozivi"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Propušteni pozivi (<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>)"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Uzvrati poziv"</string>
@@ -55,6 +59,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova govorna pošta od kontakta <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nije moguće reproducirati govornu poštu"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Učitavanje govorne pošte…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arhiviranje govorne pošte..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Govorna pošta nije učitana"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo pozivi s govornom poštom"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dolazni pozivi"</string>
@@ -148,8 +153,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Uputite poziv"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemate propuštene pozive."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Nemate pristiglih poruka govorne pošte."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arhiv govorne pošte je prazan."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo favorite"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Povijest poziva"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arhivirana govorna pošta"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Sve"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Gov. pošta"</string>
@@ -236,6 +243,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspio"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Arhiviranje govorne pošte nije uspjelo."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiranje broja"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Pozivi s tih brojeva blokirat će se, a govorna pošta automatski će se brisati."</string>
@@ -255,4 +263,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nema dopuštenje za pisanje u postavke sustava."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokirano"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index cb741a3e..3fdf6ba 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Szám szerkesztése hívás előtt"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"A híváslista törlése"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Hangposta törlése"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Hangpostaüzenet archiválása"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hangposta törölve"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Hangpostaüzenet archiválva"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VISSZAVONÁS"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARCHÍVUM"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Törli a híváslistát?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ezzel törli az összes hívást az előzmények közül"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Híváslista törlése…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefonhívás"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Elmulasztott hívás"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Nem fogadott munkahelyi hívás"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Elmulasztott hívások"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> elmulasztott hívás"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Visszahívás"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Új hangüzenet tőle: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nem sikerült lejátszani a hangpostát"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Hangposta betöltése…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Hangpostaüzenet archiválása…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nem sikerült betölteni a hangpostát"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Csak hangpostahívások"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Csak bejövő hívások"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hívásindítás"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nincsenek nem fogadott hívások."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hangpostafiókjában nincsenek beérkezett üzenetek."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"A hangpostaüzenet-archívum üres."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Csak kedvencek megjelenítése"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Híváslista"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Hangpostaüzenet-archívum"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Összes"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Nem fogadott"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Hangposta"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Számok megtekintése"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importálás"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Az importálás nem sikerült"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Sikertelen hangpostaüzenet-archiválás."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Szám tiltásának feloldása"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Szám hozzáadása"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Az ezekről a számokról érkező hívásokat a rendszer letiltja, továbbá automatikusan törli az onnan érkező hangpostaüzeneteket is."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A Telefon alkalmazásnak nincs engedélye szerkeszteni a rendszerbeállításokat."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Letiltva"</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 254dd73..eba9ae9 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Խմբագրել համարը զանգելուց առաջ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Ջնջել զանգերի պատմությունը"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ջնջել ձայնային փոստը"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Արխիվացնել ձայնային փոստը"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ձայնային փոստը ջնջվեց"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Ձայնային փոստն արխիվացվեց"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ՀԵՏԱՐԿԵԼ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ԱՆՑՆԵԼ ԱՐԽԻՎ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Մաքրե՞լ զանգերի պատմությունը:"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Այս գործողությունը ամբողջովին կջնջի զանգերի պատմությունը"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Զանգերի պատմության մաքրում…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Հեռախոս"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Բաց թողնված զանգ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Բաց թողնված աշխատանքային զանգ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Բաց թողնված զանգեր"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> բաց թողնված զանգ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Հետ զանգել"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Նոր ձայնային փոստ <xliff:g id="CALLER">%1$s</xliff:g>-ից"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Հաղորդագրությունը չհաջողվեց նվագարկել"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Ձայնային հաղորդագրության բեռնում…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Ձայնային փոստի արխիվացում…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Հաղորդագրությունը չհաջողվեց բեռնել"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Միայն ձայնային փոստով զանգերը"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Միայն մուտքային զանգեր"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Զանգահարել"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Բաց թողած զանգեր չունեք:"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ձայնային փոստի մուտքի արկղը դատարկ է:"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Ձեր ձայնային փոստի արխիվը դատարկ է:"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Զանգերի պատմությունը"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Ձայնային փոստի արխիվ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Ձայնափոստ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Կոնտակտների թիվը"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ներմուծում"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ներմուծումը չհաջողվեց"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Չհաջողվեց արխիվացնել ձայնային փոստը:"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Արգելաբացել համարը"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Ավելացնել համար"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Այս համարներից զանգերը կարգելափակվեն, իսկ ձայնային փոստի հաղորդագրություններն ավտոմատ կերպով կջնջվեն:"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Հեռախոս հավելվածը համակարգի կարգավորումները գրելու թույլտվություն չունի:"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Արգելափակված"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 91a4661..20ea762 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit nomor sebelum memanggil"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Hapus riwayat panggilan"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Hapus pesan suara"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arsipkan pesan suara"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Pesan suara dihapus"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Pesan suara diarsipkan"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"URUNGKAN"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"BUKA ARSIP"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Hapus riwayat panggilan?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tindakan ini akan menghapus semua panggilan telepon dari riwayat"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Menghapus riwayat panggilan..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telepon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Panggilan tak terjawab"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Panggilan tak terjawab di telepon kerja"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Panggilan tak terjawab"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan tak terjawab"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Telepon balik"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Pesan suara baru dari <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Tidak dapat memutar pesan suara"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Memuat pesan suara..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Mengarsipkan pesan suara…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Tidak dapat memuat pesan suara"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Hanya panggilan dengan pesan suara"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Hanya panggilan masuk"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Lakukan panggilan telepon"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Tidak ada panggilan yang tidak terjawab."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kotak masuk pesan suara kosong."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arsip pesan suara Anda kosong."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Hanya tampilkan favorit"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Riwayat Panggilan"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arsip Pesan Suara"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Tak Dijawab"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"PesanSuara"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat Nomor"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impor"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Impor gagal"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Gagal mengarsipkan pesan suara."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bebaskan nomor"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Tambahkan nomor"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Panggilan telepon dari nomor ini akan diblokir dan pesan suara akan dihapus secara otomatis."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Untuk melakukan panggilan, aktifkan izin Telepon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikasi telepon tidak memiliki izin untuk menulis ke setelan sistem."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Diblokir"</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 113b260..2fb9311 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Breyta númeri áður en hringt er"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Hreinsa símtalaferil"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eyða talhólfsskilaboðum"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Setja talhólfsskilaboð í geymslu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Talhólfi eytt"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Talhólfsskilaboð sett í geymslu"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"AFTURKALLA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"FARA Í GEYMSLU"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Hreinsa símtalaferil?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Þetta eyðir öllum símtölum af ferlinum"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Hreinsar símtalaferil…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Sími"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Ósvarað símtal"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Ósvarað vinnusímtal"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Ósvöruð símtöl"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ósvöruð símtöl"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Hringja til baka"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Ný talhólfsskilaboð frá <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Ekki tókst að spila talhólfsskilaboð"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Hleður talhólfsskilaboð…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Setur talhólfsskilaboð í geymslu..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ekki tókst að hlaða talhólfsskilaboð"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Símtöl með talhólfi eingöngu"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Móttekin símtöl eingöngu"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hringja símtal"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Þú ert ekki með nein ósvöruð símtöl."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Talhólfið þitt er tómt."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Talhólfsskilaboðageymslan er tóm."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Sýna aðeins uppáhaldstengiliði"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Símtalaferill"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Geymsla talhólfsskilaboða"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Allt"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Ósvöruð"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Talhólf"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skoða tölur"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Flytja inn"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Innflutningur mistókst"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Ekki tókst að setja talhólfsskilaboð í geymslu."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Taka númer af bannlista"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Bæta númeri við"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Lokað verður fyrir símtöl frá þessum númerum og talhólfsskilaboðum sjálfkrafa eytt."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Kveiktu á heimild símaforritsins til að hringja símtal."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Símaforritið hefur ekki heimild til að breyta kerfisstillingum."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Á bannlista"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index db53b53..ba549a5 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifica numero prima di effettuare la chiamata"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Cancella cronologia chiamate"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Elimina messaggi della segreteria"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archivia messaggio vocale"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mes vocali eliminati"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Messaggio vocale archivato"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULLA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"VAI AL\'ARCHIVIO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Cancellare la cronologia chiamate?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Verranno eliminate tutte le chiamate dalla cronologia"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Cancellazione cronologia chiamate…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefono"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Chiamata senza risposta"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Chiamata di lavoro persa"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Chiamate senza risposta"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chiamate senza risposta"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Richiama"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuovo messaggio vocale da <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Impossibile riprodurre i messaggi vocali"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Caricamento dei messaggi vocali…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archiviazione messaggio vocale…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossibile caricare i messaggi vocali"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo chiamate con segreteria"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Solo chiamate in arrivo"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fai una chiamata"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nessuna chiamata senza risposta."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La segreteria è vuota."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"L\'archivio dei messaggi vocali è vuoto."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostra solo i preferiti"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Cronologia chiamate"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archivio messaggi vocali"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Tutte"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perse"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Segreteria"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visualizza numeri"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importazione non riuscita"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Impossibile archiviare messaggio vocale."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Sblocca numero"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Aggiungi numero"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Le chiamate da questi numeri verranno bloccate e i messaggi in segreteria verranno automaticamente eliminati."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'app Telefono non dispone dell\'autorizzazione per modificare le impostazioni di sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloccato"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 240f9a0..3abfdd2 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ערוך את המספר לפני השיחה"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"נקה את היסטוריית השיחות"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"מחק דואר קולי"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"העברת דואר קולי לארכיון"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"דואר קולי נמחק"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"הדואר הקולי הועבר לארכיון"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"בטל"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"לארכיון"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"האם לנקות את היסטוריית השיחות?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"פעולה זו תמחק את כל השיחות מההיסטוריה שלך"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"מנקה היסטוריית שיחות…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"טלפון"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"שיחה שלא נענתה"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"שיחה עסקית שלא נענתה"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"שיחות שלא נענו"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> שיחות שלא נענו"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"התקשר חזרה"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"דואר קולי חדש מאת <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"לא ניתן היה להשמיע דואר קולי"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"טוען דואר קולי…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"מעביר את הדואר הקולי לארכיון..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"לא ניתן היה לטעון דואר קולי"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"שיחות עם דואר קולי בלבד"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"שיחות נכנסות בלבד"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"התקשר"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"אין שיחות שלא נענו."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"תיבת הדואר הקולי ריקה."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"הארכיון של הדואר הקולי ריק."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"הצג מועדפים בלבד"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"היסטוריית שיחות"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"הארכיון של הדואר הקולי"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"הכל"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"שיחה שלא נענתה"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"דואר קולי"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"הצג מספרים"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"יבא"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"הייבוא נכשל"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"העברת הדואר הקולי לארכיון נכשלה."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"בטל חסימת מספר"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"הוסף מספר"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"שיחות ממספרים אלה ייחסמו והודעות דואר קולי יימחקו באופן אוטומטי."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"לאפליקציית הטלפון אין הרשאה לכתוב בהגדרות המערכת."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"חסום"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 753eb38..d012e43 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"発信前に番号を編集"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"通話履歴を消去"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ボイスメールを削除"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ボイスメールをアーカイブする"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ボイスメールの削除"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ボイスメールをアーカイブしました"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"元に戻す"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"アーカイブ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"通話履歴を消去しますか？"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"消去すると、すべての通話が履歴から削除されます"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"通話履歴の消去中…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"電話"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"不在着信"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"仕事の通話の不在着信"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"不在着信"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"不在着信 <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 件"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"折り返す"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>から新着ボイスメール"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ボイスメールを再生できませんでした"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ボイスメールを読み込んでいます…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ボイスメールをアーカイブしています…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ボイスメールを読み込めませんでした"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"ボイスメールのある着信のみ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"着信のみ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"発信"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"不在着信はありません。"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ボイスメール受信トレイは空です。"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ボイスメールのアーカイブが空です。"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"お気に入りのみを表示"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"通話履歴"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ボイスメールのアーカイブ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"すべて"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"不在着信"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ボイスメール"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"番号を表示"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"インポート"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"インポートに失敗しました"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ボイスメールをアーカイブできませんでした。"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"番号のブロックを解除"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"電話番号を追加"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"この番号からの着信はブロックされ、ボイスメールは自動的に削除されます。"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"電話をかけるには、電話権限をONにしてください。"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"電話アプリにはシステム設定への書き込み権限がありません。"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ブロック済み"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 7e51483..7dc4201 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ნომრის რედაქტირება დარეკვამდე"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"საუბრის ისტორიის გასუფთავება"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ხმოვანი ფოსტის წაშლა"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ხმოვანი ფოსტის დაარქივება"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ხმოვანი ფოსტა წაიშალა"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ხმოვანი ფოსტა დაარქივებულია"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"დაბრუნება"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"არქივი"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"გასუფთავდეს ზარის ისტორია?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ეს წაშლის ყველა ზარს თქვენი ისტორიიდან"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"მიმდ. ზარ. ისტ. გასუფთავება…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"დარეკვა"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"გამოტოვებული ზარი"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"გამოტოვებული ზარი (სამსახური)"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"გამოტოვებული ზარები"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> გამოტოვებული ზარი"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"გადარეკვა"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ახალი ხმოვანი ფოსტა <xliff:g id="CALLER">%1$s</xliff:g>-ისგან"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ვერ ხორციელდება ხმოვანი ფოსტა ჩართვა"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ხმოვანი ფოსტა იტვირთება…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ხმოვანი ფოსტის დაარქივება…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ვერ ხორციელდება ხმოვანი ფოსტის ჩატვირთვა"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"მხოლოდ ზარები ხმოვანი ფოსტით"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"მხოლოდ შემომავალი ზარები"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"დარეკვა"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"გამოტოვებული ზარები არ გაქვთ."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"თქვენი ხმოვანი ელფოსტის შემოსულები ცარიელია."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"თქვენი ხმოვანი ფოსტის არქივი ცარიელია."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"საუბრის ისტორია"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ხმოვანი ფოსტის არქივი"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ხმოვანი ფოსტა"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ნომრების ნახვა"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"იმპორტი"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"იმპორტი ვერ მოხერხდა"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ხმოვანი ფოსტის დაარქივება ვერ მოხერხდა."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ნომრის განბლოკვა"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"ნომრის დამატება"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ამ ნომრებიდან შემოსული ზარები დაიბლოკება, ხოლო ხმოვანი ფოსტა ავტომატურად წაიშლება."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ტელეფონის აპს სისტემის პარამეტრებში ჩაწერის ნებართვა არ აქვს."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"დაბლოკილი"</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 95fd9c7..94cfaa8 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Қоңырау алдында нөмірді өзгерту"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Қоңыраулар тарихын тазалау"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Дауыстық хабарды жою"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Дауыстық поштаны мұрағаттау"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Дауыстық хабар жойылды"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Дауыстық пошта мұрағатталды"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"КЕРІ ҚАЙТАРУ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"МҰР-ҚА ӨТУ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Қоңыраулар тарихын тазалау керек пе?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Бұл тарихтан барлық қоңырауларды жояды"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Қоңыраулар тарихы тазалануда…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Телефон"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Өткізіп алған қоңырау"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Өткізіп алынған жұмыс қоңырауы"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Қабылданбаған қоңыраулар"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> өткізіп алған қоңырау"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Кері қоңырау шалу"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> жіберген жаңа дауыс-хабар"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Дауыстық хабарды ойнату мүмкін болмады"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Дауыстық хабар жүктелуде…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Дауыстық пошта мұрағатталуда…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Дауыстық хабарды жүктеу мүмкін болмады"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Дауыс хабары бар қоңыраулар ғана"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Келген қоңыраулар ғана"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Қоңырау шалу"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Қабылданбаған қоңырауларды жоқ."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Дауыстық поштаның \"Кіріс\" қалтасы бос."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Дауыстық пошта мұрағатыңыз бос."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Сүйіктілерді ғана көрсету"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Қоңыраулар тарихы"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Дауыстық пошта мұрағаты"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Барлық"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Қабылданбаған"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Дауыстық хабар"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Нөмірлерді көру"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттау"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттау сәтсіз аяқталды"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Дауыстық пошта мұрағатталған жоқ."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Нөмірді бөгеуден шығару"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Нөмір қосу"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Осы нөмірлерден қоңыраулар бөгеледі және дауыстық хабарлар автоматты түрде жойылады."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Телефон қолданбасында жүйелік параметрлерге жазуға рұқсат жоқ."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Бөгелген"</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index d0a3447..5aaa0d4 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"កែ​លេខ​មុន​ពេល​ហៅ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ជម្រះប្រវត្តិហៅ"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"លុប​សារ​ជា​សំឡេង"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"រក្សាទុក​សារ​ជាសំឡេង​ក្នុង​ប័ណ្ណសារ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"បានលុបសារសម្លេង"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"បាន​រក្សាទុក​សារ​ជាសំឡេង​ក្នុង​ប័ណ្ណសារ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"​មិន​ធ្វើវិញ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ទៅ​កាន់​ប័ណ្ណសារ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ជម្រះប្រវត្តិហៅ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"វានឹងលុបការហៅទាំងអស់ចេញពីប្រវត្តិរបស់អ្នក"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"កំពុងជម្រះប្រវត្តិហៅ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ទូរស័ព្ទ"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"ខកខាន​ទទួល"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"បានខកខានការហៅចូលពីកន្លែងការងារ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"ខកខាន​ទទួល"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"ខកខានទទួល <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ដង"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ហៅ​ទៅ​វិញ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"សារ​ជា​សំឡេង​ថ្មី​ពី <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"មិនអាចចាក់សារជាសម្លេងបានទេ"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"កំពុងផ្ទុកសារជាសម្លេង…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"កំពុង​​រក្សាទុក​សារ​ជាសំឡេង​ក្នុង​ប័ណ្ណសារ..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"មិនអាចផ្ទុកសារជាសម្លេងបានទេ"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"តែ​ការ​ហៅ​ជា​សារ​សំឡេង"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"តែ​ការ​ហៅ​ចូល"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ហៅទូរស័ព្ទ"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"អ្នកមិនមានការខកខានទទួលទូរស័ព្ទទេ។"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ប្រអប់ទទួលសារជាសំឡេងរបស់អ្នកទទេ។"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"បណ្ណសារជាសំឡេងរបស់អ្នកគឺទទេ។"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញ​តែ​​និយម​ប្រើ​ប៉ុណ្ណោះ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ប្រវត្តិហៅ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"បណ្ណសារសារជាសំឡេង"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ទាំង​អស់"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខាន​ទទួល"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"សារ​ជា​សំឡេង"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"មើលលេខ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"នាំចូល"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ការនាំចូលបានបរាជ័យ"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"បាន​បរាជ័យ​រក្សាទុក​សារជាសំឡេង​ក្នុង​ប័ណ្ណសារ។"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ឈប់ទប់ស្កាត់លេខ"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"បន្ថែមលេខ"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ការហៅចេញពីលេខទាំងនេះនឹងត្រូវបានរារាំង ហើយសារជាសំឡេងនឹងត្រូវបានលុបដោយស្វ័យប្រវត្តិ។"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"កម្មវិធីទូរស័ព្ទមិនមានសិទ្ធិអនុញ្ញាតដើម្បីសរសេរការកំណត់ប្រព័ន្ធទេ។"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"បានរារាំង"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 699c09f..a9342ca 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಿ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ಧ್ವನಿಮೇಲ್‌ ಅಳಿಸಿ"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್ ಮಾಡಿ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ಧ್ವನಿಮೇಲ್ ಅಳಿಸಲಾಗಿದೆ"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ರದ್ದುಮಾಡು"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ಆರ್ಕೈವ್‌ಗೆ ಹೋಗು"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ಇದು ನಿಮ್ಮ ಇತಿಹಾಸದಿಂದ ಎಲ್ಲಾ ಕರೆಗಳನ್ನು ಅಳಿಸುತ್ತದೆ"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ಫೋನ್"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"ತಪ್ಪಿದ ಕರೆ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"ತಪ್ಪಿದ ಕೆಲಸದ ಕರೆ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"ತಪ್ಪಿದ ಕರೆಗಳು"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ತಪ್ಪಿದ ಕರೆಗಳು"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ಮರಳಿ ಕರೆ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ಇವರಿಂದ ಹೊಸ ಧ್ವನಿಮೇಲ್‌"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ಧ್ವನಿಮೇಲ್‌ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ಧ್ವನಿಮೇಲ್‌ ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"ಧ್ವನಿಮೇಲ್‌ ಕರೆಗಳು ಮಾತ್ರ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ಒಳಬರುವ ಕರೆಗಳು ಮಾತ್ರ"</string>
@@ -148,8 +153,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ಕರೆ ಮಾಡಿ"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ನೀವು ಯಾವುದೇ ತಪ್ಪಿದ ಕರೆಗಳನ್ನು ಹೊಂದಿಲ್ಲ."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಇನ್‌ಬಾಕ್ಸ್ ಖಾಲಿ ಇದೆ."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್ ಖಾಲಿಯಿದೆ."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ಮೆಚ್ಚಿನವುಗಳನ್ನು ಮಾತ್ರ ತೋರಿಸು"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ಕರೆ ಇತಿಹಾಸ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ಎಲ್ಲಾ ಕರೆಗಳು"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ಮಿಸ್ಡ್‌‌ ಕರೆಗಳು"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ಧ್ವನಿಮೇಲ್"</string>
@@ -235,6 +242,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ಆಮದು ಮಾಡಿ"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ಆಮದು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್‌ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ಈ ಸಂಖ್ಯೆಗಳಿಗೆ ಕರೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಧ್ವನಿಮೇಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
@@ -254,4 +262,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬರೆಯಲು ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ಅನುಮತಿಯನ್ನು ಹೊಂದಿಲ್ಲ."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 8aef9df..005b912 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"통화하기 전에 번호 수정"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"통화 기록 삭제"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"음성사서함 삭제"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"음성사서함 보관처리"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"음성사서함 삭제됨"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"음성사서함 보관처리됨"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"실행취소"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"보관함으로 이동"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"통화 기록을 삭제하시겠습니까?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"모든 통화가 기록에서 삭제됩니다."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"통화 기록을 삭제하는 중…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"전화"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"부재중 전화"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"부재중 업무 통화"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"부재중 전화"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"부재중 전화 <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>통"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"전화 걸기"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>님이 보낸 새 음성사서함"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"음성사서함을 재생할 수 없습니다."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"음성사서함 로드 중…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"음성사서함 보관처리 중…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"음성사서함을 로드할 수 없습니다."</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"음성사서함 메시지만"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"수신 전화만"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"전화 걸기"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"부재중 전화가 없습니다."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"음성사서함 받은편지함이 비어 있습니다."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"음성사서함 보관함이 비어있습니다."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"즐겨찾는 연락처만 표시"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"통화 기록"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"음성사서함 보관함"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"전체"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"부재중 전화"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"음성사서함"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"개수 보기"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"가져오기"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"가져오지 못했습니다."</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"음성사서함을 보관처리하지 못했습니다."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"번호 차단 해제"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"번호 추가"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"이러한 번호에서 걸려오는 전화가 차단되며 음성사서함이 자동으로 삭제됩니다."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"전화 앱은 시스템 설정에 쓸 수 있는 권한이 없습니다."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"차단됨"</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index dcf756f..6e35759 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -35,13 +35,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Чалуудан мурун номерди түзөтүү"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Чалуулар таржымалын тазалоо"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Үн почтасын жок кылуу"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Үн каттарын архивдөө"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Үн почтасы жок кылнд"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Үн каттары архивделди"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"КАЙТАРУУ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"АРХИВГЕ БАР"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Чалуулар таржымалы тазалансынбы?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ушуну менен бул таржымалдагы бардык чалуулар жок болот"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Чалуулар таржымалы тазаланууда…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Телефон"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Кабыл алынбаган чалуу"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Кабыл алынбай калган чалуу (жумуш)"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Кабыл алынбаган чалуулар"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> кабыл алынбаган чалуу"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Кайра чалуу"</string>
@@ -55,6 +59,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> жаңы үнкат калтырды"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Үн почтасы ойнолгон жок"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Үн почтасы жүктөлүүдө…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Үн каттарын архивдөө…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Үн почтасы жүктөлгөн жок"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Үнкат чалуулары"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Кириш чалуулар"</string>
@@ -171,8 +176,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Чалуу"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Алынбай калган чалуулар жок."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Үн почтаңыздын келген билдирүүлөр куржуну бош."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Үн каттар архивиңиз ээн."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Тандамалдарды гана көрсөтүү"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Чалуулар таржымалы"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Үн каттар архиви"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Бардыгы"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Өткөзүлгөндөр"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Үнкат"</string>
@@ -258,6 +265,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Номерлерди көрүү"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттоо"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттолбой калды"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Үн каттарын архивдей албай койдук."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Номерди бөгөттөн чыгаруу"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Номер кошуу"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Бул номерлерден келген чалуулар бөгөттөлөт жана үн билдирүүлөрү автоматтык түрдө жок кылынат."</string>
@@ -277,4 +285,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Телефон колдонмосунун Тутум жөндөөлөрүнө жазууга уруксаты жок."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Бөгөттөлгөн"</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 4f8654e..d01d650 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ແກ້ໄຂໝາຍເລກກ່ອນໂທ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ລຶບ​ປະ​ຫວັດ​ການ​ໂທ​"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ລຶບຂໍ້ຄວາມສຽງ"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ຈັດເກັບຂໍ້ຄວາມສຽງເຂົ້າແຟ້ມ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ລຶບ​ຂໍ້​ຄວາມ​ສຽງ​ແລ້ວ"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ຈັດເກັບຂໍ້ຄວາມສຽງເຂົ້າແຟ້ມແລ້ວ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ບໍ່​ເຮັດ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ໄປທີ່ແຟ້ມຈັດເກັບ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ລຶບ​ປະ​ຫວັດ​ການ​ໂທ​ບໍ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ອັນ​ນີ້​ຈະ​ລຶບ​ທຸກ​ສາຍ​ໂທ​ຈາກ​ປະ​ຫວັດ​ຂອງ​ທ່ານ"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ກຳ​ລັງ​ລຶບ​ປະ​ຫວັດ​ການ​ໂທ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ໂທລະສັບ"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"ສາຍບໍ່ໄດ້ຮັບຈາກບ່ອນເຮັດວຽກ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ສາຍບໍ່ໄດ້ຮັບ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ໂທກັບ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ບໍ່ມີຂໍ້ຄວາມສຽງຈາກ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ບໍ່​ສາ​ມາດ​ຫຼິ້ນ​ຂໍ້​ຄວາມ​ສຽງ​ໄດ້"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ກຳ​ລັງ​ໂຫຼດ​ຂໍ້​ຄວາມ​ສຽງ…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ກຳລັງຈັດເກັບຂໍ້ຄວາມສຽງເຂົ້າແຟ້ມ…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ບໍ່​ສາ​ມາດ​ໂຫຼດ​ຂໍ້​ຄວາມ​ສຽງ​ໄດ້"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"ເບີໂທຂໍ້ຄວາມສຽງເທົ່ານັ້ນ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ສາຍໂທເຂົ້າເທົ່ານັ້ນ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"​ໂທ​ອອກ"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ທ່ານ​ມີ​ສາຍ​ບໍ່​ໄດ້​ຮັບ."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ກ່ອງເຂົ້າ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ​ຫວ່າງ​ເປົ່າ."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ແຟ້ມຈັດເກັບຂໍ້ຄວາມສຽງຂອງທ່ານຫວ່າງເປົ່າຢູ່."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ສະ​ແດງ​ສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ປະຫວັດການໂທ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ແຟ້ມຈັດເກັບຂໍ້ຄວາມສຽງ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ຂໍ້ຄວາມສຽງ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ເບິ່ງ​ຕົວ​ເລກ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ນໍາເຂົ້າ"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ນຳ​ເຂົ້າ​ລົ້ມ​ເຫລວ"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ລົ້ມເຫລວໃນການຈັດເກັບຂໍ້ຄວາມສຽງເຂົ້າແຟ້ມ."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"ເພີ່ມໝາຍເລກ"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ການໂທຈາກເບີໂທເຫຼົ່ານີ້ຈະຖືກບລັອກໄວ້ ແລະຂໍ້ຄວາມສຽງຈະຖືກລຶບໂດຍອັດຕະໂນມັດ."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ແອັບໂທລະສັບບໍ່ມີການອະນຸຍາດໃຫ້ຂຽນໃສ່ການຕັ້ງຄ່າລະບົບ."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ບລັອກໄວ້ແລ້ວ"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index a800c14..c60016d 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redaguoti numerį prieš skambinant"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Išvalyti skambučių istoriją"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ištrinti balso pašto pranešim."</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archyvuoti balso pašto pran."</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Balso pšt. ištrintas"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Balso pašto pran. suarchyvuoti"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULIUOTI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"Į ARCHYVĄ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Išvalyti skambučių istoriją?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bus ištrinti visi skambučiai iš istorijos"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Išvaloma skambučių istorija..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefonas"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Praleisti skambučiai"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Praleistas darbo skambutis"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Praleisti skambučiai"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Praleistų skambučių: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Perskambinti"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nauji b. pašto pran. iš <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nepavyko paleisti balso pašto pranešimo"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Įkeliamas balso pašto pranešimas..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archyvuojami balso pašto pranešimai…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nepavyko įkelti balso pašto pranešimo"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Tik skambučiai su balso paštu"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Tik gaunami skambučiai"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Skambinti"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nėra jokių praleistų skambučių."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Balso pašto gautųjų aplankas yra tuščias."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Jūsų balso pašto pranešimų archyvas tuščias."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Rodyti tik mėgstamiausius"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Skambučių istorija"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Balso pašto pranešimų archyvas"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Praleisti"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Balso paštas"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Žr. skaičius"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuoti"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importuoti nepavyko"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Nepavyko suarchyvuoti balso pašto pran."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Panaikinti numerio blokavimą"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Pridėti numerį"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Skambučiai iš šių numerių bus užblokuoti, o balso pašto pranešimai bus automatiškai ištrinti."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefono programa neturi leidimo keisti sistemos nustatymų."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Užblokuota"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index d5a1700..d8bb100 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Rediģēt numuru pirms zvanīšanas"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Dzēst zvanu vēsturi"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Dzēst balss pasta ziņojumu"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arhivēt balss pasta ziņojumu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Balss pasts dzēsts"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Balss pasta ziņojums arhivēts"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ATSAUKT"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"UZ ARHĪVU"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vai dzēst zvanu vēsturi?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tiks dzēsti visi vēsturē saglabātie zvani."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Notiek zvanu vēstures dzēšana…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Tālruņa zvans"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Neatbildēts zvans"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Neatbildēts darba zvans"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Neatbildēti zvani"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> neatbildēti zvani"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Atzvanīt"</string>
@@ -55,6 +59,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Jauns b. pasta ziņ. no: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nevarēja atskaņot balss pasta ziņojumu."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Notiek balss pasta ziņojumu ielāde…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Tiek arhivēts balss pasta ziņojums…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nevarēja ielādēt balss pasta ziņojumu."</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Tikai balss pasta zvani"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Tikai ienākošie zvani"</string>
@@ -148,8 +153,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zvanīt"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Jums nav neatbildētu zvanu."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Jūsu balss pasta iesūtne ir tukša."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Jūsu balss pasta ziņojumu arhīvs ir tukšs."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Rādīt tikai izlasi"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Zvanu vēsture"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Balss pasta ziņojumu arhīvs"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Neatb."</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Balss p."</string>
@@ -236,6 +243,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skatīt numurus"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importēt"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importēšana neizdevās"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Neizdevās arhivēt balss pasta ziņojumu."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Atbloķēt numuru"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Pievienot numuru"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"No šiem numuriem saņemtie zvani tiks bloķēti, un balss pasta ziņojumi tiks automātiski dzēsti."</string>
@@ -255,4 +263,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Tālruņa lietotnei nav atļaujas rakstīt sistēmas iestatījumos."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloķēts"</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 097cca2..8f2f7e7 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Уредете го бројот пред повикот"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Избришете ја историјата на повици"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Избришете ја говорната пошта"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Архивирајте говорна пошта"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гов. пошта е избриш."</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Говорната пошта е архивирана"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ВРАТИ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ДО АРХИВА"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Избришете историја на повици?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ова ќе ги избрише сите повици од историјата"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Се чисти историјата на повици…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Телефон"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Пропуштен повик"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Пропуштен работен повик"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Пропуштени повици"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуштени повици"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Повикај назад"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова говорна пошта од <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Говорната пошта не можеше да се репродуцира"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Се вчитува говорната пошта…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Говорната пошта се архивира…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Говорната пошта не можеше да се вчита"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Само повици со говорна пошта"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Само дојдовни повици"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Повикај"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Немате пропуштени повици."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Приемното сандаче на говорната пошта е празно."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Архивата на говорна пошта е празна."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омилени"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Историја на повици"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Архива на говорна пошта"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Сите"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Говорна пошта"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи броеви"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увези"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз не успеа"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Говорната пошта не успеа да се архивира."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај го бројот"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Повиците од овие броеви ќе се блокираат, а говорната пошта автоматски ќе се брише."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"За да воспоставите повик, вклучете ја дозволата за телефон."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Апликацијата на телефонот нема дозвола да пишува во поставките на системот."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Блокиран"</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index bf2e57e..8659e7e 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"കോൾ ചരിത്രം മായ്‌ക്കുക"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"വോയ്‌സ്മെയിൽ ഇല്ലാതാക്കുക"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"വോയ്‌സ്‌മെയിൽ ആർക്കൈവുചെയ്യുക"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"വോയ്സ്മെയിൽ ഇല്ലാതാക്കി"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"വോയ്‌സ്‌മെയിൽ ആർക്കൈവുചെയ്‌തു"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"പഴയപടിയാക്കുക"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ആർക്കൈവ് ബട്ടണിലേക്ക് പോകുക"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"കോൾ ചരിത്രം മായ്‌ക്കണോ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ഇത് നിങ്ങളുടെ ചരിത്രത്തിൽ നിന്ന് എല്ലാ കോളുകളും ഇല്ലാതാക്കും"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"കോൾ ചരിത്രം മായ്‌ക്കുന്നു..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ഫോൺ"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"മിസ്‌ഡ് കോൾ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"മിസ്ഡ് ഔദ്യോഗിക കോൾ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"തിരിച്ചുവിളിക്കുക"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> എന്നയാളിൽ നിന്നുള്ള പുതിയ വോയ്‌സ്‌മെയിൽ"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"വോയ്‌സ്‌മെയിൽ പ്‌ലേ ചെയ്യാനായില്ല"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"വോയ്‌സ്‌മെയിൽ ലോഡുചെയ്യുന്നു..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"വോയ്‌സ്‌മെയിൽ ആർക്കൈവുചെയ്യുന്നു…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"വോയ്‌സ്‌മെയിൽ ലോഡുചെയ്യാനായില്ല"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"വോയ്‌സ്മെയിൽ ഉള്ള കോളുകൾ മാത്രം"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ഇൻകമിംഗ് കോളുകൾ മാത്രം"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ഒരു കോൾ ചെയ്യുക"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"നിങ്ങൾക്ക് മിസ്‌ഡ് കോളുകളൊന്നുമില്ല."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"നിങ്ങളുടെ വോയ്സ്മെയിൽ ഇൻബോക്സ് ശൂന്യമാണ്."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആർക്കൈവ് ശൂന്യമാണ്."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"പ്രിയപ്പെട്ടവ മാത്രം കാണിക്കുക"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"കോൾ ചരിത്രം"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"വോയ്‌സ്മെയിൽ ആർക്കൈവ്"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"എല്ലാം"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"മിസ്‌ഡ്"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"വോയ്‌സ്‌മെയിൽ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"നമ്പറുകൾ കാണുക"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ഇമ്പോർട്ടുചെയ്യുക"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ഇമ്പോർട്ടുചെയ്യൽ പരാജയപ്പെട്ടു"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"വോയ്‌സ്‌മെയിൽ ആർക്കൈവുചെയ്യാനായില്ല."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"നമ്പർ ചേർക്കുക"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ഈ നമ്പറുകളിൽ നിന്നുള്ള കോളുകൾ ബ്ലോക്കുചെയ്യും, വോയ്സ്മെയിലുകളെ സ്വയമേവ ഇല്ലാതാക്കും."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"സിസ്റ്റം ക്രമീകരണത്തിലേക്ക് എഴുതാൻ ഫോൺ ആപ്പിന് അനുമതിയില്ല."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ബ്ലോക്കുചെയ്തു"</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 6aa6639..a721b4f 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Залгахын өмнө дугаар засах"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Дуудлагын түүхийг устгах уу?"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Дуут шууданг устгах"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Дуут шууданг архивлах"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Дуут шууданг устгасан"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Дуут шууданг архивласан"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"БУЦААХ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"АРХИВ РУУ ОЧИХ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Дуудлагын түүхийг устгах уу?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Энэ нь таны хийсэн бүх дуудлагыг түүхээс устгана."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Дуудлагын түүхийг устгаж байна..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Утас"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Аваагүй дуудлага"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Аваагүй албаны дуудлага"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Аваагүй дуудлага"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> аваагүй дуудлага"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Буцааж залгах"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>-с ирсэн шинэ дуут шуудан"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Дуут шууданг тоглуулж чадсангүй"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Дуут шууданг ачаалж байна..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Дуут шууданг архивлаж байна..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Дуут шууданг ачаалж чадсангүй"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Зөвхөн дуут шуудантай дуудлагуудыг"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Зөвхөн ирсэн дуудлага"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Дуудлага хийх"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Танд аваагүй дуудлага байхгүй байна."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Таны дуут шуудангийн хайрцаг хоосон байна."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Таны дуут шуудангийн архив хоосон байна."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Дуудлагын түүх"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Дуут шуудангийн архив"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Дуут шуудан"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Дугаар харах"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортлох"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортолж чадсангүй"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Дуут шууданг архивлаж чадсангүй."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Дугаар блокноос гаргах"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Дугаар нэмэх"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Эдгээр дугаараас ирэх дуудлагыг блоклож, дуут шууданг автоматаар устгана."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Гар утасны апп-д системийн тохиргоо бичих зөвшөөрөл алга."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Блоклосон"</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 2c5d472..7edab27 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"कॉल इतिहास साफ करा"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"व्हॉइसमेल हटवा"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"व्हॉइसमेलचे संग्रहण करा"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"व्हॉइसमेल आढळले"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"व्हॉइसमेल संग्रहित केले"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"पूर्ववत करा"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"संग्रहणावर जा"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कॉल इतिहास साफ करायचा?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"हे आपल्या कॉल इतिहासातून सर्व कॉल हटवेल"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"कॉल इतिहास साफ करत आहे…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"फोन"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"सुटलेला कॉल"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"कार्याचा कॉल चुकविला"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"सुटलेले कॉल"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> सुटलेले कॉल"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"पुन्हा कॉल करा"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> कडील नवीन व्हॉइसमेल"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"व्हॉइसमेल प्ले करू शकलो नाही"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"व्हॉइसमेल लोड करत आहे…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"व्हॉइसमेल संग्रहित करीत आहे..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"व्हॉइसमेल लोड करू शकलो नाही"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"केवळ व्हॉइसमेल सह कॉल"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"केवळ येणारे कॉल"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"एक कॉल करा"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"आपल्‍याकडे कोणतेही सुटलेले कॉल नाहीत."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"आपला व्हॉइसमेल इनबॉक्स रिक्त आहे."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"आपले व्हॉइसमेल संग्रहण रिक्त आहे."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"केवळ आवडीचे दर्शवा"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"कॉल इतिहास"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"व्हॉइसमेल संग्रहण"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"सर्व"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"सुटलेले"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"व्हॉइसमेल"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर पहा"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करा"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात अयशस्वी झाले"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"व्हॉइसमेल संग्रहित करण्यात अयशस्वी झाले."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनावरोधित करा"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोडा"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"या नंबरवरून केलेले कॉल अवरोधित केले जातील आणि व्हॉइसमेल स्वयंचलितपणे हटविले जातील."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"फोन अॅपला सिस्टीम स‍ेटिंग्जमध्ये लिहिण्याची परवानगी नाही."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"अवरोधित केले"</string>
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 4844e18..941d77e 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit nombor sebelum memanggil"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Kosongkan sejarah panggilan"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Padamkan mel suara"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkibkan mel suara"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mel suara dipadamkan"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Mel suara diarkibkan"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"BUAT ASAL"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"PRG KE ARKIB"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Kosongkan sejarah panggilan?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tindakan ini akan memadamkan semua panggilan daripada sejarah anda"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Mengosongkan sejarah panggilan..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Panggilan terlepas"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Panggilan terlepas daripada tempat kerja"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Panggilan terlepas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan terlepas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Panggil balik"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mel suara baharu daripada <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Tidak dapat memainkan mel suara"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Memuatkan mel suara..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Mengarkib mel suara…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Tidak dapat memuatkan mel suara"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Panggilan dengan mel suara sahaja"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Panggilan masuk sahaja"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Buat panggilan"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Anda tiada panggilan terlepas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Peti masuk mel suara anda kosong."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arkib mel suara anda kosong."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Sejarah Panggilan"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arkib Mel Suara"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mel suara"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat nombor"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Pengimportan gagal"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Gagal mengarkib mel suara."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nyahsekat nombor"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Tambah nombor"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Panggilan daripada nombor ini akan disekat dan mel suara akan dipadamkan secara automatik."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Apl telefon tiada kebenaran untuk menulis ke tetapan sistem."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Disekat"</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index ef9fd3b..b820f11 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"မခေါ်ဆိုမီ နံပါတ်ကိုတည်းဖြတ်ရန်"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ခေါ်ဆိုမှု မှတ်တမ်း ရှင်းရန်"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"အသံပို့စာ အားဖျက်ရန်"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"အသံစာကို သိုလှောင်ထားပါ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"အသံမေးလ် ရှာတွေ့ခဲ့"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"သိုလှောင်ထားသည့် အသံစာ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ပြန်ဖျက်ရန်"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"သိုလှောင်ရုံသို့ သွားပါ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ခေါ်ဆိုမှု မှတ်တမ်းကို ရှင်းပစ်ရမလား?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ဒါက သင့် မှတ်တမ်းထဲက ခေါ်ဆိုမှုများ  အားလုံးကို ဖျက်ပစ်မည်"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ခေါ်ဆိုမှု မှတ်တမ်းကို ရှင်းနေ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ဖုန်း"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"လွတ်သွားသော ခေါ်ဆိုမှု"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"လွတ်သွားသော အလုပ်ဖုန်းခေါ်ဆိုမှု"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"လွတ်သွားသော ခေါ်ဆိုမှုများ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"လွတ်သွားသော ခေါ်ဆိုမှု <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ပြန်ခေါ်ပါ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ဆီမှ အသံစာ အသစ်"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"အသံမေးလ်ကို ဖွင့်မပေးနိုင်ခဲ့"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"အသံမေးလ်ကို တင်ပေးနေ…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"အသံစာတိုကို သိမ်းနေသည်..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"အသံမေးလ်ကို တင်မပေးနိုင်ခဲ့"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"အသံမေးလ်ပါသော အဝင်ခေါ်ဆိုမှုများသာ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"အဝင်ဖုန်းသာ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"သင့်တွင် လွဲသွားသည့်ခေါ်ဆိုမှုများ မရှိပါ။"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"သင့်အသံမေးလ် စာတိုက်ပုံးတွင် ဘာမှမရှိပါ။"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"သင့် အသံစာတို သိုလှောင်ရုံသည် အလွတ်ဖြစ်နေသည်။"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"အနှစ်သက်ဆုံးများသာ ပြပါ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ခေါ်ဆိုမှုသမိုင်း"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"အသံစာ သိုလှောင်ရုံ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"အားလုံး"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"မကိုင်မိလိုက်သော"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"အသံစာ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"နံပါတ်များကို ကြည့်ရန်"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"တင်သွင်းရန်"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"တင်သွင်းမှု မအောင်မြင်ပါ"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"အသံစာတိုကို သိမ်း၍မရပါ။"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"နံပါတ်ကို ဖွင့်မည်"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"နံပါတ် ထည့်သွင်းပါ"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ဤနံပါတ်များမှ ခေါ်ဆိုမှုများကို ပိတ်ဆို့လိုက်မည်ဖြစ်ပြီး အသံမေးလ်များကို အလိုအလျောက် ဖျက်လိုက်ပါမည်။"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ဖုန်း အက်ပ်ဆီတွင် စနစ် ဆက်တင်များသို့ ရေးသားခွင့် မရှိပါ။"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ပိတ်ဆို့ထားသည်"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 93d932c..526fd17 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Endre nummeret før du ringer"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Slett anropsloggen"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Slett talepost"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkivér taleposten"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Taleposten er slettet"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Taleposten ble arkivert"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANGRE"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"GÅ TIL ARKIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vil du slette anropsloggen?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dette sletter alle anrop fra loggen"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Sletter anropsloggen …"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Ring"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Tapt anrop"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Tapt jobbanrop"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Tapte anrop"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> tapte anrop"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Ring tilbake"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nye talemeldinger fra <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Kunne ikke spille av talepost"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Laster inn talepost …"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arkiverer taleposten …"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kunne ikke laste inn taleposten"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Bare anrop som gikk til talepostkasse"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Bare innkommende anrop"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Start en samtale"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har ingen tapte anrop."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Talepostkassen din er tom."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Talepostarkivet ditt er tomt."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Vis bare favoritter"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Anropslogg"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Talepostarkiv"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvart"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Talemeldinger"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeringen mislyktes"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Kunne ikke arkivere taleposten."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Opphev blokkeringen av nummeret"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Legg til nummer"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Anrop fra disse numrene blokkeres, og talepost blir automatisk slettet."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"For å ringe, slå på Telefon-tillatelsen."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonappen har ikke tillatelse til å skrive til systeminnstillinger."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokkert"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 410c658..ff20963 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"कल गर्न अगाडि नम्बर सम्पादन गर्नुहोस्"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"कल इतिहास मेटाउनुहोस्"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"भ्वाइसमेल हटाउनुहोस्"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"भ्वाइस मेलको अभिलेख राख्नुहोस्"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"भ्वाइस मेल मेटाइयो"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"भ्वाइस मेलको अभिलेख राखियो"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"अनडू गर्नुहोस्"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"अभिलेखमा जानुहोस्"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कल इतिहास हटाउने हो?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"यस कार्यले तपाईँको इतिहासबाट सबै कल मेट्नेछ"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"कल इतिहास हाटउँदै..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"फोन"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"छुटेको कल"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"कामबाट आएको छुटेको कल"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"छुटेका कलहरू"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छुटेका कलहरू"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"कल फर्काउने"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> बाट नयाँ भ्वाइसमेल"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"भ्वाइस मेललाई बजाउन सकिएन"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"भ्वाइस मेल लोड हुँदै ..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"भ्वाइस मेलको अभिलेख राख्दै..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"भ्वाइस मेललाई लोड गर्न सकिएन"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"भ्वाइसमेलका साथ मात्र कल गर्नुहोस्"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"आगमन कलहरू मात्र"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"कल गर्नुहोस्"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"तपाईँसँग कुनै पनि छुटेका कलहरू छैनन्।"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"तपाईँको भ्वाइस मेल खाली छ।"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"तपाईंको भ्वाइस मेलको अभिलेख खाली छ।"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"मनपर्ने मात्र देखाउनुहोस्"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"कल इतिहास"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"भ्वाइस मेलको अभिलेख"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"सबै"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"छुटेको"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नम्बरहरू हेर्नुहोस्"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात गर्नुहोस्"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात असफल भयो"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"भ्वाइस मेलको अभिलेख राख्न सकिएन।"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"नम्बर थप्नुहोस्"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"यी नम्बरहरूबाट सबै कलहरू रोकिनेछन् र भ्वाइसमेलहरू स्वचालित रूपमा मेटिनेछन्।"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"प्रणाली सेटिङहरूमा लेख्न फोन अनुप्रयोगसँग अनुमति छैन।"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"रोकियो"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7250ff9..6b4923e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Nummer bewerken vóór bellen"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Oproepgeschiedenis wissen"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Voicemail verwijderen"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Voicemail archiveren"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail verwijderd"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Voicemail gearchiveerd"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ONGED. MKN"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"NAAR ARCHIEF"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Oproepgeschiedenis wissen?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Hiermee worden alle oproepen uit je geschiedenis verwijderd"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Oproepgeschiedenis wissen…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefoon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Gemiste oproep"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Gemiste zakelijke oproep"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Gemiste oproepen"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepen"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Terugbellen"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nieuwe voicemail van <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Kan voicemail niet afspelen"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Voicemail laden…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Voicemail archiveren…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kan voicemail niet laden"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Alleen oproepen met voicemail"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Alleen inkomende oproepen"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Bellen"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Je hebt geen gemiste oproepen."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Je voicemail-inbox is leeg."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Je voicemailarchief is leeg."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Alleen favorieten weergeven"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Oproepgeschiedenis"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Voicemailarchief"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Gemist"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummers bekijken"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importeren"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeren mislukt"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Kan voicemail niet archiveren."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blokkeren van nummer opheffen"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer toevoegen"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Oproepen van deze nummers worden geblokkeerd en voicemails worden automatisch verwijderd."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefoon-app heeft geen toestemming om systeeminstellingen te schrijven."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Geblokkeerd"</string>
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 0c19bfd..1e0d849 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ਕਾਲ ਇਤਿਹਾਸ ਹਟਾਓ"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ਵੌਇਸਮੇਲ ਮਿਟਾਓ"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ਵੌਇਸਮੇਲ ਪੁਰਾਲੇਖਬੱਧ ਕਰੋ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ਵੌਇਸਮੇਲ ਮਿਟਾਈ ਗਈ"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ਵੌਇਸਮੇਲ ਪੁਰਾਲੇਖਬੱਧ ਕੀਤੀ ਗਈ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ਪੁਰਾਲੇਖ \'ਤੇ ਜਾਓ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ਕੀ ਕਾਲ ਇਤਿਹਾਸ ਹਟਾਉਣਾ ਹੈ?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"ਇਹ ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਤੋਂ ਸਾਰੀਆਂ ਕਾਲਾਂ ਮਿਟਾ ਦੇਵੇਗਾ"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ਕਾਲ ਇਤਿਹਾਸ ਹਟਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ਫੋਨ"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"ਮਿਸ ਹੋਈ ਕਾਲ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"ਕੰਮ ਨਾਲ ਸਬੰਧਿਤ ਖੁੰਝੀ ਕਾਲ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"ਮਿਸ ਹੋਈਆਂ ਕਾਲਾਂ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ਮਿਸ ਹੋਈਆਂ ਕਾਲਾਂ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ਕਾਲ ਬੈਕ ਕਰੋ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ਦੀ ਨਵੀਂ ਵੌਇਸਮੇਲ"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ਵੌਇਸਮੇਲ ਪਲੇ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"ਵੌਇਸਮੇਲ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"ਵੌਇਸਮੇਲ ਪੁਰਾਲੇਖਬੱਧ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ਵੌਇਸਮੇਲ ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"ਕੇਵਲ ਵੌਇਸਮੇਲ ਵਾਲੀਆਂ ਕਾਲਾਂ"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ਕੇਵਲ ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ਇੱਕ ਕਾਲ ਕਰੋ"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਵੀ ਮਿਸਡ ਕਾਲਾਂ ਨਹੀਂ ਹਨ।"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ਤੁਹਾਡਾ ਵੌਇਸਮੇਲ ਇਨਬੌਕਸ ਖਾਲੀ ਹੈ।"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ਤੁਹਾਡਾ ਵੌਇਸਮੇਲ ਪੁਰਾਲੇਖ ਖ਼ਾਲੀ ਹੈ।"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ਕੇਵਲ ਮਨਪਸੰਦ ਦਿਖਾਓ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ਕਾਲ ਇਤਿਹਾਸ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ਵੌਇਸਮੇਲ ਪੁਰਾਲੇਖ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ਸਭ"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ਮਿਸਡ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ਵੌਇਸਮੇਲ"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ਨੰਬਰ ਵਿਖਾਓ"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ਆਯਾਤ ਕਰੋ"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ਆਯਾਤ ਅਸਫਲ ਹੋਇਆ"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"ਵੌਇਸਮੇਲ ਨੂੰ ਪੁਰਾਲੇਖਬੱਧ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"ਨੰਬਰ ਜੋੜੋ"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ਇਹਨਾਂ ਨੰਬਰਾਂ ਤੋਂ ਕਾਲਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ ਅਤੇ ਵੌਇਸਮੇਲਾਂ ਆਪਣੇ ਆਪ ਮਿਟਾ ਦਿੱਤੀਆਂ ਜਾਣਗੀਆਂ।"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ਫ਼ੋਨ ਐਪ ਦੇ ਕੋਲ ਸਿਸਟਮ ਸੈਟਿੰਗਜ਼ ਵਿੱਚ ਲਿੱਖਣ ਦੀ ਅਨੁਮਤੀ ਨਹੀਂ ਹੁੰਦੀ ਹੈ।"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ਬਲੌਕ ਕੀਤਾ ਗਿਆ"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 52c6b39..040995c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edytuj numer przed połączeniem"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Wyczyść historię połączeń"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Usuń pocztę głosową"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archiwizuj pocztę głosową"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Poczta usunięta"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Poczta głosowa zarchiwizowana"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"COFNIJ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARCHIWUM"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Wyczyścić historię połączeń?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Spowoduje to usunięcie wszystkich połączeń z historii."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Czyszczę historię połączeń…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Nieodebrane połączenie"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Nieodebrane połączenie (praca)"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Nieodebrane połączenia"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Liczba nieodebranych połączeń: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Oddzwoń"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nowa poczta głosowa od: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nie można odtworzyć wiadomości głosowej"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Wczytuję zawartość poczty głosowej…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archiwizuję pocztę głosową…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nie można wczytać zawartości poczty głosowej"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Tylko połączenia z pocztą głosową"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Tylko połączenia przychodzące"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zadzwoń"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nie masz nieodebranych połączeń."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Skrzynka odbiorcza poczty głosowej jest pusta."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Archiwum poczty głosowej jest puste."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Pokaż tylko ulubione"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historia połączeń"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archiwum poczty głosowej"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Wszystkie"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Nieodebrane"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Poczta gł."</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Pokaż numery"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuj"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nie udało się zaimportować"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Nie udało się zarchiwizować."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokuj numer"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj numer"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Połączenia z tych numerów będą blokowane, a wiadomości głosowe będą usuwane automatycznie."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacja Telefon nie ma uprawnień do zapisu w ustawieniach systemowych."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Zablokowany"</string>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index a40c283..0795806 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Excluir mensagem de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arquivar correio de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz excluído"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Correio de voz arquivado"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFAZER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARQUIVAR"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta ação excluirá todas as chamadas do seu histórico"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Limpando histórico de chamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Smartphone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Chamada perdida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Chamada de trabalho perdida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Chamadas perdidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Retornar chamada"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova mensagem de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi possível repr. correio de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Carregando correio de voz..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arquivando correio de voz..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi possível carregar correio de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Somente chamadas com correio de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Somente chamadas recebidas"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fazer uma chamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Você não tem chamadas perdidas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sua caixa de entrada de correio de voz está vazia."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Seu correio de voz está vazio."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de chamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arquivo do correio de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Correio de voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Falha ao arquivar correio de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Chamadas a partir destes números serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"O app Telefone não tem permissão para gravar nas configurações do sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c8fb02d..c9d29c7 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar o número antes de efetuar a chamada"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar correio de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arquivar msg. correio de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz elim."</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Msg. correio de voz arquivada"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULAR"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARQUIVO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Todas as chamadas serão eliminadas do histórico"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"A limpar histórico de chamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telemóvel"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Chamada não atendida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Chamada de trabalho não atendida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Chamadas não atendidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas não atendidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Ligar de volta"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova msg de correio de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi poss. reprod. o correio de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"A carregar o correio de voz..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"A arquivar mensagem de correio de voz…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi poss. carregar o correio de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Apenas chamadas com correio de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Apenas chamadas recebidas"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Efetuar uma chamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Não tem chamadas não atendidas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"A caixa de entrada do correio de voz está vazia."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"O seu arquivo de mensagens de correio de voz está vazio."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar apenas os favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de Chamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arquivo de mensagens de correio de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Não atendidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Corr. Voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha ao importar"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Falha ao arquivar msg. correio de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"As chamadas a partir destes números serão bloqueadas e as mensagens de correio de voz serão automaticamente eliminadas."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para efetuar uma chamada, ative a autorização Telemóvel."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A aplicação Telefone não tem autorização para gravar nas definições do sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a40c283..0795806 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Excluir mensagem de voz"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arquivar correio de voz"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz excluído"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Correio de voz arquivado"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFAZER"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARQUIVAR"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta ação excluirá todas as chamadas do seu histórico"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Limpando histórico de chamadas…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Smartphone"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Chamada perdida"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Chamada de trabalho perdida"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Chamadas perdidas"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Retornar chamada"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova mensagem de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi possível repr. correio de voz"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Carregando correio de voz..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arquivando correio de voz..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi possível carregar correio de voz"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Somente chamadas com correio de voz"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Somente chamadas recebidas"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fazer uma chamada"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Você não tem chamadas perdidas."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sua caixa de entrada de correio de voz está vazia."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Seu correio de voz está vazio."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de chamadas"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arquivo do correio de voz"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Correio de voz"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Falha ao arquivar correio de voz."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Chamadas a partir destes números serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"O app Telefone não tem permissão para gravar nas configurações do sistema."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloqueado"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 65dda1f..ed26aee 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modificați numărul înainte de apelare"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Ștergeți istoricul apelurilor"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ștergeți mesajul vocal"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arhivați mesajul vocal"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mesaj vocal șters"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Mesajul vocal este arhivat"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULAȚI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARHIVĂ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Ștergeți istoricul apelurilor?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Astfel vor fi șterse toate apelurile din istoric"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Se șterge istoricul apelurilor…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Apel nepreluat"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Apel de serviciu nepreluat"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Apeluri nepreluate"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (de) apeluri nepreluate"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Apelați înapoi"</string>
@@ -55,6 +59,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mesaj vocal nou de la <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Nu s-a putut reda mesageria vocală"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Se încarcă mesageria vocală…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Se arhivează mesajul vocal…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nu s-a putut încărca mesageria vocală"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Numai apelurile cu mesaje vocale"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Numai apelurile primite"</string>
@@ -148,8 +153,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Apelați"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nu aveți niciun apel nepreluat."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Nu există mesaje primite în mesageria vocală."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arhiva de mesaje vocale este goală."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afișați numai preferate"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Istoricul apelurilor"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arhivă de mesaje vocale"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Toate"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Nepreluate"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Mesagerie vocală"</string>
@@ -236,6 +243,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vedeți numerele"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importați"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importul nu a reușit"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Mesajul vocal nu s-a arhivat."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblocați numărul"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Adăugați un număr"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Apelurile de la aceste numere vor fi blocate, iar mesajele vocale vor fi șterse automat."</string>
@@ -255,4 +263,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Pentru a apela, activați permisiunea Telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplicația Telefon nu are permisiunea să modifice setările de sistem."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blocat"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 701b6dc..3b7c87c 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Изменить номер и позвонить"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Очистить журнал звонков"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Удалить голосовое сообщение"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Архивировать голос. сообщение"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Сообщение удалено"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Готово"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОТМЕНИТЬ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"АРХИВ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Очистить журнал звонков?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Журнал звонков будет удален."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Очистка журнала звонков…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Вызов"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Пропущенный вызов"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Пропущенный звонок (работа)"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Пропущенные вызовы"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Пропущенных вызовов: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Перезвонить"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Новое гол. сообщение: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Не удалось воспроизвести сообщения"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Загрузка сообщений…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Архивирование…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Не удалось загрузить голосовую почту"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Только звонки с голосовой почтой"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Только входящие звонки"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Вызов"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Нет пропущенных вызовов"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Нет входящих голосовых сообщений"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Архив пуст."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Только часто используемые"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Журнал звонков"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Архив голосовой почты"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Все"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущенные"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Г. почта"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Просмотреть номера"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортировать"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ошибка импорта"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Не удалось архивировать сообщение."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Разблокировать номер"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Добавить номер"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Вызовы с этих номеров будут блокироваться, а голосовые сообщения – автоматически удаляться."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Для поиска контактов включите разрешение \"Контакты\"."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"У приложения \"Телефон\" нет разрешения на изменение системных настроек."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Заблокирован"</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 92dd284..8bddf08 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ඇමතුම් ඉතිහාසය හිස් කරන්න"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"හඬ තැපෑල මකන්න"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"හඬ තැපෑල සංරක්ෂණය කරන්න"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"හඬ තැපෑල මකන ලදී"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"හඬ තැපෑල සංරක්ෂණය කරන ලදී"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"අස් කරන්න"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"සංරක්ෂිතය වෙත යන්න"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ඇමතුම් ඉතිහාසය හිස් කරන්නද?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"මෙය ඔබේ ඉතිහාසයෙන් සියලු ඇමතුම් මකනු ඇත"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ඇමතුම් ඉතිහාසය හිස් කරමින්…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"දුරකථනය"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"මඟ හැරුණු ඇමතුම"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"මග හැරුණ කාර්යාල ඇමතුම"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"මඟ හැරුණු ඇමතුම්"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"මඟ හැරුණු ඇමතුම් <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"ආපසු අමතන්න"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> වෙතින් නව හඬ තැපැලක්"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"හඬ තැපෑල වාදනය කිරීමට නොහැකි විය"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"හඬ තැපෑල ප්‍රවේශනය වෙමින්…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"හඬ තැපෑල සංරක්ෂණය කරමින්…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"හඬ තැපෑල ප්‍රවේශනය කිරීමට නොහැකි විය"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"හඬ තැපෑල සහිත ඇමතුම් පමණි"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"එන ඇමතුම් පමණි"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ඇමතුමක් සිදු කරන්න"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"ඔබට මඟ හැරුණු ඇමතුම් නැත."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ඔබේ හඬ තැපැල් එන ලිපි හිස්ය."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ඔබේ හඬ තැපැල් සංරක්ෂිතය හිස්ය."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ප්‍රියතමයන් පමණක් පෙන්වන්න"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ඇමතුම් ඉතිහාසය"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"හඬ තැපෑල් සංරක්ෂිතය"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"සියලු"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"මග හැරුණේය"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"හඬ තැපෑල"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"අංක බලන්න"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ආයාත කරන්න"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"අයාත කිරීම අසාර්ථක විය"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"හඬ තැපෑල සංරක්ෂනය කිරීමට අසමත් විය."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"අංකය අවහිර නොකරන්න"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"අංකයක් එක් කරන්න"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"මෙම අංක වෙතින් වන ඇමතුම් අවහිර කරනු ඇති අතර හඬ තැපැල් ස්වයංක්‍රියව මකනු ඇත."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"දුරකථන යෙදුමට පද්ධති සැකසීම් වෙත ලිවීමට අවසර නැත."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"අවහිර කරන ලදි"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e5993df..1c2f067 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Pred volaním upraviť číslo"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Vymazať históriu hovorov?"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Odstrániť hlasovú správu"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Archivovať hlasovú správu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hlas. schránka odstránená"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Hlasová správa bola archiv."</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"SPÄŤ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARCHÍV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Chcete vymazať históriu hovorov?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Týmto z histórie odstránite všetky hovory."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Vymazáva sa história hovorov..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefón"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Zmeškaný hovor"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Zmeškaný pracovný hovor"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Zmeškané hovory"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Zavolať späť"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nová hlasová správa – <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Hlasovú schránku sa nepodarilo prehrať"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Načítava sa hlasová schránka…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Archivuje sa hlasová správa…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hlasovú schránku sa nepodarilo načítať"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Iba volania do hlasovej schránky"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Iba prichádzajúce hovory"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zavolať"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemáte žiadne zmeškané hovory."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hlasová schránka je prázdna."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Váš archív hlasových správ je prázdny."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Zobraziť iba obľúbené"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"História hovorov"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archív hlasových správ"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Všetky"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobraziť čísla"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovať"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import zlyhal"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Hlasovú správu nebolo možné archivovať"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušiť blokovanie čísla"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Pridať číslo"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Hovory z týchto čísel budú blokované a hlasové správy budú automaticky odstraňované."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Ak chcete volať, zapnite povolenie Telefón."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefónna aplikácia nemá povolenie na zápis do nastavení systému."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Zablokované"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b47c9d0..f8df75f 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Urejanje številke pred klicem"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Izbriši zgodovino klicev"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Brisanje sporočil iz odzivnika"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arhiviraj sporoč. v odzivniku"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Spor. v odziv. izbr."</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Sporoč. v odzivniku arhivirano"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"RAZVELJAVI"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"V ARHIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite izbrisati zgodovino klicev?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"S tem boste iz zgodovine izbrisali vse klice"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Izbris zgodovine klicev …"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefoniranje"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Neodgovorjeni klic"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Neodgovorjen delovni klic"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Neodgovorjeni klici"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Št. neodgovorjenih klicev: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Povratni klic"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova glasovna pošta od <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Sporočil v odzivniku ni mogoče predv."</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Nalaganje sporočil v odzivniku …"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arhiviranje sporočila …"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Sporočil v odzivniku ni mogoče naložiti"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo klici z odzivnikom"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dohodni klici"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Klicanje"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nimate neodgovorjenih klicev."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Vaš nabiralnik s sporočili v odzivniku je prazen."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arhiv s sporočili v odzivniku je prazen."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Pokaži samo priljubljene"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Zgodovina klicev"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arhiv s sporočili v odzivniku"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Vsi"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Neodgovorjeni"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Odzivnik"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ogled številk"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvozi"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz ni uspel"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Arhiviranje spor. v odzivniku ni uspelo."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokiranje telefonske številke"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj telefonsko številko"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Klici s teh številk bodo blokirani in sporočila v odzivniku bodo samodejno izbrisana."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Če želite klicati, vklopite dovoljenje za telefon."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nima dovoljenja za pisanje v sistemske nastavitve."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blokirano"</string>
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 7ac28bd..8abe304 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redakto numrin para telefonatës"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Pastro historikun e telefonatave"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Fshije postën zanore"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkivo postën zanore"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"U zbulua posta zanore"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Posta zanore u arkivua"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ZHBËJ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"SHKO TEK ARKIVI"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Të pastrohet historiku i telefonatave?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Kjo do të fshijë të gjitha telefonatat nga historiku yt"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Po pastron historikun e telefonatave…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefoni"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Telefonatë e humbur"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Telefonatë pune e humbur"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Telefonata të humbura"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> telefonata të humbura"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Ri-telefono"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Postë e re zanore nga <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Posta zanore nuk mund të luhej"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Po ngarkon postën zanore…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Po arkivon postën zanore..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Posta zanore nuk mund të ngarkohej"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Vetëm telefonatat me mesazhe zanore"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Vetëm telefonatat hyrëse"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Bëj një telefonatë"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Nuk ke thirrje të humbura."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kutia hyrëse e postës tënde zanore është bosh."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arkivi i postës tënde zanore është bosh."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Shfaq vetëm të preferuarat"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Historiku i telefonatave"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arkivi i postës zanore"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Të gjitha"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Të humbura"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Posta zanore"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Shiko numrat"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importo"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimi dështoi"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Gabim në arkivimin e postës zanore."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zhblloko numrin"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Shto një numër"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Telefonatat nga këta numra do të bllokohen dhe mesazhet zanore do të fshihen automatikisht."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacionet e telefonit nuk kanë leje të shkruajnë në cilësimet e sistemit."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"I bllokuar"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index fb8dd31..91c7eeb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Измени број пре позива"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Обриши историју позива"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Избриши говорну поруку"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Архивирај говорну пошту"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гов. пошта је избрисана"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Говорна пошта је архивирана"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОПОЗОВИ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"АРХИВА"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Желите да обришете историју позива?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ово ће избрисати све позиве из историје"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Брише се историја позива…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Телефон"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Пропуштен позив"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Пропуштен позив за Work"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Пропуштени позиви"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Број пропуштених позива: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Узврати позив"</string>
@@ -55,6 +59,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова говорна порука од <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Пуштање говорне поште није успело"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Говорна пошта се учитава…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Говорна пошта се архивира…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Учитавање говорне поште није успело"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Само позиви са говорном поштом"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Само долазни позиви"</string>
@@ -148,8 +153,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Позови"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Немате ниједан пропуштен позив."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Пријемно сандуче говорне поште је празно."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Архива говорне поште је празна."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омиљене"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Историја позива"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Архива говорне поште"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Сви"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Говорна пошта"</string>
@@ -236,6 +243,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи бројеве"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увeзи"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз није успео"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Архивирање говорне поште није успело."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај број"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Позиви са ових бројева ће бити блокирани и поруке говорне поште ће се аутоматски брисати."</string>
@@ -255,4 +263,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Да бисте упутили позив, укључите дозволу за Телефон."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Апликација Телефон нема дозволу за уписивање у системска подешавања."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Блокиран"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index e8e582c..56628d9 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redigera nummer före samtal"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Rensa samtalshistorik"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Radera röstmeddelande"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Arkivera röstmeddelande"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Röstbrevlåda raderad"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Röstmeddelandet har arkiverats"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ÅNGRA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ÖPPNA ARKIV"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vill du rensa samtalshistoriken?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Alla samtal raderas från historiken"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Rensar samtalshistoriken ..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Ringa"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Missat samtal"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Missat jobbsamtal"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Missade samtal"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missade samtal"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Ring upp"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nytt röstmeddelande från <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Det gick inte att spela upp röstmeddelandet"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Läser in röstmeddelande ..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Arkiverar röstmeddelande ..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Det gick inte att läsa in röstmeddelandet"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Endast samtal med röstmeddelande"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Endast inkommande samtal"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Ring ett samtal"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har inga missade samtal."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Din röstbrevlåda är tom."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Arkivet för din röstbrevlåda är tomt."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Visa endast favoriter"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Samtalshistorik"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Arkiv för röstmeddelanden"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Alla"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Missade"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Röstbrevlåda"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visa telefonnummer"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importera"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Det gick inte att importera"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Kunde inte arkivera röstmeddelande."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Häv blockeringen av numret"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Lägg till telefonnummer"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Samtal från de här numren blockeras och röstmeddelanden raderas automatiskt."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonappen har inte skrivbehörighet i systeminställningarna."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Blockerad"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 3550a64..d8c9883 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Badilisha nambari kabla ya kupiga simu"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Futa rekodi ya simu zilizopigwa"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Futa ujumbe wa sauti"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Weka kwenye kumbukumbu"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ujumbe wa sauti umefutwa"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Umewekwa kwenye kumbukumbu"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"TENDUA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"KUMBUKUMBU"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Je, ungependa kufuta rekodi ya simu zilizopigwa?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Hii itafuta simu zote kutoka rekodi zako"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Inafuta rekodi ya simu zilizopigwa..."</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Simu"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Simu ambayo haikujibiwa"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Simu ya kazini ambayo hukujibu"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Simu zisizojibiwa"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Simu <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ambazo hazikujibiwa"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Mpigie"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Barua mpya ya sauti kutoka <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Haikuweza kucheza ujumbe wa sauti"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Inapakia ujumbe wa sauti..."</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Ujumbe unawekwa kwenye kumbukumbu…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Haikuweza kupakia ujumbe wa sauti"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Simu zilizo na ujumbe wa sauti tu"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Simu zinazoingia tu"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Piga simu"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Huna simu ulizokosa kupokea"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kikasha chako cha ujumbe wa sauti hakina ujumbe."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Kumbukumbu yako ya ujumbe wa sauti haina kitu."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Onyesha zinazopendwa tu"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Rekodi ya Simu Zilizopigwa"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Kumbukumbu ya Ujumbe wa Sauti"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Zote"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Ambazo hazikupokewa"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Ujumbe wa sauti"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Angalia Nambari"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Leta"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Imeshindwa kuingiza"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Imeshindwa kuuweka kwenye kumbukumbu."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ondolea nambari kizuizi"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Ongeza nambari"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Simu zinazopigwa kutoka nambari hizi zitazuiwa na ujumbe wa sauti utafutwa kiotomatiki."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Ili upige simu, washa ruhusa ya Simu."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Programu ya simu haina ruhusa ya kuandika kwenye mipangilio ya mfumo."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Imezuiwa"</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index fcf004c..b3b5118 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"அழைப்பதற்கு முன் எண்ணை மாற்று"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"அழைப்பு வரலாற்றை அழி"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"குரலஞ்சலை நீக்கு"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"குரலஞ்சலைக் காப்பகப்படுத்து"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"குரலஞ்சல் நீக்கப்பட்டது"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"குரலஞ்சல் காப்பகப்படுத்தப்பட்டது"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"செயல்தவிர்"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"காப்பகம் செல்"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"அழைப்பு பதிவை அழிக்கவா?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"பதிவிலிருந்து எல்லா அழைப்புகளும் நீக்கப்படும்"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"அழைப்பு வரலாற்றை அழிக்கிறது…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ஃபோன்"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"தவறிய அழைப்பு"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"தவறிய அழைப்பு (பணி)"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"தவறிய அழைப்புகள்"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> தவறிய அழைப்புகள்"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"திரும்ப அழை"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> இன் புதிய குரலஞ்சல்"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"குரலஞ்சலை இயக்க முடியவில்லை"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"குரலஞ்சலை ஏற்றுகிறது…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"குரலஞ்சலைக் காப்பகப்படுத்துகிறது…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"குரலஞ்சலை ஏற்ற முடியவில்லை"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"குரலஞ்சலுடனான அழைப்புகள் மட்டும்"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"உள்வரும் அழைப்புகள் மட்டும்"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"அழை"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"தவறிய அழைப்புகள் இல்லை."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"குரலஞ்சல் இன்பாக்ஸ் காலியாக உள்ளது."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"குரலஞ்சல் காப்பகம் காலியாக உள்ளது."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"பிடித்தவற்றை மட்டும் காட்டு"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"அழைப்பு வரலாறு"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"குரலஞ்சல் காப்பகம்"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"எல்லாம்"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"தவறியவை"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"குரலஞ்சல்"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"எண்களைக் காட்டு"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"இறக்கு"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"இறக்குவதில் தோல்வி"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"குரலஞ்சலைக் காப்பகப்படுத்த முடியவில்லை."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"எண்ணை அனுமதி"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"எண்ணைச் சேர்"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"இந்த எண்களின் அழைப்புகள் தடுக்கப்படுவதுடன், அவற்றின் குரலஞ்சல்களும் தானாகவே நீக்கப்படும்."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"முறைமை அமைப்புகளில் எழுதுவதற்கான அனுமதி ஃபோன் பயன்பாட்டுக்கு இல்லை."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"தடுக்கப்பட்டது"</string>
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 163ac82..ec6bb2a 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"కాల్ చేయడానికి ముందు నంబర్‌ను సవరించు"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"కాల్ చరిత్రను తీసివేయి"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"వాయిస్ మెయిల్‌ను తొలగించు"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"వాయిస్ మెయిల్‌ను ఆర్కైవ్ చేయి"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"వాయిస్‌‍మెయిల్ తొలగించింది"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"వాయిస్ మెయిల్ ఆర్కైవ్ అయింది"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"చర్యరద్దు"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ఆర్కైవ్‌కి వెళ్లు"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"కాల్ చరిత్రను క్లియర్ చేయాలా?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"దీని వలన మీ చరిత్ర నుండి అన్ని కాల్‌లు తొలగించబడతాయి"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"కాల్ చరిత్రను క్లియర్ చేస్తోంది…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"ఫోన్"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"మిస్డ్ కాల్"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"సమాధానమివ్వని కార్యాలయ కాల్"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"మిస్డ్ కాల్‌లు"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> మిస్డ్ కాల్‌లు"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"తిరిగి కాల్ చేయి"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> నుండి కొత్త వాయిస్ మెయిల్"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"వాయిస్ మెయిల్‌ను ప్లే చేయడం సాధ్యపడలేదు"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"వాయిస్ మెయిల్‌ను లోడ్ చేస్తోంది…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"వాయిస్ మెయిల్‌ను ఆర్కైవ్ చేస్తోంది…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"వాయిస్ మెయిల్‌ను లోడ్ చేయడం సాధ్యపడలేదు"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"వాయిస్ మెయిల్ కాల్‌లు మాత్రమే"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"ఇన్‌కమింగ్ కాల్‌లు మాత్రమే"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"కాల్ చేయి"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"మీకు మిస్డ్ కాల్‌లు ఏవీ లేవు."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"మీ వాయిస్ మెయిల్ ఇన్‌బాక్స్ ఖాళీగా ఉంది."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"మీ వాయిస్ మెయిల్ ఆర్కైవ్ ఖాళీగా ఉంది."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ఇష్టమైనవాటిని మాత్రమే చూపు"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"కాల్ చరిత్ర"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"వాయిస్ మెయిల్ ఆర్కైవ్"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"అన్నీ"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"సమాధానం ఇవ్వలేదు"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"వాయిస్ మెయిల్"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"నంబర్‌లను వీక్షించండి"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"దిగుమతి చేయి"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"దిగుమతి విఫలమైంది"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"వాయిస్ మెయిల్‌ను ఆర్కైవ్ చేయడం విఫలం."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"నంబర్‌ను జోడించు"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ఈ నంబర్‌ల నుండి కాల్‌లు బ్లాక్ చేయబడతాయి మరియు వాయిస్‌మెయిల్‌లు స్వయంచాలకంగా తొలగించబడతాయి."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"సిస్టమ్ సెట్టింగ్‌లకు వ్రాయడం కోసం ఫోన్ అనువర్తనానికి అనుమతి లేదు."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"బ్లాక్ అయ్యారు"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1ac79aa..5281b26 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"แก้ไขหมายเลขก่อนโทร"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ล้างประวัติการโทร"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ลบข้อความเสียง"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"เก็บข้อความเสียง"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ลบข้อความเสียงแล้ว"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"ข้อความเสียงที่เก็บไว้"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"เลิกทำ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ไปที่เก็บ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ล้างประวัติการโทรไหม"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"การดำเนินการนี้จะลบการโทรทั้งหมดออกจากประวัติของคุณ"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"กำลังล้างประวัติการโทร…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"โทรศัพท์"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"มีสายจากที่ทำงานที่ไม่ได้รับ"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"สายที่ไม่ได้รับ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"ไม่ได้รับ <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> สาย"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"โทรกลับ"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ข้อความเสียงใหม่จาก <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"ไม่สามารถเล่นข้อความเสียงได้"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"กำลังโหลดข้อความเสียง…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"กำลังเก็บข้อความเสียง..."</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"ไม่สามารถโหลดข้อความเสียงได้"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"เฉพาะสายที่มีข้อความเสียง"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"เฉพาะสายเรียกเข้า"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"โทรออก"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"คุณไม่มีสายที่ไม่ได้รับ"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"กล่องข้อความเสียงว่างเปล่า"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"ที่เก็บข้อความเสียงว่างเปล่า"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"แสดงเฉพาะรายชื่อที่ชื่นชอบ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ประวัติการโทร"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"ที่เก็บข้อความเสียง"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"ทั้งหมด"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"ไม่ได้รับ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"ข้อความเสียง"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ดูหมายเลข"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"นำเข้า"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"การนำเข้าล้มเหลว"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"เก็บข้อความเสียงไม่สำเร็จ"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"เลิกบล็อกหมายเลข"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"เพิ่มหมายเลข"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ระบบจะบล็อกสายเรียกเข้าจากหมายเลขเหล่านี้และลบข้อความเสียงโดยอัตโนมัติ"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"แอปโทรศัพท์ไม่ได้รับอนุญาตให้เขียนไปยังการตั้งค่าระบบ"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"ถูกบล็อก"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e7a8d8d..04d9bf9 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"I-edit ang numero bago tumawag"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"I-clear ang history ng tawag"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"I-delete ang voicemail"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"I-archive ang voicemail"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Na-delete voicemail"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Na-archive ang voicemail"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"I-UNDO"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"PUMUNTA SA ARCHIVE"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"I-clear ang history ng tawag?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Idi-delete nito ang lahat ng tawag mula sa iyong history"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Kini-clear ang history ng tawag…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telepono"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Hindi nasagot na tawag"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Hindi nasagot na tawag sa trabaho"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Mga hindi nasagot na tawag"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (na) hindi nasagot na tawag"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Tawagan"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Bagong voicemail mula kay <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Hindi ma-play ang voicemail"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Nilo-load ang voicemail…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Ina-archive ang voicemail…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hindi ma-load ang voicemail"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Mga tawag lang na may voicemail"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Mga papasok na tawag lang"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Tumawag"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Wala kang mga hindi nasagot na tawag."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Walang laman ang iyong voicemail inbox."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Walang laman ang archive ng voicemail."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mga paborito lang ang ipakita"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"History ng Tawag"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Archive ng Voicemail"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Lahat"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Di nasagot"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Tingnan ang Numero"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"I-import"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Hindi nakapag-import"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Nabigong i-archive ang voicemail."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Alisin sa pagkaka-block ang numero"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Magdagdag ng numero"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Iba-block ang mga tawag mula sa mga numerong ito at awtomatikong ide-delete ang mga voicemail."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Upang tumawag, i-on ang pahintulot ng Telepono."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Walang pahintulot ang app ng Telepono na mag-write sa mga setting ng system."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Naka-block"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2558b16..b083bf9 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Telefon etmeden önce numarayı düzenle"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Çağrı geçmişini temizle"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Sesli mesajı sil"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Sesli mesajı arşivle"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Sesli mesaj silindi"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Sesli mesaj arşivlendi"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"GERİ AL"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARŞİVE GİT"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Çağrı geçmişi temizlensin mi?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu işlem, geçmişinizdeki tüm çağrıları silecek"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Çağrı geçmişi temizleniyor…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Cevapsız çağrı"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"İşle ilgili cevapsız çağrı"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Cevapsız çağrılar"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cevapsız çağrı"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Geri ara"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Yeni sesli mesj gönderen: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Sesli mesaj oynatılamadı"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Sesli mesaj yükleniyor…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Sesli mesaj arşivleniyor…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Sesli mesaj yüklenemedi"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Yalnızca sesli mesaj içeren çağrılar"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Yalnızca gelen çağrılar"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Telefon et"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Cevapsız çağirınız yok."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sesli mesaj gelen kutunuz boş."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Sesli mesaj arşiviniz boş."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Yalnızca favori kişileri göster"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Çağrı Geçmişi"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Sesli Mesaj Arşivi"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Tümü"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Cevapsız"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Sesli Mesaj"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Numaraları Görüntüle"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İçe aktar"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"İçe aktarma başarısız oldu"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Sesli mesaj arşivlenemedi."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numaranın engellemesini kaldır"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Numara ekle"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu numaralardan gelen çağrılar engellenecek ve sesli mesajlar otomatik olarak silinecektir."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Telefon etmek için Telefon iznini açın."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon uygulamasının sistem ayarlarına yazma izni yok."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Engellendi"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 3c715cb..f49d266 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Редагувати номер перед викликом"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Очистити історію дзвінків"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Видалити голосову пошту"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Архівувати голосову пошту"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Видалено"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Голосу пошту заархівовано"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ВІДМІНИТИ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ДО АРХІВУ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Очистити історію дзвінків?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"З історії буде видалено всі дзвінки"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Очищення історії дзвінків…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Номер телефону"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Пропущений виклик"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Пропущений дзвінок на робочий телефон"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Пропущені виклики"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"Пропущено викликів: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Передзвонити"</string>
@@ -56,6 +60,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова голосова пошта від <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Не вдалося відтворити голосову пошту"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Завантаження голосової пошти…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Архівування голосової пошти…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Не вдалося завантажити голосову пошту"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Лише виклики з голосовою поштою"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Лише вхідні виклики"</string>
@@ -149,8 +154,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Телефонувати"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Немає пропущених дзвінків."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Немає голосової пошти."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Архів голосової пошти порожній."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Показати лише вибрані"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Історія дзвінків"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Архів голосової пошти"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Усі"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущені"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Голосова пошта"</string>
@@ -238,6 +245,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Переглянути номери"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Імпортувати"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Не вдалось імпортувати"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Не вдалося заархівувати голосову пошту."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Розблокувати номер"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Додати номер"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Виклики з цих номерів блокуватимуться, а голосові повідомлення автоматично видалятимуться."</string>
@@ -257,4 +265,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Додаток Телефон не має дозволу змінювати системні налаштування."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Заблоковано"</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 832d42c..ec6116b 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"کال کی سرگزشت صاف کریں"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"صوتی میل حذف کریں"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"صوتی میل کو آرکائیو کریں"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"صوتی میل حذف ہو گئی"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"صوتی میل آرکائیو ہو گئی"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"کالعدم کریں"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"آرکائیو پر جائیں"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"کال کی سرگزشت صاف کریں؟"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"یہ آپ کی سرگزشت سے سبھی کالز کو حذف کر دے گا"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"کال کی سرگزشت صاف کی جا رہی ہے…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"فون"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"چھوٹی ہوئی کال"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"کام سے متعلق چھوٹی ہوئی کال"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"چھوٹی ہوئی کالیں"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> چھوٹی ہوئی کالیں"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"واپس کال کریں"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> کی جانب سے نیا صوتی میل"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"صوتی میل نہیں چلا سکا"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"صوتی میل لوڈ ہو رہا ہے…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"صوتی میل آرکائیو ہو رہی ہے…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"صوتی میل لوڈ نہیں کیا جا سکا"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"صرف صوتی میل والی کالیں"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"صرف آنے والی کالیں"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ایک کال کریں"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"آپ کے پاس کوئی چھوٹی ہوئی کالز نہیں ہیں۔"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"آپ کا صوتی میل ان باکس خالی ہے۔"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"آپ کی صوتی میل آرکائیو خالی ہے۔"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"صرف پسندیدہ دکھائیں"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"کال کی سرگزشت"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"صوتی میل کی آرکائیو"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"سبھی"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"چھوٹی ہوئی"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"صوتی میل"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"نمبرز دیکھیں"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"درآمد کریں"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"درآمد کرنا ناکام ہوگیا"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"صوتی میل کو آرکائیو کرنے میں ناکام۔"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"نمبر غیر مسدود کریں"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"نمبر شامل کریں"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ان نمبرز سے کالز مسدود ہوجائیں گی اور صوتی میلز خودبخود جذف ہو جائیں گی۔"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"فون ایپ کے پاس سسٹم ترتیبات کو لکھنے کی اجازت نہیں ہے۔"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"مسدود کردہ"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index db85cd8..7ac5fc9 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Raqamni o‘zgartirish va telefon qilish"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Qo‘ng‘iroqlar tarixini tozalash"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ovozli xabarni o‘chirish"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Ovozli pochtani arxivlash"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ovozli pochta o‘chirildi"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Ovozli pochta arxivlandi"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"QAYTARISH"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"ARXIVGA O‘TISH"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Qo‘ng‘iroqlar tarixi tozalansinmi?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Barcha qo‘ng‘iroqlar tarixi o‘chib ketadi."</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Qo‘ng‘iroqlar tarixi tozalanmoqda…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Telefon"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Javobsiz qo‘ng‘iroq"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Javobsiz ishchi qo‘ng‘irog‘i"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Javobsiz qo‘ng‘iroqlar"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ta javobsiz qo‘ng‘iroq"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Telefon qilish"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>dan yangi ovozli xabar"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Ovozli xabarni eshitib bo‘lmadi"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Ovozli xabar yuklanmoqda…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Ovozli pochta arxivlanmoqda…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ovozli xabarni yuklab bo‘lmadi"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Faqat ovozli xabar qo‘ng‘iroqlari"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Faqat kiruvchi qo‘ng‘iroqlar"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Qo‘ng‘iroq qilish"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Sizda hech qanday javobsiz qo‘ng‘iroq yo‘q."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ovozli pochta qutisi bo‘m-bo‘sh."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Ovozli pochta arxivingiz bo‘sh."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Faqat saralar ko‘rsatilsin"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Qo‘ng‘iroqlar tarixi"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Ovozli pochta arxivi"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Barchasi"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Javobsiz"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Ovozli xabar"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Sonini ko‘rish"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import qilish"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import qilib bo‘lmadi"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Ovozli pochtani arxivlashda xatolik yuz berdi."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Raqamni blokdan chiqarish"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Raqam qo‘shish"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu raqamlardan kelgan qo‘ng‘iroqlar bloklanadi va ovozli xabarlari avtomatik o‘chiriladi."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon ilovasida tizim sozlamalarini o‘zgartirish uchun ruxsat yo‘q."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bloklangan"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b90907f..0f46091 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Chỉnh sửa số trước khi gọi"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Xóa nhật ký cuộc gọi"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Xóa thư thoại"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Lưu trữ thư thoại"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Đã xóa thư thoại"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Đã lưu trữ thư thoại"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"HOÀN TÁC"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"CHUYỂN ĐẾN LƯU TRỮ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Xóa nhật ký cuộc gọi?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Thao tác này sẽ xóa tất cả cuộc gọi khỏi nhật ký của bạn"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Đang xóa nhật ký cuộc gọi…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Điện thoại"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Cuộc gọi nhỡ"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Cuộc gọi nhỡ về công việc"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Cuộc gọi nhỡ"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cuộc gọi nhỡ"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Gọi lại"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Thư thoại mới từ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Không thể phát thư thoại"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Đang tải thư thoại…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Đang lưu trữ thư thoại…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Không thể tải thư thoại"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Chỉ cuộc gọi có thư thoại"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Chỉ cuộc gọi đến"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Gọi điện"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Bạn không có cuộc gọi nhỡ nào."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hộp thư thoại đến của bạn trống."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Danh sách thư thoại được lưu trữ của bạn trống."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Chỉ hiển thị liên hệ ưa thích"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Nhật ký cuộc gọi"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Lưu trữ thư thoại"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Tất cả"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Bị nhỡ"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Thư thoại"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Xem số"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Nhập"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nhập không thành công"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Không lưu trữ được thư thoại."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bỏ chặn số"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Thêm số"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Cuộc gọi từ các số này sẽ bị chặn và thư thoại sẽ tự động bị xóa."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Ứng dụng Điện thoại không có quyền ghi vào cài đặt hệ thống."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Bị chặn"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2d76c7f..3fd99c4 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"拨打之前修改号码"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"清除通话记录"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"删除语音邮件"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"归档语音邮件"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"语音邮件已删除"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"已归档的语音邮件"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"撤消"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"转至归档"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"要清除通话记录吗？"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"这会删除您的所有通话记录"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通话记录…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"打电话"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"未接电话"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"未接工作来电"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"未接电话"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 个未接电话"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"回电"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"来自<xliff:g id="CALLER">%1$s</xliff:g>的新语音邮件"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"无法播放语音邮件"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"正在加载语音邮件…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"正在归档语音邮件…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"无法加载语音邮件"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"只显示语音信箱留言"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"只显示来电"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"拨打电话"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"您没有任何未接电话。"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您未收到任何语音邮件。"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"没有已归档的语音邮件。"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"仅显示收藏的联系人"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"通话记录"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"语音邮件归档"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"未接电话"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"语音邮件"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看号码"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"导入"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"导入失败"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"无法归档语音邮件。"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"取消屏蔽号码"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"添加号码"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"系统将屏蔽这些号码的来电，并将自动删除这些来电者发送的语音邮件。"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"要搜索您的联系人，请开启“通讯录”权限。"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"要拨打电话，请开启“电话”权限。"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"电话应用不具备写入系统设置的权限。"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"已屏蔽"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 7232076..5a4bdbc 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"在撥號前編輯號碼"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"清除通話記錄"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"刪除留言"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"封存留言"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"已刪除留言信箱"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"已封存留言"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"復原"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"前往封存"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"要清除通話記錄嗎？"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"這會刪除所有通話記錄"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通話記錄…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"撥打電話"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"未接來電"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"未接工作來電"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"未接來電"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 個未接來電"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"回電"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"來自<xliff:g id="CALLER">%1$s</xliff:g>的新語音留言"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"無法播放留言"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"正在載入留言…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"正在封存留言…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"無法載入留言"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"只顯示有留言的來電"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"只顯示來電"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"撥號"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"您沒有未接來電。"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您的留言信箱沒有留言。"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"您的留言封存是空的。"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的最愛"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"通話記錄"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"留言封存"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"留言信箱"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看電話號碼"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"無法封存留言。"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"新增電話號碼"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"將會封鎖這些號碼的來電，而留言將會自動刪除。"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"如要搜尋聯絡人，請開啟「通訊錄」權限。"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"如要撥打電話，請開放「手機」權限。"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"手機應用程式沒有系統設定的寫入權限。"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"已封鎖"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index cfdef18..ef468ec 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"撥打前編輯號碼"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"清除通話紀錄"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"刪除語音留言"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"封存語音留言"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"已刪除語音留言"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"已封存語音留言"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"復原"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"前往封存檔案"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"清除通話紀錄？"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"這項操作會將所有通話從您的紀錄中刪除"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通話紀錄…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"撥打電話"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"未接來電"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"未接公司來電"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"未接來電"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 通未接來電"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"回撥"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"最新語音留言者：<xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"無法播放語音留言"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"正在載入語音留言…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"正在封存語音留言…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"無法載入語音留言"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"僅顯示語音信箱留言"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"僅顯示來電"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"撥打電話"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"您沒有任何未接來電。"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您沒有任何語音留言。"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"您尚未封存任何語音留言。"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的收藏"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"通話紀錄"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"語音留言封存檔案"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"語音留言"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看號碼"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"無法封存語音留言。"</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"新增號碼"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"系統會封鎖這些號碼的來電，並自動刪除對方的語音留言。"</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"如要搜尋您的聯絡人，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_place_call" msgid="2101287782615887547">"如要撥打電話，請開啟「電話」存取權限。"</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"電話應用程式的權限不足，無法寫入系統設定。"</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"已封鎖"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d54c623..b9ceed7 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -34,13 +34,17 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"Hlela inombolo ngaphambi kwekholi"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"Sula umlando wekholi"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Susa ivoyisimeyili"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"Faka kungobo yomlando ivoyisimeyili"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ivoyisimeyili isusiwe"</string>
+    <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"Ivoyisimeyili ifakwe kungobo yomlando"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"HLEHLISA"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"IYA KUNGOBO YOMLANDO"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Sula umlando wekholi?"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Lokhu kuzosusa wonke amakholi kusukela kumlando wakho"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Isula umlando wekholi…"</string>
     <string name="userCallActivityLabel" product="default" msgid="6652512551977445095">"Ifoni"</string>
     <string name="notification_missedCallTitle" msgid="2078223183024451723">"Ikholi ephuthelwe"</string>
+    <string name="notification_missedWorkCallTitle" msgid="8418335304394771688">"Ugeje ikholi yomsebenzi"</string>
     <string name="notification_missedCallsTitle" msgid="4948840634672742797">"Amakholi akuphuthele"</string>
     <string name="notification_missedCallsMsg" msgid="158790423221579961">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> amakholi akulahlekele"</string>
     <string name="notification_missedCall_call_back" msgid="1991552423738343203">"Phinda ushayele"</string>
@@ -54,6 +58,7 @@
     <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"I-imeyli entsha esuka ku <xliff:g id="CALLER">%1$s</xliff:g>"</string>
     <string name="voicemail_playback_error" msgid="3356071912353297599">"Ayikwazanga ukudlala ivoyisimeyili"</string>
     <string name="voicemail_fetching_content" msgid="1287895365599580842">"Ilayisha ivoyisimeyili…"</string>
+    <string name="voicemail_archiving_content" msgid="722322091690281157">"Ifaka kungobo yomlando yevoyisimeyili…"</string>
     <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ayikwazi ukulayisha ivoyisimeyili"</string>
     <string name="call_log_voicemail_header" msgid="3945407886667089173">"Amakholi anevoyisimeyili kuphela"</string>
     <string name="call_log_incoming_header" msgid="2787722299753674684">"Amakholi angenayo kuphela"</string>
@@ -147,8 +152,10 @@
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"Yenza ikholi"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Awunawo amakholi aphuthelwe."</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ibhokisi lokungenayo kwakho levoyisimeyili alinalutho."</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"Ingobo yomlando yevoyisimeyili yakho ayinalutho."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Bonisa izintandokazi kuphela"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"Umlando wekholi"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"Ukufaka kungobo yomlando iyoyisimeyili"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"Konke"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"Phuthelwe"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"Ivoyisimeyili"</string>
@@ -234,6 +241,7 @@
     <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Buka izinombolo"</string>
     <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ngenisa"</string>
     <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ukulanda akuphumelelanga"</string>
+    <string name="voicemail_archive_failed" msgid="6263467962738772223">"Yehlulekile ukufaka kungobo yomlando ivoyisimeyili."</string>
     <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Vulela inombolo"</string>
     <string name="addBlockedNumber" msgid="6064812257482886526">"Engeza inombolo"</string>
     <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Amakholi kusuka kulezi lzinombolo azovinjwa futhi amavoyisimeyili azosulwa ngokuzenzakalela."</string>
@@ -253,4 +261,5 @@
     <string name="permission_no_search" msgid="84152933267902056">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
     <string name="permission_place_call" msgid="2101287782615887547">"Ukuze ubeke ikholi, vula imvume yefoni."</string>
     <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Uhlelo lokusebenza lefoni alinayo imvume yokubhalela kuzilungiselelo zesistimu."</string>
+    <string name="blocked_number_call_log_label" msgid="8912042441473014712">"Kuvinjelwe"</string>
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 75d05ac..38fd6b3 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -124,7 +124,7 @@
     <color name="divider_line_color">#D8D8D8</color>
 
     <!--  Colors for blocked numbers list -->
-    <color name="blocked_contact_background">#afafaf</color>
+    <color name="blocked_contact_background">@android:color/holo_red_dark</color>
     <color name="blocked_number_primary_text_color">@color/dialtacts_primary_text_color</color>
     <color name="blocked_number_secondary_text_color">@color/dialtacts_secondary_text_color</color>
     <color name="blocked_number_icon_tint">#616161</color>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3c319af..734dde8 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -84,12 +84,21 @@
     <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
     <string name="call_log_trash_voicemail">Delete voicemail</string>
 
+    <!-- Menu item used to archive a voicemail. [CHAR LIMIT=30] -->
+    <string name="call_log_archive_voicemail">Archive voicemail</string>
+
     <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
     <string name="snackbar_voicemail_deleted">Voicemail deleted</string>
 
+    <!-- Text for snackbar to undo a voicemail archive. [CHAR LIMIT=30] -->
+    <string name="snackbar_voicemail_archived">Voicemail archived</string>
+
     <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
     <string name="snackbar_voicemail_deleted_undo">UNDO</string>
 
+    <!-- Text for going to archive button in snackbar for voicemail archive. [CHAR LIMIT=10] -->
+    <string name="snackbar_voicemail_archived_goto">GOTO ARCHIVE</string>
+
     <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
     <string name="clearCallLogConfirmation_title">Clear call history?</string>
 
@@ -106,6 +115,8 @@
     <!-- Notification strings -->
     <!-- Missed call notification label, used when there's exactly one missed call -->
     <string name="notification_missedCallTitle">Missed call</string>
+    <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
+    <string name="notification_missedWorkCallTitle">Missed work call</string>
     <!-- Missed call notification label, used when there are two or more missed calls -->
     <string name="notification_missedCallsTitle">Missed calls</string>
     <!-- Missed call notification message used when there are multiple missed calls -->
@@ -156,6 +167,9 @@
     <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
     <string name="voicemail_fetching_content">Loading voicemail\u2026</string>
 
+    <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
+    <string name="voicemail_archiving_content">Archiving voicemail\u2026</string>
+
     <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
     <string name="voicemail_fetching_timout">Couldn\'t load voicemail</string>
 
@@ -529,12 +543,18 @@
     <!-- Text displayed when the list of voicemails is empty -->
     <string name="call_log_voicemail_empty">Your voicemail inbox is empty.</string>
 
+    <!-- Text displayed when the list of voicemail archives is empty -->
+    <string name="voicemail_archive_empty">Your voicemail archive is empty.</string>
+
     <!--  Menu option to show favorite contacts only -->
     <string name="show_favorites_only">Show favorites only</string>
 
     <!--  Title of activity that displays a list of all calls -->
     <string name="call_log_activity_title">Call History</string>
 
+    <!--  Title of activity that displays a list of all archived voicemails -->
+    <string name="voicemail_archive_activity_title">Voicemail Archive</string>
+
     <!-- Title for the call log tab containing the list of all voicemails and calls
          [CHAR LIMIT=30] -->
     <string name="call_log_all_title">All</string>
@@ -915,6 +935,9 @@
     <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
     <string name="send_to_voicemail_import_failed">Import failed</string>
 
+    <!-- Error toast message for when voicemail archive fails. [CHAR LIMIT=40] -->
+    <string name="voicemail_archive_failed">Failed to archive voicemail.</string>
+
     <!-- String describing the delete icon on a blocked number list item.
         When tapped, it will show a dialog confirming the unblocking of the number.
         [CHAR LIMIT=NONE]-->
@@ -999,4 +1022,7 @@
 
     <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
     <string name="toast_cannot_write_system_settings">Phone app does not have permission to write to system settings.</string>
+
+    <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
+    <string name="blocked_number_call_log_label">Blocked</string>
 </resources>
diff --git a/res/xml/file_paths.xml b/res/xml/file_paths.xml
new file mode 100644
index 0000000..45caed2
--- /dev/null
+++ b/res/xml/file_paths.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Offer access to files under Context.getCacheDir() -->
+    <cache-path name="my_cache" />
+</paths>
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 56e29a9..e6a29fb 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -349,51 +349,45 @@
 
     @Override
     public boolean onMenuItemClick(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.call_detail_delete_menu_item:
-                if (hasVoicemail()) {
-                    CallLogAsyncTaskUtil.deleteVoicemail(
-                            this, mVoicemailUri, mCallLogAsyncTaskListener);
-                } else {
-                    final StringBuilder callIds = new StringBuilder();
-                    for (Uri callUri : getCallLogEntryUris()) {
-                        if (callIds.length() != 0) {
-                            callIds.append(",");
-                        }
-                        callIds.append(ContentUris.parseId(callUri));
+        if (item.getItemId() == R.id.call_detail_delete_menu_item) {
+            if (hasVoicemail()) {
+                CallLogAsyncTaskUtil.deleteVoicemail(
+                        this, mVoicemailUri, mCallLogAsyncTaskListener);
+            } else {
+                final StringBuilder callIds = new StringBuilder();
+                for (Uri callUri : getCallLogEntryUris()) {
+                    if (callIds.length() != 0) {
+                        callIds.append(",");
                     }
-                    CallLogAsyncTaskUtil.deleteCalls(
-                            this, callIds.toString(), mCallLogAsyncTaskListener);
+                    callIds.append(ContentUris.parseId(callUri));
                 }
-                break;
+                CallLogAsyncTaskUtil.deleteCalls(
+                        this, callIds.toString(), mCallLogAsyncTaskListener);
+            }
         }
         return true;
     }
 
     @Override
     public void onClick(View view) {
-        switch(view.getId()) {
-            case R.id.call_detail_action_block:
-                BlockNumberDialogFragment.show(
-                        mBlockedNumberId,
-                        mNumber,
-                        mDetails.countryIso,
-                        mDisplayNumber,
-                        R.id.call_detail,
-                        getFragmentManager(),
-                        this);
-                break;
-            case R.id.call_detail_action_copy:
-                ClipboardUtils.copyText(mContext, null, mNumber, true);
-                break;
-            case R.id.call_detail_action_edit_before_call:
-                Intent dialIntent = new Intent(Intent.ACTION_DIAL,
-                        CallUtil.getCallUri(getDialableNumber()));
-                DialerUtils.startActivityWithErrorToast(mContext, dialIntent);
-                break;
-            default:
-                Log.wtf(TAG, "Unexpected onClick event from " + view);
-                break;
+        int resId = view.getId();
+        if (resId == R.id.call_detail_action_block) {
+            BlockNumberDialogFragment.show(
+                    mBlockedNumberId,
+                    mNumber,
+                    mDetails.countryIso,
+                    mDisplayNumber,
+                    R.id.call_detail,
+                    getFragmentManager(),
+                    this);
+        } else if (resId == R.id.call_detail_action_copy) {
+            ClipboardUtils.copyText(mContext, null, mNumber, true);
+        } else if (resId == R.id.call_detail_action_edit_before_call) {
+            Intent dialIntent = new Intent(Intent.ACTION_DIAL,
+                    CallUtil.getCallUri(getDialableNumber()));
+            DialerUtils.startActivityWithErrorToast(mContext, dialIntent);
+        } else {
+            Log.wtf(TAG, "Unexpected onClick event from " + view);
         }
     }
 
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java
index b177d83..078b551 100644
--- a/src/com/android/dialer/DialerApplication.java
+++ b/src/com/android/dialer/DialerApplication.java
@@ -20,7 +20,6 @@
 import android.os.Trace;
 
 import com.android.contacts.common.extensions.ExtensionsFactory;
-import com.android.contacts.commonbind.analytics.AnalyticsUtil;
 
 public class DialerApplication extends Application {
 
@@ -33,9 +32,6 @@
         Trace.beginSection(TAG + " ExtensionsFactory initialization");
         ExtensionsFactory.init(getApplicationContext());
         Trace.endSection();
-        Trace.beginSection(TAG + " Analytics initialization");
-        AnalyticsUtil.initialize(this);
-        Trace.endSection();
         Trace.endSection();
     }
 }
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 72753be..d12cf24 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -240,6 +240,7 @@
     private FloatingActionButtonController mFloatingActionButtonController;
 
     private int mActionBarHeight;
+    private int mPreviouslySelectedTabIndex;
 
     /**
      * The text returned from a voice search query.  Set in {@link #onActivityResult} and used in
@@ -423,7 +424,7 @@
 
         mIsLandscape = getResources().getConfiguration().orientation
                 == Configuration.ORIENTATION_LANDSCAPE;
-
+        mPreviouslySelectedTabIndex = ListsFragment.TAB_INDEX_SPEED_DIAL;
         final View floatingActionButtonContainer = findViewById(
                 R.id.floating_action_button_container);
         ImageButton floatingActionButton = (ImageButton) findViewById(R.id.floating_action_button);
@@ -567,6 +568,11 @@
 
     @Override
     protected void onPause() {
+        // Only clear missed calls if the pause was not triggered by an orientation change
+        // (or any other confirguration change)
+        if (!isChangingConfigurations()) {
+            updateMissedCalls();
+        }
         if (mClearSearchOnPause) {
             hideDialpadAndSearchUi();
             mClearSearchOnPause = false;
@@ -620,35 +626,30 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.floating_action_button:
-                if (mListsFragment.getCurrentTabIndex()
-                        == ListsFragment.TAB_INDEX_ALL_CONTACTS && !mInRegularSearch) {
-                    DialerUtils.startActivityWithErrorToast(
-                            this,
-                            IntentUtil.getNewContactIntent(),
-                            R.string.add_contact_not_available);
-                } else if (!mIsDialpadShown) {
-                    mInCallDialpadUp = false;
-                    showDialpadFragment(true);
-                }
-                break;
-            case R.id.voice_search_button:
-                try {
-                    startActivityForResult(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH),
-                            ACTIVITY_REQUEST_CODE_VOICE_SEARCH);
-                } catch (ActivityNotFoundException e) {
-                    Toast.makeText(DialtactsActivity.this, R.string.voice_search_not_available,
-                            Toast.LENGTH_SHORT).show();
-                }
-                break;
-            case R.id.dialtacts_options_menu_button:
-                mOverflowMenu.show();
-                break;
-            default: {
-                Log.wtf(TAG, "Unexpected onClick event from " + view);
-                break;
+        int resId = view.getId();
+        if (resId == R.id.floating_action_button) {
+            if (mListsFragment.getCurrentTabIndex()
+                    == ListsFragment.TAB_INDEX_ALL_CONTACTS && !mInRegularSearch) {
+                DialerUtils.startActivityWithErrorToast(
+                        this,
+                        IntentUtil.getNewContactIntent(),
+                        R.string.add_contact_not_available);
+            } else if (!mIsDialpadShown) {
+                mInCallDialpadUp = false;
+                showDialpadFragment(true);
             }
+        } else if (resId == R.id.voice_search_button) {
+            try {
+                startActivityForResult(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH),
+                        ACTIVITY_REQUEST_CODE_VOICE_SEARCH);
+            } catch (ActivityNotFoundException e) {
+                Toast.makeText(DialtactsActivity.this, R.string.voice_search_not_available,
+                        Toast.LENGTH_SHORT).show();
+            }
+        } else if (resId == R.id.dialtacts_options_menu_button) {
+            mOverflowMenu.show();
+        } else {
+            Log.wtf(TAG, "Unexpected onClick event from " + view);
         }
     }
 
@@ -658,41 +659,37 @@
             return true;
         }
 
-        switch (item.getItemId()) {
-            case R.id.menu_history:
-                // Use explicit CallLogActivity intent instead of ACTION_VIEW +
-                // CONTENT_TYPE, so that we always open our call log from our dialer
-                final Intent intent = new Intent(this, CallLogActivity.class);
-                startActivity(intent);
-                break;
-            case R.id.menu_add_contact:
-                DialerUtils.startActivityWithErrorToast(
-                        this,
-                        IntentUtil.getNewContactIntent(),
-                        R.string.add_contact_not_available);
-                break;
-            case R.id.menu_import_export:
-                // We hard-code the "contactsAreAvailable" argument because doing it properly would
-                // involve querying a {@link ProviderStatusLoader}, which we don't want to do right
-                // now in Dialtacts for (potential) performance reasons. Compare with how it is
-                // done in {@link PeopleActivity}.
-                if (mListsFragment.getCurrentTabIndex() == ListsFragment.TAB_INDEX_SPEED_DIAL) {
-                    ImportExportDialogFragment.show(getFragmentManager(), true,
-                            DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_FAVORITES);
-                } else {
-                    ImportExportDialogFragment.show(getFragmentManager(), true,
-                            DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_DEFAULT);
-                }
-                Logger.logScreenView(ScreenEvent.IMPORT_EXPORT_CONTACTS, this);
-                return true;
-            case R.id.menu_clear_frequents:
-                ClearFrequentsDialog.show(getFragmentManager());
-                Logger.logScreenView(ScreenEvent.CLEAR_FREQUENTS, this);
-                return true;
-            case R.id.menu_call_settings:
-                handleMenuSettings();
-                Logger.logScreenView(ScreenEvent.SETTINGS, this);
-                return true;
+        int resId = item.getItemId();
+        if (resId == R.id.menu_history) {// Use explicit CallLogActivity intent instead of ACTION_VIEW +
+            // CONTENT_TYPE, so that we always open our call log from our dialer
+            final Intent intent = new Intent(this, CallLogActivity.class);
+            startActivity(intent);
+        } else if (resId == R.id.menu_add_contact) {
+            DialerUtils.startActivityWithErrorToast(
+                    this,
+                    IntentUtil.getNewContactIntent(),
+                    R.string.add_contact_not_available);
+        } else if (resId == R.id.menu_import_export) {// We hard-code the "contactsAreAvailable" argument because doing it properly would
+            // involve querying a {@link ProviderStatusLoader}, which we don't want to do right
+            // now in Dialtacts for (potential) performance reasons. Compare with how it is
+            // done in {@link PeopleActivity}.
+            if (mListsFragment.getCurrentTabIndex() == ListsFragment.TAB_INDEX_SPEED_DIAL) {
+                ImportExportDialogFragment.show(getFragmentManager(), true,
+                        DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_FAVORITES);
+            } else {
+                ImportExportDialogFragment.show(getFragmentManager(), true,
+                        DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_DEFAULT);
+            }
+            Logger.logScreenView(ScreenEvent.IMPORT_EXPORT_CONTACTS, this);
+            return true;
+        } else if (resId == R.id.menu_clear_frequents) {
+            ClearFrequentsDialog.show(getFragmentManager());
+            Logger.logScreenView(ScreenEvent.CLEAR_FREQUENTS, this);
+            return true;
+        } else if (resId == R.id.menu_call_settings) {
+            handleMenuSettings();
+            Logger.logScreenView(ScreenEvent.SETTINGS, this);
+            return true;
         }
         return false;
     }
@@ -1337,7 +1334,9 @@
 
     @Override
     public void onPageSelected(int position) {
+        updateMissedCalls();
         int tabIndex = mListsFragment.getCurrentTabIndex();
+        mPreviouslySelectedTabIndex = tabIndex;
         if (tabIndex == ListsFragment.TAB_INDEX_ALL_CONTACTS) {
             mFloatingActionButtonController.changeIcon(
                     getResources().getDrawable(R.drawable.ic_person_add_24dp),
@@ -1398,4 +1397,10 @@
         }
         return FloatingActionButtonController.ALIGN_END;
     }
+
+    private void updateMissedCalls() {
+        if (mPreviouslySelectedTabIndex == ListsFragment.TAB_INDEX_HISTORY) {
+            mListsFragment.markMissedCallsAsReadAndRemoveNotifications();
+        }
+    }
 }
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 243eda9..1823a5b 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -192,15 +192,14 @@
             return true;
         }
 
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                final Intent intent = new Intent(this, DialtactsActivity.class);
-                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivity(intent);
-                return true;
-            case R.id.delete_all:
-                ClearCallLogDialog.show(getFragmentManager());
-                return true;
+        if (item.getItemId() == android.R.id.home) {
+            final Intent intent = new Intent(this, DialtactsActivity.class);
+            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            startActivity(intent);
+            return true;
+        } else if (item.getItemId() == R.id.delete_all) {
+            ClearCallLogDialog.show(getFragmentManager());
+            return true;
         }
         return super.onOptionsItemSelected(item);
     }
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index aa97f7d..6f96ee5 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -16,6 +16,7 @@
 
 package com.android.dialer.calllog;
 
+import com.android.dialer.DialtactsActivity;
 import com.google.common.annotations.VisibleForTesting;
 
 import android.content.Context;
@@ -35,6 +36,8 @@
 import android.telephony.PhoneNumberUtils;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
+import android.util.ArrayMap;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.AccessibilityDelegate;
@@ -54,18 +57,20 @@
 import com.android.dialer.filterednumber.BlockNumberDialogFragment.Callback;
 import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.service.ExtendedBlockingButtonRenderer;
 import com.android.dialer.util.PhoneNumberUtil;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
-import com.android.incallui.CallerInfo;
 
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Adapter class to fill in data for the Call Log.
  */
 public class CallLogAdapter extends GroupingListAdapter
         implements CallLogGroupBuilder.GroupCreator,
-                VoicemailPlaybackPresenter.OnVoicemailDeletedListener {
+                VoicemailPlaybackPresenter.OnVoicemailDeletedListener,
+                ExtendedBlockingButtonRenderer.Listener {
 
     /** Interface used to initiate a refresh of the content. */
     public interface CallFetcher {
@@ -93,6 +98,7 @@
     protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
     private final CallFetcher mCallFetcher;
     private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+    private final Map<String, Boolean> mBlockedNumberCache = new ArrayMap<>();
 
     protected ContactInfoCache mContactInfoCache;
 
@@ -166,6 +172,9 @@
             } else {
                 if (viewHolder.callType == CallLog.Calls.MISSED_TYPE) {
                     CallLogAsyncTaskUtil.markCallAsRead(mContext, viewHolder.callIds);
+                    if (!mIsCallLogActivity) {
+                        ((DialtactsActivity) v.getContext()).updateTabUnreadCounts();
+                    }
                 }
                 expandViewHolderActions(viewHolder);
             }
@@ -296,6 +305,24 @@
         }
     }
 
+    @Override
+    public void onBlockedNumber(String number,String countryIso) {
+        String cacheKey = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+        if (!TextUtils.isEmpty(cacheKey)) {
+            mBlockedNumberCache.put(cacheKey, true);
+            notifyDataSetChanged();
+        }
+    }
+
+    @Override
+    public void onUnblockedNumber( String number, String countryIso) {
+        String cacheKey = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+        if (!TextUtils.isEmpty(cacheKey)) {
+            mBlockedNumberCache.put(cacheKey, false);
+            notifyDataSetChanged();
+        }
+    }
+
     /**
      * Requery on background thread when {@link Cursor} changes.
      */
@@ -367,6 +394,7 @@
         CallLogListItemViewHolder viewHolder = CallLogListItemViewHolder.create(
                 view,
                 mContext,
+                this,
                 mExpandCollapseListener,
                 mCallLogCache,
                 mCallLogListItemHelper,
diff --git a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
index d73159c..f331dd0 100644
--- a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
+++ b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
@@ -54,6 +54,7 @@
         MARK_VOICEMAIL_READ,
         MARK_CALL_READ,
         GET_CALL_DETAILS,
+        UPDATE_DURATION
     }
 
     private static final class CallDetailQuery {
@@ -408,7 +409,33 @@
                 values.put(CallLog.Calls.IS_READ, "1");
                 context.getContentResolver().update(
                         CallLog.Calls.CONTENT_URI, values, where.toString(), null);
-                ((DialtactsActivity) context).updateTabUnreadCounts();
+                return null;
+            }
+        });
+    }
+
+
+    /**
+     * Updates the duration of a voicemail call log entry.
+     */
+    public static void updateVoicemailDuration(
+            final Context context,
+            final Uri voicemailUri,
+            final int duration) {
+        if (!PermissionsUtil.hasPhonePermissions(context)) {
+            return;
+        }
+
+        if (sAsyncTaskExecutor == null) {
+            initTaskExecutor();
+        }
+
+        sAsyncTaskExecutor.submit(Tasks.UPDATE_DURATION, new AsyncTask<Void, Void, Void>() {
+            @Override
+            public Void doInBackground(Void... params) {
+                ContentValues values = new ContentValues(1);
+                values.put(CallLog.Calls.DURATION, duration);
+                context.getContentResolver().update(voicemailUri, values, null, null);
                 return null;
             }
         });
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 006fec7..9cd1359 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -16,8 +16,6 @@
 
 package com.android.dialer.calllog;
 
-import static android.Manifest.permission.READ_CALL_LOG;
-
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.KeyguardManager;
@@ -32,7 +30,7 @@
 import android.provider.CallLog;
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract;
-import android.provider.VoicemailContract.Status;
+import android.support.annotation.Nullable;
 import android.support.v13.app.FragmentCompat;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -43,7 +41,6 @@
 import com.android.contacts.common.GeoUtil;
 import com.android.contacts.common.util.PermissionsUtil;
 import com.android.dialer.R;
-import com.android.dialer.filterednumber.FilteredNumbersUtil;
 import com.android.dialer.list.ListsFragment;
 import com.android.dialer.util.EmptyLoader;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
@@ -51,6 +48,8 @@
 import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialerbind.ObjectFactory;
 
+import static android.Manifest.permission.READ_CALL_LOG;
+
 /**
  * Displays a list of call log entries. To filter for a particular kind of call
  * (all, missed or voicemails), specify it in the constructor.
@@ -68,6 +67,7 @@
     private static final String KEY_FILTER_TYPE = "filter_type";
     private static final String KEY_LOG_LIMIT = "log_limit";
     private static final String KEY_DATE_LIMIT = "date_limit";
+    private static final String KEY_IS_CALL_LOG_ACTIVITY = "is_call_log_activity";
 
     // No limit specified for the number of logs to show; use the CallLogQueryHandler's default.
     private static final int NO_LOG_LIMIT = -1;
@@ -84,11 +84,8 @@
     private LinearLayoutManager mLayoutManager;
     private CallLogAdapter mAdapter;
     private CallLogQueryHandler mCallLogQueryHandler;
-    private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
     private boolean mScrollToTop;
 
-    /** Whether there is at least one voicemail source installed. */
-    private boolean mVoicemailSourcesAvailable = false;
 
     private EmptyContentView mEmptyListView;
     private KeyguardManager mKeyguardManager;
@@ -111,7 +108,7 @@
 
     private final Handler mHandler = new Handler();
 
-    private class CustomContentObserver extends ContentObserver {
+    protected class CustomContentObserver extends ContentObserver {
         public CustomContentObserver() {
             super(mHandler);
         }
@@ -124,7 +121,6 @@
     // See issue 6363009
     private final ContentObserver mCallLogObserver = new CustomContentObserver();
     private final ContentObserver mContactsObserver = new CustomContentObserver();
-    private final ContentObserver mVoicemailStatusObserver = new CustomContentObserver();
     private boolean mRefreshDataRequired = true;
 
     private boolean mHasReadCallLogPermission = false;
@@ -199,6 +195,7 @@
             mCallTypeFilter = state.getInt(KEY_FILTER_TYPE, mCallTypeFilter);
             mLogLimit = state.getInt(KEY_LOG_LIMIT, mLogLimit);
             mDateLimit = state.getLong(KEY_DATE_LIMIT, mDateLimit);
+            mIsCallLogActivity = state.getBoolean(KEY_IS_CALL_LOG_ACTIVITY, mIsCallLogActivity);
         }
 
         final Activity activity = getActivity();
@@ -210,13 +207,7 @@
         resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
         resolver.registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,
                 mContactsObserver);
-        resolver.registerContentObserver(Status.CONTENT_URI, true, mVoicemailStatusObserver);
         setHasOptionsMenu(true);
-
-        if (mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
-            mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter
-                    .getInstance(activity, state);
-        }
     }
 
     /** Called by the CallLogQueryHandler when the list of calls has been fetched or updated. */
@@ -295,7 +286,12 @@
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
         View view = inflater.inflate(R.layout.call_log_fragment, container, false);
+        setupView(view, null);
+        return view;
+    }
 
+    protected void setupView(
+            View view, @Nullable VoicemailPlaybackPresenter voicemailPlaybackPresenter) {
         mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
         mRecyclerView.setHasFixedSize(true);
         mLayoutManager = new LinearLayoutManager(getActivity());
@@ -309,11 +305,10 @@
                 getActivity(),
                 this,
                 new ContactInfoHelper(getActivity(), currentCountryIso),
-                mVoicemailPlaybackPresenter,
+                voicemailPlaybackPresenter,
                 mIsCallLogActivity);
         mRecyclerView.setAdapter(mAdapter);
         fetchCalls();
-        return view;
     }
 
     @Override
@@ -351,26 +346,18 @@
         mAdapter.onResume();
 
         rescheduleDisplayUpdate();
-
-        if (mVoicemailPlaybackPresenter != null) {
-            mVoicemailPlaybackPresenter.onResume();
-        }
     }
 
     @Override
     public void onPause() {
         cancelDisplayUpdate();
-
-        if (mVoicemailPlaybackPresenter != null) {
-            mVoicemailPlaybackPresenter.onPause();
-        }
         mAdapter.onPause();
         super.onPause();
     }
 
     @Override
     public void onStop() {
-        updateOnTransition(false /* onEntry */);
+        updateOnTransition();
 
         super.onStop();
     }
@@ -379,13 +366,8 @@
     public void onDestroy() {
         mAdapter.changeCursor(null);
 
-        if (mVoicemailPlaybackPresenter != null) {
-            mVoicemailPlaybackPresenter.onDestroy();
-        }
-
         getActivity().getContentResolver().unregisterContentObserver(mCallLogObserver);
         getActivity().getContentResolver().unregisterContentObserver(mContactsObserver);
-        getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver);
         super.onDestroy();
     }
 
@@ -395,18 +377,15 @@
         outState.putInt(KEY_FILTER_TYPE, mCallTypeFilter);
         outState.putInt(KEY_LOG_LIMIT, mLogLimit);
         outState.putLong(KEY_DATE_LIMIT, mDateLimit);
+        outState.putBoolean(KEY_IS_CALL_LOG_ACTIVITY, mIsCallLogActivity);
 
         mAdapter.onSaveInstanceState(outState);
-
-        if (mVoicemailPlaybackPresenter != null) {
-            mVoicemailPlaybackPresenter.onSaveInstanceState(outState);
-        }
     }
 
     @Override
     public void fetchCalls() {
         mCallLogQueryHandler.fetchCalls(mCallTypeFilter, mDateLimit);
-        if (mVoicemailPlaybackPresenter != null) {
+        if (!mIsCallLogActivity) {
             ((ListsFragment) getParentFragment()).updateTabUnreadCounts();
         }
     }
@@ -456,7 +435,7 @@
         if (mMenuVisible != menuVisible) {
             mMenuVisible = menuVisible;
             if (!menuVisible) {
-                updateOnTransition(false /* onEntry */);
+                updateOnTransition();
             } else if (isResumed()) {
                 refreshData();
             }
@@ -475,7 +454,7 @@
             fetchCalls();
             mCallLogQueryHandler.fetchVoicemailStatus();
             mCallLogQueryHandler.fetchMissedCallsUnreadCount();
-            updateOnTransition(true /* onEntry */);
+            updateOnTransition();
             mRefreshDataRequired = false;
         } else {
             // Refresh the display of the existing data to update the timestamp text descriptions.
@@ -484,27 +463,17 @@
     }
 
     /**
-     * Updates the call data and notification state on entering or leaving the call log tab.
-     *
-     * If we are leaving the call log tab, mark all the missed calls as read.
+     * Updates the voicemail notification state.
      *
      * TODO: Move to CallLogActivity
      */
-    private void updateOnTransition(boolean onEntry) {
+    private void updateOnTransition() {
         // We don't want to update any call data when keyguard is on because the user has likely not
         // seen the new calls yet.
         // This might be called before onCreate() and thus we need to check null explicitly.
-        if (mKeyguardManager != null && !mKeyguardManager.inKeyguardRestrictedInputMode()) {
-            // On either of the transitions we update the missed call and voicemail notifications.
-            // While exiting we additionally consume all missed calls (by marking them as read).
-            mCallLogQueryHandler.markNewCallsAsOld();
-            if (mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
-                CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
-            } else if (((ListsFragment) getParentFragment()).getCurrentTabIndex() ==
-                    ListsFragment.TAB_INDEX_HISTORY && !onEntry) {
-                mCallLogQueryHandler.markMissedCallsAsRead();
-                CallLogNotificationsHelper.removeMissedCallNotifications(getActivity());
-            }
+        if (mKeyguardManager != null && !mKeyguardManager.inKeyguardRestrictedInputMode()
+                && mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
+            CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
         }
     }
 
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
index f76312d..1c27440 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
@@ -27,9 +27,11 @@
 import android.support.v7.widget.CardView;
 import android.support.v7.widget.RecyclerView;
 import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.ContextMenu;
 import android.view.MenuItem;
 import android.view.View;
@@ -55,7 +57,7 @@
 import com.android.dialer.filterednumber.FilteredNumbersUtil;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
-import com.android.dialer.service.SpamButtonRenderer;
+import com.android.dialer.service.ExtendedBlockingButtonRenderer;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.PhoneNumberUtil;
 import com.android.dialer.voicemail.VoicemailPlaybackLayout;
@@ -63,8 +65,9 @@
 import com.android.dialerbind.ObjectFactory;
 import com.google.common.collect.Lists;
 
-import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * This is an object containing references to views contained by the call log list item. This
@@ -74,7 +77,7 @@
  */
 public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
         implements View.OnClickListener, MenuItem.OnMenuItemClickListener,
-                View.OnCreateContextMenuListener {
+        View.OnCreateContextMenuListener {
 
     /** The root view of the call log list item */
     public final View rootView;
@@ -196,23 +199,29 @@
      */
     public ContactInfo info;
 
+    /**
+     * Whether the current log entry is a blocked number or not. Used in updatePhoto()
+     */
+    public boolean isBlocked;
+
     private final Context mContext;
     private final CallLogCache mCallLogCache;
     private final CallLogListItemHelper mCallLogListItemHelper;
     private final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
     private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+
     private final BlockNumberDialogFragment.Callback mFilteredNumberDialogCallback;
 
     private final int mPhotoSize;
-
-    private ViewStub mSpamViewStub;
-    private SpamButtonRenderer mSpamButtonRenderer;
+    private ViewStub mExtendedBlockingViewStub;
+    private final ExtendedBlockingButtonRenderer mExtendedBlockingButtonRenderer;
 
     private View.OnClickListener mExpandCollapseListener;
     private boolean mVoicemailPrimaryActionButtonClicked;
 
     private CallLogListItemViewHolder(
             Context context,
+            ExtendedBlockingButtonRenderer.Listener eventListener,
             View.OnClickListener expandCollapseListener,
             CallLogCache callLogCache,
             CallLogListItemHelper callLogListItemHelper,
@@ -244,7 +253,6 @@
         this.dayGroupHeader = dayGroupHeader;
         this.primaryActionButtonView = primaryActionButtonView;
         this.workIconView = (ImageView) rootView.findViewById(R.id.work_profile_icon);
-
         Resources resources = mContext.getResources();
         mPhotoSize = mContext.getResources().getDimensionPixelSize(R.dimen.contact_photo_size);
 
@@ -259,20 +267,23 @@
         primaryActionButtonView.setOnClickListener(this);
         primaryActionView.setOnClickListener(mExpandCollapseListener);
         primaryActionView.setOnCreateContextMenuListener(this);
+        mExtendedBlockingButtonRenderer =
+                ObjectFactory.newExtendedBlockingButtonRenderer(mContext, eventListener);
     }
 
     public static CallLogListItemViewHolder create(
             View view,
             Context context,
+            ExtendedBlockingButtonRenderer.Listener eventListener,
             View.OnClickListener expandCollapseListener,
             CallLogCache callLogCache,
             CallLogListItemHelper callLogListItemHelper,
             VoicemailPlaybackPresenter voicemailPlaybackPresenter,
             FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler,
             BlockNumberDialogFragment.Callback filteredNumberDialogCallback) {
-
         return new CallLogListItemViewHolder(
                 context,
+                eventListener,
                 expandCollapseListener,
                 callLogCache,
                 callLogListItemHelper,
@@ -350,30 +361,30 @@
 
     @Override
     public boolean onMenuItemClick(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.context_menu_block_number:
-                BlockNumberDialogFragment.show(
-                        blockId,
-                        number,
-                        countryIso,
-                        displayNumber,
-                        R.id.floating_action_button_container,
-                        ((Activity) mContext).getFragmentManager(),
-                        mFilteredNumberDialogCallback);
-                return true;
-            case R.id.context_menu_copy_to_clipboard:
-                ClipboardUtils.copyText(mContext, null, number, true);
-                return true;
-            case R.id.context_menu_copy_transcript_to_clipboard:
-                ClipboardUtils.copyText(mContext, null,
-                        phoneCallDetailsViews.voicemailTranscriptionView.getText(), true);
-                return true;
-            case R.id.context_menu_edit_before_call:
-                final Intent intent = new Intent(
-                        Intent.ACTION_DIAL, CallUtil.getCallUri(number));
-                intent.setClass(mContext, DialtactsActivity.class);
-                DialerUtils.startActivityWithErrorToast(mContext, intent);
-                return true;
+        int resId = item.getItemId();
+        if (resId == R.id.context_menu_block_number) {
+            BlockNumberDialogFragment.show(
+                    blockId,
+                    number,
+                    countryIso,
+                    displayNumber,
+                    R.id.floating_action_button_container,
+                    ((Activity) mContext).getFragmentManager(),
+                    mFilteredNumberDialogCallback);
+            return true;
+        } else if (resId == R.id.context_menu_copy_to_clipboard) {
+            ClipboardUtils.copyText(mContext, null, number, true);
+            return true;
+        } else if (resId == R.id.context_menu_copy_transcript_to_clipboard) {
+            ClipboardUtils.copyText(mContext, null,
+                    phoneCallDetailsViews.voicemailTranscriptionView.getText(), true);
+            return true;
+        } else if (resId == R.id.context_menu_edit_before_call) {
+            final Intent intent = new Intent(
+                    Intent.ACTION_DIAL, CallUtil.getCallUri(number));
+            intent.setClass(mContext, DialtactsActivity.class);
+            DialerUtils.startActivityWithErrorToast(mContext, intent);
+            return true;
         }
         return false;
     }
@@ -413,8 +424,8 @@
             callWithNoteButtonView = actionsView.findViewById(R.id.call_with_note_action);
             callWithNoteButtonView.setOnClickListener(this);
 
-            mSpamViewStub = (ViewStub) actionsView.findViewById(R.id.spam_actions_container);
-            mSpamButtonRenderer = ObjectFactory.newSpamButtonRenderer(mContext, mSpamViewStub);
+            mExtendedBlockingViewStub =
+                    (ViewStub) actionsView.findViewById(R.id.extended_blocking_actions_container);
         }
 
         bindActionButtons();
@@ -545,7 +556,7 @@
         callWithNoteButtonView.setVisibility(
                 supportsCallSubject && !isVoicemailNumber ? View.VISIBLE : View.GONE);
 
-        if(mSpamButtonRenderer != null){
+        if(mExtendedBlockingButtonRenderer != null){
             List<View> completeLogListItems = Lists.newArrayList(
                     createNewContactButtonView,
                     addToExistingContactButtonView,
@@ -554,13 +565,22 @@
                     callWithNoteButtonView,
                     detailsButtonView,
                     voicemailPlaybackView);
-            List<View> blockedNumberVisibleViews = new ArrayList<>();
-            List<View> spamNumberVisibleViews = Lists.newArrayList(detailsButtonView);
 
-            mSpamButtonRenderer.setCompleteListItemViews(completeLogListItems);
-            mSpamButtonRenderer.setFilteredNumberViews(blockedNumberVisibleViews);
-            mSpamButtonRenderer.setSpamFilteredViews(spamNumberVisibleViews);
-            mSpamButtonRenderer.render(number, countryIso);
+            List<View> blockedNumberVisibleViews = Lists.newArrayList(detailsButtonView);
+            List<View> extendedBlockingVisibleViews = Lists.newArrayList(detailsButtonView);
+
+            ExtendedBlockingButtonRenderer.ViewHolderInfo viewHolderInfo =
+                    new ExtendedBlockingButtonRenderer.ViewHolderInfo(
+                            completeLogListItems,
+                            extendedBlockingVisibleViews,
+                            blockedNumberVisibleViews,
+                            number,
+                            countryIso,
+                            nameOrNumber.toString(),
+                            displayNumber);
+            mExtendedBlockingButtonRenderer.setViewHolderInfo(viewHolderInfo);
+
+            mExtendedBlockingButtonRenderer.render(mExtendedBlockingViewStub);
         }
     }
 
@@ -605,6 +625,13 @@
     public void updatePhoto() {
         quickContactView.assignContactUri(info.lookupUri);
 
+        if (isBlocked && !TextUtils.isEmpty(number) /* maybe a private number ? */) {
+            quickContactView.setImageDrawable(mContext.getDrawable(R.drawable.blocked_contact));
+            phoneCallDetailsViews.callLocationAndDate.setText(
+                    mContext.getString(R.string.blocked_number_call_log_label));
+            return;
+        }
+
         final boolean isVoicemail = mCallLogCache.isVoicemailNumber(accountHandle, number);
         int contactType = ContactPhotoManager.TYPE_DEFAULT;
         if (isVoicemail) {
@@ -668,6 +695,7 @@
 
         CallLogListItemViewHolder viewHolder = new CallLogListItemViewHolder(
                 context,
+                null,
                 null /* expandCollapseListener */,
                 callLogCache,
                 new CallLogListItemHelper(phoneCallDetailsHelper, resources, callLogCache),
@@ -687,4 +715,4 @@
 
         return viewHolder;
     }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/dialer/calllog/CallLogNotificationsHelper.java b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
index 64ccd5f..6abf241 100644
--- a/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
+++ b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
@@ -26,6 +26,7 @@
 import android.net.Uri;
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract.PhoneLookup;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
@@ -104,37 +105,61 @@
      */
     public String getName(@Nullable String number, int numberPresentation,
                           @Nullable String countryIso) {
-        String name = PhoneNumberDisplayUtil.getDisplayName(
-                mContext,
-                number,
-                numberPresentation,
-                false).toString();
-        if (!TextUtils.isEmpty(name)) {
-            return name;
-        }
+        return getContactInfo(number, numberPresentation, countryIso).name;
+    }
 
-        // Look it up in the database.
-        name = mNameLookupQuery.query(number);
-        if (!TextUtils.isEmpty(name)) {
-            return name;
-        }
-
+    /**
+     * Given a number and number information (presentation and country ISO), get
+     * {@link ContactInfo}. If the name is empty but we have a special presentation, display that.
+     * Otherwise attempt to look it up in the database or the cache.
+     * If that fails, fall back to displaying the number.
+     */
+    public @NonNull ContactInfo getContactInfo(@Nullable String number, int numberPresentation,
+                          @Nullable String countryIso) {
         if (countryIso == null) {
             countryIso = mCurrentCountryIso;
         }
 
-        // Look it up in the cache
-        ContactInfo contactInfo = mContactInfoHelper.lookupNumber(number, countryIso);
+        ContactInfo contactInfo = new ContactInfo();
+        contactInfo.number = number;
+        contactInfo.formattedNumber = PhoneNumberUtils.formatNumber(number, countryIso);
+        // contactInfo.normalizedNumber is not PhoneNumberUtils.normalizeNumber. Read ContactInfo.
+        contactInfo.normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
 
-        if (contactInfo != null && !TextUtils.isEmpty(contactInfo.name)) {
-            return contactInfo.name;
+        // 1. Special number representation.
+        contactInfo.name = PhoneNumberDisplayUtil.getDisplayName(
+                mContext,
+                number,
+                numberPresentation,
+                false).toString();
+        if (!TextUtils.isEmpty(contactInfo.name)) {
+            return contactInfo;
         }
 
-        if (!TextUtils.isEmpty(number)) {
-            // If we cannot lookup the contact, use the number instead.
-            return PhoneNumberUtils.formatNumber(number, countryIso);
+        // 2. Personal ContactsProvider phonelookup query.
+        contactInfo.name = mNameLookupQuery.query(number);
+        if (!TextUtils.isEmpty(contactInfo.name)) {
+            return contactInfo;
         }
-        return mContext.getResources().getString(R.string.unknown);
+
+        // 3. Look it up in the cache.
+        ContactInfo cachedContactInfo = mContactInfoHelper.lookupNumber(number, countryIso);
+
+        if (cachedContactInfo != null && !TextUtils.isEmpty(cachedContactInfo.name)) {
+            return cachedContactInfo;
+        }
+
+        if (!TextUtils.isEmpty(contactInfo.formattedNumber)) {
+            // 4. If we cannot lookup the contact, use the formatted number instead.
+            contactInfo.name = contactInfo.formattedNumber;
+        } else if (!TextUtils.isEmpty(number)) {
+            // 5. If number can't be formatted, use number.
+            contactInfo.name = number;
+        } else {
+            // 6. Otherwise, it's unknown number.
+            contactInfo.name = mContext.getResources().getString(R.string.unknown);
+        }
+        return contactInfo;
     }
 
     /** Removes the missed call notifications. */
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index 40d963e..8fe4964 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -40,6 +40,15 @@
     public String label;
     public String number;
     public String formattedNumber;
+    /*
+     * ContactInfo.normalizedNumber is a column value returned by PhoneLookup query. By definition,
+     * it's E164 representation.
+     * http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookupColumns.
+     * html#NORMALIZED_NUMBER.
+     *
+     * The fallback value, when PhoneLookup fails or else, should be either null or
+     * PhoneNumberUtils.formatNumberToE164.
+     */
     public String normalizedNumber;
     /** The photo for the contact, if available. */
     public long photoId;
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index 7f08fdc..a9c7651 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -40,6 +40,7 @@
 import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
 import com.android.dialer.util.TelecomUtil;
 import com.android.dialerbind.ObjectFactory;
+import com.google.common.annotations.VisibleForTesting;
 
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -82,17 +83,17 @@
 
         if (PhoneNumberHelper.isUriNumber(number)) {
             // The number is a SIP address..
-            info = lookupContactFromUri(getContactInfoLookupUri(number));
+            info = lookupContactFromUri(getContactInfoLookupUri(number), true);
             if (info == null || info == ContactInfo.EMPTY) {
                 // If lookup failed, check if the "username" of the SIP address is a phone number.
                 String username = PhoneNumberHelper.getUsernameFromUriNumber(number);
                 if (PhoneNumberUtils.isGlobalPhoneNumber(username)) {
-                    info = queryContactInfoForPhoneNumber(username, countryIso);
+                    info = queryContactInfoForPhoneNumber(username, countryIso, true);
                 }
             }
         } else {
             // Look for a contact that has the given phone number.
-            info = queryContactInfoForPhoneNumber(number, countryIso);
+            info = queryContactInfoForPhoneNumber(number, countryIso, false);
         }
 
         final ContactInfo updatedInfo;
@@ -153,7 +154,7 @@
      * The {@link ContactInfo#formattedNumber} field is always set to {@code null} in the returned
      * value.
      */
-    public ContactInfo lookupContactFromUri(Uri uri) {
+    ContactInfo lookupContactFromUri(Uri uri, boolean isSip) {
         if (uri == null) {
             return null;
         }
@@ -163,8 +164,9 @@
 
         Cursor phoneLookupCursor = null;
         try {
-            phoneLookupCursor = mContext.getContentResolver().query(uri,
-                    PhoneQuery.PHONE_LOOKUP_PROJECTION, null, null, null);
+            String[] projection = PhoneQuery.getPhoneLookupProjection(uri);
+            phoneLookupCursor = mContext.getContentResolver().query(uri, projection, null, null,
+                    null);
         } catch (NullPointerException e) {
             // Trap NPE from pre-N CP2
             return null;
@@ -241,12 +243,13 @@
      * <p>
      * If the lookup fails for some other reason, it returns null.
      */
-    private ContactInfo queryContactInfoForPhoneNumber(String number, String countryIso) {
+    private ContactInfo queryContactInfoForPhoneNumber(String number, String countryIso,
+                                                       boolean isSip) {
         if (TextUtils.isEmpty(number)) {
             return null;
         }
 
-        ContactInfo info = lookupContactFromUri(getContactInfoLookupUri(number));
+        ContactInfo info = lookupContactFromUri(getContactInfoLookupUri(number), isSip);
         if (info != null && info != ContactInfo.EMPTY) {
             info.formattedNumber = formatPhoneNumber(number, null, countryIso);
         } else if (mCachedNumberLookupService != null) {
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
index db82295..af59686 100644
--- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
+++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
@@ -16,11 +16,6 @@
 
 package com.android.dialer.calllog;
 
-import static android.Manifest.permission.READ_CALL_LOG;
-import static android.Manifest.permission.READ_CONTACTS;
-
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.compat.TelephonyManagerCompat;
 import com.google.common.collect.Maps;
 
 import android.app.Notification;
@@ -33,11 +28,15 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.net.Uri;
+import android.support.annotation.Nullable;
+import android.support.v4.util.Pair;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.TelephonyManagerCompat;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
@@ -172,22 +171,7 @@
         // TODO: Use the photo of contact if all calls are from the same person.
         final int icon = android.R.drawable.stat_notify_voicemail;
 
-        Uri ringtoneUri = null;
-        int notificationDefaults = 0;
-        if (callToNotify != null) {
-            PhoneAccountHandle accountHandle = new PhoneAccountHandle(
-                    ComponentName.unflattenFromString(callToNotify.accountComponentName),
-                    callToNotify.accountId);
-            ringtoneUri = TelephonyManagerCompat
-                    .getVoicemailRingtoneUri(getTelephonyManager(), accountHandle);
-            if (ContactsUtils.FLAG_N_FEATURE) {
-                notificationDefaults = TelephonyManagerCompat.isVoicemailVibrationEnabled(
-                        getTelephonyManager(), accountHandle)
-                        ? Notification.DEFAULT_VIBRATE : 0;
-            } else {
-                notificationDefaults = Notification.DEFAULT_ALL;
-            }
-        }
+        Pair<Uri, Integer> info = getNotificationInfo(callToNotify);
 
         Notification.Builder notificationBuilder = new Notification.Builder(mContext)
                 .setSmallIcon(icon)
@@ -195,8 +179,8 @@
                 .setContentText(callers)
                 .setStyle(new Notification.BigTextStyle().bigText(transcription))
                 .setColor(resources.getColor(R.color.dialer_theme_color))
-                .setSound(ringtoneUri)
-                .setDefaults(notificationDefaults)
+                .setSound(info.first)
+                .setDefaults(info.second)
                 .setDeleteIntent(createMarkNewVoicemailsAsOldIntent())
                 .setAutoCancel(true);
 
@@ -221,6 +205,36 @@
                 notificationBuilder.build());
     }
 
+    /**
+     * Determines which ringtone Uri and Notification defaults to use when updating the notification
+     * for the given call.
+     */
+    private Pair<Uri, Integer> getNotificationInfo(@Nullable NewCall callToNotify) {
+        if (callToNotify == null) {
+            return new Pair<>(null, 0);
+        }
+
+        if (callToNotify.accountComponentName == null || callToNotify.accountId == null) {
+            return new Pair<>(null, Notification.DEFAULT_ALL);
+        }
+
+        PhoneAccountHandle accountHandle = new PhoneAccountHandle(
+                ComponentName.unflattenFromString(callToNotify.accountComponentName),
+                callToNotify.accountId);
+        return new Pair<>(
+                TelephonyManagerCompat.getVoicemailRingtoneUri(
+                        getTelephonyManager(), accountHandle),
+                getNotificationDefaults(accountHandle));
+    }
+
+    private int getNotificationDefaults(PhoneAccountHandle accountHandle) {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return TelephonyManagerCompat.isVoicemailVibrationEnabled(getTelephonyManager(),
+                    accountHandle) ? Notification.DEFAULT_VIBRATE : 0;
+        }
+        return Notification.DEFAULT_ALL;
+    }
+
     /** Creates a pending intent that marks all new voicemails as old. */
     private PendingIntent createMarkNewVoicemailsAsOldIntent() {
         Intent intent = new Intent(mContext, CallLogNotificationsService.class);
diff --git a/src/com/android/dialer/calllog/MissedCallNotifier.java b/src/com/android/dialer/calllog/MissedCallNotifier.java
index 8811baf..a9dfd44 100644
--- a/src/com/android/dialer/calllog/MissedCallNotifier.java
+++ b/src/com/android/dialer/calllog/MissedCallNotifier.java
@@ -26,6 +26,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.calllog.CallLogNotificationsHelper.NewCall;
 import com.android.dialer.DialtactsActivity;
@@ -97,14 +98,18 @@
         // 1 missed call: <caller name || handle>
         // More than 1 missed call: <number of calls> + "missed calls"
         if (count == 1) {
-            titleResId = R.string.notification_missedCallTitle;
-
             //TODO: look up caller ID that is not in contacts.
-            expandedText = CallLogNotificationsHelper.getInstance(mContext)
-                    .getName(useCallLog ? newestCall.number : number,
+            ContactInfo contactInfo = CallLogNotificationsHelper.getInstance(mContext)
+                    .getContactInfo(useCallLog ? newestCall.number : number,
                             useCallLog ? newestCall.numberPresentation
                                     : Calls.PRESENTATION_ALLOWED,
                             useCallLog ? newestCall.countryIso : null);
+
+            titleResId = contactInfo.userType == ContactsUtils.USER_TYPE_WORK
+                    ? R.string.notification_missedWorkCallTitle
+                    : R.string.notification_missedCallTitle;
+
+            expandedText = contactInfo.name;
         } else {
             titleResId = R.string.notification_missedCallsTitle;
             expandedText =
diff --git a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
index be02e4c..7b149e2 100644
--- a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
@@ -326,7 +326,7 @@
             text = dateText;
         }
 
-        if (details.callTypes[0] == Calls.VOICEMAIL_TYPE) {
+        if (details.callTypes[0] == Calls.VOICEMAIL_TYPE && details.duration > 0) {
             views.callLocationAndDate.setText(mResources.getString(
                     R.string.voicemailCallLogDateTimeFormatWithDuration, text,
                     getVoicemailDuration(details)));
diff --git a/src/com/android/dialer/calllog/PhoneQuery.java b/src/com/android/dialer/calllog/PhoneQuery.java
index 200b5e1..f1f14c6 100644
--- a/src/com/android/dialer/calllog/PhoneQuery.java
+++ b/src/com/android/dialer/calllog/PhoneQuery.java
@@ -16,9 +16,15 @@
 
 package com.android.dialer.calllog;
 
+import android.net.Uri;
+import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.PhoneLookup;
 
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.PhoneLookupSdkCompat;
+import com.android.contacts.common.ContactsUtils;
+
 /**
  * The queries to look up the {@link ContactInfo} for a given number in the Call Log.
  */
@@ -26,10 +32,11 @@
 
     /**
      * Projection to look up the ContactInfo. Does not include DISPLAY_NAME_ALTERNATIVE as that
-     * column isn't available in ContactsCommon.PhoneLookup
+     * column isn't available in ContactsCommon.PhoneLookup.
+     * We should always use this projection starting from NYC onward.
      */
-    public static final String[] PHONE_LOOKUP_PROJECTION = new String[] {
-            PhoneLookup._ID,
+    private static final String[] PHONE_LOOKUP_PROJECTION = new String[] {
+            PhoneLookupSdkCompat.CONTACT_ID,
             PhoneLookup.DISPLAY_NAME,
             PhoneLookup.TYPE,
             PhoneLookup.LABEL,
@@ -37,7 +44,36 @@
             PhoneLookup.NORMALIZED_NUMBER,
             PhoneLookup.PHOTO_ID,
             PhoneLookup.LOOKUP_KEY,
-            PhoneLookup.PHOTO_URI};
+            PhoneLookup.PHOTO_URI
+    };
+
+    /**
+     * Similar to {@link PHONE_LOOKUP_PROJECTION}. In pre-N, contact id is stored in
+     * {@link PhoneLookup#_ID} in non-sip query.
+     */
+    private static final String[] BACKWARD_COMPATIBLE_NON_SIP_PHONE_LOOKUP_PROJECTION =
+            new String[] {
+                    PhoneLookup._ID,
+                    PhoneLookup.DISPLAY_NAME,
+                    PhoneLookup.TYPE,
+                    PhoneLookup.LABEL,
+                    PhoneLookup.NUMBER,
+                    PhoneLookup.NORMALIZED_NUMBER,
+                    PhoneLookup.PHOTO_ID,
+                    PhoneLookup.LOOKUP_KEY,
+                    PhoneLookup.PHOTO_URI
+            };
+
+    public static String[] getPhoneLookupProjection(Uri phoneLookupUri) {
+        if (CompatUtils.isNCompatible()) {
+            return PHONE_LOOKUP_PROJECTION;
+        }
+        // Pre-N
+        boolean isSip = phoneLookupUri.getBooleanQueryParameter(
+                ContactsContract.PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS, false);
+        return (isSip) ? PHONE_LOOKUP_PROJECTION
+                : BACKWARD_COMPATIBLE_NON_SIP_PHONE_LOOKUP_PROJECTION;
+    }
 
     public static final int PERSON_ID = 0;
     public static final int NAME = 1;
diff --git a/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java b/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java
new file mode 100644
index 0000000..311ff7d
--- /dev/null
+++ b/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.calllog;
+
+import android.database.ContentObserver;
+import android.os.Bundle;
+import android.provider.CallLog;
+import android.provider.VoicemailContract;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+import com.android.dialer.list.ListsFragment;
+import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
+
+public class VisualVoicemailCallLogFragment extends CallLogFragment {
+
+    private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
+    private final ContentObserver mVoicemailStatusObserver = new CustomContentObserver();
+
+    public VisualVoicemailCallLogFragment() {
+        super(CallLog.Calls.VOICEMAIL_TYPE);
+    }
+
+    @Override
+    public void onCreate(Bundle state) {
+        super.onCreate(state);
+        mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter.getInstance(getActivity(), state);
+        getActivity().getContentResolver().registerContentObserver(
+                VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
+        View view = inflater.inflate(R.layout.call_log_fragment, container, false);
+        setupView(view, mVoicemailPlaybackPresenter);
+        return view;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mVoicemailPlaybackPresenter.onResume();
+    }
+
+    @Override
+    public void onPause() {
+        mVoicemailPlaybackPresenter.onPause();
+        super.onPause();
+    }
+
+    @Override
+    public void onDestroy() {
+        mVoicemailPlaybackPresenter.onDestroy();
+        getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver);
+        super.onDestroy();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mVoicemailPlaybackPresenter.onSaveInstanceState(outState);
+    }
+
+    @Override
+    public void fetchCalls() {
+        super.fetchCalls();
+        ((ListsFragment) getParentFragment()).updateTabUnreadCounts();
+    }
+}
diff --git a/src/com/android/dialer/compat/CallAudioStateCompat.java b/src/com/android/dialer/compat/CallAudioStateCompat.java
deleted file mode 100644
index 51009d0..0000000
--- a/src/com/android/dialer/compat/CallAudioStateCompat.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.dialer.compat;
-
-import android.os.Build;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.telecom.CallAudioState;
-
-import com.android.contacts.common.compat.SdkVersionOverride;
-
-import java.util.Locale;
-
-/**
- * Compatibility class for {@link CallAudioState}
- */
-public class CallAudioStateCompat {
-
-    /**
-     * Direct the audio stream through the device's earpiece.
-     */
-    public static final int ROUTE_EARPIECE = CallAudioState.ROUTE_EARPIECE;
-
-    /**
-     * Direct the audio stream through Bluetooth.
-     */
-    public static final int ROUTE_BLUETOOTH = CallAudioState.ROUTE_BLUETOOTH;
-
-    /**
-     * Direct the audio stream through a wired headset.
-     */
-    public static final int ROUTE_WIRED_HEADSET = CallAudioState.ROUTE_WIRED_HEADSET;
-
-    /**
-     * Direct the audio stream through the device's speakerphone.
-     */
-    public static final int ROUTE_SPEAKER = CallAudioState.ROUTE_SPEAKER;
-
-    /**
-     * Direct the audio stream through the device's earpiece or wired headset if one is connected.
-     */
-    public static final int ROUTE_WIRED_OR_EARPIECE = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
-
-    private final CallAudioStateImpl mCallAudioState;
-
-    /**
-     * Constructor for a {@link CallAudioStateCompat} object.
-     *
-     * @param muted {@code true} if the call is muted, {@code false} otherwise.
-     * @param route The current audio route being used. Allowed values: {@link #ROUTE_EARPIECE}
-     * {@link #ROUTE_BLUETOOTH} {@link #ROUTE_WIRED_HEADSET} {@link #ROUTE_SPEAKER}
-     * @param supportedRouteMask Bit mask of all routes supported by this call. This should be a
-     * bitwise combination of the following values: {@link #ROUTE_EARPIECE} {@link #ROUTE_BLUETOOTH}
-     * {@link #ROUTE_WIRED_HEADSET} {@link #ROUTE_SPEAKER}
-     */
-    public CallAudioStateCompat(boolean muted, int route, int supportedRouteMask) {
-        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
-                < Build.VERSION_CODES.M) {
-            mCallAudioState = new CallAudioStateBase(muted, route, supportedRouteMask);
-        } else {
-            mCallAudioState = new CallAudioStateMarshmallow(muted, route, supportedRouteMask);
-        }
-    }
-
-    /**
-     * @return {@code true} if the call is muted, {@code false} otherwise.
-     */
-    public boolean isMuted() {
-        return mCallAudioState.isMuted();
-    }
-
-    /**
-     * @return The current audio route being used.
-     */
-    public int getRoute() {
-        return mCallAudioState.getRoute();
-    }
-
-    /**
-     * @return Bit mask of all routes supported by this call.
-     */
-    public int getSupportedRouteMask() {
-        return mCallAudioState.getSupportedRouteMask();
-    }
-
-    /**
-     * Converts the provided audio route into a human readable string representation.
-     *
-     * @param route to convert into a string.
-     * @return String representation of the provided audio route.
-     */
-    public static String audioRouteToString(int route) {
-        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
-                < Build.VERSION_CODES.M) {
-            return CallAudioStateBase.audioRouteToString(route);
-        }
-        return CallAudioStateMarshmallow.audioRouteToString(route);
-    }
-
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
-        CallAudioStateCompat that = (CallAudioStateCompat) o;
-
-        return mCallAudioState.equals(that.mCallAudioState);
-
-    }
-
-    @Override
-    public int hashCode() {
-        return mCallAudioState.hashCode();
-    }
-
-    @Override
-    public String toString() {
-        return mCallAudioState.toString();
-    }
-
-    private interface CallAudioStateImpl {
-        boolean isMuted();
-        int getRoute();
-        int getSupportedRouteMask();
-    }
-
-    /**
-     * CallAudioStateImpl to use if the Sdk version is lower than
-     * {@link android.os.Build.VERSION_CODES.M}
-     *
-     * Coped from {@link android.telecom.CallAudioState}
-     *
-     * Encapsulates the telecom audio state, including the current audio routing, supported audio
-     * routing and mute.
-     */
-    private static class CallAudioStateBase implements CallAudioStateImpl, Parcelable {
-
-        /**
-         * Bit mask of all possible audio routes.
-         */
-        private static final int ROUTE_ALL = ROUTE_EARPIECE | ROUTE_BLUETOOTH | ROUTE_WIRED_HEADSET
-                | ROUTE_SPEAKER;
-
-        private final boolean isMuted;
-        private final int route;
-        private final int supportedRouteMask;
-
-        /**
-         * Constructor for a {@link CallAudioStateBase} object.
-         *
-         * @param muted {@code true} if the call is muted, {@code false} otherwise.
-         * @param route The current audio route being used. Allowed values: {@link #ROUTE_EARPIECE}
-         *      {@link #ROUTE_BLUETOOTH}, {@link #ROUTE_WIRED_HEADSET}, {@link #ROUTE_SPEAKER}
-         * @param supportedRouteMask Bit mask of all routes supported by this call. This should be a
-         *      bitwise combination of the following values: {@link #ROUTE_EARPIECE},
-         *      {@link #ROUTE_BLUETOOTH}, {@link #ROUTE_WIRED_HEADSET}, {@link #ROUTE_SPEAKER}
-         */
-        public CallAudioStateBase(boolean muted, int route, int supportedRouteMask) {
-            this.isMuted = muted;
-            this.route = route;
-            this.supportedRouteMask = supportedRouteMask;
-        }
-
-        @Override
-        public boolean equals(Object obj) {
-            if (obj == null) {
-                return false;
-            }
-            if (!(obj instanceof CallAudioStateBase)) {
-                return false;
-            }
-            CallAudioStateBase state = (CallAudioStateBase) obj;
-            return isMuted() == state.isMuted() && getRoute() == state.getRoute() &&
-                    getSupportedRouteMask() == state.getSupportedRouteMask();
-        }
-
-        @Override
-        public String toString() {
-            return String.format(Locale.US,
-                    "[AudioState isMuted: %b, route: %s, supportedRouteMask: %s]",
-                    isMuted,
-                    audioRouteToString(route),
-                    audioRouteToString(supportedRouteMask));
-        }
-
-        /**
-         * @return {@code true} if the call is muted, {@code false} otherwise.
-         */
-        @Override
-        public boolean isMuted() {
-            return isMuted;
-        }
-
-        /**
-         * @return The current audio route being used.
-         */
-        public int getRoute() {
-            return route;
-        }
-
-        /**
-         * @return Bit mask of all routes supported by this call.
-         */
-        public int getSupportedRouteMask() {
-            return supportedRouteMask;
-        }
-
-        /**
-         * Converts the provided audio route into a human readable string representation.
-         *
-         * @param route to convert into a string.
-         * @return String representation of the provided audio route.
-         */
-        public static String audioRouteToString(int route) {
-            if (route == 0 || (route & ~ROUTE_ALL) != 0x0) {
-                return "UNKNOWN";
-            }
-
-            StringBuffer buffer = new StringBuffer();
-            if ((route & ROUTE_EARPIECE) == ROUTE_EARPIECE) {
-                listAppend(buffer, "EARPIECE");
-            }
-            if ((route & ROUTE_BLUETOOTH) == ROUTE_BLUETOOTH) {
-                listAppend(buffer, "BLUETOOTH");
-            }
-            if ((route & ROUTE_WIRED_HEADSET) == ROUTE_WIRED_HEADSET) {
-                listAppend(buffer, "WIRED_HEADSET");
-            }
-            if ((route & ROUTE_SPEAKER) == ROUTE_SPEAKER) {
-                listAppend(buffer, "SPEAKER");
-            }
-
-            return buffer.toString();
-        }
-
-        /**
-         * Responsible for creating AudioState objects for deserialized Parcels.
-         */
-        public static final Parcelable.Creator<CallAudioStateBase> CREATOR =
-                new Parcelable.Creator<CallAudioStateBase>() {
-
-                    @Override
-                    public CallAudioStateBase createFromParcel(Parcel source) {
-                        boolean isMuted = source.readByte() == 0 ? false : true;
-                        int route = source.readInt();
-                        int supportedRouteMask = source.readInt();
-                        return new CallAudioStateBase(isMuted, route, supportedRouteMask);
-                    }
-
-                    @Override
-                    public CallAudioStateBase[] newArray(int size) {
-                        return new CallAudioStateBase[size];
-                    }
-                };
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override
-        public int describeContents() {
-            return 0;
-        }
-
-        /**
-         * Writes AudioState object into a serializeable Parcel.
-         */
-        @Override
-        public void writeToParcel(Parcel destination, int flags) {
-            destination.writeByte((byte) (isMuted ? 1 : 0));
-            destination.writeInt(route);
-            destination.writeInt(supportedRouteMask);
-        }
-
-        private static void listAppend(StringBuffer buffer, String str) {
-            if (buffer.length() > 0) {
-                buffer.append(", ");
-            }
-            buffer.append(str);
-        }
-    }
-
-    /**
-     * CallAudioStateImpl to use if the Sdk version is at least
-     * {@link android.os.Build.VERSION_CODES.M}
-     */
-    private static class CallAudioStateMarshmallow implements CallAudioStateImpl {
-
-        private final CallAudioState mCallAudioStateDelegate;
-
-        public CallAudioStateMarshmallow(boolean muted, int route, int supportedRouteMask) {
-            mCallAudioStateDelegate = new CallAudioState(muted, route, supportedRouteMask);
-        }
-
-        @Override
-        public boolean isMuted() {
-            return mCallAudioStateDelegate.isMuted();
-        }
-
-        @Override
-        public int getRoute() {
-            return mCallAudioStateDelegate.getRoute();
-        }
-
-        @Override
-        public int getSupportedRouteMask() {
-            return mCallAudioStateDelegate.getSupportedRouteMask();
-        }
-
-        public static String audioRouteToString(int route) {
-            return CallAudioState.audioRouteToString(route);
-        }
-    }
-}
diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java
index 1f926c1..5edfb27 100644
--- a/src/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/src/com/android/dialer/database/DialerDatabaseHelper.java
@@ -39,6 +39,7 @@
 import com.android.contacts.common.util.PermissionsUtil;
 import com.android.contacts.common.util.StopWatch;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.database.VoicemailArchiveContract.VoicemailArchive;
 import com.android.dialer.R;
 import com.android.dialer.dialpad.SmartDialNameMatcher;
 import com.android.dialer.dialpad.SmartDialPrefix;
@@ -75,7 +76,7 @@
      *   0-98   KitKat
      * </pre>
      */
-    public static final int DATABASE_VERSION = 8;
+    public static final int DATABASE_VERSION = 9;
     public static final String DATABASE_NAME = "dialer.db";
 
     /**
@@ -94,6 +95,8 @@
         static final String SMARTDIAL_TABLE = "smartdial_table";
         /** Saves all possible prefixes to refer to a contacts.*/
         static final String PREFIX_TABLE = "prefix_table";
+        /** Saves all archived voicemail information. */
+        static final String VOICEMAIL_ARCHIVE_TABLE = "voicemail_archive_table";
         /** Database properties for internal use */
         static final String PROPERTIES = "properties";
     }
@@ -434,6 +437,8 @@
                 + FilteredNumberColumns.TYPE + " INTEGER,"
                 + FilteredNumberColumns.SOURCE + " INTEGER"
                 + ");");
+
+        createVoicemailArchiveTable(db);
         setProperty(db, DATABASE_VERSION_PROPERTY, String.valueOf(DATABASE_VERSION));
         if (!mIsTestInstance) {
             resetSmartDialLastUpdatedTime();
@@ -445,6 +450,7 @@
         db.execSQL("DROP TABLE IF EXISTS " + Tables.SMARTDIAL_TABLE);
         db.execSQL("DROP TABLE IF EXISTS " + Tables.PROPERTIES);
         db.execSQL("DROP TABLE IF EXISTS " + Tables.FILTERED_NUMBER_TABLE);
+        db.execSQL("DROP TABLE IF EXISTS " + Tables.VOICEMAIL_ARCHIVE_TABLE);
     }
 
     @Override
@@ -486,6 +492,12 @@
             oldVersion = 8;
         }
 
+        if (oldVersion < 9) {
+            db.execSQL("DROP TABLE IF EXISTS " + Tables.VOICEMAIL_ARCHIVE_TABLE);
+            createVoicemailArchiveTable(db);
+            oldVersion = 9;
+        }
+
         if (oldVersion != DATABASE_VERSION) {
             throw new IllegalStateException(
                     "error upgrading the database to version " + DATABASE_VERSION);
@@ -653,6 +665,41 @@
     }
 
     /**
+     * All columns excluding MIME_TYPE, _DATA, ARCHIVED, SERVER_ID, are the same as
+     *  the columns in the {@link android.provider.CallLog.Calls} table.
+     *
+     *  @param db Database pointer to the dialer database.
+     */
+    private void createVoicemailArchiveTable(SQLiteDatabase db) {
+        db.execSQL("CREATE TABLE " + Tables.VOICEMAIL_ARCHIVE_TABLE + " ("
+                + VoicemailArchive._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+                + VoicemailArchive.NUMBER + " TEXT,"
+                + VoicemailArchive.DATE + " LONG,"
+                + VoicemailArchive.DURATION + " LONG,"
+                + VoicemailArchive.MIME_TYPE + " TEXT,"
+                + VoicemailArchive.COUNTRY_ISO + " TEXT,"
+                + VoicemailArchive._DATA + " TEXT,"
+                + VoicemailArchive.GEOCODED_LOCATION + " TEXT,"
+                + VoicemailArchive.CACHED_NAME + " TEXT,"
+                + VoicemailArchive.CACHED_NUMBER_TYPE + " INTEGER,"
+                + VoicemailArchive.CACHED_NUMBER_LABEL + " TEXT,"
+                + VoicemailArchive.CACHED_LOOKUP_URI + " TEXT,"
+                + VoicemailArchive.CACHED_MATCHED_NUMBER + " TEXT,"
+                + VoicemailArchive.CACHED_NORMALIZED_NUMBER + " TEXT,"
+                + VoicemailArchive.CACHED_PHOTO_ID + " LONG,"
+                + VoicemailArchive.CACHED_FORMATTED_NUMBER + " TEXT,"
+                + VoicemailArchive.ARCHIVED + " INTEGER,"
+                + VoicemailArchive.NUMBER_PRESENTATION + " INTEGER,"
+                + VoicemailArchive.ACCOUNT_COMPONENT_NAME + " TEXT,"
+                + VoicemailArchive.ACCOUNT_ID + " TEXT,"
+                + VoicemailArchive.FEATURES + " INTEGER,"
+                + VoicemailArchive.SERVER_ID + " INTEGER,"
+                + VoicemailArchive.TRANSCRIPTION + " TEXT,"
+                + VoicemailArchive.CACHED_PHOTO_URI + " TEXT"
+                + ");");
+    }
+
+    /**
      * Removes all entries in the smartdial contact database.
      */
     @VisibleForTesting
diff --git a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
index ff9b1be..39ae1ca 100644
--- a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
+++ b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
@@ -27,7 +27,6 @@
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 
-import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberSources;
diff --git a/src/com/android/dialer/database/VoicemailArchiveContract.java b/src/com/android/dialer/database/VoicemailArchiveContract.java
new file mode 100644
index 0000000..92d9c17
--- /dev/null
+++ b/src/com/android/dialer/database/VoicemailArchiveContract.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.net.Uri;
+import android.provider.BaseColumns;
+import android.provider.CallLog;
+import android.provider.OpenableColumns;
+
+/**
+ * Contains definitions for the supported URIs and columns for the voicemail archive table.
+ * All the fields excluding MIME_TYPE, _DATA, ARCHIVED, SERVER_ID, mirror the fields in the
+ * contract provided in {@link CallLog.Calls}.
+ */
+public final class VoicemailArchiveContract {
+
+    /** The authority used by the voicemail archive provider. */
+    public static final String AUTHORITY = "com.android.dialer.database.voicemailarchiveprovider";
+
+    /** A content:// style uri for the voicemail archive provider */
+    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
+
+    public static final class VoicemailArchive implements BaseColumns, OpenableColumns {
+
+        public static final String VOICEMAIL_ARCHIVE_TABLE = "voicemail_archive_table";
+
+        public static final Uri CONTENT_URI = Uri.withAppendedPath(
+                AUTHORITY_URI,
+                VOICEMAIL_ARCHIVE_TABLE);
+
+        /**
+         * @see android.provider.CallLog.Calls#NUMBER
+         * TYPE: TEXT
+         */
+        public static final String NUMBER = CallLog.Calls.NUMBER;
+
+        /**
+         * @see android.provider.CallLog.Calls#DATE
+         * TYPE: LONG
+         */
+        public static final String DATE = CallLog.Calls.DATE;
+
+        /**
+         * @see android.provider.CallLog.Calls#DURATION
+         * TYPE: LONG
+         */
+        public static final String DURATION =  CallLog.Calls.DURATION;
+
+        /**
+         * The mime type of the archived voicemail file.
+         * TYPE: TEXT
+         */
+        public static final String MIME_TYPE = "mime_type";
+
+        /**
+         * @see android.provider.CallLog.Calls#COUNTRY_ISO
+         * TYPE: LONG
+         */
+        public static final String COUNTRY_ISO = CallLog.Calls.COUNTRY_ISO;
+
+        /**
+         * The path of the archived voicemail file.
+         * TYPE: TEXT
+         */
+        public static final String _DATA = "_data";
+
+        /**
+         * @see android.provider.CallLog.Calls#GEOCODED_LOCATION
+         * TYPE: TEXT
+         */
+        public static final String GEOCODED_LOCATION = CallLog.Calls.GEOCODED_LOCATION;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_NAME
+         * TYPE: TEXT
+         */
+        public static final String CACHED_NAME = CallLog.Calls.CACHED_NAME;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_NUMBER_TYPE
+         * TYPE: INTEGER
+         */
+        public static final String CACHED_NUMBER_TYPE = CallLog.Calls.CACHED_NUMBER_TYPE;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_NUMBER_LABEL
+         * TYPE: TEXT
+         */
+        public static final String CACHED_NUMBER_LABEL = CallLog.Calls.CACHED_NUMBER_LABEL;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_LOOKUP_URI
+         * TYPE: TEXT
+         */
+        public static final String CACHED_LOOKUP_URI = CallLog.Calls.CACHED_LOOKUP_URI;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_MATCHED_NUMBER
+         * TYPE: TEXT
+         */
+        public static final String CACHED_MATCHED_NUMBER = CallLog.Calls.CACHED_MATCHED_NUMBER;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_NORMALIZED_NUMBER
+         * TYPE: TEXT
+         */
+        public static final String CACHED_NORMALIZED_NUMBER =
+                CallLog.Calls.CACHED_NORMALIZED_NUMBER;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_PHOTO_ID
+         * TYPE: LONG
+         */
+        public static final String CACHED_PHOTO_ID = CallLog.Calls.CACHED_PHOTO_ID;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_FORMATTED_NUMBER
+         * TYPE: TEXT
+         */
+        public static final String CACHED_FORMATTED_NUMBER = CallLog.Calls.CACHED_FORMATTED_NUMBER;
+
+        /**
+         * If the voicemail was archived by the user by pressing the archive button, this is set to
+         * 1 (true). If the voicemail was archived for the purpose of forwarding to other
+         * applications, this is set to 0 (false).
+         * TYPE: INTEGER
+         */
+        public static final String ARCHIVED = "archived_by_user";
+
+        /**
+         * @see android.provider.CallLog.Calls#NUMBER_PRESENTATION
+         * TYPE: INTEGER
+         */
+        public static final String NUMBER_PRESENTATION = CallLog.Calls.NUMBER_PRESENTATION;
+
+        /**
+         * @see android.provider.CallLog.Calls#PHONE_ACCOUNT_COMPONENT_NAME
+         * TYPE: TEXT
+         */
+        public static final String ACCOUNT_COMPONENT_NAME =
+                CallLog.Calls.PHONE_ACCOUNT_COMPONENT_NAME;
+
+        /**
+         * @see android.provider.CallLog.Calls#PHONE_ACCOUNT_ID
+         * TYPE: TEXT
+         */
+        public static final String ACCOUNT_ID = CallLog.Calls.PHONE_ACCOUNT_ID;
+
+        /**
+         * @see android.provider.CallLog.Calls#FEATURES
+         * TYPE: INTEGER
+         */
+        public static final String FEATURES = CallLog.Calls.FEATURES;
+
+        /**
+         * The id of the voicemail on the server.
+         * TYPE: INTEGER
+         */
+        public static final String SERVER_ID = "server_id";
+
+        /**
+         * @see android.provider.CallLog.Calls#TRANSCRIPTION
+         * TYPE: TEXT
+         */
+        public static final String TRANSCRIPTION = CallLog.Calls.TRANSCRIPTION;
+
+        /**
+         * @see android.provider.CallLog.Calls#CACHED_PHOTO_URI
+         * TYPE: TEXT
+         */
+        public static final String CACHED_PHOTO_URI = CallLog.Calls.CACHED_PHOTO_URI;
+
+        /**
+         * The MIME type of a {@link #CONTENT_URI} single voicemail.
+         */
+        public static final String CONTENT_ITEM_TYPE =
+                "vnd.android.cursor.item/voicmail_archive_table";
+
+        public static final Uri buildWithId(int id) {
+            return Uri.withAppendedPath(CONTENT_URI, Integer.toString(id));
+        }
+
+        /** Not instantiable. */
+        private VoicemailArchive() {
+        }
+    }
+}
diff --git a/src/com/android/dialer/database/VoicemailArchiveProvider.java b/src/com/android/dialer/database/VoicemailArchiveProvider.java
new file mode 100644
index 0000000..ae73670
--- /dev/null
+++ b/src/com/android/dialer/database/VoicemailArchiveProvider.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.content.ContentProvider;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteQueryBuilder;
+import android.net.Uri;
+import android.os.ParcelFileDescriptor;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+
+import com.android.dialerbind.DatabaseHelperManager;
+import com.google.common.annotations.VisibleForTesting;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+
+/**
+ * An implementation of the Voicemail Archive content provider. This class performs
+ * all database level operations on the voicemail_archive_table.
+ */
+public class VoicemailArchiveProvider extends ContentProvider {
+    private static final String TAG = "VMArchiveProvider";
+    private static final int VOICEMAIL_ARCHIVE_TABLE = 1;
+    private static final int VOICEMAIL_ARCHIVE_TABLE_ID = 2;
+    private static final String VOICEMAIL_FOLDER = "voicemails";
+
+    private DialerDatabaseHelper mDialerDatabaseHelper;
+    private final UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+
+    @Override
+    public boolean onCreate() {
+         mDialerDatabaseHelper = getDatabaseHelper(getContext());
+         if (mDialerDatabaseHelper == null) {
+             return false;
+         }
+        mUriMatcher.addURI(VoicemailArchiveContract.AUTHORITY,
+                 VoicemailArchiveContract.VoicemailArchive.VOICEMAIL_ARCHIVE_TABLE,
+                 VOICEMAIL_ARCHIVE_TABLE);
+        mUriMatcher.addURI(VoicemailArchiveContract.AUTHORITY,
+                 VoicemailArchiveContract.VoicemailArchive.VOICEMAIL_ARCHIVE_TABLE + "/#",
+                 VOICEMAIL_ARCHIVE_TABLE_ID);
+         return true;
+    }
+
+    @VisibleForTesting
+    protected DialerDatabaseHelper getDatabaseHelper(Context context) {
+        return DatabaseHelperManager.getDatabaseHelper(context);
+    }
+
+    /**
+     * Used by the test class because it extends {@link android.test.ProviderTestCase2} in which the
+     * {@link android.test.IsolatedContext} returns /dev/null when getFilesDir() is called.
+     *
+     * @see android.test.IsolatedContext#getFilesDir
+     */
+    @VisibleForTesting
+    protected File getFilesDir() {
+        return getContext().getFilesDir();
+    }
+
+    @Nullable
+    @Override
+    public Cursor query(Uri uri,
+                        @Nullable String[] projection,
+                        @Nullable String selection,
+                        @Nullable String[] selectionArgs,
+                        @Nullable String sortOrder) {
+        SQLiteDatabase db = mDialerDatabaseHelper.getReadableDatabase();
+        SQLiteQueryBuilder queryBuilder = getQueryBuilder(uri);
+        Cursor cursor = queryBuilder
+                .query(db, projection, selection, selectionArgs, null, null, sortOrder);
+        if (cursor != null) {
+            cursor.setNotificationUri(getContext().getContentResolver(),
+                    VoicemailArchiveContract.VoicemailArchive.CONTENT_URI);
+        }
+        return cursor;
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        return VoicemailArchiveContract.VoicemailArchive.CONTENT_ITEM_TYPE;
+    }
+
+    @Nullable
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+        long id = db.insert(DialerDatabaseHelper.Tables.VOICEMAIL_ARCHIVE_TABLE,
+                null, values);
+        if (id < 0) {
+            return null;
+        }
+        notifyChange(uri);
+        // Create the directory for archived voicemails if it doesn't already exist
+        File directory = new File(getFilesDir(), VOICEMAIL_FOLDER);
+        directory.mkdirs();
+
+        // Update the row's _data column with a file path in the voicemails folder
+        Uri newUri = ContentUris.withAppendedId(uri, id);
+        File voicemailFile = new File(directory, Long.toString(id));
+        values.put(VoicemailArchiveContract.VoicemailArchive._DATA, voicemailFile.getPath());
+        update(newUri, values, null, null);
+        return newUri;
+    }
+
+
+    @Override
+    public int delete(Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
+        SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+        SQLiteQueryBuilder queryBuilder = getQueryBuilder(uri);
+        Cursor cursor = queryBuilder.query(db, null, selection, selectionArgs, null, null, null);
+
+        // Delete all the voicemail files related to the selected rows
+        while (cursor.moveToNext()) {
+            deleteFile(cursor.getString(cursor.getColumnIndex(
+                    VoicemailArchiveContract.VoicemailArchive._DATA)));
+        }
+
+        int rows = db.delete(DialerDatabaseHelper.Tables.VOICEMAIL_ARCHIVE_TABLE,
+                getSelectionWithId(selection, uri),
+                selectionArgs);
+        if (rows > 0) {
+            notifyChange(uri);
+        }
+        return rows;
+    }
+
+    @Override
+    public int update(Uri uri,
+                      ContentValues values,
+                      @Nullable String selection,
+                      @Nullable String[] selectionArgs) {
+        SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+        selection = getSelectionWithId(selection, uri);
+        int rows = db.update(DialerDatabaseHelper.Tables.VOICEMAIL_ARCHIVE_TABLE,
+                values,
+                selection,
+                selectionArgs);
+        if (rows > 0) {
+            notifyChange(uri);
+        }
+        return rows;
+    }
+
+    @Override
+    public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
+        if (mUriMatcher.match(uri) != VOICEMAIL_ARCHIVE_TABLE_ID) {
+            throw new IllegalArgumentException("URI Invalid.");
+        }
+        return openFileHelper(uri, mode);
+    }
+
+    private void deleteFile(@Nullable String path) {
+        if (TextUtils.isEmpty(path)) {
+            return;
+        }
+        File file = new File(path);
+        if (file.exists()) {
+            file.delete();
+        }
+    }
+
+    private SQLiteQueryBuilder getQueryBuilder(Uri uri) {
+        SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
+        queryBuilder.setTables(DialerDatabaseHelper.Tables.VOICEMAIL_ARCHIVE_TABLE);
+        String selectionWithId = getSelectionWithId(null, uri);
+        if (!TextUtils.isEmpty(selectionWithId)) {
+            queryBuilder.appendWhere(selectionWithId);
+        }
+        return queryBuilder;
+    }
+
+    private String getSelectionWithId(String selection, Uri uri) {
+        int match = mUriMatcher.match(uri);
+        switch (match) {
+            case VOICEMAIL_ARCHIVE_TABLE:
+                return selection;
+            case VOICEMAIL_ARCHIVE_TABLE_ID:
+                String idStr = VoicemailArchiveContract.VoicemailArchive._ID + "=" +
+                        ContentUris.parseId(uri);
+                return TextUtils.isEmpty(selection) ? idStr : selection + " AND " + idStr;
+            default:
+                throw new IllegalArgumentException("Unknown uri: " + uri);
+        }
+    }
+
+    private void notifyChange(Uri uri) {
+        getContext().getContentResolver().notifyChange(uri, null);
+    }
+}
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 246b0d7..55d5346 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -822,13 +822,12 @@
 
     @Override
     public boolean onKey(View view, int keyCode, KeyEvent event) {
-        switch (view.getId()) {
-            case R.id.digits:
-                if (keyCode == KeyEvent.KEYCODE_ENTER) {
-                    handleDialButtonPressed();
-                    return true;
-                }
-                break;
+        if (view.getId() == R.id.digits) {
+            if (keyCode == KeyEvent.KEYCODE_ENTER) {
+                handleDialButtonPressed();
+                return true;
+            }
+
         }
         return false;
     }
@@ -843,59 +842,33 @@
     public void onPressed(View view, boolean pressed) {
         if (DEBUG) Log.d(TAG, "onPressed(). view: " + view + ", pressed: " + pressed);
         if (pressed) {
-            switch (view.getId()) {
-                case R.id.one: {
-                    keyPressed(KeyEvent.KEYCODE_1);
-                    break;
-                }
-                case R.id.two: {
-                    keyPressed(KeyEvent.KEYCODE_2);
-                    break;
-                }
-                case R.id.three: {
-                    keyPressed(KeyEvent.KEYCODE_3);
-                    break;
-                }
-                case R.id.four: {
-                    keyPressed(KeyEvent.KEYCODE_4);
-                    break;
-                }
-                case R.id.five: {
-                    keyPressed(KeyEvent.KEYCODE_5);
-                    break;
-                }
-                case R.id.six: {
-                    keyPressed(KeyEvent.KEYCODE_6);
-                    break;
-                }
-                case R.id.seven: {
-                    keyPressed(KeyEvent.KEYCODE_7);
-                    break;
-                }
-                case R.id.eight: {
-                    keyPressed(KeyEvent.KEYCODE_8);
-                    break;
-                }
-                case R.id.nine: {
-                    keyPressed(KeyEvent.KEYCODE_9);
-                    break;
-                }
-                case R.id.zero: {
-                    keyPressed(KeyEvent.KEYCODE_0);
-                    break;
-                }
-                case R.id.pound: {
-                    keyPressed(KeyEvent.KEYCODE_POUND);
-                    break;
-                }
-                case R.id.star: {
-                    keyPressed(KeyEvent.KEYCODE_STAR);
-                    break;
-                }
-                default: {
-                    Log.wtf(TAG, "Unexpected onTouch(ACTION_DOWN) event from: " + view);
-                    break;
-                }
+            int resId = view.getId();
+            if (resId == R.id.one) {
+                keyPressed(KeyEvent.KEYCODE_1);
+            } else if (resId == R.id.two) {
+                keyPressed(KeyEvent.KEYCODE_2);
+            } else if (resId == R.id.three) {
+                keyPressed(KeyEvent.KEYCODE_3);
+            } else if (resId == R.id.four) {
+                keyPressed(KeyEvent.KEYCODE_4);
+            } else if (resId == R.id.five) {
+                keyPressed(KeyEvent.KEYCODE_5);
+            } else if (resId == R.id.six) {
+                keyPressed(KeyEvent.KEYCODE_6);
+            } else if (resId == R.id.seven) {
+                keyPressed(KeyEvent.KEYCODE_7);
+            } else if (resId == R.id.eight) {
+                keyPressed(KeyEvent.KEYCODE_8);
+            } else if (resId == R.id.nine) {
+                keyPressed(KeyEvent.KEYCODE_9);
+            } else if (resId == R.id.zero) {
+                keyPressed(KeyEvent.KEYCODE_0);
+            } else if (resId == R.id.pound) {
+                keyPressed(KeyEvent.KEYCODE_POUND);
+            } else if (resId == R.id.star) {
+                keyPressed(KeyEvent.KEYCODE_STAR);
+            } else {
+                Log.wtf(TAG, "Unexpected onTouch(ACTION_DOWN) event from: " + view);
             }
             mPressedDialpadKeys.add(view);
         } else {
@@ -936,29 +909,21 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.dialpad_floating_action_button:
-                view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
-                handleDialButtonPressed();
-                break;
-            case R.id.deleteButton: {
-                keyPressed(KeyEvent.KEYCODE_DEL);
-                break;
+        int resId = view.getId();
+        if (resId == R.id.dialpad_floating_action_button) {
+            view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+            handleDialButtonPressed();
+        } else if (resId == R.id.deleteButton) {
+            keyPressed(KeyEvent.KEYCODE_DEL);
+        } else if (resId == R.id.digits) {
+            if (!isDigitsEmpty()) {
+                mDigits.setCursorVisible(true);
             }
-            case R.id.digits: {
-                if (!isDigitsEmpty()) {
-                    mDigits.setCursorVisible(true);
-                }
-                break;
-            }
-            case R.id.dialpad_overflow: {
-                mOverflowPopupMenu.show();
-                break;
-            }
-            default: {
-                Log.wtf(TAG, "Unexpected onClick() event from: " + view);
-                return;
-            }
+        } else if (resId == R.id.dialpad_overflow) {
+            mOverflowPopupMenu.show();
+        } else {
+            Log.wtf(TAG, "Unexpected onClick() event from: " + view);
+            return;
         }
     }
 
@@ -966,75 +931,61 @@
     public boolean onLongClick(View view) {
         final Editable digits = mDigits.getText();
         final int id = view.getId();
-        switch (id) {
-            case R.id.deleteButton: {
-                digits.clear();
-                return true;
-            }
-            case R.id.one: {
-                // '1' may be already entered since we rely on onTouch() event for numeric buttons.
-                // Just for safety we also check if the digits field is empty or not.
-                if (isDigitsEmpty() || TextUtils.equals(mDigits.getText(), "1")) {
-                    // We'll try to initiate voicemail and thus we want to remove irrelevant string.
-                    removePreviousDigitIfPossible('1');
+        if (id == R.id.deleteButton) {
+            digits.clear();
+            return true;
+        } else if (id == R.id.one) {
+            if (isDigitsEmpty() || TextUtils.equals(mDigits.getText(), "1")) {
+                // We'll try to initiate voicemail and thus we want to remove irrelevant string.
+                removePreviousDigitIfPossible('1');
 
-                    List<PhoneAccountHandle> subscriptionAccountHandles =
-                            PhoneAccountUtils.getSubscriptionPhoneAccounts(getActivity());
-                    boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
-                            TelecomUtil.getDefaultOutgoingPhoneAccount(getActivity(),
-                                    PhoneAccount.SCHEME_VOICEMAIL));
-                    boolean needsAccountDisambiguation = subscriptionAccountHandles.size() > 1
-                            && !hasUserSelectedDefault;
+                List<PhoneAccountHandle> subscriptionAccountHandles =
+                        PhoneAccountUtils.getSubscriptionPhoneAccounts(getActivity());
+                boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
+                        TelecomUtil.getDefaultOutgoingPhoneAccount(getActivity(),
+                                PhoneAccount.SCHEME_VOICEMAIL));
+                boolean needsAccountDisambiguation = subscriptionAccountHandles.size() > 1
+                        && !hasUserSelectedDefault;
 
-                    if (needsAccountDisambiguation || isVoicemailAvailable()) {
-                        // On a multi-SIM phone, if the user has not selected a default
-                        // subscription, initiate a call to voicemail so they can select an account
-                        // from the "Call with" dialog.
-                        callVoicemail();
-                    } else if (getActivity() != null) {
-                        // Voicemail is unavailable maybe because Airplane mode is turned on.
-                        // Check the current status and show the most appropriate error message.
-                        final boolean isAirplaneModeOn =
-                                Settings.System.getInt(getActivity().getContentResolver(),
-                                Settings.System.AIRPLANE_MODE_ON, 0) != 0;
-                        if (isAirplaneModeOn) {
-                            DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
-                                    R.string.dialog_voicemail_airplane_mode_message);
-                            dialogFragment.show(getFragmentManager(),
-                                    "voicemail_request_during_airplane_mode");
-                        } else {
-                            DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
-                                    R.string.dialog_voicemail_not_ready_message);
-                            dialogFragment.show(getFragmentManager(), "voicemail_not_ready");
-                        }
+                if (needsAccountDisambiguation || isVoicemailAvailable()) {
+                    // On a multi-SIM phone, if the user has not selected a default
+                    // subscription, initiate a call to voicemail so they can select an account
+                    // from the "Call with" dialog.
+                    callVoicemail();
+                } else if (getActivity() != null) {
+                    // Voicemail is unavailable maybe because Airplane mode is turned on.
+                    // Check the current status and show the most appropriate error message.
+                    final boolean isAirplaneModeOn =
+                            Settings.System.getInt(getActivity().getContentResolver(),
+                                    Settings.System.AIRPLANE_MODE_ON, 0) != 0;
+                    if (isAirplaneModeOn) {
+                        DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
+                                R.string.dialog_voicemail_airplane_mode_message);
+                        dialogFragment.show(getFragmentManager(),
+                                "voicemail_request_during_airplane_mode");
+                    } else {
+                        DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
+                                R.string.dialog_voicemail_not_ready_message);
+                        dialogFragment.show(getFragmentManager(), "voicemail_not_ready");
                     }
-                    return true;
                 }
-                return false;
-            }
-            case R.id.zero: {
-                if (mPressedDialpadKeys.contains(view)) {
-                    // If the zero key is currently pressed, then the long press occurred by touch
-                    // (and not via other means like certain accessibility input methods).
-                    // Remove the '0' that was input when the key was first pressed.
-                    removePreviousDigitIfPossible('0');
-                }
-
-                keyPressed(KeyEvent.KEYCODE_PLUS);
-
-                // Stop tone immediately
-                stopTone();
-                mPressedDialpadKeys.remove(view);
-
                 return true;
             }
-            case R.id.digits: {
-                // Right now EditText does not show the "paste" option when cursor is not visible.
-                // To show that, make the cursor visible, and return false, letting the EditText
-                // show the option by itself.
-                mDigits.setCursorVisible(true);
-                return false;
+            return false;
+        } else if (id == R.id.zero) {
+            if (mPressedDialpadKeys.contains(view)) {
+                // If the zero key is currently pressed, then the long press occurred by touch
+                // (and not via other means like certain accessibility input methods).
+                // Remove the '0' that was input when the key was first pressed.
+                removePreviousDigitIfPossible('0');
             }
+            keyPressed(KeyEvent.KEYCODE_PLUS);
+            stopTone();
+            mPressedDialpadKeys.remove(view);
+            return true;
+        } else if (id == R.id.digits) {
+            mDigits.setCursorVisible(true);
+            return false;
         }
         return false;
     }
@@ -1438,31 +1389,20 @@
         DialpadChooserAdapter.ChoiceItem item =
                 (DialpadChooserAdapter.ChoiceItem) parent.getItemAtPosition(position);
         int itemId = item.id;
-        switch (itemId) {
-            case DialpadChooserAdapter.DIALPAD_CHOICE_USE_DTMF_DIALPAD:
-                // Log.i(TAG, "DIALPAD_CHOICE_USE_DTMF_DIALPAD");
-                // Fire off an intent to go back to the in-call UI
-                // with the dialpad visible.
-                returnToInCallScreen(true);
-                break;
-
-            case DialpadChooserAdapter.DIALPAD_CHOICE_RETURN_TO_CALL:
-                // Log.i(TAG, "DIALPAD_CHOICE_RETURN_TO_CALL");
-                // Fire off an intent to go back to the in-call UI
-                // (with the dialpad hidden).
-                returnToInCallScreen(false);
-                break;
-
-            case DialpadChooserAdapter.DIALPAD_CHOICE_ADD_NEW_CALL:
-                // Log.i(TAG, "DIALPAD_CHOICE_ADD_NEW_CALL");
-                // Ok, guess the user really did want to be here (in the
-                // regular Dialer) after all.  Bring back the normal Dialer UI.
-                showDialpadChooser(false);
-                break;
-
-            default:
-                Log.w(TAG, "onItemClick: unexpected itemId: " + itemId);
-                break;
+        if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_USE_DTMF_DIALPAD) {// Log.i(TAG, "DIALPAD_CHOICE_USE_DTMF_DIALPAD");
+            // Fire off an intent to go back to the in-call UI
+            // with the dialpad visible.
+            returnToInCallScreen(true);
+        } else if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_RETURN_TO_CALL) {// Log.i(TAG, "DIALPAD_CHOICE_RETURN_TO_CALL");
+            // Fire off an intent to go back to the in-call UI
+            // (with the dialpad hidden).
+            returnToInCallScreen(false);
+        } else if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_ADD_NEW_CALL) {// Log.i(TAG, "DIALPAD_CHOICE_ADD_NEW_CALL");
+            // Ok, guess the user really did want to be here (in the
+            // regular Dialer) after all.  Bring back the normal Dialer UI.
+            showDialpadChooser(false);
+        } else {
+            Log.w(TAG, "onItemClick: unexpected itemId: " + itemId);
         }
     }
 
@@ -1506,19 +1446,19 @@
 
     @Override
     public boolean onMenuItemClick(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_2s_pause:
-                updateDialString(PAUSE);
-                return true;
-            case R.id.menu_add_wait:
-                updateDialString(WAIT);
-                return true;
-            case R.id.menu_call_with_note:
-                CallSubjectDialog.start(getActivity(), mDigits.getText().toString());
-                hideAndClearDialpad(false);
-                return true;
-            default:
-                return false;
+        int resId = item.getItemId();
+        if (resId == R.id.menu_2s_pause) {
+            updateDialString(PAUSE);
+            return true;
+        } else if (resId == R.id.menu_add_wait) {
+            updateDialString(WAIT);
+            return true;
+        } else if (resId == R.id.menu_call_with_note) {
+            CallSubjectDialog.start(getActivity(), mDigits.getText().toString());
+            hideAndClearDialpad(false);
+            return true;
+        } else {
+            return false;
         }
     }
 
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
index e231c6a..a878660 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
@@ -180,22 +180,19 @@
             return;
         }
 
-        switch (view.getId()) {
-            case R.id.add_number_linear_layout:
-                activity.showSearchUi();
-                break;
-            case R.id.view_numbers_button:
-                activity.showNumbersToImportPreviewUi();
-                break;
-            case R.id.import_button:
-                FilteredNumbersUtil.importSendToVoicemailContacts(activity,
-                        new ImportSendToVoicemailContactsListener() {
-                            @Override
-                            public void onImportComplete() {
-                                mImportSettings.setVisibility(View.GONE);
-                            }
-                        });
-                break;
+        int resId = view.getId();
+        if (resId == R.id.add_number_linear_layout) {
+            activity.showSearchUi();
+        } else if (resId == R.id.view_numbers_button) {
+            activity.showNumbersToImportPreviewUi();
+        } else if (resId == R.id.import_button) {
+            FilteredNumbersUtil.importSendToVoicemailContacts(activity,
+                    new ImportSendToVoicemailContactsListener() {
+                        @Override
+                        public void onImportComplete() {
+                            mImportSettings.setVisibility(View.GONE);
+                        }
+                    });
         }
     }
     @Override
diff --git a/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java b/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java
index 153d73c..8b24c06 100644
--- a/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java
+++ b/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java
@@ -116,21 +116,18 @@
 
     @Override
     public void onClick(final View view) {
-        switch (view.getId()) {
-            case R.id.import_button:
-                FilteredNumbersUtil.importSendToVoicemailContacts(getContext(),
-                        new ImportSendToVoicemailContactsListener() {
-                            @Override
-                            public void onImportComplete() {
-                                if (getActivity() != null) {
-                                    getActivity().onBackPressed();
-                                }
+        if (view.getId() == R.id.import_button) {
+            FilteredNumbersUtil.importSendToVoicemailContacts(getContext(),
+                    new ImportSendToVoicemailContactsListener() {
+                        @Override
+                        public void onImportComplete() {
+                            if (getActivity() != null) {
+                                getActivity().onBackPressed();
                             }
-                        });
-                break;
-            case R.id.cancel_button:
-                getActivity().onBackPressed();
-                break;
+                        }
+                    });
+        } else if (view.getId() == R.id.cancel_button) {
+            getActivity().onBackPressed();
         }
     }
 }
diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
index 2472845..0c3ae51 100644
--- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -191,6 +191,7 @@
         private static final String ARG_PHONE_LIST = "phoneList";
         private static final String ARG_INTERACTION_TYPE = "interactionType";
         private static final String ARG_CALL_INITIATION_TYPE = "callInitiation";
+        private static final String ARG_IS_VIDEO_CALL = "is_video_call";
 
         private int mInteractionType;
         private ListAdapter mPhonesAdapter;
@@ -200,19 +201,18 @@
 
         public static void show(FragmentManager fragmentManager, ArrayList<PhoneItem> phoneList,
                 int interactionType, boolean isVideoCall, int callInitiationType) {
-            PhoneDisambiguationDialogFragment fragment = new PhoneDisambiguationDialogFragment(
-                isVideoCall);
+            PhoneDisambiguationDialogFragment fragment = new PhoneDisambiguationDialogFragment();
             Bundle bundle = new Bundle();
             bundle.putParcelableArrayList(ARG_PHONE_LIST, phoneList);
             bundle.putInt(ARG_INTERACTION_TYPE, interactionType);
             bundle.putInt(ARG_CALL_INITIATION_TYPE, callInitiationType);
+            bundle.putBoolean(ARG_IS_VIDEO_CALL, isVideoCall);
             fragment.setArguments(bundle);
             fragment.show(fragmentManager, TAG);
         }
 
-        public PhoneDisambiguationDialogFragment(boolean isVideoCall) {
+        public PhoneDisambiguationDialogFragment() {
             super();
-            mIsVideoCall = isVideoCall;
         }
 
         @Override
@@ -221,6 +221,7 @@
             mPhoneList = getArguments().getParcelableArrayList(ARG_PHONE_LIST);
             mInteractionType = getArguments().getInt(ARG_INTERACTION_TYPE);
             mCallInitiationType = getArguments().getInt(ARG_CALL_INITIATION_TYPE);
+            mIsVideoCall = getArguments().getBoolean(ARG_IS_VIDEO_CALL);
 
             mPhonesAdapter = new PhoneItemAdapter(activity, mPhoneList, mInteractionType);
             final LayoutInflater inflater = activity.getLayoutInflater();
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index ad3a0d8..5b7c950 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -36,7 +36,9 @@
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
 import com.android.dialer.calllog.CallLogFragment;
+import com.android.dialer.calllog.CallLogNotificationsHelper;
 import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.calllog.VisualVoicemailCallLogFragment;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.util.DialerUtils;
@@ -126,7 +128,7 @@
                     mAllContactsFragment = new AllContactsFragment();
                     return mAllContactsFragment;
                 case TAB_INDEX_VOICEMAIL:
-                    mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
+                    mVoicemailFragment = new VisualVoicemailCallLogFragment();
                     return mVoicemailFragment;
             }
             throw new IllegalStateException("No fragment at position " + position);
@@ -375,7 +377,8 @@
 
     /**
      * External method to update unread count because the unread count changes when the user
-     * expands a voicemail in the call log.
+     * expands a voicemail in the call log or when the user expands an unread call in the call
+     * history tab.
      */
     public void updateTabUnreadCounts() {
         if (mCallLogQueryHandler != null) {
@@ -386,6 +389,17 @@
         }
     }
 
+    /**
+     * External method to mark all missed calls as read.
+     */
+    public void markMissedCallsAsReadAndRemoveNotifications() {
+        if (mCallLogQueryHandler != null) {
+            mCallLogQueryHandler.markMissedCallsAsRead();
+            CallLogNotificationsHelper.removeMissedCallNotifications(getActivity());
+        }
+    }
+
+
     public void showRemoveView(boolean show) {
         mRemoveViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
         mRemoveView.setAlpha(show ? 0 : 1);
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index d1a0be0..82395b6 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -275,7 +275,8 @@
                 DialerUtils.startActivityWithErrorToast(getActivity(), intent);
                 break;
             case DialerPhoneNumberListAdapter.SHORTCUT_MAKE_VIDEO_CALL:
-                number = adapter.getQueryString();
+                number = TextUtils.isEmpty(mAddToContactNumber) ?
+                        adapter.getQueryString() : mAddToContactNumber;
                 listener = getOnPhoneNumberPickerListener();
                 if (listener != null && !checkForProhibitedPhoneNumber(number)) {
                     listener.onPickPhoneNumber(number, true /* isVideoCall */,
diff --git a/src/com/android/dialer/service/CachedNumberLookupService.java b/src/com/android/dialer/service/CachedNumberLookupService.java
index e91d458..018ada9 100644
--- a/src/com/android/dialer/service/CachedNumberLookupService.java
+++ b/src/com/android/dialer/service/CachedNumberLookupService.java
@@ -1,9 +1,13 @@
 package com.android.dialer.service;
 
 import android.content.Context;
+import android.net.Uri;
+import android.support.annotation.Nullable;
 
 import com.android.dialer.calllog.ContactInfo;
 
+import java.io.InputStream;
+
 public interface CachedNumberLookupService {
 
     public interface CachedContactInfo {
@@ -42,7 +46,10 @@
     public boolean isBusiness(int sourceType);
     public boolean canReportAsInvalid(int sourceType, String objectId);
 
-    public boolean addPhoto(Context context, String number, byte[] photo);
+    /**
+     * @return return {@link Uri} to the photo or return {@code null} when failing to add photo
+     */
+    public @Nullable Uri addPhoto(Context context, String number, InputStream in);
 
     /**
      * Remove all cached phone number entries from the cache, regardless of how old they
diff --git a/src/com/android/dialer/service/ExtendedBlockingButtonRenderer.java b/src/com/android/dialer/service/ExtendedBlockingButtonRenderer.java
new file mode 100644
index 0000000..5ff3732
--- /dev/null
+++ b/src/com/android/dialer/service/ExtendedBlockingButtonRenderer.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.service;
+
+import android.support.annotation.Nullable;
+import android.view.View;
+import android.view.ViewStub;
+
+import java.util.List;
+
+/**
+ * Interface responsible for rendering spam buttons.
+ */
+public interface ExtendedBlockingButtonRenderer {
+
+    final class ViewHolderInfo {
+
+        public final List<View> completeListItemViews;
+        public final List<View> extendedBlockedViews;
+        public final List<View> blockedNumberViews;
+        public final String phoneNumber;
+        public final String countryIso;
+        public final String nameOrNumber;
+        public final String displayNumber;
+
+        public ViewHolderInfo(
+                /* All existing views amongst the list item actions, even if invisible */
+                List<View> completeListItemViews,
+                /* Views that should be seen if the number is in the blacklist */
+                List<View> extendedBlockedViews,
+                /* Views that should be seen if the number is in the extended blacklist */
+                List<View> blockedNumberViews,
+                String phoneNumber,
+                String countryIso,
+                String nameOrNumber,
+                String displayNumber) {
+
+            this.completeListItemViews = completeListItemViews;
+            this.extendedBlockedViews = extendedBlockedViews;
+            this.blockedNumberViews = blockedNumberViews;
+            this.phoneNumber = phoneNumber;
+            this.countryIso = countryIso;
+            this.nameOrNumber = nameOrNumber;
+            this.displayNumber = displayNumber;
+        }
+    }
+
+    interface Listener {
+        void onBlockedNumber(String number, @Nullable String countryIso);
+        void onUnblockedNumber(String number, @Nullable String countryIso);
+    }
+
+    /**
+     * Renders buttons for a phone number.
+     */
+    void render(ViewStub viewStub);
+
+    void setViewHolderInfo(ViewHolderInfo info);
+}
diff --git a/src/com/android/dialer/service/SpamButtonRenderer.java b/src/com/android/dialer/service/SpamButtonRenderer.java
deleted file mode 100644
index 843bc55..0000000
--- a/src/com/android/dialer/service/SpamButtonRenderer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.android.dialer.service;
-
-import android.view.View;
-
-import java.util.List;
-
-/**
- * Interface responsible for rendering spam buttons.
- */
-public interface SpamButtonRenderer {
-
-    /**
-     * Renders buttons for a phone number.
-     */
-    void render(String number, String countryIso);
-
-    void setCompleteListItemViews(List<View> views);
-
-    void setSpamFilteredViews(List<View> views);
-
-    void setFilteredNumberViews(List<View> views);
-
-}
diff --git a/src/com/android/dialer/util/PhoneLookupUtil.java b/src/com/android/dialer/util/PhoneLookupUtil.java
new file mode 100644
index 0000000..1a72396
--- /dev/null
+++ b/src/com/android/dialer/util/PhoneLookupUtil.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.util;
+
+import android.net.Uri;
+import android.provider.ContactsContract;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.PhoneLookupSdkCompat;
+
+public final class PhoneLookupUtil {
+    /**
+     * @return the column name that stores contact id for phone lookup query.
+     */
+    public static String getContactIdColumnNameForUri(Uri phoneLookupUri) {
+        if (CompatUtils.isNCompatible()) {
+            return PhoneLookupSdkCompat.CONTACT_ID;
+        }
+        // In pre-N, contact id is stored in {@link PhoneLookup#_ID} in non-sip query.
+        boolean isSip = phoneLookupUri.getBooleanQueryParameter(
+                ContactsContract.PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS, false);
+        return (isSip) ? PhoneLookupSdkCompat.CONTACT_ID : ContactsContract.PhoneLookup._ID;
+    }
+
+    private PhoneLookupUtil() {}
+}
diff --git a/src/com/android/dialer/voicemail/VoicemailAudioManager.java b/src/com/android/dialer/voicemail/VoicemailAudioManager.java
index 712b20b..fe6cf5f 100644
--- a/src/com/android/dialer/voicemail/VoicemailAudioManager.java
+++ b/src/com/android/dialer/voicemail/VoicemailAudioManager.java
@@ -19,10 +19,9 @@
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.telecom.CallAudioState;
 import android.util.Log;
 
-import com.android.dialer.compat.CallAudioStateCompat;
-
 import java.util.concurrent.RejectedExecutionException;
 
 /**
@@ -38,7 +37,7 @@
     private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
     private WiredHeadsetManager mWiredHeadsetManager;
     private boolean mWasSpeakerOn;
-    private CallAudioStateCompat mCallAudioState;
+    private CallAudioState mCallAudioState;
 
     public VoicemailAudioManager(Context context,
             VoicemailPlaybackPresenter voicemailPlaybackPresenter) {
@@ -82,26 +81,25 @@
 
         int newRoute = mCallAudioState.getRoute();  // start out with existing route
         if (newIsPluggedIn) {
-            newRoute = CallAudioStateCompat.ROUTE_WIRED_HEADSET;
+            newRoute = CallAudioState.ROUTE_WIRED_HEADSET;
         } else {
             if (mWasSpeakerOn) {
-                newRoute = CallAudioStateCompat.ROUTE_SPEAKER;
+                newRoute = CallAudioState.ROUTE_SPEAKER;
             } else {
-                newRoute = CallAudioStateCompat.ROUTE_EARPIECE;
+                newRoute = CallAudioState.ROUTE_EARPIECE;
             }
         }
 
-        mVoicemailPlaybackPresenter.setSpeakerphoneOn(newRoute == CallAudioStateCompat.ROUTE_SPEAKER);
+        mVoicemailPlaybackPresenter.setSpeakerphoneOn(newRoute == CallAudioState.ROUTE_SPEAKER);
 
         // We need to call this every time even if we do not change the route because the supported
         // routes changed either to include or not include WIRED_HEADSET.
         setSystemAudioState(
-                new CallAudioStateCompat(false /* muted */, newRoute, calculateSupportedRoutes()));
+                new CallAudioState(false /* muted */, newRoute, calculateSupportedRoutes()));
     }
 
     public void setSpeakerphoneOn(boolean on) {
-        setAudioRoute(on ? CallAudioStateCompat.ROUTE_SPEAKER
-                : CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE);
+        setAudioRoute(on ? CallAudioState.ROUTE_SPEAKER : CallAudioState.ROUTE_WIRED_OR_EARPIECE);
     }
 
     public boolean isWiredHeadsetPluggedIn() {
@@ -120,10 +118,10 @@
     /**
      * Change the audio route, for example from earpiece to speakerphone.
      *
-     * @param route The new audio route to use. See {@link CallAudioStateCompat}.
+     * @param route The new audio route to use. See {@link CallAudioState}.
      */
     void setAudioRoute(int route) {
-        Log.v(TAG, "setAudioRoute, route: " + CallAudioStateCompat.audioRouteToString(route));
+        Log.v(TAG, "setAudioRoute, route: " + CallAudioState.audioRouteToString(route));
 
         // Change ROUTE_WIRED_OR_EARPIECE to a single entry.
         int newRoute = selectWiredOrEarpiece(route, mCallAudioState.getSupportedRouteMask());
@@ -137,25 +135,25 @@
         if (mCallAudioState.getRoute() != newRoute) {
             // Remember the new speaker state so it can be restored when the user plugs and unplugs
             // a headset.
-            mWasSpeakerOn = newRoute == CallAudioStateCompat.ROUTE_SPEAKER;
-            setSystemAudioState(new CallAudioStateCompat(false /* muted */, newRoute,
+            mWasSpeakerOn = newRoute == CallAudioState.ROUTE_SPEAKER;
+            setSystemAudioState(new CallAudioState(false /* muted */, newRoute,
                     mCallAudioState.getSupportedRouteMask()));
         }
     }
 
-    private CallAudioStateCompat getInitialAudioState() {
+    private CallAudioState getInitialAudioState() {
         int supportedRouteMask = calculateSupportedRoutes();
-        int route = selectWiredOrEarpiece(CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE,
+        int route = selectWiredOrEarpiece(CallAudioState.ROUTE_WIRED_OR_EARPIECE,
                 supportedRouteMask);
-        return new CallAudioStateCompat(false /* muted */, route, supportedRouteMask);
+        return new CallAudioState(false /* muted */, route, supportedRouteMask);
     }
 
     private int calculateSupportedRoutes() {
-        int routeMask = CallAudioStateCompat.ROUTE_SPEAKER;
+        int routeMask = CallAudioState.ROUTE_SPEAKER;
         if (mWiredHeadsetManager.isPluggedIn()) {
-            routeMask |= CallAudioStateCompat.ROUTE_WIRED_HEADSET;
+            routeMask |= CallAudioState.ROUTE_WIRED_HEADSET;
         } else {
-            routeMask |= CallAudioStateCompat.ROUTE_EARPIECE;
+            routeMask |= CallAudioState.ROUTE_EARPIECE;
         }
         return routeMask;
     }
@@ -164,29 +162,29 @@
         // Since they are mutually exclusive and one is ALWAYS valid, we allow a special input of
         // ROUTE_WIRED_OR_EARPIECE so that callers don't have to make a call to check which is
         // supported before calling setAudioRoute.
-        if (route == CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE) {
-            route = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE & supportedRouteMask;
+        if (route == CallAudioState.ROUTE_WIRED_OR_EARPIECE) {
+            route = CallAudioState.ROUTE_WIRED_OR_EARPIECE & supportedRouteMask;
             if (route == 0) {
                 Log.wtf(TAG, "One of wired headset or earpiece should always be valid.");
                 // assume earpiece in this case.
-                route = CallAudioStateCompat.ROUTE_EARPIECE;
+                route = CallAudioState.ROUTE_EARPIECE;
             }
         }
         return route;
     }
 
-    private void setSystemAudioState(CallAudioStateCompat callAudioState) {
-        CallAudioStateCompat oldAudioState = mCallAudioState;
+    private void setSystemAudioState(CallAudioState callAudioState) {
+        CallAudioState oldAudioState = mCallAudioState;
         mCallAudioState = callAudioState;
 
         Log.i(TAG, "setSystemAudioState: changing from " + oldAudioState + " to "
                 + mCallAudioState);
 
         // Audio route.
-        if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_SPEAKER) {
+        if (mCallAudioState.getRoute() == CallAudioState.ROUTE_SPEAKER) {
             turnOnSpeaker(true);
-        } else if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_EARPIECE ||
-                mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_WIRED_HEADSET) {
+        } else if (mCallAudioState.getRoute() == CallAudioState.ROUTE_EARPIECE ||
+                mCallAudioState.getRoute() == CallAudioState.ROUTE_WIRED_HEADSET) {
             // Just handle turning off the speaker, the system will handle switching between wired
             // headset and earpiece.
             turnOnSpeaker(false);
@@ -199,4 +197,4 @@
             mAudioManager.setSpeakerphoneOn(on);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index 93ff002..2bb4de9 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -36,6 +36,7 @@
 import android.widget.SeekBar;
 
 import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil;
 import com.android.dialer.util.AsyncTaskExecutor;
 import com.android.dialer.util.AsyncTaskExecutors;
 import com.android.common.io.MoreCloseables;
@@ -557,6 +558,12 @@
         Log.d(TAG, "onPrepared");
         mIsPrepared = true;
 
+        // Update the duration in the database if it was not previously retrieved
+        if (mDuration.get() == 0) {
+            CallLogAsyncTaskUtil.updateVoicemailDuration(mContext, mVoicemailUri,
+                    mMediaPlayer.getDuration() / 1000);
+        }
+
         mDuration.set(mMediaPlayer.getDuration());
 
         Log.d(TAG, "onPrepared: mPosition=" + mPosition);
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index d06d55e..31255a2 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -19,8 +19,7 @@
 import static com.android.dialer.calllog.CallLogAdapter.CallFetcher;
 
 import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
+import android.support.annotation.Nullable;
 import android.view.ViewStub;
 
 import com.android.dialer.calllog.CallLogAdapter;
@@ -28,7 +27,7 @@
 import com.android.dialer.list.RegularSearchFragment;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.service.CachedNumberLookupService;
-import com.android.dialer.service.SpamButtonRenderer;
+import com.android.dialer.service.ExtendedBlockingButtonRenderer;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
 
 /**
@@ -45,9 +44,9 @@
         return "com.android.dialer.database.filterednumberprovider";
     }
 
-    public static SpamButtonRenderer newSpamButtonRenderer(
-            Context context,
-            ViewStub stub) {
+    @Nullable
+    public static ExtendedBlockingButtonRenderer newExtendedBlockingButtonRenderer(
+            Context context, ExtendedBlockingButtonRenderer.Listener listener) {
         return null;
     }
 
diff --git a/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java
index 588a27f..680afb1 100644
--- a/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java
@@ -58,26 +58,27 @@
     }
 
     public void testLookupContactFromUri_NullUri() {
-        Assert.assertNull(mContactInfoHelper.lookupContactFromUri(null));
+        Assert.assertNull(mContactInfoHelper.lookupContactFromUri(null, false));
     }
 
     public void testLookupContactFromUri_NoResults() {
         setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
-                PhoneQuery.PHONE_LOOKUP_PROJECTION);
+                PhoneQuery.getPhoneLookupProjection(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI));
 
         Assert.assertEquals(ContactInfo.EMPTY, mContactInfoHelper.lookupContactFromUri(
-                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI));
+                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, false));
         mContext.verify();
     }
 
     public void testLookupContactFromUri_NoDisplayNameAlternative() {
         setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
-                PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW);
+                PhoneQuery.getPhoneLookupProjection(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI),
+                TEST_LOOKUP_ROW);
         setUpQueryExpectations(displayNameAlternativeUri,
                 PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION);
 
         ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri(
-                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI);
+                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, false);
         Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name);
         Assert.assertNull(contactInfo.nameAlternative);
         mContext.verify();
@@ -85,12 +86,13 @@
 
     public void testLookupContactFromUri_HasDisplayNameAlternative() {
         setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
-                PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW);
+                PhoneQuery.getPhoneLookupProjection(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI),
+                TEST_LOOKUP_ROW);
         setUpQueryExpectations(displayNameAlternativeUri,
                 PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION, TEST_DISPLAY_NAME_ALTERNATIVE_ROW);
 
         ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri(
-                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI);
+                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, false);
         Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name);
         Assert.assertEquals(TEST_DISPLAY_NAME_ALTERNATIVE, contactInfo.nameAlternative);
         mContext.verify();
diff --git a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
index 4e00a46..c0d1203 100644
--- a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
@@ -158,7 +158,7 @@
 
     public void testVoicemailDuration_Zero() {
         setVoicemailPhoneCallDetailsWithDuration(0);
-        assertDurationExactEquals("00:00");
+        assertLocationAndDateExactEquals("Jun 3 at 1:00 PM");
     }
 
     public void testVoicemailDuration_EvenMinute() {
diff --git a/tests/src/com/android/dialer/database/FilteredNumberAsyncQueryHandlerTest.java b/tests/src/com/android/dialer/database/FilteredNumberAsyncQueryHandlerTest.java
new file mode 100644
index 0000000..6bb478e
--- /dev/null
+++ b/tests/src/com/android/dialer/database/FilteredNumberAsyncQueryHandlerTest.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.database;
+
+import android.content.ContentValues;
+import android.net.Uri;
+import android.test.InstrumentationTestCase;
+import android.test.mock.MockContentResolver;
+
+import com.android.contacts.common.test.mocks.MockContentProvider;
+import com.android.contacts.common.test.mocks.MockContentProvider.Query;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumberListener;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnHasBlockedNumbersListener;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberSources;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberTypes;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class FilteredNumberAsyncQueryHandlerTest extends InstrumentationTestCase {
+
+    private static final String E164_NUMBER = "+16502530000";
+    private static final String NUMBER = "6502530000";
+    private static final String COUNTRY_ISO = "US";
+    private static final Integer ID = 1;
+    private static final Uri BLOCKED_NUMBER_URI =
+            Uri.withAppendedPath(FilteredNumberContract.AUTHORITY_URI, "filtered_numbers_table");
+    private static final Uri EXPECTED_URI = Uri.fromParts("android", "google", "dialer");
+
+    private final MockContentResolver mContentResolver = new MockContentResolver();
+    private final MockContentProvider mContentProvider = new MockContentProvider();
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mContentResolver.addProvider(FilteredNumberContract.AUTHORITY, mContentProvider);
+    }
+
+    public void testIsBlockedNumber_NoResults() throws Throwable {
+        newIsBlockedNumberExpectedQueryM().returnEmptyCursor();
+        final CheckBlockedListener listener = new CheckBlockedListener();
+
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver)
+                        .isBlockedNumber(listener, NUMBER, COUNTRY_ISO);
+            }
+        });
+        assertNull(listener.waitForCallback());
+        mContentProvider.verify();
+    }
+
+    public void testIsBlockedNumber() throws Throwable {
+        newIsBlockedNumberExpectedQueryM().returnRow(ID, FilteredNumberTypes.BLOCKED_NUMBER);
+        final CheckBlockedListener listener = new CheckBlockedListener();
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver)
+                        .isBlockedNumber(listener, NUMBER, COUNTRY_ISO);
+           }
+        });
+        assertEquals(ID, listener.waitForCallback());
+        mContentProvider.verify();
+    }
+
+    public void testHasBlockedNumbers_NoResults() throws Throwable {
+        newHasBlockedNumbersExpectedQueryM().returnEmptyCursor();
+        final HasBlockedNumbersListener listener = new HasBlockedNumbersListener();
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver).hasBlockedNumbers(listener);
+            }
+        });
+        assertFalse(listener.waitForCallback());
+        mContentProvider.verify();
+    }
+
+    public void testHasBlockedNumbers() throws Throwable {
+        newHasBlockedNumbersExpectedQueryM().returnRow(ID);
+        final HasBlockedNumbersListener listener = new HasBlockedNumbersListener();
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver).hasBlockedNumbers(listener);
+            }
+        });
+        assertTrue(listener.waitForCallback());
+        mContentProvider.verify();
+    }
+
+    private Query newIsBlockedNumberExpectedQueryM() {
+        return mContentProvider.expectQuery(BLOCKED_NUMBER_URI)
+                .withProjection(FilteredNumberColumns._ID, FilteredNumberColumns.TYPE)
+                .withSelection(FilteredNumberColumns.NORMALIZED_NUMBER + " = ?", E164_NUMBER);
+    }
+
+    private Query newHasBlockedNumbersExpectedQueryM() {
+        return mContentProvider.expectQuery(BLOCKED_NUMBER_URI).withProjection(
+                FilteredNumberColumns._ID)
+                .withSelection(FilteredNumberColumns.TYPE + "="
+                        + FilteredNumberTypes.BLOCKED_NUMBER, null);
+    }
+
+    public void testBlockNumber() throws Throwable {
+        mContentProvider.expectInsert(BLOCKED_NUMBER_URI, newBlockNumberContentValues(),
+                EXPECTED_URI);
+        final BlockingArgumentCaptorOnBlockNumberListener listener =
+                new BlockingArgumentCaptorOnBlockNumberListener();
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver).blockNumber(listener,
+                        E164_NUMBER, NUMBER, COUNTRY_ISO);
+            }
+        });
+        assertTrue(listener.onBlockCompleteCalled.await(5000, TimeUnit.MILLISECONDS));
+        assertSame(EXPECTED_URI, listener.uri);
+        mContentProvider.verify();
+    }
+
+    public void testBlockNumber_NullNormalizedNumber() throws Throwable {
+        mContentProvider.expectInsert(BLOCKED_NUMBER_URI, newBlockNumberContentValues(),
+                EXPECTED_URI);
+        final BlockingArgumentCaptorOnBlockNumberListener listener =
+                new BlockingArgumentCaptorOnBlockNumberListener();
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new FilteredNumberAsyncQueryHandler(mContentResolver).blockNumber(listener,
+                        NUMBER, COUNTRY_ISO);
+            }
+        });
+        assertTrue(listener.onBlockCompleteCalled.await(5000, TimeUnit.MILLISECONDS));
+        assertSame(EXPECTED_URI, listener.uri);
+        mContentProvider.verify();
+    }
+
+    private ContentValues newBlockNumberContentValues() {
+        ContentValues contentValues = new ContentValues();
+        contentValues.put(FilteredNumberColumns.NORMALIZED_NUMBER, E164_NUMBER);
+        contentValues.put(FilteredNumberColumns.NUMBER, NUMBER);
+        contentValues.put(FilteredNumberColumns.COUNTRY_ISO, COUNTRY_ISO);
+        contentValues.put(FilteredNumberColumns.TYPE, FilteredNumberTypes.BLOCKED_NUMBER);
+        contentValues.put(FilteredNumberColumns.SOURCE, FilteredNumberSources.USER);
+        return contentValues;
+    }
+
+    private class CheckBlockedListener implements OnCheckBlockedListener {
+        public final CountDownLatch onCheckCompleteCalled;
+        public Integer id;
+
+        public CheckBlockedListener() {
+            onCheckCompleteCalled = new CountDownLatch(1);
+        }
+
+        @Override
+        public void onCheckComplete(Integer id) {
+            this.id = id;
+            onCheckCompleteCalled.countDown();
+        }
+
+        public Integer waitForCallback() throws InterruptedException {
+            if (!onCheckCompleteCalled.await(5000, TimeUnit.MILLISECONDS)) {
+                throw new IllegalStateException("Waiting on callback timed out.");
+            }
+            return id;
+        }
+    }
+
+    private class HasBlockedNumbersListener implements OnHasBlockedNumbersListener {
+        public final CountDownLatch onHasBlockedNumbersCalled;
+        public boolean hasBlockedNumbers;
+
+        public HasBlockedNumbersListener() {
+            onHasBlockedNumbersCalled = new CountDownLatch(1);
+        }
+
+        @Override
+        public void onHasBlockedNumbers(boolean hasBlockedNumbers) {
+            this.hasBlockedNumbers = hasBlockedNumbers;
+            onHasBlockedNumbersCalled.countDown();
+        }
+
+        public boolean waitForCallback() throws InterruptedException {
+            if (!onHasBlockedNumbersCalled.await(5000, TimeUnit.MILLISECONDS)) {
+                throw new IllegalStateException("Waiting on callback timed out.");
+            }
+            return hasBlockedNumbers;
+        }
+    }
+
+    private class BlockingArgumentCaptorOnBlockNumberListener implements OnBlockNumberListener {
+        public final CountDownLatch onBlockCompleteCalled;
+        public Uri uri;
+
+        public BlockingArgumentCaptorOnBlockNumberListener() {
+            onBlockCompleteCalled = new CountDownLatch(1);
+        }
+
+        @Override
+        public void onBlockComplete(Uri uri) {
+            this.uri = uri;
+            onBlockCompleteCalled.countDown();
+        }
+    }
+}
diff --git a/tests/src/com/android/dialer/database/VoicemailArchiveProviderTest.java b/tests/src/com/android/dialer/database/VoicemailArchiveProviderTest.java
new file mode 100644
index 0000000..cec7e05
--- /dev/null
+++ b/tests/src/com/android/dialer/database/VoicemailArchiveProviderTest.java
@@ -0,0 +1,266 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.test.ProviderTestCase2;
+import android.test.mock.MockContentResolver;
+import com.android.dialer.database.VoicemailArchiveContract.VoicemailArchive;
+
+import java.io.File;
+import java.io.OutputStream;
+
+/**
+ * Tests for {@link VoicemailArchiveProvider}.
+ */
+public class VoicemailArchiveProviderTest extends
+        ProviderTestCase2<VoicemailArchiveProviderTest.TestVoicemailArchiveProvider> {
+    private static final String TEST_MIME_TYPE = "audio/mp3";
+    private static final String TEST_NUMBER = "+1412555555";
+    private static final int TEST_ARCHIVED = 1;
+    private static final String TEST_STRING = "TEST";
+
+    private MockContentResolver mResolver;
+    private Cursor mCursor;
+    private Uri mVoicemailUri;
+
+    public VoicemailArchiveProviderTest() {
+        super(TestVoicemailArchiveProvider.class, VoicemailArchiveContract.AUTHORITY);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mResolver = getMockContentResolver();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        if (mCursor != null) {
+            mCursor.close();
+        }
+        // Need to delete test.cache folder created by {@link android.test.ProviderTestCase2}
+        deleteRecursive(getContext().getCacheDir());
+        getProvider().closeDb();
+        super.tearDown();
+    }
+
+    public void testInsert() {
+        insertVoicemail();
+        assertNotNull(mVoicemailUri);
+        assertTrue(doesRowExist());
+        long id = ContentUris.parseId(mVoicemailUri);
+        assertTrue(id > 0);
+    }
+
+    public void testQuery_createFile() throws Exception {
+        insertVoicemail();
+        assertTrue(doesRowExist());
+        assertFalse(doesFileExist());
+        createFile();
+        assertTrue(doesFileExist());
+    }
+
+    public void testQuery() {
+        insertVoicemail();
+        updateCursor();
+        assertCursorCount(1);
+        assertContentValues();
+    }
+
+    public void testQuery_correctValuesSelection() {
+        insertVoicemail();
+        updateCursorWithIdQuery();
+        assertCursorCount(1);
+        assertContentValues();
+    }
+
+    public void testQuery_illegalUri() {
+        try {
+            mResolver.query(Uri.withAppendedPath(VoicemailArchive.CONTENT_URI, TEST_STRING),
+                    null, null, null, null);
+            fail("Expecting exception but none was thrown.");
+        } catch (IllegalArgumentException e) {}
+    }
+
+    public void testUpdate() throws Exception {
+        insertVoicemail();
+        assertTrue(doesRowExist());
+        ContentValues values = new ContentValues();
+        values.put(VoicemailArchive.MIME_TYPE, TEST_STRING);
+        values.put(VoicemailArchive.NUMBER, TEST_STRING);
+        values.put(VoicemailArchive.ARCHIVED, false);
+        mResolver.update(mVoicemailUri, values, null, null);
+        updateCursor();
+        assertEquals(TEST_STRING, mCursor.getString(mCursor.getColumnIndex(VoicemailArchive.MIME_TYPE)));
+        assertEquals(TEST_STRING, mCursor.getString(mCursor.getColumnIndex(VoicemailArchive.NUMBER)));
+        assertEquals(false, mCursor.getInt(
+                mCursor.getColumnIndex(VoicemailArchive.ARCHIVED)) == 1);
+    }
+
+    public void testUpdate_selection() throws Exception {
+        insertVoicemail();
+        assertTrue(doesRowExist());
+        ContentValues values = new ContentValues();
+        values.put(VoicemailArchive.MIME_TYPE, TEST_STRING);
+        values.put(VoicemailArchive.NUMBER, TEST_STRING);
+        values.put(VoicemailArchive.ARCHIVED, false);
+        mResolver.update(VoicemailArchive.CONTENT_URI, values, getIdQuery(), null);
+        updateCursor();
+        assertEquals(TEST_STRING, mCursor.getString(mCursor.getColumnIndex(VoicemailArchive.MIME_TYPE)));
+        assertEquals(TEST_STRING, mCursor.getString(mCursor.getColumnIndex(VoicemailArchive.NUMBER)));
+        assertEquals(false, mCursor.getInt(
+                mCursor.getColumnIndex(VoicemailArchive.ARCHIVED)) == 1);
+    }
+
+    public void testUpdate_illegalUri() {
+        try {
+            mResolver.update(Uri.withAppendedPath(VoicemailArchive.CONTENT_URI, TEST_STRING),
+                    null, null, null);
+            fail("Expecting exception but none was thrown.");
+        } catch (IllegalArgumentException e) {}
+    }
+
+    public void testDelete() throws Exception {
+        insertVoicemail();
+        createFile();
+        assertTrue(doesRowExist());
+        assertTrue(doesFileExist());
+        mResolver.delete(mVoicemailUri, null, null);
+        assertFalse(doesRowExist());
+        assertFalse(doesFileExist());
+    }
+
+    public void testDelete_selection() throws Exception{
+        insertVoicemail();
+        createFile();
+        assertTrue(doesRowExist());
+        assertTrue(doesFileExist());
+        mResolver.delete(VoicemailArchive.CONTENT_URI, getIdQuery(), null);
+        assertFalse(doesRowExist());
+        assertFalse(doesFileExist());
+    }
+
+    public void testDelete_illegalUri() {
+        try {
+            mResolver.delete(Uri.withAppendedPath(VoicemailArchive.CONTENT_URI, TEST_STRING),
+                    null, null);
+            fail("Expecting exception but none was thrown.");
+        } catch (IllegalArgumentException e) {}
+    }
+
+    private boolean doesRowExist() {
+        Cursor tempCursor = mResolver.query(mVoicemailUri, null, null, null, null);
+        boolean rowExists = tempCursor != null && tempCursor.getCount() > 0;
+        tempCursor.close();
+        return rowExists;
+    }
+
+    private boolean doesFileExist() {
+        File voicemailFile = new File(getFilePath());
+        return voicemailFile.exists();
+    }
+
+    private void assertCursorCount(int count) {
+        assertEquals(count, mCursor.getCount());
+    }
+
+    private void assertContentValues() {
+        assertEquals(TEST_MIME_TYPE, mCursor
+                .getString(mCursor.getColumnIndex(VoicemailArchive.MIME_TYPE)));
+        assertEquals(TEST_NUMBER, mCursor
+                .getString(mCursor.getColumnIndex(VoicemailArchive.NUMBER)));
+        assertEquals(TEST_ARCHIVED, mCursor
+                .getInt(mCursor.getColumnIndex(VoicemailArchive.ARCHIVED)));
+    }
+
+    private void insertVoicemail() {
+        mVoicemailUri = mResolver.insert(VoicemailArchive.CONTENT_URI, getTestValues());
+    }
+
+    private void updateCursor() {
+        mCursor = mResolver.query(mVoicemailUri, null, null, null, null);
+        assertEquals(true, mCursor.getCount() > 0);
+        mCursor.moveToFirst();
+    }
+
+    private void updateCursorWithIdQuery() {
+        mCursor = mResolver.query(mVoicemailUri, null, getIdQuery(), null, null);
+        assertEquals(true, mCursor.getCount() > 0);
+        mCursor.moveToFirst();
+    }
+
+    private void createFile() throws Exception {
+        assertFalse(doesFileExist());
+        // Opening output stream and closing it should create the file
+        OutputStream outputStream = mResolver.openOutputStream(mVoicemailUri);
+        outputStream.close();
+    }
+
+    private String getIdQuery() {
+        return VoicemailArchive._ID + "=" + ContentUris.parseId(mVoicemailUri);
+    }
+
+    private String getFilePath() {
+        if (mCursor == null) {
+            updateCursor();
+        }
+        return mCursor.getString(mCursor.getColumnIndex(VoicemailArchive._DATA));
+    }
+
+    private ContentValues getTestValues() {
+        ContentValues values = new ContentValues();
+        values.put(VoicemailArchive.NUMBER, TEST_NUMBER);
+        values.put(VoicemailArchive.MIME_TYPE, TEST_MIME_TYPE);
+        values.put(VoicemailArchive.ARCHIVED, TEST_ARCHIVED);
+        return values;
+    }
+
+    private void deleteRecursive(File fileOrDirectory) {
+        if (fileOrDirectory.isDirectory()) {
+            for (File child : fileOrDirectory.listFiles()) {
+                deleteRecursive(child);
+            }
+        }
+        fileOrDirectory.delete();
+    }
+
+    public static class TestVoicemailArchiveProvider extends VoicemailArchiveProvider {
+        private DialerDatabaseHelper mDialerDatabaseHelper;
+
+        @Override
+        protected File getFilesDir() {
+            return getContext().getCacheDir();
+        }
+
+        @Override
+        protected DialerDatabaseHelper getDatabaseHelper(Context context) {
+            if (mDialerDatabaseHelper == null) {
+                mDialerDatabaseHelper = DialerDatabaseHelper.getNewInstanceForTest(context);
+            }
+            return mDialerDatabaseHelper;
+        }
+
+        protected void closeDb() {
+            mDialerDatabaseHelper.close();
+        }
+    }
+}
diff --git a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
index ccd95ab..d2e7f0a 100644
--- a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
+++ b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
@@ -17,6 +17,7 @@
 
 import android.preference.PreferenceManager;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.contacts.common.test.mocks.ContactsMockContext;
 import com.android.contacts.common.test.mocks.MockContentProvider.Query;
@@ -24,6 +25,7 @@
 import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 
+@SmallTest
 public class FilteredNumbersUtilTest extends AndroidTestCase {
 
     private static final String COUNTRY_ISO = "US";
diff --git a/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java b/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
index 54a07cc..f58e6cc 100644
--- a/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
+++ b/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
@@ -257,6 +257,6 @@
                         Phone.MIMETYPE,
                         Phone.CONTACT_ID)
                 .withSelection("mimetype IN ('vnd.android.cursor.item/phone_v2',"
-                        + " 'vnd.android.cursor.item/sip_address') AND data1 NOT NULL");
+                        + " 'vnd.android.cursor.item/sip_address') AND data1 NOT NULL", null);
     }
 }
diff --git a/tools/gradle/android.properties b/tools/gradle/android.properties
new file mode 100644
index 0000000..fd1f721
--- /dev/null
+++ b/tools/gradle/android.properties
@@ -0,0 +1,2 @@
+compileSdkVersion 24
+buildToolsVersion = '24.0.0'
diff --git a/tools/gradle/gradlew b/tools/gradle/gradlew
new file mode 100755
index 0000000..7f33f9d
--- /dev/null
+++ b/tools/gradle/gradlew
@@ -0,0 +1,204 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+# TODO(jpd): b/15773596 - This is broken because we symlinked
+# gradlew and the build server can't clean it up. Don't resolve
+# links.
+#while [ -h "$PRG" ] ; do
+#    ls=`ls -ld "$PRG"`
+#    link=`expr "$ls" : '.*-> \(.*\)$'`
+#    if expr "$link" : '/.*' > /dev/null; then
+#        PRG="$link"
+#    else
+#        PRG=`dirname "$PRG"`"/$link"
+#    fi
+#done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+if [ $(basename `pwd`) == "gradle" ]; then
+    echo "This cannot be run here. It should be copied to the root of the platform."
+    exit
+else
+    CLASSPATH=./gradle/wrapper/gradle-wrapper.jar
+fi
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+# For reproducible builds, always use the SDKs stored in source control
+if $darwin; then
+    ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/darwin"
+else
+    ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/linux"
+fi
+export ANDROID_HOME
+
+# Change the project's .gradle to the android out dir.
+ANDROID_OUT_ROOT="$APP_HOME/out"
+if [[ -n "$OUT_DIR" ]]; then
+    ANDROID_OUT_ROOT="$OUT_DIR"
+fi
+
+ANDROID_CACHE_DIR="$ANDROID_OUT_ROOT/gradle/.gradle"
+
+# Prevent excess parallelization on the build servers, as it slows the
+# build to a crawl
+if [[ "$1" == --parallel-threads=* ]] && [[ "$2" == buildForBuildServer* ]]; then
+    set -- "--parallel-threads=4" "$2"
+fi
+
+# Change the local user directories to be under the android out dir
+export GRADLE_USER_HOME="$ANDROID_OUT_ROOT/gradle/.gradle"
+export M2_HOME="$ANDROID_OUT_ROOT/gradle/.m2"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" \
+    -classpath "$CLASSPATH" \
+    org.gradle.wrapper.GradleWrapperMain \
+    --project-cache-dir=$ANDROID_CACHE_DIR \
+    -Dorg.gradle.jvmargs="-Xmx4096m -XX:MaxPermSize=1024m" \
+    --configure-on-demand \
+    "$@"
diff --git a/tools/gradle/repositories.properties b/tools/gradle/repositories.properties
new file mode 100644
index 0000000..ffdd0d2
--- /dev/null
+++ b/tools/gradle/repositories.properties
@@ -0,0 +1 @@
+// Empty for now
diff --git a/tools/gradle/settings.gradle b/tools/gradle/settings.gradle
new file mode 100644
index 0000000..24d5e33
--- /dev/null
+++ b/tools/gradle/settings.gradle
@@ -0,0 +1,60 @@
+include 'android-common'
+project(':android-common').projectDir = new File(rootDir, 'frameworks/ex/common')
+
+include 'aplos'
+project(':aplos').projectDir = new File(rootDir, 'vendor/unbundled_google/libs/aplos')
+project(':aplos').buildFileName = 'build-split.gradle'
+
+include 'bind'
+project(':bind').projectDir = new File(rootDir, 'vendor/unbundled_google/libraries/bind')
+
+include 'gdata'
+project(':gdata').projectDir = new File(rootDir, 'vendor/unbundled_google/libraries/gdata')
+
+include 'golly'
+project(':golly').projectDir = new File(rootDir, 'vendor/unbundled_google/libraries/golly')
+
+include 'gsf-client'
+project(':gsf-client').projectDir = new File(rootDir, 'vendor/unbundled_google/libraries/gsfclient')
+
+include 'jsr305'
+project(':jsr305').projectDir = new File(rootDir, 'external/jsr305')
+
+include 'guava'
+project(':guava').projectDir = new File(rootDir, 'external/guava')
+
+include 'libphonenumber'
+project(':libphonenumber').projectDir = new File(rootDir, 'external/libphonenumber')
+project(':libphonenumber').buildFileName = 'build-full.gradle'
+
+include 'libprotobuf'
+project(':libprotobuf').projectDir = new File(rootDir, 'external/protobuf')
+
+include 'pseudonymous-http'
+project(':pseudonymous-http').projectDir = new File(rootDir, 'vendor/unbundled_google/libraries/pseudonymous_http')
+
+include 's2utils'
+project(':s2utils').projectDir = new File(rootDir, 'external/s2utils')
+
+include 'smslib_pduutils'
+project(':smslib_pduutils').projectDir = new File(rootDir, 'external/smslib_pduutils')
+
+include 'volley'
+project(':volley').projectDir = new File(rootDir, 'frameworks/volley')
+project(':volley').buildFileName = 'rules.gradle'
+
+include 'vcard'
+project(':vcard').projectDir = new File(rootDir, 'frameworks/opt/vcard')
+
+include 'phonecommon'
+project(':phonecommon').projectDir = new File(rootDir, 'packages/apps/PhoneCommon')
+
+include 'contactscommon'
+project(':contactscommon').projectDir = new File(rootDir, 'packages/apps/ContactsCommon')
+
+include 'incallui'
+project(':incallui').projectDir = new File(rootDir, 'packages/apps/Dialer/InCallUI')
+
+include 'dialer'
+project(':dialer').projectDir = new File(rootDir, 'packages/apps/Dialer')
+project(':dialer').buildFileName = 'build-app.gradle'
