|
|
@@ -20,6 +20,9 @@ import android.util.Log;
|
|
|
import android.view.KeyEvent;
|
|
|
import android.view.Menu;
|
|
|
import android.view.MenuItem;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
@@ -90,6 +93,9 @@ public class ChatActivity extends ActionBackActivity
|
|
|
|
|
|
@SuppressWarnings("unused")
|
|
|
private TextView mAuthStateTipTv;
|
|
|
+ private ImageView tv_none;
|
|
|
+ private ImageView tv_delete;
|
|
|
+ private LinearLayout botton_ll;
|
|
|
private ChatContentView mChatContentView;
|
|
|
private ChatBottomView mChatBottomView;
|
|
|
private AudioManager mAudioManager = null;
|
|
|
@@ -102,7 +108,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
public void handleMessage(Message msg) {
|
|
|
switch (msg.what) {
|
|
|
case 5:
|
|
|
- Log.i("push",msg.getData().getString("result"));
|
|
|
+ Log.i("push", msg.getData().getString("result"));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -119,6 +125,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
private FastVolley mFastVolley;
|
|
|
|
|
|
|
|
|
+
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.chat);
|
|
|
@@ -156,21 +163,32 @@ public class ChatActivity extends ActionBackActivity
|
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
Log.d("wang", "接收到广播");
|
|
|
- if (mChatContentView != null) {
|
|
|
- int position = intent.getIntExtra(Constants.CHAT_REMOVE_MESSAGE_POSITION, 10000);
|
|
|
- if (position == 10000) {
|
|
|
- return;
|
|
|
+ if (intent.getIntExtra(Constants.CHAT_REMOVE_MESSAGE_FALG, 10000) == 1) {//当广播为删除一个信息时候
|
|
|
+ if (mChatContentView != null) {
|
|
|
+ int position = intent.getIntExtra(Constants.CHAT_REMOVE_MESSAGE_POSITION, 10000);
|
|
|
+ if (position == 10000) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ChatMessage message = mChatMessages.get(position);
|
|
|
+ boolean isSuccess = ChatMessageDao.getInstance().deleteSingleChatMessage(mLoginUserId, mFriend.getUserId(), message);
|
|
|
+ if (isSuccess) {
|
|
|
+
|
|
|
+ mChatMessages.remove(position);
|
|
|
+ mChatContentView.notifyDataSetInvalidated(true);
|
|
|
+ MsgBroadcast.broadcastMsgUiUpdate(mContext);
|
|
|
+ } else {
|
|
|
+ Toast.makeText(mContext, "删除失败", Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
}
|
|
|
- ChatMessage message = mChatMessages.get(position);
|
|
|
- boolean isSuccess = ChatMessageDao.getInstance().deleteSingleChatMessage(mLoginUserId, mFriend.getUserId(), message);
|
|
|
- if (isSuccess) {
|
|
|
-
|
|
|
- mChatMessages.remove(position);
|
|
|
- mChatContentView.notifyDataSetInvalidated(true);
|
|
|
- MsgBroadcast.broadcastMsgUiUpdate(mContext);
|
|
|
- } else {
|
|
|
- Toast.makeText(mContext, "删除失败", Toast.LENGTH_SHORT).show();
|
|
|
+ } else {//当广播为删除一个信息时候
|
|
|
+ Log.i("gongpengming", "点击更多时候接受到广播");
|
|
|
+ if (botton_ll != null) {
|
|
|
+ botton_ll.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ if (mChatBottomView != null) {
|
|
|
+ mChatBottomView.setVisibility(View.GONE);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -208,9 +226,10 @@ public class ChatActivity extends ActionBackActivity
|
|
|
mAuthStateTipTv = (TextView) findViewById(R.id.auth_state_tip);
|
|
|
mChatContentView = (ChatContentView) findViewById(R.id.chat_content_view);
|
|
|
mChatContentView.setToUserId(mFriend.getUserId());
|
|
|
-
|
|
|
+ tv_delete = (ImageView) findViewById(R.id.tv_delete);
|
|
|
+ tv_none = (ImageView) findViewById(R.id.tv_none);
|
|
|
mChatContentView.setData(mChatMessages);
|
|
|
-
|
|
|
+ botton_ll = (LinearLayout) findViewById(R.id.botton_ll);
|
|
|
mChatContentView.setMessageEventListener(this);
|
|
|
mChatContentView.setRefreshListener(new PullDownListView.RefreshingListener() {
|
|
|
@Override
|
|
|
@@ -220,6 +239,49 @@ public class ChatActivity extends ActionBackActivity
|
|
|
});
|
|
|
mChatBottomView = (ChatBottomView) findViewById(R.id.chat_bottom_view);
|
|
|
mChatBottomView.setChatBottomListener(this);
|
|
|
+ tv_none.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ if (botton_ll != null) {
|
|
|
+ botton_ll.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ if (mChatBottomView != null) {
|
|
|
+ mChatBottomView.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ mChatContentView.setShowCB(false);
|
|
|
+ mChatContentView.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ tv_delete.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ //TODO 确定删除选择聊天记录
|
|
|
+ if (botton_ll != null) {
|
|
|
+ botton_ll.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ if (mChatBottomView != null) {
|
|
|
+ mChatBottomView.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ //点击删除记录时候
|
|
|
+ onDeleteMore();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void onDeleteMore() {
|
|
|
+ List<Integer> ints = mChatContentView.getInts();
|
|
|
+ ArrayList<ChatMessage> messages = new ArrayList<>();
|
|
|
+ for (int i = 0; i < ints.size(); i++) {
|
|
|
+ Log.i("gongpengming", "当前i=" + i);
|
|
|
+ messages.add(mChatMessages.get(ints.get(i)));
|
|
|
+ }
|
|
|
+ boolean isSuccess = ChatMessageDao.getInstance().deleteSingleChatMessage(mLoginUserId, mFriend.getUserId(), messages);
|
|
|
+ if (isSuccess) {
|
|
|
+ mChatMessages.removeAll(messages);
|
|
|
+ mChatContentView.notifyDataSetInvalidated(true);
|
|
|
+ MsgBroadcast.broadcastMsgUiUpdate(mContext);
|
|
|
+// mChatContentView.notifyDataSetChanged();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void doBack() {
|
|
|
@@ -251,8 +313,8 @@ public class ChatActivity extends ActionBackActivity
|
|
|
protected void onDestroy() {
|
|
|
super.onDestroy();
|
|
|
mChatBottomView.recordCancel();
|
|
|
- if (mFastVolley!=null )
|
|
|
- mFastVolley.cancelAll(FRIEND);
|
|
|
+ if (mFastVolley != null)
|
|
|
+ mFastVolley.cancelAll(FRIEND);
|
|
|
ListenerManager.getInstance().removeChatMessageListener(this);
|
|
|
unbindService(mConnection);
|
|
|
unregisterReceiver(broadcastReceiver);
|
|
|
@@ -371,11 +433,13 @@ public class ChatActivity extends ActionBackActivity
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onMessageClick(ChatMessage chatMessage) {
|
|
|
+ public void onMessageClick(ChatMessage chatMessage) {//点击消息
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onMessageLongClick(ChatMessage chatMessage) {
|
|
|
+ public void onMessageLongClick(ChatMessage chatMessage) {//张点击
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -446,7 +510,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
Log.d("roamer", "sendChatMessage....");
|
|
|
mService.sendChatMessage(mFriend.getUserId(), message);
|
|
|
}
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
Log.d("roamer", "sendChatMessage");
|
|
|
mService.sendChatMessage(mFriend.getUserId(), message);
|
|
|
//进行百度推送
|
|
|
@@ -621,7 +685,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
|
|
|
//TODO 发送卡片
|
|
|
public void sendCard(String ObjectId) {
|
|
|
- this.objectId = ObjectId;
|
|
|
+ this.objectId = ObjectId;
|
|
|
// ChatMessage message = new ChatMessage();
|
|
|
// message.setType(XmppMessage.TYPE_CARD);
|
|
|
// message.setFromUserName(mLoginNickName);
|
|
|
@@ -764,7 +828,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
}
|
|
|
}
|
|
|
mChatMessages.add(0, message);
|
|
|
- Log.i("table","cardId="+message.getCardId());
|
|
|
+ Log.i("table", "cardId=" + message.getCardId());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -878,7 +942,7 @@ public class ChatActivity extends ActionBackActivity
|
|
|
mChatContentView.notifyDataSetInvalidated(true);
|
|
|
// message.setContent(MyApplication.getInstance().mLoginUser.getSex() + "");// 性别
|
|
|
// // 0表示女,1表示男
|
|
|
- // sendMessage(message);
|
|
|
+ // sendMessage(message);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -905,17 +969,17 @@ public class ChatActivity extends ActionBackActivity
|
|
|
boolean success = Result.defaultParser(mContext, result, true);
|
|
|
if (success && result.getData() != null) {
|
|
|
User mUser = result.getData();
|
|
|
- message.setContent(mUser.getSex()+ "");// 成功时候显示性别
|
|
|
+ message.setContent(mUser.getSex() + "");// 成功时候显示性别
|
|
|
// 0表示女,1表示男
|
|
|
sendMessage(message);
|
|
|
} else {
|
|
|
- message.setContent(-1+ "");// 当失败时候显示保密
|
|
|
+ message.setContent(-1 + "");// 当失败时候显示保密
|
|
|
// 0表示女,1表示男
|
|
|
sendMessage(message);
|
|
|
}
|
|
|
}
|
|
|
}, User.class, params);
|
|
|
- mFastVolley.addDefaultRequest(FRIEND , request);
|
|
|
+ mFastVolley.addDefaultRequest(FRIEND, request);
|
|
|
}
|
|
|
|
|
|
|