Reconcile with ics-factoryrom-release
Change-Id: Iaa355261c225244c7bc7ebc3a26c5eebf0a809ab
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f4dcdf6..df65877 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -45,6 +45,7 @@
<uses-permission android:name="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL" />
<!-- 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" />
<application
android:name="com.android.contacts.ContactsApplication"
diff --git a/res/drawable-hdpi/dial_background_texture.png b/res/drawable-hdpi/dial_background_texture.png
index 9df3b1e..95bec9f 100644
--- a/res/drawable-hdpi/dial_background_texture.png
+++ b/res/drawable-hdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_background_texture.png b/res/drawable-mdpi/dial_background_texture.png
index 90cd07c..a6d666c 100644
--- a/res/drawable-mdpi/dial_background_texture.png
+++ b/res/drawable-mdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-nodpi/background_dial_holo_dark.png b/res/drawable-nodpi/background_dial_holo_dark.png
new file mode 100644
index 0000000..3dba50c
--- /dev/null
+++ b/res/drawable-nodpi/background_dial_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_background_texture.png b/res/drawable-xhdpi/dial_background_texture.png
index 02aacc8..184049f 100644
--- a/res/drawable-xhdpi/dial_background_texture.png
+++ b/res/drawable-xhdpi/dial_background_texture.png
Binary files differ
diff --git a/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml b/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
index 0d94622..de6cd97 100644
--- a/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
+++ b/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
@@ -18,26 +18,26 @@
-->
<!-- Note: padding might be controlled programatically -->
-<LinearLayout
+<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:gravity="center_vertical"
- android:minHeight="@dimen/detail_min_line_item_height">
+ android:paddingLeft="16dip">
- <!-- Note: padding might be controlled programatically -->
- <com.android.contacts.detail.PrimaryActionViewContainer
- android:id="@+id/primary_action_view_container"
- android:layout_width="0dip"
- android:layout_weight="1"
+ <com.android.contacts.detail.ActionsViewContainer
+ android:id="@+id/actions_view_container"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:minHeight="@dimen/detail_min_line_item_height"
+ android:gravity="center_vertical"
android:orientation="horizontal"
- android:layout_gravity="center_vertical"
android:focusable="true"
- android:background="?android:attr/selectableItemBackground">
+ android:background="?android:attr/selectableItemBackground"
+ android:nextFocusRight="@+id/secondary_action_view_container">
+ <!-- Note: padding might be controlled programatically -->
<LinearLayout
+ android:id="@+id/primary_action_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
@@ -80,7 +80,7 @@
android:id="@+id/type"
style="@style/ContactDetailItemType"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingRight="16dip" />
@@ -92,33 +92,34 @@
android:layout_gravity="center_vertical"
android:background="@drawable/ic_menu_mark" />
- </com.android.contacts.detail.PrimaryActionViewContainer>
- <View
- android:id="@+id/vertical_divider"
- android:layout_width="1px"
- android:layout_height="match_parent"
- android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
- android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
- android:background="?android:attr/dividerVertical" />
-
- <!-- Note: padding might be controlled programatically -->
- <FrameLayout
- android:id="@+id/secondary_action_view_container"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:paddingLeft="@dimen/detail_item_icon_margin"
- android:paddingRight="@dimen/detail_item_icon_margin"
- android:duplicateParentState="false"
- android:focusable="true"
- android:background="?android:attr/selectableItemBackground">
- <ImageView
- android:id="@+id/secondary_action_button"
- android:layout_width="32dip"
+ <View
+ android:id="@+id/vertical_divider"
+ android:layout_width="1px"
android:layout_height="match_parent"
- android:layout_centerVertical="true"
- android:gravity="center"
- android:scaleType="center"
- android:duplicateParentState="false" />
- </FrameLayout>
-</LinearLayout>
+ android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
+ android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
+ android:background="?android:attr/dividerVertical" />
+
+ <!-- Note: padding might be controlled programatically -->
+ <FrameLayout
+ android:id="@+id/secondary_action_view_container"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/detail_item_icon_margin"
+ android:paddingRight="@dimen/detail_item_icon_margin"
+ android:duplicateParentState="false"
+ android:focusable="true"
+ android:background="?android:attr/selectableItemBackground"
+ android:nextFocusLeft="@id/actions_view_container">
+ <ImageView
+ android:id="@+id/secondary_action_button"
+ android:layout_width="32dip"
+ android:layout_height="match_parent"
+ android:layout_centerVertical="true"
+ android:gravity="center"
+ android:scaleType="center"
+ android:duplicateParentState="false" />
+ </FrameLayout>
+ </com.android.contacts.detail.ActionsViewContainer>
+</FrameLayout>
diff --git a/res/layout/contact_detail_list_item.xml b/res/layout/contact_detail_list_item.xml
index 99f027f..a410dc9 100644
--- a/res/layout/contact_detail_list_item.xml
+++ b/res/layout/contact_detail_list_item.xml
@@ -18,27 +18,25 @@
-->
<!-- Note: padding might be controlled programatically -->
-<LinearLayout
+<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:gravity="center_vertical"
- android:paddingTop="8dip"
- android:paddingBottom="8dip"
- android:minHeight="@dimen/detail_min_line_item_height">
+ android:paddingLeft="16dip">
- <!-- Note: padding might be controlled programatically -->
- <com.android.contacts.detail.PrimaryActionViewContainer
- android:id="@+id/primary_action_view_container"
- android:layout_width="0dip"
- android:layout_weight="1"
+ <com.android.contacts.detail.ActionsViewContainer
+ android:id="@+id/actions_view_container"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable="true"
- android:background="?android:attr/selectableItemBackground">
+ android:background="?android:attr/selectableItemBackground"
+ android:nextFocusRight="@+id/secondary_action_view_container"
+ android:minHeight="@dimen/detail_min_line_item_height">
+ <!-- Note: padding might be controlled programatically -->
<LinearLayout
+ android:id="@+id/primary_action_view"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
@@ -93,30 +91,31 @@
android:visibility="gone" />
</LinearLayout>
- </com.android.contacts.detail.PrimaryActionViewContainer>
- <View
- android:id="@+id/vertical_divider"
- android:layout_width="1dip"
- android:layout_height="match_parent"
- android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
- android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
- android:background="?android:attr/dividerVertical" />
+ <View
+ android:id="@+id/vertical_divider"
+ android:layout_width="1dip"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
+ android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
+ android:background="?android:attr/dividerVertical" />
- <!-- Note: padding might be controlled programatically -->
- <FrameLayout
- android:id="@+id/secondary_action_view_container"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:paddingLeft="@dimen/detail_item_icon_margin"
- android:paddingRight="@dimen/detail_item_icon_margin"
- android:focusable="true"
- android:background="?android:attr/selectableItemBackground">
- <ImageView
- android:id="@+id/secondary_action_button"
- android:layout_width="32dip"
- android:layout_height="32dip"
- android:layout_gravity="center_vertical"
- android:duplicateParentState="false" />
- </FrameLayout>
-</LinearLayout>
+ <!-- Note: padding might be controlled programatically -->
+ <FrameLayout
+ android:id="@+id/secondary_action_view_container"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/detail_item_icon_margin"
+ android:paddingRight="@dimen/detail_item_icon_margin"
+ android:focusable="true"
+ android:background="?android:attr/selectableItemBackground"
+ android:nextFocusLeft="@id/actions_view_container">
+ <ImageView
+ android:id="@+id/secondary_action_button"
+ android:layout_width="32dip"
+ android:layout_height="32dip"
+ android:layout_gravity="center_vertical"
+ android:duplicateParentState="false" />
+ </FrameLayout>
+ </com.android.contacts.detail.ActionsViewContainer>
+</FrameLayout>
diff --git a/res/layout/contact_tile_frequent_phone.xml b/res/layout/contact_tile_frequent_phone.xml
index 26c221c..dffdfc7 100644
--- a/res/layout/contact_tile_frequent_phone.xml
+++ b/res/layout/contact_tile_frequent_phone.xml
@@ -55,31 +55,38 @@
android:fadingEdgeLength="3dip"
android:ellipsize="marquee" />
- <TextView
- android:id="@+id/contact_tile_phone_number"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:orientation="horizontal"
android:layout_height="wrap_content"
- android:textSize="14sp"
- android:textColor="@color/dialtacts_secondary_text_color"
- android:layout_marginLeft="8dip"
- android:singleLine="true"
- android:maxLength="18"
+ android:layout_width="match_parent"
+ android:layout_below="@id/contact_tile_name"
android:layout_toRightOf="@id/image_container"
- android:layout_below="@id/contact_tile_name" />
+ android:gravity="center_vertical">
- <TextView
- android:id="@+id/contact_tile_phone_type"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="14sp"
- android:ellipsize="end"
- android:singleLine="true"
- android:textAllCaps="true"
- android:textColor="@color/dialtacts_secondary_text_color"
- android:layout_marginLeft="12dip"
- android:maxLength="8"
- android:layout_alignParentRight="true"
- android:layout_alignTop="@id/contact_tile_phone_number" />
+ <TextView
+ android:id="@+id/contact_tile_phone_number"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="5"
+ android:textSize="14sp"
+ android:textColor="@color/dialtacts_secondary_text_color"
+ android:layout_marginLeft="8dip"
+ android:singleLine="true"/>
+
+ <TextView
+ android:id="@+id/contact_tile_phone_type"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="3"
+ android:textSize="12sp"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAllCaps="true"
+ android:textColor="@color/dialtacts_secondary_text_color"
+ android:layout_marginLeft="8dip"
+ android:gravity="right" />
+
+ </LinearLayout>
<View
android:id="@+id/contact_tile_horizontal_divider"
diff --git a/res/layout/dialpad_additional_buttons.xml b/res/layout/dialpad_additional_buttons.xml
index ae37fd5..2d42ad0 100644
--- a/res/layout/dialpad_additional_buttons.xml
+++ b/res/layout/dialpad_additional_buttons.xml
@@ -21,7 +21,6 @@
android:layout_height="0px"
android:layout_weight="0.150"
android:layout_gravity="center_horizontal"
- android:layout_marginTop="@dimen/dialpad_vertical_margin"
android:background="@drawable/dialpad_background"
android:orientation="horizontal">
@@ -37,6 +36,12 @@
android:contentDescription="@string/description_search_button"
android:src="@drawable/ic_see_contacts_holo_dark"/>
+ <View
+ android:layout_width="1dip"
+ android:layout_height="24dip"
+ android:layout_gravity="center_vertical"
+ android:background="?android:attr/dividerVertical" />
+
<!-- Onscreen "Dial" button, diused on all platforms by
default. Its usage can be disabled using resources (see
config.xml.) -->
@@ -50,6 +55,12 @@
android:contentDescription="@string/description_dial_button"
android:src="@drawable/ic_dial_action_call" />
+ <View
+ android:layout_width="1dip"
+ android:layout_height="24dip"
+ android:layout_gravity="center_vertical"
+ android:background="?android:attr/dividerVertical" />
+
<!-- Onscreen "Backspace/Delete" button -->
<ImageButton android:id="@+id/deleteButton"
android:layout_width="0px"
diff --git a/res/layout/dialpad_fragment.xml b/res/layout/dialpad_fragment.xml
index 96cf543..ed16caf 100644
--- a/res/layout/dialpad_fragment.xml
+++ b/res/layout/dialpad_fragment.xml
@@ -59,6 +59,11 @@
<!-- Keypad section -->
<include layout="@layout/dialpad" />
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dialpad_vertical_margin"
+ android:background="#66000000"/>
+
<!-- Horizontal row of buttons (Search + DialButton + Delete.) -->
<include layout="@layout/dialpad_additional_buttons" />
diff --git a/res/layout/dialtacts_activity.xml b/res/layout/dialtacts_activity.xml
index 6484d87..af85bba 100644
--- a/res/layout/dialtacts_activity.xml
+++ b/res/layout/dialtacts_activity.xml
@@ -19,7 +19,7 @@
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize">
- <android.support.v4.view.ViewPager
+ <com.android.contacts.activities.DialtactsViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
diff --git a/res/layout/quickcontact_list_item.xml b/res/layout/quickcontact_list_item.xml
index 7929718..c018eea 100755
--- a/res/layout/quickcontact_list_item.xml
+++ b/res/layout/quickcontact_list_item.xml
@@ -16,22 +16,23 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/actions_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
- android:background="@drawable/quickcontact_list_item_background"
- android:gravity="center_vertical">
+ android:gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground"
+ android:nextFocusRight="@+id/secondary_action_button">
<LinearLayout
- android:id="@+id/primary_action_view_container"
android:layout_width="0dip"
android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
android:layout_weight="1"
- android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:gravity="center_vertical"
- android:background="?android:attr/selectableItemBackground">
+ android:orientation="vertical"
+ >
<TextView
android:id="@android:id/text1"
android:layout_width="wrap_content"
@@ -61,5 +62,6 @@
android:paddingLeft="@dimen/detail_item_icon_margin"
android:paddingRight="@dimen/detail_item_icon_margin"
android:background="?android:attr/selectableItemBackground"
- android:duplicateParentState="false" />
+ android:duplicateParentState="false"
+ android:nextFocusLeft="@id/actions_view_container" />
</LinearLayout>
diff --git a/res/layout/select_dialog_item.xml b/res/layout/select_dialog_item.xml
index ea671dd..d49ae10 100644
--- a/res/layout/select_dialog_item.xml
+++ b/res/layout/select_dialog_item.xml
@@ -23,7 +23,7 @@
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="48dip"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="?android:attr/textColorAlertDialogListItem"
android:gravity="center_vertical"
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 5cc93a1..5cc3148 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -161,12 +161,12 @@
<string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
<string name="noContactsHelpTextWithSyncForCreateShortcut" msgid="801504710275614594">"Du har ingen kontakter å vise. (Hvis du nettopp har lagt til en konto, kan det ta noen minutter å synkronisere kontaktene.)"</string>
<string name="noContactsHelpTextForCreateShortcut" msgid="3081286388667108335">"Du har ingen kontakter å vise."</string>
- <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:292 in java.io.StringReader@761a626f) -->
- <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:293 in java.io.StringReader@3e34a1fc) -->
+ <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:292 in java.io.StringReader@11975b59) -->
+ <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:293 in java.io.StringReader@67ee3914) -->
<string name="noContactsHelpTextWithSync" product="tablet" msgid="2364665535969139880">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>", og trykk deretter på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer"</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til nettbrettet"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt fra grunnen av"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Eksporter"</b></font>" for å importere kontakter fra SIM- eller SD-kort"\n</li></string>
<string name="noContactsHelpTextWithSync" product="default" msgid="3017521127042216243">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer "</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importér/Eksportér"</b></font>" for å importere kontakter fra SIM- eller SD-kort"\n</li></string>
- <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@7176c74b) -->
- <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@2d16471f) -->
+ <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@48e5855a) -->
+ <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@5495fd19) -->
<string name="noContactsNoSimHelpTextWithSync" product="tablet" msgid="6222739731808897565">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>", og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer"</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til nettbrettet"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt fra grunnen av"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>" for å importere kontakter fra SD-kortet"\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" product="default" msgid="9040060730467973050">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer "</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importér/eksportér"</b></font>" for å importere kontakter fra SD-kortet"\n</li></string>
<string name="noFavoritesHelpText" msgid="3744655776704833277">"Du har ingen favoritter."\n\n"Slik legger du til en kontakt i favorittlisten:"\n\n" "<li>"Trykk på fanen "<b>"Kontakter"</b>" "\n</li>" "\n<li>"Trykk på kontakten du vil legge til i favoritter"\n</li>" "\n<li>"Trykk på stjernen ved siden av kontaktnavnet"\n</li></string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 39c2b4d..79f1287 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -169,7 +169,7 @@
<string name="noContactsNoSimHelpText" product="default" msgid="467658807711582876">"Huna anwani zozote za kuonyesha."\n\n"Ili kuongeza anwani, bonyeza "<font fgcolor="#ffffffff"><b>"Menyu"</b></font>" na gusa:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Akaunti"</b></font>" ili kuongeza au kusanidi akaunti ya anwani unaweza kupatanisha katika simu"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Mawasiliano mapya"</b></font>" ili kuunda anwani mpya kuanzia mwanzo"</li>" "\n\n<li><font fgcolor="#ffffffff"><b>"Leta/Hamisha"</b></font>"ili kuleta anwani kutoka kwa kadi yako ya SD"\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" product="tablet" msgid="6222739731808897565">"Huna anwani zozote za kuonyesha. (Kama uliongeza akaunti, inaweza kuchukua dakika chache kusawazisha anwani.)"\n\n"Kuongeza anwani, bonyeza "<font fgcolor="#ffffffff"><b>"Menyu"</b></font>" na uguse:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Akaunti"</b></font>" ili kuongeza au kusanidi akaunti na anwani unazoweza kusawazisha kwenye kompyuta ndogo"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Chaguo za onyesha"</b></font>" ili kubadilisha ni anwani gani zinazoonekana"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anwani mpya"</b></font>" ili kuunda anwani mpya kutoka mwanzo"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Leta/Hamisha"</b></font>" ili kuleta anwani kutoka kwa kadi yako ya SD"\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" product="default" msgid="9040060730467973050">"Hauna anwani zozote za kuonyesha. (Kama umeongeza tu akaunti, inaweza kuchukua dadika chache ili kupatanisha anwani.)"\n\n"Ili kuongeza anwani, bonyeza "<font fgcolor="#ffffffff"><b>"Menyu"</b></font>" na gusa:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Akaunti"</b></font>" ili kuongeza au kusanidi anwani unayoweza kupatanisha katika simu"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Onyesha Machaguo"</b></font>"ili kubadilisha anwani zinazoonekana"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anwani mpya"</b></font>" ili kuunda anwani mpya kuanzia mwanzo"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Leta/Hamisha"</b></font>"ili kuleta anwani kutoka kwa kadi yako ya SD"\n</li></string>
- <!-- syntax error in translation for noFavoritesHelpText (3744655776704833277) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:167 in java.io.StringReader@2d3bad12) -->
+ <!-- syntax error in translation for noFavoritesHelpText (3744655776704833277) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:167 in java.io.StringReader@57c39a2d) -->
<string name="liveFolder_all_label" msgid="5961411940473276616">"Anwani zote"</string>
<string name="liveFolder_favorites_label" msgid="2674341514070517105">"Yenye nyota"</string>
<string name="liveFolder_phones_label" msgid="1709786878793436245">"Simu"</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 70145c1..5a94324 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -136,7 +136,7 @@
<dimen name="group_detail_border_padding">32dip</dimen>
<!-- Height of edit text in dialpad fragment -->
- <dimen name="dialpad_horizontal_margin">4dip</dimen>
+ <dimen name="dialpad_horizontal_margin">0dip</dimen>
<dimen name="dialpad_vertical_margin">2dip</dimen>
<dimen name="dialpad_digits_text_size">35sp</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0b47d5a..24822c0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -20,7 +20,7 @@
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
<item name="android:windowContentOverlay">@null</item>
- <item name="android:windowBackground">@android:color/black</item>
+ <item name="android:windowBackground">@drawable/background_dial_holo_dark</item>
<item name="activated_background">@drawable/list_item_activated_background</item>
<item name="section_header_background">@drawable/list_title_holo</item>
<item name="list_section_header_height">32dip</item>
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index e465772..2697589 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -331,10 +331,11 @@
new String[] {Contacts._ID, Contacts.LOOKUP_KEY},
null, null, null);
try {
- c.moveToFirst();
- final long contactId = c.getLong(0);
- final String lookupKey = c.getString(1);
- lookupUri = Contacts.getLookupUri(contactId, lookupKey);
+ if (c.moveToFirst()) {
+ final long contactId = c.getLong(0);
+ final String lookupKey = c.getString(1);
+ lookupUri = Contacts.getLookupUri(contactId, lookupKey);
+ }
} finally {
c.close();
}
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index f1f73ed..4de62b6 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -102,8 +102,8 @@
* considered equal for collapsing in the GUI. For caller-id, use
* {@link PhoneNumberUtils#compare(Context, String, String)} instead
*/
- public static final boolean shouldCollapse(Context context, CharSequence mimetype1,
- CharSequence data1, CharSequence mimetype2, CharSequence data2) {
+ public static final boolean shouldCollapse(CharSequence mimetype1, CharSequence data1,
+ CharSequence mimetype2, CharSequence data2) {
// different mimetypes? don't collapse
if (!TextUtils.equals(mimetype1, mimetype2)) return false;
diff --git a/src/com/android/contacts/activities/DialtactsViewPager.java b/src/com/android/contacts/activities/DialtactsViewPager.java
new file mode 100644
index 0000000..fb869a9
--- /dev/null
+++ b/src/com/android/contacts/activities/DialtactsViewPager.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.activities;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+
+public class DialtactsViewPager extends ViewPager {
+ public DialtactsViewPager(Context context) {
+ super(context);
+ }
+
+ public DialtactsViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ /**
+ * ViewPager inherits ViewGroup's default behavior of delayed clicks
+ * on its children, but in order to make the dialpad more responsive we
+ * disable that here. The Call Log and Favorites tabs are both
+ * ListViews which delay their children anyway, as desired to prevent
+ * seeing pressed states flashing while scrolling lists
+ */
+ public boolean shouldDelayChildPressedState() {
+ return false;
+ }
+}
diff --git a/src/com/android/contacts/activities/GroupDetailActivity.java b/src/com/android/contacts/activities/GroupDetailActivity.java
index 2708d5d..b0355fc 100644
--- a/src/com/android/contacts/activities/GroupDetailActivity.java
+++ b/src/com/android/contacts/activities/GroupDetailActivity.java
@@ -105,7 +105,9 @@
@Override
public void onContactSelected(Uri contactUri) {
- startActivity(new Intent(Intent.ACTION_VIEW, contactUri));
+ Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
+ intent.putExtra(ContactDetailActivity.INTENT_KEY_IGNORE_DEFAULT_UP_BEHAVIOR, true);
+ startActivity(intent);
}
};
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index d2759dc..3430109 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -949,9 +949,7 @@
}
TabState tab = mActionBarAdapter.getCurrentTab();
- if (tab == TabState.GROUPS) {
- mGroupsFragment.setAddAccountsVisibility(!areAccountsAvailable());
- }
+ showEmptyStateForTab(tab);
}
invalidateOptionsMenuIfNeeded();
diff --git a/src/com/android/contacts/detail/PrimaryActionViewContainer.java b/src/com/android/contacts/detail/ActionsViewContainer.java
similarity index 79%
rename from src/com/android/contacts/detail/PrimaryActionViewContainer.java
rename to src/com/android/contacts/detail/ActionsViewContainer.java
index a342884..05382eb 100644
--- a/src/com/android/contacts/detail/PrimaryActionViewContainer.java
+++ b/src/com/android/contacts/detail/ActionsViewContainer.java
@@ -25,21 +25,21 @@
/**
* Custom {@link LinearLayout} which remembers its position in the {@link ListView}. Should be
- * used for primary touch targets in {@link ContactDetailFragment}.
+ * used for action touch targets in {@link ContactDetailFragment}.
*/
-/* package */ class PrimaryActionViewContainer extends LinearLayout {
+/* package */ class ActionsViewContainer extends LinearLayout {
private ContextMenuInfo mContextMenuInfo;
- public PrimaryActionViewContainer(Context context) {
+ public ActionsViewContainer(Context context) {
super(context);
}
- public PrimaryActionViewContainer(Context context, AttributeSet attrs) {
+ public ActionsViewContainer(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
- public PrimaryActionViewContainer(Context context, AttributeSet attrs, int defStyle) {
+ public ActionsViewContainer(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index 775b50a..456abe8 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -23,7 +23,6 @@
import com.android.contacts.ContactSaveService;
import com.android.contacts.ContactsUtils;
import com.android.contacts.GroupMetaData;
-import com.android.contacts.NfcHandler;
import com.android.contacts.R;
import com.android.contacts.TypePrecedence;
import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
@@ -1348,8 +1347,7 @@
return false;
}
- if (!ContactsUtils.shouldCollapse(context, mimetype, data, entry.mimetype,
- entry.data)) {
+ if (!ContactsUtils.shouldCollapse(mimetype, data, entry.mimetype, entry.data)) {
return false;
}
@@ -1412,7 +1410,8 @@
public final TextView footer;
public final ImageView presenceIcon;
public final ImageView secondaryActionButton;
- public final View primaryActionViewContainer;
+ public final View actionsViewContainer;
+ public final View primaryActionView;
public final View secondaryActionViewContainer;
public final View secondaryActionDivider;
public final View primaryIndicator;
@@ -1426,8 +1425,9 @@
primaryIndicator = view.findViewById(R.id.primary_indicator);
presenceIcon = (ImageView) view.findViewById(R.id.presence_icon);
- primaryActionViewContainer = view.findViewById(R.id.primary_action_view_container);
- primaryActionViewContainer.setOnClickListener(primaryActionClickListener);
+ actionsViewContainer = view.findViewById(R.id.actions_view_container);
+ actionsViewContainer.setOnClickListener(primaryActionClickListener);
+ primaryActionView = view.findViewById(R.id.primary_action_view);
secondaryActionViewContainer = view.findViewById(
R.id.secondary_action_view_container);
@@ -1626,11 +1626,11 @@
presenceIconView.setVisibility(View.GONE);
}
- final PrimaryActionViewContainer primaryActionButtonContainer =
- (PrimaryActionViewContainer) views.primaryActionViewContainer;
- primaryActionButtonContainer.setTag(entry);
- primaryActionButtonContainer.setPosition(position);
- registerForContextMenu(primaryActionButtonContainer);
+ final ActionsViewContainer actionsButtonContainer =
+ (ActionsViewContainer) views.actionsViewContainer;
+ actionsButtonContainer.setTag(entry);
+ actionsButtonContainer.setPosition(position);
+ registerForContextMenu(actionsButtonContainer);
// Set the secondary action button
final ImageView secondaryActionView = views.secondaryActionButton;
@@ -1656,14 +1656,18 @@
views.secondaryActionDivider.setVisibility(View.GONE);
}
- // Right padding should not have "pressed" effect.
- view.setPadding(0, 0, mViewEntryDimensions.getPaddingRight(), 0);
- // Top, left, and bottom paddings should have "pressed" effect.
- primaryActionButtonContainer.setPadding(entry.isInSubSection() ?
- mViewEntryDimensions.getWidePaddingLeft() :
- mViewEntryDimensions.getPaddingLeft(),
+ // Right and left padding should not have "pressed" effect.
+ view.setPadding(
+ entry.isInSubSection()
+ ? mViewEntryDimensions.getWidePaddingLeft()
+ : mViewEntryDimensions.getPaddingLeft(),
+ 0, mViewEntryDimensions.getPaddingRight(), 0);
+ // Top and bottom padding should have "pressed" effect.
+ final View primaryActionView = views.primaryActionView;
+ primaryActionView.setPadding(
+ primaryActionView.getPaddingLeft(),
mViewEntryDimensions.getPaddingTop(),
- 0,
+ primaryActionView.getPaddingRight(),
mViewEntryDimensions.getPaddingBottom());
secondaryActionViewContainer.setPadding(
secondaryActionViewContainer.getPaddingLeft(),
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 118ca26..2d42a50 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -278,6 +278,7 @@
// collapse them again.
addOrganizationButton.setVisibility(View.GONE);
organizationSectionViewContainer.setVisibility(View.VISIBLE);
+ organizationSectionViewContainer.requestFocus();
}
});
diff --git a/src/com/android/contacts/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/interactions/ImportExportDialogFragment.java
index 078f63e..e0b617c 100644
--- a/src/com/android/contacts/interactions/ImportExportDialogFragment.java
+++ b/src/com/android/contacts/interactions/ImportExportDialogFragment.java
@@ -71,11 +71,11 @@
// Adapter that shows a list of string resources
final ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(getActivity(),
- android.R.layout.select_dialog_item) {
+ R.layout.select_dialog_item) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final TextView result = (TextView)(convertView != null ? convertView :
- dialogInflater.inflate(android.R.layout.select_dialog_item, parent, false));
+ dialogInflater.inflate(R.layout.select_dialog_item, parent, false));
final int resId = getItem(position);
result.setText(resId);
@@ -127,7 +127,6 @@
};
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_import_export)
- .setNegativeButton(android.R.string.cancel, null)
.setSingleChoiceItems(adapter, -1, clickListener)
.create();
}
diff --git a/src/com/android/contacts/interactions/PhoneNumberInteraction.java b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
index 918dac0..a42456c 100644
--- a/src/com/android/contacts/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
@@ -19,6 +19,7 @@
import com.android.contacts.Collapser;
import com.android.contacts.Collapser.Collapsible;
import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsUtils;
import com.android.contacts.R;
import com.android.contacts.model.AccountType;
import com.android.contacts.model.AccountType.StringInflater;
@@ -123,18 +124,8 @@
}
public boolean shouldCollapseWith(PhoneItem phoneItem) {
- try {
- PhoneNumberUtil util = PhoneNumberUtil.getInstance();
- PhoneNumber phoneNumber1 = util.parse(phoneNumber, "ZZ" /* Unknown */);
- PhoneNumber phoneNumber2 = util.parse(phoneItem.phoneNumber, "ZZ" /* Unknown */);
- MatchType matchType = util.isNumberMatch(phoneNumber1, phoneNumber2);
- if (matchType == MatchType.SHORT_NSN_MATCH) {
- return true;
- }
- } catch (NumberParseException e) {
- return TextUtils.equals(phoneNumber, phoneItem.phoneNumber);
- }
- return false;
+ return ContactsUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE, phoneNumber,
+ Phone.CONTENT_ITEM_TYPE, phoneItem.phoneNumber);
}
@Override
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index 2066997..13e824e 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -294,8 +294,7 @@
return false;
}
DataAction that = (DataAction)t;
- if (!ContactsUtils.shouldCollapse(mContext, mMimeType, mBody, that.mMimeType,
- that.mBody)) {
+ if (!ContactsUtils.shouldCollapse(mMimeType, mBody, that.mMimeType, that.mBody)) {
return false;
}
if (!TextUtils.equals(mMimeType, that.mMimeType)
diff --git a/src/com/android/contacts/quickcontact/QuickContactListFragment.java b/src/com/android/contacts/quickcontact/QuickContactListFragment.java
index cd899fa..962f07f 100644
--- a/src/com/android/contacts/quickcontact/QuickContactListFragment.java
+++ b/src/com/android/contacts/quickcontact/QuickContactListFragment.java
@@ -25,8 +25,6 @@
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -100,14 +98,14 @@
android.R.id.text1);
final TextView text2 = (TextView) resultView.findViewById(
android.R.id.text2);
- final View primaryActionContainer = resultView.findViewById(
- R.id.primary_action_view_container);
+ final View actionsContainer = resultView.findViewById(
+ R.id.actions_view_container);
final ImageView alternateActionButton = (ImageView) resultView.findViewById(
R.id.secondary_action_button);
final View alternateActionDivider = resultView.findViewById(R.id.vertical_divider);
- primaryActionContainer.setOnClickListener(mPrimaryActionClickListener);
- primaryActionContainer.setTag(action);
+ actionsContainer.setOnClickListener(mPrimaryActionClickListener);
+ actionsContainer.setTag(action);
alternateActionButton.setOnClickListener(mSecondaryActionClickListener);
alternateActionButton.setTag(action);
diff --git a/tests/src/com/android/contacts/ContactsUtilsTests.java b/tests/src/com/android/contacts/ContactsUtilsTests.java
index 97a2c8e..82d0cb0 100644
--- a/tests/src/com/android/contacts/ContactsUtilsTests.java
+++ b/tests/src/com/android/contacts/ContactsUtilsTests.java
@@ -160,9 +160,9 @@
private void assertCollapses(String message, boolean expected, CharSequence mimetype1,
CharSequence data1, CharSequence mimetype2, CharSequence data2) {
assertEquals(message, expected,
- ContactsUtils.shouldCollapse(mContext, mimetype1, data1, mimetype2, data2));
+ ContactsUtils.shouldCollapse(mimetype1, data1, mimetype2, data2));
assertEquals(message, expected,
- ContactsUtils.shouldCollapse(mContext, mimetype2, data2, mimetype1, data1));
+ ContactsUtils.shouldCollapse(mimetype2, data2, mimetype1, data1));
if (data1 == data2 && data1 != null) {
// make sure we also do a test where object equality is not given
@@ -173,10 +173,10 @@
// we have two different instances, now make sure we get the same result as before
assertEquals(message, expected,
- ContactsUtils.shouldCollapse(mContext, mimetype1, data1, mimetype2,
+ ContactsUtils.shouldCollapse(mimetype1, data1, mimetype2,
data2_newref));
assertEquals(message, expected,
- ContactsUtils.shouldCollapse(mContext, mimetype2, data2_newref, mimetype1,
+ ContactsUtils.shouldCollapse(mimetype2, data2_newref, mimetype1,
data1));
}
}