Add badge in conversation view if the participant is a work contact

am: 2a50ffe57c

Change-Id: Ib2a1eb8e89ea5de74b7976507b95733abcb8fcdc
This commit is contained in:
Tony Mak
2016-06-29 20:05:16 +00:00
committed by android-build-merger
3 changed files with 53 additions and 18 deletions

View File

@@ -118,25 +118,38 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent"> android:background="@android:color/transparent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/conversation_notification_bell"
style="@style/ConversationListNotificationBellPaddingStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_notifications_off_small_light"
android:visibility="gone"
android:importantForAccessibility="no"
android:contentDescription="@null"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent" />
<TextView
android:id="@+id/conversation_name"
style="@style/ConversationListItemViewConversationNameStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_gravity="center_vertical"
android:paddingBottom="2dp" />
</LinearLayout>
<ImageView <ImageView
android:id="@+id/conversation_notification_bell" android:id="@+id/work_profile_icon"
style="@style/ConversationListNotificationBellPaddingStyle" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_gravity="right"
android:src="@drawable/ic_notifications_off_small_light" android:scaleType="center"
android:visibility="gone" android:src="@drawable/ic_work_profile"
android:importantForAccessibility="no" android:visibility="gone"/>
android:contentDescription="@null"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent" />
<TextView
android:id="@+id/conversation_name"
style="@style/ConversationListItemViewConversationNameStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_gravity="center_vertical"
android:paddingBottom="2dp" />
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/conversation_subject" android:id="@+id/conversation_subject"

View File

@@ -28,6 +28,7 @@ import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
import com.android.messaging.datamodel.DatabaseWrapper; import com.android.messaging.datamodel.DatabaseWrapper;
import com.android.messaging.datamodel.action.DeleteConversationAction; import com.android.messaging.datamodel.action.DeleteConversationAction;
import com.android.messaging.util.Assert; import com.android.messaging.util.Assert;
import com.android.messaging.util.ContactUtil;
import com.android.messaging.util.Dates; import com.android.messaging.util.Dates;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
@@ -155,10 +156,23 @@ public class ConversationListItemData {
return mPreviewContentType; return mPreviewContentType;
} }
/**
* @see DatabaseHelper.ConversationColumns#PARTICIPANT_CONTACT_ID
* @return the contact id of the participant if it is a 1:1 conversation, -1 for group.
*/
public long getParticipantContactId() { public long getParticipantContactId() {
return mParticipantContactId; return mParticipantContactId;
} }
/**
* TODO: support group conversation.
* @see android.provider.ContactsContract#isEnterpriseContactId(long)
* @return is the participant an enterprise contact. False if it is a group conversation.
*/
public boolean isParticipantEnterpriseContact() {
return ContactUtil.isEnterpriseContactId(getParticipantContactId());
}
public String getParticipantLookupKey() { public String getParticipantLookupKey() {
return mParticipantLookupKey; return mParticipantLookupKey;
} }

View File

@@ -118,6 +118,7 @@ public class ConversationListItemView extends FrameLayout implements OnClickList
private ViewGroup mCrossSwipeBackground; private ViewGroup mCrossSwipeBackground;
private ViewGroup mSwipeableContent; private ViewGroup mSwipeableContent;
private TextView mConversationNameView; private TextView mConversationNameView;
private ImageView mWorkProfileIconView;
private TextView mSnippetTextView; private TextView mSnippetTextView;
private TextView mSubjectTextView; private TextView mSubjectTextView;
private TextView mTimestampTextView; private TextView mTimestampTextView;
@@ -145,6 +146,7 @@ public class ConversationListItemView extends FrameLayout implements OnClickList
mConversationNameView = (TextView) findViewById(R.id.conversation_name); mConversationNameView = (TextView) findViewById(R.id.conversation_name);
mSnippetTextView = (TextView) findViewById(R.id.conversation_snippet); mSnippetTextView = (TextView) findViewById(R.id.conversation_snippet);
mSubjectTextView = (TextView) findViewById(R.id.conversation_subject); mSubjectTextView = (TextView) findViewById(R.id.conversation_subject);
mWorkProfileIconView = (ImageView) findViewById(R.id.work_profile_icon);
mTimestampTextView = (TextView) findViewById(R.id.conversation_timestamp); mTimestampTextView = (TextView) findViewById(R.id.conversation_timestamp);
mContactIconView = (ContactIconView) findViewById(R.id.conversation_icon); mContactIconView = (ContactIconView) findViewById(R.id.conversation_icon);
mContactCheckmarkView = (ImageView) findViewById(R.id.conversation_checkmark); mContactCheckmarkView = (ImageView) findViewById(R.id.conversation_checkmark);
@@ -183,6 +185,11 @@ public class ConversationListItemView extends FrameLayout implements OnClickList
} }
} }
private void setWorkProfileIcon() {
mWorkProfileIconView.setVisibility(
mData.isParticipantEnterpriseContact() ? View.VISIBLE : View.GONE);
}
private void setConversationName() { private void setConversationName() {
if (mData.getIsRead() || mData.getShowDraft()) { if (mData.getIsRead() || mData.getShowDraft()) {
mConversationNameView.setTextColor(mListItemReadColor); mConversationNameView.setTextColor(mListItemReadColor);
@@ -391,6 +398,7 @@ public class ConversationListItemView extends FrameLayout implements OnClickList
setSnippet(); setSnippet();
setConversationName(); setConversationName();
setSubject(); setSubject();
setWorkProfileIcon();
setContentDescription(buildContentDescription(resources, mData, setContentDescription(buildContentDescription(resources, mData,
mConversationNameView.getPaint())); mConversationNameView.getPaint()));