summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/datamodel/data/ConversationListItemData.java
diff options
context:
space:
mode:
authorMike Dodd <mdodd@google.com>2015-08-12 18:48:39 +0000
committerMike Dodd <mdodd@google.com>2015-08-12 18:48:39 +0000
commitef8c7abbcfc9c770385d6609a4b4bc70240ebdc4 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/messaging/datamodel/data/ConversationListItemData.java
parent461a34b466cb4b13dbbc2ec6330b31e217b2ac4e (diff)
downloadandroid_packages_apps_Messaging-ef8c7abbcfc9c770385d6609a4b4bc70240ebdc4.tar.gz
android_packages_apps_Messaging-ef8c7abbcfc9c770385d6609a4b4bc70240ebdc4.tar.bz2
android_packages_apps_Messaging-ef8c7abbcfc9c770385d6609a4b4bc70240ebdc4.zip
Revert "Initial checkin of AOSP Messaging app."
This reverts commit 461a34b466cb4b13dbbc2ec6330b31e217b2ac4e. Change-Id: Iac4ca77eeaa94989e91dead49a7959c905bd3078
Diffstat (limited to 'src/com/android/messaging/datamodel/data/ConversationListItemData.java')
-rw-r--r--src/com/android/messaging/datamodel/data/ConversationListItemData.java510
1 files changed, 0 insertions, 510 deletions
diff --git a/src/com/android/messaging/datamodel/data/ConversationListItemData.java b/src/com/android/messaging/datamodel/data/ConversationListItemData.java
deleted file mode 100644
index b2e6e1c..0000000
--- a/src/com/android/messaging/datamodel/data/ConversationListItemData.java
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.messaging.datamodel.data;
-
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.BaseColumns;
-import android.text.TextUtils;
-
-import com.android.messaging.datamodel.DatabaseHelper;
-import com.android.messaging.datamodel.DatabaseHelper.ConversationColumns;
-import com.android.messaging.datamodel.DatabaseHelper.MessageColumns;
-import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
-import com.android.messaging.datamodel.DatabaseWrapper;
-import com.android.messaging.datamodel.action.DeleteConversationAction;
-import com.android.messaging.util.Assert;
-import com.android.messaging.util.Dates;
-import com.google.common.base.Joiner;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Class wrapping the conversation list view used to display each item in conversation list
- */
-public class ConversationListItemData {
- private String mConversationId;
- private String mName;
- private String mIcon;
- private boolean mIsRead;
- private long mTimestamp;
- private String mSnippetText;
- private Uri mPreviewUri;
- private String mPreviewContentType;
- private long mParticipantContactId;
- private String mParticipantLookupKey;
- private String mOtherParticipantNormalizedDestination;
- private String mSelfId;
- private int mParticipantCount;
- private boolean mNotificationEnabled;
- private String mNotificationSoundUri;
- private boolean mNotificationVibrate;
- private boolean mIncludeEmailAddress;
- private int mMessageStatus;
- private int mMessageRawTelephonyStatus;
- private boolean mShowDraft;
- private Uri mDraftPreviewUri;
- private String mDraftPreviewContentType;
- private String mDraftSnippetText;
- private boolean mIsArchived;
- private String mSubject;
- private String mDraftSubject;
- private String mSnippetSenderFirstName;
- private String mSnippetSenderDisplayDestination;
-
- public ConversationListItemData() {
- }
-
- public void bind(final Cursor cursor) {
- bind(cursor, false);
- }
-
- public void bind(final Cursor cursor, final boolean ignoreDraft) {
- mConversationId = cursor.getString(INDEX_ID);
- mName = cursor.getString(INDEX_CONVERSATION_NAME);
- mIcon = cursor.getString(INDEX_CONVERSATION_ICON);
- mSnippetText = cursor.getString(INDEX_SNIPPET_TEXT);
- mTimestamp = cursor.getLong(INDEX_SORT_TIMESTAMP);
- mIsRead = cursor.getInt(INDEX_READ) == 1;
- final String previewUriString = cursor.getString(INDEX_PREVIEW_URI);
- mPreviewUri = TextUtils.isEmpty(previewUriString) ? null : Uri.parse(previewUriString);
- mPreviewContentType = cursor.getString(INDEX_PREVIEW_CONTENT_TYPE);
- mParticipantContactId = cursor.getLong(INDEX_PARTICIPANT_CONTACT_ID);
- mParticipantLookupKey = cursor.getString(INDEX_PARTICIPANT_LOOKUP_KEY);
- mOtherParticipantNormalizedDestination = cursor.getString(
- INDEX_OTHER_PARTICIPANT_NORMALIZED_DESTINATION);
- mSelfId = cursor.getString(INDEX_SELF_ID);
- mParticipantCount = cursor.getInt(INDEX_PARTICIPANT_COUNT);
- mNotificationEnabled = cursor.getInt(INDEX_NOTIFICATION_ENABLED) == 1;
- mNotificationSoundUri = cursor.getString(INDEX_NOTIFICATION_SOUND_URI);
- mNotificationVibrate = cursor.getInt(INDEX_NOTIFICATION_VIBRATION) == 1;
- mIncludeEmailAddress = cursor.getInt(INDEX_INCLUDE_EMAIL_ADDRESS) == 1;
- mMessageStatus = cursor.getInt(INDEX_MESSAGE_STATUS);
- mMessageRawTelephonyStatus = cursor.getInt(INDEX_MESSAGE_RAW_TELEPHONY_STATUS);
- if (!ignoreDraft) {
- mShowDraft = cursor.getInt(INDEX_SHOW_DRAFT) == 1;
- final String draftPreviewUriString = cursor.getString(INDEX_DRAFT_PREVIEW_URI);
- mDraftPreviewUri = TextUtils.isEmpty(draftPreviewUriString) ?
- null : Uri.parse(draftPreviewUriString);
- mDraftPreviewContentType = cursor.getString(INDEX_DRAFT_PREVIEW_CONTENT_TYPE);
- mDraftSnippetText = cursor.getString(INDEX_DRAFT_SNIPPET_TEXT);
- mDraftSubject = cursor.getString(INDEX_DRAFT_SUBJECT_TEXT);
- } else {
- mShowDraft = false;
- mDraftPreviewUri = null;
- mDraftPreviewContentType = null;
- mDraftSnippetText = null;
- mDraftSubject = null;
- }
-
- mIsArchived = cursor.getInt(INDEX_ARCHIVE_STATUS) == 1;
- mSubject = cursor.getString(INDEX_SUBJECT_TEXT);
- mSnippetSenderFirstName = cursor.getString(INDEX_SNIPPET_SENDER_FIRST_NAME);
- mSnippetSenderDisplayDestination =
- cursor.getString(INDEX_SNIPPET_SENDER_DISPLAY_DESTINATION);
- }
-
- public String getConversationId() {
- return mConversationId;
- }
-
- public String getName() {
- return mName;
- }
-
- public String getIcon() {
- return mIcon;
- }
-
- public boolean getIsRead() {
- return mIsRead;
- }
-
- public String getFormattedTimestamp() {
- return Dates.getConversationTimeString(mTimestamp).toString();
- }
-
- public long getTimestamp() {
- return mTimestamp;
- }
-
- public String getSnippetText() {
- return mSnippetText;
- }
-
- public Uri getPreviewUri() {
- return mPreviewUri;
- }
-
- public String getPreviewContentType() {
- return mPreviewContentType;
- }
-
- public long getParticipantContactId() {
- return mParticipantContactId;
- }
-
- public String getParticipantLookupKey() {
- return mParticipantLookupKey;
- }
-
- public String getOtherParticipantNormalizedDestination() {
- return mOtherParticipantNormalizedDestination;
- }
-
- public String getSelfId() {
- return mSelfId;
- }
-
- public int getParticipantCount() {
- return mParticipantCount;
- }
-
- public boolean getIsGroup() {
- // Participant count excludes self
- return (mParticipantCount > 1);
- }
-
- public boolean getIncludeEmailAddress() {
- return mIncludeEmailAddress;
- }
-
- public boolean getNotificationEnabled() {
- return mNotificationEnabled;
- }
-
- public String getNotificationSoundUri() {
- return mNotificationSoundUri;
- }
-
- public boolean getNotifiationVibrate() {
- return mNotificationVibrate;
- }
-
- public final boolean getIsFailedStatus() {
- return (mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_FAILED ||
- mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_FAILED_EMERGENCY_NUMBER ||
- mMessageStatus == MessageData.BUGLE_STATUS_INCOMING_DOWNLOAD_FAILED ||
- mMessageStatus == MessageData.BUGLE_STATUS_INCOMING_EXPIRED_OR_NOT_AVAILABLE);
- }
-
- public final boolean getIsSendRequested() {
- return (mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_YET_TO_SEND ||
- mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_AWAITING_RETRY ||
- mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_SENDING ||
- mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_RESENDING);
- }
-
- public boolean getIsMessageTypeOutgoing() {
- return !MessageData.getIsIncoming(mMessageStatus);
- }
-
- public int getMessageRawTelephonyStatus() {
- return mMessageRawTelephonyStatus;
- }
-
- public int getMessageStatus() {
- return mMessageStatus;
- }
-
- public boolean getShowDraft() {
- return mShowDraft;
- }
-
- public String getDraftSnippetText() {
- return mDraftSnippetText;
- }
-
- public Uri getDraftPreviewUri() {
- return mDraftPreviewUri;
- }
-
- public String getDraftPreviewContentType() {
- return mDraftPreviewContentType;
- }
-
- public boolean getIsArchived() {
- return mIsArchived;
- }
-
- public String getSubject() {
- return mSubject;
- }
-
- public String getDraftSubject() {
- return mDraftSubject;
- }
-
- public String getSnippetSenderName() {
- if (!TextUtils.isEmpty(mSnippetSenderFirstName)) {
- return mSnippetSenderFirstName;
- }
- return mSnippetSenderDisplayDestination;
- }
-
- public void deleteConversation() {
- DeleteConversationAction.deleteConversation(mConversationId, mTimestamp);
- }
-
- /**
- * Get the name of the view for this data item
- */
- public static final String getConversationListView() {
- return CONVERSATION_LIST_VIEW;
- }
-
- public static final String getConversationListViewSql() {
- return CONVERSATION_LIST_VIEW_SQL;
- }
-
- private static final String CONVERSATION_LIST_VIEW = "conversation_list_view";
-
- private static final String CONVERSATION_LIST_VIEW_PROJECTION =
- DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns._ID
- + " as " + ConversationListViewColumns._ID + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NAME
- + " as " + ConversationListViewColumns.NAME + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.CURRENT_SELF_ID
- + " as " + ConversationListViewColumns.CURRENT_SELF_ID + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.ARCHIVE_STATUS
- + " as " + ConversationListViewColumns.ARCHIVE_STATUS + ", "
- + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns.READ
- + " as " + ConversationListViewColumns.READ + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.ICON
- + " as " + ConversationListViewColumns.ICON + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PARTICIPANT_CONTACT_ID
- + " as " + ConversationListViewColumns.PARTICIPANT_CONTACT_ID + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PARTICIPANT_LOOKUP_KEY
- + " as " + ConversationListViewColumns.PARTICIPANT_LOOKUP_KEY + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.'
- + ConversationColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION
- + " as " + ConversationListViewColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.SORT_TIMESTAMP
- + " as " + ConversationListViewColumns.SORT_TIMESTAMP + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.SHOW_DRAFT
- + " as " + ConversationListViewColumns.SHOW_DRAFT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.DRAFT_SNIPPET_TEXT
- + " as " + ConversationListViewColumns.DRAFT_SNIPPET_TEXT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.DRAFT_PREVIEW_URI
- + " as " + ConversationListViewColumns.DRAFT_PREVIEW_URI + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.DRAFT_SUBJECT_TEXT
- + " as " + ConversationListViewColumns.DRAFT_SUBJECT_TEXT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.'
- + ConversationColumns.DRAFT_PREVIEW_CONTENT_TYPE
- + " as " + ConversationListViewColumns.DRAFT_PREVIEW_CONTENT_TYPE + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PREVIEW_URI
- + " as " + ConversationListViewColumns.PREVIEW_URI + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PREVIEW_CONTENT_TYPE
- + " as " + ConversationListViewColumns.PREVIEW_CONTENT_TYPE + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PARTICIPANT_COUNT
- + " as " + ConversationListViewColumns.PARTICIPANT_COUNT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_ENABLED
- + " as " + ConversationListViewColumns.NOTIFICATION_ENABLED + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_SOUND_URI
- + " as " + ConversationListViewColumns.NOTIFICATION_SOUND_URI + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_VIBRATION
- + " as " + ConversationListViewColumns.NOTIFICATION_VIBRATION + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' +
- ConversationColumns.INCLUDE_EMAIL_ADDRESS
- + " as " + ConversationListViewColumns.INCLUDE_EMAIL_ADDRESS + ", "
- + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns.STATUS
- + " as " + ConversationListViewColumns.MESSAGE_STATUS + ", "
- + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns.RAW_TELEPHONY_STATUS
- + " as " + ConversationListViewColumns.MESSAGE_RAW_TELEPHONY_STATUS + ", "
- + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns._ID
- + " as " + ConversationListViewColumns.MESSAGE_ID + ", "
- + DatabaseHelper.PARTICIPANTS_TABLE + '.' + ParticipantColumns.FIRST_NAME
- + " as " + ConversationListViewColumns.SNIPPET_SENDER_FIRST_NAME + ", "
- + DatabaseHelper.PARTICIPANTS_TABLE + '.' + ParticipantColumns.DISPLAY_DESTINATION
- + " as " + ConversationListViewColumns.SNIPPET_SENDER_DISPLAY_DESTINATION;
-
- private static final String JOIN_PARTICIPANTS =
- " LEFT JOIN " + DatabaseHelper.PARTICIPANTS_TABLE + " ON ("
- + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns.SENDER_PARTICIPANT_ID
- + '=' + DatabaseHelper.PARTICIPANTS_TABLE + '.' + DatabaseHelper.ParticipantColumns._ID
- + ") ";
-
- // View that makes latest message read flag available with rest of conversation data.
- private static final String CONVERSATION_LIST_VIEW_SQL = "CREATE VIEW " +
- CONVERSATION_LIST_VIEW + " AS SELECT "
- + CONVERSATION_LIST_VIEW_PROJECTION + ", "
- // Snippet not part of the base projection shared with search view
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.SNIPPET_TEXT
- + " as " + ConversationListViewColumns.SNIPPET_TEXT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.SUBJECT_TEXT
- + " as " + ConversationListViewColumns.SUBJECT_TEXT + " "
- + " FROM " + DatabaseHelper.CONVERSATIONS_TABLE
- + " LEFT JOIN " + DatabaseHelper.MESSAGES_TABLE + " ON ("
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.LATEST_MESSAGE_ID
- + '=' + DatabaseHelper.MESSAGES_TABLE + '.' + MessageColumns._ID + ") "
- + JOIN_PARTICIPANTS
- + "ORDER BY " + DatabaseHelper.CONVERSATIONS_TABLE + '.'
- + ConversationColumns.SORT_TIMESTAMP + " DESC";
-
- public static class ConversationListViewColumns implements BaseColumns {
- public static final String _ID = ConversationColumns._ID;
- static final String NAME = ConversationColumns.NAME;
- static final String ARCHIVE_STATUS = ConversationColumns.ARCHIVE_STATUS;
- static final String READ = MessageColumns.READ;
- static final String SORT_TIMESTAMP = ConversationColumns.SORT_TIMESTAMP;
- static final String PREVIEW_URI = ConversationColumns.PREVIEW_URI;
- static final String PREVIEW_CONTENT_TYPE = ConversationColumns.PREVIEW_CONTENT_TYPE;
- static final String SNIPPET_TEXT = ConversationColumns.SNIPPET_TEXT;
- static final String SUBJECT_TEXT = ConversationColumns.SUBJECT_TEXT;
- static final String ICON = ConversationColumns.ICON;
- static final String SHOW_DRAFT = ConversationColumns.SHOW_DRAFT;
- static final String DRAFT_SUBJECT_TEXT = ConversationColumns.DRAFT_SUBJECT_TEXT;
- static final String DRAFT_PREVIEW_URI = ConversationColumns.DRAFT_PREVIEW_URI;
- static final String DRAFT_PREVIEW_CONTENT_TYPE =
- ConversationColumns.DRAFT_PREVIEW_CONTENT_TYPE;
- static final String DRAFT_SNIPPET_TEXT = ConversationColumns.DRAFT_SNIPPET_TEXT;
- static final String PARTICIPANT_CONTACT_ID = ConversationColumns.PARTICIPANT_CONTACT_ID;
- static final String PARTICIPANT_LOOKUP_KEY = ConversationColumns.PARTICIPANT_LOOKUP_KEY;
- static final String OTHER_PARTICIPANT_NORMALIZED_DESTINATION =
- ConversationColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION;
- static final String CURRENT_SELF_ID = ConversationColumns.CURRENT_SELF_ID;
- static final String PARTICIPANT_COUNT = ConversationColumns.PARTICIPANT_COUNT;
- static final String NOTIFICATION_ENABLED = ConversationColumns.NOTIFICATION_ENABLED;
- static final String NOTIFICATION_SOUND_URI = ConversationColumns.NOTIFICATION_SOUND_URI;
- static final String NOTIFICATION_VIBRATION = ConversationColumns.NOTIFICATION_VIBRATION;
- static final String INCLUDE_EMAIL_ADDRESS =
- ConversationColumns.INCLUDE_EMAIL_ADDRESS;
- static final String MESSAGE_STATUS = MessageColumns.STATUS;
- static final String MESSAGE_RAW_TELEPHONY_STATUS = MessageColumns.RAW_TELEPHONY_STATUS;
- static final String MESSAGE_ID = "message_id";
- static final String SNIPPET_SENDER_FIRST_NAME = "snippet_sender_first_name";
- static final String SNIPPET_SENDER_DISPLAY_DESTINATION =
- "snippet_sender_display_destination";
- }
-
- public static final String[] PROJECTION = {
- ConversationListViewColumns._ID,
- ConversationListViewColumns.NAME,
- ConversationListViewColumns.ICON,
- ConversationListViewColumns.SNIPPET_TEXT,
- ConversationListViewColumns.SORT_TIMESTAMP,
- ConversationListViewColumns.READ,
- ConversationListViewColumns.PREVIEW_URI,
- ConversationListViewColumns.PREVIEW_CONTENT_TYPE,
- ConversationListViewColumns.PARTICIPANT_CONTACT_ID,
- ConversationListViewColumns.PARTICIPANT_LOOKUP_KEY,
- ConversationListViewColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION,
- ConversationListViewColumns.PARTICIPANT_COUNT,
- ConversationListViewColumns.CURRENT_SELF_ID,
- ConversationListViewColumns.NOTIFICATION_ENABLED,
- ConversationListViewColumns.NOTIFICATION_SOUND_URI,
- ConversationListViewColumns.NOTIFICATION_VIBRATION,
- ConversationListViewColumns.INCLUDE_EMAIL_ADDRESS,
- ConversationListViewColumns.MESSAGE_STATUS,
- ConversationListViewColumns.SHOW_DRAFT,
- ConversationListViewColumns.DRAFT_PREVIEW_URI,
- ConversationListViewColumns.DRAFT_PREVIEW_CONTENT_TYPE,
- ConversationListViewColumns.DRAFT_SNIPPET_TEXT,
- ConversationListViewColumns.ARCHIVE_STATUS,
- ConversationListViewColumns.MESSAGE_ID,
- ConversationListViewColumns.SUBJECT_TEXT,
- ConversationListViewColumns.DRAFT_SUBJECT_TEXT,
- ConversationListViewColumns.MESSAGE_RAW_TELEPHONY_STATUS,
- ConversationListViewColumns.SNIPPET_SENDER_FIRST_NAME,
- ConversationListViewColumns.SNIPPET_SENDER_DISPLAY_DESTINATION,
- };
-
- private static final int INDEX_ID = 0;
- private static final int INDEX_CONVERSATION_NAME = 1;
- private static final int INDEX_CONVERSATION_ICON = 2;
- private static final int INDEX_SNIPPET_TEXT = 3;
- private static final int INDEX_SORT_TIMESTAMP = 4;
- private static final int INDEX_READ = 5;
- private static final int INDEX_PREVIEW_URI = 6;
- private static final int INDEX_PREVIEW_CONTENT_TYPE = 7;
- private static final int INDEX_PARTICIPANT_CONTACT_ID = 8;
- private static final int INDEX_PARTICIPANT_LOOKUP_KEY = 9;
- private static final int INDEX_OTHER_PARTICIPANT_NORMALIZED_DESTINATION = 10;
- private static final int INDEX_PARTICIPANT_COUNT = 11;
- private static final int INDEX_SELF_ID = 12;
- private static final int INDEX_NOTIFICATION_ENABLED = 13;
- private static final int INDEX_NOTIFICATION_SOUND_URI = 14;
- private static final int INDEX_NOTIFICATION_VIBRATION = 15;
- private static final int INDEX_INCLUDE_EMAIL_ADDRESS = 16;
- private static final int INDEX_MESSAGE_STATUS = 17;
- private static final int INDEX_SHOW_DRAFT = 18;
- private static final int INDEX_DRAFT_PREVIEW_URI = 19;
- private static final int INDEX_DRAFT_PREVIEW_CONTENT_TYPE = 20;
- private static final int INDEX_DRAFT_SNIPPET_TEXT = 21;
- private static final int INDEX_ARCHIVE_STATUS = 22;
- private static final int INDEX_MESSAGE_ID = 23;
- private static final int INDEX_SUBJECT_TEXT = 24;
- private static final int INDEX_DRAFT_SUBJECT_TEXT = 25;
- private static final int INDEX_MESSAGE_RAW_TELEPHONY_STATUS = 26;
- private static final int INDEX_SNIPPET_SENDER_FIRST_NAME = 27;
- private static final int INDEX_SNIPPET_SENDER_DISPLAY_DESTINATION = 28;
-
- private static final String DIVIDER_TEXT = ", ";
-
- /**
- * Get a conversation from the local DB based on the conversation id.
- *
- * @param dbWrapper The database
- * @param conversationId The conversation Id to read
- * @return The existing conversation or null
- */
- public static ConversationListItemData getExistingConversation(final DatabaseWrapper dbWrapper,
- final String conversationId) {
- ConversationListItemData conversation = null;
-
- // Look for an existing conversation in the db with this conversation id
- Cursor cursor = null;
- try {
- // TODO: Should we be able to read a row from just the conversation table?
- cursor = dbWrapper.query(getConversationListView(),
- PROJECTION,
- ConversationColumns._ID + "=?",
- new String[] { conversationId },
- null, null, null);
- Assert.inRange(cursor.getCount(), 0, 1);
- if (cursor.moveToFirst()) {
- conversation = new ConversationListItemData();
- conversation.bind(cursor);
- }
- } finally {
- if (cursor != null) {
- cursor.close();
- }
- }
-
- return conversation;
- }
-
- public static String generateConversationName(final List<ParticipantData>
- participants) {
- if (participants.size() == 1) {
- // Prefer full name over first name for 1:1 conversation
- return participants.get(0).getDisplayName(true);
- }
-
- final ArrayList<String> participantNames = new ArrayList<String>();
- for (final ParticipantData participant : participants) {
- // Prefer first name over full name for group conversation
- participantNames.add(participant.getDisplayName(false));
- }
-
- final Joiner joiner = Joiner.on(DIVIDER_TEXT).skipNulls();
- return joiner.join(participantNames);
- }
-
-}