Merge change 26295 into eclair
* changes:
Don't CCO when picking from disambig list.
diff --git a/res/drawable-finger/btn_dial_delete.xml b/res/drawable-finger/btn_dial_delete.xml
index 235554d..b8c672d 100644
--- a/res/drawable-finger/btn_dial_delete.xml
+++ b/res/drawable-finger/btn_dial_delete.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,12 +14,20 @@
limitations under the License.
-->
+<!-- Background resource for backspace button for the various 12 key dialers. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_dial_delete_pressed" />
- <item android:state_focused="true"
- android:drawable="@drawable/btn_dial_delete_selected" />
- <item
- android:drawable="@drawable/btn_dial_delete_normal" />
+ <!-- Disabled views -->
+ <item android:state_focused="true" android:state_enabled="false"
+ android:drawable="@drawable/btn_dial_action_right_disable_focused" />
+ <item android:state_enabled="false"
+ android:drawable="@drawable/btn_dial_action_right_disable" />
+
+ <!-- Enabled views -->
+ <item android:state_pressed="true" android:state_enabled="true"
+ android:drawable="@drawable/btn_dial_action_right_pressed" />
+ <item android:state_focused="true" android:state_enabled="true"
+ android:drawable="@drawable/btn_dial_action_right_selected" />
+ <item android:state_enabled="true"
+ android:drawable="@drawable/btn_dial_action_right_normal" />
</selector>
diff --git a/res/drawable-finger/btn_dial_delete_activated.9.png b/res/drawable-finger/btn_dial_delete_activated.9.png
deleted file mode 100644
index 453a368..0000000
--- a/res/drawable-finger/btn_dial_delete_activated.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_delete_active.xml b/res/drawable-finger/btn_dial_delete_active.xml
deleted file mode 100644
index 3403f34..0000000
--- a/res/drawable-finger/btn_dial_delete_active.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_dial_delete_pressed" />
- <item android:state_focused="true"
- android:drawable="@drawable/btn_dial_delete_selected" />
- <item
- android:drawable="@drawable/btn_dial_delete_activated" />
-</selector>
-
diff --git a/res/drawable-finger/btn_dial_delete_normal.9.png b/res/drawable-finger/btn_dial_delete_normal.9.png
deleted file mode 100644
index 9da1cff..0000000
--- a/res/drawable-finger/btn_dial_delete_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_delete_pressed.9.png b/res/drawable-finger/btn_dial_delete_pressed.9.png
deleted file mode 100644
index 5bbc20d..0000000
--- a/res/drawable-finger/btn_dial_delete_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_delete_selected.9.png b/res/drawable-finger/btn_dial_delete_selected.9.png
deleted file mode 100644
index d959768..0000000
--- a/res/drawable-finger/btn_dial_delete_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_textfield_activated.9.png b/res/drawable-finger/btn_dial_textfield_activated.9.png
deleted file mode 100644
index 4c34576..0000000
--- a/res/drawable-finger/btn_dial_textfield_activated.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_textfield_normal.9.png b/res/drawable-finger/btn_dial_textfield_normal.9.png
deleted file mode 100644
index 40ab866..0000000
--- a/res/drawable-finger/btn_dial_textfield_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_textfield_pressed.9.png b/res/drawable-finger/btn_dial_textfield_pressed.9.png
deleted file mode 100644
index 0087327..0000000
--- a/res/drawable-finger/btn_dial_textfield_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/btn_dial_textfield_selected.9.png b/res/drawable-finger/btn_dial_textfield_selected.9.png
deleted file mode 100644
index 63fceaa..0000000
--- a/res/drawable-finger/btn_dial_textfield_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/ic_delete_phone_number.xml b/res/drawable-finger/ic_delete_phone_number.xml
deleted file mode 100644
index adfc0ce..0000000
--- a/res/drawable-finger/ic_delete_phone_number.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/ic_delete_phone_number_blk" />
- <item android:state_focused="true"
- android:drawable="@drawable/ic_delete_phone_number_blk" />
- <item
- android:drawable="@drawable/ic_delete_phone_number_wht" />
-</selector>
-
diff --git a/res/drawable-finger/ic_delete_phone_number_blk.png b/res/drawable-finger/ic_delete_phone_number_blk.png
deleted file mode 100644
index 2e83d36..0000000
--- a/res/drawable-finger/ic_delete_phone_number_blk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/ic_delete_phone_number_wht.png b/res/drawable-finger/ic_delete_phone_number_wht.png
deleted file mode 100644
index 988bcfd..0000000
--- a/res/drawable-finger/ic_delete_phone_number_wht.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-finger/ic_menu_merge.png b/res/drawable-finger/ic_menu_merge.png
new file mode 100644
index 0000000..b448c27
--- /dev/null
+++ b/res/drawable-finger/ic_menu_merge.png
Binary files differ
diff --git a/res/drawable-finger/ic_menu_split.png b/res/drawable-finger/ic_menu_split.png
new file mode 100644
index 0000000..9d69e4c
--- /dev/null
+++ b/res/drawable-finger/ic_menu_split.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png
new file mode 100755
index 0000000..6e6fa30
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png
new file mode 100755
index 0000000..46a042f
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png
new file mode 100755
index 0000000..6e6fa30
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png
new file mode 100755
index 0000000..d66a509
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png
new file mode 100755
index 0000000..d2ee98b
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png
new file mode 100755
index 0000000..c937c5e
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png
new file mode 100755
index 0000000..0c38b39
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png
new file mode 100755
index 0000000..22d8235
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png
new file mode 100755
index 0000000..1fe4dfc
--- /dev/null
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_dial_action_delete.png b/res/drawable-hdpi-finger/ic_dial_action_delete.png
new file mode 100755
index 0000000..2e206c8
--- /dev/null
+++ b/res/drawable-hdpi-finger/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png
new file mode 100755
index 0000000..85dfff0
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png
new file mode 100755
index 0000000..1f76f0c
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png
new file mode 100755
index 0000000..85dfff0
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png
new file mode 100755
index 0000000..226633f
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png
new file mode 100755
index 0000000..9cca52c
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png
new file mode 100755
index 0000000..de65d44
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png
new file mode 100755
index 0000000..d3613e3
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png
new file mode 100755
index 0000000..fa7147e
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png
new file mode 100755
index 0000000..09db422
--- /dev/null
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/ic_dial_action_delete.png b/res/drawable-mdpi-finger/ic_dial_action_delete.png
new file mode 100755
index 0000000..440ae37
--- /dev/null
+++ b/res/drawable-mdpi-finger/ic_dial_action_delete.png
Binary files differ
diff --git a/res/layout-finger/create_new_contact.xml b/res/layout-finger/create_new_contact.xml
new file mode 100644
index 0000000..776c482
--- /dev/null
+++ b/res/layout-finger/create_new_contact.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="horizontal"
+ android:paddingRight="6dip"
+ android:paddingLeft="6dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="5dip"
+ android:gravity="center_vertical"
+ >
+ <ImageView android:id="@+id/addicon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="5dip"
+ android:layout_marginRight="11dip"
+ android:focusable="false"
+ android:src="@*android:drawable/sym_action_add"
+ android:scaleType="fitCenter"
+ />
+ <TextView android:id="@+id/title"
+ android:text="@string/pickerNewContactHeader"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textStyle="bold"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="2dip"
+ />
+</LinearLayout>
diff --git a/res/layout-finger/list_item_text_icons.xml b/res/layout-finger/list_item_text_icons.xml
index 051dde9..7e2e26e 100644
--- a/res/layout-finger/list_item_text_icons.xml
+++ b/res/layout-finger/list_item_text_icons.xml
@@ -23,7 +23,6 @@
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:paddingLeft="9dip"
- android:paddingRight="5dip"
android:gravity="center_vertical"
>
@@ -87,17 +86,16 @@
<View android:id="@+id/divider"
android:layout_width="1dip"
android:layout_height="fill_parent"
- android:layout_marginRight="11dip"
android:background="@drawable/divider_vertical_dark"
/>
<ImageView android:id="@+id/secondary_action_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="5dip"
- android:layout_marginRight="7dip"
+ android:layout_width="64dip"
+ android:layout_height="fill_parent"
+ android:layout_centerVertical="true"
android:gravity="center"
- android:scaleType="centerInside"
+ android:scaleType="center"
+ android:background="@android:drawable/list_selector_background"
/>
</LinearLayout>
diff --git a/res/layout-finger/twelve_key_dialer.xml b/res/layout-finger/twelve_key_dialer.xml
index c904deb..74f644b 100644
--- a/res/layout-finger/twelve_key_dialer.xml
+++ b/res/layout-finger/twelve_key_dialer.xml
@@ -20,46 +20,24 @@
android:layout_height="fill_parent"
android:orientation="vertical"
>
- <LinearLayout android:id="@+id/digitsAndBackspace"
+ <!-- Text field above the keypad where the digits are displayed -->
+ <EditText android:id="@+id/digits"
android:layout_width="fill_parent"
android:layout_height="66dip"
- android:layout_marginTop="3dip"
- android:layout_marginBottom="5dip"
- android:layout_marginLeft="3dip"
- android:layout_marginRight="3dip"
- android:orientation="horizontal"
- >
-
- <EditText android:id="@+id/digits"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="66dip"
- android:maxLines="1"
- android:scrollHorizontally="true"
- android:textSize="28sp"
- android:freezesText="true"
- android:background="@drawable/btn_dial_textfield"
- android:textColor="@color/dialer_button_text"
- android:focusableInTouchMode="false"
- android:nextFocusRight="@+id/backspace"
- />
-
- <ImageButton android:id="@+id/backspace"
- style="@android:style/Widget.Button.Inset"
- android:layout_width="wrap_content"
- android:layout_height="66dip"
- android:background="@drawable/btn_dial_delete"
- android:src="@drawable/ic_delete_phone_number"
- android:gravity="center"
- />
-
- </LinearLayout>
+ android:maxLines="1"
+ android:scrollHorizontally="true"
+ android:textSize="28sp"
+ android:freezesText="true"
+ android:background="@drawable/btn_dial_textfield"
+ android:textColor="@color/dialer_button_text"
+ android:focusableInTouchMode="false"
+ />
<!-- Keypad section -->
<include layout="@layout/dialpad" />
- <!-- Horizontal row of buttons (Voicemail + DialButton + Backspace.) -->
- <LinearLayout android:id="@+id/voicemailAndDialAndBackspace"
+ <!-- Horizontal row of buttons (Voicemail + DialButton + Delete.) -->
+ <LinearLayout android:id="@+id/voicemailAndDialAndDelete"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
@@ -85,6 +63,15 @@
android:state_enabled="false"
android:background="@drawable/btn_dial_action"
android:src="@drawable/ic_dial_action_call" />
+
+ <!-- Onscreen "Backspace/Delete" button -->
+ <ImageButton android:id="@+id/deleteButton"
+ android:layout_width="90dip"
+ android:layout_height="52dip"
+ android:layout_gravity="center_vertical"
+ android:state_enabled="false"
+ android:background="@drawable/btn_dial_delete"
+ android:src="@drawable/ic_dial_action_delete" />
</LinearLayout>
<!-- "Dialpad chooser" UI, shown only when the user brings up the
diff --git a/res/layout-land-finger/twelve_key_dialer.xml b/res/layout-land-finger/twelve_key_dialer.xml
index 9547ed5..0b89572 100644
--- a/res/layout-land-finger/twelve_key_dialer.xml
+++ b/res/layout-land-finger/twelve_key_dialer.xml
@@ -20,47 +20,22 @@
android:layout_height="fill_parent"
android:orientation="vertical"
>
- <LinearLayout android:id="@+id/digitsAndBackspace"
+
+ <!-- Text field above the keypad where the digits are displayed -->
+ <EditText android:id="@+id/digits"
android:layout_width="fill_parent"
android:layout_height="66dip"
- android:addStatesFromChildren="true"
- android:gravity="center_vertical"
- android:baselineAligned="false"
- android:layout_marginTop="3dip"
- android:layout_marginBottom="5dip"
- android:layout_marginLeft="3dip"
- android:layout_marginRight="3dip"
- >
+ android:maxLines="1"
+ android:scrollHorizontally="true"
+ android:textSize="28sp"
+ android:freezesText="true"
+ android:background="@drawable/btn_dial_textfield"
+ android:textColor="@color/dialer_button_text"
+ android:hint="@string/dialerKeyboardHintText"
+ />
- <EditText android:id="@+id/digits"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="66dip"
- android:maxLines="1"
- android:scrollHorizontally="true"
- android:textSize="28sp"
- android:freezesText="true"
- android:background="@drawable/btn_dial_textfield"
- android:textColor="@color/dialer_button_text"
- android:hint="@string/dialerKeyboardHintText"
- />
-
- <!--
- The button goes at the right.
- -->
- <ImageButton android:id="@+id/backspace"
- style="@android:style/Widget.Button.Inset"
- android:src="@drawable/ic_delete_phone_number"
- android:layout_width="wrap_content"
- android:layout_height="66dip"
- android:background="@drawable/btn_dial_delete"
- android:gravity="center"
- />
-
- </LinearLayout>
-
- <!-- Horizontal row of buttons (Voicemail + DialButton + Backspace.) -->
- <LinearLayout android:id="@+id/voicemailAndDialAndBackspace"
+ <!-- Horizontal row of buttons (Voicemail + DialButton + Delete.) -->
+ <LinearLayout android:id="@+id/voicemailAndDialAndDelete"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
@@ -86,6 +61,15 @@
android:state_enabled="false"
android:background="@drawable/btn_dial_action"
android:src="@drawable/ic_dial_action_call" />
+
+ <!-- Onscreen "Backspace/Delete" button -->
+ <ImageButton android:id="@+id/deleteButton"
+ android:layout_width="90dip"
+ android:layout_height="52dip"
+ android:layout_gravity="center_vertical"
+ android:state_enabled="false"
+ android:background="@drawable/btn_dial_delete"
+ android:src="@drawable/ic_dial_action_delete" />
</LinearLayout>
<!-- "Dialpad chooser" UI, shown only when the user brings up the
diff --git a/res/menu/view.xml b/res/menu/view.xml
index cf43802..48cbeb1 100644
--- a/res/menu/view.xml
+++ b/res/menu/view.xml
@@ -35,12 +35,12 @@
<!-- TODO: use new split/join icons -->
<item
android:id="@+id/menu_split"
- android:icon="@android:drawable/ic_menu_share"
+ android:icon="@drawable/ic_menu_split"
android:title="@string/menu_splitAggregate" />
<item
android:id="@+id/menu_join"
- android:icon="@android:drawable/ic_menu_add"
+ android:icon="@drawable/ic_menu_merge"
android:title="@string/menu_joinAggregate" />
<item
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index dc5f8f8..125701b 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -540,9 +540,7 @@
if ((mMode & MODE_MASK_CREATE_NEW) != 0) {
// Add the header for creating a new contact
final LayoutInflater inflater = getLayoutInflater();
- View header = inflater.inflate(android.R.layout.simple_list_item_1, list, false);
- TextView text = (TextView) header.findViewById(android.R.id.text1);
- text.setText(R.string.pickerNewContactHeader);
+ View header = inflater.inflate(R.layout.create_new_contact, list, false);
list.addHeaderView(header);
}
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
index 5ab8ed1..09cf5ec 100644
--- a/src/com/android/contacts/SplitAggregateView.java
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -56,19 +56,21 @@
private static final String TAG = "SplitAggregateView";
- private static final String[] AGGREGATE_DATA_PROJECTION = new String[] {
- Data.MIMETYPE, RawContacts.ACCOUNT_TYPE, Data.RAW_CONTACT_ID, Data.DATA1, Data.DATA2,
- Data.IS_PRIMARY, StructuredName.DISPLAY_NAME
- };
+ private interface SplitQuery {
+ String[] COLUMNS = new String[] {
+ Data.MIMETYPE, RawContacts.ACCOUNT_TYPE, Data.RAW_CONTACT_ID, Data.IS_PRIMARY,
+ StructuredName.DISPLAY_NAME, Nickname.NAME, Email.DATA, Phone.NUMBER
+ };
- private static final int COL_MIMETYPE = 0;
- private static final int COL_ACCOUNT_TYPE = 1;
- private static final int COL_RAW_CONTACT_ID = 2;
- private static final int COL_DATA1 = 3;
- private static final int COL_DATA2 = 4;
- private static final int COL_IS_PRIMARY = 5;
- private static final int COL_DISPLAY_NAME = 6;
-
+ int MIMETYPE = 0;
+ int ACCOUNT_TYPE = 1;
+ int RAW_CONTACT_ID = 2;
+ int IS_PRIMARY = 3;
+ int DISPLAY_NAME = 4;
+ int NICKNAME = 5;
+ int EMAIL = 6;
+ int PHONE = 7;
+ }
private final Uri mAggregateUri;
private OnContactSelectedListener mListener;
@@ -155,18 +157,18 @@
HashMap<Long, RawContactInfo> rawContactInfos = new HashMap<Long, RawContactInfo>();
Uri dataUri = Uri.withAppendedPath(mAggregateUri, Data.CONTENT_DIRECTORY);
Cursor cursor = getContext().getContentResolver().query(dataUri,
- AGGREGATE_DATA_PROJECTION, null, null, null);
+ SplitQuery.COLUMNS, null, null, null);
try {
while (cursor.moveToNext()) {
- long rawContactId = cursor.getLong(COL_RAW_CONTACT_ID);
+ long rawContactId = cursor.getLong(SplitQuery.RAW_CONTACT_ID);
RawContactInfo info = rawContactInfos.get(rawContactId);
if (info == null) {
info = new RawContactInfo(rawContactId);
rawContactInfos.put(rawContactId, info);
- info.accountType = cursor.getString(COL_ACCOUNT_TYPE);
+ info.accountType = cursor.getString(SplitQuery.ACCOUNT_TYPE);
}
- String mimetype = cursor.getString(COL_MIMETYPE);
+ String mimetype = cursor.getString(SplitQuery.MIMETYPE);
if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype)) {
loadStructuredName(cursor, info);
} else if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) {
@@ -187,44 +189,24 @@
}
private void loadStructuredName(Cursor cursor, RawContactInfo info) {
- info.name = cursor.getString(COL_DISPLAY_NAME);
- if (info.name != null) {
- return;
- }
-
- StringBuilder sb = new StringBuilder();
- String firstName = cursor.getString(COL_DATA1);
- String lastName = cursor.getString(COL_DATA2);
- if (!TextUtil.isEmpty(firstName)) {
- sb.append(firstName);
- }
- if (!TextUtil.isEmpty(firstName) && !TextUtil.isEmpty(lastName)) {
- sb.append(" ");
- }
- if (!TextUtil.isEmpty(lastName)) {
- sb.append(lastName);
- }
-
- if (sb.length() != 0) {
- info.name = sb.toString();
- }
+ info.name = cursor.getString(SplitQuery.DISPLAY_NAME);
}
private void loadNickname(Cursor cursor, RawContactInfo info) {
- if (info.nickname == null || cursor.getInt(COL_IS_PRIMARY) != 0) {
- info.nickname = cursor.getString(COL_DATA2);
+ if (info.nickname == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+ info.nickname = cursor.getString(SplitQuery.NICKNAME);
}
}
private void loadEmail(Cursor cursor, RawContactInfo info) {
- if (info.email == null || cursor.getInt(COL_IS_PRIMARY) != 0) {
- info.email = cursor.getString(COL_DATA2);
+ if (info.email == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+ info.email = cursor.getString(SplitQuery.EMAIL);
}
}
private void loadPhoneNumber(Cursor cursor, RawContactInfo info) {
- if (info.phone == null || cursor.getInt(COL_IS_PRIMARY) != 0) {
- info.phone = cursor.getString(COL_DATA2);
+ if (info.phone == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+ info.phone = cursor.getString(SplitQuery.PHONE);
}
}
diff --git a/src/com/android/contacts/TwelveKeyDialer.java b/src/com/android/contacts/TwelveKeyDialer.java
index 2be677a..ebb76c0 100644
--- a/src/com/android/contacts/TwelveKeyDialer.java
+++ b/src/com/android/contacts/TwelveKeyDialer.java
@@ -89,11 +89,8 @@
private Object mToneGeneratorLock = new Object();
private Drawable mDigitsBackground;
private Drawable mDigitsEmptyBackground;
- private Drawable mDeleteBackground;
- private Drawable mDeleteEmptyBackground;
- private View mDigitsAndBackspace;
private View mDialpad;
- private View mVoicemailDialAndBackspaceRow;
+ private View mVoicemailDialAndDeleteRow;
private View mVoicemailButton;
private View mDialButton;
private ListView mDialpadChooser;
@@ -158,19 +155,7 @@
mDigits.getText().clear();
}
- // Set the proper background for the dial input area
- if (mDigits.length() != 0) {
- mDelete.setBackgroundDrawable(mDeleteBackground);
- mDigits.setBackgroundDrawable(mDigitsBackground);
- mDigits.setCompoundDrawablesWithIntrinsicBounds(
- getResources().getDrawable(R.drawable.ic_dial_number), null, null, null);
- } else {
- mDelete.setBackgroundDrawable(mDeleteEmptyBackground);
- mDigits.setBackgroundDrawable(mDigitsEmptyBackground);
- mDigits.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
- }
-
- updateDialButtonStateEnabledAttr();
+ updateDialAndDeleteButtonStateEnabledAttr();
}
@Override
@@ -185,11 +170,6 @@
mDigitsBackground = r.getDrawable(R.drawable.btn_dial_textfield_active);
//mDigitsBackground.setDither(true);
mDigitsEmptyBackground = r.getDrawable(R.drawable.btn_dial_textfield);
- //mDigitsEmptyBackground.setDither(true);
- mDeleteBackground = r.getDrawable(R.drawable.btn_dial_delete_active);
- //mDeleteBackground.setDither(true);
- mDeleteEmptyBackground = r.getDrawable(R.drawable.btn_dial_delete);
- //mDeleteEmptyBackground.setDither(true);
mDigits = (EditText) findViewById(R.id.digits);
mDigits.setKeyListener(DialerKeyListener.getInstance());
@@ -203,12 +183,12 @@
setupKeypad();
}
- mVoicemailDialAndBackspaceRow = findViewById(R.id.voicemailAndDialAndBackspace);
+ mVoicemailDialAndDeleteRow = findViewById(R.id.voicemailAndDialAndDelete);
initVoicemailButton();
// Check whether we should show the onscreen "Dial" button.
- mDialButton = mVoicemailDialAndBackspaceRow.findViewById(R.id.dialButton);
+ mDialButton = mVoicemailDialAndDeleteRow.findViewById(R.id.dialButton);
if (r.getBoolean(R.bool.config_show_onscreen_dial_button)) {
mDialButton.setOnClickListener(this);
@@ -217,12 +197,11 @@
mDialButton = null;
}
- view = findViewById(R.id.backspace);
+ view = mVoicemailDialAndDeleteRow.findViewById(R.id.deleteButton);
view.setOnClickListener(this);
view.setOnLongClickListener(this);
mDelete = view;
- mDigitsAndBackspace = findViewById(R.id.digitsAndBackspace);
mDialpad = findViewById(R.id.dialpad); // This is null in landscape mode
// Set up the "dialpad chooser" UI; see showDialpadChooser().
@@ -438,7 +417,7 @@
showDialpadChooser(false);
}
- updateDialButtonStateEnabledAttr();
+ updateDialAndDeleteButtonStateEnabledAttr();
}
@Override
@@ -666,7 +645,7 @@
keyPressed(KeyEvent.KEYCODE_STAR);
return;
}
- case R.id.backspace: {
+ case R.id.deleteButton: {
keyPressed(KeyEvent.KEYCODE_DEL);
return;
}
@@ -688,8 +667,12 @@
final Editable digits = mDigits.getText();
int id = view.getId();
switch (id) {
- case R.id.backspace: {
+ case R.id.deleteButton: {
digits.clear();
+ // TODO: The framework forgets to clear the pressed
+ // status of disabled button. Until this is fixed,
+ // clear manually the pressed status. b/2133127
+ mDelete.setPressed(false);
return true;
}
case R.id.one: {
@@ -789,9 +772,9 @@
private void showDialpadChooser(boolean enabled) {
if (enabled) {
// Log.i(TAG, "Showing dialpad chooser!");
- mDigitsAndBackspace.setVisibility(View.GONE);
+ mDigits.setVisibility(View.GONE);
if (mDialpad != null) mDialpad.setVisibility(View.GONE);
- mVoicemailDialAndBackspaceRow.setVisibility(View.GONE);
+ mVoicemailDialAndDeleteRow.setVisibility(View.GONE);
mDialpadChooser.setVisibility(View.VISIBLE);
// Instantiate the DialpadChooserAdapter and hook it up to the
@@ -802,9 +785,9 @@
}
} else {
// Log.i(TAG, "Displaying normal Dialer UI.");
- mDigitsAndBackspace.setVisibility(View.VISIBLE);
+ mDigits.setVisibility(View.VISIBLE);
if (mDialpad != null) mDialpad.setVisibility(View.VISIBLE);
- mVoicemailDialAndBackspaceRow.setVisibility(View.VISIBLE);
+ mVoicemailDialAndDeleteRow.setVisibility(View.VISIBLE);
mDialpadChooser.setVisibility(View.GONE);
}
}
@@ -1046,14 +1029,18 @@
}
/**
- * Update the enabledness of the "Dial" button if applicable.
+ * Update the enabledness of the "Dial" and "Backspace" buttons if applicable.
*/
- private void updateDialButtonStateEnabledAttr() {
+ private void updateDialAndDeleteButtonStateEnabledAttr() {
+ final boolean notEmpty = mDigits.length() != 0;
+
if (mDialButton != null) {
- mDialButton.setEnabled(mDigits.length() != 0);
+ mDialButton.setEnabled(notEmpty);
}
+ mDelete.setEnabled(notEmpty);
}
+
/**
* Check if voicemail is enabled/accessible.
*/
@@ -1065,7 +1052,7 @@
// Possibly no READ_PHONE_STATE privilege.
}
- mVoicemailButton = mVoicemailDialAndBackspaceRow.findViewById(R.id.voicemailButton);
+ mVoicemailButton = mVoicemailDialAndDeleteRow.findViewById(R.id.voicemailButton);
if (hasVoicemail) {
mVoicemailButton.setOnClickListener(this);
} else {
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index 385fbc6..be78bea 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -231,8 +231,6 @@
//TODO Read this value from a preference
mShowSmsLinksForAllPhones = true;
-
- startEntityQuery();
}
@Override
@@ -306,10 +304,6 @@
ContactsSource.LEVEL_SUMMARY);
addTab(rawContactId, ContactsUtils.createTabIndicatorView(mTabWidget.getTabParent(), source));
}
-
- selectInitialTab();
- mTabWidget.setVisibility(View.VISIBLE);
- mTabWidget.postInvalidate();
}
/**
@@ -342,6 +336,8 @@
mTabWidget.setCurrentTab(selectedTabIndex);
onTabSelectionChanged(selectedTabIndex, false);
+ mTabWidget.setVisibility(View.VISIBLE);
+ mTabWidget.postInvalidate();
}
private void addAllTab() {
@@ -352,9 +348,11 @@
}
public void onTabSelectionChanged(int tabIndex, boolean clicked) {
- long rawContactId = getTabRawContactId(tabIndex);
- mSelectedRawContactId = rawContactId;
- bindData();
+ Long rawContactId = getTabRawContactId(tabIndex);
+ if (rawContactId != null) {
+ mSelectedRawContactId = rawContactId;
+ bindData();
+ }
}
/**
@@ -363,7 +361,7 @@
* @param index The index of the tab in question.
* @return The contactId associated with the tab at the specified index.
*/
- protected long getTabRawContactId(int index) {
+ protected Long getTabRawContactId(int index) {
return mTabRawContactIdMap.get(index);
}
@@ -392,7 +390,7 @@
clearCurrentTabs();
mEntities = readEntities(iterator);
bindTabs();
- bindData();
+ selectInitialTab();
}
} finally {
if (iterator != null) {
@@ -851,6 +849,13 @@
// TODO: entry.contactId should be renamed to entry.rawContactId
long contactId = entValues.getAsLong(RawContacts._ID);
+ // This performs the tab filtering
+ if (mSelectedRawContactId != null
+ && mSelectedRawContactId != contactId
+ && mSelectedRawContactId != ALL_CONTACTS_ID) {
+ continue;
+ }
+
for (NamedContentValues subValue : entity.getSubValues()) {
ViewEntry entry = new ViewEntry();
@@ -896,13 +901,6 @@
mRawContactIds.add(entry.contactId);
}
- // This performs the tab filtering
- if (mSelectedRawContactId != null
- && mSelectedRawContactId != entry.contactId
- && mSelectedRawContactId != ALL_CONTACTS_ID) {
- continue;
- }
-
if (CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(mimetype)
|| CommonDataKinds.Email.CONTENT_ITEM_TYPE.equals(mimetype)
|| CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE.equals(mimetype)