X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcom%2Fandroid%2Fim%2Fservice%2FChatSessionAdapter.java;fp=src%2Fcom%2Fandroid%2Fim%2Fservice%2FChatSessionAdapter.java;h=3ac6c605e492516d1c192f98e47fcec63924fbdf;hb=c84f5b8faa3fac30fabe6b21ff30b7c98a36832e;hp=257d81ea49ebe2abbece5ae449a971ea167558b0;hpb=72eda8084847abf311f0024b737f6ba630faf3d8;p=android-x86%2Fpackages-apps-IM.git diff --git a/src/com/android/im/service/ChatSessionAdapter.java b/src/com/android/im/service/ChatSessionAdapter.java index 257d81e..3ac6c60 100644 --- a/src/com/android/im/service/ChatSessionAdapter.java +++ b/src/com/android/im/service/ChatSessionAdapter.java @@ -31,6 +31,7 @@ import com.android.im.engine.ImErrorInfo; import com.android.im.engine.Message; import com.android.im.engine.MessageListener; import com.android.im.engine.Presence; +import com.android.im.provider.Imps; import android.content.ContentResolver; import android.content.ContentValues; @@ -40,7 +41,6 @@ import android.net.Uri; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.provider.BaseColumns; -import android.provider.Im; import android.util.Log; import java.util.ArrayList; @@ -49,9 +49,9 @@ import java.util.List; public class ChatSessionAdapter extends IChatSession.Stub { - private static final String NON_CHAT_MESSAGE_SELECTION = Im.Messages.TYPE - + "!=" + Im.MessageType.INCOMING + " AND " + Im.Messages.TYPE - + "!=" + Im.MessageType.OUTGOING; + private static final String NON_CHAT_MESSAGE_SELECTION = Imps.Messages.TYPE + + "!=" + Imps.MessageType.INCOMING + " AND " + Imps.Messages.TYPE + + "!=" + Imps.MessageType.OUTGOING; static final String TAG = RemoteImService.TAG; @@ -106,8 +106,8 @@ public class ChatSessionAdapter extends IChatSession.Stub { mIsGroupChat = true; long groupId = insertGroupContactInDb(group); group.addMemberListener(mListenerAdapter); - mMessageURI = Im.Messages.getContentUriByThreadId(groupId); - mChatURI = ContentUris.withAppendedId(Im.Chats.CONTENT_URI, groupId); + mMessageURI = Imps.Messages.getContentUriByThreadId(groupId); + mChatURI = ContentUris.withAppendedId(Imps.Chats.CONTENT_URI, groupId); insertOrUpdateChat(null); for (Contact c : group.getMembers()) { @@ -121,8 +121,8 @@ public class ChatSessionAdapter extends IChatSession.Stub { (ContactListManagerAdapter) mConnection.getContactListManager(); long contactId = listManager.queryOrInsertContact(contact); - mMessageURI = Im.Messages.getContentUriByThreadId(contactId); - mChatURI = ContentUris.withAppendedId(Im.Chats.CONTENT_URI, contactId); + mMessageURI = Imps.Messages.getContentUriByThreadId(contactId); + mChatURI = ContentUris.withAppendedId(Imps.Chats.CONTENT_URI, contactId); insertOrUpdateChat(null); mContactStatusMap.put(contact.getName(), contact.getPresence().getStatus()); @@ -229,27 +229,27 @@ public class ChatSessionAdapter extends IChatSession.Stub { public void sendMessage(String text) { if (mConnection.getState() == ImConnection.SUSPENDED) { // connection has been suspended, save the message without send it - insertMessageInDb(null, text, -1, Im.MessageType.POSTPONED); + insertMessageInDb(null, text, -1, Imps.MessageType.POSTPONED); return; } Message msg = new Message(text); mAdaptee.sendMessageAsync(msg); long now = System.currentTimeMillis(); - insertMessageInDb(null, text, now, Im.MessageType.OUTGOING); + insertMessageInDb(null, text, now, Imps.MessageType.OUTGOING); } void sendPostponedMessages() { String[] projection = new String[] { BaseColumns._ID, - Im.Messages.BODY, - Im.Messages.DATE, - Im.Messages.TYPE, + Imps.Messages.BODY, + Imps.Messages.DATE, + Imps.Messages.TYPE, }; String selection = "messages.type=?"; Cursor c = mContentResolver.query(mMessageURI, projection, selection, - new String[]{Integer.toString(Im.MessageType.POSTPONED)}, null); + new String[]{Integer.toString(Imps.MessageType.POSTPONED)}, null); if (c == null) { Log.e(TAG, "Query error while querying postponed messages"); return; @@ -260,7 +260,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { mAdaptee.sendMessageAsync(new Message(body)); c.updateLong(2, System.currentTimeMillis()); - c.updateInt(3, Im.MessageType.OUTGOING); + c.updateInt(3, Imps.MessageType.OUTGOING); } c.commitUpdates(); c.close(); @@ -281,7 +281,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { public void markAsRead() { if (mHasUnreadMessages) { ContentValues values = new ContentValues(1); - values.put(Im.Chats.LAST_UNREAD_MESSAGE, (String) null); + values.put(Imps.Chats.LAST_UNREAD_MESSAGE, (String) null); mConnection.getContext().getContentResolver().update(mChatURI, values, null, null); mStatusBarNotifier.dismissChatNotification(mConnection.getProviderId(), getAddress()); @@ -335,15 +335,15 @@ public class ChatSessionAdapter extends IChatSession.Stub { String contact = incoming ? oldParticipant.getName() : null; long time = msg.getDateTime().getTime(); insertMessageInDb(contact, msg.getBody(), time, - incoming ? Im.MessageType.INCOMING : Im.MessageType.OUTGOING); + incoming ? Imps.MessageType.INCOMING : Imps.MessageType.OUTGOING); } } void insertOrUpdateChat(String message) { ContentValues values = new ContentValues(2); - values.put(Im.Chats.LAST_MESSAGE_DATE, System.currentTimeMillis()); - values.put(Im.Chats.LAST_UNREAD_MESSAGE, message); + values.put(Imps.Chats.LAST_MESSAGE_DATE, System.currentTimeMillis()); + values.put(Imps.Chats.LAST_UNREAD_MESSAGE, message); // ImProvider.insert() will replace the chat if it already exist. mContentResolver.insert(mChatURI, values); } @@ -351,13 +351,13 @@ public class ChatSessionAdapter extends IChatSession.Stub { private long insertGroupContactInDb(ChatGroup group) { // Insert a record in contacts table ContentValues values = new ContentValues(4); - values.put(Im.Contacts.USERNAME, group.getAddress().getFullName()); - values.put(Im.Contacts.NICKNAME, group.getName()); - values.put(Im.Contacts.CONTACTLIST, ContactListManagerAdapter.FAKE_TEMPORARY_LIST_ID); - values.put(Im.Contacts.TYPE, Im.Contacts.TYPE_GROUP); + values.put(Imps.Contacts.USERNAME, group.getAddress().getFullName()); + values.put(Imps.Contacts.NICKNAME, group.getName()); + values.put(Imps.Contacts.CONTACTLIST, ContactListManagerAdapter.FAKE_TEMPORARY_LIST_ID); + values.put(Imps.Contacts.TYPE, Imps.Contacts.TYPE_GROUP); Uri contactUri = ContentUris.withAppendedId(ContentUris.withAppendedId( - Im.Contacts.CONTENT_URI, mConnection.mProviderId), mConnection.mAccountId); + Imps.Contacts.CONTENT_URI, mConnection.mProviderId), mConnection.mAccountId); long id = ContentUris.parseId(mContentResolver.insert(contactUri, values)); ArrayList memberValues = new ArrayList(); @@ -365,9 +365,9 @@ public class ChatSessionAdapter extends IChatSession.Stub { for (Contact member : group.getMembers()) { if (!member.equals(self)) { // avoid to insert the user himself ContentValues memberValue = new ContentValues(2); - memberValue.put(Im.GroupMembers.USERNAME, + memberValue.put(Imps.GroupMembers.USERNAME, member.getAddress().getFullName()); - memberValue.put(Im.GroupMembers.NICKNAME, + memberValue.put(Imps.GroupMembers.NICKNAME, member.getName()); memberValues.add(memberValue); } @@ -375,7 +375,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { if (!memberValues.isEmpty()) { ContentValues[] result = new ContentValues[memberValues.size()]; memberValues.toArray(result); - Uri memberUri = ContentUris.withAppendedId(Im.GroupMembers.CONTENT_URI, id); + Uri memberUri = ContentUris.withAppendedId(Imps.GroupMembers.CONTENT_URI, id); mContentResolver.bulkInsert(memberUri, result); } return id; @@ -383,27 +383,27 @@ public class ChatSessionAdapter extends IChatSession.Stub { void insertGroupMemberInDb(Contact member) { ContentValues values1 = new ContentValues(2); - values1.put(Im.GroupMembers.USERNAME, member.getAddress().getFullName()); - values1.put(Im.GroupMembers.NICKNAME, member.getName()); + values1.put(Imps.GroupMembers.USERNAME, member.getAddress().getFullName()); + values1.put(Imps.GroupMembers.NICKNAME, member.getName()); ContentValues values = values1; long groupId = ContentUris.parseId(mChatURI); - Uri uri = ContentUris.withAppendedId(Im.GroupMembers.CONTENT_URI, groupId); + Uri uri = ContentUris.withAppendedId(Imps.GroupMembers.CONTENT_URI, groupId); mContentResolver.insert(uri, values); insertMessageInDb(member.getName(), null, System.currentTimeMillis(), - Im.MessageType.PRESENCE_AVAILABLE); + Imps.MessageType.PRESENCE_AVAILABLE); } void deleteGroupMemberInDb(Contact member) { - String where = Im.GroupMembers.USERNAME + "=?"; + String where = Imps.GroupMembers.USERNAME + "=?"; String[] selectionArgs = { member.getAddress().getFullName() }; long groupId = ContentUris.parseId(mChatURI); - Uri uri = ContentUris.withAppendedId(Im.GroupMembers.CONTENT_URI, groupId); + Uri uri = ContentUris.withAppendedId(Imps.GroupMembers.CONTENT_URI, groupId); mContentResolver.delete(uri, where, selectionArgs); insertMessageInDb(member.getName(), null, System.currentTimeMillis(), - Im.MessageType.PRESENCE_UNAVAILABLE); + Imps.MessageType.PRESENCE_UNAVAILABLE); } void insertPresenceUpdatesMsg(String contact, Presence presence) { @@ -420,20 +420,20 @@ public class ChatSessionAdapter extends IChatSession.Stub { int messageType; switch (status) { case Presence.AVAILABLE: - messageType = Im.MessageType.PRESENCE_AVAILABLE; + messageType = Imps.MessageType.PRESENCE_AVAILABLE; break; case Presence.AWAY: case Presence.IDLE: - messageType = Im.MessageType.PRESENCE_AWAY; + messageType = Imps.MessageType.PRESENCE_AWAY; break; case Presence.DO_NOT_DISTURB: - messageType = Im.MessageType.PRESENCE_DND; + messageType = Imps.MessageType.PRESENCE_DND; break; default: - messageType = Im.MessageType.PRESENCE_UNAVAILABLE; + messageType = Imps.MessageType.PRESENCE_UNAVAILABLE; break; } @@ -445,7 +445,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { } void removeMessageInDb(int type) { - mContentResolver.delete(mMessageURI, Im.Messages.TYPE + "=?", + mContentResolver.delete(mMessageURI, Imps.Messages.TYPE + "=?", new String[]{Integer.toString(type)}); } @@ -455,13 +455,13 @@ public class ChatSessionAdapter extends IChatSession.Stub { Uri insertMessageInDb(String contact, String body, long time, int type, int errCode) { ContentValues values = new ContentValues(mIsGroupChat ? 4 : 3); - 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); + values.put(Imps.Messages.BODY, body); + values.put(Imps.Messages.DATE, time); + values.put(Imps.Messages.TYPE, type); + values.put(Imps.Messages.ERROR_CODE, errCode); if (mIsGroupChat) { - values.put(Im.Messages.NICKNAME, contact); - values.put(Im.Messages.IS_GROUP_CHAT, 1); + values.put(Imps.Messages.NICKNAME, contact); + values.put(Imps.Messages.IS_GROUP_CHAT, 1); } return mContentResolver.insert(mMessageURI, values); @@ -479,7 +479,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { } else { insertOrUpdateChat(body); } - insertMessageInDb(nickname, body, time, Im.MessageType.INCOMING); + insertMessageInDb(nickname, body, time, Imps.MessageType.INCOMING); int N = mRemoteListeners.beginBroadcast(); for (int i = 0; i < N; i++) { @@ -502,7 +502,7 @@ public class ChatSessionAdapter extends IChatSession.Stub { public void onSendMessageError(ChatSession ses, final Message msg, final ImErrorInfo error) { insertMessageInDb(null, null, System.currentTimeMillis(), - Im.MessageType.OUTGOING, error.getCode()); + Imps.MessageType.OUTGOING, error.getCode()); final int N = mRemoteListeners.beginBroadcast(); for (int i = 0; i < N; i++) {