Merge "Use correct style for GTalk-IM; fixes the height of the secondary icon"
diff --git a/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml b/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
index b57e85c..0d94622 100644
--- a/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
+++ b/res/layout-sw580dp-w1000dp/contact_detail_list_item.xml
@@ -63,16 +63,17 @@
<ImageView
android:id="@+id/presence_icon"
- android:layout_width="32dip"
- android:layout_height="@dimen/detail_min_line_item_height"
- android:layout_marginLeft="5dip"
- android:gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="4dip"
+ android:layout_gravity="center_vertical"
android:scaleType="centerInside" />
<TextView
android:id="@+id/kind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
android:visibility="gone" />
<TextView
@@ -80,6 +81,7 @@
style="@style/ContactDetailItemType"
android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:layout_gravity="center_vertical"
android:paddingRight="16dip" />
<View
diff --git a/res/layout/contact_detail_list_item.xml b/res/layout/contact_detail_list_item.xml
index e292f39..4d6ed5f 100644
--- a/res/layout/contact_detail_list_item.xml
+++ b/res/layout/contact_detail_list_item.xml
@@ -64,6 +64,15 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
+ <ImageView
+ android:id="@+id/presence_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="4dip"
+ android:layout_gravity="center_vertical"
+ android:gravity="center"
+ android:scaleType="centerInside" />
+
<TextView
android:id="@+id/type"
style="@style/ContactDetailItemType"
@@ -90,14 +99,6 @@
android:visibility="gone" />
</LinearLayout>
-
- <ImageView
- android:id="@+id/presence_icon"
- android:layout_width="32dip"
- android:layout_height="wrap_content"
- android:layout_marginLeft="5dip"
- android:gravity="center"
- android:scaleType="centerInside" />
</com.android.contacts.detail.PrimaryActionViewContainer>
<View
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index ca99c79..4d50a39 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -43,6 +43,7 @@
import com.android.contacts.util.PhoneCapabilityTester;
import com.android.contacts.widget.TransitionAnimationView;
import com.android.internal.telephony.ITelephony;
+import com.google.common.annotations.VisibleForTesting;
import android.app.Activity;
import android.app.Fragment;
@@ -122,8 +123,6 @@
private static final String TAG = "ContactDetailFragment";
- private static final int LOADER_DETAILS = 1;
-
private interface ContextMenuIds {
static final int COPY_TEXT = 0;
static final int CLEAR_DEFAULT = 1;
@@ -132,7 +131,6 @@
private static final String KEY_CONTACT_URI = "contactUri";
private static final String KEY_LIST_STATE = "liststate";
- private static final String LOADER_ARG_CONTACT_URI = "contactUri";
private Context mContext;
private View mView;
@@ -605,7 +603,7 @@
final DetailViewEntry imEntry = DetailViewEntry.fromValues(mContext, imMime,
imKind, dataId, entryValues, mContactData.isDirectoryEntry(),
mContactData.getDirectoryId());
- buildImActions(imEntry, entryValues);
+ buildImActions(mContext, imEntry, entryValues);
imEntry.applyStatus(status, false);
mImEntries.add(imEntry);
}
@@ -617,7 +615,7 @@
mPostalEntries.add(entry);
} else if (Im.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
// Build IM entries
- buildImActions(entry, entryValues);
+ buildImActions(mContext, entry, entryValues);
// Apply presence and status details when available
final DataStatus status = mContactData.getStatuses().get(entry.id);
@@ -936,11 +934,11 @@
}
/**
- * Build {@link Intent} to launch an action for the given {@link Im} or
- * {@link Email} row. If the result is non-null, it either contains one or two Intents
- * (e.g. [Text, Videochat] or just [Text])
+ * Writes the Instant Messaging action into the given entry value.
*/
- public static void buildImActions(DetailViewEntry entry, ContentValues values) {
+ @VisibleForTesting
+ public static void buildImActions(Context context, DetailViewEntry entry,
+ ContentValues values) {
final boolean isEmail = Email.CONTENT_ITEM_TYPE.equals(values.getAsString(Data.MIMETYPE));
if (!isEmail && !isProtocolValid(values)) {
@@ -958,6 +956,8 @@
final Integer chatCapabilityObj = values.getAsInteger(Im.CHAT_CAPABILITY);
final int chatCapability = chatCapabilityObj == null ? 0 : chatCapabilityObj;
entry.chatCapability = chatCapability;
+ entry.typeString = Im.getProtocolLabel(context.getResources(), Im.PROTOCOL_GOOGLE_TALK,
+ null).toString();
if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
entry.actionIcon = R.drawable.sym_action_talk_holo_light;
entry.intent =
diff --git a/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java b/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java
index cfab94a..02faa24 100644
--- a/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java
+++ b/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java
@@ -43,7 +43,7 @@
values.put(Im.DATA, TEST_ADDRESS);
DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
- ContactDetailFragment.buildImActions(entry, values);
+ ContactDetailFragment.buildImActions(mContext, entry, values);
assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
@@ -60,7 +60,7 @@
values.put(Im.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO);
DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
- ContactDetailFragment.buildImActions(entry, values);
+ ContactDetailFragment.buildImActions(mContext, entry, values);
assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
@@ -79,7 +79,7 @@
Im.CAPABILITY_HAS_VOICE);
DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
- ContactDetailFragment.buildImActions(entry, values);
+ ContactDetailFragment.buildImActions(mContext, entry, values);
assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
@@ -98,7 +98,7 @@
values.put(Im.DATA, TEST_ADDRESS);
DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
- ContactDetailFragment.buildImActions(entry, values);
+ ContactDetailFragment.buildImActions(mContext, entry, values);
assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
final Uri data = entry.intent.getData();
@@ -121,7 +121,7 @@
Im.CAPABILITY_HAS_VOICE);
DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
- ContactDetailFragment.buildImActions(entry, values);
+ ContactDetailFragment.buildImActions(mContext, entry, values);
assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());