فهرست منبع

红包的修改

jixionghui 4 سال پیش
والد
کامیت
4fd7f2df2a

BIN
skWeiChatBaidu/release/skWeiChatBaidu-release.apk


+ 37 - 0
skWeiChatBaidu/src/main/java/com/liaobo/im/bean/message/ChatMessage.java

@@ -61,6 +61,8 @@ public class ChatMessage extends XmppMessage implements Parcelable {
 
             message.fromId = source.readString();
             message.toUserId = source.readString();
+            message.assignUserId = source.readString();
+            message.toUserName = source.readString();
             return message;
         }
 
@@ -161,6 +163,29 @@ public class ChatMessage extends XmppMessage implements Parcelable {
     @DatabaseField
     private String toId;
 
+    @DatabaseField
+    private String assignUserId;    //指定人ID
+
+
+    @DatabaseField
+    private String toUserName;    //指定人名称
+
+    public String getToUserName() {
+        return toUserName;
+    }
+
+    public void setToUserName(String toUserName) {
+        this.toUserName = toUserName;
+    }
+
+    public String getAssignUserId() {
+        return assignUserId;
+    }
+
+    public void setAssignUserId(String assignUserId) {
+        this.assignUserId = assignUserId;
+    }
+
     // 消息到期时间(当前时间+消息保存天数=到期时间)
     @DatabaseField
     private long deleteTime;
@@ -534,6 +559,8 @@ public class ChatMessage extends XmppMessage implements Parcelable {
             filePath = getStringValueFromJSONObject(jObject, "fileName");// 增加解析文件路径
             objectId = getStringValueFromJSONObject(jObject, "objectId");
             packetId = getStringValueFromJSONObject(jObject, "messageId");
+            assignUserId = getStringValueFromJSONObject(jObject, "assignUserId");
+            toUserName =  getStringValueFromJSONObject(jObject, "toUserName");
             // TODO 3. 0.正常1.阅后即焚0.未加密1.加密
             isReadDel = getIsEncrype(jObject, "isReadDel");
             isEncrypt = getIsEncrype(jObject);
@@ -600,6 +627,14 @@ public class ChatMessage extends XmppMessage implements Parcelable {
         if (this.timeLen > 0) {
             object.put("timeLen", this.timeLen);
         }
+        if (!TextUtils.isEmpty(this.toUserName)){
+            object.put("toUserName", this.toUserName);
+        }
+
+        if (!TextUtils.isEmpty(this.assignUserId)){
+            object.put("assignUserId", this.assignUserId);
+        }
+
 
         msg = object.toString();
         return msg;
@@ -652,6 +687,8 @@ public class ChatMessage extends XmppMessage implements Parcelable {
 
         dest.writeString(fromId);
         dest.writeString(toUserId);
+        dest.writeString(assignUserId);
+        dest.writeString(toUserName);
     }
 
     public ChatMessage clone(boolean isGroupChat) {

+ 27 - 0
skWeiChatBaidu/src/main/java/com/liaobo/im/bean/redpacket/OpenRedpacket.java

@@ -59,6 +59,33 @@ public class OpenRedpacket implements Serializable {
         private String receivedRemark;
         private String toUserId;
         private List<String> userIds;
+        private String rommJid;
+        private int userRedType;
+        private String assignUserId;
+
+        public String getRommJid() {
+            return rommJid;
+        }
+
+        public void setRommJid(String rommJid) {
+            this.rommJid = rommJid;
+        }
+
+        public int getUserRedType() {
+            return userRedType;
+        }
+
+        public void setUserRedType(int userRedType) {
+            this.userRedType = userRedType;
+        }
+
+        public String getAssignUserId() {
+            return assignUserId;
+        }
+
+        public void setAssignUserId(String assignUserId) {
+            this.assignUserId = assignUserId;
+        }
 
         public String getReceivedRemark() {
             return receivedRemark;

+ 1 - 1
skWeiChatBaidu/src/main/java/com/liaobo/im/db/SQLiteHelper.java

@@ -32,7 +32,7 @@ import java.sql.SQLException;
 
 public class SQLiteHelper extends OrmLiteSqliteOpenHelper {
     public static final String DATABASE_NAME = "shiku.db";
-    private static final int DATABASE_VERSION = 10;
+    private static final int DATABASE_VERSION = 11;
 
     // public static final String DATABASE_PATH = Config.SDCARD_PATH +
     // File.separator + "shiku" + File.separator + "shiku.db";

+ 2 - 1
skWeiChatBaidu/src/main/java/com/liaobo/im/db/SQLiteRawUtil.java

@@ -42,7 +42,8 @@ public class SQLiteRawUtil {
                 "isReadDel INTEGER,isEncrypt INTEGER," +
                 "fromId VARCHAR,toId VARCHAR," +
                 "isExpired INTEGER," +
-                "reSendCount INTEGER,readPersons INTEGER,readTime INTEGER)";
+                "reSendCount INTEGER,readPersons INTEGER,readTime INTEGER," +
+                "assignUserId VARCHAR, toUserName VARCHAR)";
         return sql;
     }
 

+ 1 - 1
skWeiChatBaidu/src/main/java/com/liaobo/im/fragment/MeFragment.java

@@ -18,6 +18,7 @@ import com.liaobo.im.bean.User;
 import com.liaobo.im.broadcast.OtherBroadcast;
 import com.liaobo.im.course.LocalCourseActivity;
 import com.liaobo.im.db.InternationalizationHelper;
+import com.liaobo.im.db.SQLiteHelper;
 import com.liaobo.im.db.dao.FriendDao;
 import com.liaobo.im.db.dao.UserDao;
 import com.liaobo.im.helper.AvatarHelper;
@@ -181,7 +182,6 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
             case R.id.info_rl:
                 // 我的资料
 //                startActivityForResult(new Intent(getActivity(), BasicInfoEditActivity.class), 1);
-
                 startActivityForResult(new Intent(getActivity(), MyInfoActivity.class), 1);
                 break;
             case R.id.my_monry:

+ 11 - 0
skWeiChatBaidu/src/main/java/com/liaobo/im/fragment/MucSendPacketFragment.java

@@ -32,6 +32,7 @@ public class MucSendPacketFragment extends EasyFragment {
     private static final String TAG = MucSendPacketFragment.class.getSimpleName();
     private int redPacketType;
     private String mReceiverId;
+    private String toUserName;
     private String mRoomId;
 
     private EditText editRedPacketCount, editMoneyAmount, edtWishText;
@@ -126,6 +127,8 @@ public class MucSendPacketFragment extends EasyFragment {
                 RoomMember roomMember =(RoomMember) data.getSerializableExtra("selectReceiver");
                 tvReceiver.setText(roomMember.getUserName());
                 mReceiverId = roomMember.getUserId();
+                toUserName = roomMember.getUserName();
+                editRedPacketCount.setText("1");
 
             }
         }
@@ -177,6 +180,9 @@ public class MucSendPacketFragment extends EasyFragment {
         String money = editMoneyAmount.getText().toString();
         String count = editRedPacketCount.getText().toString();
         String textWish = edtWishText.getText().toString();
+        if (TextUtils.isEmpty(textWish)){
+            textWish = getString(R.string.best_wishes);
+        }
         if (eqData(money,count,textWish)){
             PayPasswordVerifyDialog dialog = new PayPasswordVerifyDialog(getContext());
             dialog.setAction(getString(R.string.chat_redpacket));
@@ -194,9 +200,14 @@ public class MucSendPacketFragment extends EasyFragment {
                 bundle.putString("words", finalWords);
                 // 拼手气与普通红包位置对调,修改type
                 // bundle.putString("type", (item + 1) + "");
+
+                if (!TextUtils.isEmpty(mReceiverId)){
+                    redPacketType=4;
+                }
                 bundle.putString("type",  redPacketType+"");
                 bundle.putString("receiver",mReceiverId);
                 bundle.putString("payPassword", password);
+                bundle.putString("toUserName",toUserName);
                 int resultCode = ChatActivity. REQUEST_CODE_SEND_RED_PT;
                 if (redPacketType==1){
                     resultCode =ChatActivity. REQUEST_CODE_SEND_RED_PT;

+ 8 - 1
skWeiChatBaidu/src/main/java/com/liaobo/im/ui/me/redpacket/RedDetailsActivity.java

@@ -2,6 +2,7 @@ package com.liaobo.im.ui.me.redpacket;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.Html;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -117,7 +118,13 @@ public class RedDetailsActivity extends BaseActivity implements View.OnClickList
             list = new ArrayList<>();
         }
         AvatarHelper.getInstance().displayAvatar(packetEntity.getUserName(), packetEntity.getUserId(), red_head_iv, true);
-        red_nickname_tv.setText(getString(R.string.someone_s_red_packet_place_holder, packetEntity.getUserName()));
+        if (!TextUtils.isEmpty(packetEntity.getAssignUserId())){
+            red_nickname_tv.setText(Html.fromHtml(packetEntity.getUserName()+"<font color='#ff0000'>"+getString(R.string.exclusive_red_packet2)+"</font>"));
+
+        }else {
+            red_nickname_tv.setText(getString(R.string.someone_s_red_packet_place_holder, packetEntity.getUserName()));
+        }
+
         red_words_tv.setText(packetEntity.getGreetings());
 
         boolean isReceivedSelf = false;

+ 2 - 4
skWeiChatBaidu/src/main/java/com/liaobo/im/ui/message/ChatActivity.java

@@ -1495,7 +1495,7 @@ public class ChatActivity extends BaseActivity implements
         sendMessage(message);
     }
 
-    public void sendRed(final String type, String money, String count, final String words, String payPassword,String receiverId) {
+    public void sendRed(final String type, String money, String count, final String words, String payPassword) {
         if (isAuthenticated()) {
             return;
         }
@@ -1505,7 +1505,6 @@ public class ChatActivity extends BaseActivity implements
         params.put("moneyStr", money);
         params.put("count", count);
         params.put("greetings", words);
-        params.put("assignUserId",receiverId);
         params.put("toUserId", mFriend.getUserId());
 
         HttpUtils.get().url(coreManager.getConfig().REDPACKET_SEND)
@@ -1817,13 +1816,12 @@ public class ChatActivity extends BaseActivity implements
                     if (data != null && data.getExtras() != null) {
                         Bundle bundle = data.getExtras();
                         String money = bundle.getString("money"); // 金额
-                        String receiverId = bundle.getString("receiver");   //指定人Id
                         // 口令或者祝福语
                         String words = resultCode == REQUEST_CODE_SEND_RED_PT ? bundle.getString("greetings") : bundle.getString("password");
                         String count = bundle.getString("count"); // 数量
                         String type = bundle.getString("type");   // 类型
                         String payPassword = bundle.getString("payPassword");   // 支付密码,
-                        sendRed(type, money, count, words, payPassword,receiverId);
+                        sendRed(type, money, count, words, payPassword);
                     }
                     break;
                 default:

+ 15 - 9
skWeiChatBaidu/src/main/java/com/liaobo/im/ui/message/MucChatActivity.java

@@ -1548,7 +1548,7 @@ public class MucChatActivity extends BaseActivity implements
      * @param count 数量
      * @param words 祝福语(或者口令)
      */
-    public void sendRed(String type, String money, String count, String words, String payPassword,String assignUserId,String secret) {
+    public void sendRed(String type, String money, String count, String words, String payPassword,String assignUserId,String secret,String toUserName) {
         /**
          * 步骤
          * 1.调发红包的接口,发送一个红包
@@ -1563,6 +1563,7 @@ public class MucChatActivity extends BaseActivity implements
         if ("3".equals(type)){
             params.put("secret", secret);
         }
+
         params.put("moneyStr", money);
         params.put("count", count);
         params.put("greetings", words);
@@ -1588,6 +1589,8 @@ public class MucChatActivity extends BaseActivity implements
                             message.setDoubleTimeSend(TimeUtils.sk_time_current_time_double());
                             message.setContent(redPacket.getGreetings()); // 祝福语
                             message.setObjectId(objectId); // 红包id
+                            message.setAssignUserId(assignUserId);
+                            message.setToUserName(toUserName);
                             message.setFilePath(redPacket.getType() + "");// 用FilePath来储存红包类型
                             // 群组发送普通红包
                             message.setFileSize(redPacket.getStatus());   // 用filesize来储存红包状态
@@ -1990,14 +1993,17 @@ public class MucChatActivity extends BaseActivity implements
                 case ChatActivity.REQUEST_CODE_SEND_RED:
                     if (data != null && data.getExtras() != null) {
                         Bundle bundle = data.getExtras();
-                        sendRed(bundle.getString("type")
-                                , bundle.getString("money")
-                                , bundle.getString("count")
-                                , bundle.getString("words")
-                                , bundle.getString("payPassword")
-                                , bundle.getString("assignUserId")
-                                , bundle.getString("secret")
-                        );
+
+                        String money = bundle.getString("money"); // 金额
+                        String receiverId = bundle.getString("receiver");   //指定人Id
+                        // 口令或者祝福语
+                        String words =  bundle.getString("words");
+                        String count = bundle.getString("count"); // 数量
+                        String type = bundle.getString("type");   // 类型
+                        String payPassword = bundle.getString("payPassword");   // 支付密码,
+                        String toUserName = bundle.getString("toUserName");
+                        sendRed(type, money, count, words, payPassword,receiverId,"",toUserName);
+
                     }
                     break;
                 default:

+ 16 - 4
skWeiChatBaidu/src/main/java/com/liaobo/im/view/chatHolder/RedViewHolder.java

@@ -33,7 +33,7 @@ class RedViewHolder extends AChatHolderInterface {
     TextView mTvContent;
     TextView mTvType;
 
-    boolean isKeyRed;
+
     private RedDialog mRedDialog;
 
     @Override
@@ -60,8 +60,20 @@ class RedViewHolder extends AChatHolderInterface {
         CharSequence charSequence = HtmlUtils.transform200SpanString(s.replaceAll("\n", "\r\n"), true);
         mTvContent.setText(charSequence);
 
-        isKeyRed = "3".equals(message.getFilePath());
-        mTvType.setText(getString(isKeyRed ? R.string.chat_kl_red : R.string.chat_red));
+
+
+        if (!TextUtils.isEmpty(message.getToUserName())&& message.getFilePath().equals("4")){
+            mTvType.setTextColor(mContext.getResources().getColor(R.color.text_select));
+            String msgTypeContent = String.format(getString(R.string.exclusive_red_packet),message.getToUserName());
+            mTvType.setText(msgTypeContent);
+        }else {
+            boolean isKeyRed = "3".equals(message.getFilePath());
+            mTvType.setText(getString(isKeyRed ? R.string.chat_kl_red : R.string.chat_red));
+            mTvType.setTextColor(mContext.getResources().getColor(R.color.Grey_500));
+        }
+
+
+
 
         mRootView.setOnClickListener(new NoDoubleClickListener() {
             @Override
@@ -118,7 +130,7 @@ class RedViewHolder extends AChatHolderInterface {
                             intent.putExtras(bundle);
 
                             // 红包不可领取, 或者我发的单聊红包直接跳转
-                            if (resultCode != 1 || (!isGounp && isMysend)) {
+                            if (resultCode != 1 || (!isGounp && isMysend) ||  (isGounp&&! mLoginUserId.equals(openRedpacket.getPacket().getAssignUserId())) ) {
                                 mContext.startActivity(intent);
                             } else {
                                 // 在群里面我领取过的红包直接跳转

+ 4 - 3
skWeiChatBaidu/src/main/res/layout/activity_redpacket.xml

@@ -8,7 +8,7 @@
     <FrameLayout
         android:layout_width="match_parent"
         android:layout_height="70dp"
-        android:background="@color/redpacket_bg">
+        android:background="#1aa8ff">
 
         <RelativeLayout
             android:layout_width="match_parent"
@@ -22,7 +22,7 @@
                 android:layout_marginLeft="10dp"
                 android:gravity="center"
                 android:text="@string/cancel"
-                android:textColor="@color/yellow"
+                android:textColor="@color/white"
                 android:textSize="15sp"/>
 
             <TextView
@@ -32,7 +32,7 @@
                 android:layout_centerInParent="true"
                 android:layout_marginLeft="10dp"
                 android:text="@string/send_red_packet"
-                android:textColor="@color/yellow"
+                android:textColor="@color/white"
                 android:textSize="17sp"/>
 
         </RelativeLayout>
@@ -43,6 +43,7 @@
         android:id="@+id/smarttablayout_redpacket"
         android:layout_width="match_parent"
         android:layout_height="40dp"
+        android:visibility="gone"
         android:background="@color/normal_bg"
         app:stl_customTabTextLayoutId="@layout/a_custom_tab"
         app:stl_defaultTabTextAllCaps="true"

+ 1 - 1
skWeiChatBaidu/src/main/res/layout/fragment_muc_send_red_packet.xml

@@ -101,7 +101,7 @@
                     android:background="#0000"
                     android:gravity="center_vertical|right"
                     android:hint="@string/input_money"
-                    android:inputType="number"
+                    android:inputType="numberDecimal"
                     android:maxLength="6"
                     android:singleLine="true"
                     android:textSize="@dimen/redpacket_text_size_label" />

+ 1 - 1
skWeiChatBaidu/src/main/res/layout/redpacket_pager_pt.xml

@@ -146,7 +146,7 @@
         android:layout_marginLeft="20dp"
         android:layout_marginRight="20dp"
         android:layout_marginTop="20dp"
-        android:background="@color/redpacket_bg"
+        android:background="@drawable/shape_send_red_packet"
         android:text="@string/btn_send_red_packet" />
 
 </RelativeLayout>

+ 12 - 0
skWeiChatBaidu/src/main/res/values-en/strings.xml

@@ -1676,4 +1676,16 @@
     <string name="all_record">All</string>
     <string name="my_red_packet">My red packet</string>
     <string name="view_auto_get_red_packet_title">Automatic receipt of red packets</string>
+
+    <string name="receiver">Receiver</string>
+    <string name="select_receiver_hint"> Please choice the receiver</string>
+    <string name="text_wish">Blessings</string>
+    <string name="modify_avatar">modify avatar</string>
+    <string name="my_details">My details</string>
+    <string name="user_location">Residence</string>
+    <string name="modify_nickname">Modify nickname</string>
+    <string name="update">Update</string>
+
+    <string name="exclusive_red_packet">Exclusive red packet for %1$1s</string>
+    <string name="exclusive_red_packet2">Exclusive red packet</string>
 </resources>

+ 12 - 0
skWeiChatBaidu/src/main/res/values-zh-rHK/strings.xml

@@ -1700,4 +1700,16 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZ`¬!"£$%^*()~=#{}[];':,./?/*-_+&#060;&#062;&#064;&#03
     <string name="all_record">所有記錄</string>
     <string name="my_red_packet">我的紅包</string>
     <string name="view_auto_get_red_packet_title">自動領取的指定紅包</string>
+
+    <string name="receiver">領取人</string>
+    <string name="select_receiver_hint">請選擇領取人</string>
+    <string name="text_wish">祝福語</string>
+    <string name="modify_avatar">修改頭像</string>
+    <string name="my_details">我的詳情</string>
+    <string name="user_location">居住地</string>
+    <string name="modify_nickname">修改昵稱</string>
+    <string name="update">更新</string>
+
+    <string name="exclusive_red_packet">%1$1s的專屬紅包</string>
+    <string name="exclusive_red_packet2">專屬紅包</string>
 </resources>

+ 12 - 0
skWeiChatBaidu/src/main/res/values-zh-rTW/strings.xml

@@ -1697,4 +1697,16 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZ`¬!"£$%^*()~=#{}[];':,./?/*-_+&#060;&#062;&#064;&#03
     <string name="all_record">所有記錄</string>
     <string name="my_red_packet">我的紅包</string>
     <string name="view_auto_get_red_packet_title">自動領取的指定紅包</string>
+
+    <string name="receiver">領取人</string>
+    <string name="select_receiver_hint">請選擇領取人</string>
+    <string name="text_wish">祝福語</string>
+    <string name="modify_avatar">修改頭像</string>
+    <string name="my_details">我的詳情</string>
+    <string name="user_location">居住地</string>
+    <string name="modify_nickname">修改昵稱</string>
+    <string name="update">更新</string>
+
+    <string name="exclusive_red_packet">%1$1s的專屬紅包</string>
+    <string name="exclusive_red_packet2">專屬紅包</string>
 </resources>

+ 4 - 1
skWeiChatBaidu/src/main/res/values/strings.xml

@@ -1,5 +1,5 @@
 <resources xmlns:tools="http://schemas.android.com/tools" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" tools:ignore="MissingTranslation">
-    <string name="app_name">视酷</string>
+    <string name="app_name">聊啵</string>
     <string name="data_exception">数据异常,请稍后重试</string>
     <string name="net_exception">网络异常,请稍后重试</string>
     <string name="please_wait">请稍等&#8230;</string>
@@ -1857,4 +1857,7 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZ`¬!"£$%^*()~=#{}[];':,./?/*-_+&#060;&#062;&#064;&#03
     <string name="user_location">居住地</string>
     <string name="modify_nickname">修改昵称</string>
     <string name="update">更新</string>
+
+    <string name="exclusive_red_packet">%1$1s的专属红包</string>
+    <string name="exclusive_red_packet2">专属红包</string>
 </resources>