/** * */ package com.d3.d3xmpp.activites; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jivesoftware.smack.XMPPException; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.d3.d3xmpp.R; import com.d3.d3xmpp.adapter.SearchAdapter; import com.d3.d3xmpp.constant.Constants; import com.d3.d3xmpp.constant.MyApplication; import com.d3.d3xmpp.d3View.D3View; import com.d3.d3xmpp.dao.MsgDbHelper; import com.d3.d3xmpp.dao.NewMsgDbHelper; import com.d3.d3xmpp.model.ChatItem; import com.d3.d3xmpp.model.Room; import com.d3.d3xmpp.util.LoadThread; import com.d3.d3xmpp.util.Tool; import com.d3.d3xmpp.xmpp.XmppConnection; /** * @author MZH * */ public class RoomMemActivity extends BaseActivity { @D3View(click="onClick") ImageView leftBtn; @D3View(click="onClick") TextView rightBtn; @D3View(click="onClick") Button exitBtn; @D3View ListView listView; private SearchAdapter adapter; // private List<RoomMem> roomMems; private String roomName; private List<String> members = new ArrayList<String>(); public static boolean isExit = false; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.acti_room_mem); roomName = getIntent().getStringExtra("roomName"); adapter = new SearchAdapter(getApplicationContext()); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(getApplicationContext(), FriendActivity.class); intent.putExtra("username", adapter.getItem(position)); startActivity(intent); } }); for (Room room : XmppConnection.getInstance().getMyRoom()) { if (room.name.equals(roomName)) { members = room.friendList; for (String mem : room.friendList) { adapter.add(mem); } } } // initData(); } @Override protected void onResume() { super.onResume(); if (isExit) { isExit = false; finish(); } } public void onClick(View v){ switch (v.getId()) { case R.id.leftBtn: finish(); break; case R.id.rightBtn: Intent intent = new Intent(getApplicationContext(), ChoseActivity.class); intent.putExtra("roomName", roomName); intent.putStringArrayListExtra("members", (ArrayList<String>) members); startActivity(intent); break; case R.id.exitBtn: AlertDialog.Builder builder = new Builder(RoomMemActivity.this); builder .setMessage("ȷ��Ҫ�˳���?") .setTitle("��ʾ") .setPositiveButton("ȷ��", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Map<String, String> map = new HashMap<String, String>(); map.put("jid", XmppConnection.getFullUsername(Constants.USER_NAME)); for (Room room : XmppConnection.getInstance().getMyRoom()) { if (room.equals(new Room(roomName))) { map.put("roomId", room.roomid); map.put("roomName", roomName); for (String mem : room.friendList) { try { XmppConnection.getInstance().sendMsg(mem,"[RoomChange,"+roomName+","+Constants.USER_NAME, ChatItem.CHAT); } catch (Exception e) { e.printStackTrace(); } } } } new LoadThread(RoomMemActivity.this,Constants.URL_EXIT_ROOM,map) { @Override protected void refreshUI(String result) { Tool.initToast(getApplicationContext(), "�˳��ɹ�"); XmppConnection.getInstance().getMyRoom().remove(new Room(roomName)); NewMsgDbHelper.getInstance(getApplicationContext()).delNewMsg(roomName); MsgDbHelper.getInstance(getApplicationContext()).delChatMsg(roomName); MyApplication.getInstance().sendBroadcast(new Intent("ChatNewMsg")); MyApplication.getInstance().sendBroadcast(new Intent("LeaveRoom")); XmppConnection.leaveRooms.add(new Room(roomName)); XmppConnection.getInstance().reconnect(); ChatActivity.isExit = true; finish(); } }; } }) .setNegativeButton("ȡ��", null) .show(); break; default: break; } } }