Просмотр исходного кода

聊天、群消息批量删除

gongpm 10 лет назад
Родитель
Сommit
94e242086b

+ 4 - 8
WeiChat/src/main/java/com/sk/weichat/ui/erp/activity/SaleSelectActivity.java

@@ -339,23 +339,19 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
                 }
                 Intent it_detail = null;
                 if ("SignMain".equals(from)) {
-                    Log.i("gongpengming", "" +
-                            "if");
+
                     if ("Ask4Leave".equals(caller)) {
-                        Log.i("gongpengming", "" +
-                                "Ask4Leave");
+
                         it_detail = new Intent(SaleSelectActivity.this,
                                 LeaveActivity.class);
                     }
                     if ("SpeAttendance".equals(caller)) {
-                        Log.i("gongpengming", "" +
-                                "SpeAttendance");
+
                         it_detail = new Intent(SaleSelectActivity.this,
                                 ExtraLeaveActivity.class);
                     }
                     if ("FeePlease!CCSQ".equals(caller)) {
-                        Log.i("gongpengming", "" +
-                                "FeePlease");
+
                         it_detail = new Intent(SaleSelectActivity.this,
                                 TravelActivity.class);
                     }

+ 7 - 5
WeiChat/src/main/java/com/sk/weichat/ui/message/ChatActivity.java

@@ -21,6 +21,7 @@ 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;
@@ -92,7 +93,8 @@ public class ChatActivity extends ActionBackActivity
 
     @SuppressWarnings("unused")
     private TextView mAuthStateTipTv;
-    private TextView tv_none;
+    private ImageView tv_none;
+    private ImageView tv_delete;
     private LinearLayout botton_ll;
     private ChatContentView mChatContentView;
     private ChatBottomView mChatBottomView;
@@ -121,7 +123,7 @@ public class ChatActivity extends ActionBackActivity
     private ChatMessage instantMessage;//转发消息传过来的message
     private String instantFilePath;//转发文件传过来的path
     private FastVolley mFastVolley;
-    private TextView tv_delete;
+
 
 
     protected void onCreate(Bundle savedInstanceState) {
@@ -224,10 +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 = (TextView) findViewById(R.id.tv_delete);
-        tv_none = (TextView) findViewById(R.id.tv_none);
+        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);
+        botton_ll = (LinearLayout) findViewById(R.id.botton_ll);
         mChatContentView.setMessageEventListener(this);
         mChatContentView.setRefreshListener(new PullDownListView.RefreshingListener() {
             @Override

+ 76 - 15
WeiChat/src/main/java/com/sk/weichat/ui/message/MucChatActivity.java

@@ -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;
 
@@ -98,6 +101,7 @@ public class MucChatActivity extends ActionBackActivity
 
         }
     };
+    private LinearLayout botton_ll;
     private CoreService mService;
     private boolean mHasSend = false;// 有没有发送过消息,发送过需要更新界面
     private FastVolley mFastVolley;
@@ -110,7 +114,8 @@ public class MucChatActivity extends ActionBackActivity
     private Friend mFriend;
     private ChatMessage instantMessage;
     private String instantFilePath;// 转发文件传过来的path
-
+    private ImageView tv_none;
+    private ImageView tv_delete;
     private String[] noticeFriendList;
 
     protected void onCreate(Bundle savedInstanceState) {
@@ -162,21 +167,32 @@ public class MucChatActivity 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);
                 }
+
             }
 
         }
@@ -227,6 +243,8 @@ public class MucChatActivity extends ActionBackActivity
         mChatContentView = (ChatContentView) findViewById(R.id.chat_content_view);
         mChatContentView.setToUserId(mUseId);
         mChatContentView.setData(mChatMessages);
+        tv_delete = (ImageView) findViewById(R.id.tv_delete);
+        tv_none = (ImageView) findViewById(R.id.tv_none);
         mChatContentView.setMessageEventListener(this);
         mChatContentView.setRoomNickName(mFriend.getRoomMyNickName());
         mChatContentView.setRefreshListener(new PullDownListView.RefreshingListener() {
@@ -235,9 +253,52 @@ public class MucChatActivity extends ActionBackActivity
                 loadDatas(false);
             }
         });
-
+        botton_ll = (LinearLayout) findViewById(R.id.botton_ll);
         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();
+        }
     }
 
     public void updateUi(String roomName) {

+ 1 - 1
WeiChat/src/main/java/com/sk/weichat/view/ChatContentView.java

@@ -519,7 +519,7 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
             }
             if (isShowCB) {    //点击更多时候
                 contentViewHolder.cb_choose.setVisibility(VISIBLE);
-                contentViewHolder.cb_choose.setSelected(false);
+                contentViewHolder.cb_choose.setChecked(false);
                 contentViewHolder.cb_choose.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                     @Override
                     public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

BIN
WeiChat/src/main/res/drawable-hdpi/delete.png


BIN
WeiChat/src/main/res/drawable-hdpi/to_back.png


+ 13 - 17
WeiChat/src/main/res/layout/chat.xml

@@ -50,30 +50,26 @@
             <LinearLayout
                 android:id="@+id/botton_ll"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:visibility="gone"
-                android:orientation="horizontal">
+                android:layout_height="30dp"
+                android:orientation="horizontal"
+                android:background="@color/item_color1"
+                android:visibility="gone">
 
-                <TextView
+                <ImageView
                     android:id="@+id/tv_delete"
                     android:layout_width="0dp"
-                    android:layout_height="wrap_content"
+                    android:layout_height="match_parent"
                     android:layout_weight="1"
-                    android:background="@color/item_color1"
-                    android:gravity="center_horizontal"
-                    android:text="删除记录"
-                    android:textSize="30sp"
-                    />
-                <TextView
+                    android:clickable="true"
+                    android:src="@drawable/delete" />
+
+                <ImageView
                     android:id="@+id/tv_none"
                     android:layout_width="0dp"
-                    android:layout_height="wrap_content"
+                    android:layout_height="match_parent"
                     android:layout_weight="1"
-                    android:background="@color/item_color1"
-                    android:gravity="center_horizontal"
-                    android:text="取消"
-                    android:textSize="30sp"
-                    />
+                    android:clickable="true"
+                    android:src="@drawable/to_back" />
             </LinearLayout>
 
         </FrameLayout>

+ 1 - 1
WeiChat/src/main/res/layout/from_leave_view.xml

@@ -227,7 +227,7 @@
                 <Button
                     android:id="@+id/bt_save"
                     style="@style/from_button_base_bule"
-                    android:text="提  交" />
+                    android:text="保  存" />
             </LinearLayout>
 
             <include layout="@layout/item_work_view" />