am b95a4c75: am 92ecd0f1: Merge "Hide dial button in-call so that in-call chooser dialog shows up" into klp-dev
* commit 'b95a4c7582e93e1d3f1f2ce6facb899db10d29d2':
diff --git a/Android.mk b/Android.mk
index e0f5310..899d589 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,20 +4,23 @@
LOCAL_MODULE_TAGS := optional
contacts_common_dir := ../ContactsCommon
+incallui_dir := ../InCallUI
-src_dirs := src $(contacts_common_dir)/src
-res_dirs := res $(contacts_common_dir)/res
+src_dirs := src $(contacts_common_dir)/src $(incallui_dir)/src
+res_dirs := res $(contacts_common_dir)/res $(incallui_dir)/res
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
- --extra-packages com.android.contacts.common
+ --extra-packages com.android.contacts.common \
+ --extra-packages com.android.incallui
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_STATIC_JAVA_LIBRARIES := \
com.android.phone.shared \
+ com.android.services.telephony.common \
com.android.vcard \
android-common \
guava \
@@ -31,7 +34,7 @@
LOCAL_CERTIFICATE := shared
LOCAL_PRIVILEGED_MODULE := true
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+LOCAL_PROGUARD_FLAG_FILES := proguard.flags $(incallui_dir)/proguard.flags
include $(BUILD_PACKAGE)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d268345..0f3285e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -22,11 +22,13 @@
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
+ <uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
@@ -44,8 +46,13 @@
<!-- allow broadcasting secret code intents that reboot the phone -->
<uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <!-- This tells the activity manager to not delay any of our activity
+ start requests, even if they happen immediately after the user
+ presses home. -->
+ <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
<application
+ android:name="DialerApplication"
android:label="@string/applicationLabel"
android:icon="@mipmap/ic_launcher_phone"
android:hardwareAccelerated="true"
@@ -61,11 +68,10 @@
<activity android:name=".DialtactsActivity"
android:label="@string/launcherDialer"
android:theme="@style/DialtactsTheme"
- android:uiOptions="splitActionBarWhenNarrow"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:icon="@mipmap/ic_launcher_phone"
- android:screenOrientation="nosensor"
+ android:screenOrientation="portrait"
android:enabled="@*android:bool/config_voice_capable"
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing">
<intent-filter>
@@ -119,7 +125,7 @@
<activity android:name="com.android.dialer.calllog.CallLogActivity"
android:label="@string/call_log_activity_title"
- android:theme="@style/DialtactsTheme"
+ android:theme="@style/DialtactsThemeWithActionBarOverlay"
android:screenOrientation="portrait"
android:icon="@mipmap/ic_launcher_phone">
<intent-filter>
@@ -132,7 +138,7 @@
<activity android:name="com.android.dialer.list.AllContactsActivity"
android:label="@string/show_all_contacts_title"
- android:theme="@style/DialtactsTheme"
+ android:theme="@style/DialtactsThemeWithActionBarOverlay"
android:screenOrientation="portrait">
</activity>
@@ -141,6 +147,7 @@
android:theme="@style/CallDetailActivityTheme"
android:screenOrientation="portrait"
android:icon="@mipmap/ic_launcher_phone"
+ android:parentActivityName="com.android.dialer.calllog.CallLogActivity"
>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
@@ -238,6 +245,12 @@
</intent-filter>
</receiver>
+ <receiver android:name=".interactions.UndemoteOutgoingCallReceiver">
+ <intent-filter>
+ <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
+ </intent-filter>
+ </receiver>
+
<service
android:name=".calllog.CallLogNotificationsService"
android:exported="false"
@@ -247,5 +260,38 @@
<service
android:name=".contact.ContactUpdateService"
android:exported="false" />
+
+ <!-- Main in-call UI activity. This is never launched directly
+ from outside the phone app; instead, it's either launched by
+ the OutgoingCallBroadcaster (for outgoing calls), or as the
+ fullScreenIntent of a notification (for incoming calls.) -->
+ <activity android:name="com.android.incallui.InCallActivity"
+ android:theme="@style/Theme.InCallScreen"
+ android:label="@string/phoneAppLabel"
+ android:excludeFromRecents="true"
+ android:launchMode="singleInstance"
+ android:screenOrientation="nosensor"
+ android:configChanges="keyboardHidden"
+ android:exported="false"
+ android:process="com.android.incallui">
+ </activity>
+
+ <service android:name="com.android.incallui.CallHandlerService"
+ android:process="com.android.incallui"
+ android:permission="android.permission.BIND_CALL_SERVICE">
+ <intent-filter>
+ <action android:name="com.android.services.telephony.common.ICallHandlerService" />
+ </intent-filter>
+ </service>
+
+ <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
+ <receiver android:name="com.android.incallui.InCallApp$NotificationBroadcastReceiver"
+ android:exported="false"
+ android:process="com.android.incallui">
+ <intent-filter>
+ <action android:name="com.android.incallui.ACTION_HANG_UP_ONGOING_CALL" />
+ </intent-filter>
+ </receiver>
+
</application>
</manifest>
diff --git a/res/drawable-hdpi/btn_call_pressed.png b/res/drawable-hdpi/btn_call_pressed.png
deleted file mode 100644
index 6b497a2..0000000
--- a/res/drawable-hdpi/btn_call_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/dialer_recent_card_bg.9.png b/res/drawable-hdpi/dialer_recent_card_bg.9.png
index e581943..2bfdbcb 100644
--- a/res/drawable-hdpi/dialer_recent_card_bg.9.png
+++ b/res/drawable-hdpi/dialer_recent_card_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_ab_search.png b/res/drawable-hdpi/ic_ab_search.png
new file mode 100644
index 0000000..3702846
--- /dev/null
+++ b/res/drawable-hdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_person_dk.png b/res/drawable-hdpi/ic_add_person_dk.png
new file mode 100644
index 0000000..7096ed2
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_person_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_arrow_am.png b/res/drawable-hdpi/ic_arrow_am.png
new file mode 100644
index 0000000..6fecb93
--- /dev/null
+++ b/res/drawable-hdpi/ic_arrow_am.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_log_blue.png b/res/drawable-hdpi/ic_call_log_blue.png
new file mode 100644
index 0000000..92af15f
--- /dev/null
+++ b/res/drawable-hdpi/ic_call_log_blue.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_cancel_holo_light.png b/res/drawable-hdpi/ic_cancel_holo_light.png
new file mode 100644
index 0000000..d8cacb4
--- /dev/null
+++ b/res/drawable-hdpi/ic_cancel_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_vm.png b/res/drawable-hdpi/ic_dial_action_vm.png
index 68ee3d6..f424304 100644
--- a/res/drawable-hdpi/ic_dial_action_vm.png
+++ b/res/drawable-hdpi/ic_dial_action_vm.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dialer_fork_add_call.png b/res/drawable-hdpi/ic_dialer_fork_add_call.png
index e046996..4e0d564 100755
--- a/res/drawable-hdpi/ic_dialer_fork_add_call.png
+++ b/res/drawable-hdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dialer_fork_current_call.png b/res/drawable-hdpi/ic_dialer_fork_current_call.png
index 6e1a395..2cf41d5 100755
--- a/res/drawable-hdpi/ic_dialer_fork_current_call.png
+++ b/res/drawable-hdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png b/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png
index 6b50da1..043685f 100755
--- a/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png
+++ b/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fav_undo_dk.png b/res/drawable-hdpi/ic_fav_undo_dk.png
index 1279114..8c1b451 100644
--- a/res/drawable-hdpi/ic_fav_undo_dk.png
+++ b/res/drawable-hdpi/ic_fav_undo_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_dialpad_dk.png b/res/drawable-hdpi/ic_menu_dialpad_dk.png
index 4da8f28..55f5477 100644
--- a/res/drawable-hdpi/ic_menu_dialpad_dk.png
+++ b/res/drawable-hdpi/ic_menu_dialpad_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_history_dk.png b/res/drawable-hdpi/ic_menu_history_dk.png
index b8d1944..b64122f 100644
--- a/res/drawable-hdpi/ic_menu_history_dk.png
+++ b/res/drawable-hdpi/ic_menu_history_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_overflow.png b/res/drawable-hdpi/ic_menu_overflow.png
deleted file mode 100644
index a12aedf..0000000
--- a/res/drawable-hdpi/ic_menu_overflow.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_overflow_dk.png b/res/drawable-hdpi/ic_menu_overflow_dk.png
index 69741cb..e9b0523 100644
--- a/res/drawable-hdpi/ic_menu_overflow_dk.png
+++ b/res/drawable-hdpi/ic_menu_overflow_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_phone_dk.png b/res/drawable-hdpi/ic_phone_dk.png
new file mode 100644
index 0000000..984d6fa
--- /dev/null
+++ b/res/drawable-hdpi/ic_phone_dk.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_marked_as_fav.png b/res/drawable-hdpi/ic_star_marked_as_fav.png
new file mode 100644
index 0000000..8a138c4
--- /dev/null
+++ b/res/drawable-hdpi/ic_star_marked_as_fav.png
Binary files differ
diff --git a/res/drawable-hdpi/list_item_avatar_bg.png b/res/drawable-hdpi/list_item_avatar_bg.png
new file mode 100644
index 0000000..66e5f3e
--- /dev/null
+++ b/res/drawable-hdpi/list_item_avatar_bg.png
Binary files differ
diff --git a/res/drawable-hdpi/no_favorites_banner.png b/res/drawable-hdpi/no_favorites_banner.png
new file mode 100644
index 0000000..a4b09c0
--- /dev/null
+++ b/res/drawable-hdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-hdpi/shadow_contact_photo.png b/res/drawable-hdpi/shadow_contact_photo.png
index 49cbb97..44b06f2 100644
--- a/res/drawable-hdpi/shadow_contact_photo.png
+++ b/res/drawable-hdpi/shadow_contact_photo.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_light.png b/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_light.png
deleted file mode 100644
index 1bc02cc..0000000
--- a/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_light.png b/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_light.png
deleted file mode 100644
index 8a25e70..0000000
--- a/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_call_pressed.png b/res/drawable-mdpi/btn_call_pressed.png
deleted file mode 100644
index 637b06a..0000000
--- a/res/drawable-mdpi/btn_call_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/dialer_recent_card_bg.9.png b/res/drawable-mdpi/dialer_recent_card_bg.9.png
index cb1d26f..dff6a0b 100644
--- a/res/drawable-mdpi/dialer_recent_card_bg.9.png
+++ b/res/drawable-mdpi/dialer_recent_card_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_ab_search.png b/res/drawable-mdpi/ic_ab_search.png
new file mode 100644
index 0000000..cc9f911
--- /dev/null
+++ b/res/drawable-mdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_person_dk.png b/res/drawable-mdpi/ic_add_person_dk.png
new file mode 100644
index 0000000..0e0aed0
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_person_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_arrow_am.png b/res/drawable-mdpi/ic_arrow_am.png
new file mode 100644
index 0000000..11bf05b
--- /dev/null
+++ b/res/drawable-mdpi/ic_arrow_am.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_log_blue.png b/res/drawable-mdpi/ic_call_log_blue.png
new file mode 100644
index 0000000..b9209ad
--- /dev/null
+++ b/res/drawable-mdpi/ic_call_log_blue.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_cancel_holo_light.png b/res/drawable-mdpi/ic_cancel_holo_light.png
new file mode 100644
index 0000000..56705c3
--- /dev/null
+++ b/res/drawable-mdpi/ic_cancel_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_vm.png b/res/drawable-mdpi/ic_dial_action_vm.png
index 5b91b42..fbcf378 100644
--- a/res/drawable-mdpi/ic_dial_action_vm.png
+++ b/res/drawable-mdpi/ic_dial_action_vm.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialer_fork_add_call.png b/res/drawable-mdpi/ic_dialer_fork_add_call.png
index 5a1555b..56ac2a3 100644
--- a/res/drawable-mdpi/ic_dialer_fork_add_call.png
+++ b/res/drawable-mdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialer_fork_current_call.png b/res/drawable-mdpi/ic_dialer_fork_current_call.png
index 1be783e..16a44a0 100644
--- a/res/drawable-mdpi/ic_dialer_fork_current_call.png
+++ b/res/drawable-mdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png b/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png
index 4e3dd82..66df69e 100644
--- a/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png
+++ b/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fav_undo_dk.png b/res/drawable-mdpi/ic_fav_undo_dk.png
index 78a3437..9655590 100644
--- a/res/drawable-mdpi/ic_fav_undo_dk.png
+++ b/res/drawable-mdpi/ic_fav_undo_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_dialpad_dk.png b/res/drawable-mdpi/ic_menu_dialpad_dk.png
index 5a3ac0c..a7dcd24 100644
--- a/res/drawable-mdpi/ic_menu_dialpad_dk.png
+++ b/res/drawable-mdpi/ic_menu_dialpad_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_history_dk.png b/res/drawable-mdpi/ic_menu_history_dk.png
index d9306ba..2203f3a 100644
--- a/res/drawable-mdpi/ic_menu_history_dk.png
+++ b/res/drawable-mdpi/ic_menu_history_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_overflow.png b/res/drawable-mdpi/ic_menu_overflow.png
deleted file mode 100644
index 4a3bde3..0000000
--- a/res/drawable-mdpi/ic_menu_overflow.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_overflow_dk.png b/res/drawable-mdpi/ic_menu_overflow_dk.png
index 2a477c8..67f281d 100644
--- a/res/drawable-mdpi/ic_menu_overflow_dk.png
+++ b/res/drawable-mdpi/ic_menu_overflow_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_phone_dk.png b/res/drawable-mdpi/ic_phone_dk.png
new file mode 100644
index 0000000..c55571a
--- /dev/null
+++ b/res/drawable-mdpi/ic_phone_dk.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_marked_as_fav.png b/res/drawable-mdpi/ic_star_marked_as_fav.png
new file mode 100644
index 0000000..ee1b5ec
--- /dev/null
+++ b/res/drawable-mdpi/ic_star_marked_as_fav.png
Binary files differ
diff --git a/res/drawable-mdpi/list_item_avatar_bg.png b/res/drawable-mdpi/list_item_avatar_bg.png
new file mode 100644
index 0000000..640eb3e
--- /dev/null
+++ b/res/drawable-mdpi/list_item_avatar_bg.png
Binary files differ
diff --git a/res/drawable-mdpi/no_favorites_banner.png b/res/drawable-mdpi/no_favorites_banner.png
new file mode 100644
index 0000000..ac080b9
--- /dev/null
+++ b/res/drawable-mdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-mdpi/shadow_contact_photo.png b/res/drawable-mdpi/shadow_contact_photo.png
index 4734bbd..8665d83 100644
--- a/res/drawable-mdpi/shadow_contact_photo.png
+++ b/res/drawable-mdpi/shadow_contact_photo.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_call_pressed.png b/res/drawable-xhdpi/btn_call_pressed.png
deleted file mode 100644
index cdf52f8..0000000
--- a/res/drawable-xhdpi/btn_call_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/dialer_recent_card_bg.9.png b/res/drawable-xhdpi/dialer_recent_card_bg.9.png
index e1a4b67..05d254d 100644
--- a/res/drawable-xhdpi/dialer_recent_card_bg.9.png
+++ b/res/drawable-xhdpi/dialer_recent_card_bg.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_ab_search.png b/res/drawable-xhdpi/ic_ab_search.png
new file mode 100644
index 0000000..718ff49
--- /dev/null
+++ b/res/drawable-xhdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_person_dk.png b/res/drawable-xhdpi/ic_add_person_dk.png
new file mode 100644
index 0000000..5211f5c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_person_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_arrow_am.png b/res/drawable-xhdpi/ic_arrow_am.png
new file mode 100644
index 0000000..ffbd399
--- /dev/null
+++ b/res/drawable-xhdpi/ic_arrow_am.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_log_blue.png b/res/drawable-xhdpi/ic_call_log_blue.png
new file mode 100644
index 0000000..9d92573
--- /dev/null
+++ b/res/drawable-xhdpi/ic_call_log_blue.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_cancel_holo_light.png b/res/drawable-xhdpi/ic_cancel_holo_light.png
new file mode 100644
index 0000000..630f3fd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_cancel_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_vm.png b/res/drawable-xhdpi/ic_dial_action_vm.png
index 269fd1a..2919bbd 100644
--- a/res/drawable-xhdpi/ic_dial_action_vm.png
+++ b/res/drawable-xhdpi/ic_dial_action_vm.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialer_fork_add_call.png b/res/drawable-xhdpi/ic_dialer_fork_add_call.png
index 2c1f817..aff140f 100644
--- a/res/drawable-xhdpi/ic_dialer_fork_add_call.png
+++ b/res/drawable-xhdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialer_fork_current_call.png b/res/drawable-xhdpi/ic_dialer_fork_current_call.png
index b1c4008..8975727 100644
--- a/res/drawable-xhdpi/ic_dialer_fork_current_call.png
+++ b/res/drawable-xhdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png b/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png
index ccd8f8a..4d48ea9 100644
--- a/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png
+++ b/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fav_undo_dk.png b/res/drawable-xhdpi/ic_fav_undo_dk.png
index ef0b84e..4e1b651 100644
--- a/res/drawable-xhdpi/ic_fav_undo_dk.png
+++ b/res/drawable-xhdpi/ic_fav_undo_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_dialpad_dk.png b/res/drawable-xhdpi/ic_menu_dialpad_dk.png
index 317bf66..bd80859 100644
--- a/res/drawable-xhdpi/ic_menu_dialpad_dk.png
+++ b/res/drawable-xhdpi/ic_menu_dialpad_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_history_dk.png b/res/drawable-xhdpi/ic_menu_history_dk.png
index 63ad62b..25b28e5 100644
--- a/res/drawable-xhdpi/ic_menu_history_dk.png
+++ b/res/drawable-xhdpi/ic_menu_history_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_overflow.png b/res/drawable-xhdpi/ic_menu_overflow.png
deleted file mode 100644
index 715cff8..0000000
--- a/res/drawable-xhdpi/ic_menu_overflow.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_overflow_dk.png b/res/drawable-xhdpi/ic_menu_overflow_dk.png
index 8cbd508..ec50c22 100644
--- a/res/drawable-xhdpi/ic_menu_overflow_dk.png
+++ b/res/drawable-xhdpi/ic_menu_overflow_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_people_info.png b/res/drawable-xhdpi/ic_people_info.png
deleted file mode 100644
index b933bbc..0000000
--- a/res/drawable-xhdpi/ic_people_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_phone_dk.png b/res/drawable-xhdpi/ic_phone_dk.png
new file mode 100644
index 0000000..74a7032
--- /dev/null
+++ b/res/drawable-xhdpi/ic_phone_dk.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_marked_as_fav.png b/res/drawable-xhdpi/ic_star_marked_as_fav.png
new file mode 100644
index 0000000..372747a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_star_marked_as_fav.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_item_avatar_bg.png b/res/drawable-xhdpi/list_item_avatar_bg.png
new file mode 100644
index 0000000..cac7fbd
--- /dev/null
+++ b/res/drawable-xhdpi/list_item_avatar_bg.png
Binary files differ
diff --git a/res/drawable-xhdpi/no_favorites_banner.png b/res/drawable-xhdpi/no_favorites_banner.png
new file mode 100644
index 0000000..bae4e99
--- /dev/null
+++ b/res/drawable-xhdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-xhdpi/shadow_contact_photo.png b/res/drawable-xhdpi/shadow_contact_photo.png
index 1077ec1..8359a50 100644
--- a/res/drawable-xhdpi/shadow_contact_photo.png
+++ b/res/drawable-xhdpi/shadow_contact_photo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png b/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png
new file mode 100644
index 0000000..59e1bae
--- /dev/null
+++ b/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/dialer_recent_card_bg.9.png b/res/drawable-xxhdpi/dialer_recent_card_bg.9.png
new file mode 100644
index 0000000..87d95f0
--- /dev/null
+++ b/res/drawable-xxhdpi/dialer_recent_card_bg.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_ab_search.png b/res/drawable-xxhdpi/ic_ab_search.png
new file mode 100644
index 0000000..4bb5165
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_person_dk.png b/res/drawable-xxhdpi/ic_add_person_dk.png
new file mode 100644
index 0000000..54ca1f0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_person_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_arrow_am.png b/res/drawable-xxhdpi/ic_arrow_am.png
new file mode 100644
index 0000000..4938de2
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_arrow_am.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png b/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png
new file mode 100644
index 0000000..1276917
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_log_blue.png b/res/drawable-xxhdpi/ic_call_log_blue.png
new file mode 100644
index 0000000..0a55a75
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_log_blue.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png b/res/drawable-xxhdpi/ic_call_missed_holo_dark.png
new file mode 100644
index 0000000..8919fd3
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_missed_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png
new file mode 100644
index 0000000..192bbf6
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_voicemail_holo_dark.png b/res/drawable-xxhdpi/ic_call_voicemail_holo_dark.png
new file mode 100644
index 0000000..ac5b83b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_voicemail_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_cancel_holo_light.png b/res/drawable-xxhdpi/ic_cancel_holo_light.png
new file mode 100644
index 0000000..c2f5b5e
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_cancel_holo_light.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_close_dk.png b/res/drawable-xxhdpi/ic_close_dk.png
new file mode 100644
index 0000000..2472da8
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_close_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_contact_info.png b/res/drawable-xxhdpi/ic_contact_info.png
new file mode 100644
index 0000000..e5d2939
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_contact_info.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_call.png b/res/drawable-xxhdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..12a5c07
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_delete.png b/res/drawable-xxhdpi/ic_dial_action_delete.png
new file mode 100644
index 0000000..a7ff1b1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_vm.png b/res/drawable-xxhdpi/ic_dial_action_vm.png
new file mode 100644
index 0000000..acac8d8
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dial_action_vm.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dialer_fork_add_call.png b/res/drawable-xxhdpi/ic_dialer_fork_add_call.png
new file mode 100644
index 0000000..1657da4
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dialer_fork_current_call.png b/res/drawable-xxhdpi/ic_dialer_fork_current_call.png
new file mode 100644
index 0000000..f25cce6
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png b/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png
new file mode 100644
index 0000000..7ac4d8b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fav_undo_dk.png b/res/drawable-xxhdpi/ic_fav_undo_dk.png
new file mode 100644
index 0000000..4b7dfc4
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_fav_undo_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png b/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png
new file mode 100644
index 0000000..ae4037e
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_delete_dk.png b/res/drawable-xxhdpi/ic_menu_delete_dk.png
new file mode 100644
index 0000000..88445fc
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_delete_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_dialpad_dk.png b/res/drawable-xxhdpi/ic_menu_dialpad_dk.png
new file mode 100644
index 0000000..09cc2f8
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_dialpad_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_history_dk.png b/res/drawable-xxhdpi/ic_menu_history_dk.png
new file mode 100644
index 0000000..3664705
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_history_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_history_lt.png b/res/drawable-xxhdpi/ic_menu_history_lt.png
new file mode 100644
index 0000000..779bc06
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_history_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_overflow_dk.png b/res/drawable-xxhdpi/ic_menu_overflow_dk.png
new file mode 100644
index 0000000..004f26b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_overflow_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_overflow_lt.png b/res/drawable-xxhdpi/ic_menu_overflow_lt.png
new file mode 100644
index 0000000..b9f0c3d
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_phone_dk.png b/res/drawable-xxhdpi/ic_phone_dk.png
new file mode 100644
index 0000000..de9387d
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_phone_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_play_active_holo_dark.png b/res/drawable-xxhdpi/ic_play_active_holo_dark.png
new file mode 100644
index 0000000..fc34243
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_play_active_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_play_holo_dark.png b/res/drawable-xxhdpi/ic_play_holo_dark.png
new file mode 100644
index 0000000..3037027
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_play_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_play_holo_light.png b/res/drawable-xxhdpi/ic_play_holo_light.png
new file mode 100644
index 0000000..b7b425c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_play_holo_light.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_marked_as_fav.png b/res/drawable-xxhdpi/ic_star_marked_as_fav.png
new file mode 100644
index 0000000..3eeff4c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_star_marked_as_fav.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_bt_dk.png b/res/drawable-xxhdpi/ic_vm_bt_dk.png
new file mode 100644
index 0000000..0cb69bd
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_bt_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_minus_dis.png b/res/drawable-xxhdpi/ic_vm_minus_dis.png
new file mode 100644
index 0000000..578d409
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_minus_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_minus_dk.png b/res/drawable-xxhdpi/ic_vm_minus_dk.png
new file mode 100644
index 0000000..80bc75a
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_minus_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_pause_dis.png b/res/drawable-xxhdpi/ic_vm_pause_dis.png
new file mode 100644
index 0000000..44adfde
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_pause_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_pause_dk.png b/res/drawable-xxhdpi/ic_vm_pause_dk.png
new file mode 100644
index 0000000..47fb136
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_pause_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png b/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png
new file mode 100644
index 0000000..ee12670
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_play_dis.png b/res/drawable-xxhdpi/ic_vm_play_dis.png
new file mode 100644
index 0000000..9ad3d68
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_play_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_play_dk.png b/res/drawable-xxhdpi/ic_vm_play_dk.png
new file mode 100644
index 0000000..c47b7e0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_play_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_plus_dis.png b/res/drawable-xxhdpi/ic_vm_plus_dis.png
new file mode 100644
index 0000000..aad67ca
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_plus_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_plus_dk.png b/res/drawable-xxhdpi/ic_vm_plus_dk.png
new file mode 100644
index 0000000..b23dfab
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_plus_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_sound_off_dis.png b/res/drawable-xxhdpi/ic_vm_sound_off_dis.png
new file mode 100644
index 0000000..bab4a43
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_sound_off_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_sound_off_dk.png b/res/drawable-xxhdpi/ic_vm_sound_off_dk.png
new file mode 100644
index 0000000..1c13101
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_sound_off_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_sound_on_dis.png b/res/drawable-xxhdpi/ic_vm_sound_on_dis.png
new file mode 100644
index 0000000..ed3a173
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_sound_on_dis.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_sound_on_dk.png b/res/drawable-xxhdpi/ic_vm_sound_on_dk.png
new file mode 100644
index 0000000..c04b8d1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_vm_sound_on_dk.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_voice_search.png b/res/drawable-xxhdpi/ic_voice_search.png
new file mode 100644
index 0000000..4c17d2b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-xxhdpi/list_item_avatar_bg.png b/res/drawable-xxhdpi/list_item_avatar_bg.png
new file mode 100644
index 0000000..fcfe2da
--- /dev/null
+++ b/res/drawable-xxhdpi/list_item_avatar_bg.png
Binary files differ
diff --git a/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png
new file mode 100644
index 0000000..26234b1
--- /dev/null
+++ b/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/no_favorites_banner.png b/res/drawable-xxhdpi/no_favorites_banner.png
new file mode 100644
index 0000000..0e2a4fa
--- /dev/null
+++ b/res/drawable-xxhdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-xxhdpi/shadow_contact_photo.png b/res/drawable-xxhdpi/shadow_contact_photo.png
new file mode 100644
index 0000000..bfeb0ff
--- /dev/null
+++ b/res/drawable-xxhdpi/shadow_contact_photo.png
Binary files differ
diff --git a/res/drawable/bottom_border_background_pressed.xml b/res/drawable/bottom_border_background_pressed.xml
new file mode 100644
index 0000000..fc5a5b8
--- /dev/null
+++ b/res/drawable/bottom_border_background_pressed.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:drawable="@drawable/bottom_border_background" />
+ <item android:drawable="@drawable/list_selector_background_transition_holo_light" />
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/btn_call.xml b/res/drawable/btn_call.xml
index abce983..ae2f6c0 100644
--- a/res/drawable/btn_call.xml
+++ b/res/drawable/btn_call.xml
@@ -24,9 +24,6 @@
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_dark" />
- <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_call_pressed" />
- <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_call_pressed" />
<item android:state_focused="true" android:drawable="@drawable/list_focused_holo" />
<item android:drawable="@android:color/transparent" />
</selector>
-
diff --git a/res/drawable/contact_list_item_background.xml b/res/drawable/contact_list_item_background.xml
new file mode 100644
index 0000000..5637f4d
--- /dev/null
+++ b/res/drawable/contact_list_item_background.xml
@@ -0,0 +1,19 @@
+<?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:state_pressed="true" android:drawable="@drawable/bottom_border_background_pressed" />
+ <item android:drawable="@drawable/bottom_border_background" />
+</selector>
diff --git a/res/drawable/ic_arrow.xml b/res/drawable/ic_arrow.xml
new file mode 100644
index 0000000..f97623b
--- /dev/null
+++ b/res/drawable/ic_arrow.xml
@@ -0,0 +1,20 @@
+<?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
+ -->
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_arrow_am"
+ android:autoMirrored="true">
+</bitmap>
\ No newline at end of file
diff --git a/res/drawable/ic_minus.xml b/res/drawable/ic_minus.xml
index f36bf8d..2bd0699 100644
--- a/res/drawable/ic_minus.xml
+++ b/res/drawable/ic_minus.xml
@@ -15,6 +15,6 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_enabled="false" android:drawable="@drawable/ic_vm_minus_dk" />
+ <item android:state_enabled="false" android:drawable="@drawable/ic_vm_minus_dis" />
<item android:drawable="@drawable/ic_vm_minus_dk" />
</selector>
diff --git a/res/layout/call_detail.xml b/res/layout/call_detail.xml
index c9cc7d9..53f6b8d 100644
--- a/res/layout/call_detail.xml
+++ b/res/layout/call_detail.xml
@@ -73,10 +73,10 @@
</view>
<LinearLayout
- android:id="@+id/blue_separator"
+ android:id="@+id/separator"
android:layout_width="match_parent"
android:layout_height="1dip"
- android:background="@android:color/holo_blue_light"
+ android:background="@color/background_dialer_light"
android:layout_below="@+id/contact_background_sizer"
/>
<View
@@ -126,7 +126,7 @@
android:id="@+id/voicemail_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_below="@id/blue_separator"
+ android:layout_below="@id/separator"
android:paddingBottom="@dimen/call_detail_button_spacing">
<!-- The voicemail fragment will be put here. -->
</LinearLayout>
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index 5a6c446..1d368f6 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -19,6 +19,7 @@
class="com.android.dialer.calllog.CallLogListItemView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:id="@+id/call_log_list_item"
android:orientation="vertical"
android:background="@drawable/bottom_border_background"
>
@@ -38,8 +39,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_marginStart="@dimen/call_log_outer_margin"
- android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:padding="@dimen/call_log_outer_margin"
android:orientation="horizontal"
android:gravity="center_vertical"
android:background="?android:attr/selectableItemBackground"
@@ -59,8 +59,6 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:paddingTop="@dimen/call_log_inner_margin"
- android:paddingBottom="@dimen/call_log_inner_margin"
android:orientation="vertical"
android:gravity="center_vertical"
android:layout_marginStart="@dimen/call_log_inner_margin"
@@ -71,7 +69,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:textColor="?attr/call_log_primary_text_color"
- android:textSize="18sp"
+ android:textSize="16sp"
android:singleLine="true"
/>
<LinearLayout
@@ -85,8 +83,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:textColor="?attr/call_log_secondary_text_color"
- android:textStyle="bold"
- android:textSize="14sp"
+ android:textSize="12sp"
android:singleLine="true"
android:ellipsize="marquee"
/>
@@ -112,7 +109,7 @@
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:layout_gravity="center_vertical"
android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="14sp"
+ android:textSize="12sp"
android:singleLine="true"
/>
</LinearLayout>
@@ -139,12 +136,10 @@
android:paddingTop="@dimen/call_log_inner_margin"
android:paddingBottom="@dimen/call_log_inner_margin" />
- <View
- android:id="@+id/call_log_divider"
- android:layout_width="match_parent"
- android:layout_height="1px"
- android:layout_marginStart="@dimen/call_log_outer_margin"
- android:layout_marginEnd="@dimen/call_log_outer_margin"
- android:background="#55ffffff"
- />
+ <!-- Displays the extra link section -->
+ <ViewStub android:id="@+id/link_stub"
+ android:layout="@layout/call_log_list_item_extra"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
</view>
diff --git a/res/layout/call_log_list_item_extra.xml b/res/layout/call_log_list_item_extra.xml
new file mode 100644
index 0000000..fbf71f6
--- /dev/null
+++ b/res/layout/call_log_list_item_extra.xml
@@ -0,0 +1,59 @@
+<?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
+ -->
+
+<!-- Can't use merge here because this is referenced via a ViewStub -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/badge_container">
+
+ <View android:layout_width="match_parent"
+ android:layout_height="1px"
+ android:layout_marginStart="@dimen/call_log_outer_margin"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:background="@color/favorite_contacts_separator_color"/>
+
+ <LinearLayout android:id="@+id/badge_link_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/call_log_outer_margin"
+ android:paddingEnd="@dimen/call_log_outer_margin"
+ android:paddingTop="0dip"
+ android:paddingBottom="0dip"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true">
+ <ImageView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/badge_image"
+ android:padding="@dimen/call_log_outer_margin"/>
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/badge_text"
+ android:textColor="@color/dialpad_primary_text_color"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"/>
+ <ImageView android:id="@+id/dismiss_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="8dip"
+ android:src="@drawable/ic_close_dk"
+ android:background="?android:attr/selectableItemBackground"
+ android:visibility="gone"
+ android:contentDescription="@string/description_dismiss"/>
+ </LinearLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/dialpad.xml b/res/layout/dialpad.xml
index 60240bc..4fc3e83 100644
--- a/res/layout/dialpad.xml
+++ b/res/layout/dialpad.xml
@@ -36,24 +36,28 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/one"
style="@style/DialtactsDialpadButtonStyle"
- android:clickable="true" >
- <TextView
- android:id="@+id/dialpad_key_number"
+ android:clickable="true"
+ android:focusable="true" >
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/dialpad_primary_text_color"
- android:textSize="@dimen/dialpad_key_numbers_size"
- android:fontFamily="sans-serif-light"
- android:layout_centerInParent="true" />
- <ImageView
- android:id="@+id/dialpad_key_voicemail"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_dial_action_vm"
- android:paddingRight="11dp"
- android:layout_alignBaseline="@id/dialpad_key_number"
- android:baselineAlignBottom="true"
- android:layout_alignParentRight="true" />
+ android:layout_gravity="center" >
+ <TextView
+ android:id="@+id/dialpad_key_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/dialpad_primary_text_color"
+ android:textSize="@dimen/dialpad_key_numbers_size"
+ android:fontFamily="sans-serif-light"/>
+ <ImageView
+ android:id="@+id/dialpad_key_voicemail"
+ android:layout_width="@dimen/dialpad_key_letters_width"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_dial_action_vm"
+ android:paddingLeft="11dp"
+ android:scaleType="fitStart"
+ android:baselineAlignBottom="true" />
+ </LinearLayout>
</com.android.dialer.dialpad.DialpadKeyButton>
<include layout="@layout/dialpad_key" android:id="@+id/two"/>
<include layout="@layout/dialpad_key" android:id="@+id/three"/>
@@ -82,7 +86,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/star"
style="@style/DialtactsDialpadButtonStyle"
- android:clickable="true" >
+ android:clickable="true"
+ android:focusable="true" >
<TextView
android:id="@id/dialpad_key_number"
android:layout_width="wrap_content"
@@ -90,14 +95,16 @@
android:textColor="@color/dialpad_secondary_text_color"
android:textSize="@dimen/dialpad_key_special_characters_size"
android:fontFamily="sans-serif-light"
- android:layout_centerInParent="true" />
+ android:paddingRight="@dimen/dialpad_key_letters_width"
+ android:layout_gravity="center" />
</com.android.dialer.dialpad.DialpadKeyButton>
<include layout="@layout/dialpad_key" android:id="@+id/zero"/>
<com.android.dialer.dialpad.DialpadKeyButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pound"
style="@style/DialtactsDialpadButtonStyle"
- android:clickable="true" >
+ android:clickable="true"
+ android:focusable="true" >
<TextView
android:id="@id/dialpad_key_number"
android:layout_width="wrap_content"
@@ -105,7 +112,8 @@
android:textColor="@color/dialpad_secondary_text_color"
android:textSize="@dimen/dialpad_key_special_characters_size"
android:fontFamily="sans-serif-light"
- android:layout_centerInParent="true" />
+ android:paddingRight="@dimen/dialpad_key_letters_width"
+ android:layout_gravity="center" />
</com.android.dialer.dialpad.DialpadKeyButton>
</TableRow>
</TableLayout>
diff --git a/res/layout/dialpad_fragment.xml b/res/layout/dialpad_fragment.xml
index b79214a..e673cea 100644
--- a/res/layout/dialpad_fragment.xml
+++ b/res/layout/dialpad_fragment.xml
@@ -19,11 +19,12 @@
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- spacer view -->
- <Space
+ <View
+ android:id="@+id/spacer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
- <LinearLayout
+ <view class="com.android.dialer.dialpad.DialpadFragment$HoverIgnoringLinearLayout"
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="0dp"
@@ -41,7 +42,7 @@
android:id="@+id/digits_container"
android:layout_width="match_parent"
android:layout_height="0px"
- android:layout_weight="@integer/dialpad_layout_weight_digits_new"
+ android:layout_weight="@integer/dialpad_layout_weight_digits"
android:layout_marginTop="@dimen/dialpad_vertical_margin"
android:gravity="center" >
@@ -50,9 +51,14 @@
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="match_parent"
+ android:paddingLeft="10dp"
android:gravity="center"
+ android:scrollHorizontally="true"
+ android:singleLine="true"
android:textAppearance="@style/DialtactsDigitsTextAppearance"
android:textColor="@color/dialpad_text_color"
+ android:textCursorDrawable="@null"
+ android:fontFamily="sans-serif-light"
android:nextFocusRight="@+id/overflow_menu"
android:background="@android:color/transparent" />
@@ -76,10 +82,10 @@
<LinearLayout
android:id="@+id/dialButtonContainer"
android:layout_width="match_parent"
- android:layout_height="0px"
- android:layout_weight="@integer/dialpad_layout_weight_additional_buttons"
+ android:layout_height="@dimen/fake_action_bar_height"
android:layout_gravity="center_horizontal"
- android:background="@color/dialpad_primary_text_color">
+ android:background="@color/dialpad_primary_text_color"
+ android:layoutDirection="locale">
<ImageButton
android:id="@+id/call_history_on_dialpad_button"
android:layout_height="match_parent"
@@ -118,5 +124,5 @@
android:layout_weight="1"
/>
- </LinearLayout>
+ </view>
</view>
diff --git a/res/layout/dialpad_key.xml b/res/layout/dialpad_key.xml
index b204c20..c104f8a 100644
--- a/res/layout/dialpad_key.xml
+++ b/res/layout/dialpad_key.xml
@@ -18,25 +18,28 @@
<com.android.dialer.dialpad.DialpadKeyButton
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/DialtactsDialpadButtonStyle"
- android:clickable="true" >
- <TextView
- android:id="@+id/dialpad_key_number"
+ android:clickable="true"
+ android:focusable="true" >
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/dialpad_primary_text_color"
- android:textSize="@dimen/dialpad_key_numbers_size"
- android:fontFamily="sans-serif-light"
- android:layout_centerInParent="true"
- />
- <TextView
- android:id="@+id/dialpad_key_letters"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="@color/dialpad_secondary_text_color"
- android:textSize="@dimen/dialpad_key_letters_size"
- android:paddingRight="11dp"
- android:layout_alignBaseline="@id/dialpad_key_number"
- android:fontFamily="sans-serif-light"
- android:layout_alignParentRight="true"
- />
+ android:layout_gravity="center">
+ <TextView
+ android:id="@+id/dialpad_key_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/dialpad_primary_text_color"
+ android:textSize="@dimen/dialpad_key_numbers_size"
+ android:fontFamily="sans-serif-light"
+ />
+ <TextView
+ android:id="@+id/dialpad_key_letters"
+ android:layout_width="@dimen/dialpad_key_letters_width"
+ android:layout_height="wrap_content"
+ android:textColor="@color/dialpad_secondary_text_color"
+ android:textSize="@dimen/dialpad_key_letters_size"
+ android:paddingLeft="11dp"
+ android:fontFamily="sans-serif-light"
+ />
+ </LinearLayout>
</com.android.dialer.dialpad.DialpadKeyButton>
\ No newline at end of file
diff --git a/res/layout/dialtacts_activity.xml b/res/layout/dialtacts_activity.xml
index 580e0bf..e2c3853 100644
--- a/res/layout/dialtacts_activity.xml
+++ b/res/layout/dialtacts_activity.xml
@@ -31,36 +31,48 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingLeft="16dp"
- android:paddingRight="23dp"
android:id="@+id/search_view_container"
- android:background="@color/searchbox_background_color"
- android:orientation="horizontal"
- android:gravity="center_vertical">
- <EditText
- android:id="@+id/search_view"
- android:layout_width="0dp"
- android:layout_height="56dp"
- android:layout_weight="1"
- android:inputType="textFilter"/>
- <ImageView
- android:id="@+id/search_close_button"
- android:layout_height="40dp"
- android:layout_width="40dp"
- android:padding="6dp"
- android:src="@drawable/ic_close_dk"
- android:clickable="true"
- android:background="?android:attr/selectableItemBackground"
- android:visibility="gone" />
- <ImageView
- android:id="@+id/voice_search_button"
- android:layout_height="40dp"
- android:layout_width="40dp"
- android:padding="6dp"
- android:src="@drawable/ic_voice_search"
- android:clickable="true"
- android:contentDescription="@string/description_start_voice_search"
- android:background="?android:attr/selectableItemBackground" />
+ android:orientation="vertical"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ android:paddingLeft="16dp"
+ android:paddingRight="23dp"
+ android:background="@color/searchbox_background_color"
+ android:gravity="center_vertical">
+ <EditText
+ android:id="@+id/search_view"
+ android:layout_width="0dp"
+ android:layout_height="56dp"
+ android:layout_weight="1"
+ android:textSize="@dimen/search_text_size"
+ android:inputType="textFilter"/>
+ <ImageView
+ android:id="@+id/search_close_button"
+ android:layout_height="40dp"
+ android:layout_width="40dp"
+ android:padding="6dp"
+ android:src="@drawable/ic_close_dk"
+ android:clickable="true"
+ android:background="?android:attr/selectableItemBackground"
+ android:visibility="gone" />
+ <ImageView
+ android:id="@+id/voice_search_button"
+ android:layout_height="40dp"
+ android:layout_width="40dp"
+ android:padding="3dp"
+ android:src="@drawable/ic_voice_search"
+ android:clickable="true"
+ android:contentDescription="@string/description_start_voice_search"
+ android:background="?android:attr/selectableItemBackground" />
+ </LinearLayout>
+ <View
+ android:id="@+id/searchbox_divider"
+ android:layout_height="1dp"
+ android:layout_width="match_parent"
+ android:background="@color/background_dialer_light" />
</LinearLayout>
<FrameLayout
android:layout_height="0dp"
@@ -70,6 +82,41 @@
android:clipChildren="false">
</FrameLayout>
<View
+ android:layout_height="2dp"
+ android:layout_width="match_parent"
+ android:background="#33999999"
+ />
+ <FrameLayout
+ android:layout_height="@dimen/fake_action_bar_height"
+ android:layout_width="match_parent"
+ android:id="@+id/fake_action_bar"
+ android:background="@color/actionbar_background_color">
+ <ImageButton
+ android:id="@+id/call_history_button"
+ android:layout_width="@dimen/fake_menu_button_min_width"
+ android:layout_height="match_parent"
+ android:layout_gravity="bottom|start"
+ android:background="?android:attr/selectableItemBackground"
+ android:contentDescription="@string/action_menu_call_history_description"
+ android:src="@drawable/ic_menu_history_dk"/>
+ <ImageButton
+ android:id="@+id/dialpad_button"
+ android:layout_width="@dimen/fake_menu_button_min_width"
+ android:layout_height="match_parent"
+ android:layout_gravity="bottom|center"
+ android:background="?android:attr/selectableItemBackground"
+ android:contentDescription="@string/action_menu_dialpad_button"
+ android:src="@drawable/ic_menu_dialpad_dk"/>
+ <ImageButton
+ android:id="@+id/overflow_menu"
+ android:layout_width="@dimen/fake_menu_button_min_width"
+ android:layout_height="match_parent"
+ android:layout_gravity="bottom|end"
+ android:src="@drawable/ic_menu_overflow_dk"
+ android:contentDescription="@string/action_menu_overflow_description"
+ android:background="?android:attr/selectableItemBackground"/>
+ </FrameLayout>
+ <View
android:id="@+id/dialtacts_bottom_padding"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
diff --git a/res/layout/phone_disambig_item.xml b/res/layout/phone_disambig_item.xml
index 02d596b..a097ce7 100755
--- a/res/layout/phone_disambig_item.xml
+++ b/res/layout/phone_disambig_item.xml
@@ -30,11 +30,13 @@
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium" />
+ <!-- Phone number should be displayed ltr -->
<TextView
android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-4dip"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textDirection="ltr" />
</LinearLayout>
diff --git a/res/layout/phone_favorite_regular_row_view.xml b/res/layout/phone_favorite_regular_row_view.xml
index 137d3da..012c9be 100644
--- a/res/layout/phone_favorite_regular_row_view.xml
+++ b/res/layout/phone_favorite_regular_row_view.xml
@@ -17,15 +17,14 @@
<!-- Layout parameters are set programmatically. -->
<view
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/contact_tile_frequent_phone"
+ android:id="@+id/contact_tile"
class="com.android.dialer.list.PhoneFavoriteRegularRowView">
<RelativeLayout
android:id="@+id/contact_favorite_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:focusable="true"
- android:background="?android:attr/selectableItemBackground" >
+ android:focusable="true">
<com.android.contacts.common.widget.LayoutSuppressingQuickContactBadge
android:id="@+id/contact_tile_quick"
@@ -33,25 +32,51 @@
android:layout_height="64dip"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:nextFocusRight="@id/contact_tile_frequent_phone"
+ android:nextFocusRight="@id/contact_tile"
android:scaleType="centerCrop"
android:focusable="true" />
- <TextView
- android:id="@id/contact_tile_name"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dip"
android:layout_marginStart="8dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_marginTop="8dip"
android:layout_toRightOf="@id/contact_tile_quick"
android:layout_toEndOf="@id/contact_tile_quick"
- android:singleLine="true"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="3dip"
- android:ellipsize="marquee"
- android:textAlignment="viewStart" />
+ android:layout_centerVertical="true"
+ android:orientation="vertical">
+ <TextView
+ android:id="@id/contact_tile_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textSize="16sp"
+ android:textColor="@color/dialtacts_primary_text_color"/>
+ android:singleLine="true"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="3dip"
+ android:ellipsize="marquee"
+ android:textAlignment="viewStart" />
+ <TextView
+ android:id="@+id/contact_tile_phone_type"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:textSize="12sp"
+ android:ellipsize="marquee"
+ android:singleLine="true"
+ android:textColor="@color/dialtacts_secondary_text_color" />
+ </LinearLayout>
+ <ImageView
+ android:id="@+id/contact_favorite_star"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignRight="@id/contact_tile_quick"
+ android:layout_alignEnd="@id/contact_tile_quick"
+ android:layout_alignBottom="@id/contact_tile_quick"
+ android:layout_marginRight="7dip"
+ android:layout_marginEnd="7dip"
+ android:layout_marginBottom="7dip"
+ android:src="@drawable/ic_star_marked_as_fav"
+ android:visibility="gone" />
</RelativeLayout>
@@ -71,16 +96,24 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
+ android:paddingStart="@dimen/favorites_row_undo_text_side_padding"
+ android:paddingEnd="@dimen/favorites_row_undo_text_side_padding"
android:text="@string/favorite_hidden"
android:ellipsize="marquee"
android:fontFamily="sans-serif"
- android:textStyle="italic"
android:textSize="14sp"
android:textColor="@color/undo_dialogue_text_color"
android:singleLine="true"
android:gravity="center_vertical"
- android:textDirection="ltr"
- android:textAlignment="center" />
+ android:textDirection="ltr" />
+
+ <View
+ android:id="@+id/undo_separator"
+ android:layout_width="1dip"
+ android:layout_height="match_parent"
+ android:background="@color/undo_dialogue_text_color"
+ android:layout_marginTop="16dp"
+ android:layout_marginBottom="16dp" />
<LinearLayout
android:id="@+id/favorite_remove_undo_button"
@@ -88,7 +121,9 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clickable="true"
- android:layout_marginRight="30dp"
+ android:paddingStart="30dp"
+ android:paddingEnd="30dp"
+ android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical">
<ImageView
diff --git a/res/layout/phone_favorite_tile_view.xml b/res/layout/phone_favorite_tile_view.xml
index 6242b96..8806d39 100644
--- a/res/layout/phone_favorite_tile_view.xml
+++ b/res/layout/phone_favorite_tile_view.xml
@@ -18,11 +18,11 @@
android:paddingBottom="1dip"
android:paddingRight="1dip"
android:paddingEnd="1dip"
- android:background="@color/background_dialer_light"
+ android:id="@+id/contact_tile"
class="com.android.dialer.list.PhoneFavoriteSquareTileView" >
<RelativeLayout
- android:id="@+id/contact_tile_favorite_card"
+ android:id="@+id/contact_favorite_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true">
@@ -39,25 +39,44 @@
android:layout_height="match_parent"
android:background="@drawable/shadow_contact_photo"/>
- <TextView
- android:id="@+id/contact_tile_name"
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="@dimen/contact_tile_info_button_height_and_width"
- android:gravity="center_vertical"
- android:textColor="@color/contact_tile_name_color"
- android:fontFamily="sans-serif-light"
- android:singleLine="true"
- android:textSize="16sp"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="3dip"
- android:ellipsize="marquee"
- android:layout_alignParentBottom="true"
+ android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="@dimen/contact_tile_info_button_height_and_width"
android:paddingStart="8dp"
android:paddingEnd="@dimen/contact_tile_info_button_height_and_width"
- android:textAlignment="viewStart" />
-
+ android:paddingBottom="4dp"
+ android:layout_alignParentBottom="true"
+ android:orientation="vertical" >
+ <TextView
+ android:id="@+id/contact_tile_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:textColor="@color/contact_tile_name_color"
+ android:fontFamily="sans-serif"
+ android:singleLine="true"
+ android:textSize="16sp"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="3dip"
+ android:ellipsize="marquee"
+ android:textAlignment="viewStart" />
+ <TextView
+ android:id="@+id/contact_tile_phone_type"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:textColor="@color/contact_tile_name_color"
+ android:fontFamily="sans-serif"
+ android:singleLine="true"
+ android:textSize="12sp"
+ android:paddingBottom="2dp"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="3dip"
+ android:ellipsize="marquee"
+ android:textAlignment="viewStart" />
+ </LinearLayout>
<View
android:id="@+id/contact_tile_push_state"
android:layout_width="match_parent"
@@ -66,6 +85,25 @@
android:nextFocusRight="@+id/contact_tile_secondary_button"
android:background="?android:attr/selectableItemBackground" />
+ <ImageView
+ android:id="@+id/contact_favorite_star"
+ android:background="?android:attr/selectableItemBackground"
+ android:layout_height="@dimen/contact_tile_info_button_height_and_width"
+ android:layout_width="@dimen/contact_tile_info_button_height_and_width"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:src="@drawable/ic_star_marked_as_fav"
+ android:scaleType="center"
+ android:visibility="gone" />
+
+
<ImageButton
android:id="@id/contact_tile_secondary_button"
android:src="@drawable/ic_contact_info"
@@ -86,24 +124,24 @@
</RelativeLayout>
<LinearLayout
- android:id="@+id/favorite_tile_remove_dialogue"
+ android:id="@+id/favorite_remove_dialogue"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:gravity="center_horizontal"
+ android:background="@color/background_dialer_light"
android:alpha="0.0"
android:visibility="gone">
<TextView
- android:id="@+id/favorite_tile_remove_dialogue_text"
+ android:id="@+id/favorite_remove_dialogue_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/favorite_hidden"
android:ellipsize="marquee"
android:fontFamily="sans-serif"
- android:textStyle="italic"
android:textSize="14sp"
android:textColor="@color/undo_dialogue_text_color"
android:lines="2"
@@ -112,11 +150,12 @@
android:textAlignment="center" />
<LinearLayout
- android:id="@+id/favorite_tile_remove_undo_button"
+ android:id="@+id/favorite_remove_undo_button"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
+ android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_weight="1"
android:layout_gravity="bottom">
@@ -129,7 +168,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:fontFamily="sans-serif-light"
+ android:fontFamily="sans-serif"
android:textSize="13sp"
android:ellipsize="marquee"
android:singleLine="true"
diff --git a/res/layout/phone_favorites_fragment.xml b/res/layout/phone_favorites_fragment.xml
index 2b6bbe4..363565a 100644
--- a/res/layout/phone_favorites_fragment.xml
+++ b/res/layout/phone_favorites_fragment.xml
@@ -15,20 +15,24 @@
-->
<!-- Use LinearLayout + FrameLayout, just to rely on android:divider and android:showDividers -->
-<LinearLayout
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
android:divider="?android:attr/dividerHorizontal"
android:showDividers="end"
android:clipChildren="false"
android:background="@color/background_dialer_light">
+
<FrameLayout
+ android:id="@+id/contact_tile_frame"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1">
- <ListView
+ android:layout_height="match_parent"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true">
+
+ <com.android.dialer.list.PhoneFavoriteListView
android:id="@+id/contact_tile_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -37,43 +41,22 @@
android:fadingEdge="none"
android:divider="@null" />
- <TextView
- android:id="@+id/contact_tile_list_empty"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:layout_marginTop="@dimen/empty_message_top_margin"
- android:textColor="?android:attr/textColorSecondary"
- android:textAppearance="?android:attr/textAppearanceLarge"/>
+ <ImageView
+ android:id="@+id/contact_tile_drag_shadow_overlay"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"/>
</FrameLayout>
- <FrameLayout
- android:layout_height="@dimen/fake_action_bar_height"
+
+ <include
+ android:id="@+id/phone_no_favorites_view"
android:layout_width="match_parent"
- android:id="@+id/fake_action_bar"
- android:background="@color/actionbar_background_color">
- <ImageButton
- android:id="@+id/call_history_button"
- android:layout_width="@dimen/fake_menu_button_min_width"
- android:layout_height="match_parent"
- android:layout_gravity="bottom|start"
- android:background="?android:attr/selectableItemBackground"
- android:contentDescription="@string/action_menu_call_history_description"
- android:src="@drawable/ic_menu_history_dk"/>
- <ImageButton
- android:id="@+id/dialpad_button"
- android:layout_width="@dimen/fake_menu_button_min_width"
- android:layout_height="match_parent"
- android:layout_gravity="bottom|center"
- android:background="?android:attr/selectableItemBackground"
- android:contentDescription="@string/description_search_button"
- android:src="@drawable/ic_menu_dialpad_dk"/>
- <ImageButton
- android:id="@+id/overflow_menu"
- android:layout_width="@dimen/fake_menu_button_min_width"
- android:layout_height="match_parent"
- android:layout_gravity="bottom|end"
- android:src="@drawable/ic_menu_overflow_dk"
- android:contentDescription="@string/action_menu_overflow_description"
- android:background="?android:attr/selectableItemBackground"/>
- </FrameLayout>
-</LinearLayout>
+ android:layout_height="match_parent"
+ android:layout_below="@id/contact_tile_frame"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentBottom="true"
+ layout="@layout/phone_no_favorites"
+ android:visibility="gone"/>
+
+</RelativeLayout>
diff --git a/res/layout/phone_loading_contacts.xml b/res/layout/phone_loading_contacts.xml
deleted file mode 100644
index afc3322..0000000
--- a/res/layout/phone_loading_contacts.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?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.
--->
-
-<!-- "Loading" text with a spinner, which is used in PhoneFavorite screen -->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:orientation="horizontal"
- android:gravity="start|center_vertical">
-
- <ProgressBar
- android:indeterminate="true"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/progress_spinner"/>
-
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/contact_list_loading"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_marginStart="4dip" />
-
-</LinearLayout>
diff --git a/res/layout/phone_no_favorites.xml b/res/layout/phone_no_favorites.xml
new file mode 100644
index 0000000..1a0079f
--- /dev/null
+++ b/res/layout/phone_no_favorites.xml
@@ -0,0 +1,63 @@
+<?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.
+-->
+
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:minHeight="?android:attr/listPreferredItemHeight">
+
+ <include
+ android:id="@+id/show_all_contact_button_in_nofav"
+ layout="@layout/show_all_contact_button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"/>
+
+ <LinearLayout
+ android:id="@+id/nofavorite_frame"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_above="@id/show_all_contact_button_in_nofav">
+
+ <ImageView
+ android:id="@+id/nofavorite_image"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:gravity="center_horizontal"
+ android:src="@drawable/no_favorites_banner"
+ android:layout_marginBottom="14dp"/>
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/no_favorites"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textColor="@color/nofavorite_text_color"/>
+ </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/show_all_contact_button.xml b/res/layout/show_all_contact_button.xml
index 824d10c..30060d7 100644
--- a/res/layout/show_all_contact_button.xml
+++ b/res/layout/show_all_contact_button.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
-<LinearLayout
+<com.android.contacts.common.list.ContactListItemView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/show_all_contact_button"
android:orientation="horizontal"
@@ -23,23 +23,4 @@
android:layout_height="match_parent"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center"
- android:background="?android:attr/selectableItemBackground"
- android:focusable="true">
-
- <ImageView
- android:layout_height="match_parent"
- android:layout_width="wrap_content"
- android:layout_gravity="center"
- android:src="@drawable/ic_menu_all_contacts_dk"
- android:layout_marginEnd="10dp"/>
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:textSize="14sp"
- android:ellipsize="marquee"
- android:singleLine="true"
- android:text="@string/show_all_contacts_button_text"
- android:textAlignment="center"
- android:gravity="center"/>
-</LinearLayout>
\ No newline at end of file
+ android:focusable="true" />
\ No newline at end of file
diff --git a/res/layout/show_all_contacts_fragment.xml b/res/layout/show_all_contacts_fragment.xml
index 14fe340..ddc99e8 100644
--- a/res/layout/show_all_contacts_fragment.xml
+++ b/res/layout/show_all_contacts_fragment.xml
@@ -23,7 +23,7 @@
<!-- Shown only when an Account filter is set.
- paddingTop should be here to show "shade" effect correctly. -->
- <!-- TODO {klp} Remove the filter header. -->
+ <!-- TODO: Remove the filter header. -->
<include
android:id="@+id/account_filter_header_container"
layout="@layout/account_filter_header" />
diff --git a/res/layout/tile_interactions_teaser_view.xml b/res/layout/tile_interactions_teaser_view.xml
new file mode 100644
index 0000000..4104446
--- /dev/null
+++ b/res/layout/tile_interactions_teaser_view.xml
@@ -0,0 +1,77 @@
+<?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.dialer.list.TileInteractionTeaserView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/actionbar_background_color"
+ android:paddingBottom="@dimen/favorites_row_bottom_padding"
+ android:paddingTop="@dimen/favorites_row_top_padding">
+
+ <LinearLayout
+ android:id="@+id/swipeable_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal" >
+
+ <ImageView
+ android:id="@+id/arrow"
+ android:layout_width="48dp"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="12dp"
+ android:duplicateParentState="true"
+ android:src="@drawable/ic_arrow"
+ android:visibility="invisible" />
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:layout_marginBottom="12dp"
+ android:layout_marginTop="12dp"
+ android:layout_weight="1"
+ android:duplicateParentState="true"
+ android:fontFamily="sans-serif-light"
+ android:text="@string/contact_tooltip"
+ android:textColor="@color/undo_dialogue_text_color"
+ android:textSize="16sp" />
+
+ <View
+ android:id="@+id/dismiss_separator"
+ android:layout_width="1dip"
+ android:layout_height="match_parent"
+ android:background="@color/undo_dialogue_text_color"
+ android:layout_marginTop="16dp"
+ android:layout_marginBottom="16dp"
+ android:layout_marginStart="16dp"/>
+
+ <ImageButton
+ android:id="@+id/dismiss_button"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:scaleType="center"
+ android:src="@drawable/ic_cancel_holo_light"
+ style="@style/DismissButtonStyle"
+ android:contentDescription="@string/description_dismiss"/>
+
+ </LinearLayout>
+
+</com.android.dialer.list.TileInteractionTeaserView>
diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index b306979..7e84818 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -21,9 +21,12 @@
android:id="@+id/menu_clear_frequents"
android:title="@string/menu_clear_frequents" />
<item
- android:id="@+id/add_contact"
+ android:id="@+id/menu_add_contact"
android:title="@string/menu_newContact"/>
<item
+ android:id="@+id/menu_all_contacts"
+ android:title="@string/menu_allContacts"/>
+ <item
android:id="@+id/menu_call_settings"
android:title="@string/call_settings"
android:orderInCategory="2" />
diff --git a/res/menu/phone_favorite_options.xml b/res/menu/phone_favorite_options.xml
deleted file mode 100644
index e37759c..0000000
--- a/res/menu/phone_favorite_options.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/menu_import_export"
- android:title="@string/menu_import_export" />
-
- <item
- android:id="@+id/menu_clear_frequents"
- android:title="@string/menu_clear_frequents" />
-
- <item
- android:id="@+id/menu_accounts"
- android:title="@string/menu_accounts" />
-</menu>
diff --git a/res/mipmap-xxxhdpi/ic_launcher_phone.png b/res/mipmap-xxxhdpi/ic_launcher_phone.png
new file mode 100644
index 0000000..8c92ac1
--- /dev/null
+++ 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 9c97713..e9e0676 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Haal stemboodskappe…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kon nie stemboodskap haal nie."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nuut"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Ouer"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Slegs uitgaande oproepe"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"nommer om te skakel"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeskiedenis"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opsies"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"belblad"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopieer"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Wys slegs uitgaande"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Wys slegs inkomende"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Voeg wagtyd by"</string>
<string name="call_settings" msgid="7666474782093693667">"Instellings"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nuwe kontak"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alle kontakte"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Oproepdetails"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Kon nie details vir die versoekte oproep lees nie."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gebruik raak-nommerbord"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Stuur teksboodskap aan <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ongeluisterde stemboodskap"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Begin stemsoektog"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Onbekend"</string>
<string name="voicemail" msgid="3851469869202611441">"Stemboodskap"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laai tans van SIM-kaart af…"</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM-kaartkontakte"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Heraktiveer die Mense-program om hierdie kenmerk te gebruik."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Tik \'n naam of foon"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Voer \'n naam of foonnommer in"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alles"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Gemis"</string>
- <string name="recentMissed_empty" msgid="5427113551557296665">"Geen onlangsgemiste oproepe nie."</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Geen onlangs gemiste oproepe nie."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Geen onlangse stemposse nie."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Wys alle kontakte"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Wys net gunstelinge"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Geskiedenis"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontakte"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontakte"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Verwyder uit gunstelinge"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ontdoen"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Voeg by kontakte"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Gunstelinge en kontakte \nwat jy gereeld bel, sal hier wys.\nSo, begin bel."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tik prent om alle getalle te sien of druk en hou om te herorganiseer"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Maak toe"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 125af10..9b38a74 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"በማቋት ላይ…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"ድምፅ ደብዳቤ ፈልጎ በማግኘት ላይ…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"ድምፅ ደብዳቤን ፈልጎ ማግኘት አልተቻለም፡፡"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"አዲስ"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"የድሮ"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"የድምጽ መልዕክት ያላቸው ጥሪዎች ብቻ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ገቢ ጥሪዎች ብቻ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ወጪ ጥሪዎች ብቻ"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"ቁጥር ለመደወል"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"የስልክ ጥሪ ታሪክ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ተጨማሪ አማራጮች"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"የመደወያ ሰሌዳ"</string>
<string name="menu_copy" msgid="6108677035381940698">"ቅዳ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ወጪዎቹን ብቻ አሳይ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ገቢዎቹን ብቻ አሳይ"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"ያመለጡትን ብቻ አሳይ"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"የድምፅ መልዕክቶች ብቻ አሳይ"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"ሁሉንም ጥሪዎች አሳይ"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"2 ሰከንድ ፋታ አክል"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"2 ሴኮንድ ፋታ አክል"</string>
<string name="add_wait" msgid="3360818652790319634">"ጠብቅአክል"</string>
<string name="call_settings" msgid="7666474782093693667">"ቅንብሮች"</string>
<string name="menu_newContact" msgid="1209922412763274638">"አዲስ ዕውቅያ"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"ሁሉም ዕውቂያዎች"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"የጥሪ ዝርዝሮች"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"ለተጠየቀው ጥሪዝርዝሮችንማንበብ አልተቻለም።"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"የድምፅ ቁልፍ ሰሌዳን ንካ"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"የፅሁፍ መልዕክት ወደ <xliff:g id="NAME">%1$s</xliff:g> ላክ"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ያልተሰማ የድምፅመልዕክት"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"በድምፅ ፍለጋ ይጀምሩ"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"ደውል<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"ያልታወቀ"</string>
<string name="voicemail" msgid="3851469869202611441">"የድምፅ መልዕክት"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"ከSIM ካርድ ላይ በመጫን ላይ..."</string>
<string name="simContacts_title" msgid="27341688347689769">"የSIM ካርድ ዕውቂያዎች"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"ይህንን ባህሪ ለመጠቀም የሰዎች መተግበሪያውን ዳግም ያንቁት።"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"ስም ወይም ስልክ ይተይቡ"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"ስም ወይም ስልክ ቁጥር ይተይቡ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ሁሉም"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ያመለጡ"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"ምንም በቅርብ ጊዜ ያመለጡ ጥሪዎች የሉም።"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"ሁሉንም ዕውቂያዎች አሳይ"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ተወዳጆችን ብቻ አሳይ"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"ታሪክ"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ሁሉም እውቂያዎች"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ሁሉም እውቂያዎች"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"ከተወዳጆች ውስጥ ተወግዷል።"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"ቀልብስ"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"ለ<xliff:g id="NUMBER">%s</xliff:g> ደውል"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"ወደ ዕውቂያዎች አክል"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"ተወዳጆች እና አብዛኛውን ጊዜ\nየሚደውሉላቸው እውቂያዎች እዚህ ይታያሉ።\nስለዚህ መደወል ይጀምሩ።"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"ሁሉንም ቁጥሮች ለማየት ምስሉን መታ ያድርጉ ወይም ቅደም ተከተላቸውን ለማስተካከል ተጭነው ይያዙ"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"አሰናብት"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 426fdcd..5b60eb9 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"جارٍ التخزين مؤقتًا..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"جارٍ جلب البريد الصوتي..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"تعذر جلب البريد الصوتي."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"جديد"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"أقدم"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"المكالمات التي تشتمل على بريد صوتي فقط"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"المكالمات الواردة فقط"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"المكالمات الصادرة فقط"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"الرقم الذي سيتم طلبه"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"سجل المكالمات"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"مزيد من الخيارات"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"لوحة الطلب"</string>
<string name="menu_copy" msgid="6108677035381940698">"نسخ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"عرض الصادر فقط"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"عرض الوارد فقط"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"عرض الفائت فقط"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"إظهار رسائل البريد الصوتي فقط"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"عرض جميع المكالمات"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"إضافة فترة إيقاف مؤقت مدتها ثانيتان"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"إضافة ثانيتين إيقاف مؤقت"</string>
<string name="add_wait" msgid="3360818652790319634">"إضافة انتظار"</string>
<string name="call_settings" msgid="7666474782093693667">"الإعدادات"</string>
<string name="menu_newContact" msgid="1209922412763274638">"جهة اتصال جديدة"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"جميع جهات الاتصال"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"تفاصيل المكالمة"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"تعذرت قراءة تفاصيل المكالمة المطلوبة."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"استخدام لوحة مفاتيح نغمات باللمس"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"إرسال رسالة نصية إلى <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"البريد الصوتي غير المسموع"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"بدء البحث الصوتي"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"غير معروف"</string>
<string name="voicemail" msgid="3851469869202611441">"البريد الصوتي"</string>
@@ -126,15 +125,15 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"طلب لإضافة مكالمة"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"عدد الدقائق:<xliff:g id="MINUTES">%s</xliff:g>، عددالثواني: <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"لم يتم إرسال المكالمة"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة > الإعدادات."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة > الإعدادات."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"للاتصال بالبريد الصوتي، يجب أولاً إيقاف وضع الطائرة."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"جارٍ التحميل..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"جارٍ التحميل من بطاقة SIM…"</string>
- <string name="simContacts_title" msgid="27341688347689769">"بطاقة SIM وجهات الاتصال"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"جارٍ التحميل من بطاقة SIM…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"بطاقة SIM وجهات الاتصال"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"أعد تمكين تطبيق الأشخاص لاستخدام هذه الميزة."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"اكتب اسمًا أو رقم هاتف"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"أدخل اسمًا أو رقم هاتف"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"فائتة"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"لا توجد مكالمات فائتة حديثة."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"عرض جميع جهات الاتصال"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"عرض المفضلة فقط"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"السجل"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"٠"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"١"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"٢"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"٣"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"٤"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"٥"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"٦"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"٧"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"٨"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"٩"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"جميع جهات الاتصال"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"جميع جهات الاتصال"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"تمت إزالة جهة الاتصال من المفضلة"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"تراجع"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"إضافة إلى جهات الاتصال"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"جهات الاتصال المفضلة وجهات الاتصال التي\nتتصل غالبًا بها ستظهر هنا.\nلذا عليك البدء في الاتصال."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"انقر على الصورة للاطلاع على كل الأرقام أو اضغط مع الاستمرار لإعادة الترتيب"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"تجاهل"</string>
</resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..11b5bef
--- /dev/null
+++ b/res/values-az-rAZ/strings.xml
@@ -0,0 +1,162 @@
+<?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="8490255569343340580">"Nömrə yığan"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Zəng jurnalı"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Mətnli mesaj göndərin"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zəng <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Kontaktlara əlavə edin"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Zəng jurnalından silin"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Zəng jurnalını təmizləyin"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Səsli məktubu silin"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Səsli məktubu paylaşın"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Zəng jurnalı boşdur."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Zəng jurnalı silinsin?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Bütün zəng qeydləriniz silinəcək."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Zəng jurnalı silinir..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Səsli məktub"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Səsli məktub"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Oxudun"</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">"<xliff:g id="CALLER">%1$s</xliff:g> adlı şəxsdən yeni səsli məktub"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Səsli məktub oxudula bilmədi."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Buferlənir..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Səsli məktub əldə edilir..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Səsli məktub əldə edilə bilmədi."</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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Yalnız gedən zənglər"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Yalnız buraxılmış zənglər"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Səsli poçt serverinə birləşmək olmur."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Səsli poçt serveri ilə bağlantı yaratmaq olmur. Yeni səsli poçtlar gözlənilir."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Səsli poçtunuzu quraşdırın."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio əlçatımlı deyil."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Quraşdırın"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Səsli poçta zəng edin"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ən alçaq sürət"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Zəif sürət"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal sürət"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Yüksək sürət"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Ən yüksək sürət"</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">"Nömrə seçin"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Nömrə seçin"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Bu seçimi yadda saxla"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"bir"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"iki"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"üç"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"dörd"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"beş"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"altı"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"yeddi"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"səkkiz"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"doqquz"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ulduz"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"sıfır"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"funt"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"Səsli məktub"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"axtarış"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"nömrə yığın"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"yığmaq üçün nömrə"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Tarixçəsi"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Daha çox seçim"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"nömrə yığımı paneli"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Kopyalayın"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Yalnız gedəni göstərin"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Yalnız gələni göstərin"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Yalnız buraxılmışı göstərin"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Yalnız səsli mesajları göstərin"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Bütün zəngləri göstərin"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"2 saniyəlik pauza əlavə edin"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Gözləmə əlavə edin"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Ayarlar"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Yeni kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Bütün kontaktlar"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Zəng detalları"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Sorğu göndərilmiş zəng üçün detallar oxuna bilmədi."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Toxunma ton klaviaturasını istifadə edin"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Davam edən zəngə qayıdın"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Zəng əlavə edin"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Gələn zəng"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Gedən zəng"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Buraxılmış zəng"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Səsli poçt"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Gələn zənglər"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Səsli məktubu oxudun"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Gələn zəng"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Gedən zəng"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Buraxılmış zəng"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Səsli məktub"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Kontakt əlavə edin"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
+ <string name="description_call" msgid="3443678121983852666">"Zəng edin: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> mesaj göndər"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Eşidilməmiş səsli mesaj"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Səs axtarışına başlayın"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> zəng edin"</string>
+ <string name="unknown" msgid="740067747858270469">"Naməlum"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Səsli poçt"</string>
+ <string name="private_num" msgid="6374339738119166953">"Şəxsi nömrə"</string>
+ <string name="payphone" msgid="4864313342828942922">"Telefon ödənişi"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Nömrə yığmaq üçün klaviaturadan istifadə ediin"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Zəng əlavə etmək üçün nömrə yığın"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> dəqiqə <xliff:g id="SECONDS">%s</xliff:g> saniyə"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Zəng edilmədi"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Səsli poçtu ayarlamaq üçün Menyu, sonra isə > Ayarlara daxil olun."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Səsli poçta zəng etmək üçün Təyyarə rejimini söndürün."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Yüklənir…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM kartdan yüklənir..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM kart kontaktları"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Bu özəlliyi istifadə etmək üçün Adamlar tətbiqinə yenidən icazə verin."</string>
+ <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
+ <skip />
+ <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="recentMissed_empty" msgid="5427113551557296665">"Buraxılmış zəng yoxdur"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Səsli məktub yoxdur."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Bütün kontaktları göstər"</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="4612824396355272023">"Tarixçə"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Bütün kontaktlar"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Bütün kontaktlar"</string>
+ <!-- no translation found for favorite_hidden (5011234945140912047) -->
+ <skip />
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri qaytar"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> nömrəsinə zəng edin"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Kontaktlara əlavə edin"</string>
+</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
new file mode 100644
index 0000000..59f922c
--- /dev/null
+++ b/res/values-az/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"Nömrə yığan"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Zəng jurnalı"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Mətnli mesaj göndərin"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zəng <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Kontaktlara əlavə edin"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Zəng jurnalından silin"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Zəng jurnalını təmizləyin"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Səsli məktubu silin"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Səsli məktubu paylaşın"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Zəng jurnalı boşdur."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Zəng jurnalı silinsin?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Bütün zəng qeydləriniz silinəcək."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Zəng jurnalı silinir..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Səsli məktub"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Səsli məktub"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Oxudun"</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">"<xliff:g id="CALLER">%1$s</xliff:g> adlı şəxsdən yeni səsli məktub"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Səsli məktub oxudula bilmədi."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Buferlənir..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Səsli məktub əldə edilir..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Səsli məktub əldə edilə bilmədi."</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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Yalnız gedən zənglər"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Yalnız buraxılmış zənglər"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Səsli poçt serverinə birləşmək olmur."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Səsli poçt serveri ilə bağlantı yaratmaq olmur. Yeni səsli poçtlar gözlənilir."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Səsli poçtunuzu quraşdırın."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio əlçatımlı deyil."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Quraşdırın"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Səsli poçta zəng edin"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ən alçaq sürət"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Zəif sürət"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal sürət"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Yüksək sürət"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Ən yüksək sürət"</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">"Nömrə seçin"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Nömrə seçin"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Bu seçimi yadda saxla"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"bir"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"iki"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"üç"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"dörd"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"beş"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"altı"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"yeddi"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"səkkiz"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"doqquz"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ulduz"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"sıfır"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"funt"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"Səsli məktub"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"axtarış"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"nömrə yığın"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"yığmaq üçün nömrə"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Tarixçəsi"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Daha çox seçim"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"nömrə yığımı paneli"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Kopyalayın"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Yalnız gedəni göstərin"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Yalnız gələni göstərin"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Yalnız buraxılmışı göstərin"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Yalnız səsli mesajları göstərin"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Bütün zəngləri göstərin"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"2 saniyəlik pauza əlavə edin"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Gözləmə əlavə edin"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Ayarlar"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Yeni kontakt"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Zəng detalları"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Sorğu göndərilmiş zəng üçün detallar oxuna bilmədi."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Toxunma ton klaviaturasını istifadə edin"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Davam edən zəngə qayıdın"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Zəng əlavə edin"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Gələn zəng"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Gedən zəng"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Buraxılmış zəng"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Səsli poçt"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Gələn zənglər"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Səsli məktubu oxudun"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Gələn zəng"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Gedən zəng"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Buraxılmış zəng"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Səsli məktub"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Kontakt əlavə edin"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
+ <string name="description_call" msgid="3443678121983852666">"Zəng edin: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> mesaj göndər"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Eşidilməmiş səsli mesaj"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Səs axtarışına başlayın"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> zəng edin"</string>
+ <string name="unknown" msgid="740067747858270469">"Naməlum"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Səsli poçt"</string>
+ <string name="private_num" msgid="6374339738119166953">"Şəxsi nömrə"</string>
+ <string name="payphone" msgid="4864313342828942922">"Telefon ödənişi"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Nömrə yığmaq üçün klaviaturadan istifadə ediin"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Zəng əlavə etmək üçün nömrə yığın"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> dəqiqə <xliff:g id="SECONDS">%s</xliff:g> saniyə"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Zəng edilmədi"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Səsli poçtu ayarlamaq üçün Menyu, sonra isə > Ayarlara daxil olun."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Səsli poçta zəng etmək üçün Təyyarə rejimini söndürün."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Yüklənir…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM kartdan yüklənir..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM kart kontaktları"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Bu özəlliyi istifadə etmək üçün Adamlar tətbiqinə yenidən icazə verin."</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Ad və ya telefon yazın"</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="recentMissed_empty" msgid="5427113551557296665">"Buraxılmış zəng yoxdur"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Səsli məktub yoxdur."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Bütün kontaktları göstər"</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="4612824396355272023">"Tarixçə"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Bütün kontaktlar"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Bütün kontaktlar"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"Seçilmişlərdən gizlədilib"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri qaytar"</string>
+</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 3dfb6cd..d659839 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Запiс у буфер..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Атрыманне галасавой пошты..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Немагчыма атрымаць галасавую пошту."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Новы"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Старэй"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Толькi выклiкі з галасавой поштай"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Толькi ўваходныя выклiкi"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Толькi выходныя выклiкi"</string>
@@ -85,6 +83,8 @@
<!-- no translation found for action_menu_call_history_description (9018442816219748968) -->
<skip />
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Дадатковыя параметры"</string>
+ <!-- no translation found for action_menu_dialpad_button (1425910318049008136) -->
+ <skip />
<string name="menu_copy" msgid="6108677035381940698">"Капіраваць"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Паказаць толькі выходныя"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Паказаць толькі ўваходныя"</string>
@@ -95,6 +95,8 @@
<string name="add_wait" msgid="3360818652790319634">"Дадаецца, чакайце"</string>
<string name="call_settings" msgid="7666474782093693667">"Налады"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Новы кантакт"</string>
+ <!-- no translation found for menu_allContacts (6948308384034051670) -->
+ <skip />
<string name="callDetailTitle" msgid="5340227785196217938">"Падрабязнасці выкліку"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Не атрымалася прачытаць падрабязнасці запытанага выкліка."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Выкарыстанне тонавай клавіятуры"</string>
@@ -117,7 +119,8 @@
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непраслуханая галасавая пошта"</string>
<!-- no translation found for description_start_voice_search (520539488194946012) -->
<skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <!-- no translation found for call_log_empty_gecode (2019639420045039861) -->
+ <skip />
<string name="menu_callNumber" msgid="997146291983360266">"Выклікаць <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Невядомы"</string>
<string name="voicemail" msgid="3851469869202611441">"Галасавая пошта"</string>
@@ -135,7 +138,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Загрузка з SIM-карты..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Кантакты SIM-карты"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Каб выкарыстоўваць гэту функцыю, паўторна ўключыце прыкладанне \"Кантакты\"."</string>
- <!-- no translation found for dialer_hint_find_contact (9190419749917566623) -->
+ <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
<skip />
<!-- no translation found for call_log_all_title (3566738938889333307) -->
<skip />
@@ -151,12 +154,44 @@
<skip />
<!-- no translation found for call_log_activity_title (4612824396355272023) -->
<skip />
+ <!-- no translation found for dialpad_0_number (8859392433961251108) -->
+ <skip />
+ <!-- no translation found for dialpad_1_number (6536740525419909212) -->
+ <skip />
+ <!-- no translation found for dialpad_2_number (4941546415280852148) -->
+ <skip />
+ <!-- no translation found for dialpad_3_number (6539414865185536881) -->
+ <skip />
+ <!-- no translation found for dialpad_4_number (979988372051042362) -->
+ <skip />
+ <!-- no translation found for dialpad_5_number (5492272478939926734) -->
+ <skip />
+ <!-- no translation found for dialpad_6_number (8044579516869379093) -->
+ <skip />
+ <!-- no translation found for dialpad_7_number (4175113016564167123) -->
+ <skip />
+ <!-- no translation found for dialpad_8_number (7949849563865941621) -->
+ <skip />
+ <!-- no translation found for dialpad_9_number (4377059952097526576) -->
+ <skip />
<!-- no translation found for show_all_contacts_title (8395378484578221791) -->
<skip />
<!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
<skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
+ <!-- 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_add_to_contacts (1853716708655789069) -->
+ <skip />
+ <!-- no translation found for num_missed_calls (8081736535604293886) -->
+ <skip />
+ <!-- no translation found for no_favorites (5212485868783382971) -->
+ <skip />
+ <!-- no translation found for contact_tooltip (7817483485692282287) -->
+ <skip />
+ <!-- no translation found for description_dismiss (2146276780562549643) -->
+ <skip />
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 3fec247..419a191 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Буферира се..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Гласовата поща се извлича..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Гл. поща не можа да бъде извлечена."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Нови"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"По-стари"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Само обаждания с гласова поща"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Само входящи обаждания"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Само изходящи обаждания"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"номер за набиране"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"История на обажданията"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Още опции"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"клавиатура за набиране"</string>
<string name="menu_copy" msgid="6108677035381940698">"Копиране"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Показване само на изходящите"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Показване само на входящите"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Добавяне на изчакване"</string>
<string name="call_settings" msgid="7666474782093693667">"Настройки"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Нов контакт"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Всички контакти"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Подробности за обаждане"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Подробностите за заявения разговор не могат да бъдат прочетени."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Използване на тонова клавиатура"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Обаждане до <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Изпращане на SMS до <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослушана гласова поща"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"–"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Стартиране на гласово търсене"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Неизвестен"</string>
<string name="voicemail" msgid="3851469869202611441">"Гласова поща"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Зарежда се от SIM карта..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Контакти от SIM карта"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Активирайте отново приложението Хора, за да използвате тази функция."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Въведете име или телефон"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Въведете име или тел. номер"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Всички"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропуснати"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Няма скорошни пропуснати обаждания."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Показване на всички контакти"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Показване само на любимите"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Всички контакти"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Всички контакти"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Премахнато от любимите"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмяна"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Добавяне в контактите"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Любимите и контактите, на\nкоито се обаждате често, ще се показват тук.\nЗапочнете да извършвате обаждания."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Докоснете изображението, за да видите всички номера, или натиснете и задръжте, за да пренаредите"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Отхвърляне"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index b2f059b..bb658ad 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -30,7 +30,7 @@
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Suprimeix missatge de veu"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Comparteix la bústia de veu"</string>
<string name="recentCalls_empty" msgid="247053222448663107">"El registre de trucades és buit."</string>
- <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Esborrament registre"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Esborrar el registre?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"Se suprimiran tots els registres de trucades."</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"Esborrant registre de trucades..."</string>
<plurals name="notification_voicemail_title">
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"S\'està emmagatzemant a mem. intermèd.…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"S\'està obtenint el correu de veu…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"No s\'ha pogut obtenir el correu de veu."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nous"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Anteriors"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Només trucades sortints"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"número que es marcarà"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de trucades"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Més opcions"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclat"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copia"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostra només trucades sortints"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostra només trucades entrants"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Afegeix espera"</string>
<string name="call_settings" msgid="7666474782093693667">"Configuració"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Contacte nou"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tots els contactes"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalls de la trucada"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"No s\'han pogut llegir els detalls de la trucada sol·licitada."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilitza el teclat de tons"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Envia un missatge de text a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Missatge de veu no escoltat"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Inicia la cerca per veu"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconegut"</string>
<string name="voicemail" msgid="3851469869202611441">"Correu de veu"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"S\'està carregant des de la targeta SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contactes de la targeta SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Torna a activar l\'aplicació Persones per utilitzar aquesta funció."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Escriu un nom o telèfon"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Escriu un nom o un número de telèfon"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Totes"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdudes"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"No hi ha cap trucada perduda recent."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Mostra tots els contactes"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostra només els preferits"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tots els contactes"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tots els contactes"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Eliminat dels preferits"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfés"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Afegeix als contactes"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Aquí es mostraran els preferits i els contactes\nals quals truques sovint.\nJa pots començar a trucar."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Toca la imatge per veure tots els números o bé mantén-la premuda per reorganitzar"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Omet"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 70be35f..ee643da 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Ukládání do vyrovnávací paměti…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Načítání hlasové schránky…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nepodařilo se načíst hlasovou zprávu."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nové"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Starší"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Jen odchozí hovory"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"číslo, které chcete vytočit"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historie volání"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Více možností"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"číselník"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopírovat"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Zobrazit pouze odchozí"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Zobrazit pouze příchozí"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Zobrazit pouze zmeškané"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Zobrazit pouze hlas. schránku"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Zobrazit všechny hovory"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"Přidat 2s pauzu"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Přidat pauzu 2 s"</string>
<string name="add_wait" msgid="3360818652790319634">"Přidat čekání"</string>
<string name="call_settings" msgid="7666474782093693667">"Nastavení"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nový kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Všechny kontakty"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Podrobnosti hovoru"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Detaily požadovaného hovoru nelze načíst."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Použít dotykovou tónovou klávesnici"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Odeslat textovou zprávu kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nevyslechnutá hlasová zpráva"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"–"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Spustit hlasové vyhledávání"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Neznámé"</string>
<string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Načítání ze SIM karty..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakty na SIM kartě"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Chcete-li použít tuto funkci, znovu povolte aplikaci Lidé."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Zadejte jméno / telefon"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Zadejte jméno nebo tel. číslo"</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="recentMissed_empty" msgid="5427113551557296665">"Nemáte žádné nedávné zmeškané hovory."</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Nemáte žádné nedávno zmeškané hovory."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Nemáte žádné nedávné hlasové zprávy."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Zobrazit všechny kontakty"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Zobrazit pouze oblíbené"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historie"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Všechny kontakty"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Všechny kontakty"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Odebráno z oblíbených"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Vrátit zpět"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Přidat do kontaktů"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Zde se bude zobrazovat oblíbený obsah\na kontakty, kterým často voláte.\nStačí jen začít volat."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Klepnutím na fotku zobrazíte všechna čísla a přidržením je můžete seřadit"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Zavřít"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d2e7cbd..343016a 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Gemmer i buffer..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Henter telefonsvarerbeskeden..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Telefonsvarerbeskeden kunne ikke hentes."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nye"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Ældre"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Kun udgående opkald"</string>
@@ -77,13 +75,14 @@
<string name="description_image_button_star" msgid="3365919907520767866">"stjernemarker"</string>
<string name="description_image_button_zero" msgid="4133108949401820710">"nul"</string>
<string name="description_image_button_pound" msgid="3039765597595889230">"pund"</string>
- <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"telefonsvarer"</string>
<string name="description_search_button" msgid="3660807558587384889">"søg"</string>
<string name="description_dial_button" msgid="1274091017188142646">"ring op"</string>
<string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
<string name="description_digits_edittext" msgid="8760207516497016437">"nummer at ringe op"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Opkaldshistorik"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere valgmuligheder"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatur"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiér"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Vis kun udgående"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Vis kun indgående"</string>
@@ -93,7 +92,8 @@
<string name="add_2sec_pause" msgid="9214012315201040129">"Tilføj pause på 2 sek."</string>
<string name="add_wait" msgid="3360818652790319634">"Tilføj Vent"</string>
<string name="call_settings" msgid="7666474782093693667">"Indstillinger"</string>
- <string name="menu_newContact" msgid="1209922412763274638">"Ny kontakt"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Ny kontaktperson"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alle kontaktpersoner"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Opkaldsdetaljer"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Detaljerne for det anmodede opkald kunne ikke læses."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Brug touch-tone-tastatur"</string>
@@ -114,12 +114,11 @@
<string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Send sms til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Uaflyttet besked på telefonsvareren"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Start stemmesøgning"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Ukendte"</string>
- <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
<string name="private_num" msgid="6374339738119166953">"Privat nummer"</string>
<string name="payphone" msgid="4864313342828942922">"Betalingstelefon"</string>
<string name="dialerKeyboardHintText" msgid="5401660096579787344">"Brug tastatur til at ringe op"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Indlæser fra SIM-kort ..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Genaktiver applikationen Personer for at bruge denne funktion."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Skriv navn eller tlf.nr."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Skriv navn eller telefonnummer"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Mistede"</string>
- <string name="recentMissed_empty" msgid="5427113551557296665">"Ingen nye mistede opkald."</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvarede"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Ingen ubesvarede opkald."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Ingen nye talebeskeder."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Vis alle kontaktpersoner"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Vis kun foretrukne"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontaktpersoner"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontaktpersoner"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra favoritter"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Fortryd"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Føj til kontaktpersoner"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Dine foretrukne og de kontaktpersoner, du\noftest ringer til, vises her.\nSå gå du bare i gang med at ringe."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tryk på billedet for at se alle telefonnumre, eller tryk på billedet, og hold det nede, for at omarrangere"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Annuller"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index af86ae5..a50055b 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Pufferung ..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Mailbox-Nachricht wird abgerufen ..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Abrufen der Nachricht nicht möglich"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Neu"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Älter"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Nur ausgehende Anrufe"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"Zu wählende Nummer"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Anrufliste"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mehr Optionen"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"Wähltasten"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopieren"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Nur ausgehende Anrufe anzeigen"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Nur eingehende Anrufe anzeigen"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Warten hinzufügen"</string>
<string name="call_settings" msgid="7666474782093693667">"Einstellungen"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Neuer Kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alle Kontakte"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Anrufdetails"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Details für den angeforderten Anruf konnten nicht gelesen werden."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Telefontastatur verwenden"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"SMS an <xliff:g id="NAME">%1$s</xliff:g> senden"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nicht abgehörte Mailbox-Nachricht"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Sprachsuche starten"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
<string name="unknown" msgid="740067747858270469">"Unbekannt"</string>
<string name="voicemail" msgid="3851469869202611441">"Mailbox"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ladevorgang von SIM-Karte läuft..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakte auf SIM-Karte"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Kontakte-App zur Verwendung dieser Funktion wieder aktivieren"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Name oder Telefonnummer"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Namen/Telefonnummer eingeben"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Entgangen"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Keine entgangenen Anrufe"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Alle Kontakte anzeigen"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Nur Favoriten anzeigen"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Verlauf"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle Kontakte"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle Kontakte"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Aus Favoriten entfernt"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Rückgängig machen"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Zu Kontakten hinzufügen"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> neue verpasste Anrufe"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Sobald Sie Anrufe getätigt haben,\nwerden hier Favoriten und Kontakte angezeigt,\ndie Sie häufig anrufen."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Auf Bild tippen, um alle Nummern zu sehen, oder berühren und halten, um Anordnung zu ändern"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ablehnen"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a439bec..061612b 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Αποθ. στη πρ. μνήμη"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Ανάκτηση μην. αυτ. τηελφ."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Δεν ανακτήθηκαν τα μην. αυτ. τηλεφ."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Νέο"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Παλαιότερα"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Μόνο κλήσεις με ηχητικά μηνύματα"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Μόνο εισερχόμενες κλήσεις"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Μόνο εξερχόμενες κλήσεις"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"αριθμός για κλήση"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Ιστορικό κλήσεων"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Περισσότερες επιλογές"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"πληκτρολόγιο κλήσης"</string>
<string name="menu_copy" msgid="6108677035381940698">"Αντιγραφή"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Εμφάνιση μόνο εξερχόμενων"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Εμφάνιση μόνο εισερχόμενων"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Προσθήκη αναμονής"</string>
<string name="call_settings" msgid="7666474782093693667">"Ρυθμίσεις"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Νέα επαφή"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Όλες οι επαφές"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Λεπτομέρειες κλήσης"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Δεν είναι δυνατή η ανάγνωση λεπτομερειών της κλήσης που ζητήθηκε."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Χρησιμοποιήστε το πληκτρολόγιο αφής ηχητικών τόνων"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Κλήση του χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Αποστολή μηνύματος κειμένου στον χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Μηνύματα αυτόματου τηλεφωνητή που δεν έχετε ακούσει"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Έναρξη φωνητικής αναζήτησης"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Άγνωστος"</string>
<string name="voicemail" msgid="3851469869202611441">"Αυτόματος τηλεφωνητής"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Φόρτωση από κάρτα SIM…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Επαφές στην κάρτα SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Ενεργοποιήστε ξανά την εφαρμογή People για να χρησιμοποιήσετε αυτήν τη λειτουργία."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Πληκτρ. όνομα ή τηλέφωνο"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Εισαγάγετε όνομα ή τηλέφωνο"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Όλα"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητη"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Δεν υπάρχουν πρόσφατες αναπάντητες κλήσεις."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Εμφάνιση όλων των επαφών"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Εμφάνιση μόνο των αγαπημένων"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Ιστορικό"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Όλες οι επαφές"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Όλες οι επαφές"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Καταργήθηκε από τα αγαπημένα"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Αναίρεση"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Προσθήκη στις επαφές"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Οι αγαπημένες και οι επαφές που\nκαλείτε συχνά θα εμφανίζονται εδώ.\nΞεκινήστε τις κλήσεις."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Πατήστε την εικόνα για να δείτε όλους τους αριθμούς ή πατήστε παρατεταμένα για αναδιάταξη"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Παράβλεψη"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index e3a16f3..b8d7c81 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Fetching voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Couldn\'t fetch voicemail."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"New"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Older"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Outgoing calls only"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"number to dial"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copy"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Show outgoing only"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Show incoming only"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Add wait"</string>
<string name="call_settings" msgid="7666474782093693667">"Settings"</string>
<string name="menu_newContact" msgid="1209922412763274638">"New contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"All contacts"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Call details"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Couldn\'t read details for the requested call."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Use touch tone keypad"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Send text message to <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Unheard voicemail"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Start voice search"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Unknown"</string>
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Loading from SIM card…"</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM card contacts"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Re-enable the People application to use this feature."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Type a name or phone"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Type a name or phone number"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"No recent missed calls."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Show all contacts"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"All contacts"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"All contacts"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Add to contacts"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favourites & contacts that you\ncall often will show here.\nSo, start calling."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tap image to see all numbers or press and hold to reorder"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Dismiss"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..b8d7c81
--- /dev/null
+++ b/res/values-en-rIN/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Dialler"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Phone"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Phone"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Call log"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Send text message"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Call <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit number before call"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Add to contacts"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Remove from call log"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Clear call log"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Delete voicemail"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Share voicemail"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Call log is empty."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Clear call log?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"All your call records will be deleted."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Clearing call log…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Voicemail"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Voicemails"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Play"</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">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Couldn\'t play voicemail."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Fetching voicemail…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Couldn\'t fetch 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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Outgoing calls only"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Missed calls only"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Cannot connect to voicemail server."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Can\'t connect to voicemail server. New voicemails are waiting."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Set up your voicemail."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio not available."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Set up"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Call voicemail"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Slowest speed"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Slow speed"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal speed"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Fast speed"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Fastest speed"</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">"Choose number"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Choose number"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Remember this choice"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"one"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"two"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"three"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"four"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"five"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"six"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"seven"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"eight"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"nine"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"Star"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"search"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"number to dial"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Copy"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Show outgoing only"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Show incoming only"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Show voicemails only"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Show all calls"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Add 2-sec pause"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Add wait"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Settings"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"New contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"All contacts"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Call details"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Couldn\'t read details for the requested call."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Use touch tone keypad"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Return to call in progress"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Add call"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Incoming call"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Outgoing call"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Missed call"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Incoming calls"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Play voicemail"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Incoming call"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Outgoing call"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Missed call"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Voicemail"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Add contact"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Send text message to <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Unheard voicemail"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Start voice search"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Unknown"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
+ <string name="private_num" msgid="6374339738119166953">"Private number"</string>
+ <string name="payphone" msgid="4864313342828942922">"Phonebox"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Use keyboard to dial"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Dial to add a call"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> mins <xliff:g id="SECONDS">%s</xliff:g> secs"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Call not sent"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"To set up voicemail, go to Menu > Settings."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"To call voicemail, first turn off Aeroplane mode."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Loading…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Loading from SIM card…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM card contacts"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Re-enable the People application to use this feature."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Type a name or phone number"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"No recent missed calls."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"No recent voicemails."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Show all contacts"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"All contacts"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"All contacts"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Add to contacts"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favourites & contacts that you\ncall often will show here.\nSo, start calling."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tap image to see all numbers or press and hold to reorder"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Dismiss"</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ab9a510..cc5620b 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Almacenando en el búfer"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Obteniendo el mensaje de voz"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"No se pudo obtener el mensaje de voz."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nuevo"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Más antigua"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo llamadas salientes"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"número para marcar"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar solo salientes"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar solo entrantes"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Agregar espera"</string>
<string name="call_settings" msgid="7666474782093693667">"Configuración"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nuevo contacto"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Todos los contactos"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalles de llamada"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"No se han podido leer los detalles de la llamada solicitada."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado de tonos del teléfono"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensaje de texto a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Buzón de voz no escuchado"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar búsqueda por voz"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconocido"</string>
<string name="voicemail" msgid="3851469869202611441">"Correo de voz"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Cargando desde tarjeta SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contactos de tarjeta SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Vuelve a activar la aplicación Contactos para usar esta función."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Escribe nombre o tel."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ingresa un nombre o teléfono."</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"No hay llamadas perdidas recientes."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos los contactos"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos los contactos"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos los contactos"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Agregar a contactos"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Aquí se mostrarán los favoritos y los contactos\na los que llamas con frecuencia.\nYa puedes empezar a llamar."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Presiona la imagen para ver todos los números o mantenla presionada para cambiar el orden."</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Descartar"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 939fef6..b2adb2f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Almacenando en búfer..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Recuperando mensaje de voz..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"No se ha podido recuperar el mensaje."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nuevo"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Anteriores"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo llamadas salientes"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"número que se va a marcar"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar solo llamadas salientes"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar solo llamadas entrantes"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar solo llamadas perdidas"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Solo mensajes de voz"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas las llamadas"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"Añadir pausa de dos segundos"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Añadir pausa de 2 segundos"</string>
<string name="add_wait" msgid="3360818652790319634">"Añadir espera"</string>
<string name="call_settings" msgid="7666474782093693667">"Ajustes"</string>
- <string name="menu_newContact" msgid="1209922412763274638">"Contacto nuevo"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Nuevo contacto"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Todos los contactos"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalles de la llamada"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"No se han podido leer los detalles de la llamada solicitada."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado táctil"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensaje de texto a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mensaje de voz sin oír"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar búsqueda por voz"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Llamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconocidos"</string>
<string name="voicemail" msgid="3851469869202611441">"Buzón de voz"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Cargando desde tarjeta SIM…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Contactos de tarjeta SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Vuelve a habilitar la aplicación Contactos para usar esta función."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Escribe nombre o teléfono"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Escribe un nombre o teléfono"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"No hay llamadas perdidas recientes."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos los contactos"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos los contactos"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos los contactos"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Añadir a contactos"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Los favoritos y contactos a los que\nllamas con frecuencia se mostrarán aquí.\nYa puedes llamar."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Toca la imagen para ver todos los números o mantenla pulsada para cambiar el orden"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ignorar"</string>
</resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..8a37626
--- /dev/null
+++ b/res/values-et-rEE/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Dialer"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Kõnelogi"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Tekstsõnumi saatmine"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Helista kasutajale <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Muuda enne helistamist numbrit"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Lisa kontaktidesse"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Eemalda kõnelogist"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Kustuta kõnelogi"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Kustuta kõnepost"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Jaga kõneposti"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Kõnelogi on tühi."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Kustutada kõnelogi?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Kõik teie kõnesalvestised kustutatakse."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Kõnelogi kustutamine ..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Kõnepost"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> kõnepostisõnumit"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Esitamine"</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">"Uus kõnepostisõnum kasutajalt <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Kõnepostisõnumi esitamine ebaõnnestus."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Puhverdamine ..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Kõneposti toomine ..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kõneposti toomine 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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Ainult väljuvad kõned"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Ainult vastamata kõned"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Kõnepostiserveriga ei saa ühendust."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Kõnepostiserveriga ei saa ühendust. Uued kõnepostisõnumid ootel."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Seadistage oma kõnepost."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Heli pole saadaval."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Seadistamine"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Helista kõneposti"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Aeglaseim kiirus"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Aeglane kiirus"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Tavaline kiirus"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kiire kiirus"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kiireim kiirus"</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">"Valige number"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Valige number"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Pea see valik meeles"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"üks"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"kaks"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"kolm"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"neli"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"viis"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"kuus"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"seitse"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"kaheksa"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"üheksa"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"tärn"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"null"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"nael"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"kõnepost"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"otsing"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"Helista"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"tagasilüke"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"number valimiseks"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Kõneajalugu"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Rohkem valikuid"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"valimisklahvistik"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Kopeeri"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Kuva ainult väljuvad"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Kuva ainult sissetulevad"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Kuva ainult vastamata"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Kuva ainult kõnepostisõnumeid"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Kuva kõik kõned"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Lisa 2-sekundiline paus"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Lisa ootama"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Seaded"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Uus kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Kõik kontaktid"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Kõne üksikasjad"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Taotletud kõne üksikasju ei saa lugeda."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Kasuta puutetooniga klahvistikku"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Tagasi käimasolevale kõnele"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Lisa kõne"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Sissetulev kõne"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Väljuv kõne"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Vastamata kõne"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Kõnepost"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Sissetulevad kõned"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Esita kõnepostisõnum"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Sissetulev kõne"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Väljuv kõne"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Vastamata kõne"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Kõnepost"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Lisa kontakt"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Helista: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Saada tekstsõnum kontaktile <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuulamata kõnepostisõnum"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Häälotsingu alustamine"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Helistage: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Tundmatu"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Kõnepost"</string>
+ <string name="private_num" msgid="6374339738119166953">"Varjatud number"</string>
+ <string name="payphone" msgid="4864313342828942922">"Telefoniautomaat"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Kasutage valimiseks klaviatuuri"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Valige kõne lisamiseks"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Kõnet ei tehtud"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Kõneposti seadistamiseks minge valikusse Menüü > Seaded."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Kõneposti kuulamiseks lülitage lennurežiim välja."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Laadimine ..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laadimine SIM-kaardilt ..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM-kaardi kontaktid"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Funktsiooni kasutamiseks lubage uuesti rakendus Inimesed."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Sisestage nimi/telefoninumber"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Pole ühtegi hiljutist vastamata kõnet."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Pole ühtegi hiljutist kõnepostiteadet."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Kuva kõik kontaktid"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Ajalugu"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Kõik kontaktid"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kõik kontaktid"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Eemaldatud lemmikute hulgast"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Võta tagasi"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Helista <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lisa kontaktidesse"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Siin kuvatakse lemmikud ja kontaktid,\nkellele sageli helistate.\nVõite hakata helistama."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Puudutage kujutist, et näha kõiki numbreid, või vajutage ja hoidke all ümberkorraldamiseks"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Loobu"</string>
+</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index ba1d728..60c967b 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Puhverdamine ..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Kõneposti toomine ..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kõneposti toomine ebaõnnestus."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Uued"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Vanemad"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Ainult väljuvad kõned"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"number valimiseks"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Kõneajalugu"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Rohkem valikuid"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"valimisklahvistik"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopeeri"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Kuva ainult väljuvad"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Kuva ainult sissetulevad"</string>
@@ -114,8 +113,7 @@
<string name="description_call" msgid="3443678121983852666">"Helista: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Saada tekstsõnum kontaktile <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuulamata kõnepostisõnum"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
+ <string name="description_start_voice_search" msgid="520539488194946012">"Häälotsingu alustamine"</string>
<string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
<string name="menu_callNumber" msgid="997146291983360266">"Helistage: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Tundmatu"</string>
@@ -142,12 +140,18 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Kuva kõik kontaktid"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Ajalugu"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Kõik kontaktid"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kõik kontaktid"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"Lemmikute hulgast eemaldatud"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Võta tagasi"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 8c8832c..ab95711 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"در حال بافر کردن؟؟؟"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"در حال واکشی پست صوتی؟؟؟"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"واکشی پست صوتی ممکن نیست."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"جدید"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"قدیمیتر"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"فقط تماسهای دارای پست صوتی"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"فقط تماسهای دریافتی"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"فقط تماسهای خروجی"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"شماره برای شماره گیری"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"سابقه تماس"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"گزینههای بیشتر"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"صفحه شمارهگیری"</string>
<string name="menu_copy" msgid="6108677035381940698">"کپی"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"فقط نمایش خروجی"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"فقط نمایش ورودی"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"افزودن انتظار"</string>
<string name="call_settings" msgid="7666474782093693667">"تنظیمات"</string>
<string name="menu_newContact" msgid="1209922412763274638">"مخاطب جدید"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"همه مخاطبین"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"جزئیات تماس"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"جزئیات تماس درخواستی خوانده نشد."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"استفاده از صفحهکلید لمسی"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"ارسال پیام متنی به <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"پست صوتی شنیده نشده"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"شروع جستجوی صوتی"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"ناشناس"</string>
<string name="voicemail" msgid="3851469869202611441">"پست صوتی"</string>
@@ -126,7 +125,7 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"شماره گیری برای افزودن یک تماس"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه و <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"تماس ارسال نشد"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راهاندازی پست صوتی به منو > تنظیمات بروید."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راهاندازی پست صوتی به منو > تنظیمات بروید."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"برای تماس با پست صوتی، ابتدا حالت هواپیما را غیرفعال کنید."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"در حال بارگیری..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"در حال بارگیری سیم کارت..."</string>
<string name="simContacts_title" msgid="27341688347689769">"مخاطبین سیم کارت"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"برای استفاده از این ویژگی، برنامه «افراد» را دوباره فعال کنید."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"تایپ نام یا شماره تلفن"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"نام یا شماره تلفن را تایپ کنید"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"همه موارد"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"بیپاسخ"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"اخیراً هیچ تماس بیپاسخی نداشتهاید."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"نمایش همه مخاطبین"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"فقط نمایش موارد دلخواه"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"سابقه"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"۰"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"۱"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"۲"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"۳"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"۴"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"۵"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"۶"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"۷"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"۸"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"۹"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"همه مخاطبین"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"همه مخاطبین"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"از موارد دلخواه حذف شد"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"لغو"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"افزودن به مخاطبین"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> تماس بیپاسخ جدید"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"موارد دلخواه و مخاطبینی که اغلب با\nآنها تماس میگیرید اینجا نشان داده میشوند.\nبنابراین شروع به تماس گرفتن کنید."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"برای مشاهده همه شمارهها روی تصویر ضربه بزنید یا برای مرتبسازی مجدد فشار دهید و نگهدارید"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"رد کردن"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 3353c3f..5454be6 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Puskuroidaan..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Haetaan vastaajaviestiä..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Vastaajaviestin nouto epäonnistui."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Uusi"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Vanhemmat"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Vain soitetut puhelut"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numero johon soitetaan"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Soittohistoria"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Lisää vaihtoehtoja"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"näppäimistö"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopioi"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Näytä vain soitetut"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Näytä vain saapuneet"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Lisää tauko"</string>
<string name="call_settings" msgid="7666474782093693667">"Asetukset"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Uusi yhteystieto"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Kaikki yhteystiedot"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Puhelun tiedot"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Valitun puhelun tietoja ei voi lukea."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Käytä näppäimistöä"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Lähetä tekstiviesti: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuuntelematon vastaajaviesti"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Aloita puhehaku"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Tuntematon"</string>
<string name="voicemail" msgid="3851469869202611441">"Vastaaja"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ladataan SIM-kortilta…"</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM-kortin yhteystiedot"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Ota Ihmiset-sovellus uudelleen käyttöön käyttääksesi tätä ominaisuutta."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Kirjoita nimi tai numero"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Kirjoita nimi tai puh.numero"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Kaikki"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Vastaamattomat"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Ei uusia vastaamattomia puheluita."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Näytä kaikki yhteystiedot"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Näytä vain suosikit"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Kaikki yhteystiedot"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kaikki yhteystiedot"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Poistettu suosikeista"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Kumoa"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lisää yhteystietoihin"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Suosikit ja yhteyshenkilöt, joille\nsoitat usein, näkyvät tässä.\nAla siis soitella."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Napauta kuvaa nähdäksesi kaikki numerot tai järjestä uudelleen painamalla pitkään"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ohita"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..ae100e7
--- /dev/null
+++ b/res/values-fr-rCA/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Appeler"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Téléphone"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Téléphone"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Journal d\'appels"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Envoyer un SMS"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Appeler <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Modifier le numéro avant de passer l\'appel"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ajouter aux contacts"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Supprimer du journal d\'appels"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Effacer le journal d\'appels"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Supprimer le message vocal"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partager le message vocal"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Le journal d\'appels est vide."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Effacer le journal d\'appels?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Votre journal d\'appels sera entièrement supprimé."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Suppression du journal d\'appels…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Messagerie vocale"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> messages vocaux"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Lire"</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">"Nouveau message vocal de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Impossible d\'écouter le message vocal."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Mise mémoire tampon"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Récupération des messages vocaux…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Impossible de récupérer messages vocaux."</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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Seulement les appels sortants"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Seulement les appels manqués"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Impossible de se connecter au serveur de messagerie vocale."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Connexion messagerie vocale impossible. Messages en attente."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Configurez votre messagerie vocale."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Contenu audio indisponible."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurer"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Appeler mess. vocale"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Vitesse minimale"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Vitesse lente"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Vitesse normale"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vitesse rapide"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Vitesse maximale"</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">"Sélectionner un numéro"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Sélectionner un numéro"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Mémoriser ce choix"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"un"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"deux"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"trois"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"quatre"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"cinq"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"six"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"sept"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"huit"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"neuf"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"étoile"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"zéro"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"dièse"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"message vocal"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"rechercher"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"composer"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"retour arrière"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"numéro à composer"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"clavier numérique"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Copier"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Afficher appels sortants uniq."</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Afficher appels entrants uniq."</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Afficher appels manqués uniq."</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Messages vocaux uniquement"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Afficher tous les appels"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Ajouter une pause de 2 s"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Ajouter Attendre"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Paramètres"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Nouveau contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tous les contacts"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Détails sur l\'appel"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Impossible de consulter les détails de l\'appel demandé."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utiliser le clavier DTMF"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Reprendre l\'appel en cours"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Autre appel"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Appel entrant"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Appel sortant"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Appel manqué"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Messagerie vocale"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Appels entrants"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Écouter le message vocal"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Appel entrant"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Appel sortant"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Appel manqué"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Messagerie vocale"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Ajouter un contact"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Envoyer un SMS à <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nouveau message vocal"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Démarrer la recherche vocale"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Inconnu"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
+ <string name="private_num" msgid="6374339738119166953">"Numéro privé"</string>
+ <string name="payphone" msgid="4864313342828942922">"Cabine téléphonique"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Utilisez le clavier pour composer un numéro."</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Composer le numéro pour ajouter un appel"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Appel non effectué"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Pour configurer la messagerie vocale, accédez à Menu > Paramètres."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Veuillez désactiver le mode Avion avant d\'appeler la messagerie vocale."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Chargement en cours..."</string>
+ <string name="imei" msgid="3045126336951684285">"Code IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Chargement depuis la carte SIM..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"Contacts de carte SIM"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Réactivez l\'application Contacts pour utiliser cette fonctionnalité."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Entrez un nom/no de téléphone"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Aucun appel manqué récent"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Aucun message vocal récent"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Afficher tous les contacts"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts favoris uniquement"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tous les contacts"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tous les contacts"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ajouter aux contacts"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Vos favoris et les contacts\nque vous appelez souvent sont\naffichés ici. Pourquoi ne pas les appeler?"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Touchez l\'image pour afficher tous les numéros, ou maintenez votre doigt sur l\'une d\'elles pour les réorganiser"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Fermer"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 3113681..f3dd323 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -29,7 +29,7 @@
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"Effacer tous les appels"</string>
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Supprimer le message vocal"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partager le message vocal"</string>
- <string name="recentCalls_empty" msgid="247053222448663107">"Aucun appel."</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Aucun appel"</string>
<string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Effacer les appels ?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"Votre journal d\'appels va être supprimé."</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"Effacement des appels…"</string>
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Mise en mémoire tampon..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Récupération des messages vocaux..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Impossible de récupérer messages vocaux."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nouveau"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Précédent"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Seulement les appels sortants"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numéro à composer"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"clavier numérique"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copier"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Afficher appels sortants uniq."</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Afficher appels entrants uniq."</string>
@@ -91,9 +90,10 @@
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Messages vocaux uniquement"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Afficher tous les appels"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"Ajouter une pause de 2 s"</string>
- <string name="add_wait" msgid="3360818652790319634">"Ajouter Attendre"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Ajouter une attente"</string>
<string name="call_settings" msgid="7666474782093693667">"Paramètres"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nouveau contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tous les contacts"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Détails sur l\'appel"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Impossible de consulter les détails de l\'appel demandé."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utiliser le clavier DTMF"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Envoyer un SMS à <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nouveau message vocal"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Démarrer la recherche vocale"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Inconnu"</string>
<string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Chargement depuis la carte SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contacts de carte SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Réactivez l\'application Contacts pour utiliser cette fonctionnalité."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Saisir nom ou numéro tél."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Saisissez nom/numéro de tél."</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Aucun appel manqué récent"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Afficher tous les contacts"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts ajoutés aux favoris uniquement"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tous les contacts"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tous les contacts"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris."</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ajouter aux contacts"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Les favoris et les contacts que\nvous appelez souvent s\'affichent ici.\nCommencez donc par passer des appels !"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Appuyer sur l\'image pour afficher tous les numéros ou appuyer de manière prolongée pour les réorganiser"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ignorer"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d60e91d..00e87fa 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"बफ़र हो रहा है…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"ध्वनिमेल फ़ेच कर रहा है…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"ध्वनिमेल फ़ेच नहीं किया जा सका."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"नया"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"पुराने"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"केवल ध्वनिमेल वाले कॉल"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"केवल इनकमिंग कॉल"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"केवल आउटगोइंग कॉल"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"डायल करने के लिए नंबर"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"कॉल इतिहास"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"अधिक विकल्प"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायलपैड"</string>
<string name="menu_copy" msgid="6108677035381940698">"प्रतिलिपि"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"केवल आउटगोइंग ही दिखाएं"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"केवल इनकमिंग ही दिखाएं"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"प्रतीक्षा का समय बढ़ाएं"</string>
<string name="call_settings" msgid="7666474782093693667">"सेटिंग"</string>
<string name="menu_newContact" msgid="1209922412763274638">"नया संपर्क"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"सभी संपर्क"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"कॉल विवरण"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"अनुरोध किए गए कॉल का विवरण नहीं पढ़ा जा सका."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"टच टोन कीपैड का उपयोग करें"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> को पाठ संदेश भेजें"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"नहीं सुना गया ध्वनिमेल"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"बोलकर खोजें शुरु करें"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
<string name="unknown" msgid="740067747858270469">"अज्ञात"</string>
<string name="voicemail" msgid="3851469869202611441">"ध्वनिमेल"</string>
@@ -133,8 +132,8 @@
<string name="meid" msgid="6210568493746275750">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"सिम कार्ड से लोड हो रहा है…"</string>
<string name="simContacts_title" msgid="27341688347689769">"सिम कार्ड के संपर्क"</string>
- <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग एप्लिकेशन को पुन: सक्षम करें."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"नाम या फ़ोन लिखें"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग ऐप्स को पुन: सक्षम करें."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"नाम या फ़ोन नंबर लिखें"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"हाल ही का कोई भी छूटा हुआ कॉल नहीं."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"सभी संपर्क दिखाएं"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"केवल पसंदीदा दिखाएं"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"सभी संपर्क"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"सभी संपर्क"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"पसंदीदा से निकाल दिया गया"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"पूर्ववत करें"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"संपर्कों में जोड़ें"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> छूटे हुए नए कॉल"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"पसंदीदा & आपके द्वारा अक्सर कॉल किए जाने वाले पसंदीदा और संपर्क\nयहां दिखाए जाएंगे.\nतो, कॉल करना प्रारंभ करें."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"सभी नंबर देखने के लिए चित्र को टैप करें या पुनः क्रमित करने के लिए दबाए रखें"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"ख़ारिज करें"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5ea716b..0215959 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Stavljanje u međuspremnik..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Dohvaćanje govorne pošte..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Dohvaćanje govorne pošte nije uspjelo."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Novo"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Starije"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odlazni pozivi"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"broj za pozivanje"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Povijest poziva"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Više opcija"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"površina za biranje brojeva"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiranje"</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>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Dodaj čekanje"</string>
<string name="call_settings" msgid="7666474782093693667">"Postavke"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Novi kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Svi kontakti"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Pojedinosti poziva"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nije moguće pročitati pojedinosti za traženi poziv."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Koristi dodirnu zvučnu tipkovnicu"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Pozovi: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Slanje tekstualne poruke: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nepreslušana govorna pošta"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Pokretanje glasovnog pretraživanja"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Nazovite <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Nepoznato"</string>
<string name="voicemail" msgid="3851469869202611441">"Govorna pošta"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Učitavanje sa SIM kartice..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakti SIM kartice"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Ponovo omogućite aplikaciju Osobe da biste upotrebljavali tu značajku."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Upišite ime ili tel."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Upišite ime ili tel. broj"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Sve"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nema nedavnih propuštenih poziva"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Prikaži sve kontakte"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo favorite"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Povijest"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Svi kontakti"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Svi kontakti"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Uklonjeno iz favorita"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Poništi"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Nazovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj u kontakte"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Ovdje će se prikazivati favoriti\ni kontakti koje često zovete.\nZato počnite zvati."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Dodirnite sliku da biste vidjeli sve brojeve ili pritisnite i zadržite da biste promijenili poredak"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Odbaci"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 972f147..d67cd4e 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Pufferelés…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Hangpostaüzenet lekérése…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"A hangposta nem hívható le."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Új"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Régebbi"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Csak kimenő hívások"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"a tárcsázandó szám"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Hívási előzmények"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"További beállítások"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tárcsázó"</string>
<string name="menu_copy" msgid="6108677035381940698">"Másolás"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Csak a kimenők megjelenítése"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Csak a bejövők megjelenítése"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Várakozás hozzáadása"</string>
<string name="call_settings" msgid="7666474782093693667">"Beállítások"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Új névjegy"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Összes névjegy"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Hívás adatai"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nem sikerült olvasni a megadott hívás adatait."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Hangkódos telefonbillentyűzet használata"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"SMS küldése neki: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nem lejátszott hangüzenet"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Hangalapú keresés indítása"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Ismeretlen"</string>
<string name="voicemail" msgid="3851469869202611441">"Hangposta"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Betöltés a SIM-kártyáról..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Névjegyek a SIM-kártyán"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"A funkció használatához aktiválja újra a Személyek alkalmazást."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Név vagy tel.szám beírása"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Név vagy telefonszám megadása"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Összes"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Nem fog."</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Nem fogadott"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nincsenek újabb elmulasztott hívások."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Nincsenek újabb hangpostaüzenetek."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Az összes névjegy megjelenítése"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Csak kedvencek megjelenítése"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Előzmények"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Összes névjegy"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Összes névjegy"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Eltávolítva a kedvencek közül"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Visszavonás"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Hozzáadás a névjegyekhez"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Itt a kedvencek és a gyakran hívott\nismerősök fognak megjelenni.\nEhhez előbb hívásokat kell indítania."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Koppintson a képre az összes szám megtekintéséhez, vagy tartsa lenyomva az átrendezéshez"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Elvetés"</string>
</resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..2a6e5e2
--- /dev/null
+++ b/res/values-hy-rAM/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Համարհավաքիչ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Հեռախոս"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Հեռախոս"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Զանգերի գրանցամատյան"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Ուղարկել տեքստային հաղորդագրություն"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Զանգել <xliff:g id="NAME">%s</xliff:g>-ին"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Խմբագրել համարը զանգելուց առաջ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ավելացնել կոնտակտներում"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Հեռացնել զանգերի գրանցամատյանից"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Մաքրել զանգերի գրանցամատյանը"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ջնջել ձայնային փոստը"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Տարածել ձայնային փոստը"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Զանգերի մատյանը դատարկ է:"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Մաքրե՞լ զանգերի գրանցամատյանը"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Ձեր բոլոր զանգերի գրառումները կջնջվեն:"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Զանգերի գրանցամատյանը մաքրվում է..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Ձայնային փոստ"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ձայնային փոստ"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Նվագարկել"</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">"Նոր ձայնային փոստ <xliff:g id="CALLER">%1$s</xliff:g>-ից"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Հնարավոր չէ նվագարկել ձայնային փոստը:"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Պահնակավորում..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Ձայնային փոստի ստացում..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Չհաջողվեց ստանալ ձայնային փոստը:"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Միայն ձայնային փոստով զանգերը"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Միայն մուտքային զանգեր"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Միայն ելքային զանգերը"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Միայն բաց թողնված զանգերը"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ:"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ: Նոր ձայնային փոստերը սպասում են:"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Կարգավորեք ձեր ձայնային փոստը:"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Ձայնանյութը հասանելի չէ:"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Կարգավորել"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Միանալ ձայնային փոստին"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ամենադանդաղ արագություն"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Դանդաղ արագություն"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Միջին արագություն"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Արագ"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Շատ արագ"</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">"Ընտրել համարը"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Ընտրել համարը"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Հիշել այս ընտրությունը"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"մեկ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"երկու"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"երեք"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"չորս"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"հինգ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"վեց"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"յոթ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ութ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ինը"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"աստղանշել"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"զրո"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ֆունտ"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ձայնային փոստ"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"որոնել"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"համարարկել"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"հետշարժ"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"համարհավաքման հեռախոսահամարը"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Զանգերի պատմությունը"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Այլ ընտրանքներ"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"թվաշար"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Պատճենել"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ցույց տալ միայն ելքայինները"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Ցույց տալ միայն մուտքայինները"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Ցույց տալ միայն բաց թողնվածները"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Ցուցադրել միայն ձայնային փոստերը"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Ցուցադրել բոլոր զանգերը"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Ավելացնել 2 վայրկյան դադար"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Ավելացնել սպասում"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Կարգավորումներ"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Նոր կոնտակտ"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Բոլոր կոնտակտները"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Զանգի մանրամասները"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Չհաջողվեց կարդալ հայցվող զանգի մանրամասները:"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Օգտագործել հնչերանգներով ստեղնաշարը"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Վերադառնալ ընթացիկ զանգին"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Ավելացնել զանգ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Մուտքային զանգ"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Ելքային զանգ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Բաց թողնված զանգ"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Ձայնային փոստ"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Մուտքային զանգեր"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Նվագարկել ձայնային փոստը"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Մուտքային զանգ"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ելքային զանգ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Բաց թողնված զանգ"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Ձայնային փոստ"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Ավելացնել կոտակտ"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
+ <string name="description_call" msgid="3443678121983852666">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Ուղարկել տեքստային հաղորդագրություն <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Չլսված ձայնային փոստ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Սկսկեք ձայնային որոնումը"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>-ին"</string>
+ <string name="unknown" msgid="740067747858270469">"Անհայտ"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
+ <string name="private_num" msgid="6374339738119166953">"Անձնական համարը"</string>
+ <string name="payphone" msgid="4864313342828942922">"Վճարել հեռախոսը"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Օգտագործել ստեղնաշարը` համարհավաքելու համար"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Համարհավաքել՝ զանգելու համար"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> րոպ <xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Զանգը չի առաքվել"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ձայնային փոստը կարգավորելու համար գնացեք Ցանկ > Կարգավորումներ:"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ձայնային փոստին զանգելու համար նախ անջատեք թռիչքային ռեժիմը:"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Բեռնում..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM քարտը բեռնվում է..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM քարտի կոնտակտները"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Կրկին միացրեք Մարդիկ ծրագիրը` այս հատկությունn օգտագործելու համար:"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Մուտքագրեք անունը կամ հեռախոսահամարը"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Նոր բաց թողնված զանգեր չկան:"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Նոր ձայնային հաղորդագրություններ չկան:"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Ցույց տալ բոլոր կոնտակտները"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Պատմություն"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Բոլոր կոնտակտները"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Բոլոր կոնտակտները"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Հեռացված է ընտրյալներից"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Հետարկել"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ավելացնել կոնտակտներում"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Հաճախ կանչվող ընտրյալները և կոնտակտները\nկցուցադրվեն այստեղ:\nԿարող եք զանգել:"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Հպեք նկարին՝ բոլոր համարները տեսնելու, կամ հպեք ու պահեք՝ վերադասավորելու համար:"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Անտեսել"</string>
+</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
new file mode 100644
index 0000000..c52b96f
--- /dev/null
+++ b/res/values-hy/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"Համարհավաքիչ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Հեռախոս"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Հեռախոս"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Զանգերի գրանցամատյան"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Ուղարկել տեքստային հաղորդագրություն"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Զանգել <xliff:g id="NAME">%s</xliff:g>-ին"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Խմբագրել համարը զանգելուց առաջ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ավելացնել կոնտակտներում"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Հեռացնել զանգերի գրանցամատյանից"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Մաքրել զանգերի գրանցամատյանը"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ջնջել ձայնային փոստը"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Տարածել ձայնային փոստը"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Զանգերի մատյանը դատարկ է:"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Մաքրե՞լ զանգերի գրանցամատյանը"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Ձեր բոլոր զանգերի գրառումները կջնջվեն:"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Զանգերի գրանցամատյանը մաքրվում է..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Ձայնային փոստ"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ձայնային փոստ"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Նվագարկել"</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">"Նոր ձայնային փոստ <xliff:g id="CALLER">%1$s</xliff:g>-ից"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Հնարավոր չէ նվագարկել ձայնային փոստը:"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Պահնակավորում..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Ձայնային փոստի ստացում..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Չհաջողվեց ստանալ ձայնային փոստը:"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Միայն ձայնային փոստով զանգերը"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Միայն մուտքային զանգեր"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Միայն ելքային զանգերը"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Միայն բաց թողնված զանգերը"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ:"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ: Նոր ձայնային փոստերը սպասում են:"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Կարգավորեք ձեր ձայնային փոստը:"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Ձայնանյութը հասանելի չէ:"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Կարգավորել"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Միանալ ձայնային փոստին"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ամենադանդաղ արագություն"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Դանդաղ արագություն"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Միջին արագություն"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Արագ"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Շատ արագ"</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">"Ընտրել համարը"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Ընտրել համարը"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Հիշել այս ընտրությունը"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"մեկ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"երկու"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"երեք"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"չորս"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"հինգ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"վեց"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"յոթ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ութ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ինը"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"աստղանշել"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"զրո"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ֆունտ"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ձայնային փոստ"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"որոնել"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"համարարկել"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"հետշարժ"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"համարհավաքման հեռախոսահամարը"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Զանգերի պատմությունը"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Այլ ընտրանքներ"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"թվաշար"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Պատճենել"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ցույց տալ միայն ելքայինները"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Ցույց տալ միայն մուտքայինները"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Ցույց տալ միայն բաց թողնվածները"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Ցուցադրել միայն ձայնային փոստերը"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Ցուցադրել բոլոր զանգերը"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Ավելացնել 2 վայրկյան դադար"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Ավելացնել սպասում"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Կարգավորումներ"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Նոր կոնտակտ"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Զանգի մանրամասները"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Չհաջողվեց կարդալ հայցվող զանգի մանրամասները:"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Օգտագործել հնչերանգներով ստեղնաշարը"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Վերադառնալ ընթացիկ զանգին"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Ավելացնել զանգ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Մուտքային զանգ"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Ելքային զանգ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Բաց թողնված զանգ"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Ձայնային փոստ"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Մուտքային զանգեր"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Նվագարկել ձայնային փոստը"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Մուտքային զանգ"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ելքային զանգ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Բաց թողնված զանգ"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Ձայնային փոստ"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Ավելացնել կոտակտ"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
+ <string name="description_call" msgid="3443678121983852666">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Ուղարկել տեքստային հաղորդագրություն <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Չլսված ձայնային փոստ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Սկսկեք ձայնային որոնումը"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>-ին"</string>
+ <string name="unknown" msgid="740067747858270469">"Անհայտ"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
+ <string name="private_num" msgid="6374339738119166953">"Անձնական համարը"</string>
+ <string name="payphone" msgid="4864313342828942922">"Վճարել հեռախոսը"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Օգտագործել ստեղնաշարը` համարհավաքելու համար"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Համարհավաքել՝ զանգելու համար"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> րոպ <xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Զանգը չի առաքվել"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ձայնային փոստը կարգավորելու համար գնացեք Ցանկ > Կարգավորումներ:"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ձայնային փոստին զանգելու համար նախ անջատեք թռիչքային ռեժիմը:"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Բեռնում..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM քարտը բեռնվում է..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM քարտի կոնտակտները"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Կրկին միացրեք Մարդիկ ծրագիրը` այս հատկությունn օգտագործելու համար:"</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Գրեք անունը կամ հեռախոսը"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Նոր բաց թողնված զանգեր չկան:"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Նոր ձայնային հաղորդագրություններ չկան:"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Ցույց տալ բոլոր կոնտակտները"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Պատմություն"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Բոլոր կոնտակտները"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Բոլոր կոնտակտները"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"Թաքցվեց ընտրյալներից"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Հետարկել"</string>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index cd97d2d..0db2d04 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Menyangga…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Mengambil pesan suara…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Tidak dapat mengambil pesan suara."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Baru"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Lawas"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Hanya panggilan keluar"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"nomor untuk dipanggil"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Riwayat Panggilan"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Opsi lainnya"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tombol nomor"</string>
<string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tampilkan panggilan keluar"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Tampilkan panggilan masuk saja"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Tampilkan panggilan terlewat"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tampilkan pesan suara saja"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Tampilkan semua panggilan"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2-det"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2 dtk"</string>
<string name="add_wait" msgid="3360818652790319634">"Tambahkan tunggu"</string>
<string name="call_settings" msgid="7666474782093693667">"Setelan"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Kontak baru"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Semua kontak"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detail panggilan"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Tidak dapat membaca detail untuk panggilan yang diminta."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gunakan keypad nada sentuh"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Kirim SMS ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Pesan suara yang belum didengar"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Memulai penelusuran suara"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
<string name="voicemail" msgid="3851469869202611441">"Kotak Pesan"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Memuat dari kartu SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontak pada kartu SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Aktifkan kembali aplikasi Orang untuk menggunakan fitur ini."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Ketikkan nama atau ponsel"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ketikkan nama/nomor ponsel"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"TakDijawab"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Tidak ada panggilan tak terjawab terbaru."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Tampilkan semua kontak"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Hanya tampilkan favorit"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Riwayat"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kontak"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kontak"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Dihapus dari favorit"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Batalkan"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telepon <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Tambahkan ke kontak"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favorit & kontak yang\nsering Anda hubungi akan muncul di sini.\nJadi, mulailah menelepon."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Ketuk gambar untuk melihat semua nomor atau tekan terus untuk mengatur ulang"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Tutup"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 8b13fa3..7ec52eb 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Buffering..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Recupero messaggi segreteria..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Recupero messaggi segreteria non riuscito."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nuovi"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Precedenti"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo chiamate in uscita"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numero da comporre"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Cronologia chiamate"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Altre opzioni"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastierino"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copia"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostra solo in uscita"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostra solo in arrivo"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Aggiungi attesa"</string>
<string name="call_settings" msgid="7666474782093693667">"Impostazioni"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nuovo contatto"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tutti i contatti"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Dettagli chiamata"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Impossibile leggere i dettagli per la chiamata richiesta."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usa tastierino per selezione a toni"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Invia messaggio di testo a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Messaggio vocale non ascoltato"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Avvia la ricerca vocale"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Sconosciuto"</string>
<string name="voicemail" msgid="3851469869202611441">"Segreteria"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Caricamento da SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contatti SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Riattiva l\'app Persone per utilizzare questa funzione."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Digita nome o telefono"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Digita nome o numero telefono"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tutti"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perse"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nessuna chiamata persa recente."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Mostra tutti i contatti"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostra solo i preferiti"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Cronologia"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tutti i contatti"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tutti i contatti"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Rimosso dai preferiti"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annulla"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Aggiungi ai contatti"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate senza risposta"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Preferiti e contatti che\nchiami spesso verranno mostrati qui.\nInizia a chiamarli."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tocca l\'immagine per visualizzare tutti i numeri o tieni premuto per cambiare l\'ordine"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ignora"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5f960a1..5a8df3ac 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"מבצע אחסון זמני..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"מאחזר דואר קולי..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"לא ניתן להשיג דואר קולי."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"חדש"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"ישן יותר"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"שיחות עם דואר קולי בלבד"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"שיחות נכנסות בלבד"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"שיחות יוצאות בלבד"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"מספר לחיוג"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"היסטוריית שיחות"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"אפשרויות נוספות"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"לוח חיוג"</string>
<string name="menu_copy" msgid="6108677035381940698">"העתק"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"הצג רק שיחות יוצאות"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"הצג רק שיחות נכנסות"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"הוסף המתנה"</string>
<string name="call_settings" msgid="7666474782093693667">"הגדרות"</string>
<string name="menu_newContact" msgid="1209922412763274638">"איש קשר חדש"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"כל אנשי הקשר"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"פרטי שיחה"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"לא ניתן לקרוא את פרטי השיחה המבוקשת."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"השתמש במקלדת עם חיוג צלילים"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"שלח הודעת טקסט אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"דואר קולי שעדיין לא נשמע"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"התחל חיפוש קולי"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"התקשר אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"לא ידוע"</string>
<string name="voicemail" msgid="3851469869202611441">"דואר קולי"</string>
@@ -126,15 +125,15 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"חייג כדי להוסיף שיחה"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> דקות <xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"השיחה לא נשלחה."</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' > \'הגדרות\'."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' > \'הגדרות\'."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"כדי להתקשר לדואר קולי, ראשית כבה את מצב הטיסה."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"טוען..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"טוען מכרטיס SIM…"</string>
- <string name="simContacts_title" msgid="27341688347689769">"אנשי קשר בכרטיס SIM"</string>
- <string name="add_contact_not_available" msgid="1419207765446461366">"הפעל מחדש את יישום אנשי הקשר כדי להשתמש בתכונה זו."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"הקלד שם או מספר טלפון"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"טוען מכרטיס SIM…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"אנשי קשר בכרטיס SIM"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"הפעל מחדש את אפליקציית אנשי הקשר כדי להשתמש בתכונה זו."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"הקלד שם או מספר טלפון"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"הכול"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"שיחה שלא נענתה"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"אין שיחות אחרונות שלא נענו."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"הצג את כל אנשי הקשר"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"הצג מועדפים בלבד"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"היסטוריה"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"כל אנשי הקשר"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"כל אנשי הקשר"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"הוסר מהמועדפים"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"בטל"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"התקשר אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"הוסף לאנשי הקשר"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"מועדפים ואנשי קשר שאתה\nיוצר איתם קשר בקביעות יופיעו כאן.\nאז תתחיל להתקשר."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"הקש על תמונה כדי לראות את כל המספרים, או לחץ והחזק כדי לשנות את הסדר"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"סגור"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index a59f0fd..c6b0aca 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -29,8 +29,8 @@
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"通話履歴を全件消去"</string>
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ボイスメールを削除"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ボイスメールを共有"</string>
- <string name="recentCalls_empty" msgid="247053222448663107">"通話履歴なし"</string>
- <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"通話履歴を消しますか?"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"通話履歴はありません。"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"通話履歴を消去しますか?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"すべての通話記録は削除されます。"</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"通話履歴を消去しています..."</string>
<plurals name="notification_voicemail_title">
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"バッファリング中..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"ボイスメールを取得中..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"ボイスメールを取得できませんでした。"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"新しい着信"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"以前の着信"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ボイスメールのある着信のみ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"着信のみ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"発信のみ"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"発信番号"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通話履歴"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"その他のオプション"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ダイヤルパッド"</string>
<string name="menu_copy" msgid="6108677035381940698">"コピー"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"発信のみを表示"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"着信のみを表示"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"待機を追加"</string>
<string name="call_settings" msgid="7666474782093693667">"設定"</string>
<string name="menu_newContact" msgid="1209922412763274638">"連絡先を新規登録"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"すべての連絡先"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"通話詳細"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"通話要求の詳細が読み込めませんでした。"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"プッシュホン式キーパッドを使う"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>にテキストメッセージを送信"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未再生のボイスメール"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"音声検索を開始"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
<string name="unknown" msgid="740067747858270469">"通知不可能"</string>
<string name="voicemail" msgid="3851469869202611441">"ボイスメール"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIMカードから読み取り中..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIMカードの連絡先"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"この機能を使用するには連絡帳アプリを再度有効にしてください。"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"名前か電話番号を入力"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"名前または電話番号を入力"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"すべて"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"不在着信"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"最近の不在着信はありません。"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"すべての連絡先を表示"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"お気に入りのみを表示"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"履歴"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"すべての連絡先"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"すべての連絡先"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"お気に入りから削除されました"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"元に戻す"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"連絡先に追加"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"ここにはお気に入りや\n頻繁に通話する\n連絡先が表示されます。"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"画像をタップするとすべての番号を表示でき、押し続けると並び替えることができます"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"閉じる"</string>
</resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..d42e470
--- /dev/null
+++ b/res/values-ka-rGE/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"დარეკვა"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ტელეფონი"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ტელეფონი"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ზარების ჟურნალი"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ტექსტური შეტყობინების გაგზავნა"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>-თან დარეკვა"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ნომრის რედაქტირება დარეკვამდე"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"კონტაქტებში დამატება"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ზარების ჟურნალიდან ამოღება"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ზარების ჟურნალის წაშლა"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ხმოვანი ფოსტის წაშლა"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ხმოვანი ფოსტის გაზიარება"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ზარების ჟურნალი ცარიელია."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"გსურთ ზარების ჟურნალის წაშლა?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ყველა თქვენი ზარის ჩანაწერი წაიშლება."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ზარების ჟურნალი იშლება…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"ხმოვანი ფოსტა"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ხმოვანი ფოსტა"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"დაკვრა"</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">"ახალი ხმოვანი ფოსტა <xliff:g id="CALLER">%1$s</xliff:g>-ისგან"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"ხმოვანი ფოსტის მოსმენა ვერ მოხერხდა."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"ბუფერიზაცია…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"ხმოვანი ფოსტის მიღება…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ხმოვანი ფოსტის მიღება ვერ მოხერხდა."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"მხოლოდ ზარები ხმოვანი ფოსტით"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"მხოლოდ შემომავალი ზარები"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"მხოლოდ გამავალი ზარები"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"მხოლოდ გამოტოვებული ზარები"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ხმოვანი ფოსტის სერვერთან დაკავშირება შეუძლებელია."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ხმ. ფოსტის სერვერთან კავშირი არ არის. ახალი ხმ. ფოსტა იცდის."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"თქვენი ხმოვანი ფოსტის პარამეტრების დაყენება."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"აუდიო მიუწვდომელია."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"კონფიგურაცია"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ხმოვან ფოსტასთან დაკავშირება"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ყველაზე დაბალი სიჩქარე"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"დაბალი სიჩქარე"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"საშუალო სიჩქარე"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"დიდი სიჩქარე"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"უდიდესი სიჩქარე"</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">"ნომრის შერჩევა"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ნომრის შერჩევა"</string>
+ <string name="make_primary" msgid="5829291915305113983">"დაიმახსოვრე ეს არჩევანი"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"ერთი"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ორი"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"სამი"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"ოთხი"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ხუთი"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ექვსი"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"შვიდი"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"რვა"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ცხრა"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ვარსკვლავი"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"ნული"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"გირვანქა"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ხმოვანი ფოსტა"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ძიება"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"დარეკვა"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"უკუშლა"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ასაკრეფი ნომერი"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"სხვა პარამეტრები"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ციფერბლატი"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"კოპირება"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"მხოლოდ გამავალის ჩვენება"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"მხოლოდ შემომავალის ჩვენება"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"მხოლოდ გამოტოვებულის ჩვენება"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"მხოლოდ ხმოვანი ფოსტის ჩვენება"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"ყველა ზარის ჩვენება"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"ორწამიანი პაუზის დამატება"</string>
+ <string name="add_wait" msgid="3360818652790319634">"ლოდინის დამატება"</string>
+ <string name="call_settings" msgid="7666474782093693667">"პარამეტრები"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ახალი კონტაქტი"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"ყველა კონტაქტი"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ზარის დეტალები"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"მოთხოვნილი ზარის დეტალების წაკითხვა ვერ მოხერხდა."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ტონალური კლავიატურის გამოყენება"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"მიმდინარე ზარზე დაბრუნება"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ზარის დამატება"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"შემომავალი ზარი"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"გამავალი ზარი"</string>
+ <string name="type_missed" msgid="2720502601640509542">"გამოტოვებული ზარი"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"ხმოვანი ფოსტა"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"შემომავალი ზარები"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ხმოვანი ფოსტის ჩართვა"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"შემომავალი ზარი"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"გამავალი ზარი"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"გამოტოვებული ზარი"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"ხმოვანი ფოსტა"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"კონტაქტის დამატება"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ტესქტური შეტყობინების გაგზავნა <xliff:g id="NAME">%1$s</xliff:g>-ისთვის"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"მოსასმენი ხმოვანი ფოსტა"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ხმოვანი ძიების დაწყება"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
+ <string name="unknown" msgid="740067747858270469">"უცნობი"</string>
+ <string name="voicemail" msgid="3851469869202611441">"ხმოვანი ფოსტა"</string>
+ <string name="private_num" msgid="6374339738119166953">"დაფარული ნომერი"</string>
+ <string name="payphone" msgid="4864313342828942922">"საზოგადოებრივი ტელეფონი"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"კლავიატურის გამოყენება დასარეკად"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"დარეკეთ ზარის დასამატებლად"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> წთ <xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ზარი ვერ განხორციელდა"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ხმოვანი ფოსტის დასაყენებლად გადადით მენიუს > პარამეტრებზე."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ხმოვან ფოსტასთან დასაკავშირებლად პირველ რიგში გამორთეთ თვითმფრინავის რეჟიმი."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"იტვირთება…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"იტვირთება SIM ბარათიდან…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM ბარათის კონტაქტები"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"ამ ფუნქციის გამოსაყენებლად ხელახლა გააქტიურეთ აპლიკაცია „ხალხი“."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"შეიყვანეთ სახელი, ან ტელეფონის ნომერი"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"ბოლო დროის ზარები არ არის."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"ბოლო დროის ხმოვანი ფოსტა არ არის."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"ყველა კონტაქტის ჩვენება"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ისტორია"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ყველა კონტაქტი"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ყველა კონტაქტი"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"წაიშალა რჩეულებიდან"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"დაბრუნება"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"კონტაქტებში დამატება"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"რჩეულები და ხშირი კონაქტები\nაქ გამოჩნდება.\nასე რომ, დაიწყეთ რეკვა."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"შეეხეთ სურათს ყველა ნომრის სანახავად, ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"დახურვა"</string>
+</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
new file mode 100644
index 0000000..4d6f74e
--- /dev/null
+++ b/res/values-ka/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"დარეკვა"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ტელეფონი"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ტელეფონი"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ზარების ჟურნალი"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ტექსტური შეტყობინების გაგზავნა"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>-თან დარეკვა"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ნომრის რედაქტირება დარეკვამდე"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"კონტაქტებში დამატება"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ზარების ჟურნალიდან ამოღება"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ზარების ჟურნალის წაშლა"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ხმოვანი ფოსტის წაშლა"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ხმოვანი ფოსტის გაზიარება"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ზარების ჟურნალი ცარიელია."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"გსურთ ზარების ჟურნალის წაშლა?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ყველა თქვენი ზარის ჩანაწერი წაიშლება."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ზარების ჟურნალი იშლება…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"ხმოვანი ფოსტა"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ხმოვანი ფოსტა"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"დაკვრა"</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">"ახალი ხმოვანი ფოსტა <xliff:g id="CALLER">%1$s</xliff:g>-ისგან"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"ხმოვანი ფოსტის მოსმენა ვერ მოხერხდა."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"ბუფერიზაცია…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"ხმოვანი ფოსტის მიღება…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ხმოვანი ფოსტის მიღება ვერ მოხერხდა."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"მხოლოდ ზარები ხმოვანი ფოსტით"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"მხოლოდ შემომავალი ზარები"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"მხოლოდ გამავალი ზარები"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"მხოლოდ გამოტოვებული ზარები"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ხმოვანი ფოსტის სერვერთან დაკავშირება შეუძლებელია."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ხმ. ფოსტის სერვერთან კავშირი არ არის. ახალი ხმ. ფოსტა იცდის."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"თქვენი ხმოვანი ფოსტის პარამეტრების დაყენება."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"აუდიო მიუწვდომელია."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"კონფიგურაცია"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ხმოვან ფოსტასთან დაკავშირება"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ყველაზე დაბალი სიჩქარე"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"დაბალი სიჩქარე"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"საშუალო სიჩქარე"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"დიდი სიჩქარე"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"უდიდესი სიჩქარე"</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">"ნომრის შერჩევა"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ნომრის შერჩევა"</string>
+ <string name="make_primary" msgid="5829291915305113983">"დაიმახსოვრე ეს არჩევანი"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"ერთი"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ორი"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"სამი"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"ოთხი"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ხუთი"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ექვსი"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"შვიდი"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"რვა"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ცხრა"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ვარსკვლავი"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"ნული"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"გირვანქა"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ხმოვანი ფოსტა"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ძიება"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"დარეკვა"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"უკუშლა"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ასაკრეფი ნომერი"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"სხვა პარამეტრები"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ციფერბლატი"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"კოპირება"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"მხოლოდ გამავალის ჩვენება"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"მხოლოდ შემომავალის ჩვენება"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"მხოლოდ გამოტოვებულის ჩვენება"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"მხოლოდ ხმოვანი ფოსტის ჩვენება"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"ყველა ზარის ჩვენება"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"ორწამიანი პაუზის დამატება"</string>
+ <string name="add_wait" msgid="3360818652790319634">"ლოდინის დამატება"</string>
+ <string name="call_settings" msgid="7666474782093693667">"პარამეტრები"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ახალი კონტაქტი"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ზარის დეტალები"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"მოთხოვნილი ზარის დეტალების წაკითხვა ვერ მოხერხდა."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ტონალური კლავიატურის გამოყენება"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"მიმდინარე ზარზე დაბრუნება"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ზარის დამატება"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"შემომავალი ზარი"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"გამავალი ზარი"</string>
+ <string name="type_missed" msgid="2720502601640509542">"გამოტოვებული ზარი"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"ხმოვანი ფოსტა"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"შემომავალი ზარები"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ხმოვანი ფოსტის ჩართვა"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"შემომავალი ზარი"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"გამავალი ზარი"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"გამოტოვებული ზარი"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"ხმოვანი ფოსტა"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"კონტაქტის დამატება"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ტესქტური შეტყობინების გაგზავნა <xliff:g id="NAME">%1$s</xliff:g>-ისთვის"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"მოსასმენი ხმოვანი ფოსტა"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ხმოვანი ძიების დაწყება"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
+ <string name="unknown" msgid="740067747858270469">"უცნობი"</string>
+ <string name="voicemail" msgid="3851469869202611441">"ხმოვანი ფოსტა"</string>
+ <string name="private_num" msgid="6374339738119166953">"კერძო ნომერი"</string>
+ <string name="payphone" msgid="4864313342828942922">"საზოგადოებრივი ტელეფონი"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"კლავიატურის გამოყენება დასარეკად"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"დარეკეთ ზარის დასამატებლად"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> წთ <xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ზარი ვერ განხორციელდა"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ხმოვანი ფოსტის დასაყენებლად გადადით მენიუს > პარამეტრებზე."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ხმოვან ფოსტასთან დასაკავშირებლად პირველ რიგში გამორთეთ თვითმფრინავის რეჟიმი."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"იტვირთება…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"იტვირთება SIM ბარათიდან…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM ბარათის კონტაქტები"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"ამ ფუნქციის გამოსაყენებლად ხელახლა გააქტიურეთ აპლიკაცია „ხალხი“."</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"შეიყვანეთ სახელი, ან ტელეფონი"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"ბოლო დროის ზარები არ არის."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"ბოლო დროის ხმოვანი ფოსტა არ არის."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"ყველა კონტაქტის ჩვენება"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ისტორია"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ყველა კონტაქტი"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ყველა კონტაქტი"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"დამალულია რჩეულებიდან"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"დაბრუნება"</string>
+</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..e0f890f
--- /dev/null
+++ b/res/values-km-rKH/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"អ្នកហៅ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ទូរស័ព្ទ"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ទូរស័ព្ទ"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"បញ្ជីហៅ"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ផ្ញើសារអត្ថបទ"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"ហៅ <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"កែលេខមុនពេលហៅ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"បន្ថែមទៅទំនាក់ទំនង"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"លុបចេញពីបញ្ជីហៅ"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"សម្អាតបញ្ជីហៅ"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"លុបសារជាសំឡេង"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ចែករំលែកសារជាសំឡេង"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"បញ្ជីហៅគឺទទេ។"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"សម្អាតបញ្ជីហៅ?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"នឹងលុបកំណត់ត្រាហៅទាំងអស់របស់អ្នក។"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"កំពុងសម្អាតបញ្ជីហៅ..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"សារជាសំឡេង"</item>
+ <item quantity="other" msgid="5513481419205061254">"សារជាសំឡេង <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ចាក់"</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">"សារជាសំឡេងថ្មីពី <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"មិនអាចចាក់សារជាសំឡេង។"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"កំពុងគណនា..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"កំពុងទៅយកសារជាសំឡេង..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"មិនអាចទៅយកសារជាសំឡេង..."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"តែការហៅជាសារសំឡេង"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"តែការហៅចូល"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"តែការហៅចេញប៉ុណ្ណោះ"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"តែលេខខកខានទទួល"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"មិនអាចតភ្ជាប់ទៅម៉ាស៊ីនមេសារជាសំឡេង។"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"មិនអាចតភ្ជាប់ទៅម៉ាស៊ីនមេសារជាសំឡេង។ សារជាសំឡេងថ្មីកំពុងរង់ចាំ។"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"រៀបចំសារជាសំឡេងរបស់អ្នក។"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"មិនមានសំឡេង។"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"រៀបចំ"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ហៅជាសារសំឡេង"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ល្បឿនយឺតបំផុត"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"ល្បឿនយឺត"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"ល្បឿនធម្មតា"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ល្បឿនលឿន"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ល្បឿនលឿនបំផុត"</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">"ជ្រើសលេខ"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ជ្រើសលេខ"</string>
+ <string name="make_primary" msgid="5829291915305113983">"ចងចាំជម្រើសនេះ"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"មួយ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ពីរ"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"បី"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"បួន"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ប្រាំ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ប្រាំមួយ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"ប្រាំពីរ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ប្រាំបី"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ប្រាំបួន"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ផ្កាយ"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"សូន្យ"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ផោន"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"សារជាសំឡេង"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ស្វែងរក"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"លេខដែលត្រូវហៅ"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ប្រវត្តិហៅ"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"ជម្រើសបន្ថែម"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"បន្ទះលេខ"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"ចម្លង"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"បង្ហាញតែការហៅចេញ"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"បង្ហាញតែការហៅចូល"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"បង្ហាញតែការខកខានទទួល"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"បង្ហាញតែសារជាសំឡេង"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"បង្ហាញការហៅទាំងអស់"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"បន្ថែមការផ្អាក ២វិ."</string>
+ <string name="add_wait" msgid="3360818652790319634">"បញ្ចូលការរង់ចាំ"</string>
+ <string name="call_settings" msgid="7666474782093693667">"ការកំណត់"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ទំនាក់ទំនងថ្មី"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"ទំនាក់ទំនងទាំងអស់"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ព័ត៌មានលម្អិតនៃការហៅ"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"មិនអាចអានព័ត៌មានលម្អិតសម្រាប់ការហៅបានស្នើ។"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ប្រើសំឡេងប៉ះបន្ទះលេខ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"កំពុងត្រឡប់ទៅកាន់ការហៅ"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"បន្ថែមការហៅ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"ការហៅចូល"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"ការហៅចេញ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"ខកខានទទួល"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"សារជាសំឡេង"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"ការហៅចូល"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ចាក់សារជាសំឡេង"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ការហៅចូល"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ការហៅចេញ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"ខកខានទទួល"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"សារជាសំឡេង"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"បន្ថែមទំនាក់ទំនង"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"មើលទំនាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ផ្ញើរសារអត្ថបទទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"សារជាសំឡេងដែលមិនបានឮ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ចាប់ផ្ដើមស្វែងរកជាសំឡេង"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"មិនស្គាល់"</string>
+ <string name="voicemail" msgid="3851469869202611441">"សារជាសំឡេង"</string>
+ <string name="private_num" msgid="6374339738119166953">"លេខឯកជន"</string>
+ <string name="payphone" msgid="4864313342828942922">"ទូរស័ព្ទប្រើកាក់"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ប្រើក្ដារចុច ដើម្បីចុចលេខ"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ចុចដើម្បីបន្ថែមការហៅ"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ការហៅមិនបានបញ្ជូន"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ដើម្បីកំណត់សារជាសំឡេង ចូលម៉ឺនុយ > ការកំណត់។"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ដើម្បីហៅសារជាសំឡេង ដំបូងត្រូវបិទរបៀបពេលជិះយន្តហោះ។"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"កំពុងផ្ទុក..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"កំពុងផ្ទុកពីស៊ីមកាត..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"ទំនាក់ទំនងនៅក្នុងស៊ីមកាត"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"បើកកម្មវិធីឡើងវិញដើម្បីប្រើលក្ខណៈនេះ។"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"សូមបញ្ចូលឈ្មោះ ឬលេខទូរស័ព្ទ"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ទាំងអស់"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខានទទួល"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"មិនមានការខកខានទទួលថ្មីទេ។"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"គ្មានសារជាសំឡេងថ្មីទេ។"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"បង្ហាញទំនាក់ទំនងទាំងអស់"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញតែនិយមប្រើប៉ុណ្ណោះ"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ប្រវត្តិ"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ទំនាក់ទំនងទាំងអស់"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ទំនាក់ទំនងទាំងអស់"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"បានលុបចេញពីទំនាក់ទំនងដែលនិយមប្រើ"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"មិនធ្វើវិញ"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"បន្ថែមទៅទំនាក់ទំនង"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"ខកខានទទួលថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"ការនិយមប្រើ & ទំនាក់ទំនងដែលអ្នក\nហៅញឹកញាប់នឹងបង្ហាញនៅទីនេះ។\nដូច្នេះ ចាប់ផ្ដើមហៅ។"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"ប៉ះរូបភាព ដើម្បីមើលលេខទាំងអស់ ឬចុច និងសង្កត់ដើម្បីតម្រៀបឡើងវិញ"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"បដិសេធ"</string>
+</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
new file mode 100644
index 0000000..e5a9cd4
--- /dev/null
+++ b/res/values-km/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"អ្នកហៅ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ទូរស័ព្ទ"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ទូរស័ព្ទ"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"បញ្ជីហៅ"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ផ្ញើសារអត្ថបទ"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"ហៅ <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"កែលេខមុនពេលហៅ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"បន្ថែមទៅទំនាក់ទំនង"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"លុបចេញពីបញ្ជីហៅ"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"សម្អាតបញ្ជីហៅ"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"លុបសារជាសំឡេង"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ចែករំលែកសារជាសំឡេង"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"បញ្ជីហៅគឺទទេ។"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"សម្អាតបញ្ជីហៅ?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"នឹងលុបកំណត់ត្រាហៅទាំងអស់របស់អ្នក។"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"កំពុងសម្អាតបញ្ជីហៅ..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"សារជាសំឡេង"</item>
+ <item quantity="other" msgid="5513481419205061254">"សារជាសំឡេង <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ចាក់"</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">"សារជាសំឡេងថ្មីពី <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"មិនអាចចាក់សារជាសំឡេង។"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"កំពុងគណនា..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"កំពុងទៅយកសារជាសំឡេង..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"មិនអាចទៅយកសារជាសំឡេង..."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"តែការហៅជាសារសំឡេង"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"តែការហៅចូល"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"តែការហៅចេញប៉ុណ្ណោះ"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"តែលេខខកខានទទួល"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"មិនអាចតភ្ជាប់ទៅម៉ាស៊ីនមេសារជាសំឡេង។"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"មិនអាចតភ្ជាប់ទៅម៉ាស៊ីនមេសារជាសំឡេង។ សារជាសំឡេងថ្មីកំពុងរង់ចាំ។"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"រៀបចំសារជាសំឡេងរបស់អ្នក។"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"មិនមានសំឡេង។"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"រៀបចំ"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ហៅជាសារសំឡេង"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ល្បឿនយឺតបំផុត"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"ល្បឿនយឺត"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"ល្បឿនធម្មតា"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ល្បឿនលឿន"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ល្បឿនលឿនបំផុត"</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">"ជ្រើសលេខ"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ជ្រើសលេខ"</string>
+ <string name="make_primary" msgid="5829291915305113983">"ចងចាំជម្រើសនេះ"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"មួយ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ពីរ"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"បី"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"បួន"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ប្រាំ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ប្រាំមួយ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"ប្រាំពីរ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ប្រាំបី"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ប្រាំបួន"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ផ្កាយ"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"សូន្យ"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ផោន"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"សារជាសំឡេង"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ស្វែងរក"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"លេខដែលត្រូវហៅ"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ប្រវត្តិហៅ"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"ជម្រើសបន្ថែម"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"បន្ទះលេខ"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"ចម្លង"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"បង្ហាញតែការហៅចេញ"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"បង្ហាញតែការហៅចូល"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"បង្ហាញតែការខកខានទទួល"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"បង្ហាញតែសារជាសំឡេង"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"បង្ហាញការហៅទាំងអស់"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"បន្ថែមការផ្អាក ២វិ."</string>
+ <string name="add_wait" msgid="3360818652790319634">"បញ្ចូលការរង់ចាំ"</string>
+ <string name="call_settings" msgid="7666474782093693667">"ការកំណត់"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ទំនាក់ទំនងថ្មី"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ព័ត៌មានលម្អិតនៃការហៅ"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"មិនអាចអានព័ត៌មានលម្អិតសម្រាប់ការហៅបានស្នើ។"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ប្រើសំឡេងប៉ះបន្ទះលេខ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"កំពុងត្រឡប់ទៅកាន់ការហៅ"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"បន្ថែមការហៅ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"ការហៅចូល"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"ការហៅចេញ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"ខកខានទទួល"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"សារជាសំឡេង"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"ការហៅចូល"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ចាក់សារជាសំឡេង"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ការហៅចូល"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ការហៅចេញ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"ខកខានទទួល"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"សារជាសំឡេង"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"បន្ថែមទំនាក់ទំនង"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"មើលទំនាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ផ្ញើរសារអត្ថបទទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"សារជាសំឡេងដែលមិនបានឮ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ចាប់ផ្ដើមស្វែងរកជាសំឡេង"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"មិនស្គាល់"</string>
+ <string name="voicemail" msgid="3851469869202611441">"សារជាសំឡេង"</string>
+ <string name="private_num" msgid="6374339738119166953">"លេខឯកជន"</string>
+ <string name="payphone" msgid="4864313342828942922">"ទូរស័ព្ទប្រើកាក់"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ប្រើក្ដារចុច ដើម្បីចុចលេខ"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ចុចដើម្បីបន្ថែមការហៅ"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ការហៅមិនបានបញ្ជូន"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ដើម្បីកំណត់សារជាសំឡេង ចូលម៉ឺនុយ > ការកំណត់។"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ដើម្បីហៅសារជាសំឡេង ដំបូងត្រូវបិទរបៀបពេលជិះយន្តហោះ។"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"កំពុងផ្ទុក..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"កំពុងផ្ទុកពីស៊ីមកាត..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"ទំនាក់ទំនងនៅក្នុងស៊ីមកាត"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"បើកកម្មវិធីឡើងវិញដើម្បីប្រើលក្ខណៈនេះ។"</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"សូមបញ្ចូលឈ្មោះ ឬទូរស័ព្ទ"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ទាំងអស់"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខានទទួល"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"មិនមានការខកខានទទួលថ្មីទេ។"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"គ្មានសារជាសំឡេងថ្មីទេ។"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"បង្ហាញទំនាក់ទំនងទាំងអស់"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញតែនិយមប្រើប៉ុណ្ណោះ"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ប្រវត្តិ"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ទំនាក់ទំនងទាំងអស់"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ទំនាក់ទំនងទាំងអស់"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"បានលាក់ពីការនិយម"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"មិនធ្វើវិញ"</string>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3bab4d5..eed6a3b 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"버퍼링 중..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"음성메시지를 가져오는 중..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"음성메시지 가져오지 못했습니다."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"신규"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"이전"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"음성사서함 메시지만"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"수신 전화만"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"발신 전화만"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"전화를 걸 번호"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"통화 기록"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"옵션 더보기"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"다이얼패드"</string>
<string name="menu_copy" msgid="6108677035381940698">"복사"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"발신 전화만 표시"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"수신 전화만 표시"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"대기 시간 추가"</string>
<string name="call_settings" msgid="7666474782093693667">"설정"</string>
<string name="menu_newContact" msgid="1209922412763274638">"새 연락처"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"전체 주소록"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"통화 세부정보"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"요청한 통화의 세부정보를 읽지 못했습니다."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"터치톤 키패드 사용"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"전화하기:<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>님에게 문자 메시지 보내기"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"듣지 않은 음성사서함"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"음성 검색 시작"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>에 전화"</string>
<string name="unknown" msgid="740067747858270469">"알 수 없음"</string>
<string name="voicemail" msgid="3851469869202611441">"음성사서함"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM 카드에서 로딩 중..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM 카드 주소록"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"이 기능을 사용하려면 주소록 애플리케이션을 사용하도록 다시 설정하세요."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"이름 또는 전화번호 입력"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"이름 또는 전화번호 입력"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"전체"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"부재중 전화"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"최근 부재중 전화가 없습니다."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"모든 연락처 표시"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"즐겨찾는 연락처만 표시"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"기록"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"전체 주소록"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"전체 주소록"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"즐겨찾기에서 삭제됨"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"실행취소"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>에 전화"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"주소록에 추가"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"자주 전화하는 연락처가\n여기에 표시됩니다.\n전화해 보세요."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"이미지를 탭하여 모든 번호를 확인하거나 길게 눌러 재정렬합니다."</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"닫기"</string>
</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..41e6525
--- /dev/null
+++ b/res/values-lo-rLA/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"ແປ້ນໂທລະສັບ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ໂທລະສັບ"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ໂທລະສັບ"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ບັນທຶກການໂທ"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ສົ່ງຂໍ້ຄວາມ"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"ໂທຫາ <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ລຶບອອກຈາກບັນທຶກການໂທ"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ລຶບບັນທຶກການໂທ"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ລຶບຂໍ້ຄວາມສຽງ"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ແບ່ງປັນຂໍ້ຄວາມສຽງ"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ບັນທຶກການໂທຫວ່າງເປົ່າ."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ລຶບບັນທຶກການໂທ?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ບັນທຶກການໂທທັງໝົດຂອງທ່ານຈະຖືກລຶບອອກ."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ກຳລັງລຶກບັນທຶກການໂທ..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"ຂໍ້ຄວາມສຽງ"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ຂໍ້ຄວາມສຽງ"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ຫຼິ້ນ"</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">"ບໍ່ມີຂໍ້ຄວາມສຽງຈາກ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"ບໍ່ສາມາດເປີດຂໍ້ຄວາມສຽງໄດ້."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"ກຳລັງດຶງຂໍ້ມູນມາກຽມ..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"ກຳລັງດຶງຂໍ້ຄວາມສຽງ..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ບໍ່ສາມາດດຶງຂໍ້ຄວາມສຽງໄດ້."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"ເບີໂທຂໍ້ຄວາມສຽງເທົ່ານັ້ນ"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"ສາຍໂທເຂົ້າເທົ່ານັ້ນ"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"ເບີໂທອອກເທົ່ານັ້ນ"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"ສະເພາະສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງ."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງໄດ້. ມີຂໍ້ຄວາມສຽງໃໝ່ກຳລັງລໍຖ້າ."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"ຕັ້ງຄ່າຂໍ້ຄວາມສຽງຂອງທ່ານ"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"ບໍ່ມີສຽງ."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"ຕັ້ງຄ່າ"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ໂທຫາເບີຂໍ້ຄວາມສຽງ"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ຊ້າທີ່ສຸດ"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"ຊ້າ"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"ປົກກະຕິ"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ໄວ"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ໄວທີ່ສຸດ"</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">"ເລືອກເບີໂທ"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ເລືອກເບີໂທ"</string>
+ <string name="make_primary" msgid="5829291915305113983">"ຈື່ການເລືອກນີ້"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"ນຶ່ງ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ສອງ"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"ສາມ"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"ສີ່"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ຫ້າ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ຫົກ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"ເຈັດ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ແປດ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ເກົ້າ"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ຕິດດາວ"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"ສູນ"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ພາວ"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ຊອກຫາ"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"ແປ້ນໂທ"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ໝາຍເລກທີ່ຈະໂທ"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ປະຫວັດການໂທ"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"ໂຕເລືອກເພີ່ມເຕີມ"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ປຸ່ມໂທລະສັບ"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"ສຳເນົາ"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"ສະແດງສະເພາະສາຍໂທອອກ"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"ສະແດງສະເພາະສາຍໂທເຂົ້າ"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"ສະແດງສະເພາະສາຍບໍ່ໄດ້ຮັບ"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ສະແດງສະເພາະຂໍ້ຄວາມສຽງ"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"ສະແດງການໂທທັງໝົດ"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"ເພີ່ມການຂັ້ນເວລາ 2 ວິນາທີ"</string>
+ <string name="add_wait" msgid="3360818652790319634">"ເພີ່ມການລໍຖ້າ"</string>
+ <string name="call_settings" msgid="7666474782093693667">"ການຕັ້ງຄ່າ"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ລາຍລະອຽດການໂທ"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"ບໍ່ສາມາດອ່ານລາຍລະອຽດຂອງສາຍທີ່ຕ້ອງການໄດ້."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ໃຊ້ປຸ່ມກົດສັນຍານສຽງ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ເພີ່ມການໂທ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"ສາຍໂທເຂົ້າ"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"ສາຍໂທອອກ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"ສາຍບໍ່ໄດ້ຮັບ"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"ສາຍໂທເຂົ້າ"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ເປີດຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ສາຍໂທເຂົ້າ"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ສາຍໂທອອກ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"ເພີ່ມລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ຂໍ້ຄວາມສຽງທີ່ຍັງບໍ່ໄດ້ຟັງ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ເລີ່ມການຊອກຫາດ້ວຍສຽງ"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"ໂທຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"ບໍ່ຮູ້ຈັກ"</string>
+ <string name="voicemail" msgid="3851469869202611441">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="private_num" msgid="6374339738119166953">"ເບີສ່ວນໂຕ"</string>
+ <string name="payphone" msgid="4864313342828942922">"ໂທລະສັບສາທາລະນະ"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ໃຊ້ແປ້ນພິມເພື່ອກົດໂທ"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ກົດໝາຍເລກເພື່ອເພີ່ມການໂທ"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> ນທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ສາຍບໍ່ໄດ້ສົ່ງ"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ເພື່ອຕັ້ງຄ່າຂໍ້ຄວາມສຽງ ໃຫ້ໄປທີ່ ເມນູ > ການຕັ້ງຄ່າ."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ເພື່ອໂທຫາເບີຂໍ້ຄວາມສຽງ ທ່ານຕ້ອງປິດໂໝດຢູ່ເທິງຍົນກ່ອນ."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"ກຳລັງໂຫລດ..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"ເປີດການນຳໃຊ້ແອັບພລິເຄຊັນ People ຄືນ ເພື່ອໃຊ້ຄຸນສົມບັດນີ້."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"ພິມຊື່ ຫຼເບີໂທລະສັບ"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"ບໍ່ມີສາຍທີ່ບໍ່ໄດ້ຮັບຫຼ້າສຸດ."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"ບໍ່ມີຂໍ້ຄວາມສຽງຫຼ້າສຸດ."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"ສະແດງລາຍຊື່ທັງໝົດ"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"ສະແດງສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ປະຫວັດການໂທ"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"ລຶບອອກຈາກລາຍການທີ່ມັກແລ້ວ"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"ຍົກເລີກ"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"ໂທຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"ເພີ່ມໃສ່ລາຍຊື່ຕິດຕໍ່"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"ລາຍງານທີ່ມັກ & ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ທ່ານ\nໂທຫາເລື້ອຍໆ ຈະປາກົດຢູ່ບ່ອນນີ້.\nສະນັ້ນ, ທ່ານສາມາດເລີ່ມໂທໄດ້."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"ແຕະຮູບພາບເພື່ອເບິ່ງຈໍານວນຮູບພາບທັງໝົດ ຫຼືແຕະຄ້າງໄວ້ເພື່ອຈັດຮຽງໃໝ່"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"ເຂົ້າໃຈແລ້ວ"</string>
+</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
new file mode 100644
index 0000000..a9310f7
--- /dev/null
+++ b/res/values-lo/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"ແປ້ນໂທລະສັບ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"ໂທລະສັບ"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"ໂທລະສັບ"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ບັນທຶກການໂທ"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"ສົ່ງຂໍ້ຄວາມ"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"ໂທຫາ <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ລຶບອອກຈາກບັນທຶກການໂທ"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ລຶບບັນທຶກການໂທ"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ລຶບຂໍ້ຄວາມສຽງ"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ແບ່ງປັນຂໍ້ຄວາມສຽງ"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ບັນທຶກການໂທຫວ່າງເປົ່າ."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ລຶບບັນທຶກການໂທ?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ບັນທຶກການໂທທັງໝົດຂອງທ່ານຈະຖືກລຶບອອກ."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ກຳລັງລຶກບັນທຶກການໂທ..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"ຂໍ້ຄວາມສຽງ"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ຂໍ້ຄວາມສຽງ"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ຫຼິ້ນ"</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">"ບໍ່ມີຂໍ້ຄວາມສຽງຈາກ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"ບໍ່ສາມາດເປີດຂໍ້ຄວາມສຽງໄດ້."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"ກຳລັງດຶງຂໍ້ມູນມາກຽມ..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"ກຳລັງດຶງຂໍ້ຄວາມສຽງ..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ບໍ່ສາມາດດຶງຂໍ້ຄວາມສຽງໄດ້."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"ເບີໂທຂໍ້ຄວາມສຽງເທົ່ານັ້ນ"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"ສາຍໂທເຂົ້າເທົ່ານັ້ນ"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"ເບີໂທອອກເທົ່ານັ້ນ"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"ສະເພາະສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງ."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງໄດ້. ມີຂໍ້ຄວາມສຽງໃໝ່ກຳລັງລໍຖ້າ."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"ຕັ້ງຄ່າຂໍ້ຄວາມສຽງຂອງທ່ານ"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"ບໍ່ມີສຽງ."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"ຕັ້ງຄ່າ"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ໂທຫາເບີຂໍ້ຄວາມສຽງ"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ຊ້າທີ່ສຸດ"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"ຊ້າ"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"ປົກກະຕິ"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ໄວ"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ໄວທີ່ສຸດ"</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">"ເລືອກເບີໂທ"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"ເລືອກເບີໂທ"</string>
+ <string name="make_primary" msgid="5829291915305113983">"ຈື່ການເລືອກນີ້"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"ນຶ່ງ"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"ສອງ"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"ສາມ"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"ສີ່"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"ຫ້າ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"ຫົກ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"ເຈັດ"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"ແປດ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ເກົ້າ"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"ຕິດດາວ"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"ສູນ"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"ພາວ"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"ຊອກຫາ"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"ແປ້ນໂທ"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ໝາຍເລກທີ່ຈະໂທ"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ປະຫວັດການໂທ"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"ໂຕເລືອກເພີ່ມເຕີມ"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ປຸ່ມໂທລະສັບ"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"ສຳເນົາ"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"ສະແດງສະເພາະສາຍໂທອອກ"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"ສະແດງສະເພາະສາຍໂທເຂົ້າ"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"ສະແດງສະເພາະສາຍບໍ່ໄດ້ຮັບ"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ສະແດງສະເພາະຂໍ້ຄວາມສຽງ"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"ສະແດງການໂທທັງໝົດ"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"ເພີ່ມການຂັ້ນເວລາ 2 ວິນາທີ"</string>
+ <string name="add_wait" msgid="3360818652790319634">"ເພີ່ມການລໍຖ້າ"</string>
+ <string name="call_settings" msgid="7666474782093693667">"ການຕັ້ງຄ່າ"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ລາຍລະອຽດການໂທ"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"ບໍ່ສາມາດອ່ານລາຍລະອຽດຂອງສາຍທີ່ຕ້ອງການໄດ້."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ໃຊ້ປຸ່ມກົດສັນຍານສຽງ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ເພີ່ມການໂທ"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"ສາຍໂທເຂົ້າ"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"ສາຍໂທອອກ"</string>
+ <string name="type_missed" msgid="2720502601640509542">"ສາຍບໍ່ໄດ້ຮັບ"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"ສາຍໂທເຂົ້າ"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"ເປີດຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ສາຍໂທເຂົ້າ"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ສາຍໂທອອກ"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"ເພີ່ມລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ຂໍ້ຄວາມສຽງທີ່ຍັງບໍ່ໄດ້ຟັງ"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"ເລີ່ມການຊອກຫາດ້ວຍສຽງ"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"ໂທຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"ບໍ່ຮູ້ຈັກ"</string>
+ <string name="voicemail" msgid="3851469869202611441">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="private_num" msgid="6374339738119166953">"ເບີສ່ວນໂຕ"</string>
+ <string name="payphone" msgid="4864313342828942922">"ໂທລະສັບສາທາລະນະ"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ໃຊ້ແປ້ນພິມເພື່ອກົດໂທ"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ກົດໝາຍເລກເພື່ອເພີ່ມການໂທ"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> ນທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ສາຍບໍ່ໄດ້ສົ່ງ"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ເພື່ອຕັ້ງຄ່າຂໍ້ຄວາມສຽງ ໃຫ້ໄປທີ່ ເມນູ > ການຕັ້ງຄ່າ."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ເພື່ອໂທຫາເບີຂໍ້ຄວາມສຽງ ທ່ານຕ້ອງປິດໂໝດຢູ່ເທິງຍົນກ່ອນ."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"ກຳລັງໂຫລດ..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"ເປີດການນຳໃຊ້ແອັບພລິເຄຊັນ People ຄືນ ເພື່ອໃຊ້ຄຸນສົມບັດນີ້."</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"ພິມຊື່ ຫຼືເບີໂທລະສັບ"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"ບໍ່ມີສາຍທີ່ບໍ່ໄດ້ຮັບຫຼ້າສຸດ."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"ບໍ່ມີຂໍ້ຄວາມສຽງຫຼ້າສຸດ."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"ສະແດງລາຍຊື່ທັງໝົດ"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"ສະແດງສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ປະຫວັດການໂທ"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"ຖືກເຊື່ອງຈາກລາຍການທີ່ມັກແລ້ວ"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"ຍົກເລີກ"</string>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 804aa7f..f934435 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Rašoma į buferį…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Gaunamas balso paštas…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nepavyko gauti balso pašto pranešimo."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nauji"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Senesni"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tik siunčiami skambučiai"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"renkamas numeris"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Skambučių istorija"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Daugiau parinkčių"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"skambinimo skydelis"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopijuoti"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Rodyti tik išsiunčiamus"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Rodyti tik gaunamus"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Pridėti laukimą"</string>
<string name="call_settings" msgid="7666474782093693667">"Nustatymai"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Naujas adresatas"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Visi kontaktai"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Išsami skambučio informacija"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nepavyko nuskaityti išsamios skambučio, dėl kurio buvo pateikta užklausa, informacijos."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Naudoti jutiklinę klaviatūrą"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Siųsti teksto pranešimą <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Neklausytas balso pašto pranešimas"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Pradėti paiešką balsu"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Skambinti <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Nežinomas"</string>
<string name="voicemail" msgid="3851469869202611441">"Balso paštas"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Įkeliama iš SIM kortelės..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM kortelės adresatai"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Iš naujo įgalinti programą Žmonės, kad būtų galima naudoti šią funkciją."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Įveskite vardą arba telefono numerį"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Įveskite vardą arba tel. nr."</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Praleisti"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nėra neseniai praleistų skambučių."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Rodyti visus kontaktus"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Rodyti tik mėgstamiausius"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Istorija"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Visi kontaktai"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Visi kontaktai"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Pašalintas iš adresyno"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anuliuoti"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Skambinti numeriu <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pridėti prie kontaktų"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Mėgstamiausieji ir kontaktai,\nkuriems dažnai skambinate, bus rodomi čia.\nTad pradėkite skambinti."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Palieskite vaizdą, kad pamatytumėte visus skaičius, arba paspauskite ir palaikykite, kad pakeistumėte tvarką"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Atsisakyti"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 9dbbaf0..197fcf9 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Notiek buferizācija..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Notiek balss pasta iegūšana..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nevarēja iegūt balss pasta ziņojumu."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Jauns"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Vecāki"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tikai izejošie zvani"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"sastādītais numurs"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Zvanu vēsture"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Vairāk opciju"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"numura sastādīšanas tastatūra"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopēt"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Rādīt tikai izejošos zvanus"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Rādīt tikai ienākošos zvanus"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Pievienot gaidīšanu"</string>
<string name="call_settings" msgid="7666474782093693667">"Iestatījumi"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Jauna kontaktpersona"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Visas kontaktpersonas"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Informācija par zvanu"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nevarēja nolasīt informāciju par pieprasīto zvanu."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Izmantot skārientoņu tastatūru"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Zvanīt šim: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Sūtīt īsziņu šim: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nenoklausīti balss pasta ziņojumi"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Sākt meklēšanu ar balsi"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Nezināms"</string>
<string name="voicemail" msgid="3851469869202611441">"Balss pasts"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Notiek ielāde no SIM kartes..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontaktpersonas SIM kartē"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Lai izmantotu šo funkciju, atkārtoti iespējojiet lietojumprogrammu Personas."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Ier. vārdu vai tālr. nr."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ierakstiet vārdu vai tālr. nr."</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Neatb."</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nav nesenu neatbildēto zvanu."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Rādīt visas kontaktpersonas"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Rādīt tikai izlasi"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Vēsture"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Visas kontaktpersonas"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Visas kontaktpersonas"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Noņemts no izlases"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Atsaukt"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pievienot kontaktpersonām"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Šeit tiks rādīta izlase un kontaktpersonas,\nkurām bieži zvanāt.\nVarat sākt zvanīšanu."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Pieskarieties attēlam, lai skatītu visus tālruņa numurus, vai pieskarieties un turiet, lai mainītu secību."</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Noraidīt"</string>
</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..18144a4
--- /dev/null
+++ b/res/values-mn-rMN/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Залгагч"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Утас"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Утас"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Дуудлагын жагсаалт"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Зурвас илгээх"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> руу залгах"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Дуудлага хийхийн өмнө дугаарыг засах"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Харилцагчдад нэмэх"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Дуудлагын жагсаалтаас хасах"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Дуудлагын жагсаалтыг устгах"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Дуут шууданг устгах"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дуут шууданг хуваалцах"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Дуудлагын жагсаалт хоосон байна."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Дуудлагын жагсаалтыг устгах уу?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Таны бүх дуудлагын бичлэгүүд устах болно."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Дуудлагын жагсаалтыг устгаж байна…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Дуут шуудан"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Дуут шуудан"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Тоглуулах"</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">"<xliff:g id="CALLER">%1$s</xliff:g>-с ирсэн шинэ дуут шуудан"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Дуут шууданг тоглуулж чадсангүй."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Буферлэж байна…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Дуут шууданг уншиж байна…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Дуут шууданг уншиж чадсангүй."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Зөвхөн дуут шуудантай дуудлагуудыг"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Зөвхөн ирсэн дуудлага"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Зөвхөн залгасан дуудлагуудыг"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Зөвхөн аваагүй дуудлагуудыг"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Дуут шуудангийн серверт холбогдож чадахгүй байна."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Дуут шуудангийн серверт холбогдож чадахгүй байна. Шинэ дуут шуудангууд хүлээгдэж байна."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Дуут шуудангаа тохируулна уу."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Аудио байхгүй байна."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Тохируулах"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дуут шуудан руу залгах"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Хамгийн удаанаар"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Удаанаар"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Энгийн хурдаар"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Хурданаар"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Хамгийн хурданаар"</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">"Дугаар сонгоно уу"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Дугаар сонгоно уу"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Энэ сонголтыг санах"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"нэг"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"хоёр"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"гурав"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"дөрөв"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"тав"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"зургаа"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"долоо"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"найм"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ес"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"од"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"тэг"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"фунт"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"дуут шуудан"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"хайх"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"залгах"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"Ухраах"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"залгах дугаар"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Дуудлагын түүх"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Нэмэлт сонголтууд"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"дугаар цуглуулагч"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Хуулах"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Зөвхөн залгасан дуудлагуудыг харуулах"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Зөвхөн ирсэн дуудлагуудыг харуулах"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Зөвхөн аваагүй дуудлагуудыг харуулах"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Зөвхөн дуут шуудангуудыг харуулах"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Бүх дуудлагыг харуулах"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"2-сек зогсолт нэмэх"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Хүлээлт нэмэх"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Тохиргоо"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Шинэ харилцагч"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Бүх харилцагчид"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Дуудлагын мэдээлэл"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Хийсэн дуудлагын дэлгэрэнгүй мэдээллийг уншиж чадсангүй."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Хүрэлтээр дуугардаг гар ашиглах"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Үргэлжилж буй дуудлага руу буцах"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Дуудлага нэмэх"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Ирж буй дуудлага"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Залгасан дуудлага"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Аваагүй дуудлага"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Дуут шуудан"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Ирж буй дуудлага"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Дуут шууданг тоглуулах"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Ирж буй дуудлага"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Залгасан дуудлага"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Аваагүй дуудлага"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Дуут шуудан"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Харилцагч нэмэх"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> руу зурвас илгээх"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Сонсоогүй дуут шуудан"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Дуун хайлтыг эхлүүлэх"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
+ <string name="unknown" msgid="740067747858270469">"Тодорхойгүй"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Дуут шуудан"</string>
+ <string name="private_num" msgid="6374339738119166953">"Нууцлагдсан дугаар"</string>
+ <string name="payphone" msgid="4864313342828942922">"Төлбөртэй утас"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Залгахдаа гар ашиглах"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Дуудлага нэмэхийн тулд залгана уу"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Дуудлага илгээгдсэнгүй"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Дуут шууданг тохируулахын тулд Цэс > Тохиргоо руу очно уу."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Дуут шуудан руу залгахын тулд юуны өмнө Нислэгийн төлвийг идэвхгүйжүүлнэ үү."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Ачааллаж байна..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM картаас уншиж байна…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM картны харилцагчид"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Тус функцийг ашиглахын тулд People аппликешнийг дахин идэвхжүүлнэ үү."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Нэр эсвэл дугаарыг бичнэ үү"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Саяхны аваагүй дуудлага алга байна."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Саяхны дуут шуудан байхгүй байна."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Бүх харилцагчдыг харуулах"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Түүх"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Бүх харилцагчид"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Бүх харилцагчид"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Дуртай жагсаалтаас хасав"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Буцаах"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Харилцагчдад нэмэх"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Таны дуртай & \nбайнга залгадаг харилцагчид\nэнд харагдах болно."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Бүх тоог харахын тулд зургийг товших буюу дахин захиалахын тулд дараад барина уу"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Хаах"</string>
+</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
new file mode 100644
index 0000000..8294eaa
--- /dev/null
+++ b/res/values-mn/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"Залгагч"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Утас"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Утас"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Дуудлагын жагсаалт"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Зурвас илгээх"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> руу залгах"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Дуудлага хийхийн өмнө дугаарыг засах"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Харилцагчдад нэмэх"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Дуудлагын жагсаалтаас хасах"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Дуудлагын жагсаалтыг устгах"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Дуут шууданг устгах"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дуут шууданг хуваалцах"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Дуудлагын жагсаалт хоосон байна."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Дуудлагын жагсаалтыг устгах уу?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Таны бүх дуудлагын бичлэгүүд устах болно."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Дуудлагын жагсаалтыг устгаж байна…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Дуут шуудан"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Дуут шуудан"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Тоглуулах"</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">"<xliff:g id="CALLER">%1$s</xliff:g>-с ирсэн шинэ дуут шуудан"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Дуут шууданг тоглуулж чадсангүй."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Буферлэж байна…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Дуут шууданг уншиж байна…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Дуут шууданг уншиж чадсангүй."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Зөвхөн дуут шуудантай дуудлагуудыг"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Зөвхөн ирсэн дуудлага"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Зөвхөн залгасан дуудлагуудыг"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Зөвхөн аваагүй дуудлагуудыг"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Дуут шуудангийн серверт холбогдож чадахгүй байна."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Дуут шуудангийн серверт холбогдож чадахгүй байна. Шинэ дуут шуудангууд хүлээгдэж байна."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Дуут шуудангаа тохируулна уу."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Аудио байхгүй байна."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Тохируулах"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дуут шуудан руу залгах"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Хамгийн удаанаар"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Удаанаар"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Энгийн хурдаар"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Хурданаар"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Хамгийн хурданаар"</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">"Дугаар сонгоно уу"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Дугаар сонгоно уу"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Энэ сонголтыг санах"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"нэг"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"хоёр"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"гурав"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"дөрөв"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"тав"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"зургаа"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"долоо"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"найм"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"ес"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"од"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"тэг"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"фунт"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"дуут шуудан"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"хайх"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"залгах"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"Ухраах"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"залгах дугаар"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Дуудлагын түүх"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Нэмэлт сонголтууд"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"дугаар цуглуулагч"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Хуулах"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Зөвхөн залгасан дуудлагуудыг харуулах"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Зөвхөн ирсэн дуудлагуудыг харуулах"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Зөвхөн аваагүй дуудлагуудыг харуулах"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Зөвхөн дуут шуудангуудыг харуулах"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Бүх дуудлагыг харуулах"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"2-сек зогсолт нэмэх"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Хүлээлт нэмэх"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Тохиргоо"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Шинэ харилцагч"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Дуудлагын мэдээлэл"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Хийсэн дуудлагын дэлгэрэнгүй мэдээллийг уншиж чадсангүй."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Хүрэлтээр дуугардаг гар ашиглах"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Үргэлжилж буй дуудлага руу буцах"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Дуудлага нэмэх"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Ирж буй дуудлага"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Залгасан дуудлага"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Аваагүй дуудлага"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Дуут шуудан"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Ирж буй дуудлага"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Дуут шууданг тоглуулах"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Ирж буй дуудлага"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Залгасан дуудлага"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Аваагүй дуудлага"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Дуут шуудан"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Харилцагч нэмэх"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> руу зурвас илгээх"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Сонсоогүй дуут шуудан"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Дуун хайлтыг эхлүүлэх"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
+ <string name="unknown" msgid="740067747858270469">"Тодорхойгүй"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Дуут шуудан"</string>
+ <string name="private_num" msgid="6374339738119166953">"Нууцлагдсан дугаар"</string>
+ <string name="payphone" msgid="4864313342828942922">"Төлбөртэй утас"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Залгахдаа гар ашиглах"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Дуудлага нэмэхийн тулд залгана уу"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Дуудлага илгээгдсэнгүй"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Дуут шууданг тохируулахын тулд Цэс > Тохиргоо руу очно уу."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Дуут шуудан руу залгахын тулд юуны өмнө Нислэгийн төлвийг идэвхгүйжүүлнэ үү."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Ачааллаж байна..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM картаас уншиж байна…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM картны харилцагчид"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Тус функцийг ашиглахын тулд People аппликешнийг дахин идэвхжүүлнэ үү."</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Нэр эсхүл дугаарыг бичнэ үү"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Саяхны аваагүй дуудлага алга байна."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Саяхны дуут шуудан байхгүй байна."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Бүх харилцагчдыг харуулах"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Түүх"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Бүх харилцагчид"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Бүх харилцагчид"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"Дуртай харилцагчдаас нууцалсан"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Буцаах"</string>
+</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..20ee265
--- /dev/null
+++ b/res/values-ms-rMY/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"Pendail"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"Log panggilan"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"Hantar mesej teks"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Panggil <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit nombor sebelum panggilan"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Tambah ke kenalan"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Alih keluar daripada log panggilan"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Padam bersih log panggilan"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Padamkan mel suara"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Kongsi mel suara"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Log panggilan kosong."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Padam bersih log panggilan?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Semua rekod panggilan anda akan dipadamkan."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Memadam bersih log panggilan..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"Mel suara"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Mel suara"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Main"</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">"Mel suara baru daripada <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Tidak dapat memainkan mel suara."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"Menimbal…"</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"Sedang mendapatkan mel suara…"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Tidak dapat mengambil 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>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Panggilan keluar sahaja"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Panggilan terlepas sahaja"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Tidak boleh bersambung kepada pelayan mel suara."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Tak boleh brsmbg kpd pelayan mel suara. Mel suara baru menunggu."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Sediakan mel suara anda."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio tidak tersedia."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Menyediakan"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Panggil mel suara"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"kelajuan paling perlahan"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"Kelajuan perlahan"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"Kelajuan biasa"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kelajuan pantas"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kelajuan paling pantas"</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">"Pilih nombor"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Pilih nombor"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Ingat pilihan ini"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"satu"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"dua"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"tiga"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"empat"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"lima"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"enam"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"tujuh"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"lapan"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"sembilan"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"bintang"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"sifar"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"paun"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"mel suara"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"cari"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"dail"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"undur ruang"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"nombor untuk didail"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Sejarah Panggilan"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Lagi pilihan"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"pad dail"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tunjuk panggilan keluar shj"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Tunjuk panggilan masuk shj"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Tunjuk panggilan terlepas shj"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tunjukkan mel suara sahaja"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Tunjukkan semua panggilan"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Tambah jeda 2 saat"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Tambah penungguan"</string>
+ <string name="call_settings" msgid="7666474782093693667">"Tetapan"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Kenalan baru"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Semua kenalan"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Butiran panggilan"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Tidak boleh membaca butiran untuk panggilan yang diminta."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gunakan pad kekunci nada sentuh"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Kembali ke panggilan yang sedang berlangsung"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Tambah panggilan"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Panggilan masuk"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Panggilan keluar"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Panggilan tidak dijawab"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Mel suara"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Panggilan masuk"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Mainkan mel suara"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Panggilan masuk"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Panggilan keluar"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"Panggilan tidak dijawab"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mel suara"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"Tambah kenalan"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"Hantar mesej teks kepada <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mel suara belum didengar"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Mulakan carian suara"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Mel suara"</string>
+ <string name="private_num" msgid="6374339738119166953">"Nombor peribadi"</string>
+ <string name="payphone" msgid="4864313342828942922">"Telefon awam"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Gunakan papan kekunci untuk mendail"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"Dail untuk menambah panggilan"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Panggilan tidak dihantar"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Untuuk menyediakan mel suara, pergi ke Menu > Tetapan."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Untuk membuat panggilan ke mel suara, mula-mula matikan mod Pesawat."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Memuatkan…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Memuatkan dari kad SIM..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"Kenalan kad SIM"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"Dayakan semula aplikasi Orang untuk menggunakan ciri ini."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Taip nama atau nombor telefon"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"Tiada panggilan tidak dijawab terbaru."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"Tiada mel suara terbaru."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"Tunjukkan semua kenalan"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"Sejarah"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kenalan"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kenalan"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Dialih keluar daripada kegemaran"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Buat asal"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Tambahkan pada kenalan"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Kegemaran & kenalan yang\nkerap anda hubungi akan ditunjukkan di sini.\nJadi, mulalah membuat panggilan."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Ketik imej untuk melihat semua nombor atau tekan dan tahan imej untuk menyusun semula"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ketepikan"</string>
+</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index f8f7f35..a7d42cb 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Menimbal…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Sedang mendapatkan mel suara…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Tidak dapat mengambil mel suara."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Baru"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Lebih lama"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Panggilan keluar sahaja"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"nombor untuk didail"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Sejarah Panggilan"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Lagi pilihan"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"pad dail"</string>
<string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tunjuk panggilan keluar shj"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Tunjuk panggilan masuk shj"</string>
@@ -114,8 +113,7 @@
<string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Hantar mesej teks kepada <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mel suara belum didengar"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
+ <string name="description_start_voice_search" msgid="520539488194946012">"Mulakan carian suara"</string>
<string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
<string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
@@ -142,12 +140,18 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Tunjukkan semua kenalan"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Sejarah"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kenalan"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kenalan"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"Disembunyikan daripada kegemaran"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Buat asal"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6010a6f..cdd18ec 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Bufrer …"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Henter talepost …"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kunne ikke hente talepost."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nytt"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Eldre"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Bare utgående anrop"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"ring til"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Anropslogg"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere alternativer"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatur"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiér"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Vis bare utgående"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Vis bare innkommende"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Legg til Vent"</string>
<string name="call_settings" msgid="7666474782093693667">"Innstillinger"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Ny kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alle kontakter"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Samtaleinformasjon"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Kunne ikke lese informasjon for forespurt samtale."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Bruk tonetastatur"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Send tekstmelding til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ikke avspilt talepost"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"–"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Start talesøk"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Ukjent"</string>
<string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Henter fra SIM-kort…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Aktiver Personer-appen på nytt for å bruke denne funksjonen."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Skriv inn et navn eller telefonnummer"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Skriv inn et navn eller telefonnummer"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Ikke besvart"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Ingen nylige ubesvarte anrop"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Vis alle kontakter"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Vis bare favoritter"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Logg"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontakter"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontakter"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra favoritter"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Angre"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Legg til i kontakter"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favoritter og kontakter du \nringer ofte vises her.\n Ring i vei."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Trykk på bildet for å se alle telefonnumrene, eller trykk og hold inne for å endre rekkefølgen"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Fjern"</string>
</resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..c208533
--- /dev/null
+++ b/res/values-ne-rNP/strings.xml
@@ -0,0 +1,162 @@
+<?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="8490255569343340580">"डायलर"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"फोन"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"फोन"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"कल लग"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"पाठ सन्देश पठाउनुहोस्"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"कल <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"कल गर्नुअगाडी नम्बर सम्पादन गर्नुहोस्"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"सम्पर्कहरूमा थप्नुहोस्"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"कल लगबाट निकाल्नुहोस्"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"कल लग हटाउनुहोस्"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"भ्वाइसमेल हटाउनुहोस्"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"भ्वाइसमेल साझेदारी गर्नुहोस्"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"कल लग खाली छ।"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"सबै कल लग हटाउने हो?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"तपाइँको सम्पूर्ण कल रेकर्डहरू हटाइने छ।"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"कल लग हटाउँदै..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"भ्वाइसमेल"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> भ्वाइसमेलहरू"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"बजाउनुहोस्"</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">"<xliff:g id="CALLER">%1$s</xliff:g> बाट नयाँ भ्वाइसमेल"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"भ्वाइसमेल बजाउन सकिएन।"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"बफरिङ हुदै..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"भ्वाइसमेल ल्याइँदै ..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"भ्वाइसमेल ल्याउन सकेन।"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"भ्वाइसमेलका साथ मात्र कल गर्नुहोस्"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"आगमन कलहरू मात्र"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"बहिर्गमन कलहरू मात्र"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"छुटेका कलहरू मात्र"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"भ्वाइसमेल सर्भरसँग जोड्न सक्दैन।"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"भ्वाइसमेल सर्भरमा जडान गर्न सकेन। नयाँ भ्वाइसमेलहरू कुर्दै छन्।"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"तपाईँको भ्वाइसमेल मिलाउनुहोस्"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"अडियो उपलव्ध छैन।"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"मिलाउनुहोस्"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"भ्वाइसमेल कल गर्नुहोस्"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"सबभन्दा ढिलो गति"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"सुस्त गति"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"सामान्य गति"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"तेज गति"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"सबभन्दा तेज गति"</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">"नम्बर रोज्नुहोस्"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"नम्बर छान्नुहोस्"</string>
+ <string name="make_primary" msgid="5829291915305113983">"यो छनौट याद राख्नुहोस्"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"एक"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"दुई"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"तिन"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"चार"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"पाँच"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"छ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"सात"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"आठ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"नौ"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"तारा चिन्ह"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"शून्य"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"पाउन्ड"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"भ्वाइसमेल"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"खोजी गर्नुहोस्"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"डायल"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"ब्याकस्पेस"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"डायल गर्न संख्या"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"कल इतिहास"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"थप विकल्पहरू"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायल प्याड"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"प्रतिलिपि गर्नुहोस्"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"बहिर्गमन मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"आगमन कल मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"छुटेकाहरू मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"भ्वाइसमेलहरू मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"सबै कलहरू देखाउनुहोस्"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"२ सेकन्डको रोकाइ थप्नुहोस्"</string>
+ <string name="add_wait" msgid="3360818652790319634">"पर्खाइ थप्नुहोस्"</string>
+ <string name="call_settings" msgid="7666474782093693667">"सेटिङहरू"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"नयाँ सम्पर्क"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"सबै सम्पर्कहरू"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"कल विवरण"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"अनुरोध गरिएको कलको जानकारी पढ्न सकेन।"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"स्पर्श टोन किप्याडको प्रयोग गर्नुहोस्"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"हुदै गरेको कलमा फर्कनुहोस्"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"कल थप्नुहोस्"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"आगमन कल"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"बहिर्गमन कल"</string>
+ <string name="type_missed" msgid="2720502601640509542">"मिस कल"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"भ्वाइसमेल"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"आगमन कलहरू"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"भ्वाइसमेल बजाउनुहोस्"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"आगमन कल"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"बहिर्गमन कल"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"मिस कल"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"भ्वाइसमेल"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"सम्पर्क थप्नुहोस्"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
+ <string name="description_call" msgid="3443678121983852666">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>मा पाठ सन्देश पठाउनुहोस्"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"नसुनिएका भ्वाइसमेल"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"आवाज खोजी सुरु गर्नुहोस्"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> कल गर्नुहोस्"</string>
+ <string name="unknown" msgid="740067747858270469">"अज्ञात"</string>
+ <string name="voicemail" msgid="3851469869202611441">"भ्वाइसमेल"</string>
+ <string name="private_num" msgid="6374339738119166953">"नीजि नम्बर"</string>
+ <string name="payphone" msgid="4864313342828942922">"भुक्तानी फोन"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"डायल गर्न किबोर्ड प्रयोग गर्नुहोस्"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"एउटा कल थप्नका लागि डायल गर्नुहोस्"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"कल गएन"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"भ्वाइसमेल सेट गर्नका लागि मेनु सेटिङमा जानुहोस्।"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"भ्वाइसमेल कल गर्नका लागि पहिले हवाइजहाज मोड बन्द गर्नुहोस्।"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"लोड हुँदै..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM कार्डबाट लोड हुँदै"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM कार्ड सम्पर्कहरू"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"यो सुविधा प्रयोग गर्नका लागि मानिसहरूको अनुप्रयोग पुनःसक्षम गर्नुहोस्।"</string>
+ <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
+ <skip />
+ <string name="call_log_all_title" msgid="3566738938889333307">"सबै"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"छुटेको"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"हालमा छुटेका कुनै कलहरू छैनन्।"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"हालको कुनै voicemail हरू छैनन्।"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"सबै सम्पर्कहरू देखाउनुहोस्"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"मनपर्ने मात्र देखाउनुहोस्"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"०"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"१"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"२"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"३"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"४"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"५"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"६"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"७"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"८"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"९"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"सबै सम्पर्कहरू"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"सबै सम्पर्कहरू"</string>
+ <!-- no translation found for favorite_hidden (5011234945140912047) -->
+ <skip />
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"अनडु गर्नुहोस्"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> कल गर्नुहोस्"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"सम्पर्कहरूमा थप्नुहोस्"</string>
+</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
new file mode 100644
index 0000000..8ec13d7
--- /dev/null
+++ b/res/values-ne/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"डायलर"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"फोन"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"फोन"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"कल लग"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"पाठ सन्देश पठाउनुहोस्"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"कल <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"कल गर्नुअगाडी नम्बर सम्पादन गर्नुहोस्"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"सम्पर्कहरूमा थप्नुहोस्"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"कल लगबाट निकाल्नुहोस्"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"कल लग हटाउनुहोस्"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"भ्वाइसमेल हटाउनुहोस्"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"भ्वाइसमेल साझेदारी गर्नुहोस्"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"कल लग खाली छ।"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"सबै कल लग हटाउने हो?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"तपाइँको सम्पूर्ण कल रेकर्डहरू हटाइने छ।"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"कल लग हटाउँदै..."</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"भ्वाइसमेल"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> भ्वाइसमेलहरू"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"बजाउनुहोस्"</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">"<xliff:g id="CALLER">%1$s</xliff:g> बाट नयाँ भ्वाइसमेल"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"भ्वाइसमेल बजाउन सकिएन।"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"बफरिङ हुदै..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"भ्वाइसमेल ल्याइँदै ..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"भ्वाइसमेल ल्याउन सकेन।"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"भ्वाइसमेलका साथ मात्र कल गर्नुहोस्"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"आगमन कलहरू मात्र"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"बहिर्गमन कलहरू मात्र"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"छुटेका कलहरू मात्र"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"भ्वाइसमेल सर्भरसँग जोड्न सक्दैन।"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"भ्वाइसमेल सर्भरमा जडान गर्न सकेन। नयाँ भ्वाइसमेलहरू कुर्दै छन्।"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"तपाईँको भ्वाइसमेल मिलाउनुहोस्"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"अडियो उपलव्ध छैन।"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"मिलाउनुहोस्"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"भ्वाइसमेल कल गर्नुहोस्"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"सबभन्दा ढिलो गति"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"सुस्त गति"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"सामान्य गति"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"तेज गति"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"सबभन्दा तेज गति"</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">"नम्बर रोज्नुहोस्"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"नम्बर छान्नुहोस्"</string>
+ <string name="make_primary" msgid="5829291915305113983">"यो छनौट याद राख्नुहोस्"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"एक"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"दुई"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"तिन"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"चार"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"पाँच"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"छ"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"सात"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"आठ"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"नौ"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"तारा चिन्ह"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"शून्य"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"पाउन्ड"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"भ्वाइसमेल"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"खोजी गर्नुहोस्"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"डायल"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"ब्याकस्पेस"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"डायल गर्न संख्या"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"कल इतिहास"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"थप विकल्पहरू"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायल प्याड"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"प्रतिलिपि गर्नुहोस्"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"बहिर्गमन मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"आगमन कल मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"छुटेकाहरू मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"भ्वाइसमेलहरू मात्र देखाउनुहोस्"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"सबै कलहरू देखाउनुहोस्"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"२ सेकन्डको रोकाइ थप्नुहोस्"</string>
+ <string name="add_wait" msgid="3360818652790319634">"पर्खाइ थप्नुहोस्"</string>
+ <string name="call_settings" msgid="7666474782093693667">"सेटिङहरू"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"नयाँ सम्पर्क"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"कल विवरण"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"अनुरोध गरिएको कलको जानकारी पढ्न सकेन।"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"स्पर्श टोन किप्याडको प्रयोग गर्नुहोस्"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"हुदै गरेको कलमा फर्कनुहोस्"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"कल थप्नुहोस्"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"आगमन कल"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"बहिर्गमन कल"</string>
+ <string name="type_missed" msgid="2720502601640509542">"मिस कल"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"भ्वाइसमेल"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"आगमन कलहरू"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"भ्वाइसमेल बजाउनुहोस्"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"आगमन कल"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"बहिर्गमन कल"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"मिस कल"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"भ्वाइसमेल"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"सम्पर्क थप्नुहोस्"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
+ <string name="description_call" msgid="3443678121983852666">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>मा पाठ सन्देश पठाउनुहोस्"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"नसुनिएका भ्वाइसमेल"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"आवाज खोजी सुरु गर्नुहोस्"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> कल गर्नुहोस्"</string>
+ <string name="unknown" msgid="740067747858270469">"अज्ञात"</string>
+ <string name="voicemail" msgid="3851469869202611441">"भ्वाइसमेल"</string>
+ <string name="private_num" msgid="6374339738119166953">"नीजि नम्बर"</string>
+ <string name="payphone" msgid="4864313342828942922">"भुक्तानी फोन"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"डायल गर्न किबोर्ड प्रयोग गर्नुहोस्"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"एउटा कल थप्नका लागि डायल गर्नुहोस्"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"कल गएन"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"भ्वाइसमेल सेट गर्नका लागि मेनु सेटिङमा जानुहोस्।"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"भ्वाइसमेल कल गर्नका लागि पहिले हवाइजहाज मोड बन्द गर्नुहोस्।"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"लोड हुँदै..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM कार्डबाट लोड हुँदै"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM कार्ड सम्पर्कहरू"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"यो सुविधा प्रयोग गर्नका लागि मानिसहरूको अनुप्रयोग पुनःसक्षम गर्नुहोस्।"</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"नाम वा फोन टाइप गर्नुहोस्"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"सबै"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"छुटेको"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"हालमा छुटेका कुनै कलहरू छैनन्।"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"हालको कुनै voicemail हरू छैनन्।"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"सबै सम्पर्कहरू देखाउनुहोस्"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"मनपर्ने मात्र देखाउनुहोस्"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"०"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"१"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"२"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"३"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"४"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"५"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"६"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"७"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"८"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"९"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"सबै सम्पर्कहरू"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"सबै सम्पर्कहरू"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"मन पर्नेहरूबाट लुकाइएका"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"अनडु गर्नुहोस्"</string>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f4a5fd6..c8c6bb9 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -29,10 +29,10 @@
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"Gesprekken wissen"</string>
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Voicemail verwijderen"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Voicemail delen"</string>
- <string name="recentCalls_empty" msgid="247053222448663107">"Gesprekken is leeg"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"Gesprekkenoverzicht is leeg"</string>
<string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Oproeplog wissen?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"Al uw oproepgegevens worden verwijderd."</string>
- <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Oproeplogboek wissen..."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Gesprekkenlijst wissen..."</string>
<plurals name="notification_voicemail_title">
<item quantity="one" msgid="1746619685488504230">"Voicemail"</item>
<item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> voicemails"</item>
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"In buffer opslaan…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Voicemail ophalen…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kan voicemail niet ophalen."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nieuw"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Ouder"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Alleen uitgaande oproepen"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"nummer om te bellen"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeschiedenis"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opties"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"toetsenblok"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiëren"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Alleen uitgaand weergeven"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Alleen inkomend weergeven"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Wachten toevoegen"</string>
<string name="call_settings" msgid="7666474782093693667">"Instellingen"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nieuw contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alle contacten"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Gespreksgegevens"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Kan geen gegevens over het gevraagde gesprek vinden."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Toetsen voor toonkiezen gebruiken"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Sms verzenden naar <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Niet-beluisterde voicemail"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Gesproken zoekopdracht"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Onbekend"</string>
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laden vanaf SIM-kaart..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contacten op SIM-kaart"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Schakel de app \'Personen\' opnieuw in om deze functie te gebruiken."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Typ een naam of telefoon"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Typ een naam of telefoonnummer"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Gemist"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Geen recente gemiste oproepen."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Alle contacten weergeven"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Alleen favorieten weergeven"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Geschiedenis"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle contacten"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle contacten"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Verwijderd uit favorieten"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ongedaan maken"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Toevoegen aan contacten"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favorieten en contacten die u\nvaak belt, worden hier weergegeven.\nDus begin met bellen."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tik op de afbeelding om alle nummers te bekijken of raak deze lang aan om de volgorde van nummers te wijzigen"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Sluiten"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 044a2b3..07ccb56 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Buforowanie..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Pobieranie poczty głosowej..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nie można pobrać poczty głosowej."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nowe"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Starsze"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tylko połączenia wychodzące"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numer do wybrania"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia połączeń"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Więcej opcji"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"klawiatura"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiuj"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Pokaż tylko wychodzące"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Pokaż tylko przychodzące"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Dodaj oczekiwanie"</string>
<string name="call_settings" msgid="7666474782093693667">"Ustawienia"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nowy kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Wszystkie kontakty"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Szczegóły połączenia"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nie można odczytać szczegółów żądanego połączenia."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Użyj klawiatury tonowej"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Połącz z: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Wyślij SMS do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nieodsłuchana poczta głosowa"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"–"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Wyszukiwanie głosowe"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Nieznane"</string>
<string name="voicemail" msgid="3851469869202611441">"Poczta głosowa"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Wczytywanie z karty SIM…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakty z karty SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Aby korzystać z tej funkcji, włącz ponownie aplikację Kontakty."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Wpisz imię lub telefon"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Wpisz nazwisko/numer telefonu"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Wszystkie"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Nieodebrane"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Brak nowych nieodebranych połączeń."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Pokaż wszystkie kontakty"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Pokaż tylko ulubione"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Wszystkie kontakty"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Wszystkie kontakty"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Usunięto z ulubionych"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Cofnij"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj do kontaktów"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Tutaj będą widoczne Twoje\nulubione i najczęstsze kontakty.\nPora zacząć dzwonić."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Kliknij zdjęcie, by zobaczyć wszystkie numery, lub kliknij je i przytrzymaj, by zmienić kolejność"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Zamknij"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 7899671..fa7ae19 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"A colocar na memória intermédia..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"A obter correio de voz..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Não foi possível obter correio de voz."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Novo"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"+ antigo"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Apenas chamadas efetuadas"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"número a marcar"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de Chamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar apenas cham. efetuadas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar apenas cham. recebidas"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Adicionar espera"</string>
<string name="call_settings" msgid="7666474782093693667">"Definições"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Novo contacto"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Todos os contactos"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalhes da chamada"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Não foi possível ler os detalhes da chamada solicitada."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilizar teclado numérico com tons de toque"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensagem de texto para <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mensagem de correio de voz ainda não ouvida"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconhecido"</string>
<string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"A carregar a partir do cartão SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contactos no cartão SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Reative a aplicação Pessoas para utilizar esta funcionalidade."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Introduzir nome/telemóvel"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Introduzir nome ou n.º telef."</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Não atend."</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Não atendidas"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Não existem chamadas não atendidas recentes."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Não existe correio de voz recente."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos os contactos"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar apenas os favoritos"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos os contactos"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos os contactos"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anular"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adicionar aos contactos"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Os favoritos e os contactos para os quais\nliga frequentemente serão mostrados aqui,\n por isso, comece a ligar."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Toque na imagem para ver todos os números ou prima sem soltar para reordenar"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ignorar"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index f5b88f3..a2d0fea 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Armazenar em buffer…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Buscando o correio de voz…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Não foi possível obter o correio de voz."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Novas"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Antigas"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Somente chamadas de saída"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"número para discagem"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de chamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado numérico"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar apenas enviadas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar apenas recebidas"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Adicionar espera"</string>
<string name="call_settings" msgid="7666474782093693667">"Configurações"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Novo contato"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Todos os contatos"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalhes da chamada"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Não foi possível ler os detalhes para a chamada solicitada."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado multifrequencial"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensagem de texto para <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nova mensagem de voz"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconhecido"</string>
<string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Carregando do cartão SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Contatos do cartão SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Reative o aplicativo Pessoas para usar este recurso."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Digite o número/telefone"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Digite um nome ou telefone"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tudo"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nenhuma chamada perdida recente."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos os contatos"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos os contatos"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos os contatos"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfazer"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adicionar aos contatos"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Seus favoritos e os contatos\npara os quais você liga com mais frequência aparecerão aqui.\nComece a ligar!"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Toque na imagem para ver todos os números ou pressione e segure para reordenar"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Descartar"</string>
</resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 0681c51..e1b7c63 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -55,10 +55,6 @@
<skip />
<!-- no translation found for voicemail_fetching_timout (6691792377574905201) -->
<skip />
- <!-- no translation found for call_log_new_header (846546437517724715) -->
- <skip />
- <!-- no translation found for call_log_old_header (6262205894314263629) -->
- <skip />
<!-- no translation found for call_log_voicemail_header (3945407886667089173) -->
<skip />
<!-- no translation found for call_log_incoming_header (2787722299753674684) -->
@@ -119,6 +115,8 @@
<!-- 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_copy (6108677035381940698) -->
<skip />
<!-- no translation found for menu_show_outgoing_only (1965570298133301970) -->
@@ -136,6 +134,8 @@
<!-- no translation found for call_settings (7666474782093693667) -->
<skip />
<string name="menu_newContact" msgid="1209922412763274638">"Nov contact"</string>
+ <!-- no translation found for menu_allContacts (6948308384034051670) -->
+ <skip />
<string name="callDetailTitle" msgid="5340227785196217938">"Detagls dal clom"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Impussibel da leger ils detagls dal clom dumandà."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilisar la tastatura dal telefon"</string>
@@ -169,7 +169,7 @@
<skip />
<!-- no translation found for description_start_voice_search (520539488194946012) -->
<skip />
- <!-- no translation found for call_log_empty_gecode (5588904744812100846) -->
+ <!-- no translation found for call_log_empty_gecode (2019639420045039861) -->
<skip />
<!-- no translation found for menu_callNumber (997146291983360266) -->
<skip />
@@ -193,7 +193,7 @@
<string name="simContacts_title" msgid="27341688347689769">"Contacts sin la carta SIM"</string>
<!-- no translation found for add_contact_not_available (1419207765446461366) -->
<skip />
- <!-- no translation found for dialer_hint_find_contact (9190419749917566623) -->
+ <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
<skip />
<!-- no translation found for call_log_all_title (3566738938889333307) -->
<skip />
@@ -209,12 +209,44 @@
<skip />
<!-- no translation found for call_log_activity_title (4612824396355272023) -->
<skip />
+ <!-- no translation found for dialpad_0_number (8859392433961251108) -->
+ <skip />
+ <!-- no translation found for dialpad_1_number (6536740525419909212) -->
+ <skip />
+ <!-- no translation found for dialpad_2_number (4941546415280852148) -->
+ <skip />
+ <!-- no translation found for dialpad_3_number (6539414865185536881) -->
+ <skip />
+ <!-- no translation found for dialpad_4_number (979988372051042362) -->
+ <skip />
+ <!-- no translation found for dialpad_5_number (5492272478939926734) -->
+ <skip />
+ <!-- no translation found for dialpad_6_number (8044579516869379093) -->
+ <skip />
+ <!-- no translation found for dialpad_7_number (4175113016564167123) -->
+ <skip />
+ <!-- no translation found for dialpad_8_number (7949849563865941621) -->
+ <skip />
+ <!-- no translation found for dialpad_9_number (4377059952097526576) -->
+ <skip />
<!-- no translation found for show_all_contacts_title (8395378484578221791) -->
<skip />
<!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
<skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
+ <!-- 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_add_to_contacts (1853716708655789069) -->
+ <skip />
+ <!-- no translation found for num_missed_calls (8081736535604293886) -->
+ <skip />
+ <!-- no translation found for no_favorites (5212485868783382971) -->
+ <skip />
+ <!-- no translation found for contact_tooltip (7817483485692282287) -->
+ <skip />
+ <!-- no translation found for description_dismiss (2146276780562549643) -->
+ <skip />
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 3f09024..53cc3ab 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Se utilizează memoria tampon..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Se preia mesajul vocal..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nu s-a putut prelua mesajul vocal."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Noi"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Mai vechi"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Numai apelurile efectuate"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numărul de apelat"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Istoricul apelurilor"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mai multe opţiuni"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatură numerică"</string>
<string name="menu_copy" msgid="6108677035381940698">"Copiaţi"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Numai apelurile efectuate"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Numai apelurile primite"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Adăugaţi interval de aşteptare"</string>
<string name="call_settings" msgid="7666474782093693667">"Setări"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Persoană nouă în agendă"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Toată agenda"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detaliile apelului"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Nu se pot citi detaliile pentru apelul solicitat."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilizaţi tastatura DTMF"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Apelaţi pe <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Trimiteţi un mesaj text către <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mesaje vocale neascultate"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Începeţi căutarea vocală"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Apelaţi <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Necunoscut"</string>
<string name="voicemail" msgid="3851469869202611441">"Mesagerie vocală"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Se încarcă de pe cardul SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Persoanele din agendă de pe cardul SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Pentru a utiliza această funcție, reactivați aplicația Persoane."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Introd. nume sau nr. tel."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Introd. nume sau nr. telefon"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Toate"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Nepreluate"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Nu există apeluri nepreluate recente."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Afișați toate persoanele de contact"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Afișați numai preferate"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Istoric"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Toată agenda"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Toată agenda"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"S-a eliminat din preferate"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anulați"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Apelați <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adăugați în Agendă"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (de) apeluri nepreluate noi"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Preferințele și persoanele din Agendă pe care \nle apelați frecvent vor fi afișate aici.\nÎncepeți să faceți apeluri."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Atingeți imaginea pentru a vedea toate numerele sau apăsați și țineți apăsat pentru a reordona"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Închideți"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index a70b5c3..5a9d84b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Буферизация..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Получение голосовой почты..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Не удалось получить голосовую почту."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Новые"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Раньше"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Только звонки с голосовой почтой"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Только входящие звонки"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Только исходящие звонки"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"набираемый номер"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"История вызовов"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Ещё"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"Панель набора номера"</string>
<string name="menu_copy" msgid="6108677035381940698">"Копировать"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Исходящие"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Входящие"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Добавить паузу"</string>
<string name="call_settings" msgid="7666474782093693667">"Настройки"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Новый контакт"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Все контакты"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Сведения о вызове"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Не удается получить сведения о вызове."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Использовать тональный набор"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Позвонить: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Отправить текстовое сообщение: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослушанные сообщения голосовой почты"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Начать голосовой поиск"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Неизвестно"</string>
<string name="voicemail" msgid="3851469869202611441">"Голосовая почта"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Загрузка с SIM-карты…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Контакты на SIM-карте"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Чтобы использовать эту функцию, включите приложение \"Контакты\"."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Имя или номер телефона"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Введите имя или номер телефона"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Все"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропущенные"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Нет пропущенных звонков"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Все контакты"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Только часто используемые"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Все контакты"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Все контакты"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Контакт удален из избранных"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмена"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Добавить в контакты"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Здесь будут отображаться избранные элементы\nи контакты, которым вы звоните чаще всего.\nОбщайтесь с удовольствием."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Нажмите на фото, чтобы посмотреть все номера. Чтобы изменить порядок номеров, нажмите и удерживайте фото."</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Закрыть"</string>
</resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..721ab62
--- /dev/null
+++ b/res/values-si-rLK/strings.xml
@@ -0,0 +1,160 @@
+<?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="8490255569343340580">"අංකිත මුහුණ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"දුරකථනය"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"දුරකථනය"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ඇමතුම් ලොගය"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"කෙටි පණිවිඩය යවන්න"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> අමතන්න"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ඇමතීමට කලින් අංකය වෙනස් කරන්න"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"සම්බන්ධතා වලට එක් කරන්න"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ඇමතුම් ලොගයෙන් ඉවත් කරන්න"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ඇමතුම් ලොගය හිස් කරන්න"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"හඬ තැපෑල මකන්න"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"හඬ තැපෑල බෙදාගන්න"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ඇමතුම් ලොගය හිස් ය."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ඇමතුම් ලොගය හිස් කරන්නද?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ඔබගේ සියලුම ඇමතුම් වාර්තා මකා දැමෙනු ඇත."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ඇමතුම් ලොගය හිස් කරමින්…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"හඬ තැපෑල"</item>
+ <item quantity="other" msgid="5513481419205061254">"හඬ තැපැල් <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ධාවනය කරන්න"</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">"<xliff:g id="CALLER">%1$s</xliff:g> වෙතින් නව හඬ තැපැලක්"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"හඬ තැපෑල ධාවනය කළ නොහැක."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"අන්තරාචයනය වෙමින්..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"හඬ තැපැල් ලබාගනිමින්..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"හඬ තැපෑල ලබාගැනීමට නොහැකි විය."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"හඬ තැපෑල සහිත ඇමතුම් පමණි"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"එන ඇමතුම් පමණි"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"පිටතට යන ඇමතුම් පමණි"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"මඟ හැරුණු ඇමතුම් පමණි"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"හඬ තැපැල් සේවාදායකය වෙත සම්බන්ධ විය නොහැක."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"හඬ තැපැල් සේවාදායකය වෙත සම්බන්ධ විය නොහැක. නව හඬ තැපැල් රැඳී සිටී."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"ඔබගේ හඬ තැපැල් සකසා ගන්න."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"ශබ්ද ලද නොහැක."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"ස්ථාපනය කරන්න"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"හඬ තැපැල් අමතන්න"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ඉතාමත් මන්දගාමී වේගය"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"මන්දගාමී වේගය"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"සාමාන්ය වේගය"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ඉතා වේගවත්"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ඉතාමත් වේගවත්"</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">"අංකය තෝරන්න"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"අංකය තෝරන්න"</string>
+ <string name="make_primary" msgid="5829291915305113983">"මෙම තේරීම මතක තබාගන්න"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"එක"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"දෙක"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"තුන"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"හතර"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"පහ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"හය"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"හත"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"අට"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"නවය"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"තරුව"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"බිංදුව"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"හෑෂ්"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"හඬ තැපෑල"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"සෙවීම"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"අමතන්න"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"බැක්ස්පේස්"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ඇමතීමට අංකය"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ඇමතුම් ඉතිහාසය"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"තවත් විකල්ප"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ඩයල් පෑඩය"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"පිටපත්කරණය"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"පිටතට යන ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"එන ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"මඟ හැරුණු ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"හඬ තැපැල් පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"සියලු ඇමතුම් පෙන්වන්න"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"තත්පර 2 ක විරාමයක් එක් කරන්න"</string>
+ <string name="add_wait" msgid="3360818652790319634">"රැඳී සිටීම එක් කරන්න"</string>
+ <string name="call_settings" msgid="7666474782093693667">"සැකසුම්"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"නව සම්බන්ධතාවයක්"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"සියලුම සම්බන්ධතා"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ඇමතුම් විස්තර"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"අයැදුම් කළ ඇමතුම සඳහා විස්තර කියවිය නොහැකි විය."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ස්පර්ශ නාද යතුරුපෑඩය භාවිතා කරන්න"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"පවතින ඇමතුමට නැවත යන්න"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ඇමතුමක් එක් කරන්න"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"එන ඇමතුම"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"පිටතට යන ඇමතුම"</string>
+ <string name="type_missed" msgid="2720502601640509542">"මඟ හැරුණු ඇමතුම"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"හඬ තැපෑල"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"එන ඇමතුම්"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"හඬ තැපෑල ධාවනය කිරීම"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"එන ඇමතුම"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"පිටතට යන ඇමතුම"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"මඟ හැරුණු ඇමතුම"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"හඬ තැපෑල"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"සම්බන්ධතාවය එක් කරන්න"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"අසා නොමැති හඬ තැපෑල"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"හඬ සෙවීම අරඹන්න"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> අමතන්න"</string>
+ <string name="unknown" msgid="740067747858270469">"නොදනී"</string>
+ <string name="voicemail" msgid="3851469869202611441">"හඬ තැපෑල"</string>
+ <string name="private_num" msgid="6374339738119166953">"පුද්ගලික අංකය"</string>
+ <string name="payphone" msgid="4864313342828942922">"ගෙවුම් දුරකථනය"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ඩයල් කිරීමට යතුරු පුවරුව භාවිතා කරන්න"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ඇමතුමක් එක් කිරීමට අමතන්න"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"මිනිත්තු <xliff:g id="MINUTES">%s</xliff:g> තත්පර <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ඇමතුම යැව්වේ නැත"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"හඬ තැපෑල සකස් කර ගැනීමට, මෙනු > සැකසීම් වෙත යන්න."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"හඬ තැපෑල ඇමතීමට, මුලින්ම ගුවන්යානා ආකාරය වසා දමන්න."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"පූරණය වෙමින්..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM පතෙන් පූරණය කරමින්…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM පත් සම්බන්ධතා"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"මෙම අංගය භාවිතා කිරීමට පුද්ගල යෙදුම නැවත සබල කරන්න."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"නමක් හෝ දුරකථන අංකයක් ටයිප් කරන්න"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"සියලු"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"මග හැරුණේය"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"මෑත කාලින මග හැරුණ ඇමතුම් නැත."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"මෑත කාලින හඬ තැපැල් නොමැත."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"සියලු සම්බන්ධතා පෙන්වන්න"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"ප්රියතමයන් පමණක් පෙන්වන්න"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ඉතිහාසය"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"සියලුම සම්බන්ධතා"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"සියලුම සම්බන්ධතා"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"ප්රියතමයන්ගෙන් ඉවත් කරන්න"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"අස් කරන්න"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> අමතන්න"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"සම්බන්ධතා වලට එක් කරන්න"</string>
+</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
new file mode 100644
index 0000000..85f53a7
--- /dev/null
+++ b/res/values-si/strings.xml
@@ -0,0 +1,157 @@
+<?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="8490255569343340580">"අංකිත මුහුණ"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"දුරකථනය"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"දුරකථනය"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"ඇමතුම් ලොගය"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"කෙටි පණිවිඩය යවන්න"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> අමතන්න"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ඇමතීමට කලින් අංකය වෙනස් කරන්න"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"සම්බන්ධතා වලට එක් කරන්න"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ඇමතුම් ලොගයෙන් ඉවත් කරන්න"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ඇමතුම් ලොගය හිස් කරන්න"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"හඬ තැපෑල මකන්න"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"හඬ තැපෑල බෙදාගන්න"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"ඇමතුම් ලොගය හිස් ය."</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ඇමතුම් ලොගය හිස් කරන්නද?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ඔබගේ සියලුම ඇමතුම් වාර්තා මකා දැමෙනු ඇත."</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ඇමතුම් ලොගය හිස් කරමින්…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"හඬ තැපෑල"</item>
+ <item quantity="other" msgid="5513481419205061254">"හඬ තැපැල් <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ධාවනය කරන්න"</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">"<xliff:g id="CALLER">%1$s</xliff:g> වෙතින් නව හඬ තැපැලක්"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"හඬ තැපෑල ධාවනය කළ නොහැක."</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"අන්තරාචයනය වෙමින්..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"හඬ තැපැල් ලබාගනිමින්..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"හඬ තැපෑල ලබාගැනීමට නොහැකි විය."</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"හඬ තැපෑල සහිත ඇමතුම් පමණි"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"එන ඇමතුම් පමණි"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"පිටතට යන ඇමතුම් පමණි"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"මඟ හැරුණු ඇමතුම් පමණි"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"හඬ තැපැල් සේවාදායකය වෙත සම්බන්ධ විය නොහැක."</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"හඬ තැපැල් සේවාදායකය වෙත සම්බන්ධ විය නොහැක. නව හඬ තැපැල් රැඳී සිටී."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"ඔබගේ හඬ තැපැල් සකසා ගන්න."</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"ශබ්ද ලද නොහැක."</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"ස්ථාපනය කරන්න"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"හඬ තැපැල් අමතන්න"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ඉතාමත් මන්දගාමී වේගය"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"මන්දගාමී වේගය"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"සාමාන්ය වේගය"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"ඉතා වේගවත්"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ඉතාමත් වේගවත්"</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">"අංකය තෝරන්න"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"අංකය තෝරන්න"</string>
+ <string name="make_primary" msgid="5829291915305113983">"මෙම තේරීම මතක තබාගන්න"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"එක"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"දෙක"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"තුන"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"හතර"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"පහ"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"හය"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"හත"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"අට"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"නවය"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"තරුව"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"බිංදුව"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"හෑෂ්"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"හඬ තැපෑල"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"සෙවීම"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"අමතන්න"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"බැක්ස්පේස්"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"ඇමතීමට අංකය"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"ඇමතුම් ඉතිහාසය"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"තවත් විකල්ප"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ඩයල් පෑඩය"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"පිටපත්කරණය"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"පිටතට යන ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"එන ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"මඟ හැරුණු ඒවා පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"හඬ තැපැල් පමණක් පෙන්වන්න"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"සියලු ඇමතුම් පෙන්වන්න"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"තත්පර 2 ක විරාමයක් එක් කරන්න"</string>
+ <string name="add_wait" msgid="3360818652790319634">"රැඳී සිටීම එක් කරන්න"</string>
+ <string name="call_settings" msgid="7666474782093693667">"සැකසුම්"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"නව සම්බන්ධතාවයක්"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"ඇමතුම් විස්තර"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"අයැදුම් කළ ඇමතුම සඳහා විස්තර කියවිය නොහැකි විය."</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ස්පර්ශ නාද යතුරුපෑඩය භාවිතා කරන්න"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"පවතින ඇමතුමට නැවත යන්න"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ඇමතුමක් එක් කරන්න"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"එන ඇමතුම"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"පිටතට යන ඇමතුම"</string>
+ <string name="type_missed" msgid="2720502601640509542">"මඟ හැරුණු ඇමතුම"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"හඬ තැපෑල"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"එන ඇමතුම්"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"හඬ තැපෑල ධාවනය කිරීම"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"එන ඇමතුම"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"පිටතට යන ඇමතුම"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"මඟ හැරුණු ඇමතුම"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"හඬ තැපෑල"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"සම්බන්ධතාවය එක් කරන්න"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
+ <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"අසා නොමැති හඬ තැපෑල"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"හඬ සෙවීම අරඹන්න"</string>
+ <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> අමතන්න"</string>
+ <string name="unknown" msgid="740067747858270469">"නොදනී"</string>
+ <string name="voicemail" msgid="3851469869202611441">"හඬ තැපෑල"</string>
+ <string name="private_num" msgid="6374339738119166953">"පුද්ගලික අංකය"</string>
+ <string name="payphone" msgid="4864313342828942922">"ගෙවුම් දුරකථනය"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ඩයල් කිරීමට යතුරු පුවරුව භාවිතා කරන්න"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"ඇමතුමක් එක් කිරීමට අමතන්න"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"මිනිත්තු <xliff:g id="MINUTES">%s</xliff:g> තත්පර <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ඇමතුම යැව්වේ නැත"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"හඬ තැපෑල සකස් කර ගැනීමට, මෙනු > සැකසීම් වෙත යන්න."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"හඬ තැපෑල ඇමතීමට, මුලින්ම ගුවන්යානා ආකාරය වසා දමන්න."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"පූරණය වෙමින්..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM පතෙන් පූරණය කරමින්…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM පත් සම්බන්ධතා"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"මෙම අංගය භාවිතා කිරීමට පුද්ගල යෙදුම නැවත සබල කරන්න."</string>
+ <string name="dialer_hint_find_contact" msgid="9190419749917566623">"නමක් හෝ දුරකථනයක් ටයිප් කරන්න"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"සියලු"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"මග හැරුණේය"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"මෑත කාලින මග හැරුණ ඇමතුම් නැත."</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"මෑත කාලින හඬ තැපැල් නොමැත."</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"සියලු සම්බන්ධතා පෙන්වන්න"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"ප්රියතමයන් පමණක් පෙන්වන්න"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"ඉතිහාසය"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"සියලුම සම්බන්ධතා"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"සියලුම සම්බන්ධතා"</string>
+ <string name="favorite_hidden" msgid="4837366417440391323">"ප්රියතමයන් වෙතින් සඟවන ලදි"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"අස් කරන්න"</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index a474e4c..9a22313 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -30,7 +30,7 @@
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Odstrániť hlasovú správu"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Zdieľať hlasovú správu"</string>
<string name="recentCalls_empty" msgid="247053222448663107">"Záznam hovorov je prázdny."</string>
- <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Vymazať záznam hov.?"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Vymazať hovory?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"Všetky záznamy o hovoroch budú odstránené."</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"Vymazávanie denníka hovorov..."</string>
<plurals name="notification_voicemail_title">
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Ukladanie do vyrovnávacej pamäte…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Načítavanie hlasovej správy…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nepodarilo sa načítať hlasovú správu."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nové"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Staršie"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Iba odchádzajúce hovory"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"číslo, ktoré chcete vytočiť"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"História hovorov"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Ďalšie možnosti"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"číselná klávesnica"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopírovať"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Zobraziť len odchádzajúce"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Zobraziť len prichádzajúce"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Pridať čakanie"</string>
<string name="call_settings" msgid="7666474782093693667">"Nastavenia"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nový kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Všetky kontakty"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Podrobnosti hovoru"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Podrobnosti požadovaného hovoru nie je možné načítať."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Použiť dotykovú tónovú klávesnicu"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Volať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Poslať textovú správu kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nevypočutá hlasová správa"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Spustenie hlasového vyhľadávania"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Volať <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Neznáme"</string>
<string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Prebieha načítavanie z karty SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakty na karte SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Ak chcete použiť túto funkciu, znova povoľte aplikáciu Ľudia."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Zadajte meno / tel. č."</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Zadajte meno alebo tel. číslo"</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="recentMissed_empty" msgid="5427113551557296665">"Žiadne nedávne zmeškané hovory."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Zobraziť všetky kontakty"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Zobraziť iba obľúbené"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"História"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Všetky kontakty"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Všetky kontakty"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Odstránené z obľúbených"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Späť"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Volať na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pridať do kontaktov"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Počet nových zmeškaných hovorov: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Obľúbení ľudia a kontakty,\nktorým často voláte, sa zobrazia tu.\nZačnite teda volať."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Klepnutím na obrázok zobrazíte všetky čísla a pridržaním ich zoradíte"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Zrušiť"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 29c4a5b..717ac9d 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Medpomnjenje…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Prejemanje sporočil odzivnika…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Sporočil odzi. ni bilo mogoče prejeti."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Novo"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Starejši"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odhodni klici"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"številka, ki bo poklicana"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Zgodovina klicev"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Več možnosti"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"številčnica"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiraj"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Pokaži samo odhodne"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Pokaži samo dohodne"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Dodaj premor"</string>
<string name="call_settings" msgid="7666474782093693667">"Nastavitve"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nov stik"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Vsi stiki"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Podrobnosti klica"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Podrobnosti zahtevanega klica ni bilo mogoče prebrati."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Uporabi številčnico za tonsko klicanje"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Klicanje osebe <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Pošlji SMS osebi <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Neodprta glasovna pošta"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Začni glasovno iskanje"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Neznano"</string>
<string name="voicemail" msgid="3851469869202611441">"Glasovna pošta"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Nalaganje s kartice SIM ..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Stiki na kartici SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Aplikaciji Osebe znova omogočite uporabo te funkcije."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Vnesite ime telefona"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Vnesite ime ali tel. številko"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Vsa"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Neodgovorjena"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Ni nedavnih neodgovorjenih klicev."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Pokaži vse stike"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Pokaži samo priljubljene"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Zgodovina"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Vsi stiki"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Vsi stiki"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Odstranjeno iz priljubljenih"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Razveljavi"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj med stike"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Priljubljeni stiki in stiki,\nki jih pogosto kličete, bodo prikazani tukaj.\nKar začnite klicati."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Dotaknite se slike, da prikažete vse številke, ali jo pritisnite in pridržite, da spremenite vrstni red"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Opusti"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index d80399e..4362484 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -40,12 +40,10 @@
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Пусти"</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">"Нова говорна порука од <xliff:g id="CALLER">%1$s</xliff:g>"</string>
- <string name="voicemail_playback_error" msgid="1811242131549854624">"Није било могуће пустити говорну пошту."</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Није могуће пустити говорну пошту."</string>
<string name="voicemail_buffering" msgid="738287747618697097">"Баферовање..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Преузимање говорне поште..."</string>
- <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Није било могуће преузети говорну пошту."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Ново"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Старије"</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Није могуће преузети говорну пошту."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Само позиви са говорном поштом"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Само долазни позиви"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Само одлазни позиви"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"број за бирање"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Историја позива"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Још опција"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"нумеричка тастатура"</string>
<string name="menu_copy" msgid="6108677035381940698">"Копирај"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Прикажи само одлазне"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Прикажи само долазне"</string>
@@ -94,8 +93,9 @@
<string name="add_wait" msgid="3360818652790319634">"Додај чекање"</string>
<string name="call_settings" msgid="7666474782093693667">"Подешавања"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Нови контакт"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Сви контакти"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Детаљи позива"</string>
- <string name="toast_call_detail_error" msgid="7200975244804730096">"Није било могуће прочитати детаље о захтеваном позиву."</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"Није могуће прочитати детаље о захтеваном позиву."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Употребите бројчаник за тонско бирање"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Врати се на позив који је у току"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Додај позив"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Позови корисника <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Слање текстуалне поруке контакту <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непреслушана говорна пошта"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Покретање гласовне претраге"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Непознато"</string>
<string name="voicemail" msgid="3851469869202611441">"Говорна пошта"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Учитавање са SIM картице је у току…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Контакти на SIM картици"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Поново омогућите апликацију Људи да бисте користили ову функцију."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Унесите име или број телефона"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Унесите име или број телефона"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Све"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Нема недавно пропуштених позива."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Прикажи све контакте"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омиљене"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Историја"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Сви контакти"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Сви контакти"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Уклоњено је из омиљених"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Опозови"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Додај у контакте"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Овде ће се приказати омиљени и\nчесто позивани контакти.\nПа почните са позивањем."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Додирните слику да бисте видели све бројеве или притисните и задржите да бисте променили распоред"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Одбаци"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index f7359e8..757e2b5 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Buffrar…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Hämtar röstmedelande…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Det gick inte att hämta röstmeddelandet."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Nya"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Äldre"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Endast utgående samtal"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"nummer att ringa"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Samtalshistorik"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Fler alternativ"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"knappsats"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopiera"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Visa endast utgående samtal"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Visa endast inkommande samtal"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Lägg till väntetid"</string>
<string name="call_settings" msgid="7666474782093693667">"Inställningar"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Ny kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Alla kontakter"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Samtalsinfo"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Det gick inte att läsa information om samtalet."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Använda tonvalstelefon"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Skicka SMS till <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ej hört röstmeddelande"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Starta röstsökning"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Okänd"</string>
<string name="voicemail" msgid="3851469869202611441">"Röstbrevlåda"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Läser in från SIM-kort…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakter från SIM-kort"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Aktivera appen Personer på nytt om du vill använda den här funktionen."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Skriv namn/telefonnummer"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ange ett namn eller telefonnummer"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alla"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missade"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Inga nya missade samtal."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Visa alla kontakter"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Visa endast favoriter"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Alla kontakter"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alla kontakter"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Borttagen från favoriter"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ångra"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lägg till i Kontakter"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Dina favoriter och kontakterna du\nofta ringer till visas här.\nSå det är bara att börja ringa."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tryck på bilden om du vill visa alla nummer eller tryck länge om du vill flytta den"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Avvisa"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 72bc1c0..bbe0b73 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -27,25 +27,23 @@
<string name="recentCalls_addToContact" msgid="1429899535546487008">"Ongeza kwa anwani"</string>
<string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Toa kwa orodha ya simu zilizopigwa"</string>
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"Futa rekodi ya simu"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Futa barua ya sauti"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Shiriki barua ya sauti"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Futa ujumbe wa sauti"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Shiriki ujumbe wa sauti"</string>
<string name="recentCalls_empty" msgid="247053222448663107">"Orodha ya kupiga simu haina chochote."</string>
- <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Futa rekodi ya simu?"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Ungependa kufuta rekodi ya simu?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"Kumbukumbu zako zote za simu zitafutwa."</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"Inafuta rekodi ya simu ..."</string>
<plurals name="notification_voicemail_title">
- <item quantity="one" msgid="1746619685488504230">"Barua ya sauti"</item>
+ <item quantity="one" msgid="1746619685488504230">"Ujumbe wa sauti"</item>
<item quantity="other" msgid="5513481419205061254">"Barua za sauti <xliff:g id="COUNT">%1$d</xliff:g>"</item>
</plurals>
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Cheza"</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">"Barua mpya ya sauti kutoka <xliff:g id="CALLER">%1$s</xliff:g>"</string>
- <string name="voicemail_playback_error" msgid="1811242131549854624">"Haikuweza kucheza barua ya sauti."</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"Imeshindwa kucheza ujumbe wa sauti."</string>
<string name="voicemail_buffering" msgid="738287747618697097">"Inaakibisha..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Inaleta barua ya sauti…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Haikuweza kuleta barua ya sauti."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Mpya"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Nzee zaidi"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Simu zinazotoka tu"</string>
@@ -77,13 +75,14 @@
<string name="description_image_button_star" msgid="3365919907520767866">"nyota"</string>
<string name="description_image_button_zero" msgid="4133108949401820710">"sufuri"</string>
<string name="description_image_button_pound" msgid="3039765597595889230">"Pauni"</string>
- <string name="description_voicemail_button" msgid="3402506823655455591">"Barua ya sauti"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"Ujumbe wa sauti"</string>
<string name="description_search_button" msgid="3660807558587384889">"tafuta"</string>
<string name="description_dial_button" msgid="1274091017188142646">"piga simu"</string>
<string name="description_delete_button" msgid="6263102114033407382">"futa"</string>
<string name="description_digits_edittext" msgid="8760207516497016437">"nambari ya kupiga"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia ya Simu"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Chaguo zaidi"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"kitufe cha kupiga"</string>
<string name="menu_copy" msgid="6108677035381940698">"Nakili"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Onyesha zinazotoka pekee"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Onyesha zinazoingia pekee"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Ongeza kusubiri"</string>
<string name="call_settings" msgid="7666474782093693667">"Mipangilio"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Anwani mpya"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Anwani zote"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Maelezo ya simu"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Haikuweza kusoma maelezo ya simu iliyoombwa."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Tumia kibao cha kuchapa cha sauti na kugusa"</string>
@@ -104,7 +104,7 @@
<string name="type_missed" msgid="2720502601640509542">"Simu isiyojibiwa"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Barua za sauti"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Simu zinazoingia"</string>
- <string name="description_call_log_play_button" msgid="651182125650429846">"Cheza barua ya sauti"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Sikiliza ujumbe wa sauti"</string>
<string name="description_call_log_incoming_call" msgid="4485427487637250143">"Simu inayoingia"</string>
<string name="description_call_log_outgoing_call" msgid="604831756853471658">"Simu inayotoka"</string>
<string name="description_call_log_missed_call" msgid="2242805209983708825">"Simu isiyojibiwa"</string>
@@ -114,12 +114,11 @@
<string name="description_call" msgid="3443678121983852666">"Piga <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Tuma ujumbe wa maandishi kwa <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Barua sauti ambayo haijasikizwa"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Anza kutafuta kwa kutamka"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Haijulikani"</string>
- <string name="voicemail" msgid="3851469869202611441">"Barua ya sauti"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Ujumbe wa sauti"</string>
<string name="private_num" msgid="6374339738119166953">" Nambari isiyojulikana"</string>
<string name="payphone" msgid="4864313342828942922">"Simu ya kulipia"</string>
<string name="dialerKeyboardHintText" msgid="5401660096579787344">"Tumia kibodi kubonyeza"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Inapakia kutoka SIM kadi..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Anwani za SIM kadi"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Washa tena Programu ya watu ili itumie kipengele hiki."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Chapa jina au simu"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Andika jina au nambari ya simu"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Zote"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Hazikupokewa"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Ambazo hazikupokewa"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Hakuna simu za hivi karibuni ambazo hazikupokewa."</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"Hakuna ujumbe wa sauti wa hivi karibuni."</string>
<string name="show_all_contacts" msgid="1732256558071778056">"Onyesha anwani zote"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Onyesha zinazopendwa tu"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Anwani zote"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Anwani zote"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Imeondolowa kwenye vipendwa"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Tendua"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ongeza kwenye anwani"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Vipendwa na nambari \n unazopiga mara nyingi zitaonekana hapa.\nKwa hivyo, anza kupiga."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Gonga picha ili uone nambari zote au bonyeza na ushikilie ili upange upya"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Ondoa"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index ca99f26..a423ab0 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"กำลังเก็บบัฟเฟอร์…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"กำลังดึงข้อความเสียง…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"ไม่สามารถดึงข้อความเสียง"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"ใหม่"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"เก่ากว่า"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"เฉพาะสายที่มีข้อความเสียง"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"เฉพาะสายเรียกเข้า"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"เฉพาะสายโทรออก"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"หมายเลขที่จะโทร"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ประวัติการโทร"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ตัวเลือกเพิ่มเติม"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"แป้นหมายเลข"</string>
<string name="menu_copy" msgid="6108677035381940698">"คัดลอก"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"แสดงสายที่โทรออกเท่านั้น"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"แสดงสายโทรเข้าเท่านั้น"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"เพิ่มการรอ"</string>
<string name="call_settings" msgid="7666474782093693667">"การตั้งค่า"</string>
<string name="menu_newContact" msgid="1209922412763274638">"สร้างรายชื่อใหม่"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"ที่อยู่ติดต่อทั้งหมด"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"รายละเอียดการโทร"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"ไม่สามารถอ่านรายละเอียดสำหรับการโทรที่ขอ"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ใช้ปุ่มกดสัญญาณเสียง"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"ส่งข้อความไปที่ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ข้อความเสียงที่ยังไม่ได้ฟัง"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"เริ่มต้นการค้นหาด้วยเสียง"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"ไม่ทราบ"</string>
<string name="voicemail" msgid="3851469869202611441">"ข้อความเสียง"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"กำลังโหลดจากซิมการ์ด…"</string>
<string name="simContacts_title" msgid="27341688347689769">"รายชื่อบนซิมการ์ด"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"เปิดใช้งานแอปพลิเคชัน People อีกครั้งเพื่อใช้คุณลักษณะนี้"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"พิมพ์ชื่อ/หมายเลขโทรศัพท์"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"พิมพ์ชื่อหรือหมายเลขโทรศัพท์"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ทั้งหมด"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ไม่ได้รับ"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"ไม่มีสายที่ไม่ได้รับล่าสุด"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"แสดงรายชื่อในสมุดโทรศัพท์ทั้งหมด"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"แสดงเฉพาะรายชื่อที่ชื่นชอบ"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"ประวัติ"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"ที่อยู่ติดต่อทั้งหมด"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ที่อยู่ติดต่อทั้งหมด"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"นำออกจากรายการโปรด"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"เลิกทำ"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"เพิ่มในสมุดติดต่อ"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"รายการโปรดและรายชื่อติดต่อที่คุณ\nโทรหาบ่อยจะแสดงที่นี่\n เริ่มโทรได้"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือกดค้างเพื่อจัดลำดับใหม่"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"ปิด"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 67471bc..15f26ee 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Nagba-buffer…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Kinukuha ang voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Hindi makuha ang voicemail."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Bago"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Mas Luma"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Mga papalabas na tawag lang"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"numerong ida-dial"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Kasaysayan ng Tawag"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Higit pang mga pagpipilian"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopyahin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ipakita lang ang papalabas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Ipakita lang ang paparating"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Magdagdag ng paghihintay"</string>
<string name="call_settings" msgid="7666474782093693667">"Mga Setting"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Bagong contact"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Lahat ng contact"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Mga detalye ng tawag"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Hindi mabasa ang mga detalye para sa hiniling na tawag."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gumamit ng touch tone na keypad"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Ipadala ang text message kay <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Hindi pa naririnig na voicemail"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Simulan ang paghahanap gamit ang boses"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Tumawag sa <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Di-kilala"</string>
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Naglo-load mula sa SIM card…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Mga contact sa SIM card"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Paganahing muli ang application ng Mga Tao upang magamit ang tampok na ito."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Mag-type pangalan o phone"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"I-type pangalan o phone number"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Lahat"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Di nasagot"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Walang mga kamakailang hindi nasagot na tawag."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Ipakita ang lahat ng contact"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mga paborito lang ang ipakita"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Kasaysayan"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Lahat ng contact"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Lahat ng contact"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Inalis sa mga paborito"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"I-undo"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Tumawag sa <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Idagdag sa mga contact"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Lalabas dito ang mga paborito at contact na\nmadalas mong tinatawagan.\nKaya, simulan ang pagtawag."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"I-tap ang larawan upang makita ang lahat ng numero at pindutin nang matagal upang ayusing muli"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"I-dismiss"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index e4faefe..2e863c6 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Arabelleğe alınıyor..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Sesli mesaj getiriliyor..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Sesli mesaj getirilemedi."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Yeni"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Daha eski"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Yalnızca giden çağrılar"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"çevrilecek numara"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Geçmişi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Diğer seçenekler"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"tuş takımı"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopyala"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Yalnızca gidenleri göster"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Yalnızca gelenleri göster"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Bekleme ekle"</string>
<string name="call_settings" msgid="7666474782093693667">"Ayarlar"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Yeni kişi"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tüm kişiler"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Çağrı ayrıntıları"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"İstenen çağrı için ayrıntılar okunamadı."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Telefon tuş takımını kullan"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Sesli arama yap: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Şu kişiye kısa mesaj gönder: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Dinlenilmemiş sesli mesaj"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Sesli arama başlat"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Çağrı yap: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Bilinmiyor"</string>
<string name="voicemail" msgid="3851469869202611441">"Sesli Mesaj"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM karttan yükleniyor..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM kart kişileri"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Bu özelliği kullanmak için Kişiler uygulamasını yeniden etkinleştirin."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Bir ad veya telefon yazın"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ad veya telefon numarası yazın"</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="recentMissed_empty" msgid="5427113551557296665">"Yakın zamanda cevapsız çağrı yok."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Tüm kişileri göster"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Yalnızca favori kişileri göster"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Geçmiş"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tüm kişiler"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tüm kişiler"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Favorilerden kaldırıldı"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri al"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefon et: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Kişilere ekle"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Favoriler ve sık telefon ettiğiniz\nkişiler burada görüntülenir.\nTelefon etmeye başlayın."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Tüm numaraları görmek için resme hafifçe vurun veya yeniden sıralamak için basılı tutun"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Kapat"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index ab12178..3252a49 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Буферизація..."</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Отримання голосової пошти..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Не вдалось отримати голосову пошту."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Нові"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Старіші"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Лише виклики з голосовою поштою"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Лише вхідні виклики"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Лише вихідні виклики"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"номер для набору"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Історія викликів"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Інші варіанти"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"цифрова клавіатура"</string>
<string name="menu_copy" msgid="6108677035381940698">"Копіювати"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Показувати лише вихідні"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Показувати лише вхідні"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Дод. очікув."</string>
<string name="call_settings" msgid="7666474782093693667">"Налаштування"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Новий контакт"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Усі контакти"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Деталі виклику"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Неможл. прочитати деталі потрібного виклику."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Викор. кнопкову клавіат."</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Дзвонити: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Надіслати текстове повідомлення: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослухана голосова пошта"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"–"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Розпочати голосовий пошук"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Телефонувати <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Невідомий"</string>
<string name="voicemail" msgid="3851469869202611441">"Голос. пошта"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Завантаж. із SIM-карти…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Контакти SIM-карти"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Повторно ввімкніть програму Люди, щоб скористатися цією функцією."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Введіть ім’я або телефон"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Введіть ім’я чи номер телефону"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Усі"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропущені"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Немає нещодавніх пропущених викликів."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Показати всі контакти"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Показати лише вибрані"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Історія"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Усі контакти"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Усі контакти"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Вилучено з вибраного"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Відмінити"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Набрати <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Додати до контактів"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Тут будуть відображатися вибрані контакти й контакти\n, яким ви часто телефонуєте.\nСпілкуйтеся із задоволенням."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Закрити"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index c891a07..91a1e2a 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Đang lưu tạm vào bộ đệm…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"Đang tìm nạp thư thoại…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Không thể tìm nạp thư thoại."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Mới"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Cũ hơn"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Chỉ cuộc gọi đi"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"số để quay"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Nhật ký cuộc gọi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Tùy chọn khác"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"bàn phím số"</string>
<string name="menu_copy" msgid="6108677035381940698">"Sao chép"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Chỉ hiển thị cuộc gọi đi"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Chỉ hiển thị cuộc gọi đến"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Thêm chờ"</string>
<string name="call_settings" msgid="7666474782093693667">"Cài đặt"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Liên hệ mới"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Tất cả liên hệ"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Chi tiết cuộc gọi"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Không thể đọc chi tiết về cuộc gọi yêu cầu."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Sử dụng bộ tạo xung từ bàn phím"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Gửi tin nhắn văn bản tới <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Thư thoại chưa nghe"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Bắt đầu tìm kiếm bằng giọng nói"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Không xác định"</string>
<string name="voicemail" msgid="3851469869202611441">"Thư thoại"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Đang tải từ thẻ SIM…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Danh bạ trên thẻ SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Bật lại ứng dụng Liên hệ để sử dụng tính năng này."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Nhập tên hoặc điện thoại"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Nhập tên hoặc số điện 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="recentMissed_empty" msgid="5427113551557296665">"Không có cuộc gọi nhỡ gần đây nào."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Hiển thị tất cả liên hệ"</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="4612824396355272023">"Lịch sử"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Tất cả liên hệ"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tất cả liên hệ"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Đã xóa khỏi mục yêu thích"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Hoàn tác"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Thêm vào danh bạ"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Người liên hệ yêu thích và người liên hệ bạn\nthường gọi sẽ hiển thị tại đây.\nVì vậy, hãy bắt đầu gọi."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Chạm vào hình ảnh để xem tất cả các số hoặc nhấn và giữ để sắp xếp lại"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Loại bỏ"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index dc63b0d..bbe4eb8 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -24,12 +24,12 @@
<string name="menu_sendTextMessage" msgid="6937343460284499306">"发送短信"</string>
<string name="recentCalls_callNumber" msgid="1756372533999226126">"呼叫<xliff:g id="NAME">%s</xliff:g>"</string>
<string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"呼叫之前编辑号码"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"添加到“联系人”"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"添加到通讯录"</string>
<string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"从通话记录中删除"</string>
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"清除通话记录"</string>
<string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"删除语音邮件"</string>
<string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"分享语音邮件"</string>
- <string name="recentCalls_empty" msgid="247053222448663107">"通话记录为空。"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"没有通话记录。"</string>
<string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"要清除通话记录吗?"</string>
<string name="clearCallLogConfirmation" msgid="5043563133171583152">"系统将删除您的所有通话记录。"</string>
<string name="clearCallLogProgress_title" msgid="8365943000154295771">"正在清除通话记录..."</string>
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"正在缓冲…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"正在抓取语音邮件…"</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"无法抓取语音邮件。"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"新记录"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"旧记录"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"只显示语音信箱留言"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"只显示来电"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"只显示外拨电话"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"要拨打的号码"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通话记录"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"更多选项"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"拨号键盘"</string>
<string name="menu_copy" msgid="6108677035381940698">"复制"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"仅显示外拨电话"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"仅显示来电"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"仅显示未接来电"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"只显示语音邮件"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"显示所有通话"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"暂停时间延长 2 秒"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"暂停时间延长2秒"</string>
<string name="add_wait" msgid="3360818652790319634">"延长等待时间"</string>
<string name="call_settings" msgid="7666474782093693667">"设置"</string>
<string name="menu_newContact" msgid="1209922412763274638">"新建联系人"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"所有联系人"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"通话详情"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"无法读取所请求呼叫的详细信息。"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"使用按键式键盘"</string>
@@ -114,13 +114,12 @@
<string name="description_call" msgid="3443678121983852666">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"向<xliff:g id="NAME">%1$s</xliff:g>发送短信"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未收听的语音邮件"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"开始语音搜索"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"拨打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"未知"</string>
<string name="voicemail" msgid="3851469869202611441">"语音信箱"</string>
- <string name="private_num" msgid="6374339738119166953">"私人号码"</string>
+ <string name="private_num" msgid="6374339738119166953">"私密号码"</string>
<string name="payphone" msgid="4864313342828942922">"公用电话"</string>
<string name="dialerKeyboardHintText" msgid="5401660096579787344">"使用键盘拨号"</string>
<string name="dialerDialpadHintText" msgid="5824490365898349041">"拨号以添加通话"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"正从 SIM 卡中加载..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM 卡联系人"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"必须重新启用联系人应用才能使用此功能。"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"请输入姓名或电话号码"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"输入姓名或手机号"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"未接电话"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"最近没有未接来电。"</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"显示所有联系人"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"仅显示常用联系人"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"通话记录"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"所有联系人"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有联系人"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"已从“常用联系人”中删除"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"撤消"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"拨打<xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"添加到通讯录"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"您收藏的联系人和经常通话\n的联系人都会显示在这里。\n现在就开始与联系人通话吧。"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"点按图片可查看所有号码,按住图片可重新排序"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"关闭"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..6f85d5e
--- /dev/null
+++ b/res/values-zh-rHK/strings.xml
@@ -0,0 +1,164 @@
+<?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="8490255569343340580">"撥號器"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"電話"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"電話"</string>
+ <string name="recentCallsIconLabel" msgid="1419116422359067949">"通話記錄"</string>
+ <string name="menu_sendTextMessage" msgid="6937343460284499306">"傳送短訊"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"打電話給<xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"在撥打前編輯號碼"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"新增至通訊錄"</string>
+ <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"從通話記錄中移除"</string>
+ <string name="recentCalls_deleteAll" msgid="6352364392762163704">"清除通話記錄"</string>
+ <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"刪除留言"</string>
+ <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"分享留言信箱"</string>
+ <string name="recentCalls_empty" msgid="247053222448663107">"無通話記錄。"</string>
+ <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"要清除通話記錄嗎?"</string>
+ <string name="clearCallLogConfirmation" msgid="5043563133171583152">"即將刪除您所有的通話記錄。"</string>
+ <string name="clearCallLogProgress_title" msgid="8365943000154295771">"正在清除通話記錄…"</string>
+ <plurals name="notification_voicemail_title">
+ <item quantity="one" msgid="1746619685488504230">"話音留言"</item>
+ <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> 個語音留言"</item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"播放"</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">"來自<xliff:g id="CALLER">%1$s</xliff:g>的新語音留言"</string>
+ <string name="voicemail_playback_error" msgid="1811242131549854624">"無法播放留言。"</string>
+ <string name="voicemail_buffering" msgid="738287747618697097">"正在緩衝..."</string>
+ <string name="voicemail_fetching_content" msgid="877911315738258780">"正在擷取留言..."</string>
+ <string name="voicemail_fetching_timout" msgid="6691792377574905201">"無法擷取留言。"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"只顯示有留言的來電"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"只顯示來電"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"只顯示撥出電話"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"只顯示未接來電"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"無法連接留言信箱伺服器。"</string>
+ <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"無法連接留言信箱伺服器,新的留言仍有待聽取。"</string>
+ <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"設定您的留言信箱。"</string>
+ <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"無法使用語音。"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"設定"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"致電語音信箱號碼"</string>
+ <string name="voicemail_speed_slowest" msgid="1733460666177707312">"最慢速"</string>
+ <string name="voicemail_speed_slower" msgid="1508601287347216244">"慢速"</string>
+ <string name="voicemail_speed_normal" msgid="9033988544627228892">"正常速度"</string>
+ <string name="voicemail_speed_faster" msgid="2019965121475935488">"快速"</string>
+ <string name="voicemail_speed_fastest" msgid="5758712343491183292">"最快速"</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">"選擇號碼"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"選擇號碼"</string>
+ <string name="make_primary" msgid="5829291915305113983">"記住這個選擇"</string>
+ <string name="description_image_button_one" msgid="1740638037139856139">"一"</string>
+ <string name="description_image_button_two" msgid="5882638439003731308">"二"</string>
+ <string name="description_image_button_three" msgid="8709731759376015180">"三"</string>
+ <string name="description_image_button_four" msgid="3530239685642246130">"四"</string>
+ <string name="description_image_button_five" msgid="1182465427501188413">"五"</string>
+ <string name="description_image_button_six" msgid="2093656269261415475">"六"</string>
+ <string name="description_image_button_seven" msgid="2450357020447676481">"七"</string>
+ <string name="description_image_button_eight" msgid="6969435115163287801">"八"</string>
+ <string name="description_image_button_nine" msgid="7857248695662558323">"九"</string>
+ <string name="description_image_button_star" msgid="3365919907520767866">"星號"</string>
+ <string name="description_image_button_zero" msgid="4133108949401820710">"零"</string>
+ <string name="description_image_button_pound" msgid="3039765597595889230">"井號鍵"</string>
+ <string name="description_voicemail_button" msgid="3402506823655455591">"留言"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"搜尋"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"撥號"</string>
+ <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"致電號碼"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"通話記錄"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"撥號盤"</string>
+ <string name="menu_copy" msgid="6108677035381940698">"複製"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"只顯示撥出電話"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"只顯示來電"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"只顯示未接來電"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"僅顯示語音留言"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"顯示所有通話"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"新增 2 秒暫停功能"</string>
+ <string name="add_wait" msgid="3360818652790319634">"新增插播功能"</string>
+ <string name="call_settings" msgid="7666474782093693667">"設定"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"新增聯絡人"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"所有聯絡人"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"通話詳細資料"</string>
+ <string name="toast_call_detail_error" msgid="7200975244804730096">"無法讀取所需通話的詳細資訊。"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"使用觸控音頻按鍵"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"返回進行中的通話"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"新增通話"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"來電"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"撥出電話"</string>
+ <string name="type_missed" msgid="2720502601640509542">"未接來電"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"留言信箱"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"來電"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"播放語音留言"</string>
+ <string name="description_call_log_incoming_call" msgid="4485427487637250143">"來電"</string>
+ <string name="description_call_log_outgoing_call" msgid="604831756853471658">"撥出電話"</string>
+ <string name="description_call_log_missed_call" msgid="2242805209983708825">"未接來電"</string>
+ <string name="description_call_log_voicemail" msgid="4600798771975158948">"語音信箱"</string>
+ <string name="description_add_contact" msgid="3103414772502485851">"新增聯絡人"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"致電<xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_send_text_message" msgid="7803126439934046891">"發短訊給<xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未聽取的語音留言"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"開始語音搜尋"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"未知"</string>
+ <string name="voicemail" msgid="3851469869202611441">"留言"</string>
+ <string name="private_num" msgid="6374339738119166953">"私人號碼"</string>
+ <string name="payphone" msgid="4864313342828942922">"公共電話"</string>
+ <string name="dialerKeyboardHintText" msgid="5401660096579787344">"使用鍵盤撥號"</string>
+ <string name="dialerDialpadHintText" msgid="5824490365898349041">"撥號即可新增通話"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"未傳送通話"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"如要設定留言信箱,請移至 [選單] > [設定]。"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"如要致電留言信箱,請先關閉飛行模式。"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"正在載入..."</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"正在從 SIM 卡載入..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"SIM 卡聯絡人"</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"請重新啟用「通訊錄」應用程式,才能使用這項功能。"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"輸入姓名或電話號碼"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
+ <string name="recentMissed_empty" msgid="5427113551557296665">"最近沒有未接來電。"</string>
+ <string name="recentVoicemails_empty" msgid="5163114119598014048">"最近沒有留言。"</string>
+ <string name="show_all_contacts" msgid="1732256558071778056">"顯示所有聯絡人"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的最愛"</string>
+ <string name="call_log_activity_title" msgid="4612824396355272023">"記錄"</string>
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"所有聯絡人"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有聯絡人"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"已從「我的最愛」中移除"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"加入通訊錄"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"您的最愛聯絡人和經常通話的聯絡人\n會在這裡顯示,\n致電他們吧!"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"輕按相片可查看所有號碼,按住則可重新排序"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"關閉"</string>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 935ff58..6878e55 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"緩衝處理中…"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"正在擷取語音留言..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"無法擷取語音留言。"</string>
- <string name="call_log_new_header" msgid="846546437517724715">"最新"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"較舊"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"僅顯示語音信箱留言"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"僅顯示來電"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"僅顯示已撥電話"</string>
@@ -84,16 +82,18 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"撥號號碼"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通話紀錄"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"撥號鍵盤"</string>
<string name="menu_copy" msgid="6108677035381940698">"複製"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"僅顯示撥出電話"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"僅顯示來電"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"僅顯示未接來電"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"僅顯示語音留言"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"顯示所有通話"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"新增 2 秒暫停功能"</string>
- <string name="add_wait" msgid="3360818652790319634">"新增插播功能"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"暫停時間延長 2 秒"</string>
+ <string name="add_wait" msgid="3360818652790319634">"延長等待時間"</string>
<string name="call_settings" msgid="7666474782093693667">"設定"</string>
<string name="menu_newContact" msgid="1209922412763274638">"新增聯絡人"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"所有聯絡人"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"通話詳細資料"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"無法解讀通話要求詳細資訊。"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"使用觸控音按鍵"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"傳送簡訊給<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未聽取的語音留言"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"開始進行語音搜尋"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"不明"</string>
<string name="voicemail" msgid="3851469869202611441">"語音留言"</string>
@@ -134,20 +133,32 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"從 SIM 卡讀取中…"</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM 卡聯絡人"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"您必須重新啟用「使用者」應用程式,才能使用這項功能。"</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"輸入姓名或電話"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"輸入姓名或電話號碼"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"最近沒有未接來電。"</string>
<string name="recentVoicemails_empty" msgid="5163114119598014048">"最近沒有語音留言。"</string>
<string name="show_all_contacts" msgid="1732256558071778056">"顯示所有聯絡人"</string>
- <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的最愛"</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的收藏"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"通話紀錄"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"所有聯絡人"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有聯絡人"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"已從最愛的聯絡人移除"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"新增為聯絡人"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"您最愛的聯絡人和經常通話的聯絡人\n都會顯示在這裡,\n可以直接打給他們!"</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"輕按圖片即可查看所有號碼,按住圖片則可重新排序"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"關閉"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index b994076..e33c0c2 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -44,8 +44,6 @@
<string name="voicemail_buffering" msgid="738287747618697097">"Ukugcina kumthamo"</string>
<string name="voicemail_fetching_content" msgid="877911315738258780">"ilanda i-voicemail..."</string>
<string name="voicemail_fetching_timout" msgid="6691792377574905201">"Yehlulekile ukulanda i-voicemail."</string>
- <string name="call_log_new_header" msgid="846546437517724715">"Okusha"</string>
- <string name="call_log_old_header" msgid="6262205894314263629">"Okudadlana"</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>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Amakholi aphumayo kuphela"</string>
@@ -84,6 +82,7 @@
<string name="description_digits_edittext" msgid="8760207516497016437">"inombolo okumele uyidayele"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Umlando wekholi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Izinketho eziningi"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"okokudayila"</string>
<string name="menu_copy" msgid="6108677035381940698">"Kopisha"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Bonisa eziphumayo kuphela"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Bonisa okungenayo kuphela"</string>
@@ -94,6 +93,7 @@
<string name="add_wait" msgid="3360818652790319634">"Yengeza ukulinda"</string>
<string name="call_settings" msgid="7666474782093693667">"Izilungiselelo"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Othintana naye omusha"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Bonke oxhumana nabo"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Imininingwane yokushayela"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"Ayikwazanga ukufunda imininingwane yokushayela okuceliwe."</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Sebenzisa ikhiphedi yethoni yokuthinta"</string>
@@ -114,9 +114,8 @@
<string name="description_call" msgid="3443678121983852666">"Fonela <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_send_text_message" msgid="7803126439934046891">"Hambisa umyalezo ku <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"I-imeyli yezwi engazwakalanga"</string>
- <!-- no translation found for description_start_voice_search (520539488194946012) -->
- <skip />
- <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Qalisa ukusesha ngezwi"</string>
+ <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
<string name="menu_callNumber" msgid="997146291983360266">"Shayela <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Akwaziwa"</string>
<string name="voicemail" msgid="3851469869202611441">"Ivoyisimeyili"</string>
@@ -134,7 +133,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ilayisha kusuka ekhadini le-SIM..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Othintana nabo bekhadi le-SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"Phinda unike amandla uhlelo lokusebenza lwabantu ukuze basebenzise lesi sici."</string>
- <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Thayipha igama noma ifoni"</string>
+ <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Thayipha igama noma inombolo yefoni"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Konke"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Phuthelwe"</string>
<string name="recentMissed_empty" msgid="5427113551557296665">"Awekho amakholi wakamuva aphuthelwe."</string>
@@ -142,12 +141,24 @@
<string name="show_all_contacts" msgid="1732256558071778056">"Bonakalisa bonke oxhumana nabo"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Bonisa izintandokazi kuphela"</string>
<string name="call_log_activity_title" msgid="4612824396355272023">"Umlando"</string>
- <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
- <skip />
- <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
- <skip />
- <!-- no translation found for favorite_hidden (4837366417440391323) -->
- <skip />
- <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
- <skip />
+ <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
+ <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
+ <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
+ <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
+ <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
+ <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
+ <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
+ <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
+ <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
+ <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+ <string name="show_all_contacts_title" msgid="8395378484578221791">"Bonke oxhumana nabo"</string>
+ <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Bonke oxhumana nabo"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Kukhishiwe kusuka kuzintandokazi"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Hlehlisa"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Shayela ku-<xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Engeza koxhumana nabo"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Izintandokazi noxhumana nabo\nobashayela ngokuvamile bazovela lapha.\nNgakho-ke, qala ukushaya."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Thepha isithombe ukuze ubone zonke izinombolo noma cindezela uphinde ubambe ukuze uhlele kabusha"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Cashisa"</string>
</resources>
diff --git a/res/values/animation_constants.xml b/res/values/animation_constants.xml
new file mode 100644
index 0000000..4e4bc36
--- /dev/null
+++ b/res/values/animation_constants.xml
@@ -0,0 +1,30 @@
+<?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>
+ <integer name="fade_duration">300</integer>
+
+ <!-- Swipe constants -->
+ <integer name="swipe_escape_velocity">100</integer>
+ <integer name="escape_animation_duration">200</integer>
+ <integer name="max_escape_animation_duration">400</integer>
+ <integer name="max_dismiss_velocity">2000</integer>
+ <integer name="snap_animation_duration">350</integer>
+ <integer name="swipe_scroll_slop">2</integer>
+ <dimen name="min_swipe">0dip</dimen>
+ <dimen name="min_vert">10dip</dimen>
+ <dimen name="min_lock">20dip</dimen>
+</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 94ad947..a8ddf2b 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -17,7 +17,7 @@
<resources>
<!-- Secondary text color in the Phone app -->
- <color name="dialtacts_primary_text_color">#111111</color>
+ <color name="dialtacts_primary_text_color">#000000</color>
<color name="dialtacts_secondary_text_color">#888888</color>
<color name="dialpad_text_color">#ffffff</color>
@@ -41,10 +41,10 @@
<color name="background_dialer_light">#cecece</color>
<!-- Background color of dialer list items (contacts, call log entries) -->
- <color name="background_dialer_list_items">#f5f5f5</color>
+ <color name="background_dialer_list_items">#eeeeee</color>
<!-- Background color of new dialpad -->
- <color name="background_dialpad">#ee020709</color>
+ <color name="background_dialpad">#f2020709</color>
<!-- Primary color of dialpad text, including the call button -->
<color name="dialpad_primary_text_color">#33b5e5</color>
@@ -52,7 +52,7 @@
<color name="dialpad_secondary_text_color">#aaaaaa</color>
<!-- Background color of action bars -->
- <color name="actionbar_background_color">#e6e6e6</color>
+ <color name="actionbar_background_color">#ffffff</color>
<!-- Color of the 1dp divider that separates favorites -->
<color name="favorite_contacts_separator_color">#d0d0d0</color>
@@ -67,4 +67,7 @@
<!-- Undo dialogue color -->
<color name="undo_dialogue_text_color">#4d4d4d</color>
+
+ <!-- Text color for no favorites message -->
+ <color name="nofavorite_text_color">#777777</color>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e03e919..1743952 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -29,6 +29,9 @@
<!-- Match call_button_height to Phone's dimens/in_call_end_button_height -->
<dimen name="call_button_height">74dp</dimen>
+ <!-- Search View -->
+ <dimen name="search_text_size">14sp</dimen>
+
<!-- Call Log -->
<dimen name="call_log_call_action_size">32dip</dimen>
<dimen name="call_log_call_action_width">48dip</dimen>
@@ -44,17 +47,18 @@
<!-- Layout weight values for dialpad screen. These layouts will be used in one
LinearLayout (dialpad_fragment.xml), configuring dialpad screen's vertical
ratio. -->
- <integer name="dialpad_layout_weight_digits">20</integer>
- <integer name="dialpad_layout_weight_digits_new">15</integer>
+ <integer name="dialpad_layout_weight_digits">15</integer>
<integer name="dialpad_layout_weight_dialpad">65</integer>
- <integer name="dialpad_layout_weight_additional_buttons">15</integer>
<!-- Text dimensions for dialpad keys -->
<dimen name="dialpad_key_numbers_size">40dp</dimen>
<dimen name="dialpad_key_letters_size">11dp</dimen>
+ <dimen name="dialpad_key_plus_size">15dp</dimen>
<dimen name="dialpad_key_special_characters_size">25dp</dimen>
+ <dimen name="dialpad_key_letters_width">41dp</dimen>
- <dimen name="fake_action_bar_height">48dp</dimen>
+
+ <dimen name="fake_action_bar_height">60dp</dimen>
<!-- Min with of fake menu buttons, which should be same as ActionBar's one -->
<dimen name="fake_menu_button_min_width">56dp</dimen>
@@ -65,5 +69,10 @@
<dimen name="favorites_row_bottom_padding">8dp</dimen>
<dimen name="favorites_row_start_padding">8dp</dimen>
<dimen name="favorites_row_end_padding">8dp</dimen>
+ <dimen name="favorites_row_undo_text_side_padding">32dp</dimen>
<dimen name="recent_call_log_item_padding">8dp</dimen>
+
+ <!-- Padding for the tooltip -->
+ <dimen name="dismiss_button_padding_start">20dip</dimen>
+ <dimen name="dismiss_button_padding_end">28dip</dimen>
</resources>
diff --git a/res/values/ids.xml b/res/values/ids.xml
new file mode 100644
index 0000000..2b09504
--- /dev/null
+++ b/res/values/ids.xml
@@ -0,0 +1,22 @@
+<?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>
+ <item type="id"
+ name="is_swipeable_tag" />
+ <item type="id"
+ name="contact_entry_index_tag" />
+</resources>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6ea6db6..55cdea4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -306,6 +306,10 @@
[CHAR LIMIT=NONE] -->
<string name="action_menu_overflow_description" msgid="2295659037509008453">More options</string>
+ <!-- Content description for the button that displays the dialpad
+ [CHAR LIMIT=NONE] -->
+ <string name="action_menu_dialpad_button">dial pad</string>
+
<!-- Menu item to copy something [CHAR_LIMIT=10] -->
<string name="menu_copy">Copy</string>
@@ -334,6 +338,9 @@
<!-- Menu item to create a new contact -->
<string name="menu_newContact">New contact</string>
+ <!-- Menu item to display all contacts -->
+ <string name="menu_allContacts">All contacts</string>
+
<!-- Title bar for call detail screen -->
<string name="callDetailTitle">Call details</string>
@@ -450,7 +457,7 @@
<string name="description_start_voice_search">Start voice search</string>
<!-- The string used to represent an unknown location for a phone number in the call log [CHAR LIMIT=3] -->
- <string name="call_log_empty_gecode">-</string>
+ <string name="call_log_empty_gecode">\u0020</string>
<!-- Menu item used to call a contact, containing the number of the contact to call -->
<string name="menu_callNumber">Call <xliff:g id="number">%s</xliff:g></string>
@@ -513,8 +520,8 @@
<string name="add_contact_not_available">Re-enable the People application to use this feature.</string>
<!-- Hint displayed in dialer search box when there is no query that is currently typed.
- [CHAR LIMIT=25] -->
- <string name="dialer_hint_find_contact">Type a name or phone</string>
+ [CHAR LIMIT=30] -->
+ <string name="dialer_hint_find_contact">Type a name or phone number</string>
<!-- Title for the call log tab containing the list of all voicemails and calls
[CHAR LIMIT=15] -->
@@ -602,7 +609,30 @@
<!-- Title of show all contacts button -->
<string name="show_all_contacts_button_text">All contacts</string>
<!-- Text displayed when user swipes out a favorite contact -->
- <string name="favorite_hidden">Hidden from favorites</string>
+ <string name="favorite_hidden">Removed from favorites</string>
<!-- Text displayed for the undo button to undo removing a favorite contact -->
<string name="favorite_hidden_undo">Undo</string>
+
+ <!-- Shortcut item used to call a number directly from search -->
+ <string name="search_shortcut_call_number">Call
+ <xliff:g id="number">%s</xliff:g>
+ </string>
+
+ <!-- Shortcut item used to add a number directly from search -->
+ <string name="search_shortcut_add_to_contacts">Add to contacts</string>
+
+ <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
+ <string name="num_missed_calls"><xliff:g id="number">%s</xliff:g> new missed calls</string>
+
+ <!-- Shows when there are no favorites. -->
+ <string name="no_favorites">Favorites & contacts you\ncall often will show here.\nSo, start calling.</string>
+
+ <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
+ card can be tapped to bring up a list of all numbers, or long pressed to start reordering
+ [CHAR LIMIT=NONE]
+ -->
+ <string name="contact_tooltip">Tap image to see all numbers or press and hold to reorder</string>
+
+ <!-- Content description for dismiss button on badge. [CHAR LIMIT=NONE] -->
+ <string name="description_dismiss">Dismiss</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index aab1c53..89678fc 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -19,8 +19,8 @@
parent="android:Theme.Holo.Light">
<item name="android:textColorPrimary">@color/dialtacts_primary_text_color</item>
<item name="android:textColorSecondary">@color/dialtacts_secondary_text_color</item>
- <item name="android:windowActionBarOverlay">true</item>
- <item name="android:actionBarStyle">@style/DialtactsActionBarStyleNew</item>
+ <item name="android:windowActionBarOverlay">false</item>
+ <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
<item name="android:actionBarTabStyle">@style/DialtactsActionBarTabStyle</item>
<item name="android:windowContentOverlay">@null</item>
<!-- Searchbox Style -->
@@ -42,10 +42,10 @@
<item name="list_item_profile_photo_size">70dip</item>
<item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
<item name="list_item_header_text_indent">8dip</item>
- <item name="list_item_header_text_color">@color/dialtacts_secondary_text_color</item>
- <item name="list_item_header_text_size">20sp</item>
- <item name="list_item_header_height">48dip</item>
- <item name="list_item_header_underline_height">2dip</item>
+ <item name="list_item_header_text_color">@color/people_app_theme_color</item>
+ <item name="list_item_header_text_size">14sp</item>
+ <item name="list_item_header_height">30dip</item>
+ <item name="list_item_header_underline_height">1dip</item>
<item name="list_item_header_underline_color">@color/favorite_contacts_separator_color</item>
<item name="list_item_data_width_weight">5</item>
<item name="list_item_label_width_weight">3</item>
@@ -54,9 +54,9 @@
<item name="contact_browser_background">@android:color/transparent</item>
<item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
<!-- CallLog -->
- <item name="call_log_primary_text_color">#111111</item>
+ <item name="call_log_primary_text_color">#000000</item>
<item name="call_log_primary_background_color">#000000</item>
- <item name="call_log_secondary_text_color">#555555</item>
+ <item name="call_log_secondary_text_color">@color/dialtacts_secondary_text_color</item>
<item name="call_log_secondary_background_color">#333333</item>
<item name="call_log_header_color">#33b5e5</item>
<!-- VoicemailStatus -->
@@ -72,6 +72,10 @@
<item name="android:textColorPrimary">#FFFFFF</item>
</style>
+ <style name="DialtactsThemeWithActionBarOverlay" parent="DialtactsTheme">
+ <item name="android:windowActionBarOverlay">true</item>
+ </style>
+
<style name="CallDetailActivityTheme" parent="android:Theme.Holo.Light">
<item name="android:windowBackground">@color/background_dialer_list_items</item>
<item name="android:gravity">top</item>
@@ -117,7 +121,7 @@
<item name="android:background">#66000000</item>
</style>
- <style name="DialtactsActionBarStyleNew" parent="android:Widget.Holo.ActionBar">
+ <style name="DialtactsActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:background">@drawable/call_history_actionbar_background</item>
<item name="android:backgroundStacked">@color/actionbar_background_color</item>
<!-- Empty icon -->
@@ -125,12 +129,6 @@
<item name="android:displayOptions"></item>
</style>
- <style name="DialtactsActionBarStyle" parent="android:Widget.Holo.ActionBar">
- <item name="android:backgroundSplit">@null</item>
- <item name="android:backgroundStacked">@drawable/ab_stacked_opaque_dark_holo</item>
- <item name="android:displayOptions"></item>
- </style>
-
<style name="DialtactsActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
<item name="android:background">@drawable/action_bar_tab</item>
</style>
@@ -147,4 +145,9 @@
<item name="android:background">@null</item>
<item name="android:textColorHint">@color/searchbox_text_color</item>
</style>
+
+ <style name="DismissButtonStyle">
+ <item name="android:paddingLeft">@dimen/dismiss_button_padding_start</item>
+ <item name="android:paddingRight">@dimen/dismiss_button_padding_end</item>
+ </style>
</resources>
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 05c1e7f..a24940d 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -16,13 +16,14 @@
package com.android.dialer;
-import android.app.ActionBar;
import android.app.Activity;
+import android.app.LoaderManager.LoaderCallbacks;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
+import android.content.Loader;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
@@ -31,9 +32,10 @@
import android.os.Bundle;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
-import android.provider.Contacts.Intents.Insert;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.DisplayNameSources;
+import android.provider.ContactsContract.Intents.Insert;
import android.provider.VoicemailContract.Voicemails;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
@@ -55,12 +57,16 @@
import com.android.contacts.common.CallUtil;
import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.model.Contact;
+import com.android.contacts.common.model.ContactLoader;
+import com.android.contacts.common.util.UriUtils;
import com.android.dialer.BackScrollManager.ScrollableHeader;
import com.android.dialer.calllog.CallDetailHistoryAdapter;
import com.android.dialer.calllog.CallTypeHelper;
import com.android.dialer.calllog.ContactInfo;
import com.android.dialer.calllog.ContactInfoHelper;
import com.android.dialer.calllog.PhoneNumberHelper;
+import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
import com.android.dialer.util.AsyncTaskExecutor;
import com.android.dialer.util.AsyncTaskExecutors;
import com.android.dialer.voicemail.VoicemailPlaybackFragment;
@@ -79,6 +85,9 @@
public class CallDetailActivity extends Activity implements ProximitySensorAware {
private static final String TAG = "CallDetail";
+ private static final int LOADER_ID = 0;
+ private static final String BUNDLE_CONTACT_URI_EXTRA = "contact_uri_extra";
+
private static final char LEFT_TO_RIGHT_EMBEDDING = '\u202A';
private static final char POP_DIRECTIONAL_FORMATTING = '\u202C';
@@ -251,6 +260,35 @@
}
};
+ private final LoaderCallbacks<Contact> mLoaderCallbacks = new LoaderCallbacks<Contact>() {
+ @Override
+ public void onLoaderReset(Loader<Contact> loader) {
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Contact> loader, Contact data) {
+ final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+ intent.setType(Contacts.CONTENT_ITEM_TYPE);
+ if (data.getDisplayNameSource() >= DisplayNameSources.ORGANIZATION) {
+ intent.putExtra(Insert.NAME, data.getDisplayName());
+ }
+ intent.putExtra(Insert.DATA, data.getContentValues());
+ bindContactPhotoAction(intent, R.drawable.ic_add_contact_holo_dark,
+ getString(R.string.description_add_contact));
+ }
+
+ @Override
+ public Loader<Contact> onCreateLoader(int id, Bundle args) {
+ final Uri contactUri = args.getParcelable(BUNDLE_CONTACT_URI_EXTRA);
+ if (contactUri == null) {
+ Log.wtf(TAG, "No contact lookup uri provided.");
+ }
+ return new ContactLoader(CallDetailActivity.this, contactUri,
+ false /* loadGroupMetaData */, false /* loadInvitableAccountTypes */,
+ false /* postViewNotification */, true /* computeFormattedPhoneNumber */);
+ }
+ };
+
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -264,7 +302,7 @@
mCallTypeHelper = new CallTypeHelper(getResources());
mPhoneNumberHelper = new PhoneNumberHelper(mResources);
mPhoneCallDetailsHelper = new PhoneCallDetailsHelper(mResources, mCallTypeHelper,
- mPhoneNumberHelper);
+ new PhoneNumberUtilsWrapper());
mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
mAsyncQueryHandler = new CallDetailActivityQueryHandler(this);
mHeaderTextView = (TextView) findViewById(R.id.header_text);
@@ -279,7 +317,7 @@
mContactPhotoManager = ContactPhotoManager.getInstance(this);
mProximitySensorManager = new ProximitySensorManager(this, mProximitySensorListener);
mContactInfoHelper = new ContactInfoHelper(this, GeoUtil.getCurrentCountryIso(this));
- configureActionBar();
+ getActionBar().setDisplayHomeAsUpEnabled(true);
optionallyHandleVoicemail();
if (getIntent().getBooleanExtra(EXTRA_FROM_NOTIFICATION, false)) {
closeSystemDialogs();
@@ -433,9 +471,10 @@
// Cache the details about the phone number.
final boolean canPlaceCallsTo =
- PhoneNumberHelper.canPlaceCallsTo(mNumber, numberPresentation);
- final boolean isVoicemailNumber = mPhoneNumberHelper.isVoicemailNumber(mNumber);
- final boolean isSipNumber = mPhoneNumberHelper.isSipNumber(mNumber);
+ PhoneNumberUtilsWrapper.canPlaceCallsTo(mNumber, numberPresentation);
+ final PhoneNumberUtilsWrapper phoneUtils = new PhoneNumberUtilsWrapper();
+ final boolean isVoicemailNumber = phoneUtils.isVoicemailNumber(mNumber);
+ final boolean isSipNumber = phoneUtils.isSipNumber(mNumber);
// Let user view contact details if they exist, otherwise add option to create new
// contact from this number.
@@ -450,7 +489,9 @@
nameOrNumber = firstDetails.number;
}
- if (contactUri != null) {
+ boolean skipBind = false;
+
+ if (contactUri != null && !UriUtils.isEncodedContactUri(contactUri)) {
mainActionIntent = new Intent(Intent.ACTION_VIEW, contactUri);
// This will launch People's detail contact screen, so we probably want to
// treat it as a separate People task.
@@ -459,6 +500,14 @@
mainActionIcon = R.drawable.ic_contacts_holo_dark;
mainActionDescription =
getString(R.string.description_view_contact, nameOrNumber);
+ } else if (UriUtils.isEncodedContactUri(contactUri)) {
+ final Bundle bundle = new Bundle(1);
+ bundle.putParcelable(BUNDLE_CONTACT_URI_EXTRA, contactUri);
+ getLoaderManager().initLoader(LOADER_ID, bundle, mLoaderCallbacks);
+ mainActionIntent = null;
+ mainActionIcon = R.drawable.ic_add_contact_holo_dark;
+ mainActionDescription = getString(R.string.description_add_contact);
+ skipBind = true;
} else if (isVoicemailNumber) {
mainActionIntent = null;
mainActionIcon = 0;
@@ -483,31 +532,16 @@
mainActionIcon = R.drawable.ic_add_contact_holo_dark;
mainActionDescription = getString(R.string.description_add_contact);
} else {
- // If we cannot call the number, when we probably cannot add it as a contact either.
- // This is usually the case of private, unknown, or payphone numbers.
+ // If we cannot call the number, when we probably cannot add it as a contact
+ // either. This is usually the case of private, unknown, or payphone numbers.
mainActionIntent = null;
mainActionIcon = 0;
mainActionDescription = null;
}
- if (mainActionIntent == null) {
- mMainActionView.setVisibility(View.INVISIBLE);
- mMainActionPushLayerView.setVisibility(View.GONE);
- mHeaderTextView.setVisibility(View.INVISIBLE);
- mHeaderOverlayView.setVisibility(View.INVISIBLE);
- } else {
- mMainActionView.setVisibility(View.VISIBLE);
- mMainActionView.setImageResource(mainActionIcon);
- mMainActionPushLayerView.setVisibility(View.VISIBLE);
- mMainActionPushLayerView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(mainActionIntent);
- }
- });
- mMainActionPushLayerView.setContentDescription(mainActionDescription);
- mHeaderTextView.setVisibility(View.VISIBLE);
- mHeaderOverlayView.setVisibility(View.VISIBLE);
+ if (!skipBind) {
+ bindContactPhotoAction(mainActionIntent, mainActionIcon,
+ mainActionDescription);
}
// This action allows to call the number that places the call.
@@ -534,7 +568,7 @@
// The secondary action allows to send an SMS to the number that placed the
// call.
- if (mPhoneNumberHelper.canSendSmsTo(mNumber, numberPresentation)) {
+ if (phoneUtils.canSendSmsTo(mNumber, numberPresentation)) {
entry.setSecondaryAction(
R.drawable.ic_text_holo_light,
new Intent(Intent.ACTION_SENDTO,
@@ -567,7 +601,7 @@
private View mControls = findViewById(R.id.controls);
private View mPhoto = findViewById(R.id.contact_background_sizer);
private View mHeader = findViewById(R.id.photo_text_bar);
- private View mSeparator = findViewById(R.id.blue_separator);
+ private View mSeparator = findViewById(R.id.separator);
@Override
public void setOffset(int offset) {
@@ -595,6 +629,29 @@
mAsyncTaskExecutor.submit(Tasks.UPDATE_PHONE_CALL_DETAILS, new UpdateContactDetailsTask());
}
+ private void bindContactPhotoAction(final Intent actionIntent, int actionIcon,
+ String actionDescription) {
+ if (actionIntent == null) {
+ mMainActionView.setVisibility(View.INVISIBLE);
+ mMainActionPushLayerView.setVisibility(View.GONE);
+ mHeaderTextView.setVisibility(View.INVISIBLE);
+ mHeaderOverlayView.setVisibility(View.INVISIBLE);
+ } else {
+ mMainActionView.setVisibility(View.VISIBLE);
+ mMainActionView.setImageResource(actionIcon);
+ mMainActionPushLayerView.setVisibility(View.VISIBLE);
+ mMainActionPushLayerView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(actionIntent);
+ }
+ });
+ mMainActionPushLayerView.setContentDescription(actionDescription);
+ mHeaderTextView.setVisibility(View.VISIBLE);
+ mHeaderOverlayView.setVisibility(View.VISIBLE);
+ }
+ }
+
/** Return the phone call details for a given call log URI. */
private PhoneCallDetails getPhoneCallDetailsForUri(Uri callUri) {
ContentResolver resolver = getContentResolver();
@@ -628,8 +685,8 @@
final Uri lookupUri;
// If this is not a regular number, there is no point in looking it up in the contacts.
ContactInfo info =
- PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation)
- && !mPhoneNumberHelper.isVoicemailNumber(number)
+ PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)
+ && !new PhoneNumberUtilsWrapper().isVoicemailNumber(number)
? mContactInfoHelper.lookupNumber(number, countryIso)
: null;
if (info == null) {
@@ -793,20 +850,6 @@
return super.onPrepareOptionsMenu(menu);
}
- @Override
- public boolean onMenuItemSelected(int featureId, MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home: {
- onHomeSelected();
- return true;
- }
-
- // All the options menu items are handled by onMenu... methods.
- default:
- throw new IllegalArgumentException();
- }
- }
-
public void onMenuRemoveFromCallLog(MenuItem menuItem) {
final StringBuilder callIds = new StringBuilder();
for (Uri callUri : getCallLogEntryUris()) {
@@ -851,13 +894,6 @@
});
}
- private void configureActionBar() {
- ActionBar actionBar = getActionBar();
- if (actionBar != null) {
- actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME);
- }
- }
-
/** Invoked when the user presses the home button in the action bar. */
private void onHomeSelected() {
Intent intent = new Intent(Intent.ACTION_VIEW, Calls.CONTENT_URI);
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java
new file mode 100644
index 0000000..39a1ac7
--- /dev/null
+++ b/src/com/android/dialer/DialerApplication.java
@@ -0,0 +1,16 @@
+// Copyright 2013 Google Inc. All Rights Reserved.
+
+package com.android.dialer;
+
+import android.app.Application;
+
+import com.android.contacts.common.extensions.ExtensionsFactory;
+
+public class DialerApplication extends Application {
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ ExtensionsFactory.init(getApplicationContext());
+ }
+}
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 8381c8d..04934c7 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -20,61 +20,59 @@
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorListenerAdapter;
import android.app.Activity;
-import android.app.backup.BackupManager;
import android.app.Fragment;
import android.app.FragmentManager;
+import android.app.FragmentManager.BackStackEntry;
import android.app.FragmentTransaction;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.CallLog.Calls;
-import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents;
import android.provider.ContactsContract.Intents.UI;
-import android.provider.Settings;
import android.speech.RecognizerIntent;
-import android.support.v4.app.NavUtils;
import android.telephony.TelephonyManager;
import android.text.Editable;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.TextWatcher;
+import android.text.style.ImageSpan;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnFocusChangeListener;
-import android.view.ViewConfiguration;
import android.view.inputmethod.InputMethodManager;
import android.widget.AbsListView.OnScrollListener;
import android.widget.EditText;
-import android.widget.ImageView;
import android.widget.PopupMenu;
-import android.widget.SearchView;
-import android.widget.SearchView.OnCloseListener;
-import android.widget.SearchView.OnQueryTextListener;
import android.widget.Toast;
import com.android.contacts.common.CallUtil;
import com.android.contacts.common.activity.TransactionSafeActivity;
import com.android.contacts.common.dialog.ClearFrequentsDialog;
import com.android.contacts.common.interactions.ImportExportDialogFragment;
-import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
import com.android.dialer.calllog.CallLogActivity;
+import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.dialpad.DialpadFragment;
import com.android.dialer.dialpad.SmartDialNameMatcher;
+import com.android.dialer.dialpad.SmartDialPrefix;
import com.android.dialer.interactions.PhoneNumberInteraction;
import com.android.dialer.list.AllContactsActivity;
-import com.android.dialer.list.PhoneFavoriteFragment;
import com.android.dialer.list.OnListFragmentScrolledListener;
+import com.android.dialer.list.PhoneFavoriteFragment;
+import com.android.dialer.list.RegularSearchFragment;
+import com.android.dialer.list.SearchFragment;
import com.android.dialer.list.SmartDialSearchFragment;
+import com.android.dialerbind.DatabaseHelperManager;
import com.android.internal.telephony.ITelephony;
import java.util.ArrayList;
@@ -85,7 +83,6 @@
public class DialtactsActivity extends TransactionSafeActivity implements View.OnClickListener,
DialpadFragment.OnDialpadQueryChangedListener, PopupMenu.OnMenuItemClickListener,
OnListFragmentScrolledListener,
- PhoneFavoriteFragment.OnPhoneFavoriteFragmentStartedListener,
DialpadFragment.OnDialpadFragmentStartedListener,
PhoneFavoriteFragment.OnShowAllContactsListener {
private static final String TAG = "DialtactsActivity";
@@ -102,11 +99,15 @@
private static final String CALL_ORIGIN_DIALTACTS =
"com.android.dialer.DialtactsActivity";
+ private static final String KEY_IN_REGULAR_SEARCH_UI = "in_regular_search_ui";
+ private static final String KEY_IN_DIALPAD_SEARCH_UI = "in_dialpad_search_ui";
+ private static final String KEY_SEARCH_QUERY = "search_query";
+ private static final String KEY_FIRST_LAUNCH = "first_launch";
+
private static final String TAG_DIALPAD_FRAGMENT = "dialpad";
private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
private static final String TAG_FAVORITES_FRAGMENT = "favorites";
- private static final String TAG_SHOW_ALL_CONTACTS_FRAGMENT = "show_all_contacts";
/**
* Just for backward compatibility. Should behave as same as {@link Intent#ACTION_DIAL}.
@@ -132,7 +133,7 @@
/**
* Fragment for searching phone numbers using the alphanumeric keyboard.
*/
- private SearchFragment mRegularSearchFragment;
+ private RegularSearchFragment mRegularSearchFragment;
/**
* Fragment for searching phone numbers using the dialpad.
@@ -142,21 +143,49 @@
private View mMenuButton;
private View mCallHistoryButton;
private View mDialpadButton;
+ private PopupMenu mOverflowMenu;
// Padding view used to shift the fragments up when the dialpad is shown.
private View mBottomPaddingView;
+ private View mFragmentsFrame;
+ private View mActionBar;
+
+ private boolean mInDialpadSearch;
+ private boolean mInRegularSearch;
+ private boolean mClearSearchOnPause;
/**
- * True when this Activity is in its search UI (with a {@link SearchView} and
- * {@link PhoneNumberPickerFragment}).
+ * True if the dialpad is only temporarily showing due to being in call
*/
- private boolean mInSearchUi;
+ private boolean mInCallDialpadUp;
+
+ /**
+ * True when this activity has been launched for the first time.
+ */
private boolean mFirstLaunch;
private View mSearchViewContainer;
private View mSearchViewCloseButton;
private View mVoiceSearchButton;
private EditText mSearchView;
+ private String mSearchQuery;
+
+ private DialerDatabaseHelper mDialerDatabaseHelper;
+
+ private class OverflowPopupMenu extends PopupMenu {
+ public OverflowPopupMenu(Context context, View anchor) {
+ super(context, anchor);
+ }
+
+ @Override
+ public void show() {
+ final Menu menu = getMenu();
+ final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
+ clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
+ super.show();
+ }
+ }
+
/**
* Listener used when one of phone numbers in search UI is selected. This will initiate a
* phone call using the phone number.
@@ -169,12 +198,14 @@
// CallLog screen (search UI will be automatically exited).
PhoneNumberInteraction.startInteractionForPhoneCall(
DialtactsActivity.this, dataUri, getCallOrigin());
+ mClearSearchOnPause = true;
}
@Override
public void onCallNumberDirectly(String phoneNumber) {
Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin());
startActivity(intent);
+ mClearSearchOnPause = true;
}
@Override
@@ -198,30 +229,43 @@
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
- // TODO krelease: populate the search fragments with the correct
- // search query at the correct point in time of the fragment lifecycle.
- // The current behavior is to simply return to the favorites screen
- // (when docked), or returning to the Dialer after it has been
- // swapped out of memory.
- if (mDialpadFragment == null) return;
- final boolean smartDialSearch = isDialpadShowing();
final String newText = s.toString();
+ if (newText.equals(mSearchQuery)) {
+ // If the query hasn't changed (perhaps due to activity being destroyed
+ // and restored, or user launching the same DIAL intent twice), then there is
+ // no need to do anything here.
+ return;
+ }
+ mSearchQuery = newText;
+ if (DEBUG) {
+ Log.d(TAG, "onTextChange for mSearchView called with new query: " + s);
+ }
+ final boolean dialpadSearch = isDialpadShowing();
+
// Show search result with non-empty text. Show a bare list otherwise.
- if (TextUtils.isEmpty(newText) && mInSearchUi) {
+ if (TextUtils.isEmpty(newText) && getInSearchUi()) {
exitSearchUi();
mSearchViewCloseButton.setVisibility(View.GONE);
+ mVoiceSearchButton.setVisibility(View.VISIBLE);
return;
- } else if (!TextUtils.isEmpty(newText) && !mInSearchUi) {
- enterSearchUi(smartDialSearch);
- }
+ } else if (!TextUtils.isEmpty(newText)) {
+ final boolean sameSearchMode = (dialpadSearch && mInDialpadSearch) ||
+ (!dialpadSearch && mInRegularSearch);
+ if (!sameSearchMode) {
+ // call enterSearchUi only if we are switching search modes, or entering
+ // search ui for the first time
+ enterSearchUi(dialpadSearch, newText);
+ }
- if (smartDialSearch) {
- mSmartDialSearchFragment.setQueryString(newText, false);
- } else {
- mRegularSearchFragment.setQueryString(newText, false);
+ if (dialpadSearch && mSmartDialSearchFragment != null) {
+ mSmartDialSearchFragment.setQueryString(newText, false);
+ } else if (mRegularSearchFragment != null) {
+ mRegularSearchFragment.setQueryString(newText, false);
+ }
+ mSearchViewCloseButton.setVisibility(View.VISIBLE);
+ mVoiceSearchButton.setVisibility(View.GONE);
+ return;
}
- mSearchViewCloseButton.setVisibility(View.VISIBLE);
- return;
}
@Override
@@ -236,7 +280,6 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
mFirstLaunch = true;
final Intent intent = getIntent();
@@ -246,66 +289,89 @@
getActionBar().hide();
+ // Add the favorites fragment, and the dialpad fragment, but only if savedInstanceState
+ // is null. Otherwise the fragment manager takes care of recreating these fragments.
if (savedInstanceState == null) {
- mPhoneFavoriteFragment = new PhoneFavoriteFragment();
- mPhoneFavoriteFragment.setListener(mPhoneFavoriteListener);
+ final PhoneFavoriteFragment phoneFavoriteFragment = new PhoneFavoriteFragment();
- mRegularSearchFragment = new SearchFragment();
- mSmartDialSearchFragment = new SmartDialSearchFragment();
- mDialpadFragment = new DialpadFragment();
-
- // TODO krelease: load fragments on demand instead of creating all of them at run time
final FragmentTransaction ft = getFragmentManager().beginTransaction();
- ft.add(R.id.dialtacts_frame, mPhoneFavoriteFragment, TAG_FAVORITES_FRAGMENT);
- ft.add(R.id.dialtacts_frame, mRegularSearchFragment, TAG_REGULAR_SEARCH_FRAGMENT);
- ft.add(R.id.dialtacts_frame, mSmartDialSearchFragment, TAG_SMARTDIAL_SEARCH_FRAGMENT);
- ft.add(R.id.dialtacts_container, mDialpadFragment, TAG_DIALPAD_FRAGMENT);
+ ft.add(R.id.dialtacts_frame, phoneFavoriteFragment, TAG_FAVORITES_FRAGMENT);
+ ft.add(R.id.dialtacts_container, new DialpadFragment(), TAG_DIALPAD_FRAGMENT);
ft.commit();
+ } else {
+ mSearchQuery = savedInstanceState.getString(KEY_SEARCH_QUERY);
+ mInRegularSearch = savedInstanceState.getBoolean(KEY_IN_REGULAR_SEARCH_UI);
+ mInDialpadSearch = savedInstanceState.getBoolean(KEY_IN_DIALPAD_SEARCH_UI);
+ mFirstLaunch = savedInstanceState.getBoolean(KEY_FIRST_LAUNCH);
}
mBottomPaddingView = findViewById(R.id.dialtacts_bottom_padding);
+ mFragmentsFrame = findViewById(R.id.dialtacts_frame);
+ mActionBar = findViewById(R.id.fake_action_bar);
prepareSearchView();
if (UI.FILTER_CONTACTS_ACTION.equals(intent.getAction())
&& savedInstanceState == null) {
setupFilterText(intent);
}
+
+ setupFakeActionBarItems();
+
+ mDialerDatabaseHelper = DatabaseHelperManager.getDatabaseHelper(this);
+ SmartDialPrefix.initializeNanpSettings(this);
}
@Override
protected void onResume() {
super.onResume();
- final FragmentManager fm = getFragmentManager();
- mPhoneFavoriteFragment = (PhoneFavoriteFragment) fm.findFragmentByTag(
- TAG_FAVORITES_FRAGMENT);
- mDialpadFragment = (DialpadFragment) fm.findFragmentByTag(TAG_DIALPAD_FRAGMENT);
-
- mRegularSearchFragment = (SearchFragment) fm.findFragmentByTag(
- TAG_REGULAR_SEARCH_FRAGMENT);
- mRegularSearchFragment.setOnPhoneNumberPickerActionListener(
- mPhoneNumberPickerActionListener);
-
- mSmartDialSearchFragment = (SmartDialSearchFragment) fm.findFragmentByTag(
- TAG_SMARTDIAL_SEARCH_FRAGMENT);
- mSmartDialSearchFragment.setOnPhoneNumberPickerActionListener(
- mPhoneNumberPickerActionListener);
-
if (mFirstLaunch) {
displayFragment(getIntent());
+ } else if (!phoneIsInUse() && mInCallDialpadUp) {
+ hideDialpadFragment(false, true);
+ mInCallDialpadUp = false;
}
+
mFirstLaunch = false;
+ mDialerDatabaseHelper.startSmartDialUpdateThread();
+ }
+
+ @Override
+ protected void onPause() {
+ if (mClearSearchOnPause) {
+ hideDialpadAndSearchUi();
+ mClearSearchOnPause = false;
+ }
+ super.onPause();
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putString(KEY_SEARCH_QUERY, mSearchQuery);
+ outState.putBoolean(KEY_IN_REGULAR_SEARCH_UI, mInRegularSearch);
+ outState.putBoolean(KEY_IN_DIALPAD_SEARCH_UI, mInDialpadSearch);
+ outState.putBoolean(KEY_FIRST_LAUNCH, mFirstLaunch);
}
@Override
public void onAttachFragment(Fragment fragment) {
- if (fragment instanceof DialpadFragment || fragment instanceof SearchFragment
- || fragment instanceof SmartDialSearchFragment) {
+ if (fragment instanceof DialpadFragment) {
+ mDialpadFragment = (DialpadFragment) fragment;
final FragmentTransaction transaction = getFragmentManager().beginTransaction();
- transaction.hide(fragment);
+ transaction.hide(mDialpadFragment);
transaction.commit();
+ } else if (fragment instanceof SmartDialSearchFragment) {
+ mSmartDialSearchFragment = (SmartDialSearchFragment) fragment;
+ mSmartDialSearchFragment.setOnPhoneNumberPickerActionListener(
+ mPhoneNumberPickerActionListener);
+ } else if (fragment instanceof SearchFragment) {
+ mRegularSearchFragment = (RegularSearchFragment) fragment;
+ mRegularSearchFragment.setOnPhoneNumberPickerActionListener(
+ mPhoneNumberPickerActionListener);
+ } else if (fragment instanceof PhoneFavoriteFragment) {
+ mPhoneFavoriteFragment = (PhoneFavoriteFragment) fragment;
+ mPhoneFavoriteFragment.setListener(mPhoneFavoriteListener);
}
- // TODO krelease: Save some kind of state here to show the appropriate fragment
- // based on the state of the dialer when it was last paused
}
@Override
@@ -322,7 +388,7 @@
case R.id.menu_clear_frequents:
ClearFrequentsDialog.show(getFragmentManager());
return true;
- case R.id.add_contact:
+ case R.id.menu_add_contact:
try {
startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI));
} catch (ActivityNotFoundException e) {
@@ -333,26 +399,37 @@
}
return true;
case R.id.menu_call_settings:
- final Intent settingsIntent = DialtactsActivity.getCallSettingsIntent();
- startActivity(settingsIntent);
+ handleMenuSettings();
+ return true;
+ case R.id.menu_all_contacts:
+ onShowAllContacts();
+ return true;
}
return false;
}
+ protected void handleMenuSettings() {
+ openTelephonySetting(this);
+ }
+
+ public static void openTelephonySetting(Activity activity) {
+ final Intent settingsIntent = getCallSettingsIntent();
+ activity.startActivity(settingsIntent);
+ }
+
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.overflow_menu: {
- final PopupMenu popupMenu = new PopupMenu(DialtactsActivity.this, view);
- final Menu menu = popupMenu.getMenu();
- popupMenu.inflate(R.menu.dialtacts_options);
- final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
- clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
- popupMenu.setOnMenuItemClickListener(this);
- popupMenu.show();
+ mOverflowMenu.show();
break;
}
case R.id.dialpad_button:
+ // Reset the boolean flag that tracks whether the dialpad was up because
+ // we were in call. Regardless of whether it was true before, we want to
+ // show the dialpad because the user has explicitly clicked the dialpad
+ // button.
+ mInCallDialpadUp = false;
showDialpadFragment(true);
break;
case R.id.call_history_on_dialpad_button:
@@ -365,6 +442,7 @@
case R.id.search_close_button:
// Clear the search field
if (!TextUtils.isEmpty(mSearchView.getText())) {
+ mDialpadFragment.clearDialpad();
mSearchView.setText("");
}
break;
@@ -410,7 +488,12 @@
ft.commit();
}
- private void hideDialpadFragment(boolean animate) {
+ public void hideDialpadFragment(boolean animate, boolean clearDialpad) {
+ if (mDialpadFragment == null) return;
+ if (clearDialpad) {
+ mDialpadFragment.clearDialpad();
+ }
+ if (!mDialpadFragment.isVisible()) return;
mDialpadFragment.setAdjustTranslationForAnimation(animate);
final FragmentTransaction ft = getFragmentManager().beginTransaction();
if (animate) {
@@ -428,21 +511,19 @@
mVoiceSearchButton.setOnClickListener(this);
mSearchView = (EditText) findViewById(R.id.search_view);
mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener);
- mSearchView.setHint(getString(R.string.dialer_hint_find_contact));
- mSearchView.setOnFocusChangeListener(new OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean hasFocus) {
- if (hasFocus) {
- showInputMethod(view.findFocus());
- }
- }
- });
- }
- private void hideDialpadFragmentIfNecessary() {
- if (mDialpadFragment.isVisible()) {
- hideDialpadFragment(true);
- }
+ final String hintText = getString(R.string.dialer_hint_find_contact);
+
+ // The following code is used to insert an icon into a CharSequence (copied from
+ // SearchView)
+ final SpannableStringBuilder ssb = new SpannableStringBuilder(" "); // for the icon
+ ssb.append(hintText);
+ final Drawable searchIcon = getResources().getDrawable(R.drawable.ic_ab_search);
+ final int textSize = (int) (mSearchView.getTextSize() * 1.20);
+ searchIcon.setBounds(0, 0, textSize, textSize);
+ ssb.setSpan(new ImageSpan(searchIcon), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+
+ mSearchView.setHint(ssb);
}
final AnimatorListener mHideListener = new AnimatorListenerAdapter() {
@@ -452,6 +533,20 @@
}
};
+ private boolean getInSearchUi() {
+ return mInDialpadSearch || mInRegularSearch;
+ }
+
+ private void setNotInSearchUi() {
+ mInDialpadSearch = false;
+ mInRegularSearch = false;
+ }
+
+ private void hideDialpadAndSearchUi() {
+ mSearchView.setText(null);
+ hideDialpadFragment(false, true);
+ }
+
public void hideSearchBar() {
hideSearchBar(true);
}
@@ -464,26 +559,23 @@
mSearchViewContainer.animate().withLayer().alpha(0).translationY(-mSearchView.getHeight())
.setDuration(200).setListener(mHideListener);
- mPhoneFavoriteFragment.getView().animate().withLayer()
+ mFragmentsFrame.animate().withLayer()
.translationY(-mSearchViewContainer.getHeight()).setDuration(200).setListener(
new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mBottomPaddingView.setVisibility(View.VISIBLE);
- mPhoneFavoriteFragment.getView().setTranslationY(0);
+ mFragmentsFrame.setTranslationY(0);
+ mActionBar.setVisibility(View.INVISIBLE);
}
});
} else {
mSearchViewContainer.setTranslationY(-mSearchView.getHeight());
+ mActionBar.setVisibility(View.INVISIBLE);
}
}
public void showSearchBar() {
- // If the favorites fragment hasn't been fully created before the dialpad fragment
- // is hidden (i.e. onResume), don't bother animating
- if (mPhoneFavoriteFragment == null || mPhoneFavoriteFragment.getView() == null) {
- return;
- }
mSearchViewContainer.animate().cancel();
mSearchViewContainer.setAlpha(0);
mSearchViewContainer.setTranslationY(-mSearchViewContainer.getHeight());
@@ -492,11 +584,12 @@
@Override
public void onAnimationStart(Animator animation) {
mSearchViewContainer.setVisibility(View.VISIBLE);
+ mActionBar.setVisibility(View.VISIBLE);
}
});
- mPhoneFavoriteFragment.getView().setTranslationY(-mSearchViewContainer.getHeight());
- mPhoneFavoriteFragment.getView().animate().withLayer().translationY(0).setDuration(200)
+ mFragmentsFrame.setTranslationY(-mSearchViewContainer.getHeight());
+ mFragmentsFrame.animate().withLayer().translationY(0).setDuration(200)
.setListener(
new AnimatorListenerAdapter() {
@Override
@@ -507,10 +600,16 @@
}
- public void setupFakeActionBarItemsForFavoritesFragment() {
+ public void setupFakeActionBarItems() {
mMenuButton = findViewById(R.id.overflow_menu);
if (mMenuButton != null) {
mMenuButton.setOnClickListener(this);
+
+ mOverflowMenu = new OverflowPopupMenu(DialtactsActivity.this, mMenuButton);
+ final Menu menu = mOverflowMenu.getMenu();
+ mOverflowMenu.inflate(R.menu.dialtacts_options);
+ mOverflowMenu.setOnMenuItemClickListener(this);
+ mMenuButton.setOnTouchListener(mOverflowMenu.getDragToOpenListener());
}
mCallHistoryButton = findViewById(R.id.call_history_button);
@@ -578,9 +677,15 @@
return;
}
- if (mDialpadFragment != null && (phoneIsInUse() || isDialIntent(intent))) {
- mDialpadFragment.setStartedFromNewIntent(true);
- showDialpadFragment(false);
+ if (mDialpadFragment != null) {
+ final boolean phoneIsInUse = phoneIsInUse();
+ if (phoneIsInUse || isDialIntent(intent)) {
+ mDialpadFragment.setStartedFromNewIntent(true);
+ if (phoneIsInUse && !mDialpadFragment.isVisible()) {
+ mInCallDialpadUp = true;
+ }
+ showDialpadFragment(false);
+ }
}
}
@@ -591,19 +696,6 @@
displayFragment(newIntent);
final String action = newIntent.getAction();
- if (mInSearchUi || (mRegularSearchFragment != null && mRegularSearchFragment.isVisible())) {
- exitSearchUi();
- }
-
- // TODO krelease: Handle onNewIntent for all other fragments
- /*
- *if (mViewPager.getCurrentItem() == TAB_INDEX_DIALER) { if (mDialpadFragment != null) {
- * mDialpadFragment.setStartedFromNewIntent(true); } else { Log.e(TAG,
- * "DialpadFragment isn't ready yet when the tab is already selected."); } } else if
- * (mViewPager.getCurrentItem() == TAB_INDEX_CALL_LOG) { if (mCallLogFragment != null) {
- * mCallLogFragment.configureScreenFromIntent(newIntent); } else { Log.e(TAG,
- * "CallLogFragment isn't ready yet when the tab is already selected."); } }
- */
invalidateOptionsMenu();
}
@@ -719,31 +811,65 @@
/**
* Shows the search fragment
*/
- private void enterSearchUi(boolean smartDialSearch) {
+ private void enterSearchUi(boolean smartDialSearch, String query) {
+ if (getFragmentManager().isDestroyed()) {
+ // Weird race condition where fragment is doing work after the activity is destroyed
+ // due to talkback being on (b/10209937). Just return since we can't do any
+ // constructive here.
+ return;
+ }
+
+ if (DEBUG) {
+ Log.d(TAG, "Entering search UI - smart dial " + smartDialSearch);
+ }
+
final FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
- transaction.hide(mPhoneFavoriteFragment);
- if (smartDialSearch) {
- transaction.show(mSmartDialSearchFragment);
- } else {
- transaction.show(mRegularSearchFragment);
- }
- transaction.commit();
- mInSearchUi = true;
+ SearchFragment fragment;
+ if (mInDialpadSearch) {
+ transaction.remove(mSmartDialSearchFragment);
+ } else if (mInRegularSearch) {
+ transaction.remove(mRegularSearchFragment);
+ } else {
+ transaction.remove(mPhoneFavoriteFragment);
+ }
+
+ final String tag;
+ if (smartDialSearch) {
+ tag = TAG_SMARTDIAL_SEARCH_FRAGMENT;
+ } else {
+ tag = TAG_REGULAR_SEARCH_FRAGMENT;
+ }
+ mInDialpadSearch = smartDialSearch;
+ mInRegularSearch = !smartDialSearch;
+
+ fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag);
+ if (fragment == null) {
+ if (smartDialSearch) {
+ fragment = new SmartDialSearchFragment();
+ } else {
+ fragment = new RegularSearchFragment();
+ }
+ }
+ transaction.replace(R.id.dialtacts_frame, fragment, tag);
+ transaction.addToBackStack(null);
+ fragment.setQueryString(query, false);
+ transaction.commit();
}
/**
* Hides the search fragment
*/
private void exitSearchUi() {
- final FragmentTransaction transaction = getFragmentManager().beginTransaction();
- transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
- transaction.hide(mRegularSearchFragment);
- transaction.hide(mSmartDialSearchFragment);
- transaction.show(mPhoneFavoriteFragment);
- transaction.commit();
- mInSearchUi = false;
+ // See related bug in enterSearchUI();
+ if (getFragmentManager().isDestroyed()) {
+ return;
+ }
+ // Go all the way back to the favorites fragment, regardless of how many times we
+ // transitioned between search fragments
+ getFragmentManager().popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ setNotInSearchUi();
}
/** Returns an Intent to launch Call Settings screen */
@@ -756,10 +882,11 @@
@Override
public void onBackPressed() {
- if (mDialpadFragment.isVisible()) {
- hideDialpadFragment(true);
- } else if (mInSearchUi) {
+ if (mDialpadFragment != null && mDialpadFragment.isVisible()) {
+ hideDialpadFragment(true, false);
+ } else if (getInSearchUi()) {
mSearchView.setText(null);
+ mDialpadFragment.clearDialpad();
} else if (isTaskRoot()) {
// Instead of stopping, simply push this to the back of the stack.
// This is only done when running at the top of the stack;
@@ -776,6 +903,17 @@
final String normalizedQuery = SmartDialNameMatcher.normalizeNumber(query,
SmartDialNameMatcher.LATIN_SMART_DIAL_MAP);
if (!TextUtils.equals(mSearchView.getText(), normalizedQuery)) {
+ if (DEBUG) {
+ Log.d(TAG, "onDialpadQueryChanged - new query: " + query);
+ }
+ if (mDialpadFragment == null || !mDialpadFragment.isVisible()) {
+ // This callback can happen if the dialpad fragment is recreated because of
+ // activity destruction. In that case, don't update the search view because
+ // that would bring the user back to the search fragment regardless of the
+ // previous state of the application. Instead, just return here and let the
+ // fragment manager correctly figure out whatever fragment was last displayed.
+ return;
+ }
mSearchView.setText(normalizedQuery);
}
}
@@ -783,17 +921,12 @@
@Override
public void onListFragmentScrollStateChange(int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
- hideDialpadFragmentIfNecessary();
+ hideDialpadFragment(true, false);
hideInputMethod(getCurrentFocus());
}
}
@Override
- public void onPhoneFavoriteFragmentStarted() {
- setupFakeActionBarItemsForFavoritesFragment();
- }
-
- @Override
public void onDialpadFragmentStarted() {
setupFakeActionBarItemsForDialpadFragment();
}
@@ -809,4 +942,17 @@
final Intent intent = new Intent(this, AllContactsActivity.class);
startActivity(intent);
}
+
+ public static Intent getAddNumberToContactIntent(CharSequence text) {
+ final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+ intent.putExtra(Intents.Insert.PHONE, text);
+ intent.setType(Contacts.CONTENT_ITEM_TYPE);
+ return intent;
+ }
+
+ public static Intent getInsertContactWithNameIntent(CharSequence text) {
+ final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+ intent.putExtra(Intents.Insert.NAME, text);
+ return intent;
+ }
}
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index 6f13b2e..340168e 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -18,6 +18,7 @@
import android.content.res.Resources;
import android.graphics.Typeface;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.telephony.PhoneNumberUtils;
import android.text.SpannableString;
@@ -31,7 +32,9 @@
import com.android.contacts.common.test.NeededForTesting;
import com.android.dialer.calllog.CallTypeHelper;
+import com.android.dialer.calllog.ContactInfo;
import com.android.dialer.calllog.PhoneNumberHelper;
+import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
/**
* Helper class to fill in the views in {@link PhoneCallDetailsViews}.
@@ -46,6 +49,7 @@
// Helper classes.
private final CallTypeHelper mCallTypeHelper;
private final PhoneNumberHelper mPhoneNumberHelper;
+ private final PhoneNumberUtilsWrapper mPhoneNumberUtilsWrapper;
/**
* Creates a new instance of the helper.
@@ -55,10 +59,11 @@
* @param resources used to look up strings
*/
public PhoneCallDetailsHelper(Resources resources, CallTypeHelper callTypeHelper,
- PhoneNumberHelper phoneNumberHelper) {
+ PhoneNumberUtilsWrapper phoneUtils) {
mResources = resources;
mCallTypeHelper = callTypeHelper;
- mPhoneNumberHelper = phoneNumberHelper;
+ mPhoneNumberHelper = new PhoneNumberHelper(resources);
+ mPhoneNumberUtilsWrapper = phoneUtils;
}
/** Fills the call details views with content. */
@@ -70,6 +75,7 @@
for (int index = 0; index < count && index < MAX_CALL_TYPE_ICONS; ++index) {
views.callTypeIcons.add(details.callTypes[index]);
}
+ views.callTypeIcons.requestLayout();
views.callTypeIcons.setVisibility(View.VISIBLE);
// Show the total call count only if there are more than the maximum number of icons.
@@ -97,8 +103,12 @@
// Only show a label if the number is shown and it is not a SIP address.
if (!TextUtils.isEmpty(details.number)
&& !PhoneNumberUtils.isUriNumber(details.number.toString())) {
- numberFormattedLabel = Phone.getTypeLabel(mResources, details.numberType,
- details.numberLabel);
+ if (details.numberLabel == ContactInfo.GEOCODE_AS_LABEL) {
+ numberFormattedLabel = details.geocode;
+ } else {
+ numberFormattedLabel = Phone.getTypeLabel(mResources, details.numberType,
+ details.numberLabel);
+ }
}
final CharSequence nameText;
@@ -110,7 +120,7 @@
if (TextUtils.isEmpty(details.name)) {
nameText = displayNumber;
if (TextUtils.isEmpty(details.geocode)
- || mPhoneNumberHelper.isVoicemailNumber(details.number)) {
+ || mPhoneNumberUtilsWrapper.isVoicemailNumber(details.number)) {
numberText = mResources.getString(R.string.call_log_empty_gecode);
} else {
numberText = details.geocode;
diff --git a/src/com/android/dialer/SearchFragment.java b/src/com/android/dialer/SearchFragment.java
deleted file mode 100644
index 54d29d4..0000000
--- a/src/com/android/dialer/SearchFragment.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.dialer;
-
-import android.app.Activity;
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
-import com.android.dialer.list.OnListFragmentScrolledListener;
-
-public class SearchFragment extends PhoneNumberPickerFragment {
-
- private OnListFragmentScrolledListener mActivityScrollListener;
-
- public SearchFragment() {
- setDirectorySearchEnabled(true);
- }
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
-
- setQuickContactEnabled(true);
- setDarkTheme(false);
- setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
- setUseCallableUri(true);
-
- try {
- mActivityScrollListener = (OnListFragmentScrolledListener) activity;
- } catch (ClassCastException e) {
- throw new ClassCastException(activity.toString()
- + " must implement OnListFragmentScrolledListener");
- }
- }
-
- @Override
- public void onStart() {
- super.onStart();
- getListView().setOnScrollListener(new OnScrollListener() {
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
- }
-
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
- int totalItemCount) {
- }
- });
- }
-
- @Override
- protected void setSearchMode(boolean flag) {
- super.setSearchMode(flag);
- // This hides the "All contacts with phone numbers" header in the search fragment
- getAdapter().setHasHeader(0, false);
- }
-}
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
index 52435aa..8af3b82 100644
--- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
+++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
@@ -150,7 +150,7 @@
DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_YEAR);
dateView.setText(dateValue);
// Set the duration
- if (callType == Calls.MISSED_TYPE || callType == Calls.VOICEMAIL_TYPE) {
+ if (Calls.VOICEMAIL_TYPE == callType || CallTypeHelper.isMissedCallType(callType)) {
durationView.setVisibility(View.GONE);
} else {
durationView.setVisibility(View.VISIBLE);
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 662614f..42318f0 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -122,11 +122,6 @@
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
- final SpannableString s = new SpannableString(getString(R.string.call_log_activity_title));
- s.setSpan(new TypefaceSpan(getString(R.string.call_log_activity_title_font_family)), 0,
- s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- actionBar.setTitle(s);
-
final Tab allTab = actionBar.newTab();
final String allTitle = getString(R.string.call_log_all_title);
allTab.setContentDescription(allTitle);
@@ -162,7 +157,7 @@
// If onPrepareOptionsMenu is called before fragments loaded. Don't do anything.
if (mAllCallsFragment != null && itemDeleteAll != null) {
final CallLogAdapter adapter = mAllCallsFragment.getAdapter();
- itemDeleteAll.setEnabled(adapter != null && !adapter.isEmpty());
+ itemDeleteAll.setVisible(adapter != null && !adapter.isEmpty());
}
return true;
}
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 2c81f46..e4fd0d8 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -18,6 +18,7 @@
import android.content.ContentValues;
import android.content.Context;
+import android.content.Intent;
import android.content.res.Resources;
import android.database.Cursor;
import android.net.Uri;
@@ -29,7 +30,10 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewStub;
import android.view.ViewTreeObserver;
+import android.widget.ImageView;
+import android.widget.TextView;
import com.android.common.widget.GroupingListAdapter;
import com.android.contacts.common.ContactPhotoManager;
@@ -48,6 +52,7 @@
*/
public class CallLogAdapter extends GroupingListAdapter
implements ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator {
+
/** Interface used to initiate a refresh of the content. */
public interface CallFetcher {
public void fetchCalls();
@@ -90,7 +95,7 @@
/** The size of the cache of contact info. */
private static final int CONTACT_INFO_CACHE_SIZE = 100;
- private final Context mContext;
+ protected final Context mContext;
private final ContactInfoHelper mContactInfoHelper;
private final CallFetcher mCallFetcher;
private ViewTreeObserver mViewTreeObserver = null;
@@ -178,26 +183,39 @@
/** Can be set to true by tests to disable processing of requests. */
private volatile boolean mRequestProcessingDisabled = false;
- /** Listener for the primary action in the list, opens the call details. */
- private final View.OnClickListener mPrimaryActionListener = new View.OnClickListener() {
+ /** True if CallLogAdapter is created from the PhoneFavoriteFragment, where the primary
+ * action should be set to call a number instead of opening the detail page. */
+ private boolean mUseCallAsPrimaryAction = false;
+
+ private boolean mIsCallLog = true;
+ private int mNumMissedCalls = 0;
+ private int mNumMissedCallsShown = 0;
+
+ private View mBadgeContainer;
+ private ImageView mBadgeImageView;
+ private TextView mBadgeText;
+
+ /** Listener for the primary or secondary actions in the list.
+ * Primary opens the call details.
+ * Secondary calls or plays.
+ **/
+ private final View.OnClickListener mActionListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
- IntentProvider intentProvider = (IntentProvider) view.getTag();
- if (intentProvider != null) {
- mContext.startActivity(intentProvider.getIntent(mContext));
- }
+ startActivityForAction(view);
}
};
- /** Listener for the secondary action in the list, either call or play. */
- private final View.OnClickListener mSecondaryActionListener = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- IntentProvider intentProvider = (IntentProvider) view.getTag();
- if (intentProvider != null) {
- mContext.startActivity(intentProvider.getIntent(mContext));
+
+ private void startActivityForAction(View view) {
+ final IntentProvider intentProvider = (IntentProvider) view.getTag();
+ if (intentProvider != null) {
+ final Intent intent = intentProvider.getIntent(mContext);
+ // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+ if (intent != null) {
+ mContext.startActivity(intent);
}
}
- };
+ }
@Override
public boolean onPreDraw() {
@@ -228,12 +246,15 @@
};
public CallLogAdapter(Context context, CallFetcher callFetcher,
- ContactInfoHelper contactInfoHelper) {
+ ContactInfoHelper contactInfoHelper, boolean useCallAsPrimaryAction,
+ boolean isCallLog) {
super(context);
mContext = context;
mCallFetcher = callFetcher;
mContactInfoHelper = contactInfoHelper;
+ mUseCallAsPrimaryAction = useCallAsPrimaryAction;
+ mIsCallLog = isCallLog;
mContactInfoCache = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE);
mRequests = new LinkedList<ContactInfoRequest>();
@@ -244,7 +265,7 @@
mContactPhotoManager = ContactPhotoManager.getInstance(mContext);
mPhoneNumberHelper = new PhoneNumberHelper(resources);
PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper(
- resources, callTypeHelper, mPhoneNumberHelper);
+ resources, callTypeHelper, new PhoneNumberUtilsWrapper());
mCallLogViewsHelper =
new CallLogListItemHelper(
phoneCallDetailsHelper, mPhoneNumberHelper, resources);
@@ -331,8 +352,7 @@
* up the contact information (if it has not been already started). Otherwise, it will be
* started with a delay. See {@link #START_PROCESSING_REQUESTS_DELAY_MILLIS}.
*/
- @VisibleForTesting
- void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
+ protected void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
boolean immediate) {
ContactInfoRequest request = new ContactInfoRequest(number, countryIso, callLogInfo);
synchronized (mRequests) {
@@ -367,7 +387,17 @@
// view.
NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso);
ContactInfo existingInfo = mContactInfoCache.getPossiblyExpired(numberCountryIso);
- boolean updated = (existingInfo != ContactInfo.EMPTY) && !info.equals(existingInfo);
+
+ final boolean isRemoteSource = info.sourceType != 0;
+
+ // Don't force redraw if existing info in the cache is equal to {@link ContactInfo#EMPTY}
+ // to avoid updating the data set for every new row that is scrolled into view.
+ // see (https://googleplex-android-review.git.corp.google.com/#/c/166680/)
+
+ // Exception: Photo uris for contacts from remote sources are not cached in the call log
+ // cache, so we have to force a redraw for these contacts regardless.
+ boolean updated = (existingInfo != ContactInfo.EMPTY || isRemoteSource) &&
+ !info.equals(existingInfo);
// Store the data in the cache so that the UI thread can use to display it. Store it
// even if it has not changed so that it is marked as not expired.
@@ -442,8 +472,17 @@
@Override
protected View newStandAloneView(Context context, ViewGroup parent) {
- LayoutInflater inflater =
- (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ return newChildView(context, parent);
+ }
+
+ @Override
+ protected View newGroupView(Context context, ViewGroup parent) {
+ return newChildView(context, parent);
+ }
+
+ @Override
+ protected View newChildView(Context context, ViewGroup parent) {
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.call_log_list_item, parent, false);
findAndCacheViews(view);
return view;
@@ -455,29 +494,11 @@
}
@Override
- protected View newChildView(Context context, ViewGroup parent) {
- LayoutInflater inflater =
- (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View view = inflater.inflate(R.layout.call_log_list_item, parent, false);
- findAndCacheViews(view);
- return view;
- }
-
- @Override
protected void bindChildView(View view, Context context, Cursor cursor) {
bindView(view, cursor, 1);
}
@Override
- protected View newGroupView(Context context, ViewGroup parent) {
- LayoutInflater inflater =
- (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View view = inflater.inflate(R.layout.call_log_list_item, parent, false);
- findAndCacheViews(view);
- return view;
- }
-
- @Override
protected void bindGroupView(View view, Context context, Cursor cursor, int groupSize,
boolean expanded) {
bindView(view, cursor, groupSize);
@@ -486,8 +507,8 @@
private void findAndCacheViews(View view) {
// Get the views to bind to.
CallLogListItemViews views = CallLogListItemViews.fromView(view);
- views.primaryActionView.setOnClickListener(mPrimaryActionListener);
- views.secondaryActionView.setOnClickListener(mSecondaryActionListener);
+ views.primaryActionView.setOnClickListener(mActionListener);
+ views.secondaryActionView.setOnClickListener(mActionListener);
view.setTag(views);
}
@@ -503,7 +524,6 @@
// Default case: an item in the call log.
views.primaryActionView.setVisibility(View.VISIBLE);
- views.bottomDivider.setVisibility(View.VISIBLE);
views.listHeaderTextView.setVisibility(View.GONE);
final String number = c.getString(CallLogQuery.NUMBER);
@@ -515,9 +535,17 @@
final ContactInfo cachedContactInfo = getContactInfoFromCallLog(c);
- views.primaryActionView.setTag(
- IntentProvider.getCallDetailIntentProvider(
- getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count));
+ if (!mUseCallAsPrimaryAction) {
+ // Sets the primary action to open call detail page.
+ views.primaryActionView.setTag(
+ IntentProvider.getCallDetailIntentProvider(
+ getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count));
+ } else if (PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
+ // Sets the primary action to call the number.
+ views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number));
+ } else {
+ views.primaryActionView.setTag(null);
+ }
// Store away the voicemail information so we can play it directly.
if (callType == Calls.VOICEMAIL_TYPE) {
@@ -539,8 +567,8 @@
ExpirableCache.CachedValue<ContactInfo> cachedInfo =
mContactInfoCache.getCachedValue(numberCountryIso);
ContactInfo info = cachedInfo == null ? null : cachedInfo.getValue();
- if (!PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation)
- || mPhoneNumberHelper.isVoicemailNumber(number)) {
+ if (!PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)
+ || new PhoneNumberUtilsWrapper().isVoicemailNumber(number)) {
// If this is a number that cannot be dialed, there is no point in looking up a contact
// for it.
info = ContactInfo.EMPTY;
@@ -576,32 +604,145 @@
final int ntype = info.type;
final String label = info.label;
final long photoId = info.photoId;
+ final Uri photoUri = info.photoUri;
CharSequence formattedNumber = info.formattedNumber;
final int[] callTypes = getCallTypes(c, count);
final String geocode = c.getString(CallLogQuery.GEOCODED_LOCATION);
final PhoneCallDetails details;
+
if (TextUtils.isEmpty(name)) {
details = new PhoneCallDetails(number, numberPresentation,
formattedNumber, countryIso, geocode, callTypes, date,
duration);
} else {
- // We do not pass a photo id since we do not need the high-res picture.
details = new PhoneCallDetails(number, numberPresentation,
formattedNumber, countryIso, geocode, callTypes, date,
- duration, name, ntype, label, lookupUri, null);
+ duration, name, ntype, label, lookupUri, photoUri);
}
final boolean isNew = c.getInt(CallLogQuery.IS_READ) == 0;
// New items also use the highlighted version of the text.
final boolean isHighlighted = isNew;
- mCallLogViewsHelper.setPhoneCallDetails(views, details, isHighlighted);
- setPhoto(views, photoId, lookupUri);
+ mCallLogViewsHelper.setPhoneCallDetails(views, details, isHighlighted,
+ mUseCallAsPrimaryAction);
+
+ if (photoId == 0 && photoUri != null) {
+ setPhoto(views, photoUri, lookupUri);
+ } else {
+ setPhoto(views, photoId, lookupUri);
+ }
+
+ views.quickContactView.setContentDescription(views.phoneCallDetailsViews.nameView.
+ getText());
// Listen for the first draw
if (mViewTreeObserver == null) {
mViewTreeObserver = view.getViewTreeObserver();
mViewTreeObserver.addOnPreDrawListener(this);
}
+
+ bindBadge(view, info, details, callType);
+ }
+
+ protected void bindBadge(View view, ContactInfo info, PhoneCallDetails details, int callType) {
+
+ // Do not show badge in call log.
+ if (!mIsCallLog) {
+ final int numMissed = getNumMissedCalls(callType);
+ final ViewStub stub = (ViewStub) view.findViewById(R.id.link_stub);
+
+ if (shouldShowBadge(numMissed, info, details)) {
+ // Do not process if the data has not changed (optimization since bind view is
+ // called multiple times due to contact lookup).
+ if (numMissed == mNumMissedCallsShown) {
+ return;
+ }
+
+ // stub will be null if it was already inflated.
+ if (stub != null) {
+ final View inflated = stub.inflate();
+ inflated.setVisibility(View.VISIBLE);
+ mBadgeContainer = inflated.findViewById(R.id.badge_link_container);
+ mBadgeImageView = (ImageView) inflated.findViewById(R.id.badge_image);
+ mBadgeText = (TextView) inflated.findViewById(R.id.badge_text);
+ }
+
+ mBadgeContainer.setOnClickListener(getBadgeClickListener());
+ mBadgeImageView.setImageResource(getBadgeImageResId());
+ mBadgeText.setText(getBadgeText(numMissed));
+
+ mNumMissedCallsShown = numMissed;
+ } else {
+ // Hide badge if it was previously shown.
+ if (stub == null) {
+ final View container = view.findViewById(R.id.badge_container);
+ if (container != null) {
+ container.setVisibility(View.GONE);
+ }
+ }
+ }
+ }
+ }
+
+ public void setMissedCalls(Cursor data) {
+ final int missed;
+ if (data == null) {
+ missed = 0;
+ } else {
+ missed = data.getCount();
+ }
+ // Only need to update if the number of calls changed.
+ if (missed != mNumMissedCalls) {
+ mNumMissedCalls = missed;
+ notifyDataSetChanged();
+ }
+ }
+
+ protected View.OnClickListener getBadgeClickListener() {
+ return new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final Intent intent = new Intent(mContext, CallLogActivity.class);
+ mContext.startActivity(intent);
+ }
+ };
+ }
+
+ /**
+ * Get the resource id for the image to be shown for the badge.
+ */
+ protected int getBadgeImageResId() {
+ return R.drawable.ic_call_log_blue;
+ }
+
+ /**
+ * Get the text to be shown for the badge.
+ *
+ * @param numMissed The number of missed calls.
+ */
+ protected String getBadgeText(int numMissed) {
+ return mContext.getResources().getString(R.string.num_missed_calls, numMissed);
+ }
+
+ /**
+ * Whether to show the badge.
+ *
+ * @param numMissedCalls The number of missed calls.
+ * @param info The contact info.
+ * @param details The call detail.
+ * @return {@literal true} if badge should be shown. {@literal false} otherwise.
+ */
+ protected boolean shouldShowBadge(int numMissedCalls, ContactInfo info,
+ PhoneCallDetails details) {
+ return numMissedCalls > 0;
+ }
+
+ private int getNumMissedCalls(int callType) {
+ if (callType == Calls.MISSED_TYPE) {
+ // Exclude the current missed call shown in the shortcut.
+ return mNumMissedCalls - 1;
+ }
+ return mNumMissedCalls;
}
/** Checks whether the contact info from the call log matches the one from the contacts db. */
@@ -719,6 +860,13 @@
mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, false /* darkTheme */);
}
+ private void setPhoto(CallLogListItemViews views, Uri photoUri, Uri contactUri) {
+ views.quickContactView.assignContactUri(contactUri);
+ mContactPhotoManager.loadDirectoryPhoto(views.quickContactView, photoUri,
+ false /* darkTheme */);
+ }
+
+
/**
* Sets whether processing of requests for contact details should be enabled.
* <p>
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index a76d0c1..c8e2613 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -26,19 +26,12 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
-import android.os.RemoteException;
-import android.os.ServiceManager;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract;
import android.telephony.PhoneNumberUtils;
-import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
-import android.util.Log;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
@@ -52,8 +45,8 @@
import com.android.dialer.voicemail.VoicemailStatusHelper;
import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
+import com.android.dialerbind.ObjectFactory;
import com.android.internal.telephony.ITelephony;
-import com.google.common.annotations.VisibleForTesting;
import java.util.List;
@@ -138,8 +131,8 @@
this, mLogLimit);
mKeyguardManager =
(KeyguardManager) getActivity().getSystemService(Context.KEYGUARD_SERVICE);
- getActivity().getContentResolver().registerContentObserver(
- CallLog.CONTENT_URI, true, mCallLogObserver);
+ getActivity().getContentResolver().registerContentObserver(CallLog.CONTENT_URI, true,
+ mCallLogObserver);
getActivity().getContentResolver().registerContentObserver(
ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
setHasOptionsMenu(true);
@@ -236,8 +229,8 @@
super.onViewCreated(view, savedInstanceState);
updateEmptyMessage(mCallTypeFilter);
String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
- mAdapter = new CallLogAdapter(getActivity(), this,
- new ContactInfoHelper(getActivity(), currentCountryIso));
+ mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, new ContactInfoHelper(
+ getActivity(), currentCountryIso), false, true);
setListAdapter(mAdapter);
getListView().setItemsCanFocus(true);
}
@@ -369,7 +362,7 @@
if (cursor != null) {
String number = cursor.getString(CallLogQuery.NUMBER);
int numberPresentation = cursor.getInt(CallLogQuery.NUMBER_PRESENTATION);
- if (!PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation)) {
+ if (!PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
// This number can't be called, do nothing
return;
}
@@ -429,22 +422,6 @@
}
}
- /** Removes the missed call notifications. */
- private void removeMissedCallNotifications() {
- try {
- ITelephony telephony =
- ITelephony.Stub.asInterface(ServiceManager.getService("phone"));
- if (telephony != null) {
- telephony.cancelMissedCallsNotification();
- } else {
- Log.w(TAG, "Telephony service is null, can't call " +
- "cancelMissedCallsNotification");
- }
- } catch (RemoteException e) {
- Log.e(TAG, "Failed to clear missed calls notification due to remote exception");
- }
- }
-
/** Updates call data and notification state while leaving the call log tab. */
private void updateOnExit() {
updateOnTransition(false);
@@ -455,28 +432,20 @@
updateOnTransition(true);
}
- // TODO krelease: Figure out if we still need this. If so, it should be probably be moved to
- // the call log activity instead, or done only in a single call log fragment.
+ // TODO: Move to CallLogActivity
private void updateOnTransition(boolean onEntry) {
// 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 reset the new flag and update the notifications.
+ // 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).
- // This will ensure that they no more appear in the "new" section when we return back.
mCallLogQueryHandler.markNewCallsAsOld();
if (!onEntry) {
mCallLogQueryHandler.markMissedCallsAsRead();
}
- removeMissedCallNotifications();
- updateVoicemailNotifications();
+ CallLogNotificationsHelper.removeMissedCallNotifications();
+ CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
}
}
-
- private void updateVoicemailNotifications() {
- Intent serviceIntent = new Intent(getActivity(), CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_NOTIFICATIONS);
- getActivity().startService(serviceIntent);
- }
}
diff --git a/src/com/android/dialer/calllog/CallLogGroupBuilder.java b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
index 1e4684e..213f1e7 100644
--- a/src/com/android/dialer/calllog/CallLogGroupBuilder.java
+++ b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
@@ -78,8 +78,7 @@
shouldGroup = false;
} else {
// Incoming, outgoing, and missed calls group together.
- shouldGroup = (callType == Calls.INCOMING_TYPE || callType == Calls.OUTGOING_TYPE ||
- callType == Calls.MISSED_TYPE);
+ shouldGroup = callType != Calls.VOICEMAIL_TYPE;
}
if (shouldGroup) {
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 23366e4..576a432 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -57,17 +57,17 @@
* @param isHighlighted whether to use the highlight text for the call
*/
public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details,
- boolean isHighlighted) {
+ boolean isHighlighted, boolean useCallAsPrimaryAction) {
mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details,
isHighlighted);
- boolean canCall = PhoneNumberHelper.canPlaceCallsTo(details.number,
- details.numberPresentation);
+ boolean canCall = PhoneNumberUtilsWrapper.canPlaceCallsTo(details.number,
+ details.numberPresentation);
boolean canPlay = details.callTypes[0] == Calls.VOICEMAIL_TYPE;
if (canPlay) {
// Playback action takes preference.
configurePlaySecondaryAction(views, isHighlighted);
- } else if (canCall) {
+ } else if (canCall && !useCallAsPrimaryAction) {
// Call is the secondary action.
configureCallSecondaryAction(views, details);
} else {
@@ -80,7 +80,7 @@
private void configureCallSecondaryAction(CallLogListItemViews views,
PhoneCallDetails details) {
views.secondaryActionView.setVisibility(View.VISIBLE);
- views.secondaryActionView.setImageResource(R.drawable.ic_ab_dialer_holo_light);
+ views.secondaryActionView.setImageResource(R.drawable.ic_phone_dk);
views.secondaryActionView.setContentDescription(getCallActionDescription(details));
}
diff --git a/src/com/android/dialer/calllog/CallLogListItemViews.java b/src/com/android/dialer/calllog/CallLogListItemViews.java
index 0dd4f63..ed6218f 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViews.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViews.java
@@ -40,18 +40,15 @@
public final PhoneCallDetailsViews phoneCallDetailsViews;
/** The text of the header of a section. */
public final TextView listHeaderTextView;
- /** The divider to be shown below items. */
- public final View bottomDivider;
private CallLogListItemViews(QuickContactBadge quickContactView, View primaryActionView,
ImageView secondaryActionView, PhoneCallDetailsViews phoneCallDetailsViews,
- TextView listHeaderTextView, View bottomDivider) {
+ TextView listHeaderTextView) {
this.quickContactView = quickContactView;
this.primaryActionView = primaryActionView;
this.secondaryActionView = secondaryActionView;
this.phoneCallDetailsViews = phoneCallDetailsViews;
this.listHeaderTextView = listHeaderTextView;
- this.bottomDivider = bottomDivider;
}
public static CallLogListItemViews fromView(View view) {
@@ -60,8 +57,7 @@
view.findViewById(R.id.primary_action_view),
(ImageView) view.findViewById(R.id.secondary_action_icon),
PhoneCallDetailsViews.fromView(view),
- (TextView) view.findViewById(R.id.call_log_header),
- view.findViewById(R.id.call_log_divider));
+ (TextView) view.findViewById(R.id.call_log_header));
}
@NeededForTesting
@@ -71,7 +67,6 @@
new View(context),
new ImageView(context),
PhoneCallDetailsViews.createForTest(context),
- new TextView(context),
- new View(context));
+ new TextView(context));
}
}
diff --git a/src/com/android/dialer/calllog/CallLogNotificationsHelper.java b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
new file mode 100644
index 0000000..6ce66f0
--- /dev/null
+++ b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
@@ -0,0 +1,55 @@
+/*
+ * 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.dialer.calllog;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.util.Log;
+
+import com.android.internal.telephony.ITelephony;
+
+/**
+ * Helper class operating on call log notifications.
+ */
+public class CallLogNotificationsHelper {
+ private static final String TAG = "CallLogNotificationsHelper";
+
+ /** Removes the missed call notifications. */
+ public static void removeMissedCallNotifications() {
+ try {
+ ITelephony telephony =
+ ITelephony.Stub.asInterface(ServiceManager.getService("phone"));
+ if (telephony != null) {
+ telephony.cancelMissedCallsNotification();
+ } else {
+ Log.w(TAG, "Telephony service is null, can't call " +
+ "cancelMissedCallsNotification");
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to clear missed calls notification due to remote exception");
+ }
+ }
+
+ /** Update the voice mail notifications. */
+ public static void updateVoicemailNotifications(Context context) {
+ Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
+ serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_NOTIFICATIONS);
+ context.startService(serviceIntent);
+ }
+}
diff --git a/src/com/android/dialer/calllog/CallLogQueryHandler.java b/src/com/android/dialer/calllog/CallLogQueryHandler.java
index 91a2e5d..def3c97 100644
--- a/src/com/android/dialer/calllog/CallLogQueryHandler.java
+++ b/src/com/android/dialer/calllog/CallLogQueryHandler.java
@@ -132,16 +132,20 @@
mLogLimit = limit;
}
-
/**
* Fetches the list of calls from the call log for a given type.
+ * This call ignores the new or old state.
* <p>
* It will asynchronously update the content of the list view when the fetch completes.
*/
- public void fetchCalls(int callType) {
+ public void fetchCalls(int callType, long newerThan) {
cancelFetch();
int requestId = newCallsRequest();
- fetchCalls(QUERY_CALLLOG_TOKEN, requestId, callType);
+ fetchCalls(QUERY_CALLLOG_TOKEN, requestId, callType, false /* newOnly */, newerThan);
+ }
+
+ public void fetchCalls(int callType) {
+ fetchCalls(callType, 0);
}
public void fetchVoicemailStatus() {
@@ -149,20 +153,40 @@
VoicemailStatusHelperImpl.PROJECTION, null, null, null);
}
- /** Fetches the list of calls in the call log, either the new one or the old ones. */
- private void fetchCalls(int token, int requestId, int callType) {
+ /** Fetches the list of calls in the call log. */
+ private void fetchCalls(int token, int requestId, int callType, boolean newOnly,
+ long newerThan) {
// We need to check for NULL explicitly otherwise entries with where READ is NULL
// may not match either the query or its negation.
// We consider the calls that are not yet consumed (i.e. IS_READ = 0) as "new".
- String selection = null;
+ StringBuilder where = new StringBuilder();
List<String> selectionArgs = Lists.newArrayList();
+ if (newOnly) {
+ where.append(Calls.NEW);
+ where.append(" = 1");
+ }
+
if (callType > CALL_TYPE_ALL) {
+ if (where.length() > 0) {
+ where.append(" AND ");
+ }
// Add a clause to fetch only items of type voicemail.
- selection = String.format("(%s = ?)", Calls.TYPE);
+ where.append(String.format("(%s = ?)", Calls.TYPE));
+ // Add a clause to fetch only items newer than the requested date
selectionArgs.add(Integer.toString(callType));
}
+
+ if (newerThan > 0) {
+ if (where.length() > 0) {
+ where.append(" AND ");
+ }
+ where.append(String.format("(%s > ?)", Calls.DATE));
+ selectionArgs.add(Long.toString(newerThan));
+ }
+
final int limit = (mLogLimit == -1) ? NUM_LOGS_TO_DISPLAY : mLogLimit;
+ final String selection = where.length() > 0 ? where.toString() : null;
Uri uri = Calls.CONTENT_URI_WITH_VOICEMAIL.buildUpon()
.appendQueryParameter(Calls.LIMIT_PARAM_KEY, Integer.toString(limit))
.build();
diff --git a/src/com/android/dialer/calllog/CallTypeHelper.java b/src/com/android/dialer/calllog/CallTypeHelper.java
index 0f9b737..1c4f44f 100644
--- a/src/com/android/dialer/calllog/CallTypeHelper.java
+++ b/src/com/android/dialer/calllog/CallTypeHelper.java
@@ -64,7 +64,7 @@
return mVoicemailName;
default:
- throw new IllegalArgumentException("invalid call type: " + callType);
+ return mMissedName;
}
}
@@ -86,7 +86,15 @@
return mNewVoicemailColor;
default:
- throw new IllegalArgumentException("invalid call type: " + callType);
+ // Don't highlight calls of unknown types. They are treated as missed calls by
+ // the rest of the UI, but since they will never be marked as read by
+ // {@link CallLogQueryHandler}, just don't ever highlight them anyway.
+ return null;
}
}
+
+ public static boolean isMissedCallType(int callType) {
+ return (callType != Calls.INCOMING_TYPE && callType != Calls.OUTGOING_TYPE &&
+ callType != Calls.VOICEMAIL_TYPE);
+ }
}
diff --git a/src/com/android/dialer/calllog/CallTypeIconsView.java b/src/com/android/dialer/calllog/CallTypeIconsView.java
index e835128..a65f2c2 100644
--- a/src/com/android/dialer/calllog/CallTypeIconsView.java
+++ b/src/com/android/dialer/calllog/CallTypeIconsView.java
@@ -86,7 +86,11 @@
case Calls.VOICEMAIL_TYPE:
return mResources.voicemail;
default:
- throw new IllegalArgumentException("invalid call type: " + callType);
+ // It is possible for users to end up with calls with unknown call types in their
+ // call history, possibly due to 3rd party call log implementations (e.g. to
+ // distinguish between rejected and missed calls). Instead of crashing, just
+ // assume that all unknown call types are missed calls.
+ return mResources.missed;
}
}
diff --git a/src/com/android/dialer/calllog/ClearCallLogDialog.java b/src/com/android/dialer/calllog/ClearCallLogDialog.java
index 1f5b2b3..e6b4ce2 100644
--- a/src/com/android/dialer/calllog/ClearCallLogDialog.java
+++ b/src/com/android/dialer/calllog/ClearCallLogDialog.java
@@ -22,6 +22,7 @@
import android.app.FragmentManager;
import android.app.ProgressDialog;
import android.content.ContentResolver;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.AsyncTask;
@@ -29,11 +30,16 @@
import android.provider.CallLog.Calls;
import com.android.dialer.R;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialerbind.ObjectFactory;
/**
* Dialog that clears the call log after confirming with the user
*/
public class ClearCallLogDialog extends DialogFragment {
+ private static final CachedNumberLookupService mCachedNumberLookupService =
+ ObjectFactory.newCachedNumberLookupService();
+
/** Preferred way to show this dialog */
public static void show(FragmentManager fragmentManager) {
ClearCallLogDialog dialog = new ClearCallLogDialog();
@@ -43,6 +49,7 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final ContentResolver resolver = getActivity().getContentResolver();
+ final Context context = getActivity().getApplicationContext();
final OnClickListener okListener = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -53,6 +60,9 @@
@Override
protected Void doInBackground(Void... params) {
resolver.delete(Calls.CONTENT_URI, null, null);
+ if (mCachedNumberLookupService != null) {
+ mCachedNumberLookupService.clearAllCacheEntries(context);
+ }
return null;
}
@Override
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index e0a074d..601f552 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -20,11 +20,12 @@
import android.text.TextUtils;
import com.android.contacts.common.util.UriUtils;
+import com.google.common.base.Objects;
/**
* Information for a contact as needed by the Call Log.
*/
-public final class ContactInfo {
+public class ContactInfo {
public Uri lookupUri;
public String name;
public int type;
@@ -39,6 +40,10 @@
public static ContactInfo EMPTY = new ContactInfo();
+ public static String GEOCODE_AS_LABEL = "";
+
+ public int sourceType = 0;
+
@Override
public int hashCode() {
// Uses only name and contactUri to determine hashcode.
@@ -68,4 +73,12 @@
if (!UriUtils.areEqual(photoUri, other.photoUri)) return false;
return true;
}
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this).add("lookupUri", lookupUri).add("name", name).add(
+ "type", type).add("label", label).add("number", number).add("formattedNumber",
+ formattedNumber).add("normalizedNumber", normalizedNumber).add("photoId", photoId)
+ .add("photoUri", photoUri).toString();
+ }
}
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index abe4a06..bcb98fd 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -19,12 +19,22 @@
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.DisplayNameSources;
import android.provider.ContactsContract.PhoneLookup;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
+import com.android.contacts.common.util.Constants;
import com.android.contacts.common.util.UriUtils;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+import com.android.dialerbind.ObjectFactory;
+
+import org.json.JSONException;
+import org.json.JSONObject;
/**
* Utility class to look up the contact information for a given number.
@@ -33,6 +43,9 @@
private final Context mContext;
private final String mCurrentCountryIso;
+ private static final CachedNumberLookupService mCachedNumberLookupService =
+ ObjectFactory.newCachedNumberLookupService();
+
public ContactInfoHelper(Context context, String currentCountryIso) {
mContext = context;
mCurrentCountryIso = currentCountryIso;
@@ -87,6 +100,7 @@
updatedInfo = new ContactInfo();
updatedInfo.number = number;
updatedInfo.formattedNumber = formatPhoneNumber(number, null, countryIso);
+ updatedInfo.lookupUri = createTemporaryContactUri(number);
} else {
updatedInfo = info;
}
@@ -95,6 +109,37 @@
}
/**
+ * Creates a JSON-encoded lookup uri for a unknown number without an associated contact
+ *
+ * @param number - Unknown phone number
+ * @return JSON-encoded URI that can be used to perform a lookup when clicking
+ * on the quick contact card.
+ */
+ private static Uri createTemporaryContactUri(String number) {
+ try {
+ final JSONObject contactRows = new JSONObject()
+ .put(Phone.CONTENT_ITEM_TYPE, new JSONObject()
+ .put(Phone.NUMBER, number)
+ .put(Phone.TYPE, Phone.TYPE_CUSTOM));
+
+ final String jsonString = new JSONObject()
+ .put(Contacts.DISPLAY_NAME, number)
+ .put(Contacts.DISPLAY_NAME_SOURCE, DisplayNameSources.PHONE)
+ .put(Contacts.CONTENT_ITEM_TYPE, contactRows)
+ .toString();
+
+ return Contacts.CONTENT_LOOKUP_URI.buildUpon()
+ .appendPath(Constants.LOOKUP_URI_ENCODED)
+ .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+ String.valueOf(Long.MAX_VALUE))
+ .encodedFragment(jsonString)
+ .build();
+ } catch (JSONException e) {
+ return null;
+ }
+ }
+
+ /**
* Looks up a contact using the given URI.
* <p>
* It returns null if an error occurs, {@link ContactInfo#EMPTY} if no matching contact is
@@ -183,6 +228,10 @@
ContactInfo info = lookupContactFromUri(uri);
if (info != null && info != ContactInfo.EMPTY) {
info.formattedNumber = formatPhoneNumber(number, null, countryIso);
+ } else if (mCachedNumberLookupService != null) {
+ CachedContactInfo cacheInfo = mCachedNumberLookupService
+ .lookupCachedContactFromNumber(mContext, number);
+ info = cacheInfo != null ? cacheInfo.getContactInfo() : null;
}
return info;
}
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
index 8bac657..14e1bed 100644
--- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
+++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
@@ -118,12 +118,12 @@
// Check if we already know the name associated with this number.
String name = names.get(newCall.number);
if (name == null) {
- // Look it up in the database.
- name = mNameLookupQuery.query(newCall.number);
+ name = mPhoneNumberHelper.getDisplayName(newCall.number,
+ newCall.numberPresentation).toString();
// If we cannot lookup the contact, use the number instead.
- if (name == null) {
- name = mPhoneNumberHelper.getDisplayNumber(newCall.number,
- newCall.numberPresentation, "").toString();
+ if (TextUtils.isEmpty(name)) {
+ // Look it up in the database.
+ name = mNameLookupQuery.query(newCall.number);
if (TextUtils.isEmpty(name)) {
name = newCall.number;
}
@@ -241,8 +241,7 @@
*/
private static final class DefaultNewCallsQuery implements NewCallsQuery {
private static final String[] PROJECTION = {
- Calls._ID, Calls.NUMBER, Calls.NUMBER_PRESENTATION,
- Calls.VOICEMAIL_URI
+ Calls._ID, Calls.NUMBER, Calls.VOICEMAIL_URI, Calls.NUMBER_PRESENTATION
};
private static final int ID_COLUMN_INDEX = 0;
private static final int NUMBER_COLUMN_INDEX = 1;
diff --git a/src/com/android/dialer/calllog/IntentProvider.java b/src/com/android/dialer/calllog/IntentProvider.java
index 01ebf2f..da0c69d 100644
--- a/src/com/android/dialer/calllog/IntentProvider.java
+++ b/src/com/android/dialer/calllog/IntentProvider.java
@@ -22,6 +22,7 @@
import android.database.Cursor;
import android.net.Uri;
import android.provider.CallLog.Calls;
+import android.util.Log;
import com.android.contacts.common.CallUtil;
import com.android.dialer.CallDetailActivity;
@@ -32,6 +33,9 @@
* The intent is constructed lazily with the given information.
*/
public abstract class IntentProvider {
+
+ private static final String TAG = IntentProvider.class.getSimpleName();
+
public abstract Intent getIntent(Context context);
public static IntentProvider getReturnCallIntentProvider(final String number) {
@@ -66,6 +70,14 @@
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
+ if (cursor.isClosed()) {
+ // There are reported instances where the cursor is already closed.
+ // b/10937133
+ // When causes a crash when it's accessed here.
+ Log.e(TAG, "getCallDetailIntentProvider() cursor is already closed.");
+ return null;
+ }
+
cursor.moveToPosition(position);
Intent intent = new Intent(context, CallDetailActivity.class);
diff --git a/src/com/android/dialer/calllog/PhoneNumberHelper.java b/src/com/android/dialer/calllog/PhoneNumberHelper.java
index 7d46f40..336facb 100644
--- a/src/com/android/dialer/calllog/PhoneNumberHelper.java
+++ b/src/com/android/dialer/calllog/PhoneNumberHelper.java
@@ -33,16 +33,23 @@
mResources = resources;
}
- /** Returns true if it is possible to place a call to the given number. */
- public static boolean canPlaceCallsTo(CharSequence number, int presentation) {
- return presentation == Calls.PRESENTATION_ALLOWED
- && !TextUtils.isEmpty(number);
- }
-
- /** Returns true if it is possible to send an SMS to the given number. */
- public boolean canSendSmsTo(CharSequence number, int presentation) {
- return canPlaceCallsTo(number, presentation)
- && !isVoicemailNumber(number) && !isSipNumber(number);
+ /* package */ CharSequence getDisplayName(CharSequence number, int presentation) {
+ if (presentation == Calls.PRESENTATION_UNKNOWN) {
+ return mResources.getString(R.string.unknown);
+ }
+ if (presentation == Calls.PRESENTATION_RESTRICTED) {
+ return mResources.getString(R.string.private_num);
+ }
+ if (presentation == Calls.PRESENTATION_PAYPHONE) {
+ return mResources.getString(R.string.payphone);
+ }
+ if (new PhoneNumberUtilsWrapper().isVoicemailNumber(number)) {
+ return mResources.getString(R.string.voicemail);
+ }
+ if (PhoneNumberUtilsWrapper.isLegacyUnknownNumbers(number)) {
+ return mResources.getString(R.string.unknown);
+ }
+ return "";
}
/**
@@ -53,41 +60,21 @@
*/
public CharSequence getDisplayNumber(CharSequence number,
int presentation, CharSequence formattedNumber) {
- if (presentation == Calls.PRESENTATION_UNKNOWN) {
- return mResources.getString(R.string.unknown);
+
+ final CharSequence displayName = getDisplayName(number, presentation);
+
+ if (!TextUtils.isEmpty(displayName)) {
+ return displayName;
}
- if (presentation == Calls.PRESENTATION_RESTRICTED) {
- return mResources.getString(R.string.private_num);
- }
- if (presentation == Calls.PRESENTATION_PAYPHONE) {
- return mResources.getString(R.string.payphone);
- }
+
if (TextUtils.isEmpty(number)) {
return "";
}
- if (isVoicemailNumber(number)) {
- return mResources.getString(R.string.voicemail);
- }
+
if (TextUtils.isEmpty(formattedNumber)) {
return number;
} else {
return formattedNumber;
}
}
-
- /**
- * Returns true if the given number is the number of the configured voicemail.
- * To be able to mock-out this, it is not a static method.
- */
- public boolean isVoicemailNumber(CharSequence number) {
- return PhoneNumberUtils.isVoiceMailNumber(number.toString());
- }
-
- /**
- * Returns true if the given number is a SIP address.
- * To be able to mock-out this, it is not a static method.
- */
- public boolean isSipNumber(CharSequence number) {
- return PhoneNumberUtils.isUriNumber(number.toString());
- }
}
diff --git a/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java b/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java
new file mode 100644
index 0000000..9913c20
--- /dev/null
+++ b/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java
@@ -0,0 +1,89 @@
+/*
+ * 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.dialer.calllog;
+
+import android.provider.CallLog;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+import com.google.android.collect.Sets;
+
+import java.util.Set;
+
+/**
+ *
+ */
+public class PhoneNumberUtilsWrapper {
+
+ private static final Set<String> LEGACY_UNKNOWN_NUMBERS = Sets.newHashSet("-1", "-2", "-3");
+
+ /** Returns true if it is possible to place a call to the given number. */
+ public static boolean canPlaceCallsTo(CharSequence number, int presentation) {
+ return presentation == CallLog.Calls.PRESENTATION_ALLOWED
+ && !TextUtils.isEmpty(number) && !isLegacyUnknownNumbers(number);
+ }
+
+ /**
+ * Returns true if it is possible to send an SMS to the given number.
+ */
+ public boolean canSendSmsTo(CharSequence number, int presentation) {
+ return canPlaceCallsTo(number, presentation) && !isVoicemailNumber(number) && !isSipNumber(
+ number);
+ }
+
+ /**
+ * Returns true if the given number is the number of the configured voicemail. To be able to
+ * mock-out this, it is not a static method.
+ */
+ public boolean isVoicemailNumber(CharSequence number) {
+ return PhoneNumberUtils.isVoiceMailNumber(number.toString());
+ }
+
+ /**
+ * Returns true if the given number is a SIP address. To be able to mock-out this, it is not a
+ * static method.
+ */
+ public boolean isSipNumber(CharSequence number) {
+ return PhoneNumberUtils.isUriNumber(number.toString());
+ }
+
+ public static boolean isUnknownNumberThatCanBeLookedUp(CharSequence number, int presentation) {
+ if (presentation == CallLog.Calls.PRESENTATION_UNKNOWN) {
+ return false;
+ }
+ if (presentation == CallLog.Calls.PRESENTATION_RESTRICTED) {
+ return false;
+ }
+ if (presentation == CallLog.Calls.PRESENTATION_PAYPHONE) {
+ return false;
+ }
+ if (TextUtils.isEmpty(number)) {
+ return false;
+ }
+ if (new PhoneNumberUtilsWrapper().isVoicemailNumber(number)) {
+ return false;
+ }
+ if (isLegacyUnknownNumbers(number.toString())) {
+ return false;
+ }
+ return true;
+ }
+
+ public static boolean isLegacyUnknownNumbers(CharSequence number) {
+ return LEGACY_UNKNOWN_NUMBERS.contains(number.toString());
+ }
+}
diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java
index a802825..b9e4b9a 100644
--- a/src/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/src/com/android/dialer/database/DialerDatabaseHelper.java
@@ -16,11 +16,13 @@
package com.android.dialer.database;
+import android.content.ContentValues;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.net.Uri;
@@ -31,9 +33,11 @@
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
import android.util.Log;
import com.android.contacts.common.util.StopWatch;
+import com.android.dialer.R;
import com.android.dialer.dialpad.SmartDialNameMatcher;
import com.android.dialer.dialpad.SmartDialPrefix;
@@ -68,14 +72,15 @@
* 0-98 KeyLimePie
* </pre>
*/
- private static final int DATABASE_VERSION = 2;
- private static final String SMARTDIAL_DATABASE_NAME = "dialer.db";
+ public static final int DATABASE_VERSION = 4;
+ public static final String DATABASE_NAME = "dialer.db";
/**
* Saves the last update time of smart dial databases to shared preferences.
*/
- private static final String DATABASE_LAST_CREATED_SHARED_PREF = "com.android.dialer_smartdial";
+ private static final String DATABASE_LAST_CREATED_SHARED_PREF = "com.android.dialer";
private static final String LAST_UPDATED_MILLIS = "last_updated_millis";
+ private static final String DATABASE_VERSION_PROPERTY = "database_version";
private static final int MAX_ENTRIES = 20;
@@ -84,6 +89,8 @@
static final String SMARTDIAL_TABLE = "smartdial_table";
/** Saves all possible prefixes to refer to a contacts.*/
static final String PREFIX_TABLE = "prefix_table";
+ /** Database properties for internal use */
+ static final String PROPERTIES = "properties";
}
public interface SmartDialDbColumns {
@@ -108,6 +115,11 @@
static final String CONTACT_ID = "contact_id";
}
+ public interface PropertiesColumns {
+ String PROPERTY_KEY = "property_key";
+ String PROPERTY_VALUE = "property_value";
+ }
+
/** Query options for querying the contact database.*/
public static interface PhoneQuery {
static final Uri URI = Phone.CONTENT_URI.buildUpon().
@@ -293,7 +305,11 @@
Log.v(TAG, "Getting Instance");
}
if (sSingleton == null) {
- sSingleton = new DialerDatabaseHelper(context, SMARTDIAL_DATABASE_NAME);
+ // Use application context instead of activity context because this is a singleton,
+ // and we don't want to leak the activity if the activity is not running but the
+ // dialer database helper is still doing work.
+ sSingleton = new DialerDatabaseHelper(context.getApplicationContext(),
+ DATABASE_NAME);
}
return sSingleton;
}
@@ -307,7 +323,11 @@
}
protected DialerDatabaseHelper(Context context, String databaseName) {
- super(context, databaseName, null, DATABASE_VERSION);
+ this(context, databaseName, DATABASE_VERSION);
+ }
+
+ protected DialerDatabaseHelper(Context context, String databaseName, int dbVersion) {
+ super(context, databaseName, null, dbVersion);
mContext = Preconditions.checkNotNull(context, "Context must not be null");
}
@@ -318,6 +338,11 @@
*/
@Override
public void onCreate(SQLiteDatabase db) {
+ setupTables(db);
+ }
+
+ private void setupTables(SQLiteDatabase db) {
+ dropTables(db);
db.execSQL("CREATE TABLE " + Tables.SMARTDIAL_TABLE + " (" +
SmartDialDbColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
SmartDialDbColumns.DATA_ID + " INTEGER, " +
@@ -340,28 +365,111 @@
PrefixColumns.PREFIX + " TEXT COLLATE NOCASE, " +
PrefixColumns.CONTACT_ID + " INTEGER" +
");");
+
+ db.execSQL("CREATE TABLE " + Tables.PROPERTIES + " (" +
+ PropertiesColumns.PROPERTY_KEY + " TEXT PRIMARY KEY, " +
+ PropertiesColumns.PROPERTY_VALUE + " TEXT " +
+ ");");
+
+ setProperty(db, DATABASE_VERSION_PROPERTY, String.valueOf(DATABASE_VERSION));
+ resetSmartDialLastUpdatedTime();
+ }
+
+ public void dropTables(SQLiteDatabase db) {
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.PREFIX_TABLE);
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.SMARTDIAL_TABLE);
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.PROPERTIES);
}
@Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- Log.w(TAG, oldVersion + " to " + newVersion + ", rebuilding table");
+ public void onUpgrade(SQLiteDatabase db, int oldNumber, int newNumber) {
+ // Disregard the old version and new versions provided by SQLiteOpenHelper, we will read
+ // our own from the database.
+ int oldVersion;
+
+ oldVersion = getPropertyAsInt(db, DATABASE_VERSION_PROPERTY, 0);
+
+ if (oldVersion == 0) {
+ Log.e(TAG, "Malformed database version..recreating database");
+ }
+
+ if (oldVersion < 4) {
+ setupTables(db);
+ return;
+ }
+
+ if (oldVersion != DATABASE_VERSION) {
+ throw new IllegalStateException(
+ "error upgrading the database to version " + DATABASE_VERSION);
+ }
+
+ setProperty(db, DATABASE_VERSION_PROPERTY, String.valueOf(DATABASE_VERSION));
+ }
+
+ /**
+ * Stores a key-value pair in the {@link Tables#PROPERTIES} table.
+ */
+ public void setProperty(String key, String value) {
+ setProperty(getWritableDatabase(), key, value);
+ }
+
+ public void setProperty(SQLiteDatabase db, String key, String value) {
+ final ContentValues values = new ContentValues();
+ values.put(PropertiesColumns.PROPERTY_KEY, key);
+ values.put(PropertiesColumns.PROPERTY_VALUE, value);
+ db.replace(Tables.PROPERTIES, null, values);
+ }
+
+ /**
+ * Returns the value from the {@link Tables#PROPERTIES} table.
+ */
+ public String getProperty(String key, String defaultValue) {
+ return getProperty(getReadableDatabase(), key, defaultValue);
+ }
+
+ public String getProperty(SQLiteDatabase db, String key, String defaultValue) {
+ try {
+ final Cursor cursor = db.query(Tables.PROPERTIES,
+ new String[] {PropertiesColumns.PROPERTY_VALUE},
+ PropertiesColumns.PROPERTY_KEY + "=?",
+ new String[] {key}, null, null, null);
+ String value = null;
+ try {
+ if (cursor.moveToFirst()) {
+ value = cursor.getString(0);
+ }
+ } finally {
+ cursor.close();
+ }
+ return value != null ? value : defaultValue;
+ } catch (SQLiteException e) {
+ return defaultValue;
+ }
+ }
+
+ public int getPropertyAsInt(SQLiteDatabase db, String key, int defaultValue) {
+ final String stored = getProperty(db, key, "");
+ try {
+ return Integer.parseInt(stored);
+ } catch (NumberFormatException e) {
+ return defaultValue;
+ }
+ }
+
+ private void resetSmartDialLastUpdatedTime() {
final SharedPreferences databaseLastUpdateSharedPref = mContext.getSharedPreferences(
DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
editor.putLong(LAST_UPDATED_MILLIS, 0);
editor.commit();
-
- db.execSQL("DROP TABLE IF EXISTS " + Tables.PREFIX_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + Tables.SMARTDIAL_TABLE);
- onCreate(db);
}
/**
* Starts the database upgrade process in the background.
*/
public void startSmartDialUpdateThread() {
- new SmartDialUpdateAsyncTask().execute();
+ new SmartDialUpdateAsyncTask().execute();
}
private class SmartDialUpdateAsyncTask extends AsyncTask {
@@ -524,7 +632,13 @@
insert.bindString(2, updatedContactCursor.getString(PhoneQuery.PHONE_NUMBER));
insert.bindLong(3, updatedContactCursor.getLong(PhoneQuery.PHONE_CONTACT_ID));
insert.bindString(4, updatedContactCursor.getString(PhoneQuery.PHONE_LOOKUP_KEY));
- insert.bindString(5, updatedContactCursor.getString(PhoneQuery.PHONE_DISPLAY_NAME));
+ final String displayName = updatedContactCursor.getString(
+ PhoneQuery.PHONE_DISPLAY_NAME);
+ if (displayName == null) {
+ insert.bindString(5, mContext.getResources().getString(R.string.missing_name));
+ } else {
+ insert.bindString(5, displayName);
+ }
insert.bindLong(6, updatedContactCursor.getLong(PhoneQuery.PHONE_PHOTO_ID));
insert.bindLong(7, updatedContactCursor.getLong(PhoneQuery.PHONE_LAST_TIME_USED));
insert.bindLong(8, updatedContactCursor.getInt(PhoneQuery.PHONE_TIMES_USED));
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index fefbcc4..00b8281 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -36,10 +36,11 @@
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
-import android.provider.Contacts.Intents.Insert;
+import android.provider.ContactsContract.Contacts;
import android.provider.Contacts.People;
import android.provider.Contacts.Phones;
import android.provider.Contacts.PhonesColumns;
+import android.provider.ContactsContract.Intents;
import android.provider.Settings;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneStateListener;
@@ -52,11 +53,13 @@
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
@@ -90,6 +93,8 @@
import com.android.phone.common.HapticFeedback;
import com.google.common.annotations.VisibleForTesting;
+import java.util.HashSet;
+
/**
* Fragment that displays a twelve-key phone dialpad.
*/
@@ -136,6 +141,30 @@
}
}
+ /**
+ * LinearLayout that always returns true for onHoverEvent callbacks, to fix
+ * problems with accessibility due to the dialpad overlaying other fragments.
+ */
+ public static class HoverIgnoringLinearLayout extends LinearLayout {
+
+ public HoverIgnoringLinearLayout(Context context) {
+ super(context);
+ }
+
+ public HoverIgnoringLinearLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public HoverIgnoringLinearLayout(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @Override
+ public boolean onHoverEvent(MotionEvent event) {
+ return true;
+ }
+ }
+
public interface OnDialpadQueryChangedListener {
void onDialpadQueryChanged(String query);
}
@@ -177,21 +206,18 @@
private ToneGenerator mToneGenerator;
private final Object mToneGeneratorLock = new Object();
private View mDialpad;
+ private View mSpacer;
+
/**
- * Remembers the number of dialpad buttons which are pressed at this moment.
- * If it becomes 0, meaning no buttons are pressed, we'll call
- * {@link ToneGenerator#stopTone()}; the method shouldn't be called unless the last key is
- * released.
+ * Set of dialpad keys that are currently being pressed
*/
- private int mDialpadPressCount;
+ private final HashSet<View> mPressedDialpadKeys = new HashSet<View>(12);
private View mDialButtonContainer;
private View mDialButton;
private ListView mDialpadChooser;
private DialpadChooserAdapter mDialpadChooserAdapter;
- private DialerDatabaseHelper mDialerDatabaseHelper;
-
/**
* Regular expression prohibiting manual phone call. Can be empty, which means "no rule".
*/
@@ -327,9 +353,6 @@
mContactsPrefs = new ContactsPreferences(getActivity());
mCurrentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
- mDialerDatabaseHelper = DialerDatabaseHelper.getInstance(getActivity());
- SmartDialPrefix.initializeNanpSettings(getActivity());
-
try {
mHaptic.init(getActivity(),
getResources().getBoolean(R.bool.config_enable_dialer_key_vibration));
@@ -407,6 +430,18 @@
mDelete.setOnLongClickListener(this);
}
+ mSpacer = fragmentView.findViewById(R.id.spacer);
+ mSpacer.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if (isDigitsEmpty()) {
+ hideAndClearDialpad();
+ return true;
+ }
+ return false;
+ }
+ });
+
mDialpad = fragmentView.findViewById(R.id.dialpad); // This is null in landscape mode.
// In landscape we put the keyboard in phone mode.
@@ -605,10 +640,12 @@
R.string.dialpad_8_letters, R.string.dialpad_9_letters,
R.string.dialpad_star_letters, R.string.dialpad_pound_letters};
+ final Resources resources = getResources();
+
DialpadKeyButton dialpadKey;
TextView numberView;
TextView lettersView;
- final Resources resources = getResources();
+
for (int i = 0; i < buttonIds.length; i++) {
dialpadKey = (DialpadKeyButton) fragmentView.findViewById(buttonIds[i]);
dialpadKey.setLayoutParams(new TableRow.LayoutParams(
@@ -616,9 +653,15 @@
dialpadKey.setOnPressedListener(this);
numberView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_number);
lettersView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_letters);
- numberView.setText(resources.getString(numberIds[i]));
+ final String numberString = resources.getString(numberIds[i]);
+ numberView.setText(numberString);
+ dialpadKey.setContentDescription(numberString);
if (lettersView != null) {
lettersView.setText(resources.getString(letterIds[i]));
+ if (buttonIds[i] == R.id.zero) {
+ lettersView.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(
+ R.dimen.dialpad_key_plus_size));
+ }
}
}
@@ -671,12 +714,8 @@
}
}
stopWatch.lap("tg");
- // Prevent unnecessary confusion. Reset the press count anyway.
- mDialpadPressCount = 0;
- // Initialize smart dialing state. This has to be done before anything is filled in before
- // the dialpad edittext to prevent entries from being loaded from a null cache.
- initializeSmartDialingState();
+ mPressedDialpadKeys.clear();
configureScreenFromIntent(getActivity());
@@ -732,8 +771,7 @@
// Make sure we don't leave this activity with a tone still playing.
stopTone();
- // Just in case reset the counter too.
- mDialpadPressCount = 0;
+ mPressedDialpadKeys.clear();
synchronized (mToneGeneratorLock) {
if (mToneGenerator != null) {
@@ -754,7 +792,7 @@
if (mClearDigitsOnStop) {
mClearDigitsOnStop = false;
- mDigits.getText().clear();
+ clearDialpad();
}
}
@@ -775,19 +813,15 @@
} else {
final CharSequence digits = mDigits.getText();
// Put the current digits string into an intent
- addToContactMenuItem.setIntent(getAddToContactIntent(digits));
+ addToContactMenuItem.setIntent(DialtactsActivity.getAddNumberToContactIntent(digits));
addToContactMenuItem.setVisible(true);
}
}
- private static Intent getAddToContactIntent(CharSequence digits) {
- final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
- intent.putExtra(Insert.PHONE, digits);
- intent.setType(People.CONTENT_ITEM_TYPE);
- return intent;
- }
-
private void keyPressed(int keyCode) {
+ if (getView().getTranslationY() != 0) {
+ return;
+ }
switch (keyCode) {
case KeyEvent.KEYCODE_1:
playTone(ToneGenerator.TONE_DTMF_1, TONE_LENGTH_INFINITE);
@@ -917,20 +951,11 @@
break;
}
}
- mDialpadPressCount++;
+ mPressedDialpadKeys.add(view);
} else {
view.jumpDrawablesToCurrentState();
- mDialpadPressCount--;
- if (mDialpadPressCount < 0) {
- // e.g.
- // - when the user action is detected as horizontal swipe, at which only
- // "up" event is thrown.
- // - when the user long-press '0' button, at which dialpad will decrease this count
- // while it still gets press-up event here.
- if (DEBUG) Log.d(TAG, "mKeyPressCount become negative.");
- stopTone();
- mDialpadPressCount = 0;
- } else if (mDialpadPressCount == 0) {
+ mPressedDialpadKeys.remove(view);
+ if (mPressedDialpadKeys.isEmpty()) {
stopTone();
}
}
@@ -1018,12 +1043,9 @@
removePreviousDigitIfPossible();
keyPressed(KeyEvent.KEYCODE_PLUS);
- // Stop tone immediately and decrease the press count, so that possible subsequent
- // dial button presses won't honor the 0 click any more.
- // Note: this *will* make mDialpadPressCount negative when the 0 key is released,
- // which should be handled appropriately.
+ // Stop tone immediately
stopTone();
- if (mDialpadPressCount > 0) mDialpadPressCount--;
+ mPressedDialpadKeys.remove(view);
return true;
}
@@ -1063,8 +1085,11 @@
public void callVoicemail() {
startActivity(getVoicemailIntent());
- mClearDigitsOnStop = true;
- getActivity().finish();
+ hideAndClearDialpad();
+ }
+
+ private void hideAndClearDialpad() {
+ ((DialtactsActivity) getActivity()).hideDialpadFragment(false, true);
}
public static class ErrorDialogFragment extends DialogFragment {
@@ -1160,12 +1185,15 @@
(getActivity() instanceof DialtactsActivity ?
((DialtactsActivity) getActivity()).getCallOrigin() : null));
startActivity(intent);
- mClearDigitsOnStop = true;
- getActivity().finish();
+ hideAndClearDialpad();
}
}
}
+ public void clearDialpad() {
+ mDigits.getText().clear();
+ }
+
private String getCallOrigin() {
return (getActivity() instanceof DialtactsActivity) ?
((DialtactsActivity) getActivity()).getCallOrigin() : null;
@@ -1681,13 +1709,6 @@
return intent;
}
- private void initializeSmartDialingState() {
- // Handle smart dialing related state
- // TODO krelease: This should probably be moved to somewhere more appropriate, maybe
- // into DialtactsActivity
- mDialerDatabaseHelper.startSmartDialUpdateThread();
- }
-
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
@@ -1697,6 +1718,7 @@
activity.showSearchBar();
} else {
activity.hideSearchBar();
+ mDigits.requestFocus();
}
}
diff --git a/src/com/android/dialer/dialpad/DialpadKeyButton.java b/src/com/android/dialer/dialpad/DialpadKeyButton.java
index 9aae631..9a20993 100644
--- a/src/com/android/dialer/dialpad/DialpadKeyButton.java
+++ b/src/com/android/dialer/dialpad/DialpadKeyButton.java
@@ -25,7 +25,7 @@
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
-import android.widget.RelativeLayout;
+import android.widget.FrameLayout;
/**
* Custom class for dialpad buttons.
@@ -33,7 +33,7 @@
* This class implements lift-to-type interaction when touch exploration is
* enabled.
*/
-public class DialpadKeyButton extends RelativeLayout {
+public class DialpadKeyButton extends FrameLayout {
/** Accessibility manager instance used to check touch exploration state. */
private AccessibilityManager mAccessibilityManager;
diff --git a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
index ee4a7a1..3690796 100644
--- a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
+++ b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
@@ -27,6 +27,7 @@
import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
+import com.android.dialerbind.DatabaseHelperManager;
import java.util.ArrayList;
@@ -58,11 +59,10 @@
if (DEBUG) {
Log.v(TAG, "Configure new query to be " + query);
}
- mQuery = query;
+ mQuery = SmartDialNameMatcher.normalizeNumber(query, SmartDialPrefix.getMap());
/** Constructs a name matcher object for matching names. */
- mNameMatcher = new SmartDialNameMatcher(PhoneNumberUtils.normalizeNumber(query),
- SmartDialPrefix.getMap());
+ mNameMatcher = new SmartDialNameMatcher(mQuery, SmartDialPrefix.getMap());
}
/**
@@ -76,7 +76,8 @@
}
/** Loads results from the database helper. */
- DialerDatabaseHelper dialerDatabaseHelper = DialerDatabaseHelper.getInstance(mContext);
+ final DialerDatabaseHelper dialerDatabaseHelper = DatabaseHelperManager.getDatabaseHelper(
+ mContext);
final ArrayList<ContactNumber> allMatches = dialerDatabaseHelper.getLooseMatches(mQuery,
mNameMatcher);
@@ -161,6 +162,8 @@
}
private void releaseResources(Cursor cursor) {
- cursor.close();
+ if (cursor != null) {
+ cursor.close();
+ }
}
}
diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
index 8c64c5f..722b9b3 100644
--- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -309,15 +309,6 @@
}
private void performAction(String phoneNumber) {
- if (mInteractionType == ContactDisplayUtils.INTERACTION_CALL && mContactId !=
- UNKNOWN_CONTACT_ID) {
- // Since we are making an outgoing call to this contact, undemote it here.
- // If the contact is not demoted, this will not do anything.
- final ContentValues cv = new ContentValues(1);
- cv.put(String.valueOf(mContactId), PinnedPositions.UNDEMOTE);
- mContext.getContentResolver().update(PinnedPositions.UPDATE_URI, cv, null, null);
- }
-
PhoneNumberInteraction.performAction(mContext, phoneNumber, mInteractionType, mCallOrigin);
}
diff --git a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
new file mode 100644
index 0000000..30d01d2
--- /dev/null
+++ b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
@@ -0,0 +1,82 @@
+/*
+ * 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.dialer.interactions;
+
+import android.content.BroadcastReceiver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.PhoneLookup;
+import android.provider.ContactsContract.PinnedPositions;
+import android.text.TextUtils;
+
+/**
+ * This broadcast receiver is used to listen to outgoing calls and undemote formerly demoted
+ * contacts if a phone call is made to a phone number belonging to that contact.
+ */
+public class UndemoteOutgoingCallReceiver extends BroadcastReceiver {
+
+ private static final long NO_CONTACT_FOUND = -1;
+
+ @Override
+ public void onReceive(final Context context, Intent intent) {
+ if (intent != null && Intent.ACTION_NEW_OUTGOING_CALL.equals(intent.getAction())) {
+ final String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
+ if (TextUtils.isEmpty(number)) {
+ return;
+ }
+ final long id = getContactIdFromPhoneNumber(context, number);
+ if (id != NO_CONTACT_FOUND) {
+ final Thread thread = new Thread() {
+ @Override
+ public void run() {
+ undemoteContactWithId(context, id);
+ }
+ };
+ thread.start();
+ }
+ }
+ }
+
+ private void undemoteContactWithId(Context context, long id) {
+ final ContentValues cv = new ContentValues(1);
+ cv.put(String.valueOf(id), PinnedPositions.UNDEMOTE);
+ // If the contact is not demoted, this will not do anything. Otherwise, it will
+ // restore it to an unpinned position. If it was a frequently called contact, it will
+ // show up once again show up on the favorites screen.
+ context.getContentResolver().update(PinnedPositions.UPDATE_URI, cv, null, null);
+ }
+
+ private long getContactIdFromPhoneNumber(Context context, String number) {
+ final Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
+ Uri.encode(number));
+ final Cursor cursor = context.getContentResolver().query(contactUri, new String[] {
+ PhoneLookup._ID}, null, null, null);
+ try {
+ if (cursor.moveToFirst()) {
+ final long id = cursor.getLong(0);
+ return id;
+ } else {
+ return NO_CONTACT_FOUND;
+ }
+ } finally {
+ cursor.close();
+ }
+ }
+}
diff --git a/src/com/android/dialer/list/AllContactsActivity.java b/src/com/android/dialer/list/AllContactsActivity.java
index c46702f..f5d739d 100644
--- a/src/com/android/dialer/list/AllContactsActivity.java
+++ b/src/com/android/dialer/list/AllContactsActivity.java
@@ -81,11 +81,6 @@
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
- final SpannableString s = new SpannableString(getString(R.string.show_all_contacts_title));
- s.setSpan(new TypefaceSpan(getString(R.string.show_all_contacts_title_font_family)), 0,
- s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- actionBar.setTitle(s);
-
setContentView(R.layout.all_contacts_activity);
}
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
new file mode 100644
index 0000000..4f3a4da
--- /dev/null
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -0,0 +1,170 @@
+package com.android.dialer.list;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.telephony.PhoneNumberUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.PhoneNumberListAdapter;
+import com.android.dialer.R;
+
+/**
+ * {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list
+ * items:
+ * 1) Directly calling the phone number query
+ * 2) Adding the phone number query to a contact
+ *
+ * These shortcuts can be enabled or disabled to toggle whether or not they show up in the
+ * list.
+ */
+public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
+
+ private String mFormattedQueryString;
+ private String mCountryIso;
+
+ public final static int SHORTCUT_INVALID = -1;
+ public final static int SHORTCUT_DIRECT_CALL = 0;
+ public final static int SHORTCUT_ADD_NUMBER_TO_CONTACTS = 1;
+
+ public final static int SHORTCUT_COUNT = 2;
+
+ private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
+
+ public DialerPhoneNumberListAdapter(Context context) {
+ super(context);
+
+ mCountryIso = GeoUtil.getCurrentCountryIso(context);
+
+ // Enable all shortcuts by default
+ for (int i = 0; i < mShortcutEnabled.length; i++) {
+ mShortcutEnabled[i] = true;
+ }
+ }
+
+ @Override
+ public int getCount() {
+ return super.getCount() + getShortcutCount();
+ }
+
+ /**
+ * @return The number of enabled shortcuts. Ranges from 0 to a maximum of SHORTCUT_COUNT
+ */
+ public int getShortcutCount() {
+ int count = 0;
+ for (int i = 0; i < mShortcutEnabled.length; i++) {
+ if (mShortcutEnabled[i]) count++;
+ }
+ return count;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ final int shortcut = getShortcutTypeFromPosition(position);
+ if (shortcut >= 0) {
+ // shortcutPos should always range from 1 to SHORTCUT_COUNT
+ return super.getViewTypeCount() + shortcut;
+ } else {
+ return super.getItemViewType(position);
+ }
+ }
+
+ @Override
+ public int getViewTypeCount() {
+ // Number of item view types in the super implementation + 2 for the 2 new shortcuts
+ return super.getViewTypeCount() + SHORTCUT_COUNT;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ final int shortcutType = getShortcutTypeFromPosition(position);
+ if (shortcutType >= 0) {
+ if (convertView != null) {
+ assignShortcutToView((ContactListItemView) convertView, shortcutType);
+ return convertView;
+ } else {
+ final ContactListItemView v = new ContactListItemView(getContext(), null);
+ assignShortcutToView(v, shortcutType);
+ return v;
+ }
+ } else {
+ return super.getView(position, convertView, parent);
+ }
+ }
+
+ /**
+ * @param position The position of the item
+ * @return The enabled shortcut type matching the given position if the item is a
+ * shortcut, -1 otherwise
+ */
+ public int getShortcutTypeFromPosition(int position) {
+ int shortcutCount = position - super.getCount();
+ if (shortcutCount >= 0) {
+ // Iterate through the array of shortcuts, looking only for shortcuts where
+ // mShortcutEnabled[i] is true
+ for (int i = 0; shortcutCount >= 0 && i < mShortcutEnabled.length; i++) {
+ if (mShortcutEnabled[i]) {
+ shortcutCount--;
+ if (shortcutCount < 0) return i;
+ }
+ }
+ throw new IllegalArgumentException("Invalid position - greater than cursor count "
+ + " but not a shortcut.");
+ }
+ return SHORTCUT_INVALID;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return getShortcutCount() == 0 && super.isEmpty();
+ }
+
+ @Override
+ public boolean isEnabled(int position) {
+ final int shortcutType = getShortcutTypeFromPosition(position);
+ if (shortcutType >= 0) {
+ return true;
+ } else {
+ return super.isEnabled(position);
+ }
+ }
+
+ private void assignShortcutToView(ContactListItemView v, int shortcutType) {
+ final CharSequence text;
+ final int drawableId;
+ final Resources resources = getContext().getResources();
+ final String number = getFormattedQueryString();
+ switch (shortcutType) {
+ case SHORTCUT_DIRECT_CALL:
+ text = resources.getString(R.string.search_shortcut_call_number, number);
+ drawableId = R.drawable.ic_phone_dk;
+ break;
+ case SHORTCUT_ADD_NUMBER_TO_CONTACTS:
+ text = resources.getString(R.string.search_shortcut_add_to_contacts);
+ drawableId = R.drawable.ic_add_person_dk;
+ break;
+ default:
+ throw new IllegalArgumentException("Invalid shortcut type");
+ }
+ v.setDrawableResource(R.drawable.list_item_avatar_bg, drawableId);
+ v.setDisplayName(text);
+ v.setPhotoPosition(super.getPhotoPosition());
+ }
+
+ public void setShortcutEnabled(int shortcutType, boolean visible) {
+ mShortcutEnabled[shortcutType] = visible;
+ }
+
+ public String getFormattedQueryString() {
+ return mFormattedQueryString;
+ }
+
+ @Override
+ public void setQueryString(String queryString) {
+ mFormattedQueryString = PhoneNumberUtils.formatNumber(
+ PhoneNumberUtils.convertAndStrip(queryString), mCountryIso);
+ super.setQueryString(queryString);
+ }
+}
diff --git a/src/com/android/dialer/list/PhoneFavoriteDragAndDropListeners.java b/src/com/android/dialer/list/PhoneFavoriteDragAndDropListeners.java
deleted file mode 100644
index ac089c7..0000000
--- a/src/com/android/dialer/list/PhoneFavoriteDragAndDropListeners.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * 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.dialer.list;
-
-import android.content.ClipData;
-import android.graphics.Rect;
-import android.util.Log;
-import android.view.DragEvent;
-import android.view.GestureDetector.SimpleOnGestureListener;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnDragListener;
-
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
-
-/**
- * Implements the OnLongClickListener and OnDragListener for phone's favorite tiles and rows.
- */
-public class PhoneFavoriteDragAndDropListeners {
-
- private static final String TAG = PhoneFavoriteDragAndDropListeners.class.getSimpleName();
- private static final boolean DEBUG = false;
-
- private static final float FLING_HEIGHT_PORTION = 1.f / 4.f;
- private static final float FLING_WIDTH_PORTION = 1.f / 6.f;
-
- public static class PhoneFavoriteGestureListener extends SimpleOnGestureListener {
- private static final float FLING_VELOCITY_MINIMUM = 5.0f;
- private float mFlingHorizontalThreshold;
- private float mFlingVerticalThreshold;
- private final PhoneFavoriteTileView mView;
-
- public PhoneFavoriteGestureListener(View view) {
- super();
- mView = (PhoneFavoriteTileView) view;
- }
-
- @Override
- public void onLongPress(MotionEvent event) {
- final ClipData data = ClipData.newPlainText("", "");
- mView.setPressed(false);
- if (mView instanceof PhoneFavoriteRegularRowView) {
- // If the view is regular row, start drag the row view.
- final View.DragShadowBuilder shadowBuilder =
- new View.DragShadowBuilder(mView.getParentRow());
- mView.getParentRow().startDrag(data, shadowBuilder, null, 0);
- } else {
- // If the view is a tile view, start drag the tile.
- final View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(mView);
- mView.startDrag(data, shadowBuilder, null, 0);
- }
- }
-
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
- final float x1 = e1.getX();
- final float x2 = e2.getX();
- // Temporarily disables parents from getting this event so the listview does not scroll.
- mView.getParent().requestDisallowInterceptTouchEvent(true);
- mView.setScrollOffset(x2 - x1);
- return true;
- }
-
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
- // Sets fling trigger threshold.
- mFlingVerticalThreshold = (float) mView.getHeight() * FLING_HEIGHT_PORTION;
- mFlingHorizontalThreshold = (float) mView.getWidth() * FLING_WIDTH_PORTION;
- final float x1 = e1.getX();
- final float x2 = e2.getX();
- final float y1 = e1.getY();
- final float y2 = e2.getY();
-
- mView.setPressed(false);
-
- if (Math.abs(y1 - y2) < mFlingVerticalThreshold &&
- Math.abs(x2 - x1) > mFlingHorizontalThreshold &&
- Math.abs(velocityX) > FLING_VELOCITY_MINIMUM) {
- // If fling is triggered successfully, end the scroll and setup removal dialogue.
- final int removeIndex = mView.getParentRow().getItemIndex(x1, y1);
- mView.setScrollEnd(false);
- mView.setupRemoveDialogue();
- mView.getParentRow().getTileAdapter().setPotentialRemoveEntryIndex(removeIndex);
-
- return true;
- } else {
- mView.setScrollEnd(true);
- return false;
- }
- }
-
- @Override
- public boolean onDown(MotionEvent e) {
- mView.setPressed(true);
- // Signals that the view will accept further events.
- return true;
- }
-
- @Override
- public boolean onSingleTapUp(MotionEvent e) {
- mView.performClick();
- return true;
- }
- }
-
- /**
- * Implements the OnDragListener to handle drag events.
- */
- public static class PhoneFavoriteDragListener implements OnDragListener {
- /** Location of the drag event. */
- private float mX = 0;
- private float mY = 0;
- private final ContactTileRow mContactTileRow;
- private final PhoneFavoritesTileAdapter mTileAdapter;
-
- public PhoneFavoriteDragListener(ContactTileRow contactTileRow,
- PhoneFavoritesTileAdapter tileAdapter) {
- super();
- mContactTileRow = contactTileRow;
- mTileAdapter = tileAdapter;
- }
-
- @Override
- public boolean onDrag(View v, DragEvent event) {
- if (DEBUG) {
- Log.v(TAG, event.toString());
- }
- // Handles drag events.
- switch (event.getAction()) {
- case DragEvent.ACTION_DRAG_STARTED:
- if (mTileAdapter != null && mContactTileRow != null
- && !mTileAdapter.getInDragging()) {
- // Gets the current drag location with respect to the whole Dialer view.
- mX = event.getX();
- mY = event.getY();
- if (DEBUG) {
- Log.v(TAG, String.valueOf(mX) + "; " + String.valueOf(mY));
- }
-
- final int[] rowLocation = new int[2];
- mContactTileRow.getLocationOnScreen(rowLocation);
-
- final Rect locationRect = new Rect(rowLocation[0], rowLocation[1],
- rowLocation[0] + mContactTileRow.getWidth(),
- rowLocation[1] + mContactTileRow.getHeight());
-
- if (locationRect.contains((int) mX, (int) mY)) {
- // Finds out which item is being dragged.
- // Computes relative coordinates as we get absolute coordinates.
- final int dragIndex = mContactTileRow.getItemIndex(
- mX - rowLocation[0], mY - rowLocation[1]);
- if (DEBUG) {
- Log.v(TAG, "Start dragging " + String.valueOf(dragIndex));
- }
- // Indicates a drag has started.
- mTileAdapter.setInDragging(true);
-
- // Temporarily pops out the Contact entry.
- mTileAdapter.popContactEntry(dragIndex);
- }
- }
- break;
- case DragEvent.ACTION_DRAG_ENTERED:
- break;
- case DragEvent.ACTION_DRAG_EXITED:
- break;
- case DragEvent.ACTION_DROP:
- // Gets the location of the drag with respect to the whole Dialer view.
- mX = event.getX() + v.getLeft();
- mY = event.getY() + v.getTop();
- if (DEBUG) {
- Log.v(TAG, String.valueOf(mX) + "; " + String.valueOf(mY));
- }
-
- // Indicates a drag has finished.
- if (mTileAdapter != null && mContactTileRow != null) {
- mTileAdapter.setInDragging(false);
-
- // Finds out at which position of the list the Contact is being dropped.
- final int dropIndex = mContactTileRow.getItemIndex(mX, mY);
- if (DEBUG) {
- Log.v(TAG, "Stop dragging " + String.valueOf(dropIndex));
- }
-
- // Adds the dragged contact to the drop position.
- mTileAdapter.dropContactEntry(dropIndex);
- }
- break;
- case DragEvent.ACTION_DRAG_ENDED:
- if (mTileAdapter.getInDragging()) {
- // If the drag and drop ends when the drop happens outside of any rows,
- // we will end the drag here and put the item back to where it was dragged
- // from before.
- mTileAdapter.setInDragging(false);
- mTileAdapter.dropToUnsupportedView();
- }
- break;
- case DragEvent.ACTION_DRAG_LOCATION:
- break;
- default:
- break;
- }
- return true;
- }
- }
-}
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index b6a5fb4..34666ee 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -15,39 +15,55 @@
*/
package com.android.dialer.list;
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ArgbEvaluator;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
import android.app.Activity;
import android.app.Fragment;
import android.app.LoaderManager;
+import android.content.Context;
import android.content.CursorLoader;
-import android.content.Intent;
import android.content.Loader;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.provider.CallLog;
import android.util.Log;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewTreeObserver;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
-import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.ListView;
-import android.widget.TextView;
+import android.widget.RelativeLayout;
+import android.widget.RelativeLayout.LayoutParams;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactTileLoaderFactory;
import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.list.ContactEntry;
+import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.ContactTileView;
-import com.android.contacts.common.list.PhoneNumberListAdapter;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogQuery;
import com.android.dialer.calllog.ContactInfoHelper;
import com.android.dialer.calllog.CallLogAdapter;
import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
+import com.android.dialerbind.ObjectFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
/**
* Fragment for Phone UI's favorite screen.
@@ -58,18 +74,31 @@
* A contact filter header is also inserted between those adapters' results.
*/
public class PhoneFavoriteFragment extends Fragment implements OnItemClickListener,
- CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher {
+ CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher,
+ PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener {
+
+ /**
+ * By default, the animation code assumes that all items in a list view are of the same height
+ * when animating new list items into view (e.g. from the bottom of the screen into view).
+ * This can cause incorrect translation offsets when a item that is larger or smaller than
+ * other list item is removed from the list. This key is used to provide the actual height
+ * of the removed object so that the actual translation appears correct to the user.
+ */
+ private static final long KEY_REMOVED_ITEM_HEIGHT = Long.MAX_VALUE;
+
private static final String TAG = PhoneFavoriteFragment.class.getSimpleName();
private static final boolean DEBUG = false;
+ private int mAnimationDuration;
+
/**
* Used with LoaderManager.
*/
private static int LOADER_ID_CONTACT_TILE = 1;
+ private static int MISSED_CALL_LOADER = 2;
- public interface OnPhoneFavoriteFragmentStartedListener {
- public void onPhoneFavoriteFragmentStarted();
- }
+ private static final String KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE =
+ "key_last_dismissed_call_shortcut_date";
public interface OnShowAllContactsListener {
public void onShowAllContacts();
@@ -80,6 +109,27 @@
public void onCallNumberDirectly(String phoneNumber);
}
+ private class MissedCallLogLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+
+ @Override
+ public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+ final Uri uri = CallLog.Calls.CONTENT_URI;
+ final String[] projection = new String[] {CallLog.Calls.TYPE};
+ final String selection = CallLog.Calls.TYPE + " = " + CallLog.Calls.MISSED_TYPE +
+ " AND " + CallLog.Calls.IS_READ + " = 0";
+ return new CursorLoader(getActivity(), uri, projection, selection, null, null);
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor data) {
+ mCallLogAdapter.setMissedCalls(data);
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Cursor> cursorLoader) {
+ }
+ }
+
private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
@Override
public CursorLoader onCreateLoader(int id, Bundle args) {
@@ -91,9 +141,7 @@
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onLoadFinished");
mContactTileAdapter.setContactCursor(data);
-
- // Show the filter header with "loading" state.
- mAccountFilterHeader.setVisibility(View.VISIBLE);
+ setEmptyViewVisibility(mContactTileAdapter.getCount() == 0);
}
@Override
@@ -145,20 +193,34 @@
private CallLogAdapter mCallLogAdapter;
private CallLogQueryHandler mCallLogQueryHandler;
- private TextView mEmptyView;
- private ListView mListView;
+ private View mParentView;
+
+ private PhoneFavoriteListView mListView;
+
private View mShowAllContactsButton;
- /**
- * Layout containing {@link #mAccountFilterHeader}. Used to limit area being "pressed".
- */
- private FrameLayout mAccountFilterHeaderContainer;
- private View mAccountFilterHeader;
+ private View mShowAllContactsInEmptyViewButton;
+ private View mContactTileFrame;
+
+ private TileInteractionTeaserView mTileInteractionTeaserView;
+
+ private final HashMap<Long, Integer> mItemIdTopMap = new HashMap<Long, Integer>();
+ private final HashMap<Long, Integer> mItemIdLeftMap = new HashMap<Long, Integer>();
/**
- * Layout used when contacts load is slower than expected and thus "loading" view should be
- * shown.
+ * Layout used when there are no favorites.
*/
- private View mLoadingView;
+ private View mEmptyView;
+
+ /**
+ * Call shortcuts older than this date (persisted in shared preferences) will not show up in
+ * at the top of the screen
+ */
+ private long mLastCallShortcutDate = 0;
+
+ /**
+ * The date of the current call shortcut that is showing on screen.
+ */
+ private long mCurrentCallShortcutDate = 0;
private final ContactTileView.Listener mContactTileAdapterListener =
new ContactTileAdapterListener();
@@ -174,8 +236,8 @@
// Construct two base adapters which will become part of PhoneFavoriteMergedAdapter.
// We don't construct the resultant adapter at this moment since it requires LayoutInflater
// that will be available on onCreateView().
-
mContactTileAdapter = new PhoneFavoritesTileAdapter(activity, mContactTileAdapterListener,
+ this,
getResources().getInteger(R.integer.contact_tile_column_count_in_favorites_new),
1);
mContactTileAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
@@ -186,54 +248,66 @@
if (DEBUG) Log.d(TAG, "onCreate()");
super.onCreate(savedState);
+ mAnimationDuration = getResources().getInteger(R.integer.fade_duration);
mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
this, 1);
final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
- mCallLogAdapter = new CallLogAdapter(getActivity(), this,
- new ContactInfoHelper(getActivity(), currentCountryIso));
+ mCallLogAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this,
+ new ContactInfoHelper(getActivity(), currentCountryIso), true, false);
setHasOptionsMenu(true);
}
@Override
public void onResume() {
super.onResume();
- mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL);
+ final SharedPreferences prefs = getActivity().getSharedPreferences(
+ DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+
+ mLastCallShortcutDate = prefs.getLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, 0);
+
+ fetchCalls();
mCallLogAdapter.setLoading(true);
+ getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE).forceLoad();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- final View listLayout = inflater.inflate(
- R.layout.phone_favorites_fragment, container, false);
+ mParentView = inflater.inflate(R.layout.phone_favorites_fragment, container, false);
- mListView = (ListView) listLayout.findViewById(R.id.contact_tile_list);
+ mListView = (PhoneFavoriteListView) mParentView.findViewById(R.id.contact_tile_list);
mListView.setItemsCanFocus(true);
mListView.setOnItemClickListener(this);
mListView.setVerticalScrollBarEnabled(false);
mListView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_RIGHT);
mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
+ mListView.setOnItemSwipeListener(mContactTileAdapter);
+ mListView.setOnDragDropListener(mContactTileAdapter);
- // TODO krelease: Don't show this header anymore
- // Create the account filter header but keep it hidden until "all" contacts are loaded.
- mAccountFilterHeaderContainer = new FrameLayout(getActivity(), null);
- mAccountFilterHeader = inflater.inflate(R.layout.account_filter_header_for_phone_favorite,
- mListView, false);
- mAccountFilterHeaderContainer.addView(mAccountFilterHeader);
+ final ImageView dragShadowOverlay =
+ (ImageView) mParentView.findViewById(R.id.contact_tile_drag_shadow_overlay);
+ mListView.setDragShadowOverlay(dragShadowOverlay);
- mLoadingView = inflater.inflate(R.layout.phone_loading_contacts, mListView, false);
+ mEmptyView = mParentView.findViewById(R.id.phone_no_favorites_view);
+
+ mShowAllContactsInEmptyViewButton = mParentView.findViewById(
+ R.id.show_all_contact_button_in_nofav);
+ prepareAllContactsButton(mShowAllContactsInEmptyViewButton);
+
mShowAllContactsButton = inflater.inflate(R.layout.show_all_contact_button, mListView,
false);
- mShowAllContactsButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- showAllContacts();
- }
- });
- mAdapter = new PhoneFavoriteMergedAdapter(getActivity(), mContactTileAdapter,
- mAccountFilterHeaderContainer, mCallLogAdapter, mLoadingView,
- mShowAllContactsButton);
+ prepareAllContactsButton(mShowAllContactsButton);
+
+ mContactTileFrame = mParentView.findViewById(R.id.contact_tile_frame);
+
+ mTileInteractionTeaserView = (TileInteractionTeaserView) inflater.inflate(
+ R.layout.tile_interactions_teaser_view, mListView, false);
+
+ mAdapter = new PhoneFavoriteMergedAdapter(getActivity(), this, mContactTileAdapter,
+ mCallLogAdapter, mShowAllContactsButton, mTileInteractionTeaserView);
+
+ mTileInteractionTeaserView.setAdapter(mAdapter);
mListView.setAdapter(mAdapter);
@@ -241,11 +315,7 @@
mListView.setFastScrollEnabled(false);
mListView.setFastScrollAlwaysVisible(false);
- mEmptyView = (TextView) listLayout.findViewById(R.id.contact_tile_list_empty);
- mEmptyView.setText(getString(R.string.listTotalAllContactsZero));
- mListView.setEmptyView(mEmptyView);
-
- return listLayout;
+ return mParentView;
}
public boolean hasFrequents() {
@@ -253,6 +323,19 @@
return mContactTileAdapter.getNumFrequents() > 0;
}
+ /* package */ void setEmptyViewVisibility(final boolean visible) {
+ final int previousVisibility = mEmptyView.getVisibility();
+ final int newVisibility = visible ? View.VISIBLE : View.GONE;
+
+ if (previousVisibility != newVisibility) {
+ final RelativeLayout.LayoutParams params = (LayoutParams) mContactTileFrame
+ .getLayoutParams();
+ params.height = visible ? LayoutParams.WRAP_CONTENT : LayoutParams.MATCH_PARENT;
+ mContactTileFrame.setLayoutParams(params);
+ mEmptyView.setVisibility(newVisibility);
+ }
+ }
+
@Override
public void onStart() {
super.onStart();
@@ -260,13 +343,6 @@
final Activity activity = getActivity();
try {
- ((OnPhoneFavoriteFragmentStartedListener) activity).onPhoneFavoriteFragmentStarted();
- } catch (ClassCastException e) {
- throw new ClassCastException(activity.toString()
- + " must implement OnPhoneFavoriteFragmentStartedListener");
- }
-
- try {
mActivityScrollListener = (OnListFragmentScrolledListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
@@ -284,6 +360,7 @@
// This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
// be called, on which we'll check if "all" contacts should be reloaded again or not.
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
+ getLoaderManager().initLoader(MISSED_CALL_LOADER, null, new MissedCallLogLoaderListener());
}
/**
@@ -312,20 +389,275 @@
mListener = listener;
}
- // TODO krelease: Implement this
@Override
public void onVoicemailStatusFetched(Cursor statusCursor) {
+ // no-op
}
@Override
public void onCallsFetched(Cursor cursor) {
+ animateListView();
mCallLogAdapter.setLoading(false);
+
+ // Save the date of the most recent call log item
+ if (cursor != null && cursor.moveToFirst()) {
+ mCurrentCallShortcutDate = cursor.getLong(CallLogQuery.DATE);
+ }
+
mCallLogAdapter.changeCursor(cursor);
mAdapter.notifyDataSetChanged();
}
- // TODO krelease: Implement this
@Override
public void fetchCalls() {
+ mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL, mLastCallShortcutDate);
+ }
+
+ @Override
+ public void onPause() {
+ // If there are any pending contact entries that are to be removed, remove them
+ mContactTileAdapter.removePendingContactEntry();
+ // Wipe the cache to refresh the call shortcut item. This is not that expensive because
+ // it only contains one item.
+ mCallLogAdapter.invalidateCache();
+ super.onPause();
+ }
+
+ /**
+ * Saves the current view offsets into memory
+ */
+ @SuppressWarnings("unchecked")
+ private void saveOffsets(int removedItemHeight) {
+ final int firstVisiblePosition = mListView.getFirstVisiblePosition();
+ if (DEBUG) {
+ Log.d(TAG, "Child count : " + mListView.getChildCount());
+ }
+ for (int i = 0; i < mListView.getChildCount(); i++) {
+ final View child = mListView.getChildAt(i);
+ final int position = firstVisiblePosition + i;
+ final long itemId = mAdapter.getItemId(position);
+ final int itemViewType = mAdapter.getItemViewType(position);
+ if (itemViewType == PhoneFavoritesTileAdapter.ViewTypes.TOP) {
+ // This is a tiled row, so save horizontal offsets instead
+ saveHorizontalOffsets((ContactTileRow) child, (ArrayList<ContactEntry>)
+ mAdapter.getItem(position));
+ }
+ if (DEBUG) {
+ Log.d(TAG, "Saving itemId: " + itemId + " for listview child " + i + " Top: "
+ + child.getTop());
+ }
+ mItemIdTopMap.put(itemId, child.getTop());
+ }
+
+ mItemIdTopMap.put(KEY_REMOVED_ITEM_HEIGHT, removedItemHeight);
+ }
+
+ private void saveHorizontalOffsets(ContactTileRow row, ArrayList<ContactEntry> list) {
+ for (int i = 0; i < list.size(); i++) {
+ final View child = row.getChildAt(i);
+ final ContactEntry entry = list.get(i);
+ final long itemId = mContactTileAdapter.getAdjustedItemId(entry.id);
+ if (DEBUG) {
+ Log.d(TAG, "Saving itemId: " + itemId + " for tileview child " + i + " Left: "
+ + child.getTop());
+ }
+ mItemIdLeftMap.put(itemId, child.getLeft());
+ }
+ }
+
+ /*
+ * Performs a animations for a row of tiles
+ */
+ private void performHorizontalAnimations(ContactTileRow row, ArrayList<ContactEntry> list,
+ long[] idsInPlace) {
+ if (mItemIdLeftMap.isEmpty()) {
+ return;
+ }
+ final AnimatorSet animSet = new AnimatorSet();
+ final ArrayList<Animator> animators = new ArrayList<Animator>();
+ for (int i = 0; i < list.size(); i++) {
+ final View child = row.getChildAt(i);
+ final ContactEntry entry = list.get(i);
+ final long itemId = mContactTileAdapter.getAdjustedItemId(entry.id);
+
+ if (containsId(idsInPlace, itemId)) {
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
+ break;
+ } else {
+ Integer startLeft = mItemIdLeftMap.get(itemId);
+ int left = child.getLeft();
+ if (startLeft != null) {
+ if (startLeft != left) {
+ int delta = startLeft - left;
+ if (DEBUG) {
+ Log.d(TAG, "Found itemId: " + itemId + " for tileview child " + i +
+ " Left: " + left +
+ " Delta: " + delta);
+ }
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationX", delta, 0.0f));
+ }
+ } else {
+ // In case the last square row is pushed up from the non-square section.
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationX", left, 0.0f));
+ }
+ }
+ }
+ if (animators.size() > 0) {
+ animSet.setDuration(mAnimationDuration).playTogether(animators);
+ animSet.start();
+ }
+ }
+
+ /*
+ * Performs animations for the list view. If the list item is a row of tiles, horizontal
+ * animations will be performed instead.
+ */
+ private void animateListView(final long... idsInPlace) {
+ if (mItemIdTopMap.isEmpty()) {
+ // Don't do animations if the database is being queried for the first time and
+ // the previous item offsets have not been cached, or the user hasn't done anything
+ // (dragging, swiping etc) that requires an animation.
+ return;
+ }
+
+ final int removedItemHeight = mItemIdTopMap.get(KEY_REMOVED_ITEM_HEIGHT);
+
+ final ViewTreeObserver observer = mListView.getViewTreeObserver();
+ observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+ @SuppressWarnings("unchecked")
+ @Override
+ public boolean onPreDraw() {
+ observer.removeOnPreDrawListener(this);
+ final int firstVisiblePosition = mListView.getFirstVisiblePosition();
+ final AnimatorSet animSet = new AnimatorSet();
+ final ArrayList<Animator> animators = new ArrayList<Animator>();
+ for (int i = 0; i < mListView.getChildCount(); i++) {
+ final View child = mListView.getChildAt(i);
+ int position = firstVisiblePosition + i;
+ final int itemViewType = mAdapter.getItemViewType(position);
+ if (itemViewType == PhoneFavoritesTileAdapter.ViewTypes.TOP) {
+ // This is a tiled row, so perform horizontal animations instead
+ performHorizontalAnimations((ContactTileRow) child, (
+ ArrayList<ContactEntry>) mAdapter.getItem(position), idsInPlace);
+ }
+
+ final long itemId = mAdapter.getItemId(position);
+
+ if (containsId(idsInPlace, itemId)) {
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
+ break;
+ } else {
+ Integer startTop = mItemIdTopMap.get(itemId);
+ final int top = child.getTop();
+ int delta = 0;
+ if (startTop != null) {
+ if (startTop != top) {
+ delta = startTop - top;
+ }
+ } else if (!mItemIdLeftMap.containsKey(itemId)) {
+ // Animate new views along with the others. The catch is that they did
+ // not exist in the start state, so we must calculate their starting
+ // position based on neighboring views.
+
+ final int itemHeight;
+ if (removedItemHeight == 0) {
+ itemHeight = child.getHeight() + mListView.getDividerHeight();
+ } else {
+ itemHeight = removedItemHeight;
+ }
+ startTop = top + (i > 0 ? itemHeight : -itemHeight);
+ delta = startTop - top;
+ } else {
+ // In case the first non-square row is pushed down
+ // from the square section.
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
+ }
+ if (DEBUG) {
+ Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
+ " Top: " + top +
+ " Delta: " + delta);
+ }
+
+ if (delta != 0) {
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationY", delta, 0.0f));
+ }
+ }
+ }
+
+ if (animators.size() > 0) {
+ animSet.setDuration(mAnimationDuration).playTogether(animators);
+ animSet.start();
+ }
+
+ mItemIdTopMap.clear();
+ mItemIdLeftMap.clear();
+ return true;
+ }
+ });
+ }
+
+ private boolean containsId(long[] ids, long target) {
+ // Linear search on array is fine because this is typically only 0-1 elements long
+ for (int i = 0; i < ids.length; i++) {
+ if (ids[i] == target) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void onDataSetChangedForAnimation(long... idsInPlace) {
+ animateListView(idsInPlace);
+ }
+
+ @Override
+ public void cacheOffsetsForDatasetChange() {
+ saveOffsets(0);
+ }
+
+ public void dismissShortcut(int height) {
+ saveOffsets(height);
+ mLastCallShortcutDate = mCurrentCallShortcutDate;
+ final SharedPreferences prefs = getActivity().getSharedPreferences(
+ DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+ prefs.edit().putLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, mLastCallShortcutDate)
+ .apply();
+ fetchCalls();
+ }
+
+ /**
+ * Returns a view that is laid out and styled to look like a regular contact, with the correct
+ * click behavior (to launch the all contacts activity when it is clicked).
+ */
+ private View prepareAllContactsButton(View v) {
+ final ContactListItemView view = (ContactListItemView) v;
+ view.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ showAllContacts();
+ }
+ });
+
+ view.setPhotoPosition(ContactListItemView.PhotoPosition.LEFT);
+ final Resources resources = getResources();
+ view.setBackgroundResource(R.drawable.contact_list_item_background);
+
+ view.setPaddingRelative(
+ resources.getDimensionPixelSize(R.dimen.favorites_row_start_padding),
+ resources.getDimensionPixelSize(R.dimen.favorites_row_end_padding),
+ resources.getDimensionPixelSize(R.dimen.favorites_row_top_padding),
+ resources.getDimensionPixelSize(R.dimen.favorites_row_bottom_padding));
+
+ view.setDisplayName(resources.getString(R.string.show_all_contacts_button_text));
+ view.setDrawableResource(R.drawable.list_item_avatar_bg,
+ R.drawable.ic_menu_all_contacts_dk);
+ return view;
}
}
diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java
new file mode 100644
index 0000000..99979dd
--- /dev/null
+++ b/src/com/android/dialer/list/PhoneFavoriteListView.java
@@ -0,0 +1,434 @@
+/*
+ * Copyright (C) 2012 Google Inc.
+ * Licensed to The Android Open Source Project.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.list;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.Bitmap;
+import android.os.Handler;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.DragEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.ListView;
+
+import com.android.dialer.R;
+import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
+import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
+import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
+
+/**
+ * The ListView composed of {@link ContactTileRow}.
+ * This ListView handles both
+ * - Swiping, which is borrowed from packages/apps/UnifiedEmail (com.android.mail.ui.Swipeable)
+ * - Drag and drop
+ */
+public class PhoneFavoriteListView extends ListView implements SwipeHelperCallback {
+
+ public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
+
+ private SwipeHelper mSwipeHelper;
+ private boolean mEnableSwipe = true;
+
+ private OnItemGestureListener mOnItemGestureListener;
+ private OnDragDropListener mOnDragDropListener;
+
+ private float mDensityScale;
+ private float mTouchSlop;
+
+ private int mTopScrollBound;
+ private int mBottomScrollBound;
+ private int mLastDragY;
+
+ private Handler mScrollHandler;
+ private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
+ private final int DRAG_SCROLL_PX_UNIT = 10;
+
+ private boolean mIsDragScrollerRunning = false;
+ private int mTouchDownForDragStartX;
+ private int mTouchDownForDragStartY;
+
+ private Bitmap mDragShadowBitmap;
+ private ImageView mDragShadowOverlay;
+ private int mAnimationDuration;
+
+ // X and Y offsets inside the item from where the user grabbed to the
+ // child's left coordinate. This is used to aid in the drawing of the drag shadow.
+ private int mTouchOffsetToChildLeft;
+ private int mTouchOffsetToChildTop;
+
+ private int mDragShadowLeft;
+ private int mDragShadowTop;
+
+ private final float DRAG_SHADOW_ALPHA = 0.7f;
+
+ /**
+ * {@link #mTopScrollBound} and {@link mBottomScrollBound} will be
+ * offseted to the top / bottom by {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels.
+ */
+ private final float BOUND_GAP_RATIO = 0.2f;
+
+ private final Runnable mDragScroller = new Runnable() {
+ @Override
+ public void run() {
+ if (mLastDragY <= mTopScrollBound) {
+ smoothScrollBy(-DRAG_SCROLL_PX_UNIT, (int) SCROLL_HANDLER_DELAY_MILLIS);
+ } else if (mLastDragY >= mBottomScrollBound) {
+ smoothScrollBy(DRAG_SCROLL_PX_UNIT, (int) SCROLL_HANDLER_DELAY_MILLIS);
+ }
+ mScrollHandler.postDelayed(this, SCROLL_HANDLER_DELAY_MILLIS);
+ }
+ };
+
+ private final AnimatorListenerAdapter mDragShadowOverAnimatorListener =
+ new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ if (mDragShadowBitmap != null) {
+ mDragShadowBitmap.recycle();
+ mDragShadowBitmap = null;
+ }
+ mDragShadowOverlay.setVisibility(GONE);
+ mDragShadowOverlay.setImageBitmap(null);
+ }
+ };
+
+ public PhoneFavoriteListView(Context context) {
+ this(context, null);
+ }
+
+ public PhoneFavoriteListView(Context context, AttributeSet attrs) {
+ this(context, attrs, -1);
+ }
+
+ public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ mAnimationDuration = context.getResources().getInteger(R.integer.fade_duration);
+ mDensityScale = getResources().getDisplayMetrics().density;
+ mTouchSlop = ViewConfiguration.get(context).getScaledPagingTouchSlop();
+ mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this,
+ mDensityScale, mTouchSlop);
+ setItemsCanFocus(true);
+ }
+
+ @Override
+ protected void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ mDensityScale= getResources().getDisplayMetrics().density;
+ mTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
+ mSwipeHelper.setDensityScale(mDensityScale);
+ mSwipeHelper.setPagingTouchSlop(mTouchSlop);
+ }
+
+ /**
+ * Enable swipe gestures.
+ */
+ public void enableSwipe(boolean enable) {
+ mEnableSwipe = enable;
+ }
+
+ public boolean isSwipeEnabled() {
+ return mEnableSwipe && mOnItemGestureListener.isSwipeEnabled();
+ }
+
+ public void setOnItemSwipeListener(OnItemGestureListener listener) {
+ mOnItemGestureListener = listener;
+ }
+
+ public void setOnDragDropListener(OnDragDropListener listener) {
+ mOnDragDropListener = listener;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ mTouchDownForDragStartX = (int) ev.getX();
+ mTouchDownForDragStartY = (int) ev.getY();
+ }
+ if (isSwipeEnabled()) {
+ return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
+ } else {
+ return super.onInterceptTouchEvent(ev);
+ }
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (mOnItemGestureListener != null) {
+ mOnItemGestureListener.onTouch();
+ }
+ if (isSwipeEnabled()) {
+ return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
+ } else {
+ return super.onTouchEvent(ev);
+ }
+ }
+
+ @Override
+ public View getChildAtPosition(MotionEvent ev) {
+ final View view = getViewAtPosition((int) ev.getX(), (int) ev.getY());
+ if (view != null &&
+ SwipeHelper.isSwipeable(view) &&
+ view.getVisibility() != GONE) {
+ // If this view is swipable in this listview, then return it. Otherwise
+ // return a null view, which will simply be ignored by the swipe helper.
+ return view;
+ }
+ return null;
+ }
+
+ @Override
+ public View getChildContentView(View view) {
+ return view.findViewById(R.id.contact_favorite_card);
+ }
+
+ @Override
+ public void onScroll() {}
+
+ @Override
+ public boolean canChildBeDismissed(View v) {
+ return SwipeHelper.isSwipeable(v);
+ }
+
+ @Override
+ public void onChildDismissed(final View v) {
+ if (v != null) {
+ if (mOnItemGestureListener != null) {
+ mOnItemGestureListener.onSwipe(v);
+ }
+ }
+ }
+
+ @Override
+ public void onDragCancelled(View v) {}
+
+ @Override
+ public void onBeginDrag(View v) {
+ final View tileRow = (View) v.getParent();
+
+ // We do this so the underlying ScrollView knows that it won't get
+ // the chance to intercept events anymore
+ requestDisallowInterceptTouchEvent(true);
+ }
+
+ @Override
+ public boolean dispatchDragEvent(DragEvent event) {
+ final int action = event.getAction();
+ final int eX = (int) event.getX();
+ final int eY = (int) event.getY();
+ switch (action) {
+ case DragEvent.ACTION_DRAG_STARTED:
+ if (!handleDragStarted(mTouchDownForDragStartX, mTouchDownForDragStartY)) {
+ return false;
+ };
+ break;
+ case DragEvent.ACTION_DRAG_LOCATION:
+ mLastDragY = eY;
+ handleDragHovered(eX, eY);
+ // Kick off {@link #mScrollHandler} if it's not started yet.
+ if (!mIsDragScrollerRunning &&
+ // And if the distance traveled while dragging exceeds the touch slop
+ (Math.abs(mLastDragY - mTouchDownForDragStartY) >= 4 * mTouchSlop)) {
+ mIsDragScrollerRunning = true;
+ ensureScrollHandler();
+ mScrollHandler.postDelayed(mDragScroller, SCROLL_HANDLER_DELAY_MILLIS);
+ }
+ break;
+ case DragEvent.ACTION_DRAG_ENTERED:
+ final int boundGap = (int) (getHeight() * BOUND_GAP_RATIO);
+ mTopScrollBound = (getTop() + boundGap);
+ mBottomScrollBound = (getBottom() - boundGap);
+ break;
+ case DragEvent.ACTION_DRAG_EXITED:
+ case DragEvent.ACTION_DRAG_ENDED:
+ case DragEvent.ACTION_DROP:
+ ensureScrollHandler();
+ mScrollHandler.removeCallbacks(mDragScroller);
+ mIsDragScrollerRunning = false;
+ // Either a successful drop or it's ended with out drop.
+ if (action == DragEvent.ACTION_DROP || action == DragEvent.ACTION_DRAG_ENDED) {
+ handleDragFinished(eX, eY);
+ }
+ break;
+ default:
+ break;
+ }
+ // This ListView will consumer the drag events on behalf of its children.
+ return true;
+ }
+
+ public void setDragShadowOverlay(ImageView overlay) {
+ mDragShadowOverlay = overlay;
+ }
+
+ /**
+ * Find the view under the pointer.
+ */
+ private View getViewAtPosition(int x, int y) {
+ final int count = getChildCount();
+ View child;
+ for (int childIdx = 0; childIdx < count; childIdx++) {
+ child = getChildAt(childIdx);
+ if (y >= child.getTop() && y <= child.getBottom()) {
+ return child;
+ }
+ }
+ return null;
+ }
+
+ private void ensureScrollHandler() {
+ if (mScrollHandler == null) {
+ mScrollHandler = getHandler();
+ }
+ }
+
+ /**
+ * @return True if the drag is started.
+ */
+ private boolean handleDragStarted(int x, int y) {
+ final View child = getViewAtPosition(x, y);
+ if (!(child instanceof ContactTileRow)) {
+ // Bail early.
+ return false;
+ }
+
+ final ContactTileRow tile = (ContactTileRow) child;
+
+ if (tile.getTileAdapter().hasPotentialRemoveEntryIndex()) {
+ return false;
+ }
+
+ final int itemIndex = tile.getItemIndex(x, y);
+ if (itemIndex != -1 && mOnDragDropListener != null) {
+ final PhoneFavoriteTileView tileView =
+ (PhoneFavoriteTileView) tile.getViewAtPosition(x, y);
+ if (mDragShadowOverlay == null) {
+ return false;
+ }
+
+ mDragShadowOverlay.clearAnimation();
+ mDragShadowBitmap = createDraggedChildBitmap(tileView);
+ if (mDragShadowBitmap == null) {
+ return false;
+ }
+
+ if (tileView instanceof PhoneFavoriteRegularRowView) {
+ mDragShadowLeft = tile.getLeft();
+ mDragShadowTop = tile.getTop();
+ } else {
+ // Square tile is relative to the contact tile,
+ // and contact tile is relative to this list view.
+ mDragShadowLeft = tileView.getLeft() + tileView.getParentRow().getLeft();
+ mDragShadowTop = tileView.getTop() + tileView.getParentRow().getTop();
+ }
+
+ mDragShadowOverlay.setImageBitmap(mDragShadowBitmap);
+ mDragShadowOverlay.setVisibility(VISIBLE);
+ mDragShadowOverlay.setAlpha(DRAG_SHADOW_ALPHA);
+
+ mDragShadowOverlay.setX(mDragShadowLeft);
+ mDragShadowOverlay.setY(mDragShadowTop);
+
+ // x and y passed in are the coordinates of where the user has touched down, calculate
+ // the offset to the top left coordinate of the dragged child. This will be used for
+ // drawing the drag shadow.
+ mTouchOffsetToChildLeft = x - mDragShadowLeft;
+ mTouchOffsetToChildTop = y - mDragShadowTop;
+
+ // invalidate to trigger a redraw of the drag shadow.
+ invalidate();
+
+ mOnDragDropListener.onDragStarted(itemIndex);
+ }
+
+ return true;
+ }
+
+ private void handleDragHovered(int x, int y) {
+ // Update the drag shadow location.
+ mDragShadowLeft = x - mTouchOffsetToChildLeft;
+ mDragShadowTop = y - mTouchOffsetToChildTop;
+ // Draw the drag shadow at its last known location if the drag shadow exists.
+ if (mDragShadowOverlay != null) {
+ mDragShadowOverlay.setX(mDragShadowLeft);
+ mDragShadowOverlay.setY(mDragShadowTop);
+ }
+
+ final View child = getViewAtPosition(x, y);
+ if (!(child instanceof ContactTileRow)) {
+ // Bail early.
+ return;
+ }
+
+ final ContactTileRow tile = (ContactTileRow) child;
+ final int itemIndex = tile.getItemIndex(x, y);
+ if (itemIndex != -1 && mOnDragDropListener != null) {
+ mOnDragDropListener.onDragHovered(itemIndex);
+ }
+ }
+
+ private void handleDragFinished(int x, int y) {
+ // Update the drag shadow location.
+ mDragShadowLeft = x - mTouchOffsetToChildLeft;
+ mDragShadowTop = y - mTouchOffsetToChildTop;
+
+ if (mDragShadowOverlay != null) {
+ mDragShadowOverlay.clearAnimation();
+ mDragShadowOverlay.animate().alpha(0.0f)
+ .setDuration(mAnimationDuration)
+ .setListener(mDragShadowOverAnimatorListener)
+ .start();
+ }
+
+ if (mOnDragDropListener != null) {
+ mOnDragDropListener.onDragFinished();
+ }
+ }
+
+ private Bitmap createDraggedChildBitmap(View view) {
+ view.setDrawingCacheEnabled(true);
+ final Bitmap cache = view.getDrawingCache();
+
+ Bitmap bitmap = null;
+ if (cache != null) {
+ try {
+ bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
+ } catch (final OutOfMemoryError e) {
+ Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
+ bitmap = null;
+ }
+ }
+
+ view.destroyDrawingCache();
+ view.setDrawingCacheEnabled(false);
+
+ return bitmap;
+ }
+
+ public interface OnDragDropListener {
+ public void onDragStarted(int itemIndex);
+ public void onDragHovered(int itemIndex);
+ public void onDragFinished();
+ }
+}
diff --git a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
index 0e5594e..daba39e 100644
--- a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
@@ -18,14 +18,21 @@
import android.content.Context;
import android.content.res.Resources;
+import android.database.Cursor;
import android.database.DataSetObserver;
+import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import com.android.dialer.R;
import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogNotificationsHelper;
+import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
+import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
/**
* An adapter that combines items from {@link com.android.contacts.common.list.ContactTileAdapter}
@@ -42,10 +49,14 @@
private static final String TAG = PhoneFavoriteMergedAdapter.class.getSimpleName();
+ private static final int TILE_INTERACTION_TEASER_VIEW_POSITION = 2;
+ private static final int TILE_INTERACTION_TEASER_VIEW_ID = -2;
+ private static final int ALL_CONTACTS_BUTTON_ITEM_ID = -1;
private final PhoneFavoritesTileAdapter mContactTileAdapter;
private final CallLogAdapter mCallLogAdapter;
- private final View mLoadingView;
private final View mShowAllContactsButton;
+ private final PhoneFavoriteFragment mFragment;
+ private final TileInteractionTeaserView mTileInteractionTeaserView;
private final int mCallLogPadding;
@@ -53,33 +64,70 @@
private final DataSetObserver mObserver;
+ private final CallLogQueryHandler mCallLogQueryHandler;
+
+ private final OnItemGestureListener mCallLogOnItemSwipeListener =
+ new OnItemGestureListener() {
+ @Override
+ public void onSwipe(View view) {
+ mCallLogQueryHandler.markNewCallsAsOld();
+ mCallLogQueryHandler.markNewVoicemailsAsOld();
+ CallLogNotificationsHelper.removeMissedCallNotifications();
+ CallLogNotificationsHelper.updateVoicemailNotifications(mContext);
+ mFragment.dismissShortcut(((View) view.getParent()).getHeight());
+ }
+
+ @Override
+ public void onTouch() {}
+
+ @Override
+ public boolean isSwipeEnabled() {
+ return true;
+ }
+ };
+
+ private final CallLogQueryHandler.Listener mCallLogQueryHandlerListener =
+ new CallLogQueryHandler.Listener() {
+ @Override
+ public void onVoicemailStatusFetched(Cursor statusCursor) {}
+
+ @Override
+ public void onCallsFetched(Cursor combinedCursor) {
+ mCallLogAdapter.invalidateCache();
+ mCallLogAdapter.changeCursor(combinedCursor);
+ mCallLogAdapter.notifyDataSetChanged();
+ }
+ };
+
public PhoneFavoriteMergedAdapter(Context context,
+ PhoneFavoriteFragment fragment,
PhoneFavoritesTileAdapter contactTileAdapter,
- View accountFilterHeaderContainer,
CallLogAdapter callLogAdapter,
- View loadingView,
- View showAllContactsButton) {
+ View showAllContactsButton,
+ TileInteractionTeaserView tileInteractionTeaserView) {
final Resources resources = context.getResources();
mContext = context;
+ mFragment = fragment;
mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
mContactTileAdapter = contactTileAdapter;
mCallLogAdapter = callLogAdapter;
-
mObserver = new CustomDataSetObserver();
+ mCallLogAdapter.registerDataSetObserver(mObserver);
mContactTileAdapter.registerDataSetObserver(mObserver);
- mLoadingView = loadingView;
mShowAllContactsButton = showAllContactsButton;
- }
-
- @Override
- public boolean isEmpty() {
- // This adapter will always contain at least the all contacts button
- return false;
+ mTileInteractionTeaserView = tileInteractionTeaserView;
+ mCallLogQueryHandler = new CallLogQueryHandler(mContext.getContentResolver(),
+ mCallLogQueryHandlerListener);
}
@Override
public int getCount() {
- return mContactTileAdapter.getCount() + mCallLogAdapter.getCount() + 1;
+ if (mContactTileAdapter.getCount() > 0) {
+ return mContactTileAdapter.getCount() + mCallLogAdapter.getCount() + 1 +
+ getTeaserViewCount();
+ } else {
+ return mCallLogAdapter.getCount();
+ }
}
@Override
@@ -90,20 +138,56 @@
if (position < callLogAdapterCount) {
return mCallLogAdapter.getItem(position);
}
- // Set position to the position of the actual favorite contact in the favorites adapter
- position = getAdjustedFavoritePosition(position, callLogAdapterCount);
}
+ // Set position to the position of the actual favorite contact in the favorites adapter
+ position = getAdjustedFavoritePosition(position, callLogAdapterCount);
+
return mContactTileAdapter.getItem(position);
}
+ /**
+ * In order to ensure that items have stable ids (for animation purposes), we need to
+ * guarantee that every single item has a unique ID, even across data set changes.
+ *
+ * These are the ranges of IDs reserved for each item type.
+ *
+ * -(N + 1) to -3: CallLogAdapterItems, where N is equal to the number of call log items
+ * -2: Teaser
+ * -1: All contacts button
+ * 0 to (N -1): Rows of tiled contacts, where N is equal to the max rows of tiled contacts
+ * N to infinity: Rows of regular contacts. Their item id is calculated by N + contact_id,
+ * where contact_id is guaranteed to never be negative.
+ */
@Override
public long getItemId(int position) {
- return position;
+ final int callLogAdapterCount = mCallLogAdapter.getCount();
+ if (position < callLogAdapterCount) {
+ // Call log items are not animated, so reusing their position for IDs is fine.
+ return ALL_CONTACTS_BUTTON_ITEM_ID - 2 - position;
+ } else if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount &&
+ mTileInteractionTeaserView.getShouldDisplayInList()){
+ return TILE_INTERACTION_TEASER_VIEW_ID;
+ } else if (position < (callLogAdapterCount + mContactTileAdapter.getCount() +
+ getTeaserViewCount())) {
+ return mContactTileAdapter.getItemId(
+ getAdjustedFavoritePosition(position, callLogAdapterCount));
+ } else {
+ // All contacts button
+ return ALL_CONTACTS_BUTTON_ITEM_ID;
+ }
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return true;
}
@Override
public int getViewTypeCount() {
- return (mContactTileAdapter.getViewTypeCount() + mCallLogAdapter.getViewTypeCount() + 1);
+ return (mContactTileAdapter.getViewTypeCount() + /* Favorite and frequent */
+ mCallLogAdapter.getViewTypeCount() + /* Recent call log */
+ getTeaserViewCount() + /* Teaser */
+ 1); /* Show all contacts button. */
}
@Override
@@ -114,6 +198,10 @@
// View type of the call log adapter is the last view type of the contact tile adapter
// + 1
return mContactTileAdapter.getViewTypeCount();
+ } else if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount &&
+ mTileInteractionTeaserView.getShouldDisplayInList()) {
+ // View type of the teaser row is the last view type of the contact tile adapter + 3
+ return mContactTileAdapter.getViewTypeCount() + 2;
} else if (position < getCount() - 1) {
return mContactTileAdapter.getItemViewType(
getAdjustedFavoritePosition(position, callLogAdapterCount));
@@ -128,17 +216,24 @@
public View getView(int position, View convertView, ViewGroup parent) {
final int callLogAdapterCount = mCallLogAdapter.getCount();
- if (position == getCount() - 1) {
+ if ((position == getCount() - 1) && (mContactTileAdapter.getCount() > 0)) {
return mShowAllContactsButton;
}
+ if (mTileInteractionTeaserView.getShouldDisplayInList()) {
+ if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount) {
+ return mTileInteractionTeaserView;
+ }
+ }
+
if (callLogAdapterCount > 0) {
if (position == 0) {
- final FrameLayout wrapper;
+ final SwipeableCallLogRow wrapper;
if (convertView == null) {
- wrapper = new FrameLayout(mContext);
+ wrapper = new SwipeableCallLogRow(mContext);
+ wrapper.setOnItemSwipeListener(mCallLogOnItemSwipeListener);
} else {
- wrapper = (FrameLayout) convertView;
+ wrapper = (SwipeableCallLogRow) convertView;
}
// Special case wrapper view for the most recent call log item. This allows
@@ -148,24 +243,19 @@
final View view = mCallLogAdapter.getView(position, convertView == null ?
null : wrapper.getChildAt(0), parent);
wrapper.removeAllViews();
- view.setBackgroundResource(R.drawable.dialer_recent_card_bg);
-
- final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.WRAP_CONTENT,
- FrameLayout.LayoutParams.WRAP_CONTENT);
-
- params.setMarginsRelative(mCallLogPadding, mCallLogPadding, mCallLogPadding,
- mCallLogPadding);
- view.setLayoutParams(params);
+ final View callLogItem = view.findViewById(R.id.call_log_list_item);
+ // Reset the internal call log item view if it is being recycled
+ callLogItem.setTranslationX(0);
+ callLogItem.setAlpha(1);
wrapper.addView(view);
-
return wrapper;
}
- // Set position to the position of the actual favorite contact in the
- // favorites adapter
- position = getAdjustedFavoritePosition(position, callLogAdapterCount);
}
+ // Set position to the position of the actual favorite contact in the
+ // favorites adapter
+ position = getAdjustedFavoritePosition(position, callLogAdapterCount);
+
// Favorites section
final View view = mContactTileAdapter.getView(position, convertView, parent);
if (position >= mContactTileAdapter.getMaxTiledRows()) {
@@ -181,9 +271,6 @@
@Override
public boolean areAllItemsEnabled() {
- // If "all" section is being loaded we'll show mLoadingView, which is not enabled.
- // Otherwise check the all the other components in the ListView and return appropriate
- // result.
return mCallLogAdapter.areAllItemsEnabled() && mContactTileAdapter.areAllItemsEnabled();
}
@@ -199,6 +286,105 @@
}
private int getAdjustedFavoritePosition(int position, int callLogAdapterCount) {
- return position - callLogAdapterCount;
+ if (position - callLogAdapterCount > TILE_INTERACTION_TEASER_VIEW_POSITION &&
+ mTileInteractionTeaserView.getShouldDisplayInList()) {
+ return position - callLogAdapterCount - 1;
+ } else {
+ return position - callLogAdapterCount;
+ }
+ }
+
+ private int getTeaserViewCount() {
+ return (mContactTileAdapter.getCount() > TILE_INTERACTION_TEASER_VIEW_POSITION &&
+ mTileInteractionTeaserView.getShouldDisplayInList() ? 1 : 0);
+ }
+
+ /**
+ * The swipeable call log row.
+ * See also {@link PhoneFavoritesTileAdapter.ContactTileRow}.
+ */
+ private class SwipeableCallLogRow extends FrameLayout implements SwipeHelperCallback {
+ private SwipeHelper mSwipeHelper;
+ private OnItemGestureListener mOnItemSwipeListener;
+
+ public SwipeableCallLogRow(Context context) {
+ super(context);
+ final float densityScale = getResources().getDisplayMetrics().density;
+ final float pagingTouchSlop = ViewConfiguration.get(context)
+ .getScaledPagingTouchSlop();
+ mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this,
+ densityScale, pagingTouchSlop);
+ }
+
+ @Override
+ public void addView(View view) {
+ view.setBackgroundResource(R.drawable.dialer_recent_card_bg);
+
+ final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT);
+ params.setMarginsRelative(mCallLogPadding, mCallLogPadding, mCallLogPadding,
+ mCallLogPadding);
+ view.setLayoutParams(params);
+
+ super.addView(view);
+ }
+
+ @Override
+ public View getChildAtPosition(MotionEvent ev) {
+ return getChildCount() > 0 ? getChildAt(0) : null;
+ }
+
+ @Override
+ public View getChildContentView(View v) {
+ return v.findViewById(R.id.call_log_list_item);
+ }
+
+ @Override
+ public void onScroll() {}
+
+ @Override
+ public boolean canChildBeDismissed(View v) {
+ return true;
+ }
+
+ @Override
+ public void onBeginDrag(View v) {
+ // We do this so the underlying ScrollView knows that it won't get
+ // the chance to intercept events anymore
+ requestDisallowInterceptTouchEvent(true);
+ }
+
+ @Override
+ public void onChildDismissed(View v) {
+ if (v != null && mOnItemSwipeListener != null) {
+ mOnItemSwipeListener.onSwipe(v);
+ }
+ }
+
+ @Override
+ public void onDragCancelled(View v) {}
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ if (mSwipeHelper != null) {
+ return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
+ } else {
+ return super.onInterceptTouchEvent(ev);
+ }
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (mSwipeHelper != null) {
+ return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
+ } else {
+ return super.onTouchEvent(ev);
+ }
+ }
+
+ public void setOnItemSwipeListener(OnItemGestureListener listener) {
+ mOnItemSwipeListener = listener;
+ }
}
}
diff --git a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java b/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
index 6d9fdcb..91b09d7 100644
--- a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
@@ -16,16 +16,12 @@
package com.android.dialer.list;
import android.content.Context;
+import android.content.res.Resources;
import android.util.AttributeSet;
-import android.view.GestureDetector;
+import android.view.View;
import com.android.contacts.common.util.ViewUtil;
import com.android.dialer.R;
-import com.android.dialer.list.PhoneFavoriteDragAndDropListeners.PhoneFavoriteDragListener;
-import com.android.dialer.list.PhoneFavoriteDragAndDropListeners.PhoneFavoriteGestureListener;
-
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
-
public class PhoneFavoriteRegularRowView extends PhoneFavoriteTileView {
private static final String TAG = PhoneFavoriteRegularRowView.class.getSimpleName();
@@ -39,24 +35,35 @@
protected void onFinishInflate() {
super.onFinishInflate();
- mFavoriteContactCard = findViewById(R.id.contact_favorite_card);
- mRemovalDialogue = findViewById(R.id.favorite_remove_dialogue);
- mUndoRemovalButton = findViewById(R.id.favorite_remove_undo_button);
+ final View favoriteContactCard = findViewById(R.id.contact_favorite_card);
- mGestureDetector = new GestureDetector(getContext(),
- new PhoneFavoriteGestureListener(this));
- }
+ final int rowPaddingStart;
+ final int rowPaddingEnd;
+ final int rowPaddingTop;
+ final int rowPaddingBottom;
- @Override
- protected void onAttachedToWindow() {
- mParentRow = (ContactTileRow) getParent();
- mParentRow.setOnDragListener(new PhoneFavoriteDragListener(mParentRow,
- mParentRow.getTileAdapter()));
- }
+ final Resources resources = getResources();
+ rowPaddingStart = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_start_padding);
+ rowPaddingEnd = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_end_padding);
+ rowPaddingTop = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_top_padding);
+ rowPaddingBottom = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_bottom_padding);
- @Override
- protected boolean isDarkTheme() {
- return false;
+ favoriteContactCard.setBackgroundResource(R.drawable.contact_list_item_background);
+
+ favoriteContactCard.setPaddingRelative(rowPaddingStart, rowPaddingTop, rowPaddingEnd,
+ rowPaddingBottom);
+
+ final View quickContactBadge = findViewById(R.id.contact_tile_quick);
+ quickContactBadge.setOnLongClickListener(new OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ return PhoneFavoriteRegularRowView.this.performLongClick();
+ }
+ });
}
@Override
diff --git a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
index fe07d18..85e7216 100644
--- a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
@@ -17,16 +17,16 @@
package com.android.dialer.list;
import android.content.Context;
-import android.content.Intent;
+import android.provider.ContactsContract.QuickContact;
+import android.text.TextUtils;
import android.util.AttributeSet;
-import android.view.GestureDetector;
import android.view.View;
import android.widget.ImageButton;
import com.android.contacts.common.R;
-import com.android.dialer.list.PhoneFavoriteDragAndDropListeners.PhoneFavoriteDragListener;
-import com.android.dialer.list.PhoneFavoriteDragAndDropListeners.PhoneFavoriteGestureListener;
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
+import com.android.contacts.common.list.ContactEntry;
+
+import java.util.regex.Pattern;
/**
* Displays the contact's picture overlayed with their name
@@ -36,6 +36,10 @@
private static final String TAG = PhoneFavoriteSquareTileView.class.getSimpleName();
private ImageButton mSecondaryButton;
+ // TODO: Use a more expansive name token separator if needed. For now it should be fine to
+ // not split by dashes, underscore etc.
+ private static final Pattern NAME_TOKEN_SEPARATOR_PATTERN = Pattern.compile("\\s+");
+
public PhoneFavoriteSquareTileView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@@ -44,34 +48,7 @@
protected void onFinishInflate() {
super.onFinishInflate();
- mFavoriteContactCard = findViewById(com.android.dialer.R.id.contact_tile_favorite_card);
- mRemovalDialogue = findViewById(com.android.dialer.R.id.favorite_tile_remove_dialogue);
- mUndoRemovalButton = findViewById(com.android.dialer.R.id.favorite_tile_remove_undo_button);
mSecondaryButton = (ImageButton) findViewById(R.id.contact_tile_secondary_button);
- mSecondaryButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(Intent.ACTION_VIEW, getLookupUri());
- // Secondary target will be visible only from phone's favorite screen, then
- // we want to launch it as a separate People task.
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- getContext().startActivity(intent);
- }
- });
-
- mGestureDetector = new GestureDetector(getContext(),
- new PhoneFavoriteGestureListener(this));
- }
-
- @Override
- protected void onAttachedToWindow() {
- mParentRow = (ContactTileRow) getParent();
- setOnDragListener(new PhoneFavoriteDragListener(mParentRow, mParentRow.getTileAdapter()));
- }
-
- @Override
- protected boolean isDarkTheme() {
- return false;
}
@Override
@@ -79,4 +56,42 @@
// The picture is the full size of the tile (minus some padding, but we can be generous)
return mListener.getApproximateTileWidth();
}
+
+ private void launchQuickContact() {
+ QuickContact.showQuickContact(getContext(), PhoneFavoriteSquareTileView.this,
+ getLookupUri(), QuickContact.MODE_LARGE, null);
+ }
+
+ @Override
+ protected String getNameForView(String name) {
+ if (TextUtils.isEmpty(name)) return name;
+ final String[] tokens = NAME_TOKEN_SEPARATOR_PATTERN.split(name, 2);
+ if (tokens.length < 1) return name;
+ return tokens[0];
+ }
+
+ @Override
+ public void loadFromContact(ContactEntry entry) {
+ super.loadFromContact(entry);
+ if (entry != null) {
+ final boolean contactIsFavorite = entry.isFavorite;
+ mSecondaryButton.setVisibility(contactIsFavorite ? GONE : VISIBLE);
+
+ if (contactIsFavorite) {
+ mStarView.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ launchQuickContact();
+ }
+ });
+ } else {
+ mSecondaryButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ launchQuickContact();
+ }
+ });
+ }
+ }
+ }
}
diff --git a/src/com/android/dialer/list/PhoneFavoriteTileView.java b/src/com/android/dialer/list/PhoneFavoriteTileView.java
index 8903e4b..371c805 100644
--- a/src/com/android/dialer/list/PhoneFavoriteTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteTileView.java
@@ -16,8 +16,11 @@
*/
package com.android.dialer.list;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
+import android.content.ClipData;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -25,11 +28,14 @@
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
+import android.widget.ImageView;
import com.android.contacts.common.MoreContactUtils;
import com.android.contacts.common.list.ContactEntry;
import com.android.contacts.common.list.ContactTileView;
+import com.android.dialer.R;
import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
+import com.android.dialer.list.PhoneFavoritesTileAdapter.ViewTypes;
/**
* A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in
@@ -44,27 +50,32 @@
private static final boolean DEBUG = false;
/** Length of all animations in miniseconds. */
- private static final int ANIMATION_LENGTH = 300;
+ private int mAnimationDuration;
/** The view that holds the front layer of the favorite contact card. */
- protected View mFavoriteContactCard;
+ private View mFavoriteContactCard;
/** The view that holds the background layer of the removal dialogue. */
- protected View mRemovalDialogue;
+ private View mRemovalDialogue;
/** Undo button for undoing favorite removal. */
- protected View mUndoRemovalButton;
+ private View mUndoRemovalButton;
/** The view that holds the list view row. */
protected ContactTileRow mParentRow;
+ /** The view that indicates whether the contact is a favorate. */
+ protected ImageView mStarView;
/** Users' most frequent phone number. */
private String mPhoneNumberString;
/** Custom gesture detector.*/
protected GestureDetector mGestureDetector;
- /** Indicator of whether a scroll has started. */
- private boolean mInScroll;
+
+ // Dummy clip data object that is attached to drag shadows so that text views
+ // don't crash with an NPE if the drag shadow is released in their bounds
+ private static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", "");
public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
super(context, attrs);
+ mAnimationDuration = context.getResources().getInteger(R.integer.fade_duration);
}
public ContactTileRow getParentRow() {
@@ -72,12 +83,51 @@
}
@Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ mFavoriteContactCard = findViewById(com.android.dialer.R.id.contact_favorite_card);
+ mRemovalDialogue = findViewById(com.android.dialer.R.id.favorite_remove_dialogue);
+ mUndoRemovalButton = findViewById(com.android.dialer.R.id
+ .favorite_remove_undo_button);
+ mStarView = (ImageView) findViewById(com.android.dialer.R.id.contact_favorite_star);
+
+ mUndoRemovalButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ undoRemove();
+ }
+ });
+
+ setOnLongClickListener(new OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ final PhoneFavoriteTileView view = (PhoneFavoriteTileView) v;
+ // NOTE The drag shadow is handled in the ListView.
+ if (view instanceof PhoneFavoriteRegularRowView) {
+ final ContactTileRow parent = view.getParentRow();
+ // If the view is regular row, start drag the row view.
+ // Drag is not available for the item exceeds the PIN_LIMIT.
+ if (parent.getRegularRowItemIndex() < PhoneFavoritesTileAdapter.PIN_LIMIT) {
+ parent.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0);
+ }
+ } else {
+ // If the view is a tile view, start drag the tile.
+ view.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0);
+ }
+ return true;
+ }
+ });
+ }
+
+ @Override
public void loadFromContact(ContactEntry entry) {
super.loadFromContact(entry);
mPhoneNumberString = null; // ... in case we're reusing the view
if (entry != null) {
// Grab the phone-number to call directly... see {@link onClick()}
mPhoneNumberString = entry.phoneNumber;
+
+ mStarView.setVisibility(entry.isFavorite ? VISIBLE : GONE);
// If this is a blank entry, don't show anything.
// TODO krelease:Just hide the view for now. For this to truly look like an empty row
// the entire ContactTileRow needs to be hidden.
@@ -89,74 +139,24 @@
}
}
- /**
- * Gets the latest scroll gesture offset.
- */
- public void setScrollOffset(float offset) {
- // Sets the mInScroll variable to indicate a scroll is in progress.
- if (!mInScroll) {
- mInScroll = true;
- }
+ public void displayRemovalDialog() {
+ mRemovalDialogue.setVisibility(VISIBLE);
+ mRemovalDialogue.setAlpha(0f);
+ final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(mRemovalDialogue, "alpha",
+ 1.f).setDuration(mAnimationDuration);
- // Changes the view to follow user's scroll position.
- shiftViewWithScroll(offset);
- }
+ fadeIn.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mParentRow.setHasTransientState(true);
+ };
- /**
- * Shifts the view to follow user's scroll position.
- */
- private void shiftViewWithScroll(float offset) {
- if (mInScroll) {
- // Shifts the foreground card to follow users' scroll gesture.
- mFavoriteContactCard.setTranslationX(offset);
-
- // Changes transparency of the foreground and background color
- final float alpha = 1.f - Math.abs((offset)) / getWidth();
- final float cappedAlpha = Math.min(Math.max(alpha, 0.f), 1.f);
- mFavoriteContactCard.setAlpha(cappedAlpha);
- }
- }
-
- /**
- * Sets the scroll has finished.
- *
- * @param isUnfinishedFling True if it is triggered from the onFling method, but the fling was
- * too short or too slow, or from the scroll that does not trigger fling.
- */
- public void setScrollEnd(boolean isUnfinishedFling) {
- mInScroll = false;
-
- if (isUnfinishedFling) {
- // If the fling is too short or too slow, or it is from a scroll, bring back the
- // favorite contact card.
- final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(mFavoriteContactCard, "alpha",
- 1.f).setDuration(ANIMATION_LENGTH);
- final ObjectAnimator moveBack = ObjectAnimator.ofFloat(mFavoriteContactCard,
- "translationX", 0.f).setDuration(ANIMATION_LENGTH);
- final ObjectAnimator backgroundFadeOut = ObjectAnimator.ofInt(
- mParentRow.getBackground(), "alpha", 255).setDuration(ANIMATION_LENGTH);
- final AnimatorSet animSet = new AnimatorSet();
- animSet.playTogether(fadeIn, moveBack, backgroundFadeOut);
- animSet.start();
- } else {
- // If the fling is fast and far enough, move away the favorite contact card, bring the
- // favorite removal view to the foreground to ask user to confirm removal.
- int animationLength = (int) ((1 - Math.abs(mFavoriteContactCard.getTranslationX()) /
- getWidth()) * ANIMATION_LENGTH);
- animationLength = Math.max(0, animationLength);
- final ObjectAnimator fadeOut = ObjectAnimator.ofFloat(mFavoriteContactCard, "alpha",
- 0.f).setDuration(animationLength);
- final ObjectAnimator moveAway = ObjectAnimator.ofFloat(mFavoriteContactCard,
- "translationX", getWidth()).setDuration(animationLength);
- final ObjectAnimator backgroundFadeIn = ObjectAnimator.ofInt(
- mParentRow.getBackground(), "alpha", 0).setDuration(animationLength);
- if (mFavoriteContactCard.getTranslationX() < 0) {
- moveAway.setFloatValues(-getWidth());
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mParentRow.setHasTransientState(false);
}
- final AnimatorSet animSet = new AnimatorSet();
- animSet.playTogether(fadeOut, moveAway, backgroundFadeIn);
- animSet.start();
- }
+ });
+ fadeIn.start();
}
/**
@@ -169,32 +169,32 @@
// Animates back the favorite contact card.
final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(mFavoriteContactCard, "alpha", 1.f).
- setDuration(ANIMATION_LENGTH);
+ setDuration(mAnimationDuration);
final ObjectAnimator moveBack = ObjectAnimator.ofFloat(mFavoriteContactCard, "translationX",
- 0.f).setDuration(ANIMATION_LENGTH);
- final ObjectAnimator backgroundFadeOut = ObjectAnimator.ofInt(mParentRow.getBackground(),
- "alpha", 255).setDuration(ANIMATION_LENGTH);
+ 0.f).setDuration(mAnimationDuration);
+
final AnimatorSet animSet = new AnimatorSet();
- animSet.playTogether(fadeIn, moveBack, backgroundFadeOut);
- animSet.start();
- // Signals the PhoneFavoritesTileAdapter to undo the potential delete.
- mParentRow.getTileAdapter().undoPotentialRemoveEntryIndex();
- }
+ animSet.playTogether(fadeIn, moveBack);
- /**
- * Sets up the removal dialogue.
- */
- public void setupRemoveDialogue() {
- mRemovalDialogue.setVisibility(VISIBLE);
- mRemovalDialogue.setAlpha(1.0f);
-
- mUndoRemovalButton.setOnClickListener(new OnClickListener() {
+ animSet.addListener(new AnimatorListenerAdapter() {
@Override
- public void onClick(View view) {
- undoRemove();
+ public void onAnimationStart(Animator animation) {
+ mParentRow.setHasTransientState(true);
+ }
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ if (mParentRow.getItemViewType() == ViewTypes.FREQUENT) {
+ SwipeHelper.setSwipeable(mParentRow, true);
+ } else {
+ SwipeHelper.setSwipeable(PhoneFavoriteTileView.this, true);
+ }
+ mParentRow.setHasTransientState(false);
}
});
+ animSet.start();
+ // Signals the PhoneFavoritesTileAdapter to undo the potential delete.
+ mParentRow.getTileAdapter().undoPotentialRemoveEntryIndex();
}
/**
@@ -210,11 +210,22 @@
}
@Override
+ protected void onAttachedToWindow() {
+ mParentRow = (ContactTileRow) getParent();
+ }
+
+ @Override
+ protected boolean isDarkTheme() {
+ return false;
+ }
+
+ @Override
protected OnClickListener createClickListener() {
return new OnClickListener() {
@Override
public void onClick(View v) {
- if (mListener == null) return;
+ // When the removal dialog is present, don't allow a click to call
+ if (mListener == null || mRemovalDialogue.isShown()) return;
if (TextUtils.isEmpty(mPhoneNumberString)) {
// Copy "superclass" implementation
mListener.onContactSelected(getLookupUri(), MoreContactUtils
@@ -230,34 +241,4 @@
}
};
}
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (DEBUG) {
- Log.v(TAG, event.toString());
- }
- switch (event.getAction()) {
- // If the scroll has finished without triggering a fling, handles it here.
- case MotionEvent.ACTION_UP:
- setPressed(false);
- if (mInScroll) {
- if (!mGestureDetector.onTouchEvent(event)) {
- setScrollEnd(true);
- }
- return true;
- }
- break;
- // When user starts a new gesture, clean up the pending removals.
- case MotionEvent.ACTION_DOWN:
- mParentRow.getTileAdapter().removeContactEntry();
- break;
- // When user continues with a new gesture, cleans up all the temp variables.
- case MotionEvent.ACTION_CANCEL:
- mParentRow.getTileAdapter().cleanTempVariables();
- break;
- default:
- break;
- }
- return mGestureDetector.onTouchEvent(event);
- }
}
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index 614a0d3..e28fd73 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -21,13 +21,16 @@
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
-import android.graphics.Rect;
import android.net.Uri;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.PinnedPositions;
+import android.text.TextUtils;
import android.util.Log;
+import android.util.LongSparseArray;
+import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
@@ -38,12 +41,15 @@
import com.android.contacts.common.list.ContactEntry;
import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
import com.android.contacts.common.list.ContactTileView;
+import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
+import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
import com.android.internal.annotations.VisibleForTesting;
import com.google.common.collect.ComparisonChain;
import java.util.ArrayList;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
@@ -54,20 +60,16 @@
* This adapter has been rewritten to only support a maximum of one row for favorites.
*
*/
-public class PhoneFavoritesTileAdapter extends BaseAdapter {
+public class PhoneFavoritesTileAdapter extends BaseAdapter implements
+ SwipeHelper.OnItemGestureListener, PhoneFavoriteListView.OnDragDropListener {
private static final String TAG = PhoneFavoritesTileAdapter.class.getSimpleName();
private static final boolean DEBUG = false;
public static final int ROW_LIMIT_DEFAULT = 1;
- /** Time period for an animation. */
- private static final int ANIMATION_LENGTH = 300;
-
- private final ObjectAnimator mTranslateHorizontalAnimation;
- private final ObjectAnimator mTranslateVerticalAnimation;
- private final ObjectAnimator mAlphaAnimation;
-
private ContactTileView.Listener mListener;
+ private OnDataSetChangedForAnimationListener mDataSetChangedListener;
+
private Context mContext;
private Resources mResources;
@@ -79,8 +81,13 @@
private int mDraggedEntryIndex = -1;
/** New position of the temporarily removed contact in the cache. */
private int mDropEntryIndex = -1;
+ /** New position of the temporarily entered contact in the cache. */
+ private int mDragEnteredEntryIndex = -1;
/** Position of the contact pending removal. */
private int mPotentialRemoveEntryIndex = -1;
+ private long mIdToKeepInPlace = -1;
+
+ private boolean mAwaitingRemove = false;
private ContactPhotoManager mPhotoManager;
protected int mNumFrequents;
@@ -97,21 +104,28 @@
protected int mPresenceIndex;
protected int mStatusIndex;
- /**
- * Only valid when {@link DisplayType#STREQUENT_PHONE_ONLY} is true
- */
private int mPhoneNumberIndex;
private int mPhoneNumberTypeIndex;
private int mPhoneNumberLabelIndex;
+ private int mIsDefaultNumberIndex;
protected int mPinnedIndex;
- protected int mContactIdForFrequentIndex;
+ protected int mContactIdIndex;
private final int mPaddingInPixels;
/** Indicates whether a drag is in process. */
private boolean mInDragging = false;
- private static final int PIN_LIMIT = 20;
+ public static final int PIN_LIMIT = 20;
+
+ /**
+ * The soft limit on how many contact tiles to show.
+ * NOTE This soft limit would not restrict the number of starred contacts to show, rather
+ * 1. If the count of starred contacts is less than this limit, show 20 tiles total.
+ * 2. If the count of starred contacts is more than or equal to this limit,
+ * show all starred tiles and no frequents.
+ */
+ private static final int TILES_SOFT_LIMIT = 20;
final Comparator<ContactEntry> mContactEntryComparator = new Comparator<ContactEntry>() {
@Override
@@ -123,13 +137,15 @@
}
};
- public PhoneFavoritesTileAdapter(Context context, ContactTileView.Listener listener,
- int numCols) {
- this(context, listener, numCols, ROW_LIMIT_DEFAULT);
- }
+ public interface OnDataSetChangedForAnimationListener {
+ public void onDataSetChangedForAnimation(long... idsInPlace);
+ public void cacheOffsetsForDatasetChange();
+ };
public PhoneFavoritesTileAdapter(Context context, ContactTileView.Listener listener,
+ OnDataSetChangedForAnimationListener dataSetChangedListener,
int numCols, int maxTiledRows) {
+ mDataSetChangedListener = dataSetChangedListener;
mListener = listener;
mContext = context;
mResources = context.getResources();
@@ -141,15 +157,6 @@
mPaddingInPixels = mContext.getResources()
.getDimensionPixelSize(R.dimen.contact_tile_divider_padding);
- // Initiates all animations.
- mAlphaAnimation = ObjectAnimator.ofFloat(null, "alpha", 1.f).setDuration(ANIMATION_LENGTH);
-
- mTranslateHorizontalAnimation = ObjectAnimator.ofFloat(null, "translationX", 0.f).
- setDuration(ANIMATION_LENGTH);
-
- mTranslateVerticalAnimation = ObjectAnimator.ofFloat(null, "translationY", 0.f).setDuration(
- ANIMATION_LENGTH);
-
bindColumnIndices();
}
@@ -195,8 +202,9 @@
mPhoneNumberIndex = ContactTileLoaderFactory.PHONE_NUMBER;
mPhoneNumberTypeIndex = ContactTileLoaderFactory.PHONE_NUMBER_TYPE;
mPhoneNumberLabelIndex = ContactTileLoaderFactory.PHONE_NUMBER_LABEL;
+ mIsDefaultNumberIndex = ContactTileLoaderFactory.IS_DEFAULT_NUMBER;
mPinnedIndex = ContactTileLoaderFactory.PINNED;
- mContactIdForFrequentIndex = ContactTileLoaderFactory.CONTACT_ID_FOR_FREQUENT;
+ mContactIdIndex = ContactTileLoaderFactory.CONTACT_ID_FOR_DATA;
}
/**
@@ -218,11 +226,21 @@
public void setContactCursor(Cursor cursor) {
if (cursor != null && !cursor.isClosed()) {
mNumStarred = getNumStarredContacts(cursor);
+ if (mAwaitingRemove) {
+ mDataSetChangedListener.cacheOffsetsForDatasetChange();
+ }
+
saveNumFrequentsFromCursor(cursor);
saveCursorToCache(cursor);
-
// cause a refresh of any views that rely on this data
notifyDataSetChanged();
+ // about to start redraw
+ if (mIdToKeepInPlace != -1) {
+ mDataSetChangedListener.onDataSetChangedForAnimation(mIdToKeepInPlace);
+ } else {
+ mDataSetChangedListener.onDataSetChangedForAnimation();
+ }
+ mIdToKeepInPlace = -1;
}
}
@@ -235,31 +253,53 @@
mContactEntries.clear();
cursor.moveToPosition(-1);
+
+ final LongSparseArray<Object> duplicates = new LongSparseArray<Object>(cursor.getCount());
+
+ // Track the length of {@link #mContactEntries} and compare to {@link #TILES_SOFT_LIMIT}.
+ int counter = 0;
+
while (cursor.moveToNext()) {
- final long id = cursor.getLong(mIdIndex);
+
+ final int starred = cursor.getInt(mStarredIndex);
+ final long id;
+
+ // We display a maximum of TILES_SOFT_LIMIT contacts, or the total number of starred
+ // whichever is greater.
+ if (starred < 1 && counter >= TILES_SOFT_LIMIT) {
+ break;
+ } else {
+ id = cursor.getLong(mContactIdIndex);
+ }
+
+ final ContactEntry existing = (ContactEntry) duplicates.get(id);
+ if (existing != null) {
+ // Check if the existing number is a default number. If not, clear the phone number
+ // and label fields so that the disambiguation dialog will show up.
+ if (!existing.isDefaultNumber) {
+ existing.phoneLabel = null;
+ existing.phoneNumber = null;
+ }
+ continue;
+ }
final String photoUri = cursor.getString(mPhotoUriIndex);
final String lookupKey = cursor.getString(mLookupIndex);
+ final int pinned = cursor.getInt(mPinnedIndex);
+ final String name = cursor.getString(mNameIndex);
+ final boolean isStarred = cursor.getInt(mStarredIndex) > 0;
+ final boolean isDefaultNumber = cursor.getInt(mIsDefaultNumberIndex) > 0;
final ContactEntry contact = new ContactEntry();
- final int pinned = cursor.getInt(mPinnedIndex);
- final int starred = cursor.getInt(mStarredIndex);
-
- final String name = cursor.getString(mNameIndex);
-
- if (starred > 0) {
- contact.id = id;
- } else {
- // The contact id for frequent contacts is stored in the .contact_id field rather
- // than the _id field
- contact.id = cursor.getLong(mContactIdForFrequentIndex);
- }
- contact.name = (name != null) ? name : mResources.getString(R.string.missing_name);
- contact.status = cursor.getString(mStatusIndex);
+ contact.id = id;
+ contact.name = (!TextUtils.isEmpty(name)) ? name :
+ mResources.getString(R.string.missing_name);
contact.photoUri = (photoUri != null ? Uri.parse(photoUri) : null);
contact.lookupKey = ContentUris.withAppendedId(
Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey), id);
+ contact.isFavorite = isStarred;
+ contact.isDefaultNumber = isDefaultNumber;
// Set phone number and label
final int phoneNumberType = cursor.getInt(mPhoneNumberTypeIndex);
@@ -270,8 +310,14 @@
contact.pinned = pinned;
mContactEntries.add(contact);
+
+ duplicates.put(id, contact);
+
+ counter++;
}
+ mAwaitingRemove = false;
+
arrangeContactsByPinnedPosition(mContactEntries);
notifyDataSetChanged();
@@ -346,7 +392,7 @@
return mColumnCount * mMaxTiledRows;
}
- protected int getRowIndex(int entryIndex) {
+ public int getRowIndex(int entryIndex) {
if (entryIndex < mMaxTiledRows * mColumnCount) {
return entryIndex / mColumnCount;
} else {
@@ -365,35 +411,74 @@
@Override
public ArrayList<ContactEntry> getItem(int position) {
ArrayList<ContactEntry> resultList = new ArrayList<ContactEntry>(mColumnCount);
- int contactIndex = position * mColumnCount;
- final int maxContactsInTiles = getMaxContactsInTiles();
- if (position < getRowCount(maxContactsInTiles)) {
- // Contacts that appear as tiles
- for (int columnCounter = 0; columnCounter < mColumnCount &&
- contactIndex != maxContactsInTiles; columnCounter++) {
- resultList.add(getContactEntryFromCache(contactIndex));
- contactIndex++;
- }
+
+ final int entryIndex = getFirstContactEntryIndexForPosition(position);
+
+ final int viewType = getItemViewType(position);
+
+ final int columnCount;
+ if (viewType == ViewTypes.TOP) {
+ columnCount = mColumnCount;
} else {
- // Contacts that appear as rows
- // The actual position of the contact in the cursor is simply total the number of
- // tiled contacts + the given position
- contactIndex = maxContactsInTiles + position - 1;
- resultList.add(getContactEntryFromCache(contactIndex));
+ columnCount = 1;
+ }
+
+ for (int i = 0; i < columnCount; i++) {
+ final ContactEntry entry = getContactEntryFromCache(entryIndex + i);
+ if (entry == null) break; // less than mColumnCount contacts
+ resultList.add(entry);
}
return resultList;
}
+ /*
+ * Given a position in the adapter, returns the index of the first contact entry that is to be
+ * in that row.
+ */
+ private int getFirstContactEntryIndexForPosition(int position) {
+ final int maxContactsInTiles = getMaxContactsInTiles();
+ if (position < getRowCount(maxContactsInTiles)) {
+ // Contacts that appear as tiles
+ return position * mColumnCount;
+ } else {
+ // Contacts that appear as rows
+ // The actual position of the contact in the cursor is simply total the number of
+ // tiled contacts + the given position
+ return maxContactsInTiles + position - mMaxTiledRows;
+ }
+ }
+
+ /**
+ * For the top row of tiled contacts, the item id is the position of the row of
+ * contacts.
+ * For frequent contacts, the item id is the maximum number of rows of tiled contacts +
+ * the actual contact id. Since contact ids are always greater than 0, this guarantees that
+ * all items within this adapter will always have unique ids.
+ */
@Override
public long getItemId(int position) {
- // As we show several selectable items for each ListView row,
- // we can not determine a stable id. But as we don't rely on ListView's selection,
- // this should not be a problem.
- return position;
+ if (getItemViewType(position) == ViewTypes.FREQUENT) {
+ return getAdjustedItemId(getItem(position).get(0).id);
+ } else {
+ return position;
+ }
+ }
+
+ /**
+ * Calculates the stable itemId for a particular entry based on its contactID
+ */
+ public long getAdjustedItemId(long id) {
+ return mMaxTiledRows + id;
}
@Override
+ public boolean hasStableIds() {
+ return true;
+ }
+
+ @Override
+
public boolean areAllItemsEnabled() {
// No dividers, so all items are enabled.
return true;
@@ -401,7 +486,7 @@
@Override
public boolean isEnabled(int position) {
- return true;
+ return getCount() > 0;
}
@Override
@@ -412,62 +497,19 @@
super.notifyDataSetChanged();
}
- /**
- * Configures the animation for each view.
- *
- * @param contactTileRowView The row to be animated.
- * @param position The position of the row.
- * @param itemViewType The type of the row.
- */
- private void configureAnimationToView(ContactTileRow contactTileRowView, int position,
- int itemViewType) {
- // No need to animate anything if we are just entering a drag, because the blank
- // entry takes the place of the dragged entry anyway.
- if (mInDragging) return;
- if (mDropEntryIndex != -1) {
- // If one item is dropped in front the row, animate all following rows to shift down.
- // If the item is a favorite tile, animate it to appear from left.
- if (position >= getRowIndex(mDropEntryIndex)) {
- if (itemViewType == ViewTypes.FREQUENT) {
- if (position == getRowIndex(mDropEntryIndex) || position == mMaxTiledRows) {
- contactTileRowView.setVisibility(View.VISIBLE);
- mAlphaAnimation.setTarget(contactTileRowView);
- mAlphaAnimation.clone().start();
- } else {
- mTranslateVerticalAnimation.setTarget(contactTileRowView);
- mTranslateVerticalAnimation.setFloatValues(-contactTileRowView.getHeight(),
- 0);
- mTranslateVerticalAnimation.clone().start();
- }
- } else {
- contactTileRowView.animateTilesAppearRight(mDropEntryIndex + 1 -
- position * mColumnCount);
- }
- }
- } else if (mPotentialRemoveEntryIndex != -1) {
- // If one item is to be removed above this row, animate the row to shift up. If it is
- // a favorite contact tile, animate it to appear from right.
- if (position >= getRowIndex(mPotentialRemoveEntryIndex)) {
- if (itemViewType == ViewTypes.FREQUENT) {
- mTranslateVerticalAnimation.setTarget(contactTileRowView);
- mTranslateVerticalAnimation.setFloatValues(contactTileRowView.getHeight(), 0);
- mTranslateVerticalAnimation.clone().start();
- } else {
- contactTileRowView.animateTilesAppearLeft(
- mPotentialRemoveEntryIndex - position * mColumnCount);
- }
- }
- }
- }
-
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (DEBUG) {
Log.v(TAG, "get view for " + String.valueOf(position));
}
+
int itemViewType = getItemViewType(position);
- ContactTileRow contactTileRowView = (ContactTileRow) convertView;
+ ContactTileRow contactTileRowView = null;
+
+ if (convertView instanceof ContactTileRow) {
+ contactTileRowView = (ContactTileRow) convertView;
+ }
ArrayList<ContactEntry> contactList = getItem(position);
@@ -478,8 +520,6 @@
contactTileRowView.configureRow(contactList, position, position == getCount() - 1);
- configureAnimationToView(contactTileRowView, position, itemViewType);
-
return contactTileRowView;
}
@@ -508,48 +548,68 @@
}
/**
- * Returns the "frequent header" position. Only available when STREQUENT or
- * STREQUENT_PHONE_ONLY is used for its display type.
- *
- * TODO krelease: We shouldn't need this method once we get rid of the frequent header
- * in the merged adapter
- */
- public int getFrequentHeaderPosition() {
- return getRowCount(mNumStarred);
- }
-
- /**
* Temporarily removes a contact from the list for UI refresh. Stores data for this contact
* in the back-up variable.
*
* @param index Position of the contact to be removed.
*/
public void popContactEntry(int index) {
- if (index >= 0 && index < mContactEntries.size()) {
+ if (isIndexInBound(index)) {
mDraggedEntry = mContactEntries.get(index);
- mContactEntries.set(index, ContactEntry.BLANK_ENTRY);
mDraggedEntryIndex = index;
+ mDragEnteredEntryIndex = index;
+ markDropArea(mDragEnteredEntryIndex);
+ }
+ }
+
+ /**
+ * @param itemIndex Position of the contact in {@link #mContactEntries}.
+ * @return True if the given index is valid for {@link #mContactEntries}.
+ */
+ private boolean isIndexInBound(int itemIndex) {
+ return itemIndex >= 0 && itemIndex < mContactEntries.size();
+ }
+
+ /**
+ * Mark the tile as drop area by given the item index in {@link #mContactEntries}.
+ *
+ * @param itemIndex Position of the contact in {@link #mContactEntries}.
+ */
+ private void markDropArea(int itemIndex) {
+ if (isIndexInBound(mDragEnteredEntryIndex) && isIndexInBound(itemIndex)) {
+ mDataSetChangedListener.cacheOffsetsForDatasetChange();
+ // Remove the old placeholder item and place the new placeholder item.
+ final int oldIndex = mDragEnteredEntryIndex;
+ mContactEntries.remove(mDragEnteredEntryIndex);
+ mDragEnteredEntryIndex = itemIndex;
+ mContactEntries.add(mDragEnteredEntryIndex, ContactEntry.BLANK_ENTRY);
+ ContactEntry.BLANK_ENTRY.id = mDraggedEntry.id;
+ mDataSetChangedListener.onDataSetChangedForAnimation();
notifyDataSetChanged();
}
}
/**
* Drops the temporarily removed contact to the desired location in the list.
- *
- * @param index Location where the contact will be dropped.
*/
- public void dropContactEntry(int index) {
+ public void handleDrop() {
boolean changed = false;
if (mDraggedEntry != null) {
- if (index >= 0 && index <= mContactEntries.size()) {
+ if (isIndexInBound(mDragEnteredEntryIndex) &&
+ mDragEnteredEntryIndex != mDraggedEntryIndex) {
// Don't add the ContactEntry here (to prevent a double animation from occuring).
// When we receive a new cursor the list of contact entries will automatically be
// populated with the dragged ContactEntry at the correct spot.
- mDropEntryIndex = index;
+ mDropEntryIndex = mDragEnteredEntryIndex;
+ mContactEntries.set(mDropEntryIndex, mDraggedEntry);
+ mIdToKeepInPlace = getAdjustedItemId(mDraggedEntry.id);
+ mDataSetChangedListener.cacheOffsetsForDatasetChange();
changed = true;
- } else if (mDraggedEntryIndex >= 0 && mDraggedEntryIndex <= mContactEntries.size()) {
- /** If the index is invalid, falls back to the original position of the contact. */
- mContactEntries.set(mDraggedEntryIndex, mDraggedEntry);
+ } else if (isIndexInBound(mDraggedEntryIndex)) {
+ // If {@link #mDragEnteredEntryIndex} is invalid,
+ // falls back to the original position of the contact.
+ mContactEntries.remove(mDragEnteredEntryIndex);
+ mContactEntries.add(mDraggedEntryIndex, mDraggedEntry);
mDropEntryIndex = mDraggedEntryIndex;
notifyDataSetChanged();
}
@@ -557,8 +617,7 @@
if (changed && mDropEntryIndex < PIN_LIMIT) {
final ContentValues cv = getReflowedPinnedPositions(mContactEntries, mDraggedEntry,
mDraggedEntryIndex, mDropEntryIndex);
- final Uri pinUri = PinnedPositions.UPDATE_URI.buildUpon().appendQueryParameter(
- PinnedPositions.STAR_WHEN_PINNING, "true").build();
+ final Uri pinUri = PinnedPositions.UPDATE_URI.buildUpon().build();
// update the database here with the new pinned positions
mContext.getContentResolver().update(pinUri, cv, null, null);
}
@@ -571,7 +630,11 @@
* contact back to where it was dragged from.
*/
public void dropToUnsupportedView() {
- dropContactEntry(-1);
+ if (isIndexInBound(mDragEnteredEntryIndex)) {
+ mContactEntries.remove(mDragEnteredEntryIndex);
+ mContactEntries.add(mDraggedEntryIndex, mDraggedEntry);
+ notifyDataSetChanged();
+ }
}
/**
@@ -589,13 +652,16 @@
*
* @return True is an item is removed. False is there is no item to be removed.
*/
- public boolean removeContactEntry() {
- if (mPotentialRemoveEntryIndex >= 0 && mPotentialRemoveEntryIndex < mContactEntries.size()) {
+ public boolean removePendingContactEntry() {
+ boolean removed = false;
+ if (isIndexInBound(mPotentialRemoveEntryIndex)) {
final ContactEntry entry = mContactEntries.get(mPotentialRemoveEntryIndex);
unstarAndUnpinContact(entry.lookupKey);
- return true;
+ removed = true;
+ mAwaitingRemove = true;
}
- return false;
+ cleanTempVariables();
+ return removed;
}
/**
@@ -605,12 +671,17 @@
mPotentialRemoveEntryIndex = -1;
}
+ public boolean hasPotentialRemoveEntryIndex() {
+ return isIndexInBound(mPotentialRemoveEntryIndex);
+ }
+
/**
* Clears all temporary variables at a new interaction.
*/
public void cleanTempVariables() {
mDraggedEntryIndex = -1;
mDropEntryIndex = -1;
+ mDragEnteredEntryIndex = -1;
mDraggedEntry = null;
mPotentialRemoveEntryIndex = -1;
}
@@ -619,7 +690,9 @@
* Acts as a row item composed of {@link ContactTileView}
*
*/
- public class ContactTileRow extends FrameLayout {
+ public class ContactTileRow extends FrameLayout implements SwipeHelperCallback {
+ public static final int CONTACT_ENTRY_INDEX_TAG = R.id.contact_entry_index_tag;
+
private int mItemViewType;
private int mLayoutResId;
private final int mRowPaddingStart;
@@ -627,6 +700,8 @@
private final int mRowPaddingTop;
private final int mRowPaddingBottom;
private int mPosition;
+ private SwipeHelper mSwipeHelper;
+ private OnItemGestureListener mOnItemSwipeListener;
public ContactTileRow(Context context, int itemViewType, int position) {
super(context);
@@ -635,22 +710,50 @@
mPosition = position;
final Resources resources = mContext.getResources();
- mRowPaddingStart = resources.getDimensionPixelSize(
- R.dimen.favorites_row_start_padding);
- mRowPaddingEnd = resources.getDimensionPixelSize(
- R.dimen.favorites_row_end_padding);
- mRowPaddingTop = resources.getDimensionPixelSize(
- R.dimen.favorites_row_top_padding);
- mRowPaddingBottom = resources.getDimensionPixelSize(
- R.dimen.favorites_row_bottom_padding);
- setBackgroundResource(R.drawable.bottom_border_background);
+ if (mItemViewType == ViewTypes.TOP) {
+ // For tiled views, we still want padding to be set on the ContactTileRow.
+ // Otherwise the padding would be set around each of the tiles, which we don't want
+ mRowPaddingTop = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_top_padding);
+ mRowPaddingBottom = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_bottom_padding);
+ mRowPaddingStart = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_start_padding);
+ mRowPaddingEnd = resources.getDimensionPixelSize(
+ R.dimen.favorites_row_end_padding);
+
+ setBackgroundResource(R.drawable.bottom_border_background);
+ } else {
+ // For row views, padding is set on the view itself.
+ mRowPaddingTop = 0;
+ mRowPaddingBottom = 0;
+ mRowPaddingStart = 0;
+ mRowPaddingEnd = 0;
+ }
setPaddingRelative(mRowPaddingStart, mRowPaddingTop, mRowPaddingEnd,
mRowPaddingBottom);
// Remove row (but not children) from accessibility node tree.
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
+
+ if (mItemViewType == ViewTypes.FREQUENT) {
+ // ListView handles swiping for this item
+ SwipeHelper.setSwipeable(this, true);
+ } else if (mItemViewType == ViewTypes.TOP) {
+ // The contact tile row has its own swipe helpers, that makes each individual
+ // tile swipeable.
+ final float densityScale = getResources().getDisplayMetrics().density;
+ final float pagingTouchSlop = ViewConfiguration.get(context)
+ .getScaledPagingTouchSlop();
+ mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this, densityScale,
+ pagingTouchSlop);
+ // Increase swipe thresholds for square tiles since they are relatively small.
+ mSwipeHelper.setChildSwipedFarEnoughFactor(0.9f);
+ mSwipeHelper.setChildSwipedFastEnoughFactor(0.1f);
+ mOnItemSwipeListener = PhoneFavoritesTileAdapter.this;
+ }
}
/**
@@ -666,8 +769,13 @@
columnCounter < list.size() ? list.get(columnCounter) : null;
addTileFromEntry(entry, columnCounter, isLastRow);
}
- setPressed(false);
- getBackground().setAlpha(255);
+ if (columnCount == 1) {
+ if (list.get(0) == ContactEntry.BLANK_ENTRY) {
+ setVisibility(View.INVISIBLE);
+ } else {
+ setVisibility(View.VISIBLE);
+ }
+ }
}
private void addTileFromEntry(ContactEntry entry, int childIndex, boolean isLastRow) {
@@ -694,20 +802,29 @@
contactTile = (PhoneFavoriteTileView) getChildAt(childIndex);
}
contactTile.loadFromContact(entry);
- contactTile.setId(childIndex);
+
+ int entryIndex = -1;
switch (mItemViewType) {
case ViewTypes.TOP:
// Setting divider visibilities
contactTile.setPaddingRelative(0, 0,
childIndex >= mColumnCount - 1 ? 0 : mPaddingInPixels, 0);
+ entryIndex = getFirstContactEntryIndexForPosition(mPosition) + childIndex;
+ SwipeHelper.setSwipeable(contactTile, false);
break;
case ViewTypes.FREQUENT:
contactTile.setHorizontalDividerVisibility(
isLastRow ? View.GONE : View.VISIBLE);
+ entryIndex = getFirstContactEntryIndexForPosition(mPosition);
+ SwipeHelper.setSwipeable(this, true);
break;
default:
break;
}
+ // tag the tile with the index of the contact entry it is associated with
+ if (entryIndex != -1) {
+ contactTile.setTag(CONTACT_ENTRY_INDEX_TAG, entryIndex);
+ }
contactTile.setupFavoriteContactCard();
}
@@ -733,7 +850,8 @@
// Note MeasuredWidth includes the padding.
final int childWidth = child.getMeasuredWidth();
- child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
+ child.layout(childLeft, getPaddingTop(), childLeft + childWidth,
+ getPaddingTop() + child.getMeasuredHeight());
childLeft += childWidth;
}
}
@@ -801,18 +919,21 @@
*/
public int getItemIndex(float itemX, float itemY) {
if (mPosition < mMaxTiledRows) {
- final Rect childRect = new Rect();
if (DEBUG) {
Log.v(TAG, String.valueOf(itemX) + " " + String.valueOf(itemY));
}
for (int i = 0; i < getChildCount(); ++i) {
/** If the row contains multiple tiles, checks each tile to see if the point
* is contained in the tile. */
- getChildAt(i).getHitRect(childRect);
- if (DEBUG) {
- Log.v(TAG, childRect.toString());
- }
- if (childRect.contains((int)itemX, (int)itemY)) {
+ final View child = getChildAt(i);
+ /** The coordinates passed in are based on the ListView,
+ * translate for each child first */
+ final int xInListView = child.getLeft() + getLeft();
+ final int yInListView = child.getTop() + getTop();
+ final int distanceX = (int) itemX - xInListView;
+ final int distanceY = (int) itemY - yInListView;
+ if ((distanceX > 0 && distanceX < child.getWidth()) &&
+ (distanceY > 0 && distanceY < child.getHeight())) {
/** If the point is contained in the rectangle, computes the index of the
* item in the cached array. */
return i + (mPosition) * mColumnCount;
@@ -820,36 +941,124 @@
}
} else {
/** If the selected item is one of the rows, compute the index. */
- return (mPosition - mMaxTiledRows) + mColumnCount * mMaxTiledRows;
+ return getRegularRowItemIndex();
}
return -1;
}
+ /**
+ * Gets the index of the regular row item.
+ *
+ * @return Index of the selected item in the cached array.
+ */
+ public int getRegularRowItemIndex() {
+ return (mPosition - mMaxTiledRows) + mColumnCount * mMaxTiledRows;
+ }
+
public PhoneFavoritesTileAdapter getTileAdapter() {
return PhoneFavoritesTileAdapter.this;
}
- public void animateTilesAppearLeft(int index) {
- for (int i = index; i < getChildCount(); ++i) {
- View childView = getChildAt(i);
- mTranslateHorizontalAnimation.setTarget(childView);
- mTranslateHorizontalAnimation.setFloatValues(childView.getWidth(), 0);
- mTranslateHorizontalAnimation.clone().start();
- }
- }
-
- public void animateTilesAppearRight(int index) {
- for (int i = index; i < getChildCount(); ++i) {
- View childView = getChildAt(i);
- mTranslateHorizontalAnimation.setTarget(childView);
- mTranslateHorizontalAnimation.setFloatValues(-childView.getWidth(), 0);
- mTranslateHorizontalAnimation.clone().start();
- }
- }
-
public int getPosition() {
return mPosition;
}
+
+ /**
+ * Find the view under the pointer.
+ */
+ public View getViewAtPosition(int x, int y) {
+ // find the view under the pointer, accounting for GONE views
+ final int count = getChildCount();
+ View view;
+ for (int childIdx = 0; childIdx < count; childIdx++) {
+ view = getChildAt(childIdx);
+ if (x >= view.getLeft() && x <= view.getRight()) {
+ return view;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public View getChildAtPosition(MotionEvent ev) {
+ final View view = getViewAtPosition((int) ev.getX(), (int) ev.getY());
+ if (view != null &&
+ SwipeHelper.isSwipeable(view) &&
+ view.getVisibility() != GONE) {
+ // If this view is swipable, then return it. If not, because the removal
+ // dialog is currently showing, then return a null view, which will simply
+ // be ignored by the swipe helper.
+ return view;
+ }
+ return null;
+ }
+
+ @Override
+ public View getChildContentView(View v) {
+ return v.findViewById(R.id.contact_favorite_card);
+ }
+
+ @Override
+ public void onScroll() {}
+
+ @Override
+ public boolean canChildBeDismissed(View v) {
+ return true;
+ }
+
+ @Override
+ public void onBeginDrag(View v) {
+ removePendingContactEntry();
+ final int index = indexOfChild(v);
+
+ /*
+ if (index > 0) {
+ detachViewFromParent(index);
+ attachViewToParent(v, 0, v.getLayoutParams());
+ }*/
+
+ // We do this so the underlying ScrollView knows that it won't get
+ // the chance to intercept events anymore
+ requestDisallowInterceptTouchEvent(true);
+ }
+
+ @Override
+ public void onChildDismissed(View v) {
+ if (v != null) {
+ if (mOnItemSwipeListener != null) {
+ mOnItemSwipeListener.onSwipe(v);
+ }
+ }
+ }
+
+ @Override
+ public void onDragCancelled(View v) {}
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ if (mSwipeHelper != null && isSwipeEnabled()) {
+ return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
+ } else {
+ return super.onInterceptTouchEvent(ev);
+ }
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (mSwipeHelper != null && isSwipeEnabled()) {
+ return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
+ } else {
+ return super.onTouchEvent(ev);
+ }
+ }
+
+ public int getItemViewType() {
+ return mItemViewType;
+ }
+
+ public void setOnItemSwipeListener(OnItemGestureListener listener) {
+ mOnItemSwipeListener = listener;
+ }
}
/**
@@ -939,40 +1148,66 @@
ContactEntry entryToPin, int oldPos, int newPinPos) {
final ContentValues cv = new ContentValues();
-
- // Add the dragged contact at the user-requested spot.
- cv.put(String.valueOf(entryToPin.id), newPinPos);
-
- final int listSize = list.size();
- if (oldPos < newPinPos && list.get(listSize - 1).pinned == (listSize - 1)) {
- // The only time we should get here is it we are completely full - i.e. starting
- // from the newly pinned contact to the end of the list, every single contact
- // thereafter is pinned, and a contact is being shifted to the right by the user.
- // Instead of trying to make room to the right, we should thus try to shift contacts
- // to the left instead, working backwards through the list, starting from the contact
- // which just got bumped.
- for (int i = newPinPos; i >= 0; i--) {
- final ContactEntry entry = list.get(i);
- // Once we find an unpinned spot(or a blank entry), we can stop pushing contacts
- // to the left.
- if (entry.pinned > PIN_LIMIT) break;
- cv.put(String.valueOf(entry.id), entry.pinned - 1);
- }
- } else {
- // Shift any pinned contacts to the right as necessary, until an unpinned
- // spot is found
- for (int i = newPinPos; i < PIN_LIMIT && i < list.size(); i++) {
- final ContactEntry entry = list.get(i);
- if (entry.pinned > PIN_LIMIT) break;
- cv.put(String.valueOf(entry.id), entry.pinned + 1);
- }
+ final int lowerBound = Math.min(oldPos, newPinPos);
+ final int upperBound = Math.max(oldPos, newPinPos);
+ for (int i = lowerBound; i <= upperBound; i++) {
+ final ContactEntry entry = list.get(i);
+ if (entry.pinned == i) continue;
+ cv.put(String.valueOf(entry.id), i);
}
return cv;
}
protected static class ViewTypes {
- public static final int COUNT = 2;
public static final int FREQUENT = 0;
public static final int TOP = 1;
+ public static final int COUNT = 2;
+ }
+
+ @Override
+ public void onSwipe(View view) {
+ final PhoneFavoriteTileView tileView = (PhoneFavoriteTileView) view.findViewById(
+ R.id.contact_tile);
+ // When the view is in the removal dialog, it should no longer be swipeable
+ SwipeHelper.setSwipeable(view, false);
+ tileView.displayRemovalDialog();
+
+ final Integer entryIndex = (Integer) tileView.getTag(
+ ContactTileRow.CONTACT_ENTRY_INDEX_TAG);
+
+ setPotentialRemoveEntryIndex(entryIndex);
+ }
+
+ @Override
+ public void onTouch() {
+ removePendingContactEntry();
+ return;
+ }
+
+ @Override
+ public boolean isSwipeEnabled() {
+ return !mAwaitingRemove;
+ }
+
+ @Override
+ public void onDragStarted(int itemIndex) {
+ setInDragging(true);
+ popContactEntry(itemIndex);
+ }
+
+ @Override
+ public void onDragHovered(int itemIndex) {
+ if (mInDragging &&
+ mDragEnteredEntryIndex != itemIndex &&
+ isIndexInBound(itemIndex) &&
+ itemIndex < PIN_LIMIT) {
+ markDropArea(itemIndex);
+ }
+ }
+
+ @Override
+ public void onDragFinished() {
+ setInDragging(false);
+ handleDrop();
}
}
diff --git a/src/com/android/dialer/list/RegularSearchFragment.java b/src/com/android/dialer/list/RegularSearchFragment.java
new file mode 100644
index 0000000..9f4e6be
--- /dev/null
+++ b/src/com/android/dialer/list/RegularSearchFragment.java
@@ -0,0 +1,64 @@
+/*
+ * 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.dialer.list;
+
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import com.android.contacts.common.list.ContactEntryListAdapter;
+import com.android.contacts.common.list.PinnedHeaderListView;
+import com.android.dialerbind.ObjectFactory;
+import com.android.dialer.service.CachedNumberLookupService;
+
+public class RegularSearchFragment extends SearchFragment {
+
+ private static final int SEARCH_DIRECTORY_RESULT_LIMIT = 5;
+
+ private static final CachedNumberLookupService mCachedNumberLookupService =
+ ObjectFactory.newCachedNumberLookupService();
+
+ public RegularSearchFragment() {
+ configureDirectorySearch();
+ }
+
+ public void configureDirectorySearch() {
+ setDirectorySearchEnabled(true);
+ setDirectoryResultLimit(SEARCH_DIRECTORY_RESULT_LIMIT);
+ }
+
+ @Override
+ protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+ super.onCreateView(inflater, container);
+ ((PinnedHeaderListView) getListView()).setScrollToSectionOnHeaderTouch(true);
+ }
+
+ protected ContactEntryListAdapter createListAdapter() {
+ RegularSearchListAdapter adapter = new RegularSearchListAdapter(getActivity());
+ adapter.setDisplayPhotos(true);
+ adapter.setUseCallableUri(usesCallableUri());
+ return adapter;
+ }
+
+ @Override
+ protected void cacheContactInfo(int position) {
+ if (mCachedNumberLookupService != null) {
+ final RegularSearchListAdapter adapter =
+ (RegularSearchListAdapter) getAdapter();
+ mCachedNumberLookupService.addContact(getContext(),
+ adapter.getContactInfo(mCachedNumberLookupService, position));
+ }
+ }
+}
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
new file mode 100644
index 0000000..d0617b7
--- /dev/null
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -0,0 +1,78 @@
+/*
+ * 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.dialer.list;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+
+import com.android.contacts.common.list.DirectoryPartition;
+import com.android.contacts.common.list.PhoneNumberListAdapter;
+import com.android.dialer.calllog.ContactInfo;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+
+/**
+ * List adapter to display regular search results.
+ */
+public class RegularSearchListAdapter extends DialerPhoneNumberListAdapter {
+
+ public RegularSearchListAdapter(Context context) {
+ super(context);
+ }
+
+ public CachedContactInfo getContactInfo(
+ CachedNumberLookupService lookupService, int position) {
+ ContactInfo info = new ContactInfo();
+ CachedContactInfo cacheInfo = lookupService.buildCachedContactInfo(info);
+ final Cursor item = (Cursor) getItem(position);
+ if (item != null) {
+ info.name = item.getString(PhoneQuery.DISPLAY_NAME);
+ info.type = item.getInt(PhoneQuery.PHONE_TYPE);
+ info.label = item.getString(PhoneQuery.PHONE_LABEL);
+ info.number = item.getString(PhoneQuery.PHONE_NUMBER);
+ final String photoUriStr = item.getString(PhoneQuery.PHOTO_URI);
+ info.photoUri = photoUriStr == null ? null : Uri.parse(photoUriStr);
+
+ cacheInfo.setLookupKey(item.getString(PhoneQuery.LOOKUP_KEY));
+
+ final int partitionIndex = getPartitionForPosition(position);
+ final DirectoryPartition partition =
+ (DirectoryPartition) getPartition(partitionIndex);
+ final long directoryId = partition.getDirectoryId();
+ final String sourceName = partition.getLabel();
+ if (isExtendedDirectory(directoryId)) {
+ cacheInfo.setExtendedSource(sourceName, directoryId);
+ } else {
+ cacheInfo.setDirectorySource(sourceName, directoryId);
+ }
+ }
+ return cacheInfo;
+ }
+
+ @Override
+ public void setQueryString(String queryString) {
+ final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
+ setShortcutEnabled(SHORTCUT_DIRECT_CALL, showNumberShortcuts);
+ // Either one of the add contacts options should be enabled. If the user entered
+ // a dialable number, then clicking add to contact should add it as a number.
+ // Otherwise, it should add it to a new contact as a name.
+ setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+ super.setQueryString(queryString);
+ }
+}
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
new file mode 100644
index 0000000..006729b
--- /dev/null
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -0,0 +1,121 @@
+/*
+ * 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.dialer.list;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.Toast;
+
+import com.android.contacts.common.list.ContactEntryListAdapter;
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.contacts.common.list.PhoneNumberPickerFragment;
+import com.android.dialer.DialtactsActivity;
+import com.android.dialer.R;
+import com.android.dialer.dialpad.DialpadFragment;
+import com.android.dialer.list.OnListFragmentScrolledListener;
+
+public class SearchFragment extends PhoneNumberPickerFragment {
+
+ private OnListFragmentScrolledListener mActivityScrollListener;
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ setQuickContactEnabled(true);
+ setDarkTheme(false);
+ setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
+ setUseCallableUri(true);
+
+ try {
+ mActivityScrollListener = (OnListFragmentScrolledListener) activity;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString()
+ + " must implement OnListFragmentScrolledListener");
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if (isSearchMode()) {
+ getAdapter().setHasHeader(0, false);
+ }
+ getListView().setOnScrollListener(new OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
+ }
+
+ @Override
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+ int totalItemCount) {
+ }
+ });
+ }
+
+ @Override
+ protected void setSearchMode(boolean flag) {
+ super.setSearchMode(flag);
+ // This hides the "All contacts with phone numbers" header in the search fragment
+ final ContactEntryListAdapter adapter = getAdapter();
+ if (adapter != null) {
+ adapter.setHasHeader(0, false);
+ }
+ }
+
+ @Override
+ protected ContactEntryListAdapter createListAdapter() {
+ DialerPhoneNumberListAdapter adapter = new DialerPhoneNumberListAdapter(getActivity());
+ adapter.setDisplayPhotos(true);
+ adapter.setUseCallableUri(super.usesCallableUri());
+ return adapter;
+ }
+
+ @Override
+ protected void onItemClick(int position, long id) {
+ final DialerPhoneNumberListAdapter adapter = (DialerPhoneNumberListAdapter) getAdapter();
+ final int shortcutType = adapter.getShortcutTypeFromPosition(position);
+
+ if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_INVALID) {
+ super.onItemClick(position, id);
+ } else if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_DIRECT_CALL) {
+ final OnPhoneNumberPickerActionListener listener =
+ getOnPhoneNumberPickerListener();
+ if (listener != null) {
+ listener.onCallNumberDirectly(getQueryString());
+ }
+ } else if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_ADD_NUMBER_TO_CONTACTS) {
+ final String number = adapter.getFormattedQueryString();
+ final Intent intent = DialtactsActivity.getAddNumberToContactIntent(number);
+ startActivityWithErrorToast(intent);
+ }
+ }
+
+ private void startActivityWithErrorToast(Intent intent) {
+ try {
+ startActivity(intent);
+ } catch (ActivityNotFoundException e) {
+ Toast toast = Toast.makeText(getActivity(), R.string.add_contact_not_available,
+ Toast.LENGTH_SHORT);
+ toast.show();
+ }
+ }
+}
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index c5ce59a..962d8ee 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -37,7 +37,7 @@
/**
* List adapter to display the SmartDial search results.
*/
-public class SmartDialNumberListAdapter extends PhoneNumberListAdapter{
+public class SmartDialNumberListAdapter extends DialerPhoneNumberListAdapter {
private static final String TAG = SmartDialNumberListAdapter.class.getSimpleName();
private static final boolean DEBUG = false;
diff --git a/src/com/android/dialer/list/SmartDialSearchFragment.java b/src/com/android/dialer/list/SmartDialSearchFragment.java
index 3c1e513..0efe918 100644
--- a/src/com/android/dialer/list/SmartDialSearchFragment.java
+++ b/src/com/android/dialer/list/SmartDialSearchFragment.java
@@ -15,62 +15,21 @@
*/
package com.android.dialer.list;
-import android.app.Activity;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
-import android.provider.ContactsContract.Directory;
import android.util.Log;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
import com.android.dialer.dialpad.SmartDialCursorLoader;
/**
* Implements a fragment to load and display SmartDial search results.
*/
-public class SmartDialSearchFragment extends PhoneNumberPickerFragment {
+public class SmartDialSearchFragment extends SearchFragment {
private static final String TAG = SmartDialSearchFragment.class.getSimpleName();
- private OnListFragmentScrolledListener mActivityScrollListener;
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
-
- setQuickContactEnabled(true);
- setDarkTheme(false);
- setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
- setUseCallableUri(true);
-
- try {
- mActivityScrollListener = (OnListFragmentScrolledListener) activity;
- } catch (ClassCastException e) {
- throw new ClassCastException(activity.toString()
- + " must implement OnListFragmentScrolledListener");
- }
- }
-
- @Override
- public void onStart() {
- super.onStart();
- getListView().setOnScrollListener(new OnScrollListener() {
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
- }
-
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
- int totalItemCount) {
- }
- });
- }
-
/**
* Creates a SmartDialListAdapter to display and operate on search results.
*/
@@ -79,6 +38,9 @@
SmartDialNumberListAdapter adapter = new SmartDialNumberListAdapter(getActivity());
adapter.setUseCallableUri(super.usesCallableUri());
adapter.setQuickContactEnabled(true);
+ // Disable the direct call shortcut for the smart dial fragment, since the call button
+ // will already be showing anyway.
+ adapter.setShortcutEnabled(SmartDialNumberListAdapter.SHORTCUT_DIRECT_CALL, false);
return adapter;
}
@@ -89,10 +51,8 @@
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Smart dialing does not support Directory Load, falls back to normal search instead.
if (id == getDirectoryLoaderId()) {
- Log.v(TAG, "Directory load");
return super.onCreateLoader(id, args);
} else {
- Log.v(TAG, "Creating loader");
final SmartDialNumberListAdapter adapter = (SmartDialNumberListAdapter) getAdapter();
SmartDialCursorLoader loader = new SmartDialCursorLoader(super.getContext());
adapter.configureLoader(loader);
@@ -110,11 +70,4 @@
final SmartDialNumberListAdapter adapter = (SmartDialNumberListAdapter) getAdapter();
return adapter.getDataUri(position);
}
-
- @Override
- protected void setSearchMode(boolean flag) {
- super.setSearchMode(flag);
- // This hides the "All contacts with phone numbers" header in the search fragment
- getAdapter().setHasHeader(0, false);
- }
}
diff --git a/src/com/android/dialer/list/SwipeHelper.java b/src/com/android/dialer/list/SwipeHelper.java
new file mode 100644
index 0000000..03300df4
--- /dev/null
+++ b/src/com/android/dialer/list/SwipeHelper.java
@@ -0,0 +1,470 @@
+/*
+ * Copyright (C) 2012 Google Inc.
+ * Licensed to The Android Open Source Project.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.list;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.RectF;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.animation.LinearInterpolator;
+
+import com.android.dialer.R;
+
+/**
+ * Copy of packages/apps/UnifiedEmail - com.android.mail.ui.SwipeHelper with changes.
+ */
+public class SwipeHelper {
+ static final String TAG = SwipeHelper.class.getSimpleName();
+ private static final boolean DEBUG_INVALIDATE = false;
+ private static final boolean CONSTRAIN_SWIPE = true;
+ private static final boolean FADE_OUT_DURING_SWIPE = true;
+ private static final boolean DISMISS_IF_SWIPED_FAR_ENOUGH = true;
+ private static final boolean LOG_SWIPE_DISMISS_VELOCITY = false; // STOPSHIP - DEBUG ONLY
+
+ public static final int IS_SWIPEABLE_TAG = R.id.is_swipeable_tag;
+ public static final Object IS_SWIPEABLE = new Object();
+
+ public static final int X = 0;
+ public static final int Y = 1;
+
+ private static LinearInterpolator sLinearInterpolator = new LinearInterpolator();
+
+ private static int SWIPE_ESCAPE_VELOCITY = -1;
+ private static int DEFAULT_ESCAPE_ANIMATION_DURATION;
+ private static int MAX_ESCAPE_ANIMATION_DURATION;
+ private static int MAX_DISMISS_VELOCITY;
+ private static int SNAP_ANIM_LEN;
+ private static int SWIPE_SCROLL_SLOP;
+ private static float MIN_SWIPE;
+ private static float MIN_VERT;
+ private static float MIN_LOCK;
+
+ public static float ALPHA_FADE_START = 0f; // fraction of thumbnail width
+ // where fade starts
+ static final float ALPHA_FADE_END = 0.7f; // fraction of thumbnail width
+ // beyond which alpha->0
+ private static final float FACTOR = 1.2f;
+
+ private static final int PROTECTION_PADDING = 50;
+
+ private float mMinAlpha = 0.3f;
+
+ private float mPagingTouchSlop;
+ private final SwipeHelperCallback mCallback;
+ private final int mSwipeDirection;
+ private final VelocityTracker mVelocityTracker;
+
+ private float mInitialTouchPosX;
+ private boolean mDragging;
+ private View mCurrView;
+ private View mCurrAnimView;
+ private boolean mCanCurrViewBeDimissed;
+ private float mDensityScale;
+ private float mLastY;
+ private float mInitialTouchPosY;
+
+ private float mStartAlpha;
+ private boolean mProtected = false;
+
+ private float mChildSwipedFarEnoughFactor = 0.4f;
+ private float mChildSwipedFastEnoughFactor = 0.05f;
+
+ public SwipeHelper(Context context, int swipeDirection, SwipeHelperCallback callback, float densityScale,
+ float pagingTouchSlop) {
+ mCallback = callback;
+ mSwipeDirection = swipeDirection;
+ mVelocityTracker = VelocityTracker.obtain();
+ mDensityScale = densityScale;
+ mPagingTouchSlop = pagingTouchSlop;
+ if (SWIPE_ESCAPE_VELOCITY == -1) {
+ Resources res = context.getResources();
+ SWIPE_ESCAPE_VELOCITY = res.getInteger(R.integer.swipe_escape_velocity);
+ DEFAULT_ESCAPE_ANIMATION_DURATION = res.getInteger(R.integer.escape_animation_duration);
+ MAX_ESCAPE_ANIMATION_DURATION = res.getInteger(R.integer.max_escape_animation_duration);
+ MAX_DISMISS_VELOCITY = res.getInteger(R.integer.max_dismiss_velocity);
+ SNAP_ANIM_LEN = res.getInteger(R.integer.snap_animation_duration);
+ SWIPE_SCROLL_SLOP = res.getInteger(R.integer.swipe_scroll_slop);
+ MIN_SWIPE = res.getDimension(R.dimen.min_swipe);
+ MIN_VERT = res.getDimension(R.dimen.min_vert);
+ MIN_LOCK = res.getDimension(R.dimen.min_lock);
+ }
+ }
+
+ public void setDensityScale(float densityScale) {
+ mDensityScale = densityScale;
+ }
+
+ public void setPagingTouchSlop(float pagingTouchSlop) {
+ mPagingTouchSlop = pagingTouchSlop;
+ }
+
+ public void setChildSwipedFarEnoughFactor(float factor) {
+ mChildSwipedFarEnoughFactor = factor;
+ }
+
+ public void setChildSwipedFastEnoughFactor(float factor) {
+ mChildSwipedFastEnoughFactor = factor;
+ }
+
+ private float getVelocity(VelocityTracker vt) {
+ return mSwipeDirection == X ? vt.getXVelocity() :
+ vt.getYVelocity();
+ }
+
+ private ObjectAnimator createTranslationAnimation(View v, float newPos) {
+ ObjectAnimator anim = ObjectAnimator.ofFloat(v,
+ mSwipeDirection == X ? "translationX" : "translationY", newPos);
+ return anim;
+ }
+
+ private ObjectAnimator createDismissAnimation(View v, float newPos, int duration) {
+ ObjectAnimator anim = createTranslationAnimation(v, newPos);
+ anim.setInterpolator(sLinearInterpolator);
+ anim.setDuration(duration);
+ return anim;
+ }
+
+ private float getPerpendicularVelocity(VelocityTracker vt) {
+ return mSwipeDirection == X ? vt.getYVelocity() :
+ vt.getXVelocity();
+ }
+
+ private void setTranslation(View v, float translate) {
+ if (mSwipeDirection == X) {
+ v.setTranslationX(translate);
+ } else {
+ v.setTranslationY(translate);
+ }
+ }
+
+ private float getSize(View v) {
+ return mSwipeDirection == X ? v.getMeasuredWidth() :
+ v.getMeasuredHeight();
+ }
+
+ public void setMinAlpha(float minAlpha) {
+ mMinAlpha = minAlpha;
+ }
+
+ private float getAlphaForOffset(View view) {
+ float viewSize = getSize(view);
+ final float fadeSize = ALPHA_FADE_END * viewSize;
+ float result = mStartAlpha;
+ float pos = view.getTranslationX();
+ if (pos >= viewSize * ALPHA_FADE_START) {
+ result = mStartAlpha - (pos - viewSize * ALPHA_FADE_START) / fadeSize;
+ } else if (pos < viewSize * (mStartAlpha - ALPHA_FADE_START)) {
+ result = mStartAlpha + (viewSize * ALPHA_FADE_START + pos) / fadeSize;
+ }
+ return Math.max(mMinAlpha, result);
+ }
+
+ // invalidate the view's own bounds all the way up the view hierarchy
+ public static void invalidateGlobalRegion(View view) {
+ invalidateGlobalRegion(
+ view,
+ new RectF(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()));
+ }
+
+ // invalidate a rectangle relative to the view's coordinate system all the way up the view
+ // hierarchy
+ public static void invalidateGlobalRegion(View view, RectF childBounds) {
+ // childBounds.offset(view.getTranslationX(), view.getTranslationY());
+ if (DEBUG_INVALIDATE)
+ Log.v(TAG, "-------------");
+ while (view.getParent() != null && view.getParent() instanceof View) {
+ view = (View) view.getParent();
+ view.getMatrix().mapRect(childBounds);
+ view.invalidate((int) Math.floor(childBounds.left),
+ (int) Math.floor(childBounds.top),
+ (int) Math.ceil(childBounds.right),
+ (int) Math.ceil(childBounds.bottom));
+ if (DEBUG_INVALIDATE) {
+ Log.v(TAG, "INVALIDATE(" + (int) Math.floor(childBounds.left)
+ + "," + (int) Math.floor(childBounds.top)
+ + "," + (int) Math.ceil(childBounds.right)
+ + "," + (int) Math.ceil(childBounds.bottom));
+ }
+ }
+ }
+
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ final int action = ev.getAction();
+ switch (action) {
+ case MotionEvent.ACTION_DOWN:
+ mLastY = ev.getY();
+ mDragging = false;
+ mCurrView = mCallback.getChildAtPosition(ev);
+ mVelocityTracker.clear();
+ if (mCurrView != null) {
+ mCurrAnimView = mCallback.getChildContentView(mCurrView);
+ mStartAlpha = mCurrAnimView.getAlpha();
+ mCanCurrViewBeDimissed = mCallback.canChildBeDismissed(mCurrView);
+ mVelocityTracker.addMovement(ev);
+ mInitialTouchPosX = ev.getX();
+ mInitialTouchPosY = ev.getY();
+ }
+ break;
+ case MotionEvent.ACTION_MOVE:
+ if (mCurrView != null) {
+ // Check the movement direction.
+ if (mLastY >= 0 && !mDragging) {
+ float currY = ev.getY();
+ float currX = ev.getX();
+ float deltaY = Math.abs(currY - mInitialTouchPosY);
+ float deltaX = Math.abs(currX - mInitialTouchPosX);
+ if (deltaY > SWIPE_SCROLL_SLOP && deltaY > (FACTOR * deltaX)) {
+ mLastY = ev.getY();
+ mCallback.onScroll();
+ return false;
+ }
+ }
+ mVelocityTracker.addMovement(ev);
+ float pos = ev.getX();
+ float delta = pos - mInitialTouchPosX;
+ if (Math.abs(delta) > mPagingTouchSlop) {
+ mCallback.onBeginDrag(mCallback.getChildContentView(mCurrView));
+ mDragging = true;
+ mInitialTouchPosX = ev.getX() - mCurrAnimView.getTranslationX();
+ mInitialTouchPosY = ev.getY();
+ }
+ }
+ mLastY = ev.getY();
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ mDragging = false;
+ mCurrView = null;
+ mCurrAnimView = null;
+ mLastY = -1;
+ break;
+ }
+ return mDragging;
+ }
+
+ /**
+ * @param view The view to be dismissed
+ * @param velocity The desired pixels/second speed at which the view should
+ * move
+ */
+ private void dismissChild(final View view, float velocity) {
+ final View animView = mCallback.getChildContentView(view);
+ final boolean canAnimViewBeDismissed = mCallback.canChildBeDismissed(view);
+ float newPos = determinePos(animView, velocity);
+ int duration = determineDuration(animView, newPos, velocity);
+
+ animView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+ ObjectAnimator anim = createDismissAnimation(animView, newPos, duration);
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mCallback.onChildDismissed(view);
+ animView.setLayerType(View.LAYER_TYPE_NONE, null);
+ }
+ });
+ anim.addUpdateListener(new AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ if (FADE_OUT_DURING_SWIPE && canAnimViewBeDismissed) {
+ animView.setAlpha(getAlphaForOffset(animView));
+ }
+ invalidateGlobalRegion(animView);
+ }
+ });
+ anim.start();
+ }
+
+ private int determineDuration(View animView, float newPos, float velocity) {
+ int duration = MAX_ESCAPE_ANIMATION_DURATION;
+ if (velocity != 0) {
+ duration = Math
+ .min(duration,
+ (int) (Math.abs(newPos - animView.getTranslationX()) * 1000f / Math
+ .abs(velocity)));
+ } else {
+ duration = DEFAULT_ESCAPE_ANIMATION_DURATION;
+ }
+ return duration;
+ }
+
+ private float determinePos(View animView, float velocity) {
+ float newPos = 0;
+ if (velocity < 0 || (velocity == 0 && animView.getTranslationX() < 0)
+ // if we use the Menu to dismiss an item in landscape, animate up
+ || (velocity == 0 && animView.getTranslationX() == 0 && mSwipeDirection == Y)) {
+ newPos = -getSize(animView);
+ } else {
+ newPos = getSize(animView);
+ }
+ return newPos;
+ }
+
+ public void snapChild(final View view, float velocity) {
+ final View animView = mCallback.getChildContentView(view);
+ final boolean canAnimViewBeDismissed = mCallback.canChildBeDismissed(view);
+ ObjectAnimator anim = createTranslationAnimation(animView, 0);
+ int duration = SNAP_ANIM_LEN;
+ anim.setDuration(duration);
+ anim.addUpdateListener(new AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ if (FADE_OUT_DURING_SWIPE && canAnimViewBeDismissed) {
+ animView.setAlpha(getAlphaForOffset(animView));
+ }
+ invalidateGlobalRegion(animView);
+ }
+ });
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ animView.setAlpha(mStartAlpha);
+ mCallback.onDragCancelled(mCurrView);
+ }
+ });
+ anim.start();
+ }
+
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (!mDragging || mProtected) {
+ return false;
+ }
+ mVelocityTracker.addMovement(ev);
+ final int action = ev.getAction();
+ switch (action) {
+ case MotionEvent.ACTION_OUTSIDE:
+ case MotionEvent.ACTION_MOVE:
+ if (mCurrView != null) {
+ float deltaX = ev.getX() - mInitialTouchPosX;
+ float deltaY = Math.abs(ev.getY() - mInitialTouchPosY);
+ // If the user has gone vertical and not gone horizontalish AT
+ // LEAST minBeforeLock, switch to scroll. Otherwise, cancel
+ // the swipe.
+ if (!mDragging && deltaY > MIN_VERT && (Math.abs(deltaX)) < MIN_LOCK
+ && deltaY > (FACTOR * Math.abs(deltaX))) {
+ mCallback.onScroll();
+ return false;
+ }
+ float minDistance = MIN_SWIPE;
+ if (Math.abs(deltaX) < minDistance) {
+ // Don't start the drag until at least X distance has
+ // occurred.
+ return true;
+ }
+ // don't let items that can't be dismissed be dragged more
+ // than maxScrollDistance
+ if (CONSTRAIN_SWIPE && !mCallback.canChildBeDismissed(mCurrView)) {
+ float size = getSize(mCurrAnimView);
+ float maxScrollDistance = 0.15f * size;
+ if (Math.abs(deltaX) >= size) {
+ deltaX = deltaX > 0 ? maxScrollDistance : -maxScrollDistance;
+ } else {
+ deltaX = maxScrollDistance
+ * (float) Math.sin((deltaX / size) * (Math.PI / 2));
+ }
+ }
+ setTranslation(mCurrAnimView, deltaX);
+ if (FADE_OUT_DURING_SWIPE && mCanCurrViewBeDimissed) {
+ mCurrAnimView.setAlpha(getAlphaForOffset(mCurrAnimView));
+ }
+ invalidateGlobalRegion(mCallback.getChildContentView(mCurrView));
+ }
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ if (mCurrView != null) {
+ float maxVelocity = MAX_DISMISS_VELOCITY * mDensityScale;
+ mVelocityTracker.computeCurrentVelocity(1000 /* px/sec */, maxVelocity);
+ float escapeVelocity = SWIPE_ESCAPE_VELOCITY * mDensityScale;
+ float velocity = getVelocity(mVelocityTracker);
+ float perpendicularVelocity = getPerpendicularVelocity(mVelocityTracker);
+
+ // Decide whether to dismiss the current view
+ // Tweak constants below as required to prevent erroneous
+ // swipe/dismiss
+ float translation = Math.abs(mCurrAnimView.getTranslationX());
+ float currAnimViewSize = getSize(mCurrAnimView);
+ // Long swipe = translation of {@link #mChildSwipedFarEnoughFactor} * width
+ boolean childSwipedFarEnough = DISMISS_IF_SWIPED_FAR_ENOUGH
+ && translation > mChildSwipedFarEnoughFactor * currAnimViewSize;
+ // Fast swipe = > escapeVelocity and translation of
+ // {@link #mChildSwipedFastEnoughFactor} * width
+ boolean childSwipedFastEnough = (Math.abs(velocity) > escapeVelocity)
+ && (Math.abs(velocity) > Math.abs(perpendicularVelocity))
+ && (velocity > 0) == (mCurrAnimView.getTranslationX() > 0)
+ && translation > mChildSwipedFastEnoughFactor * currAnimViewSize;
+ if (LOG_SWIPE_DISMISS_VELOCITY) {
+ Log.v(TAG, "Swipe/Dismiss: " + velocity + "/" + escapeVelocity + "/"
+ + perpendicularVelocity + ", x: " + translation + "/"
+ + currAnimViewSize);
+ }
+
+ boolean dismissChild = mCallback.canChildBeDismissed(mCurrView)
+ && (childSwipedFastEnough || childSwipedFarEnough);
+
+ if (dismissChild) {
+ dismissChild(mCurrView, childSwipedFastEnough ? velocity : 0f);
+ } else {
+ snapChild(mCurrView, velocity);
+ }
+ }
+ break;
+ }
+ return true;
+ }
+
+ public static void setSwipeable(View view, boolean swipeable) {
+ view.setTag(IS_SWIPEABLE_TAG, swipeable ? IS_SWIPEABLE : null);
+ }
+
+ public static boolean isSwipeable(View view) {
+ return IS_SWIPEABLE == view.getTag(IS_SWIPEABLE_TAG);
+ }
+
+ public interface SwipeHelperCallback {
+ View getChildAtPosition(MotionEvent ev);
+
+ View getChildContentView(View v);
+
+ void onScroll();
+
+ boolean canChildBeDismissed(View v);
+
+ void onBeginDrag(View v);
+
+ void onChildDismissed(View v);
+
+ void onDragCancelled(View v);
+
+ }
+
+ public interface OnItemGestureListener {
+ public void onSwipe(View view);
+
+ public void onTouch();
+
+ public boolean isSwipeEnabled();
+ }
+}
diff --git a/src/com/android/dialer/list/TileInteractionTeaserView.java b/src/com/android/dialer/list/TileInteractionTeaserView.java
new file mode 100644
index 0000000..6e70fd1
--- /dev/null
+++ b/src/com/android/dialer/list/TileInteractionTeaserView.java
@@ -0,0 +1,153 @@
+package com.android.dialer.list;
+
+import android.animation.Animator;
+
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.view.animation.DecelerateInterpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.dialer.DialtactsActivity;
+import com.android.dialer.R;
+
+/**
+ * A teaser to introduce people to the contact photo check boxes
+ */
+public class TileInteractionTeaserView extends FrameLayout {
+ private static int sShrinkAnimationDuration;
+
+ private static final String KEY_TILE_INTERACTION_TEASER_SHOWN =
+ "key_tile_interaction_teaser_shown";
+
+ private boolean mNeedLayout;
+ private int mTextTop;
+ private int mAnimatedHeight = -1;
+
+ private PhoneFavoriteMergedAdapter mAdapter;
+
+ public TileInteractionTeaserView(final Context context) {
+ this(context, null);
+ }
+
+ public TileInteractionTeaserView(final Context context, final AttributeSet attrs) {
+ super(context, attrs);
+ final Resources resources = context.getResources();
+
+ mNeedLayout = true;
+ sShrinkAnimationDuration = resources.getInteger(R.integer.escape_animation_duration);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ findViewById(R.id.dismiss_button).setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startDestroyAnimation();
+ }
+ });
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ super.onLayout(changed, left, top, right, bottom);
+
+ final TextView text = (TextView) findViewById(R.id.text);
+ final ImageView arrow = (ImageView) findViewById(R.id.arrow);
+
+ // We post to avoid calling layout within layout
+ arrow.post(new Runnable() {
+ @Override
+ public void run() {
+
+ // The text top is changed when we move the arrow, so we need to
+ // do multiple passes
+ int textTop = text.getTop();
+ if (mNeedLayout || textTop != mTextTop) {
+ mNeedLayout = false;
+ mTextTop = textTop;
+
+ final int lineHeight = text.getLineHeight();
+ final LinearLayout.LayoutParams arrowParams = (LinearLayout.LayoutParams) arrow
+ .getLayoutParams();
+ arrowParams.topMargin = mTextTop + lineHeight / 2;
+ arrow.setLayoutParams(arrowParams);
+ }
+ arrow.setVisibility(View.VISIBLE);
+ }
+ });
+ }
+
+ public boolean getShouldDisplayInList() {
+ final SharedPreferences prefs = getContext().getSharedPreferences(
+ DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+ return prefs.getBoolean(KEY_TILE_INTERACTION_TEASER_SHOWN, true);
+ }
+
+ public void setAdapter(PhoneFavoriteMergedAdapter adapter) {
+ mAdapter = adapter;
+ }
+
+ private void startDestroyAnimation() {
+ final int start = getHeight();
+ final int end = 0;
+ mAnimatedHeight = start;
+ Log.v("Interaction", "Start from" + start);
+
+ ValueAnimator heightAnimator = ValueAnimator.ofInt(start, end);
+ heightAnimator.setDuration(sShrinkAnimationDuration);
+ heightAnimator.setInterpolator(new DecelerateInterpolator(2.0f));
+ heightAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ public void onAnimationUpdate(ValueAnimator animation) {
+ mAnimatedHeight = (Integer) animation.getAnimatedValue();
+ requestLayout();
+ }
+ });
+ heightAnimator.addListener(new Animator.AnimatorListener() {
+ @Override
+ public void onAnimationStart(Animator animator) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animator) {
+ setVisibility(GONE);
+ setDismissed();
+ if (mAdapter != null) {
+ mAdapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animator) {
+ }
+
+ @Override
+ public void onAnimationRepeat(Animator animator) {
+ }
+ });
+
+ heightAnimator.start();
+ }
+
+ private void setDismissed() {
+ final SharedPreferences prefs = getContext().getSharedPreferences(
+ DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+ prefs.edit().putBoolean(KEY_TILE_INTERACTION_TEASER_SHOWN, false).apply();
+ }
+
+ @Override
+ protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
+ if (mAnimatedHeight == -1) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ } else {
+ setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), mAnimatedHeight);
+ }
+ }
+}
diff --git a/src/com/android/dialer/service/CachedNumberLookupService.java b/src/com/android/dialer/service/CachedNumberLookupService.java
new file mode 100644
index 0000000..5745c9d
--- /dev/null
+++ b/src/com/android/dialer/service/CachedNumberLookupService.java
@@ -0,0 +1,45 @@
+package com.android.dialer.service;
+
+import android.content.ContentValues;
+import android.content.Context;
+
+import com.android.dialer.calllog.ContactInfo;
+
+public interface CachedNumberLookupService {
+
+ public interface CachedContactInfo {
+ public ContactInfo getContactInfo();
+
+ public void setDirectorySource(String name, long directoryId);
+ public void setExtendedSource(String name, long directoryId);
+ public void setLookupKey(String lookupKey);
+ }
+
+ public CachedContactInfo buildCachedContactInfo(ContactInfo info);
+
+ /**
+ * Perform a lookup using the cached number lookup service to return contact
+ * information stored in the cache that corresponds to the given number.
+ *
+ * @param context Valid context
+ * @param number Phone number to lookup the cache for
+ * @return A {@link CachedContactInfo} containing the contact information if the phone
+ * number is found in the cache, {@link ContactInfo#EMPTY} if the phone number was
+ * not found in the cache, and null if there was an error when querying the cache.
+ */
+ public CachedContactInfo lookupCachedContactFromNumber(Context context, String number);
+
+ public void addContact(Context context, CachedContactInfo info);
+
+ public boolean isCacheUri(String uri);
+
+ public boolean addPhoto(Context context, String number, byte[] photo);
+
+ /**
+ * Remove all cached phone number entries from the cache, regardless of how old they
+ * are.
+ *
+ * @param context Valid context
+ */
+ public void clearAllCacheEntries(Context context);
+}
diff --git a/src/com/android/dialerbind/DatabaseHelperManager.java b/src/com/android/dialerbind/DatabaseHelperManager.java
new file mode 100644
index 0000000..c929932
--- /dev/null
+++ b/src/com/android/dialerbind/DatabaseHelperManager.java
@@ -0,0 +1,28 @@
+/*
+ * 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.dialerbind;
+
+import android.content.Context;
+
+import com.android.dialer.database.DialerDatabaseHelper;
+
+
+public class DatabaseHelperManager {
+ public static DialerDatabaseHelper getDatabaseHelper(Context context) {
+ return DialerDatabaseHelper.getInstance(context);
+ }
+}
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
new file mode 100644
index 0000000..c43dffc
--- /dev/null
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -0,0 +1,43 @@
+/*
+ * 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.dialerbind;
+
+import static com.android.dialer.calllog.CallLogAdapter.CallFetcher;
+
+import android.content.Context;
+
+import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.service.CachedNumberLookupService;
+
+/**
+ * Default static binding for various objects.
+ */
+public class ObjectFactory {
+
+ public static CachedNumberLookupService newCachedNumberLookupService() {
+ // no-op
+ return null;
+ }
+
+ public static CallLogAdapter newCallLogAdapter(Context context, CallFetcher callFetcher,
+ ContactInfoHelper contactInfoHelper, boolean useCallAsPrimaryAction,
+ boolean isCallLog) {
+ return new CallLogAdapter(context, callFetcher, contactInfoHelper, useCallAsPrimaryAction,
+ isCallLog);
+ }
+}
diff --git a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
index 05c59a7..6a9817f 100644
--- a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
@@ -26,8 +26,7 @@
import android.widget.TextView;
import com.android.dialer.calllog.CallTypeHelper;
-import com.android.dialer.calllog.PhoneNumberHelper;
-import com.android.dialer.calllog.TestPhoneNumberHelper;
+import com.android.dialer.calllog.TestPhoneNumberUtilsWrapper;
import com.android.dialer.util.LocaleTestUtils;
import java.util.GregorianCalendar;
@@ -58,7 +57,6 @@
/** The views to fill. */
private PhoneCallDetailsViews mViews;
private TextView mNameView;
- private PhoneNumberHelper mPhoneNumberHelper;
private LocaleTestUtils mLocaleTestUtils;
@Override
@@ -67,8 +65,9 @@
Context context = getContext();
Resources resources = context.getResources();
CallTypeHelper callTypeHelper = new CallTypeHelper(resources);
- mPhoneNumberHelper = new TestPhoneNumberHelper(resources, TEST_VOICEMAIL_NUMBER);
- mHelper = new PhoneCallDetailsHelper(resources, callTypeHelper, mPhoneNumberHelper);
+ final TestPhoneNumberUtilsWrapper phoneUtils = new TestPhoneNumberUtilsWrapper(
+ TEST_VOICEMAIL_NUMBER);
+ mHelper = new PhoneCallDetailsHelper(resources, callTypeHelper, phoneUtils);
mHelper.setCurrentTimeForTest(
new GregorianCalendar(2011, 5, 4, 13, 0, 0).getTimeInMillis());
mViews = PhoneCallDetailsViews.createForTest(context);
@@ -83,7 +82,6 @@
mNameView = null;
mViews = null;
mHelper = null;
- mPhoneNumberHelper = null;
super.tearDown();
}
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index 6811371..12cdb2b 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -212,11 +212,11 @@
public TestCallLogAdapter(Context context, CallFetcher callFetcher,
ContactInfoHelper contactInfoHelper) {
- super(context, callFetcher, contactInfoHelper);
+ super(context, callFetcher, contactInfoHelper, false, false);
}
@Override
- void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
+ protected void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
boolean immediate) {
requests.add(new Request(number, countryIso, callLogInfo, immediate));
}
diff --git a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
index 2cc7423..bb940ed 100644
--- a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
@@ -57,9 +57,10 @@
Context context = getContext();
Resources resources = context.getResources();
CallTypeHelper callTypeHelper = new CallTypeHelper(resources);
- mPhoneNumberHelper = new TestPhoneNumberHelper(resources, TEST_VOICEMAIL_NUMBER);
+ final TestPhoneNumberUtilsWrapper phoneUtils = new TestPhoneNumberUtilsWrapper(
+ TEST_VOICEMAIL_NUMBER);
PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper(
- resources, callTypeHelper, mPhoneNumberHelper);
+ resources, callTypeHelper, phoneUtils);
mHelper = new CallLogListItemHelper(phoneCallDetailsHelper, mPhoneNumberHelper, resources);
mViews = CallLogListItemViews.createForTest(context);
}
@@ -77,21 +78,42 @@
assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
}
+ public void testSetPhoneCallDetailsInFavorites() {
+ setPhoneCallDetailsWithNumberInFavorites("12125551234", Calls.PRESENTATION_ALLOWED,
+ "1-212-555-1234");
+ assertNoCallButton();
+ }
+
public void testSetPhoneCallDetails_Unknown() {
setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_UNKNOWN, "");
assertNoCallButton();
}
+ public void testSetPhoneCallDetailsInFavorites_Unknown() {
+ setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_UNKNOWN, "");
+ assertNoCallButton();
+ }
+
public void testSetPhoneCallDetails_Private() {
setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_RESTRICTED, "");
assertNoCallButton();
}
+ public void testSetPhoneCallDetailsInFavorites_Private() {
+ setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_RESTRICTED, "");
+ assertNoCallButton();
+ }
+
public void testSetPhoneCallDetails_Payphone() {
setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_PAYPHONE, "");
assertNoCallButton();
}
+ public void testSetPhoneCallDetailsInFavorites_Payphone() {
+ setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_PAYPHONE, "");
+ assertNoCallButton();
+ }
+
public void testSetPhoneCallDetails_VoicemailNumber() {
setPhoneCallDetailsWithNumber(TEST_VOICEMAIL_NUMBER,
Calls.PRESENTATION_ALLOWED, TEST_VOICEMAIL_NUMBER);
@@ -114,6 +136,28 @@
assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
}
+ public void testSetPhoneCallDetailsInFavorites_VoicemailNumber() {
+ setPhoneCallDetailsWithNumberInFavorites(TEST_VOICEMAIL_NUMBER,
+ Calls.PRESENTATION_ALLOWED, TEST_VOICEMAIL_NUMBER);
+ assertNoCallButton();
+ }
+
+ public void testSetPhoneCallDetailsInFavorites_ReadVoicemail() {
+ setPhoneCallDetailsWithTypesInFavorites(Calls.VOICEMAIL_TYPE);
+ assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+ }
+
+ public void testSetPhoneCallDetailsInFavorites_UnreadVoicemail() {
+ setUnreadPhoneCallDetailsWithTypesInFavorites(Calls.VOICEMAIL_TYPE);
+ assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+ }
+
+ public void testSetPhoneCallDetailsInFavorites_VoicemailFromUnknown() {
+ setPhoneCallDetailsWithNumberAndTypeInFavorites("", Calls.PRESENTATION_UNKNOWN,
+ "", Calls.VOICEMAIL_TYPE);
+ assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+ }
+
/** Asserts that the whole call area is gone. */
private void assertNoCallButton() {
assertEquals(View.GONE, mViews.secondaryActionView.getVisibility());
@@ -126,6 +170,13 @@
formattedNumber, Calls.INCOMING_TYPE);
}
+ /** Sets the details of a phone call in the favorite screen using the specified phone number. */
+ private void setPhoneCallDetailsWithNumberInFavorites(String number,
+ int presentation, String formattedNumber) {
+ setPhoneCallDetailsWithNumberAndTypeInFavorites(number, presentation,
+ formattedNumber, Calls.INCOMING_TYPE);
+ }
+
/** Sets the details of a phone call using the specified phone number. */
private void setPhoneCallDetailsWithNumberAndType(String number,
int presentation, String formattedNumber, int callType) {
@@ -133,7 +184,17 @@
new PhoneCallDetails(number, presentation, formattedNumber,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{ callType }, TEST_DATE, TEST_DURATION),
- false);
+ false, false);
+ }
+
+ /** Sets the details of a phone call in the favorite screen using the specified phone number. */
+ private void setPhoneCallDetailsWithNumberAndTypeInFavorites(String number,
+ int presentation, String formattedNumber, int callType) {
+ mHelper.setPhoneCallDetails(mViews,
+ new PhoneCallDetails(number, presentation, formattedNumber,
+ TEST_COUNTRY_ISO, TEST_GEOCODE,
+ new int[]{ callType }, TEST_DATE, TEST_DURATION),
+ false, true);
}
/** Sets the details of a phone call using the specified call type. */
@@ -142,15 +203,35 @@
new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
types, TEST_DATE, TEST_DURATION),
- false);
+ false, false);
}
- /** Sets the details of a phone call using the specified call type. */
+ /** Sets the details of a phone call in the favorite screen using the specified call type. */
+ private void setPhoneCallDetailsWithTypesInFavorites(int... types) {
+ mHelper.setPhoneCallDetails(mViews,
+ new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+ TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
+ types, TEST_DATE, TEST_DURATION),
+ false, true);
+ }
+
+ /** Sets the details of an unread phone call using the specified call type. */
private void setUnreadPhoneCallDetailsWithTypes(int... types) {
mHelper.setPhoneCallDetails(mViews,
new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
types, TEST_DATE, TEST_DURATION),
- true);
+ true, false);
+ }
+
+ /** Sets the details of an unread phone call in the favorite screen using the specified call
+ * type.
+ */
+ private void setUnreadPhoneCallDetailsWithTypesInFavorites(int... types) {
+ mHelper.setPhoneCallDetails(mViews,
+ new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+ TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
+ types, TEST_DATE, TEST_DURATION),
+ true, true);
}
}
diff --git a/tests/src/com/android/dialer/calllog/TestPhoneNumberHelper.java b/tests/src/com/android/dialer/calllog/TestPhoneNumberUtilsWrapper.java
similarity index 68%
rename from tests/src/com/android/dialer/calllog/TestPhoneNumberHelper.java
rename to tests/src/com/android/dialer/calllog/TestPhoneNumberUtilsWrapper.java
index 1446359..0dbd914 100644
--- a/tests/src/com/android/dialer/calllog/TestPhoneNumberHelper.java
+++ b/tests/src/com/android/dialer/calllog/TestPhoneNumberUtilsWrapper.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 The Android Open Source Project
+ * 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.
@@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License
*/
package com.android.dialer.calllog;
@@ -19,14 +19,13 @@
import android.content.res.Resources;
/**
- * Modified version of {@link PhoneNumberHelper} to be used in tests that allows injecting the
- * voicemail number.
+ * Modified version of {@link com.android.dialer.calllog.PhoneNumberHelper} to be used in tests
+ * that allows injecting the voicemail number.
*/
-public final class TestPhoneNumberHelper extends PhoneNumberHelper {
+public final class TestPhoneNumberUtilsWrapper extends PhoneNumberUtilsWrapper {
private CharSequence mVoicemailNumber;
- public TestPhoneNumberHelper(Resources resources, CharSequence voicemailNumber) {
- super(resources);
+ public TestPhoneNumberUtilsWrapper(CharSequence voicemailNumber) {
mVoicemailNumber = voicemailNumber;
}
diff --git a/tests/src/com/android/dialer/database/SmartDialPrefixTest.java b/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
index fe42db3..23bda7c 100644
--- a/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
+++ b/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
@@ -18,28 +18,26 @@
import android.database.MatrixCursor;
import android.database.sqlite.SQLiteDatabase;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.Directory;
import android.test.suitebuilder.annotation.SmallTest;
import android.test.suitebuilder.annotation.Suppress;
import android.test.AndroidTestCase;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
import com.android.dialer.dialpad.SmartDialNameMatcher;
import com.android.dialer.dialpad.SmartDialPrefix;
-import junit.framework.TestCase;
-
import java.lang.Exception;
import java.lang.FindBugsSuppressWarnings;
import java.lang.Override;
import java.lang.String;
import java.util.ArrayList;
+import junit.framework.TestCase;
+
/**
* To run this test, use the command:
* adb shell am instrument -w -e class com.android.dialer.dialpad.SmartDialPrefixTest /
@@ -119,32 +117,39 @@
private MatrixCursor constructNewContactCursor() {
final MatrixCursor cursor = new MatrixCursor(new String[]{
- Phone._ID,
- Phone.TYPE,
- Phone.LABEL,
- Phone.NUMBER,
- Phone.CONTACT_ID,
- Phone.LOOKUP_KEY,
- Phone.DISPLAY_NAME_PRIMARY,
- Data.LAST_TIME_USED,
- Data.TIMES_USED,
- Contacts.STARRED,
- Data.IS_SUPER_PRIMARY,
- Contacts.IN_VISIBLE_GROUP,
- Data.IS_PRIMARY});
-
+ Phone._ID, // 0
+ Phone.TYPE, // 1
+ Phone.LABEL, // 2
+ Phone.NUMBER, // 3
+ Phone.CONTACT_ID, // 4
+ Phone.LOOKUP_KEY, // 5
+ Phone.DISPLAY_NAME_PRIMARY, // 6
+ Phone.PHOTO_ID, // 7
+ Data.LAST_TIME_USED, // 8
+ Data.TIMES_USED, // 9
+ Contacts.STARRED, // 10
+ Data.IS_SUPER_PRIMARY, // 11
+ Contacts.IN_VISIBLE_GROUP, // 12
+ Data.IS_PRIMARY}); // 13
return cursor;
}
+ private ContactNumber constructNewContactWithDummyIds(MatrixCursor contactCursor,
+ MatrixCursor nameCursor, String number, int id, String displayName) {
+ return constructNewContact(contactCursor, nameCursor, id, number, 0, "", displayName, 0, 0,
+ 0, 0, 0, 0, 0);
+ }
+
private ContactNumber constructNewContact(MatrixCursor contactCursor, MatrixCursor nameCursor,
- int id, String number, int contactId, String lookupKey, String displayName,
+ int id, String number, int contactId, String lookupKey, String displayName, int photoId,
int lastTimeUsed, int timesUsed, int starred, int isSuperPrimary, int inVisibleGroup,
int isPrimary) {
assertNotNull(contactCursor);
assertNotNull(nameCursor);
contactCursor.addRow(new Object[]{id, "", "", number, contactId, lookupKey, displayName,
- lastTimeUsed, timesUsed, starred, isSuperPrimary, inVisibleGroup, isPrimary});
+ photoId, lastTimeUsed, timesUsed, starred, isSuperPrimary, inVisibleGroup,
+ isPrimary});
nameCursor.addRow(new Object[]{displayName, contactId});
return new ContactNumber(contactId, id, displayName, number, lookupKey, 0);
@@ -161,12 +166,12 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber jasonsmith = constructNewContact(contactCursor, nameCursor,
- 0, "", 0, "", "Jason Smith", 0, 0, 0, 0, 0, 0);
- final ContactNumber jasonsmitt = constructNewContact(contactCursor, nameCursor,
- 1, "", 1, "", "Jason Smitt", 0, 0, 0, 0, 0, 0);
- final ContactNumber alphabet = constructNewContact(contactCursor, nameCursor,
- 0, "12345678", 0, "", "abc def ghi jkl mno pqrs tuv wxyz", 0, 0, 0, 0, 0, 0);
+ final ContactNumber jasonsmith = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "", 0, "Jason Smith");
+ final ContactNumber jasonsmitt = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "", 1, "Jason Smitt");
+ final ContactNumber alphabet = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "12345678", 2, "abc def ghi jkl mno pqrs tuv wxyz");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -199,12 +204,12 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber maryjane = constructNewContact(contactCursor, nameCursor,
- 0, "", 0, "", "Mary Jane", 0, 0, 0, 0, 0, 0);
- final ContactNumber sarahsmith = constructNewContact(contactCursor, nameCursor,
- 0, "", 1, "", "Sarah Smith", 0, 0, 0, 0, 0, 0);
- final ContactNumber jasonsmitt = constructNewContact(contactCursor, nameCursor,
- 0, "", 2, "", "Jason Smitt", 0, 0, 0, 0, 0, 0);
+ final ContactNumber maryjane = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "", 0, "Mary Jane");
+ final ContactNumber sarahsmith = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "", 1, "Sarah Smith");
+ final ContactNumber jasonsmitt = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "", 2, "Jason Smitt");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -234,8 +239,8 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber jasonfwilliams = constructNewContact(contactCursor, nameCursor,
- 0, "", 0, "", "Jason F. Williams", 0, 0, 0, 0, 0, 0);
+ final ContactNumber jasonfwilliams = constructNewContactWithDummyIds(contactCursor,
+ nameCursor, "", 0, "Jason F. Williams");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -255,8 +260,8 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber martinjuniorharry = constructNewContact(contactCursor, nameCursor,
- 0, "", 0, "", "Martin Jr Harry", 0, 0, 0, 0, 0, 0);
+ final ContactNumber martinjuniorharry = constructNewContactWithDummyIds(contactCursor,
+ nameCursor, "", 0, "Martin Jr Harry");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -298,8 +303,8 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber alphabet = constructNewContact(contactCursor, nameCursor,
- 0, "12345678", 0, "", "abc def ghi jkl mno pqrs tuv wxyz", 0, 0, 0, 0, 0, 0);
+ final ContactNumber alphabet = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "12345678", 0, "abc def ghi jkl mno pqrs tuv wxyz");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -327,14 +332,13 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber alphabet = constructNewContact(contactCursor, nameCursor,
- 0, "1", 0, "", " aaaa bbbb cccc dddd eeee ffff gggg" +
- " hhhh iiii jjjj kkkk llll mmmm nnnn oooo pppp qqqq rrrr ssss tttt uuuu vvvv " +
- " wwww xxxx yyyy zzzz", 0, 0, 0, 0, 0, 0);
+ final ContactNumber alphabet = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "1", 0, " aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm nnnn" +
+ " oooo pppp qqqq rrrr ssss tttt uuuu vvvv wwww xxxx yyyy zzzz");
- final ContactNumber alphabet2 = constructNewContact(contactCursor, nameCursor,
- 0, "1", 1, "", "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnoooopppp" +
- "qqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz", 0, 0, 0, 0, 0, 0);
+ final ContactNumber alphabet2 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "1", 1, "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrr" +
+ "ssssttttuuuuvvvvwwwwxxxxyyyyzzzz");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -346,50 +350,15 @@
assertEquals(40, mTestHelper.countPrefixTableRows(db));
}
- public void testParseInfo() {
- final String name = "Mcdonald Jamie-Cullum";
- final ArrayList<String> info = SmartDialPrefix.parseToIndexTokens(name);
- assertEquals(3, info.size());
- assertEquals(8, info.get(0).length());
- assertEquals(5, info.get(1).length());
- assertEquals(6, info.get(2).length());
-
- final String name2 = "aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk";
- final ArrayList<String> info2 = SmartDialPrefix.parseToIndexTokens(name2);
- assertEquals(11, info2.size());
- assertEquals(3, info2.get(0).length());
- assertEquals(3, info2.get(10).length());
-
- final String name3 = "this is- a,test name";
- final ArrayList<String> info3 = SmartDialPrefix.parseToIndexTokens(name3);
- assertEquals(5, info3.size());
- assertEquals(2, info3.get(1).length());
- assertEquals(1, info3.get(2).length());
- assertEquals(4, info3.get(3).length());
- assertEquals(4, info3.get(4).length());
-
- final String name4 = "M c-Donald James";
- final ArrayList<String> info4 = SmartDialPrefix.parseToIndexTokens(name4);
- assertEquals(4, info4.size());
- assertEquals(1, info4.get(1).length());
- assertEquals(6, info4.get(2).length());
-
- final String name5 = " Aa'Bb c dddd e'e";
- final ArrayList<String> info5 = SmartDialPrefix.parseToIndexTokens(name5);
- assertEquals(6, info5.size());
- assertEquals(2, info5.get(0).length());
- assertEquals(1, info5.get(5).length());
- }
-
public void testAccentedCharacters() {
final SQLiteDatabase db = mTestHelper.getWritableDatabase();
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber reene = constructNewContact(contactCursor, nameCursor,
- 0, "0", 0, "", "Reenée", 0, 0, 0, 0, 0, 0);
- final ContactNumber bronte = constructNewContact(contactCursor, nameCursor,
- 0, "0", 1, "", "Brontë", 0, 0, 0, 0, 0, 0);
+ final ContactNumber reene = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "0", 0, "Reenée");
+ final ContactNumber bronte = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "0", 1, "Brontë");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -406,10 +375,10 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber contact = constructNewContact(contactCursor, nameCursor,
- 0, "0", 0, "", "12345678", 0, 0, 0, 0, 0, 0);
- final ContactNumber teacher = constructNewContact(contactCursor, nameCursor,
- 0, "0", 1, "", "1st Grade Teacher", 0, 0, 0, 0, 0, 0);
+ final ContactNumber contact = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "0", 0, "12345678");
+ final ContactNumber teacher = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "0", 1, "1st Grade Teacher");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -427,12 +396,12 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber contactno1 = constructNewContact(contactCursor, nameCursor,
- 0, "510-527-2357", 0, "", "James", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno2 = constructNewContact(contactCursor, nameCursor,
- 0, "77212862357", 1, "", "James", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno3 = constructNewContact(contactCursor, nameCursor,
- 0, "+13684976334", 2, "", "James", 0, 0, 0, 0, 0, 0);
+ final ContactNumber contactno1 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "510-527-2357", 0, "James");
+ final ContactNumber contactno2 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "77212862357", 1, "James");
+ final ContactNumber contactno3 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+13684976334", 2, "James");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -453,16 +422,16 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber contactno1 = constructNewContact(contactCursor, nameCursor,
- 0, "+13684976334", 0, "", "James", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno2 = constructNewContact(contactCursor, nameCursor,
- 0, "+65 9177-6930", 1, "", "Jason", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno3 = constructNewContact(contactCursor, nameCursor,
- 0, "+85212345678", 2, "", "Mike", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno4 = constructNewContact(contactCursor, nameCursor,
- 0, "+85112345678", 3, "", "Invalid", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno5 = constructNewContact(contactCursor, nameCursor,
- 0, "+852", 4, "", "Invalid", 0, 0, 0, 0, 0, 0);
+ final ContactNumber contactno1 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+13684976334", 0, "James");
+ final ContactNumber contactno2 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+65 9177-6930", 1, "Jason");
+ final ContactNumber contactno3 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+85212345678", 2, "Mike");
+ final ContactNumber contactno4 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+85112345678", 3, "Invalid");
+ final ContactNumber contactno5 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+852", 4, "Invalid");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -493,24 +462,24 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber contactno1 = constructNewContact(contactCursor, nameCursor,
- 0, "16503337596", 0, "", "James", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno2 = constructNewContact(contactCursor, nameCursor,
- 0, "5109921234", 1, "", "Michael", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno3 = constructNewContact(contactCursor, nameCursor,
- 0, "(415)-123-4567", 2, "", "Jason", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno4 = constructNewContact(contactCursor, nameCursor,
- 0, "1 510-284-9170", 3, "", "Mike", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno5 = constructNewContact(contactCursor, nameCursor,
- 0, "1-415-123-123", 4, "", "Invalid", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno6 = constructNewContact(contactCursor, nameCursor,
- 0, "415-123-123", 5, "", "Invalid2", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno7 = constructNewContact(contactCursor, nameCursor,
- 0, "+1-510-284-9170", 6, "", "Mike", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno8 = constructNewContact(contactCursor, nameCursor,
- 0, "+1-510-284-917", 7, "", "Invalid", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno9 = constructNewContact(contactCursor, nameCursor,
- 0, "+857-510-284-9170", 8, "", "Inv", 0, 0, 0, 0, 0, 0);
+ final ContactNumber contactno1 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "16503337596", 0, "James");
+ final ContactNumber contactno2 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "5109921234", 1, "Michael");
+ final ContactNumber contactno3 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "(415)-123-4567", 2, "Jason");
+ final ContactNumber contactno4 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "1 510-284-9170", 3, "Mike");
+ final ContactNumber contactno5 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "1-415-123-123", 4, "Invalid");
+ final ContactNumber contactno6 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "415-123-123", 5, "Invalid2");
+ final ContactNumber contactno7 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+1-510-284-9170", 6, "Mike");
+ final ContactNumber contactno8 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+1-510-284-917", 7, "Invalid");
+ final ContactNumber contactno9 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "+857-510-284-9170", 8, "Inv");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
mTestHelper.insertNamePrefixes(db, nameCursor);
@@ -553,18 +522,7 @@
assertFalse(getLooseMatchesFromDb("5102849170").contains(contactno9));
assertFalse(getLooseMatchesFromDb("2849170").contains(contactno9));
-// // If user's region is determined to be not in North America, then the NANP number
-// // workarounds should not be applied
-// final SmartDialTrie trieNonNANP = new SmartDialTrie();
-//
-// trieNonNANP.put(contactno3);
-// assertTrue(checkContains(trieNonNANP, contactno3, "4151234567"));
-// assertFalse(checkContains(trieNonNANP, contactno3, "1234567"));
-//
-// trieNonNANP.put(contactno4);
-// assertTrue(checkContains(trieNonNANP, contactno4, "15102849170"));
-// assertFalse(checkContains(trieNonNANP, contactno4, "5102849170"));
-// assertFalse(checkContains(trieNonNANP, contactno4, "2849170"));
+ // TODO(klp) Adds test for non-NANP region number matchings.
}
// Tests special case handling for non-NANP numbers
@@ -575,10 +533,10 @@
final MatrixCursor nameCursor = constructNewNameCursor();
final MatrixCursor contactCursor = constructNewContactCursor();
- final ContactNumber contactno0 = constructNewContact(contactCursor, nameCursor,
- 0, "(415)-123-4567", 0, "", "Jason", 0, 0, 0, 0, 0, 0);
- final ContactNumber contactno1 = constructNewContact(contactCursor, nameCursor,
- 0, "1 510-284-9170", 1, "", "Mike", 0, 0, 0, 0, 0, 0);
+ final ContactNumber contactno0 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "(415)-123-4567", 0, "Jason");
+ final ContactNumber contactno1 = constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "1 510-284-9170", 1, "Mike");
mTestHelper.insertUpdatedContactsAndNumberPrefix(db, contactCursor, Long.valueOf(0));
@@ -594,4 +552,39 @@
assertFalse(getLooseMatchesFromDb("5102849170").contains(contactno1));
assertFalse(getLooseMatchesFromDb("2849170").contains(contactno1));
}
+
+ public void testParseInfo() {
+ final String name = "Mcdonald Jamie-Cullum";
+ final ArrayList<String> info = SmartDialPrefix.parseToIndexTokens(name);
+ assertEquals(3, info.size());
+ assertEquals(8, info.get(0).length());
+ assertEquals(5, info.get(1).length());
+ assertEquals(6, info.get(2).length());
+
+ final String name2 = "aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk";
+ final ArrayList<String> info2 = SmartDialPrefix.parseToIndexTokens(name2);
+ assertEquals(11, info2.size());
+ assertEquals(3, info2.get(0).length());
+ assertEquals(3, info2.get(10).length());
+
+ final String name3 = "this is- a,test name";
+ final ArrayList<String> info3 = SmartDialPrefix.parseToIndexTokens(name3);
+ assertEquals(5, info3.size());
+ assertEquals(2, info3.get(1).length());
+ assertEquals(1, info3.get(2).length());
+ assertEquals(4, info3.get(3).length());
+ assertEquals(4, info3.get(4).length());
+
+ final String name4 = "M c-Donald James";
+ final ArrayList<String> info4 = SmartDialPrefix.parseToIndexTokens(name4);
+ assertEquals(4, info4.size());
+ assertEquals(1, info4.get(1).length());
+ assertEquals(6, info4.get(2).length());
+
+ final String name5 = " Aa'Bb c dddd e'e";
+ final ArrayList<String> info5 = SmartDialPrefix.parseToIndexTokens(name5);
+ assertEquals(6, info5.size());
+ assertEquals(2, info5.get(0).length());
+ assertEquals(1, info5.get(5).length());
+ }
}
diff --git a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
index 40d171c..611b3f1 100644
--- a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
+++ b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
@@ -8,11 +8,11 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, 3, 1);
+ mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, null, 3, 1);
}
/**
- * TODO Krelease: Add tests
+ * TODO: Add tests
*
* Test cases (various combinations of):
* No pinned contacts
@@ -26,7 +26,7 @@
}
/**
- * TODO Krelease: Add tests
+ * TODO: Add tests
*
* This method assumes that contacts have already been reordered by
* arrangeContactsByPinnedPosition, so we can test it with a less expansive set of test data.