Merge change 25180 into eclair
* changes:
Prevent unstateful edits, empty trimming, INSERT edge cases.
diff --git a/res/layout-finger/contacts_list_item_photo.xml b/res/layout-finger/contacts_list_item_photo.xml
index 7e1019b..974411f 100644
--- a/res/layout-finger/contacts_list_item_photo.xml
+++ b/res/layout-finger/contacts_list_item_photo.xml
@@ -37,6 +37,7 @@
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:paddingLeft="5dip"
+ android:paddingRight="5dip"
>
<ImageView android:id="@+id/presence"
@@ -49,15 +50,12 @@
android:gravity="center"
android:scaleType="centerInside"
/>
-
- <ImageView android:id="@+id/photo"
- android:layout_width="48dip"
- android:layout_height="52dip"
+
+ <android.widget.FasttrackBadgeWidget android:id="@+id/photo"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dip"
- android:scaleType="fitCenter"
- android:background="@*android:drawable/fasttrack_badge_dark"/>"
+ style="@*android:style/Widget.FasttrackBadgeWidget.WindowLarge" />
/>
<TextView android:id="@+id/label"
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 70d6808..a1ffff4 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -17,7 +17,6 @@
package com.android.contacts;
import com.android.contacts.ui.DisplayGroupsActivity;
-import com.android.contacts.ui.FastTrackWindow;
import com.android.contacts.ui.DisplayGroupsActivity.Prefs;
import com.android.contacts.util.Constants;
@@ -90,6 +89,7 @@
import android.widget.AdapterView;
import android.widget.AlphabetIndexer;
import android.widget.ArrayAdapter;
+import android.widget.FasttrackBadgeWidget;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.ListView;
@@ -288,7 +288,6 @@
private static final int QUERY_TOKEN = 42;
- private FastTrackWindow mFastTrack;
private ContactItemListAdapter mAdapter;
int mMode = MODE_DEFAULT;
@@ -533,7 +532,6 @@
// Set the proper empty string
setEmptyText();
- mFastTrack = new FastTrackWindow(this);
mAdapter = new ContactItemListAdapter(this);
setListAdapter(mAdapter);
getListView().setOnScrollListener(mAdapter);
@@ -572,40 +570,15 @@
private int[] mLocation = new int[2];
private Rect mRect = new Rect();
- private void showFastTrack(View anchor, Uri contactUri) {
- anchor.getLocationInWindow(mLocation);
- mRect.left = mLocation[0];
- mRect.top = mLocation[1];
- mRect.right = mRect.left + anchor.getWidth();
- mRect.bottom = mRect.top + anchor.getHeight();
-
- mFastTrack.dismiss();
- mFastTrack.show(contactUri, mRect, Intents.MODE_MEDIUM, null);
- }
-
/** {@inheritDoc} */
public void onClick(View v) {
-
- switch (v.getId()) {
- case R.id.call_button: {
- final int position = (Integer) v.getTag();
- Cursor c = (Cursor) mAdapter.getItem(position);
- if (c != null) {
- callContact(c);
- }
- break;
- }
-
- case R.id.photo: {
- // Clicked on photo, so show fast-track
- final PhotoInfo info = (PhotoInfo) v.getTag();
- final int position = info.position;
- final Uri contactUri = getContactUri(position);
- showFastTrack(v, contactUri);
- break;
+ if (v.getId() == R.id.call_button) {
+ final int position = (Integer) v.getTag();
+ Cursor c = (Cursor) mAdapter.getItem(position);
+ if (c != null) {
+ callContact(c);
}
}
-
}
private void setEmptyText() {
@@ -1013,16 +986,6 @@
}
@Override
- public void onBackPressed() {
- if (mFastTrack.isShowing()) {
- // Back key dismisses fast-track when its visible
- mFastTrack.dismiss();
- } else {
- super.onBackPressed();
- }
- }
-
- @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_CALL: {
@@ -1832,7 +1795,7 @@
public TextView dataView;
public CharArrayBuffer dataBuffer = new CharArrayBuffer(128);
public ImageView presenceView;
- public ImageView photoView;
+ public FasttrackBadgeWidget photoView;
}
final static class PhotoInfo {
@@ -1843,6 +1806,7 @@
this.position = position;
this.photoId = photoId;
}
+ public FasttrackBadgeWidget photoView;
}
private final class ContactItemListAdapter extends ResourceCursorAdapter
@@ -2104,10 +2068,7 @@
cache.labelView = (TextView) view.findViewById(R.id.label);
cache.dataView = (TextView) view.findViewById(R.id.data);
cache.presenceView = (ImageView) view.findViewById(R.id.presence);
- cache.photoView = (ImageView) view.findViewById(R.id.photo);
- if (cache.photoView != null) {
- cache.photoView.setOnClickListener(ContactsListActivity.this);
- }
+ cache.photoView = (FasttrackBadgeWidget) view.findViewById(R.id.photo);
view.setTag(cache);
return view;
@@ -2183,6 +2144,11 @@
final int position = cursor.getPosition();
cache.photoView.setTag(new PhotoInfo(position, photoId));
+ // Build soft lookup reference
+ final long contactId = cursor.getLong(SUMMARY_ID_COLUMN_INDEX);
+ final String lookupKey = cursor.getString(SUMMARY_LOOKUP_KEY);
+ cache.photoView.assignContactUri(Contacts.getLookupUri(contactId, lookupKey));
+
if (photoId == 0) {
cache.photoView.setImageResource(R.drawable.ic_contact_list_picture);
} else {