Merge "Adding "Speed Dial" title to dialer favorites list and moving "All Contacts" affordance."
diff --git a/res/drawable-hdpi/ic_contact_info.png b/res/drawable-hdpi/ic_contact_info.png
deleted file mode 100644
index 9c23000..0000000
--- a/res/drawable-hdpi/ic_contact_info.png
+++ /dev/null
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
deleted file mode 100644
index 8a138c4..0000000
--- a/res/drawable-hdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/overflow_thumbnail.png b/res/drawable-hdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..57db353
--- /dev/null
+++ b/res/drawable-hdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-hdpi/star_thumbnail.png b/res/drawable-hdpi/star_thumbnail.png
new file mode 100644
index 0000000..1d4d5e1
--- /dev/null
+++ b/res/drawable-hdpi/star_thumbnail.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_contact_info.png b/res/drawable-mdpi/ic_contact_info.png
deleted file mode 100644
index 5d35ec5..0000000
--- a/res/drawable-mdpi/ic_contact_info.png
+++ /dev/null
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
deleted file mode 100644
index ee1b5ec..0000000
--- a/res/drawable-mdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/overflow_thumbnail.png b/res/drawable-mdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..c699374
--- /dev/null
+++ b/res/drawable-mdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-mdpi/star_thumbnail.png b/res/drawable-mdpi/star_thumbnail.png
new file mode 100644
index 0000000..7b96272
--- /dev/null
+++ b/res/drawable-mdpi/star_thumbnail.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_contact_info.png b/res/drawable-xhdpi/ic_contact_info.png
deleted file mode 100644
index 88d367b..0000000
--- a/res/drawable-xhdpi/ic_contact_info.png
+++ /dev/null
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
deleted file mode 100644
index 372747a..0000000
--- a/res/drawable-xhdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/overflow_thumbnail.png b/res/drawable-xhdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..e538b98
--- /dev/null
+++ b/res/drawable-xhdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-xhdpi/star_thumbnail.png b/res/drawable-xhdpi/star_thumbnail.png
new file mode 100644
index 0000000..a71262f
--- /dev/null
+++ b/res/drawable-xhdpi/star_thumbnail.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_contact_info.png b/res/drawable-xxhdpi/ic_contact_info.png
deleted file mode 100644
index e5d2939..0000000
--- a/res/drawable-xxhdpi/ic_contact_info.png
+++ /dev/null
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
deleted file mode 100644
index 3eeff4c..0000000
--- a/res/drawable-xxhdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/overflow_thumbnail.png b/res/drawable-xxhdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..7f3f733
--- /dev/null
+++ b/res/drawable-xxhdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-xxhdpi/star_thumbnail.png b/res/drawable-xxhdpi/star_thumbnail.png
new file mode 100644
index 0000000..5f13fec
--- /dev/null
+++ b/res/drawable-xxhdpi/star_thumbnail.png
Binary files differ
diff --git a/res/layout/phone_favorite_regular_row_view.xml b/res/layout/phone_favorite_regular_row_view.xml
index 012c9be..0d131f6 100644
--- a/res/layout/phone_favorite_regular_row_view.xml
+++ b/res/layout/phone_favorite_regular_row_view.xml
@@ -75,7 +75,7 @@
android:layout_marginRight="7dip"
android:layout_marginEnd="7dip"
android:layout_marginBottom="7dip"
- android:src="@drawable/ic_star_marked_as_fav"
+ android:src="@drawable/star_thumbnail"
android:visibility="gone" />
</RelativeLayout>
diff --git a/res/layout/phone_favorite_tile_view.xml b/res/layout/phone_favorite_tile_view.xml
index 8806d39..c4ad780 100644
--- a/res/layout/phone_favorite_tile_view.xml
+++ b/res/layout/phone_favorite_tile_view.xml
@@ -46,7 +46,7 @@
android:paddingRight="@dimen/contact_tile_info_button_height_and_width"
android:paddingStart="8dp"
android:paddingEnd="@dimen/contact_tile_info_button_height_and_width"
- android:paddingBottom="4dp"
+ android:paddingBottom="12dp"
android:layout_alignParentBottom="true"
android:orientation="vertical" >
<TextView
@@ -57,7 +57,7 @@
android:textColor="@color/contact_tile_name_color"
android:fontFamily="sans-serif"
android:singleLine="true"
- android:textSize="16sp"
+ android:textSize="15sp"
android:fadingEdge="horizontal"
android:fadingEdgeLength="3dip"
android:ellipsize="marquee"
@@ -70,7 +70,7 @@
android:textColor="@color/contact_tile_name_color"
android:fontFamily="sans-serif"
android:singleLine="true"
- android:textSize="12sp"
+ android:textSize="11sp"
android:paddingBottom="2dp"
android:fadingEdge="horizontal"
android:fadingEdgeLength="3dip"
@@ -90,35 +90,37 @@
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:paddingLeft="2dp"
+ android:paddingRight="2dp"
+ android:paddingStart="2dp"
+ android:paddingEnd="2dp"
+ android:paddingTop="2dp"
+ android:paddingBottom="2dp"
+ android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
- android:src="@drawable/ic_star_marked_as_fav"
+ android:src="@drawable/star_thumbnail"
android:scaleType="center"
+ android:contentDescription="@string/description_view_contact_detail"
android:visibility="gone" />
<ImageButton
android:id="@id/contact_tile_secondary_button"
- android:src="@drawable/ic_contact_info"
+ android:src="@drawable/overflow_thumbnail"
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:paddingLeft="4dp"
+ android:paddingRight="4dp"
+ android:paddingStart="4dp"
+ android:paddingEnd="4dp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp"
+ android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
+ android:scaleType="center"
android:contentDescription="@string/description_view_contact_detail" />
</RelativeLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 6833330..55d2390 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -117,8 +117,8 @@
<string name="description_call_details" msgid="8936017517290240089">"Oproepbesonderhede"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Nuwe stemboodskap."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> oproepe."</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> van wie jy \'n oproep gemis het terug"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> wat jou oproep geantwoord het terug"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> (gemisde oproep) terug"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> (geantwoorde oproep) terug"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Het oproep van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> af gemis"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Het oproep van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> af geantwoord"</string>
<string name="description_call_last_multiple" msgid="271456796151369411">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Laas om <xliff:g id="TIMEOFCALL">%3$s</xliff:g> gebel."</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 3035a9f..bdf32e0 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -117,7 +117,7 @@
<string name="description_call_details" msgid="8936017517290240089">"የጥሪ ዝርዝሮች"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"አዲስ የድምጽ መልዕክት።"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ጥሪዎች።"</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"ከ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ያመለጠዎት ጥሪ ይመልሱ"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"ከ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ላመለጥዎት ጥሪ ይመልሱ"</string>
<string name="description_return_answered_call" msgid="6038958518509163218">"መልስ የተሰጠው የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ጥሪ ይመልሱ"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"ያመለጠ የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ጥሪ"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ጥሪ መልሰዋል"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 71cb053..034448d 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -117,12 +117,12 @@
<string name="description_call_details" msgid="8936017517290240089">"Opkaldsdetaljer"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Ny talebesked."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> opkald."</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Returner ubesvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Returner besvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Returneret ubesvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Returneret besvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Ubesvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Besvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Ring til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Sidste opkald blev foretaget kl. <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Ring til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Opkaldet blev foretaget kl. <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Opkald til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Sidste opkald blev foretaget kl. <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Opkald til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Opkaldet blev foretaget kl. <xliff:g id="TIMEOFCALL">%3$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>
<string name="description_start_voice_search" msgid="520539488194946012">"Start stemmesøgning"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c7bed8d..bd7d860 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -121,8 +121,8 @@
<string name="description_return_answered_call" msgid="6038958518509163218">"Rückruf für angenommenen Anruf von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Verpasster Anruf von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Angenommener Anruf von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> anrufen. Letzter Anruf: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> anrufen. Anruf: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> anrufen. Letzter Anruf: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last" msgid="491385778814705302">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> anrufen. Anruf war: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</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>
<string name="description_start_voice_search" msgid="520539488194946012">"Sprachsuche starten"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 0331dff..77e5ef7 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -117,11 +117,11 @@
<string name="description_call_details" msgid="8936017517290240089">"Detalles de la llamada"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Buzón de voz nuevo"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> llamadas"</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Devolver llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Devolver llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_unknown_missed_call" msgid="8736195520010578126">"Llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_unknown_answered_call" msgid="1470971301999791460">"Llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Llamar a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (hora de última llamada: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Devolver llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Devolver llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"Llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"Llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Llamar a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (hora de última llamada: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
<string name="description_call_last" msgid="491385778814705302">"Llamar a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (hora de llamada: <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f832557..9a46173 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -121,8 +121,8 @@
<string name="description_return_answered_call" msgid="6038958518509163218">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel répondu) (<xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Appel manqué de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (<xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Appel répondu de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (<xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Durée du dernier appel : <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Durée de l\'appel : <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (heure du dernier appel : <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_call_last" msgid="491385778814705302">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (heure de l\'appel : <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 918e368..636a426 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -117,12 +117,12 @@
<string name="description_call_details" msgid="8936017517290240089">"Détails de l\'appel"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Nouveau message vocal"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> appels"</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel manqué à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel reçu à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel manqué <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel reçu <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Appel manqué de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Appel reçu de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (dernier appel entrant à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
- <string name="description_call_last" msgid="491385778814705302">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel entrant à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (dernier appel entrant <xliff:g id="TIMEOFCALL">%3$s</xliff:g>)"</string>
+ <string name="description_call_last" msgid="491385778814705302">"Appeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> (appel entrant <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b81c634..ff13ef8 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -117,7 +117,7 @@
<string name="description_call_details" msgid="8936017517290240089">"Hívás adatai"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Új hangpostaüzenet."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> hívás"</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részéről érkező, nem fogadott hívás megjelenítése, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részéről érkező nem fogadott hívás megjelenítése, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_return_answered_call" msgid="6038958518509163218">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részéről fogadott hívás megjelenítése, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Nem fogadott hívás <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részéről, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Fogadott hívás <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részéről, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index f2064ad..7f2b9ae 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -115,14 +115,14 @@
<string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detail kontak untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_details" msgid="8936017517290240089">"Detail panggilan"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Kotak pesan baru."</string>
- <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> telepon."</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Telepon balik panggilan tak terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Telepon balik panggilan terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"Pesan suara baru."</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Balas panggilan tak terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Balas panggilan terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Panggilan tak terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Panggilan terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Telepon <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Terakhir ditelepon <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Telepon <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Ditelepon <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Menelepon <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Terakhir telepon <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Menelepon <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Waktu telepon <xliff:g id="TIMEOFCALL">%3$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>
<string name="description_start_voice_search" msgid="520539488194946012">"Memulai penelusuran suara"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index b5f10f3..2f1268b 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -113,26 +113,16 @@
<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>
- <!-- no translation found for description_contact_details (51229793651342809) -->
- <skip />
- <!-- no translation found for description_call_details (8936017517290240089) -->
- <skip />
- <!-- no translation found for description_new_voicemail (2133792360865517746) -->
- <skip />
- <!-- no translation found for description_num_calls (1601505153694540074) -->
- <skip />
- <!-- no translation found for description_return_missed_call (5832103397942825774) -->
- <skip />
- <!-- no translation found for description_return_answered_call (6038958518509163218) -->
- <skip />
- <!-- no translation found for description_unknown_missed_call (8736195520010578126) -->
- <skip />
- <!-- no translation found for description_unknown_answered_call (1470971301999791460) -->
- <skip />
- <!-- no translation found for description_call_last_multiple (271456796151369411) -->
- <skip />
- <!-- no translation found for description_call_last (491385778814705302) -->
- <skip />
+ <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის კონტაქტის დეტალები"</string>
+ <string name="description_call_details" msgid="8936017517290240089">"ზარის მონაცემები"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"ახალი ხმოვანი ფოსტა."</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ზარი."</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>-დან მიღებული გამოტოვებულ ზარზე გადარეკვა"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>-დან ნაპასუხებ ზარზე გადარეკვა"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>-დან მიღებული გამოტივებული ზარი"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>-დან მიღებულ ზარზე პასუხი"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>-ში დარეკვა. ბოლო დარეკვა <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>-ში დარეკვა. დაირეკა <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 81f25c4..78a3302 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -113,26 +113,16 @@
<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>
- <!-- no translation found for description_contact_details (51229793651342809) -->
- <skip />
- <!-- no translation found for description_call_details (8936017517290240089) -->
- <skip />
- <!-- no translation found for description_new_voicemail (2133792360865517746) -->
- <skip />
- <!-- no translation found for description_num_calls (1601505153694540074) -->
- <skip />
- <!-- no translation found for description_return_missed_call (5832103397942825774) -->
- <skip />
- <!-- no translation found for description_return_answered_call (6038958518509163218) -->
- <skip />
- <!-- no translation found for description_unknown_missed_call (8736195520010578126) -->
- <skip />
- <!-- no translation found for description_unknown_answered_call (1470971301999791460) -->
- <skip />
- <!-- no translation found for description_call_last_multiple (271456796151369411) -->
- <skip />
- <!-- no translation found for description_call_last (491385778814705302) -->
- <skip />
+ <string name="description_contact_details" msgid="51229793651342809">"Butiran hubungan untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_call_details" msgid="8936017517290240089">"Butiran panggilan"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"Mel suara baharu."</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Balas panggilan yang tidak dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Balas panggilan yang dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"Panggilan yang tidak dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"Panggilan yang dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Panggil <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Terakhir dipanggil <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Panggil <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Dipanggil <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 4a06b31..5797ce2 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -121,7 +121,7 @@
<string name="description_return_answered_call" msgid="6038958518509163218">"Responder à chamada atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Chamada não atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Chamada atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Telefonar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Última chamada às <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Telefonar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Última chamada efetuada às <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
<string name="description_call_last" msgid="491385778814705302">"Telefonar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Chamada efetuada às <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index b7df602..1b31f1a 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -122,7 +122,7 @@
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Chamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Chamada atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_call_last_multiple" msgid="271456796151369411">"Ligar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Última chamada <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Ligar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Ligou <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Ligar para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Última chamada: <xliff:g id="TIMEOFCALL">%3$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>
<string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 59d56ca..448f024 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -113,26 +113,16 @@
<string name="description_add_contact" msgid="3103414772502485851">"Adăugaţi o persoană în agendă"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Afişaţi persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Apelaţi pe <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for description_contact_details (51229793651342809) -->
- <skip />
- <!-- no translation found for description_call_details (8936017517290240089) -->
- <skip />
- <!-- no translation found for description_new_voicemail (2133792360865517746) -->
- <skip />
- <!-- no translation found for description_num_calls (1601505153694540074) -->
- <skip />
- <!-- no translation found for description_return_missed_call (5832103397942825774) -->
- <skip />
- <!-- no translation found for description_return_answered_call (6038958518509163218) -->
- <skip />
- <!-- no translation found for description_unknown_missed_call (8736195520010578126) -->
- <skip />
- <!-- no translation found for description_unknown_answered_call (1470971301999791460) -->
- <skip />
- <!-- no translation found for description_call_last_multiple (271456796151369411) -->
- <skip />
- <!-- no translation found for description_call_last (491385778814705302) -->
- <skip />
+ <string name="description_contact_details" msgid="51229793651342809">"Detalii de contact pentru <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_call_details" msgid="8936017517290240089">"Detaliile apelului"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"Mesaj vocal nou."</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> (de) apeluri."</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Sunați la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g><xliff:g id="TYPEORLOCATION">%2$s</xliff:g> ca răspuns la apelul nepreluat de la <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Sunați la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g><xliff:g id="TYPEORLOCATION">%2$s</xliff:g> ca răspuns la apelul preluat de la <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"Apel nepreluat de la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"Apel preluat de la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Sunați la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Ultimul apel: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Sunați la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Ora apelului: <xliff:g id="TIMEOFCALL">%3$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>
<string name="description_start_voice_search" msgid="520539488194946012">"Începeţi căutarea vocală"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 9a8558f..96f5706 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -117,12 +117,12 @@
<string name="description_call_details" msgid="8936017517290240089">"Детаљи позива"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Нова говорна порука."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> позива."</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"Узврати пропуштени позив од позиваоца <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"Узврати примљени позив од позиваоца <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_unknown_missed_call" msgid="8736195520010578126">"Пропуштени позив: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_unknown_answered_call" msgid="1470971301999791460">"Примљени позив: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Позови <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Време позива <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Позови <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Време позива: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"Узвраћате пропуштени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> у <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"Узвраћате примљени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> у <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"Пропуштени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"Примљени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Позивате <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, долазни позив <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Позивате <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, долазни позив <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index b0eb9e5..e025c7b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -113,7 +113,7 @@
<string name="description_add_contact" msgid="3103414772502485851">"Ongeza anwani"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Piga <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="description_contact_details" msgid="51229793651342809">"Maelezo ya anwani ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_contact_details" msgid="51229793651342809">"Maelezo ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_details" msgid="8936017517290240089">"Maelezo ya simu"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"Ujumbe mpya wa sauti."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Simu <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
@@ -121,7 +121,7 @@
<string name="description_return_answered_call" msgid="6038958518509163218">"Piga simu iliyopokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Simu ambayo haikupokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Simu iliyopokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Pigia simu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> . Nilipiga simu mwisho <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Pigia simu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Nilipiga simu mwisho <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
<string name="description_call_last" msgid="491385778814705302">"Piga simu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Nilipigia <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4c330a5..2136dd3 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -113,7 +113,7 @@
<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_contact_details" msgid="51229793651342809">"รายละเอียดที่ติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_contact_details" msgid="51229793651342809">"รายละเอียดที่อยู่ติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_details" msgid="8936017517290240089">"รายละเอียดการโทร"</string>
<string name="description_new_voicemail" msgid="2133792360865517746">"ข้อความเสียงใหม่"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> สาย"</string>
@@ -122,7 +122,7 @@
<string name="description_unknown_missed_call" msgid="8736195520010578126">"สายที่ไม่ได้รับจาก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"สายที่ได้รับจาก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_call_last_multiple" msgid="271456796151369411">"โทร <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> โทรล่าสุด <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"โทร <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> โทรล่าสุด <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+ <string name="description_call_last" msgid="491385778814705302">"โทร <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> เวลาโทร <xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 46dd4cc..23d3129 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -121,8 +121,8 @@
<string name="description_return_answered_call" msgid="6038958518509163218">"Yanıtlanan şu çağrıyı geri ara: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_missed_call" msgid="8736195520010578126">"Cevapsız çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_unknown_answered_call" msgid="1470971301999791460">"Yanıtlanan çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"Çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Son yapılan çağrı: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
- <string name="description_call_last" msgid="491385778814705302">"Çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Tarih: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"Çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Son çağrı zamanı: <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+ <string name="description_call_last" msgid="491385778814705302">"Çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>. Zaman: <xliff:g id="TIMEOFCALL">%3$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>
<string name="description_start_voice_search" msgid="520539488194946012">"Sesli arama başlat"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 216ddea..bee53d3 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -115,14 +115,14 @@
<string name="description_call" msgid="3443678121983852666">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的详细联系信息"</string>
<string name="description_call_details" msgid="8936017517290240089">"通话详情"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"新语音邮件。"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"有新的语音邮件。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>次通话。"</string>
- <string name="description_return_missed_call" msgid="5832103397942825774">"回拨<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的未接电话"</string>
- <string name="description_return_answered_call" msgid="6038958518509163218">"回拨<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的已接电话"</string>
- <string name="description_unknown_missed_call" msgid="8736195520010578126">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的未接电话"</string>
- <string name="description_unknown_answered_call" msgid="1470971301999791460">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的已接电话"</string>
- <string name="description_call_last_multiple" msgid="271456796151369411">"与<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>通话。上次通话时间是<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
- <string name="description_call_last" msgid="491385778814705302">"与<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>用户<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>通话。通话时间是<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+ <string name="description_return_missed_call" msgid="5832103397942825774">"回拨<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)的未接电话"</string>
+ <string name="description_return_answered_call" msgid="6038958518509163218">"回拨<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)的已接电话"</string>
+ <string name="description_unknown_missed_call" msgid="8736195520010578126">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)的未接电话"</string>
+ <string name="description_unknown_answered_call" msgid="1470971301999791460">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)的已接电话"</string>
+ <string name="description_call_last_multiple" msgid="271456796151369411">"与<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)通话。上次通话时间是<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+ <string name="description_call_last" msgid="491385778814705302">"与<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)通话。上次通话时间是<xliff:g id="TIMEOFCALL">%3$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>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 7311cc0..75f7b92 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -115,7 +115,7 @@
<string name="description_call" msgid="3443678121983852666">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡詳細資料"</string>
<string name="description_call_details" msgid="8936017517290240089">"通話詳細資料"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"新留言。"</string>
+ <string name="description_new_voicemail" msgid="2133792360865517746">"新的語音留言。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"通話 <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> 次。"</string>
<string name="description_return_missed_call" msgid="5832103397942825774">"回撥未接來電:「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)。通話時間:<xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
<string name="description_return_answered_call" msgid="6038958518509163218">"回撥已接來電:「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)。通話時間:<xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e0e48ee..370bdfe 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -63,7 +63,7 @@
<color name="searchbox_text_color">#d3d3d3</color>
<!-- Color of the contact name in favorite tiles -->
- <color name="contact_tile_name_color">#f0f0f0</color>
+ <color name="contact_tile_name_color">#ffffff</color>
<!-- Undo dialogue color -->
<color name="undo_dialogue_text_color">#4d4d4d</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index b87b25a..3c856d2 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -70,10 +70,11 @@
<dimen name="fake_menu_button_min_width">56dp</dimen>
<!-- Favorites tile and recent call log padding -->
- <dimen name="contact_tile_divider_padding">3dp</dimen>
+ <dimen name="contact_tile_divider_width">12dp</dimen>
<dimen name="contact_tile_info_button_height_and_width">36dp</dimen>
- <dimen name="favorites_row_top_padding">8dp</dimen>
- <dimen name="favorites_row_bottom_padding">8dp</dimen>
+ <item name="contact_tile_height_to_width_ratio" type="dimen">67%</item>
+ <dimen name="favorites_row_top_padding">6dp</dimen>
+ <dimen name="favorites_row_bottom_padding">6dp</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>
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index 9a39b3a..860f9dc 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -33,9 +33,9 @@
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewTreeObserver;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
@@ -53,10 +53,10 @@
import com.android.contacts.common.list.ContactTileView;
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.CallLogQuery;
import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.calllog.ContactInfoHelper;
import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
import com.android.dialerbind.ObjectFactory;
@@ -235,8 +235,8 @@
// that will be available on onCreateView().
mContactTileAdapter = new PhoneFavoritesTileAdapter(activity, mContactTileAdapterListener,
this,
- getResources().getInteger(R.integer.contact_tile_column_count_in_favorites_new),
- 1);
+ getResources().getInteger(R.integer.contact_tile_column_count_in_favorites),
+ PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
mContactTileAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
}
@@ -415,7 +415,10 @@
}
/**
- * Saves the current view offsets into memory
+ * Cache the current view offsets into memory. Once a relayout of views in the ListView
+ * has happened due to a dataset change, the cached offsets are used to create animations
+ * that slide views from their previous positions to their new ones, to give the appearance
+ * that the views are sliding into their new positions.
*/
@SuppressWarnings("unchecked")
private void saveOffsets(int removedItemHeight) {
@@ -431,7 +434,7 @@
if (itemViewType == PhoneFavoritesTileAdapter.ViewTypes.TOP) {
// This is a tiled row, so save horizontal offsets instead
saveHorizontalOffsets((ContactTileRow) child, (ArrayList<ContactEntry>)
- mAdapter.getItem(position));
+ mAdapter.getItem(position), position);
}
if (DEBUG) {
Log.d(TAG, "Saving itemId: " + itemId + " for listview child " + i + " Top: "
@@ -443,7 +446,13 @@
mItemIdTopMap.put(KEY_REMOVED_ITEM_HEIGHT, removedItemHeight);
}
- private void saveHorizontalOffsets(ContactTileRow row, ArrayList<ContactEntry> list) {
+ /**
+ * Saves the horizontal offsets for contacts that are displayed as tiles in a row. Saving
+ * these offsets allow us to animate tiles sliding left and right within the same row.
+ * See {@link #saveOffsets(int removedItemHeight)}
+ */
+ private void saveHorizontalOffsets(ContactTileRow row, ArrayList<ContactEntry> list,
+ int currentRowIndex) {
for (int i = 0; i < list.size() && i < row.getChildCount(); i++) {
final View child = row.getChildAt(i);
if (child == null) {
@@ -455,6 +464,7 @@
Log.d(TAG, "Saving itemId: " + itemId + " for tileview child " + i + " Left: "
+ child.getTop());
}
+ mItemIdTopMap.put(itemId, currentRowIndex);
mItemIdLeftMap.put(itemId, child.getLeft());
}
}
@@ -463,7 +473,7 @@
* Performs a animations for a row of tiles
*/
private void performHorizontalAnimations(ContactTileRow row, ArrayList<ContactEntry> list,
- long[] idsInPlace) {
+ long[] idsInPlace, int currentRow) {
if (mItemIdLeftMap.isEmpty()) {
return;
}
@@ -481,6 +491,26 @@
} else {
Integer startLeft = mItemIdLeftMap.get(itemId);
int left = child.getLeft();
+
+ Integer startRow = mItemIdTopMap.get(itemId);
+
+ if (startRow != null) {
+ if (startRow > currentRow) {
+ // Item has shifted upwards to the previous row.
+ // It should now animate in from right to left.
+ startLeft = left + child.getWidth();
+ } else if (startRow < currentRow) {
+ // Item has shifted downwards to the next row.
+ // It should now animate in from left to right.
+ startLeft = left - child.getWidth();
+ }
+
+ // If the item hasn't shifted rows (startRow == currentRow), it either remains
+ // in the same position or has shifted left or right within its current row.
+ // Either way, startLeft has already been correctly saved and retrieved from
+ // mItemIdTopMap.
+ }
+
if (startLeft != null) {
if (startLeft != left) {
int delta = startLeft - left;
@@ -536,7 +566,8 @@
child instanceof ContactTileRow) {
// This is a tiled row, so perform horizontal animations instead
performHorizontalAnimations((ContactTileRow) child, (
- ArrayList<ContactEntry>) mAdapter.getItem(position), idsInPlace);
+ ArrayList<ContactEntry>) mAdapter.getItem(position), idsInPlace,
+ position);
}
final long itemId = mAdapter.getItemId(position);
diff --git a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
index 85e7216..e855c88 100644
--- a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
@@ -36,10 +36,6 @@
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);
}
@@ -63,14 +59,6 @@
}
@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) {
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index a85fc6a..dff68b2 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -15,7 +15,9 @@
*/
package com.android.dialer.list;
-import android.animation.ObjectAnimator;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ComparisonChain;
+
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
@@ -44,9 +46,6 @@
import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ComparisonChain;
-
import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedList;
@@ -64,7 +63,9 @@
private static final String TAG = PhoneFavoritesTileAdapter.class.getSimpleName();
private static final boolean DEBUG = false;
- public static final int ROW_LIMIT_DEFAULT = 1;
+ public static final int NO_ROW_LIMIT = -1;
+
+ public static final int ROW_LIMIT_DEFAULT = NO_ROW_LIMIT;
private ContactTileView.Listener mListener;
private OnDataSetChangedForAnimationListener mDataSetChangedListener;
@@ -155,7 +156,7 @@
mContactEntries = new ArrayList<ContactEntry>();
// Converting padding in dips to padding in pixels
mPaddingInPixels = mContext.getResources()
- .getDimensionPixelSize(R.dimen.contact_tile_divider_padding);
+ .getDimensionPixelSize(R.dimen.contact_tile_divider_width);
bindColumnIndices();
}
@@ -386,18 +387,24 @@
protected int getRowCount(int entryCount) {
if (entryCount == 0) return 0;
final int nonLimitedRows = ((entryCount - 1) / mColumnCount) + 1;
+ if (mMaxTiledRows == NO_ROW_LIMIT) {
+ return nonLimitedRows;
+ }
return Math.min(mMaxTiledRows, nonLimitedRows);
}
private int getMaxContactsInTiles() {
+ if (mMaxTiledRows == NO_ROW_LIMIT) {
+ return Integer.MAX_VALUE;
+ }
return mColumnCount * mMaxTiledRows;
}
public int getRowIndex(int entryIndex) {
- if (entryIndex < mMaxTiledRows * mColumnCount) {
+ if (entryIndex < getMaxContactsInTiles()) {
return entryIndex / mColumnCount;
} else {
- return entryIndex - mMaxTiledRows * mColumnCount + mMaxTiledRows;
+ return entryIndex - mMaxTiledRows * (mColumnCount + 1);
}
}
@@ -467,9 +474,13 @@
}
/**
- * Calculates the stable itemId for a particular entry based on its contactID
+ * Calculates the stable itemId for a particular entry based on the entry's contact ID. This
+ * stable itemId is used for animation purposes.
*/
public long getAdjustedItemId(long id) {
+ if (mMaxTiledRows == NO_ROW_LIMIT) {
+ return id;
+ }
return mMaxTiledRows + id;
}
@@ -479,7 +490,6 @@
}
@Override
-
public boolean areAllItemsEnabled() {
// No dividers, so all items are enabled.
return true;
@@ -541,7 +551,7 @@
@Override
public int getItemViewType(int position) {
- if (position < getRowCount(getMaxContactsInTiles())) {
+ if (position < getMaxContactsInTiles()) {
return ViewTypes.TOP;
} else {
return ViewTypes.FREQUENT;
@@ -700,6 +710,7 @@
private final int mRowPaddingEnd;
private final int mRowPaddingTop;
private final int mRowPaddingBottom;
+ private final float mHeightToWidthRatio;
private int mPosition;
private SwipeHelper mSwipeHelper;
private OnItemGestureListener mOnItemSwipeListener;
@@ -712,6 +723,9 @@
final Resources resources = mContext.getResources();
+ mHeightToWidthRatio = getResources().getFraction(
+ R.dimen.contact_tile_height_to_width_ratio, 1, 1);
+
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
@@ -723,8 +737,6 @@
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;
@@ -894,21 +906,22 @@
// Preferred width / height for images (excluding the padding).
// The actual width may be 1 pixel larger than this if we have a remainder.
- final int imageSize = (width - totalPaddingsInPixels) / mColumnCount;
- final int remainder = width - (imageSize * mColumnCount) - totalPaddingsInPixels;
+ final int imageWidth = (width - totalPaddingsInPixels) / mColumnCount;
+ final int remainder = width - (imageWidth * mColumnCount) - totalPaddingsInPixels;
+
+ final int height = (int) (mHeightToWidthRatio * imageWidth);
for (int i = 0; i < childCount; i++) {
final View child = getChildAt(i);
- final int childWidth = imageSize + child.getPaddingRight()
+ final int childWidth = imageWidth + child.getPaddingRight()
// Compensate for the remainder
+ (i < remainder ? 1 : 0);
- final int childHeight = imageSize;
child.measure(
MeasureSpec.makeMeasureSpec(childWidth, MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(childHeight, MeasureSpec.EXACTLY)
+ MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
);
}
- setMeasuredDimension(width, imageSize + getPaddingTop() + getPaddingBottom());
+ setMeasuredDimension(width, height + getPaddingTop() + getPaddingBottom());
}
/**
@@ -919,7 +932,7 @@
* @return Index of the selected item in the cached array.
*/
public int getItemIndex(float itemX, float itemY) {
- if (mPosition < mMaxTiledRows) {
+ if (mMaxTiledRows == NO_ROW_LIMIT || mPosition < mMaxTiledRows) {
if (DEBUG) {
Log.v(TAG, String.valueOf(itemX) + " " + String.valueOf(itemY));
}
diff --git a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
index 611b3f1..7a2076d 100644
--- a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
+++ b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
@@ -1,15 +1,26 @@
package com.android.dialer.list;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.provider.ContactsContract.PinnedPositions;
import android.test.AndroidTestCase;
+import com.android.contacts.common.ContactTileLoaderFactory;
+import com.android.contacts.common.list.ContactEntry;
+import com.android.dialer.list.PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener;
+
+import java.util.ArrayList;
+
public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
private PhoneFavoritesTileAdapter mAdapter;
+ private static final OnDataSetChangedForAnimationListener
+ sOnDataSetChangedForAnimationListener = new OnDataSetChangedForAnimationListener() {
+ @Override
+ public void onDataSetChangedForAnimation(long... idsInPlace) {}
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, null, 3, 1);
- }
+ @Override
+ public void cacheOffsetsForDatasetChange() {}
+ };
/**
* TODO: Add tests
@@ -42,5 +53,124 @@
}
+ public void testGetRowIndex_NoRowLimit() {
+ mAdapter = getAdapterForTest(2, PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
+ assertEquals(0, mAdapter.getRowCount(0));
+ assertEquals(1, mAdapter.getRowCount(1));
+ assertEquals(1, mAdapter.getRowCount(2));
+ assertEquals(2, mAdapter.getRowCount(4));
+ assertEquals(4, mAdapter.getRowCount(7));
+ assertEquals(100, mAdapter.getRowCount(199));
+ mAdapter = getAdapterForTest(5, PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
+ assertEquals(0, mAdapter.getRowCount(0));
+ assertEquals(1, mAdapter.getRowCount(1));
+ assertEquals(1, mAdapter.getRowCount(3));
+ assertEquals(1, mAdapter.getRowCount(5));
+ assertEquals(2, mAdapter.getRowCount(7));
+ assertEquals(2, mAdapter.getRowCount(10));
+ assertEquals(40, mAdapter.getRowCount(199));
+ }
+
+ public void testGetItemId_NoRowLimit() {
+ mAdapter = getAdapterForTest(2, PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
+ assertEquals(0, mAdapter.getItemId(0));
+ assertEquals(1, mAdapter.getItemId(1));
+ assertEquals(5, mAdapter.getItemId(5));
+ assertEquals(10, mAdapter.getItemId(10));
+ }
+
+ public void testGetAdjustedItemId_NoRowLimit() {
+ mAdapter = getAdapterForTest(2, PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
+ assertEquals(0, mAdapter.getAdjustedItemId(0));
+ assertEquals(1, mAdapter.getAdjustedItemId(1));
+ assertEquals(5, mAdapter.getAdjustedItemId(5));
+ assertEquals(10, mAdapter.getAdjustedItemId(10));
+ }
+
+ public void testGetItem_NoRowLimit() {
+ mAdapter = getAdapterForTest(2, PhoneFavoritesTileAdapter.NO_ROW_LIMIT);
+ mAdapter.setContactCursor(getCursorForTest(5, 5));
+
+ final ArrayList<ContactEntry> row1 = new ArrayList<ContactEntry> ();
+ row1.add(getTestContactEntry(0, true));
+ row1.add(getTestContactEntry(1, true));
+ assertContactEntryRowsEqual(row1, mAdapter.getItem(0));
+
+ final ArrayList<ContactEntry> row3 = new ArrayList<ContactEntry> ();
+ row3.add(getTestContactEntry(4, true));
+ row3.add(getTestContactEntry(5, false));
+ assertContactEntryRowsEqual(row3, mAdapter.getItem(2));
+
+ final ArrayList<ContactEntry> row5 = new ArrayList<ContactEntry> ();
+ row5.add(getTestContactEntry(8, false));
+ row5.add(getTestContactEntry(9, false));
+ assertContactEntryRowsEqual(row5, mAdapter.getItem(4));
+ }
+
+ /**
+ * Ensures that PhoneFavoritesTileAdapter returns true for hasStableIds. This is needed for
+ * animation purposes.
+ */
+ public void testHasStableIds() {
+ mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, null, 2, 2);
+ assertTrue(mAdapter.hasStableIds());
+ }
+
+ private PhoneFavoritesTileAdapter getAdapterForTest(int numCols, int numRows) {
+ return new PhoneFavoritesTileAdapter(getContext(), null,
+ sOnDataSetChangedForAnimationListener, numCols, numRows);
+ }
+
+ /**
+ * Returns a cursor containing starred and frequent contacts for test purposes.
+ *
+ * @param numStarred Number of starred contacts in the cursor. Cannot be a negative number.
+ * @param numFrequents Number of frequent contacts in the cursor. Cannot be a negative number.
+ * @return Cursor containing the required number of rows, each representing one ContactEntry
+ */
+ private Cursor getCursorForTest(int numStarred, int numFrequents) {
+ assertTrue(numStarred >= 0);
+ assertTrue(numFrequents >= 0);
+ final MatrixCursor c = new MatrixCursor(ContactTileLoaderFactory.COLUMNS_PHONE_ONLY);
+ int countId = 0;
+
+ // Add starred contact entries. These entries have the starred field set to 1 (true).
+ // The only field that really matters for testing is the contact id.
+ for (int i = 0; i < numStarred; i++) {
+ c.addRow(new Object[] {countId, null, 1, null, null, 0, 0, null, 0,
+ PinnedPositions.UNPINNED, countId});
+ countId++;
+ }
+
+ // Add frequent contact entries. These entries have the starred field set to 0 (false).
+ for (int i = 0; i < numFrequents; i++) {
+ c.addRow(new Object[] {countId, null, 0, null, null, 0, 0, null, 0,
+ PinnedPositions.UNPINNED, countId});
+ countId++;
+ }
+ return c;
+ }
+
+ /**
+ * Returns a ContactEntry with test data corresponding to the provided contact Id
+ *
+ * @param id Non-negative id
+ * @return ContactEntry item used for testing
+ */
+ private ContactEntry getTestContactEntry(int id, boolean isFavorite) {
+ ContactEntry contactEntry = new ContactEntry();
+ contactEntry.id = id;
+ contactEntry.isFavorite = isFavorite;
+ return contactEntry;
+ }
+
+ private void assertContactEntryRowsEqual(ArrayList<ContactEntry> expected,
+ ArrayList<ContactEntry> actual) {
+ assertEquals(expected.size(), actual.size());
+ for (int i = 0; i < actual.size(); i++) {
+ assertEquals(expected.get(i).id, actual.get(i).id);
+ assertEquals(expected.get(i).isFavorite, actual.get(i).isFavorite);
+ }
+ }
}