Selaa lähdekoodia

红包的修改

jixionghui 4 vuotta sitten
vanhempi
commit
e6372ee324

+ 4 - 0
jixin/src/main/java/com/jixin/im/bean/message/ChatMessage.java

@@ -546,6 +546,7 @@ public class ChatMessage extends XmppMessage implements Parcelable {
             fromUserId = getStringValueFromJSONObject(jObject, "fromUserId");
             toUserId = getStringValueFromJSONObject(jObject, "toUserId");
             fromUserName = getStringValueFromJSONObject(jObject, "fromUserName");
+            toUserName = getStringValueFromJSONObject(jObject,"toUserName");
             content = getStringValueFromJSONObject(jObject, "content");
             location_x = getStringValueFromJSONObject(jObject, "location_x");
             location_y = getStringValueFromJSONObject(jObject, "location_y");
@@ -601,6 +602,9 @@ public class ChatMessage extends XmppMessage implements Parcelable {
         if (!TextUtils.isEmpty(this.fromUserName)) {
             object.put("fromUserName", this.fromUserName);
         }
+        if (!TextUtils.isEmpty(this.toUserName)) {
+            object.put("toUserName", this.toUserName);
+        }
 
         if (!TextUtils.isEmpty(this.content)) {
             object.put("content", this.content);

+ 9 - 8
jixin/src/main/java/com/jixin/im/bean/redpacket/OpenRedpacket.java

@@ -61,7 +61,15 @@ public class OpenRedpacket implements Serializable {
         private List<String> userIds;
         private String roomJid;
         private int userRedType;
-        private String assignUserId;
+        private List<String> assignUserIds;
+
+        public List<String> getAssignUserIds() {
+            return assignUserIds;
+        }
+
+        public void setAssignUserIds(List<String> assignUserIds) {
+            this.assignUserIds = assignUserIds;
+        }
 
         public String getReceivedRemark() {
             return receivedRemark;
@@ -103,13 +111,6 @@ public class OpenRedpacket implements Serializable {
             this.userRedType = userRedType;
         }
 
-        public String getAssignUserId() {
-            return assignUserId;
-        }
-
-        public void setAssignUserId(String assignUserId) {
-            this.assignUserId = assignUserId;
-        }
 
         public String getId() {
             return id;

+ 10 - 0
jixin/src/main/java/com/jixin/im/bean/redpacket/RedPacket.java

@@ -3,6 +3,7 @@ package com.jixin.im.bean.redpacket;
 import com.alibaba.fastjson.annotation.JSONField;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Created by 魏正旺 on 2016/9/19.
@@ -47,6 +48,15 @@ public class RedPacket implements Serializable {
     @JSONField(name = "userName")
     private String userName;
 
+    private List<String> assignUserIds;
+
+    public List<String> getAssignUserIds() {
+        return assignUserIds;
+    }
+
+    public void setAssignUserIds(List<String> assignUserIds) {
+        this.assignUserIds = assignUserIds;
+    }
 
     public int getCount() {
         return count;

+ 5 - 0
jixin/src/main/java/com/jixin/im/fragment/BaseRedPacketFragment.java

@@ -319,6 +319,11 @@ public abstract class BaseRedPacketFragment extends EasyFragment {
                                         message.setContent(words); // 祝福语
                                         message.setFilePath(type); // 用FilePath来储存红包类型
                                         message.setFileSize(redPacket.getStatus()); //用filesize来储存红包状态
+                                        if (mRedPacketType==4){
+                                            message.setToUserId(p.get("assignUserIds"));
+                                            String toUserName = p.get("toUserName");
+                                            message.setToUserName(toUserName);
+                                        }
                                         message.setObjectId(objectId); // 红包id
                                         Intent intent = new Intent();
                                         intent.putExtra(AppConstant.EXTRA_CHAT_MESSAGE, message.toJsonString());

+ 5 - 1
jixin/src/main/java/com/jixin/im/fragment/ExclusiveRedPacketFragment.java

@@ -34,6 +34,7 @@ public class ExclusiveRedPacketFragment extends BaseRedPacketFragment {
     public static final int CODE_REQUEST_SELECT_RECEIVER = 1108;
     private String mReceiverId;
     TextView tvSelectExclusiveMember;
+    private String toUserName;
 
     public ExclusiveRedPacketFragment(String chatType, String redPacketAcceptorId) {
         super(chatType, redPacketAcceptorId);
@@ -89,8 +90,10 @@ public class ExclusiveRedPacketFragment extends BaseRedPacketFragment {
         if (requestCode == CODE_REQUEST_SELECT_RECEIVER) {
             if (resultCode == RESULT_OK) {
                 RoomMember roomMember = (RoomMember) data.getSerializableExtra("selectReceiver");
-                tvSelectExclusiveMember.setText(roomMember.getUserName());
+                toUserName = roomMember.getUserName();
+                tvSelectExclusiveMember.setText(toUserName);
                 mReceiverId = roomMember.getUserId();
+
                 changeSendRedPacketButtonStyle();
 
             }else {
@@ -111,6 +114,7 @@ public class ExclusiveRedPacketFragment extends BaseRedPacketFragment {
     protected HashMap<String, String> getSendRedPacketParameters() {
         HashMap<String,String> hashMap = new HashMap<>();
         hashMap .put("assignUserIds",mReceiverId);
+        hashMap .put("toUserName",toUserName);
         return hashMap;
     }
 

+ 28 - 13
jixin/src/main/java/com/jixin/im/view/chatHolder/RedViewHolder.java

@@ -3,7 +3,6 @@ package com.jixin.im.view.chatHolder;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -29,6 +28,7 @@ import com.xuan.xuanhttplibrary.okhttp.callback.BaseCallback;
 import com.xuan.xuanhttplibrary.okhttp.result.ObjectResult;
 
 import java.util.HashMap;
+import java.util.List;
 
 import de.greenrobot.event.EventBus;
 import okhttp3.Call;
@@ -41,7 +41,7 @@ class RedViewHolder extends AChatHolderInterface {
     private RedDialog mRedDialog;
 
     private RoundedImageView rivReceiverAvatar;
-    private TextView tvContent, tvExclusiveContent;
+    private TextView tvContent, tvRedPacketContent;
     private TextView tvStatus;
     private View redPacketBgView;
 
@@ -53,7 +53,7 @@ class RedViewHolder extends AChatHolderInterface {
     @Override
     public void initView(View view) {
         mRootView = view.findViewById(R.id.chat_warp_view);
-        tvExclusiveContent = view.findViewById(R.id.tv_exclusive_content);
+        tvRedPacketContent = view.findViewById(R.id.tv_red_packet_content);
         rivReceiverAvatar = view.findViewById(R.id.iv_receive_avatar);
         redPacketBgView = view.findViewById(R.id.view_red_packet_bg);
         tvStatus = view.findViewById(R.id.chat_status);
@@ -68,20 +68,16 @@ class RedViewHolder extends AChatHolderInterface {
         if ("4".equals(message.getFilePath())){
             //专属红包
             tvContent.setText("专属红包");
-            String msgTypeContent = String.format(getString(R.string.exclusive_red_packet),message.getToUserName());
-            String toUserId = message.getToUserId();
-            rivReceiverAvatar.setVisibility(View.VISIBLE);
+//            rivReceiverAvatar.setVisibility(View.VISIBLE);
+//            AvatarHelper.getInstance().displayAvatar(message.getToUserName(), message.getToUserId(),
+//                    rivReceiverAvatar, true);
 
-            AvatarHelper.getInstance().displayAvatar(toUserId, rivReceiverAvatar);
-            tvExclusiveContent.setText(msgTypeContent);
-            tvExclusiveContent.setVisibility(View.VISIBLE);
         }else {
             //普通红包,随机红包,口令红包
-            tvExclusiveContent.setVisibility(View.INVISIBLE);
-            rivReceiverAvatar.setVisibility(View.INVISIBLE);
+//            rivReceiverAvatar.setVisibility(View.INVISIBLE);
             tvContent.setText(charSequence);
         }
-
+        setRedPacketContent(message);
 
         if (mdata.getFileSize() == 2) {// 已领取
             mRootView.setAlpha(0.6f);
@@ -100,6 +96,21 @@ class RedViewHolder extends AChatHolderInterface {
             }
         });
     }
+    private void setRedPacketContent(ChatMessage message){
+        String redPacketType = message.getFilePath();
+        String text = "";
+        switch (redPacketType){
+            case "3":
+                text = "口令红包";
+                break;
+            case "4":
+                text = String.format(getString(R.string.exclusive_red_packet),message.getToUserName());
+                break;
+            default:
+                break;
+        }
+        tvRedPacketContent.setText(text);
+    }
 
     @Override
     public boolean isOnClick() {
@@ -156,8 +167,12 @@ class RedViewHolder extends AChatHolderInterface {
                                 mContext.startActivity(intent);
                             } else {
                                 // 在群里面我领取过的红包直接跳转
+                                List<String > assignUserIdList = openRedpacket.getPacket().getAssignUserIds();
+                                String assignUserId = "";
+                                if (assignUserIdList!=null && assignUserIdList.size()>0){
+                                    assignUserId = assignUserIdList.get(0);
+                                }
 
-                                String assignUserId = openRedpacket.getPacket().getAssignUserId();
                                 if (isGounp && ( mdata.getFileSize() != 1 || (!TextUtils.isEmpty(assignUserId) &&!mLoginUserId.equals(assignUserId)))) {
                                     mContext.startActivity(intent);
                                 } else {

+ 1 - 1
jixin/src/main/res/layout/chat_from_item_redpacket.xml

@@ -41,7 +41,7 @@
         android:layout_width="@dimen/chat_width_red"
         android:layout_below="@+id/nick_name"
         android:id="@+id/chat_warp_view"
-        android:layout_height="@dimen/chat_height_red"
+        android:layout_height="wrap_content"
         android:layout_marginTop="@dimen/chat_head_top"
         android:layout_toStartOf="@id/chat_head_iv"/>
 

+ 4 - 2
jixin/src/main/res/layout/include_chat_item_red_packet.xml

@@ -54,17 +54,19 @@
         app:riv_oval="true"
         android:layout_alignBottom="@+id/view_red_packet_bg"
         android:layout_marginBottom="8dp"
+        android:src="@color/white"
+        android:visibility="invisible"
         android:layout_centerHorizontal="true"
         android:layout_height="21dp" />
     <TextView
-        android:id="@+id/tv_exclusive_content"
+        android:id="@+id/tv_red_packet_content"
         android:layout_width="wrap_content"
         android:maxWidth="96dp"
         android:textColor="#656565"
         android:textSize="7sp"
         android:layout_marginStart="8dp"
         android:text="给小林子,重重的专属红包"
-
+        android:visibility="visible"
         android:ellipsize="end"
         android:padding="3dp"
         android:background="@drawable/shape_exclusive_bg_radius_5"

+ 1 - 1
jixin/src/main/res/layout/view_stub_red_packet_count_part.xml

@@ -35,7 +35,7 @@
 
             android:textColor="#ff462f"
             android:textColorHint="#999999"
-            android:textSize="24sp" />
+            android:textSize="18sp" />
 
         <TextView
             android:id="@+id/tv_individual"

+ 2 - 2
jixin/src/main/res/values/dimens.xml

@@ -157,8 +157,8 @@
 
     <!-- CHATCONTENT -->
     <dimen name="chat_form_info_width">220dp</dimen>
-    <dimen name="chat_width_red">103dp</dimen>
-    <dimen name="chat_height_red">130dp</dimen>
+    <dimen name="chat_width_red">132dp</dimen>
+    <dimen name="chat_height_red">168dp</dimen>
     <dimen name="chat_state_top">2dp</dimen>
     <dimen name="chat_text_size">13sp</dimen>
     <dimen name="message_fire_padding">4dp</dimen>