diff options
author | Mike Dodd <mdodd@google.com> | 2015-08-12 18:48:39 +0000 |
---|---|---|
committer | Mike Dodd <mdodd@google.com> | 2015-08-12 18:48:39 +0000 |
commit | ef8c7abbcfc9c770385d6609a4b4bc70240ebdc4 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/messaging/datamodel/data/ConversationListItemData.java | |
parent | 461a34b466cb4b13dbbc2ec6330b31e217b2ac4e (diff) | |
download | android_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.java | 510 |
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); - } - -} |