Add badge in conversation view if the participant is a work contact
TODO: To handle conversation having more than one participants. Bug: 29065176 Change-Id: I3820454bf2b76c151dc3a13d9be270502029160d
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user