Uri uri;
if (Im.Contacts.TYPE_GROUP == mType) {
- uri = ContentUris.withAppendedId(Im.GroupMessages.CONTENT_URI_GROUP_MESSAGES_BY, mChatId);
+ uri = Im.Messages.getGroupChatContentUriByThreadId(mChatId);
} else {
- uri = Im.Messages.getContentUriByContact(mProviderId, mAccountId, mUserName);
+ uri = Im.Messages.getContentUriByThreadId(mChatId);
}
if (Log.isLoggable(ImApp.LOG_TAG, Log.DEBUG)){
for (int i = 0 ; i < len ; i++) {
mColumnNames[i] = columnNames[i];
- if (mColumnNames[i].equals(Im.BaseMessageColumns.DATE)) {
+ if (mColumnNames[i].equals(Im.Messages.DATE)) {
mDateColumn = i;
}
}
private int mScrollState;
private boolean mNeedRequeryCursor;
- private int mContactColumn;
+ private int mNicknameColumn;
private int mBodyColumn;
private int mDateColumn;
private int mTypeColumn;
}
private void resolveColumnIndex(Cursor c) {
- mContactColumn = c.getColumnIndexOrThrow(Im.BaseMessageColumns.CONTACT);
- mBodyColumn = c.getColumnIndexOrThrow(Im.BaseMessageColumns.BODY);
- mDateColumn = c.getColumnIndexOrThrow(Im.BaseMessageColumns.DATE);
- mTypeColumn = c.getColumnIndexOrThrow(Im.BaseMessageColumns.TYPE);
- mErrCodeColumn = c.getColumnIndexOrThrow(Im.BaseMessageColumns.ERROR_CODE);
+ mNicknameColumn = c.getColumnIndexOrThrow(Im.Messages.NICKNAME);
+ mBodyColumn = c.getColumnIndexOrThrow(Im.Messages.BODY);
+ mDateColumn = c.getColumnIndexOrThrow(Im.Messages.DATE);
+ mTypeColumn = c.getColumnIndexOrThrow(Im.Messages.TYPE);
+ mErrCodeColumn = c.getColumnIndexOrThrow(Im.Messages.ERROR_CODE);
mDeltaColumn = c.getColumnIndexOrThrow(DeltaCursor.DELTA_COLUMN_NAME);
}
MessageView chatMsgView = (MessageView) view;
int type = cursor.getInt(mTypeColumn);
- String contact = isGroupChat() ? cursor.getString(mContactColumn) : mNickName;
+ String contact = isGroupChat() ? cursor.getString(mNicknameColumn) : mNickName;
String body = cursor.getString(mBodyColumn);
long delta = cursor.getLong(mDeltaColumn);
boolean showTimeStamp = (delta > SHOW_TIME_STAMP_INTERVAL);
public class ChatSessionAdapter extends IChatSession.Stub {
- private static final String NON_CHAT_MESSAGE_SELECTION = Im.BaseMessageColumns.TYPE
- + "!=" + Im.MessageType.INCOMING + " AND " + Im.BaseMessageColumns.TYPE
+ private static final String NON_CHAT_MESSAGE_SELECTION = Im.Messages.TYPE
+ + "!=" + Im.MessageType.INCOMING + " AND " + Im.Messages.TYPE
+ "!=" + Im.MessageType.OUTGOING;
static final String TAG = RemoteImService.TAG;
mIsGroupChat = true;
long groupId = insertGroupContactInDb(group);
group.addMemberListener(mListenerAdapter);
- mMessageURI = ContentUris.withAppendedId(
- Im.GroupMessages.CONTENT_URI_GROUP_MESSAGES_BY, groupId);
+ mMessageURI = Im.Messages.getGroupChatContentUriByThreadId(groupId);
mChatURI = ContentUris.withAppendedId(Im.Chats.CONTENT_URI, groupId);
insertOrUpdateChat(null);
(ContactListManagerAdapter) mConnection.getContactListManager();
long contactId = listManager.queryOrInsertContact(contact);
- long provider = mConnection.getProviderId();
- long account = mConnection.getAccountId();
- String address = contact.getAddress().getFullName();
- mMessageURI = Im.Messages.getContentUriByContact(provider, account, address);
+ mMessageURI = Im.Messages.getContentUriByThreadId(contactId);
mChatURI = ContentUris.withAppendedId(Im.Chats.CONTENT_URI, contactId);
insertOrUpdateChat(null);
public void leave() {
if (mIsGroupChat) {
getGroupManager().leaveChatGroupAsync((ChatGroup)mAdaptee.getParticipant());
- mContentResolver.delete(mMessageURI, null, null);
- } else {
- mContentResolver.delete(mMessageURI, null, null);
}
+
+ mContentResolver.delete(mMessageURI, null, null);
mContentResolver.delete(mChatURI, null, null);
mStatusBarNotifier.dismissChatNotification(
mConnection.getProviderId(), getAddress());
void sendPostponedMessages() {
String[] projection = new String[] {
BaseColumns._ID,
- Im.BaseMessageColumns.BODY,
- Im.BaseMessageColumns.DATE,
- Im.BaseMessageColumns.TYPE,
+ Im.Messages.BODY,
+ Im.Messages.DATE,
+ Im.Messages.TYPE,
};
- String selection = Im.BaseMessageColumns.TYPE + "=?";
+ String selection = "messages.type=?";
Cursor c = mContentResolver.query(mMessageURI, projection, selection,
new String[]{Integer.toString(Im.MessageType.POSTPONED)}, null);
}
void removeMessageInDb(int type) {
- mContentResolver.delete(mMessageURI, Im.BaseMessageColumns.TYPE + "=?",
+ mContentResolver.delete(mMessageURI, Im.Messages.TYPE + "=?",
new String[]{Integer.toString(type)});
}
Uri insertMessageInDb(String contact, String body, long time, int type, int errCode) {
ContentValues values = new ContentValues(mIsGroupChat ? 4 : 3);
- values.put(Im.BaseMessageColumns.BODY, body);
- values.put(Im.BaseMessageColumns.DATE, time);
- values.put(Im.BaseMessageColumns.TYPE, type);
- values.put(Im.BaseMessageColumns.ERROR_CODE, errCode);
+ values.put(Im.Messages.BODY, body);
+ values.put(Im.Messages.DATE, time);
+ values.put(Im.Messages.TYPE, type);
+ values.put(Im.Messages.ERROR_CODE, errCode);
if (mIsGroupChat) {
- values.put(Im.BaseMessageColumns.CONTACT, contact);
+ values.put(Im.Messages.NICKNAME, contact);
+ values.put(Im.Messages.IS_GROUP_CHAT, 1);
}
return mContentResolver.insert(mMessageURI, values);