package com.d3.d3xmpp.xmpp;
import org.jivesoftware.smack.PacketInterceptor;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
import android.content.Intent;
import android.telephony.SmsMessage.MessageClass;
import android.util.Log;
import com.d3.d3xmpp.constant.Constants;
import com.d3.d3xmpp.constant.MyApplication;
import com.d3.d3xmpp.dao.MsgDbHelper;
import com.d3.d3xmpp.model.ChatItem;
import com.d3.d3xmpp.util.DateUtil;
import com.d3.d3xmpp.util.FileUtil;
public class XmppMessageInterceptor implements PacketInterceptor {
@Override
public void interceptPacket(Packet packet) {
Message nowMessage = (Message) packet;
if(Constants.IS_DEBUG)
Log.e("xmppchat send", nowMessage.toXML());
if (nowMessage.getType() == Message.Type.groupchat || nowMessage.getType() == Message.Type.chat) {
String chatName = "";
String userName = "";
int chatType = ChatItem.CHAT;
//name
if (nowMessage.getType() == Message.Type.groupchat) {
chatName = XmppConnection.getRoomName(nowMessage.getTo());
userName = nowMessage.getTo();
chatType = ChatItem.GROUP_CHAT;
}
else {
chatName = userName = XmppConnection.getUsername(nowMessage.getTo());
}
//type
// ��¼���Ƿ���ȥ����Ϣ
String msgBody ;
if(nowMessage.getProperty("imgData")!=null){
if(FileUtil.getType(nowMessage.getBody()) == FileUtil.SOUND)
msgBody = Constants.SAVE_SOUND_PATH + "/" + nowMessage.getBody();
else
msgBody = Constants.SAVE_IMG_PATH + "/" + nowMessage.getBody();
}
else if (nowMessage.getType() == Message.Type.groupchat & nowMessage.getBody().contains(":::")) { //���ȵ�
String[] msgAndData = nowMessage.getBody().split(":::");
if(FileUtil.getType(msgAndData[0]) == FileUtil.SOUND)
msgBody = Constants.SAVE_SOUND_PATH + "/" + msgAndData[0];
else
msgBody = Constants.SAVE_IMG_PATH + "/" + msgAndData[0];
}
else
msgBody = nowMessage.getBody();
if (nowMessage.getBody().contains("[RoomChange")) {
System.out.println("����Ҫ�����ı���");
}
else {
ChatItem msg = new ChatItem(chatType,chatName,userName, "", msgBody, DateUtil.now_MM_dd_HH_mm_ss(), 1);
MsgDbHelper.getInstance(MyApplication.getInstance()).saveChatMsg(msg);
MyApplication.getInstance().sendBroadcast(new Intent("ChatNewMsg"));
}
}
}
}