From edecacff7438d00d263c9e3599de28c882665f5c Mon Sep 17 00:00:00 2001 From: guozhen <878631970@qq.com> Date: Wed, 13 Nov 2024 17:11:11 +0800 Subject: [PATCH] =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E8=BD=AC=E8=B4=A6cash,?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=89=8B=E7=BB=AD=E8=B4=B9=EF=BC=8C=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 2 +- .../java/com/dskj/rbchat/model/BillBean.java | 9 ++ .../java/com/dskj/rbchat/model/LoginBean.java | 18 ++++ .../dskj/rbchat/model/TransferMoneyBean.java | 44 ++++++++++ .../redpack/TransferAccountsActivity.java | 39 +++++++-- .../rbchat/wallet/WalletInfoFragment.java | 63 +++++++++++++- .../dskj/rbchat/welcome/WelcomeActivity.java | 2 + .../res/layout/activity_transfer_accounts.xml | 78 +++++++++++++++++- app/src/main/res/layout/item_bill_list.xml | 19 +++-- .../res/layout/layout_popwindow_feerate.xml | 32 +++++++ .../res/mipmap-xxhdpi/ic_shape_triangle.png | Bin 0 -> 518 bytes .../res/mipmap-xxhdpi/ic_shouxufei_bg.png | Bin 0 -> 3251 bytes .../ic_transfer_rateamount_bg.png | Bin 0 -> 3260 bytes .../res/mipmap-xxhdpi/ic_transfer_tips.png | Bin 0 -> 2797 bytes app/src/main/res/values-en/strings.xml | 6 ++ app/src/main/res/values-ja/strings.xml | 6 ++ app/src/main/res/values-zh/strings.xml | 8 +- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 9 +- 19 files changed, 313 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/com/dskj/rbchat/model/TransferMoneyBean.java create mode 100644 app/src/main/res/layout/layout_popwindow_feerate.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_shape_triangle.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_shouxufei_bg.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_transfer_rateamount_bg.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_transfer_tips.png diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 985ab0d..cd1f63c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -84,7 +84,7 @@ android { "\"AIzaSyB7P1o1EIA02eWoNP_7QJ9XwWe3WkSZb9k\"" ) //正式服 - manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f" //正式 + manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f" //正式 // manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a" } diff --git a/app/src/main/java/com/dskj/rbchat/model/BillBean.java b/app/src/main/java/com/dskj/rbchat/model/BillBean.java index 2b5913a..dbe66af 100644 --- a/app/src/main/java/com/dskj/rbchat/model/BillBean.java +++ b/app/src/main/java/com/dskj/rbchat/model/BillBean.java @@ -24,6 +24,15 @@ public class BillBean { private OauthAppBean oauthApp; private TaskBean dailyTask; private String coinModifyRemark; + private TransferMoneyBean transferMoneyRecord; + + public TransferMoneyBean getTransferMoneyRecord() { + return transferMoneyRecord; + } + + public void setTransferMoneyRecord(TransferMoneyBean transferMoneyRecord) { + this.transferMoneyRecord = transferMoneyRecord; + } public String getCoinModifyRemark() { return coinModifyRemark; diff --git a/app/src/main/java/com/dskj/rbchat/model/LoginBean.java b/app/src/main/java/com/dskj/rbchat/model/LoginBean.java index 363ef1c..4fb42b6 100644 --- a/app/src/main/java/com/dskj/rbchat/model/LoginBean.java +++ b/app/src/main/java/com/dskj/rbchat/model/LoginBean.java @@ -31,6 +31,24 @@ public class LoginBean extends RosterElementEntity { private Integer isFollow; private Integer allowGiftCoin; private Integer isBiz = 0; + private float cashFeeRate; //cash费率 + private float silverFeeRate;//积分费率 + + public float getCashFeeRate() { + return cashFeeRate; + } + + public void setCashFeeRate(float cashFeeRate) { + this.cashFeeRate = cashFeeRate; + } + + public float getSilverFeeRate() { + return silverFeeRate; + } + + public void setSilverFeeRate(float silverFeeRate) { + this.silverFeeRate = silverFeeRate; + } public Integer getAllowGiftCoin() { return allowGiftCoin; diff --git a/app/src/main/java/com/dskj/rbchat/model/TransferMoneyBean.java b/app/src/main/java/com/dskj/rbchat/model/TransferMoneyBean.java new file mode 100644 index 0000000..dac193d --- /dev/null +++ b/app/src/main/java/com/dskj/rbchat/model/TransferMoneyBean.java @@ -0,0 +1,44 @@ +package com.dskj.rbchat.model; + +/** + * 转账记录 + */ +public class TransferMoneyBean { + + private long feeAmount; + private int coinType; + private int payVerifyType; + private int receiptType; + + public long getFeeAmount() { + return feeAmount; + } + + public void setFeeAmount(long feeAmount) { + this.feeAmount = feeAmount; + } + + public int getCoinType() { + return coinType; + } + + public void setCoinType(int coinType) { + this.coinType = coinType; + } + + public int getPayVerifyType() { + return payVerifyType; + } + + public void setPayVerifyType(int payVerifyType) { + this.payVerifyType = payVerifyType; + } + + public int getReceiptType() { + return receiptType; + } + + public void setReceiptType(int receiptType) { + this.receiptType = receiptType; + } +} diff --git a/app/src/main/java/com/dskj/rbchat/redpack/TransferAccountsActivity.java b/app/src/main/java/com/dskj/rbchat/redpack/TransferAccountsActivity.java index 51d543a..6843b63 100644 --- a/app/src/main/java/com/dskj/rbchat/redpack/TransferAccountsActivity.java +++ b/app/src/main/java/com/dskj/rbchat/redpack/TransferAccountsActivity.java @@ -55,6 +55,7 @@ import com.netease.yunxin.kit.contactkit.ui.utils.ColorUtils; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.provider.FetchCallback; +import java.text.DecimalFormat; import java.util.HashMap; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -64,10 +65,11 @@ public class TransferAccountsActivity extends BaseActivity { LoginBean u; WalletBean walletBean; - int number = 0; + int number = 0; //总金额 PayCashFingerDialog payCashFingerDialog; PayCashDialog payDialog; private boolean isJinBi = false; + private float feeRate;//费率 private ActivityTransferAccountsBinding viewBinding; @@ -79,6 +81,7 @@ public class TransferAccountsActivity extends BaseActivity { viewBinding = ActivityTransferAccountsBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); isJinBi = getIntent().getBooleanExtra("type", isJinBi); + feeRate = isJinBi ? DataUtils.getLocUserInfo().getCashFeeRate() : DataUtils.getLocUserInfo().getSilverFeeRate(); initView(); initListeners(); } @@ -89,9 +92,8 @@ public class TransferAccountsActivity extends BaseActivity { protected void initView() { viewBinding.contactListActivityTitleBar.getBackImageView().setImageResource(R.mipmap.dialog_colose_img); viewBinding.contactListActivityTitleBar.getBackImageView().setOnClickListener(v -> finish()); - viewBinding.ivJinbiType.setImageResource(isJinBi?R.mipmap.wallet_jinbi_img:R.mipmap.wallet_yinbi_img); + viewBinding.ivJinbiType.setImageResource(isJinBi ? R.mipmap.wallet_jinbi_img : R.mipmap.wallet_yinbi_img); // u = lu1(); - // 设置标题(自定义标题栏后的title文本设置是不同的哦,见CustomeTitleBar中的说明) this.setTitle(getString(R.string.zhuanzhang_txt)); viewBinding.tvLogin.setOnClickListener(new View.OnClickListener() { @@ -146,7 +148,7 @@ public class TransferAccountsActivity extends BaseActivity { return; } - number = Integer.parseInt(viewBinding.numberHintEt.getText().toString().trim()); + number = Integer.parseInt(viewBinding.totaljineTv.getText().toString().trim()); // if(DataUtils.get(TransferAccountsActivity.this, "hasMianMi", false)){ // toChange(null, number,2); @@ -335,7 +337,7 @@ public class TransferAccountsActivity extends BaseActivity { private void toChange(String password, long number, int type) { hideSoftInput(this); HashMap maps = new HashMap<>(); - maps.put("amount", (int) (number * 100)); + maps.put("amount", (Integer.parseInt(viewBinding.numberHintEt.getText().toString())) * 100); maps.put("senderUid", Integer.parseInt(IMKitClient.account())); maps.put("receiverUid", Integer.parseInt(getIntent().getStringExtra("receiverUid"))); if (!TextUtils.isEmpty(password)) { @@ -348,6 +350,8 @@ public class TransferAccountsActivity extends BaseActivity { maps.put("substationId", IMUIKitConfig.SUBSTATIONID); maps.put("payVerifyCode", type); maps.put("receiptType", 1); + maps.put("feeAmount", (Integer.parseInt(viewBinding.shouxufeiTv.getText().toString())) * 100); //手续费金额 + maps.put("feeRate", feeRate); //费率 Api.getInstance().transferMoney(maps) .subscribeOn(Schedulers.io()) @@ -488,9 +492,10 @@ public class TransferAccountsActivity extends BaseActivity { @Override public void afterTextChanged(Editable s) { - changeInfo(); changeStatus(); + changeShouxuFei(s.toString()); + } }); @@ -506,6 +511,28 @@ public class TransferAccountsActivity extends BaseActivity { } + private void changeShouxuFei(String inputStr) { + if (TextUtils.isEmpty(inputStr)) { + viewBinding.shouxufeiTv.setText(""); + viewBinding.totaljineTv.setText(""); + viewBinding.layoutTips.setVisibility(View.GONE); + return; + } + int inputAmount = Integer.parseInt(inputStr); + int shouxufei = (int)(Math.ceil(inputAmount * feeRate)); + int rateAmount = inputAmount+shouxufei; + viewBinding.shouxufeiTv.setText(String.valueOf(shouxufei)); + viewBinding.totaljineTv.setText(String.valueOf(rateAmount)); + int currentYue = (int) (Math.floor(isJinBi ? (walletBean.getGoldCoin() / 100f) : (walletBean.getSilverCoin() / 100f))); + if (rateAmount > currentYue) { + viewBinding.layoutTips.setVisibility(View.VISIBLE); + viewBinding.totaljineTipsTv.setText(isJinBi ? getString(R.string.cashbuzu_txt) : getString(R.string.lipinjifenbuzu_txt)); + } else { + viewBinding.layoutTips.setVisibility(View.GONE); + } + } + + private void changeTop() { if (isJinBi) { viewBinding.jinbiLy.setBackgroundResource(R.drawable.logout_btn_main1); diff --git a/app/src/main/java/com/dskj/rbchat/wallet/WalletInfoFragment.java b/app/src/main/java/com/dskj/rbchat/wallet/WalletInfoFragment.java index 38c00cc..8b407b2 100644 --- a/app/src/main/java/com/dskj/rbchat/wallet/WalletInfoFragment.java +++ b/app/src/main/java/com/dskj/rbchat/wallet/WalletInfoFragment.java @@ -1,17 +1,27 @@ package com.dskj.rbchat.wallet; +import static android.widget.RelativeLayout.END_OF; +import static android.widget.RelativeLayout.START_OF; + +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.PopupWindow; +import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.text.HtmlCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -47,6 +57,7 @@ import com.netease.nimlib.sdk.uinfo.UserService; import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; import com.netease.yunxin.kit.common.ui.fragments.BaseFragment; import com.netease.yunxin.kit.common.ui.utils.TimeFormatUtils; +import com.netease.yunxin.kit.common.utils.SizeUtils; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.scwang.smart.refresh.layout.SmartRefreshLayout; @@ -261,15 +272,24 @@ public class WalletInfoFragment extends BaseFragment { commonAdapter = new CommonAdapter(getContext(), R.layout.item_bill_list, titles) { @Override public void convert(ViewHolder holder, BillBean s, int index) { + boolean isShowRate; // holder.setText(R.id.price_tv, AppUtils.getQian(s.getAmount()) + (status == 0 ? getString(R.string.species_txt) : // getString(R.string.silver_coins_txt))); - holder.setText(R.id.price_tv, AppUtils.getQian(s.getAmount())); TextView textView = holder.getView(R.id.price_tv); + textView.setText(AppUtils.getQian(s.getAmount())); + RelativeLayout layoutroot = holder.getView(R.id.big_bg); if (s.getAmount() < 0) { textView.setTextColor(getResources().getColor(R.color.black)); } else { textView.setTextColor(getResources().getColor(R.color.black)); } + if (s.getTransferMoneyRecord() != null && s.getTransferMoneyRecord().getFeeAmount() != 0) { + isShowRate = true; + textView.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.mipmap.ic_transfer_tips), null, null, null); + } else { + isShowRate = false; + textView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); + } TextView statusTv = holder.getView(R.id.status_tv); statusTv.setVisibility(View.GONE); if (status == 0) { @@ -289,8 +309,11 @@ public class WalletInfoFragment extends BaseFragment { holder.setText(R.id.time_tv, TimeFormatUtils.formatMillisecond(getActivity(), Long.parseLong(s.getCreateTimestamp()))); } - holder.getView(R.id.big_bg).setOnClickListener(v -> { - + layoutroot.setOnClickListener(v -> { + //弹窗 + if (isShowRate) { + showPopWindow(textView, s.getTransferMoneyRecord().getFeeAmount(), s.getTransferMoneyRecord().getCoinType()); + } }); ((ImageView) holder.getView(R.id.logo_iv)).setImageResource(getTypeRes(s)); @@ -299,6 +322,40 @@ public class WalletInfoFragment extends BaseFragment { binding.recyclerview.setAdapter(commonAdapter); } + private void showPopWindow(TextView itemView, long feeamount, int type) { + View popView = LayoutInflater.from(getContext()).inflate(R.layout.layout_popwindow_feerate, null); + PopupWindow popupWindow = new PopupWindow(popView, + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + true); + TextView tvValue = popView.findViewById(R.id.tv_transfer_txt); + ImageView ivTop = popView.findViewById(R.id.iv_poptop); + if (type == 0) { + tvValue.setText(HtmlCompat.fromHtml(String.format(getString(R.string.shouxufeitips_jinbi_txt), feeamount / 100), HtmlCompat.FROM_HTML_MODE_LEGACY)); + } else { + tvValue.setText(HtmlCompat.fromHtml(String.format(getString(R.string.shouxufeitips_yinbi_txt), feeamount / 100), HtmlCompat.FROM_HTML_MODE_LEGACY)); + } + RelativeLayout.LayoutParams paramsiv = (RelativeLayout.LayoutParams) ivTop.getLayoutParams(); + paramsiv.setMargins(0, 0, itemView.getWidth(), 0); + ivTop.setLayoutParams(paramsiv); + // 设置背景来实现阴影效果 + popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + // 设置阴影的透明度 + WindowManager.LayoutParams layoutParams = getActivity().getWindow().getAttributes(); + layoutParams.alpha = 0.7f; // 设置背景透明度(0.0到1.0,1.0是完全不透明) + getActivity().getWindow().setAttributes(layoutParams); + +// 添加弹窗关闭时恢复透明度的监听器 + popupWindow.setOnDismissListener(() -> { + WindowManager.LayoutParams params = getActivity().getWindow().getAttributes(); + params.alpha = 1.0f; // 恢复为不透明 + getActivity().getWindow().setAttributes(params); + }); + popupWindow.setOutsideTouchable(true); + popupWindow.showAsDropDown(itemView, 0, 0); + + } + private String getStatusTxt(WithdrawCashBean withdrawCashRecord) { //0 未处理,1 客服审核通过,2 已打款,3 拒绝 switch (withdrawCashRecord.getStatus()) { diff --git a/app/src/main/java/com/dskj/rbchat/welcome/WelcomeActivity.java b/app/src/main/java/com/dskj/rbchat/welcome/WelcomeActivity.java index c3f4dff..36bddb8 100644 --- a/app/src/main/java/com/dskj/rbchat/welcome/WelcomeActivity.java +++ b/app/src/main/java/com/dskj/rbchat/welcome/WelcomeActivity.java @@ -317,6 +317,8 @@ public class WelcomeActivity extends BaseActivity { loginBean.setAccessToken(feedbackResp.data.getAccessToken()); loginBean.setAllowGiftCoin(feedbackResp.data.getUser().getAllowGiftCoin()); loginBean.setIsBiz(feedbackResp.data.getUser().getIsBiz()); + loginBean.setCashFeeRate(feedbackResp.data.getCashFeeRate()); + loginBean.setSilverFeeRate(feedbackResp.data.getSilverFeeRate()); DataUtils.set(WelcomeActivity.this, "login_bean", GsonUtils.beanToJSONString(loginBean)); new Handler().postDelayed(() -> loginIM(account, token), 3000); diff --git a/app/src/main/res/layout/activity_transfer_accounts.xml b/app/src/main/res/layout/activity_transfer_accounts.xml index 8da636c..1de6707 100644 --- a/app/src/main/res/layout/activity_transfer_accounts.xml +++ b/app/src/main/res/layout/activity_transfer_accounts.xml @@ -206,16 +206,90 @@ android:layout_marginLeft="@dimen/dp_30" android:layout_marginTop="@dimen/dp_4" android:layout_marginRight="@dimen/dp_30" - android:gravity="right" + android:gravity="end" android:textColor="@color/color_999999" android:textSize="14sp" /> + + + + + + + + + + + + + + + + + + + + @@ -63,34 +63,35 @@ android:text="长沙市天心区叮叮商场店" android:textColor="#3D3D3D" android:textSize="@dimen/sp_14" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_popwindow_feerate.xml b/app/src/main/res/layout/layout_popwindow_feerate.xml new file mode 100644 index 0000000..53c1b41 --- /dev/null +++ b/app/src/main/res/layout/layout_popwindow_feerate.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_shape_triangle.png b/app/src/main/res/mipmap-xxhdpi/ic_shape_triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..768ba8c91a471162faf26832c73369edbdeec0ec GIT binary patch literal 518 zcmV+h0{Q)kP)fa00001b5ch_0Itp) z=>Px$z)3_wR9HvVmpxAuQ5c1vQ(*K@5ejU?MoCCSNeqcvm`I@oAfS9ofdwWu#u$Pk zkpyUf1`Fbk0@UKjC9`C+%QAB>cT9HLJ@5Ir@64H5QNv~X7Vr#s2OI+*fkjEbbIU0= zVc@g94ve&Lf0pzlw_f%Dw)cR64o3GS-OU*yTL9ZPi(6&1#NZd;xunw^L2?H820W~2 zYD3bair6b*SpwKT1o|Tl{giY&a;6P_tpG*ad;(HWGi>dtq?6Pj*A1`@+)ouR=5{0v zrg9_&upQ=(fZkN$mbqVNe0`D}%NHHM_6^`GFcd3Rg5L`74oQDvcvAv=2Oh+TL|`{1 z4M*UK3SfI5xDz9gfIX1Z=|z~;jMZ2 z(hb;N1zyCe)QtZiX{=S_vJET(lQo-3rJt4bwrvAVx6OF*H!xM;f6PrtT5fp0*nsVD z>f!Xe;d(7;DHuHuV0#Lf?*`{h9;YQOgt`e8HQQz88+PCP1Hv4Mlkji8#{d8T07*qo IM6N<$g5CM!+5i9m literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_shouxufei_bg.png b/app/src/main/res/mipmap-xxhdpi/ic_shouxufei_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1fca53d5b4f5ae8f543b28998d305589bb9b4db7 GIT binary patch literal 3251 zcmeHK`!`$Z8jgs%Rzeibnuh5|>icrKO0dqLR8y8A5_Np<~Xr&R=lW>MwhLYk%MOe$V^7&wii1GtN5O z@0CHwfIy(Vjt*E?5J;RZ8v9G_5nVgWmz_m7u}D{Y42af^{*j?e? z9{VN7`J?+KOJk93X$5vtvj2We4Uov99YvkHMtC@rjwsg!5nSouPm=EJRDbbMO^EJ8 zr2(ir3!DkzrRn?Iext0QgHhQ#o*V0Z;p+pEY`o766B2v4H8P@@d=cI=DrEM=nOU>* zjI|r2U3Vi;Pw%X&P9`)6dV1_b zla$XyhN4-dDm%4gZM~#b58<>z##NRQuH<7RhtEwy&&Gqg2qXI3*nD+g@ zos3r1?k>B2UxhT;Y9DnDwLNd3r z1allrC}hAEED4RvRwFJ!S;L;XEVZWUCz`vCcN=GT5o2^7R#&!QX7SFq;^Dxof0kIG zUyrRrE7NPw6HiPM@aCWC_?$2D_H!l!##zgl9SGM`4#>S+KYAO8GyTXP#iDuhcIV}C zQFN4i&M5_8^y3iuYEkrvvgpfnSUeIwUAzmwCPDlPin#=TTRyr4y>I-991!{@2OKx& z2erRfVlSeuuB12ancZBGCvxpml)%=2$>~I{@WpIcK+~ob`YZedtBFQmn#;+#tiTOdpew}vnd-py2)ytv z=Vl+%c8X~m#$*Vv*-IW8ePyL)W(QJFo*pYrmHC>wyVZq&=*&i7hWQctwGWE9(E%-4@Z33c<}`!m%+KcCM12 zqwFbzQSObWX+sIiyoi@kC8Vn#ek!Y!{B9pd3%HGtC>>>?(A?XiDp%sv+369^r;MZx zHPG?;X@h>5z6;)ASLZ+aT46s|a!2a&x`t*dy$gP%`Hb|w_4O&QDn1Q{maZ;s>g+YS z1l@@GRXpbXuG|j(Fen>VlAWMsVGJEb1cl4cN4$vWDr{M#b4ugKHcTq8q<4G?rtKu$ z?Lfo&zgjC>%+iNm=U@88ET&0$g6m_S4-^L#L3r_IqAM!|&wW8D=19}?+=zwUOY-=N zi%1hE0BQnPB^Vly$W>#T*TyOaEb(}69oCkKGiQ<|k818>qyw@^b~ezfI}x5fRGS}; zWATsLzS0LuO6n%cF#AxVImI)yGBubP0G zs;$kn%l6B?Ij#Po0%>vz08I=mA$3oQ9H>!mT;dRyIMq9|T%47YB$ls31_pyvD9tRZ zn+iXSz=VY}-IlP_llk%mhjw8HLoQy@*sNJ*o3b`h7Hna_ab0StmLlM7O0mfY&$-NH z=+_ZtYhbjk`uqfQ&QMU56iF;=8sS$|phg`OQLe-Xt$cJluq3MT~zZP&5$Jw}Lp*T)vpI}Wgw z0~JSjkfEB(5jBKOa|?=#^y6dBgks>5vqYP^uZ$4Pf<-|`%!GIihg4aKIqGo;*bk)K z4;vc8jgSqaX+v#+v>0u{22al9G@u=cfv-!wbA}yUPb90$=i|X_W3-;)o(2t|J-mSQXp?@^M6&qyZG#>-)*2^h=APR7=r)Q@fT)R z(4o;ARm^uoOX!v;?qVX#rVMVRcA`M}mT$0E(qWc!aVw2x32*#emj3&9vgua9#Wwz) z64TS_f`hP?u8k{BA#NX);jxygS-X>2^QusMyx zZn~Lp+qeT0HSvkH8$u>#w)=WSH|4yaH9TbfE^$>b$qggr;+!s7QrOVCo?Yq=AecTU w;i~L1IXKpV(#Q$E5&w;scH(5^M#Z{HLTR;Q5Y@_D^cMnhv~$MNF#bRN2jvMz@Bjb+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_transfer_rateamount_bg.png b/app/src/main/res/mipmap-xxhdpi/ic_transfer_rateamount_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f6895f116135e4bad38e71ce61ccccb63abdbe15 GIT binary patch literal 3260 zcmeHK{Xf%dAD@LrWQG=bZVM+(Yw|4fyf11vgjPt$Bvi^%L+o&8lRS)rc|LhoDh=t3 zgAAR!j5CGZEaI-yB91()Nbc{}Isd}_)A{B5{a)Agd3ay%>+^YEuP@#6gsY;whCBoU zQ3ME1-Vlfs9sJIL$%0R%6$4f9C3V%?)d6ykt0{y)6yg9Ud!K~B4}#>onxSfg%hOVA zslhE+mn@eTnIUJY*UZWW?jVvW`!dj6?Y?^84P><wPc$+YGLY>pb2=vP*vukjc)eVjPXUpNbD65t%(>xH%4hpjI+)ZKaZ~qDMB@uH_ z^A?&^rm8NAe1%`UY5{$@XVljb<2|mmzRBR8oo~b-2ZtU)^svwF3{H(gU#dGrVw>HO z!zQ2X+txVh{l&Qjk4UMx=S3Tb*|IWCsU5ZPKX0HF6*nV*!4h@*-{FRRtweBry5w-R z9L$I0K~h0B&U5uK@fcl!7^J-rRJoPfK7k#r0d<2LrqN_N{ zyGouGM4&`JG)??;38m%e`2*kL*ALKir%6BB=Uc`zi#tWvXEjJ3bAdJYtTQ@_wMfM6 zCQ?r{to00-ep4RXohRLdqs^nrZFrDs3^-9Mqywr0Wjh2_B@f zr3jxYtF%wqHGbw+msipRd+)ov$+~^b-=*v>NM%5fOJ!9mTgT9-y?A%&%($uL>QYm4 zeMX69K?}UN2DAXq3{({3+xl0B)H;+xrYdHSWwQ7bjiS7ba5)b&YAQJhh-gA~E-+7C zO(KTLX#W(`Qj;*@M?bZcpTW&-5pBY(7Jk?~Si? zv$FS2cl<(poqsWN`6hfKWq>_(bZ#YVr={ZmE+TR6rsLm|C7$?_;nHx&X^QKL0C4wv#> zUAGGJzj4?;yY~>713$q&jDtrsjc(CIDx{wlD0gpj0Y{q zE;B?1_XumUuw zV39^GS!ypE@)M|V9m%OYl$oWs>>G+q>^y}Dyt~DJ|HeL)HDW745v2RdZn+;uPq;G` z%6OG2AqoQh32##v?wIb>siR*ZP!v!yYk`(K zp)cI=`INYlrKGJem&4OJ*68Hgxm!GKNn-}i98yLMGgga|4*eY_AugSx0oWDA_z#xW z+DiIq11bWnY#c&jm!7P}0fR5@zadEGvv(ztc#roS|7G(t1GAXW*P0=|4?Kfrpg4Ae z4r0*#7kl3K@5isAB)ME=wDV$`n1WVwR1=Gyh_-F6Rvg_USxTlZmGEy^BppU^^H*->iHvTR1o{>|vU6^TmHnbTCzh6h(h4QVo4lNTsE38` zSstA@E?B*N5Zq0bA+?ztccMHSr`K|6Y5YWGZj4?xrOELbR*dwZ%&aR=Y047BlKrev zvRuQE?e`Q6dHnU8y<*>^P^I;X)vj8RLS0Ay&+7(S2<$_)j)76dhh;JlU1au6)z{@Y zTS|YF@cZ~i*{TR%PaAvh(=T2f2#;F7X{jw?bQT&diaDLw@$C7mL+l3b3PIs|K6^0# zoJn3xX3Y*Bt4dsp_$ni6iu*=RO?)YTEP7`Y3bm1cS>#7J<=17hi2@=9%5~QyW&BKj z;qG-FguJ`NCAJ2XW4;}0I3H%*_0L~|z?l}bi_&?TQGe`gc literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_transfer_tips.png b/app/src/main/res/mipmap-xxhdpi/ic_transfer_tips.png new file mode 100644 index 0000000000000000000000000000000000000000..851f7e776a39ec9b1ee0ce036afc7080bafe3b42 GIT binary patch literal 2797 zcmVPxhW5TytT6-TX#6%fN)Kw7ohR>>&J&+f*i zSalp*>o22psDPacw%TdSNOnW3(niNxY9m&%FM@+wX{%Law91cGVXCx*0Lkuq_cZsu zx639Z*+0EAJIT!6d(QdpIrsc7;WJunFENqXT@AriAXEYBuNV&D2}nwV@E=$r4MCk~ zZ$C_1nh$>#tf^8W9GQ1E*qRK&6fnjCJPxKc5+nd{9(e-XbQ<8DV0s6{e+ThqYHfPH z5*f+{z_s(H!n7Xog+>jCgfDNt(EW*)Wy^;Ew1e;@4tLyMj#f$nz;$&7_EnFA6c0m~ zvmw2n5)uK-5X-S|DWX>fY=Pkw*dM#m_7yMCm_LqR|CQ@kU0{bJQd(c5HuBJ4h5^TN^1m| z7T|Wh1kh4SB{ncLrvX)36abFICji_E;KbauWNn%?W7-Kzlm-S|d|tyK z3`q|KXc`EsV3;StbAvNlBp1v-BPVfNAzB3i@Qm10FdSd?!A*g?Akl;l>n7T|TA4~k ziz5pcfW%TTPWDv+Kp0B1FQDD}=0GMjAON;wH$jMpq0Jf$!z8%wCJ=r|sl+Q4N!{x( z+jED5s%{2}d$rZ5%ktk;8-#ZiZCv|lU;O$7z;<*pNNfVw)CbKFkm*XIddMPbdARGd z6h2E!iHu17RDhcSjMPAU5U)`xaeiNKqE7&9*PjZ5-p%te5{!GvN!(wF;QE%mAr?mb z_fu+aR-UTQ#WNR-hcx~IqS0Ct+ML{#luG`f_kp7T@XQ6nAdOc68mskah6tJT;>v}O z-w5K{0UQtTQy6}5AvHJm^20~O3mnIDATdUpu-1gEr&O{rA4CrTY}+Pi%tL^!tCmE~g<|Fa5121-*rlaY47n9TY!a#I+*7c`DdT)ZE!n%6j`w^nCv|-J@?75x* zX2!=t;&p&)^ajReRM*U^)aKca%>m)J0K&e9F#&dGQforF<^dPm(OW?Dpbm!Woaa86 z?_PTXh(tH!Mc7UdE-QvfK_PsbeigzvMhlVY+C)yGw$M3!hjz3IM9+a}y6>5UGN%!= z@zK3nCpix=qy9?}Vy6x$%HF_#qSnOa#V{#m58Lr+Aifz)F9Py0a+3cm=9~s`;r!7U zGuA^kj0}xve&^P>7F96Rwg`DKhVwrs2`*?b+38t|i@Qm#M)l#bQbq#=LEEokg z{|WH1K?F=tDiQy@g(`(U&saDPEdCXoVKCoKPI5&6puP?)f1@9n_PLo!lxo^q3WLvk zFVCJo7-@4oh$7nXrThbcxjukMY$b?p^>ZD551qzWY0D8;RjzP+$#p|(54xlRnWb5!n9c22Al*IsIJ9a&Q?;#XE zN87FP9+`9tIf+Y)Ip5bFo*um%f_?{}T3d>NvBcA^Jr-7YGk}SKQ@V#zjmyera$bXl zV=`O8nx4@so!?HW#OYHuWj>$DvAY18{;L)G~Jw+t-~05&popf2gwV zYHCZaFO><`&OZghdFIPf0 zaQV9cj1Elbm&6y%8wu0OKH@Z_j8a?E6O}MxJ30a+K0e}scsGPRx4*Km6kZ&OeF$Jw z@QClEpn!P|z!>dDnJX_|rboX6E3_J3CR-9dfxR73+E!s~@zV)aiw_HGl^C&IR|5=Q z4-&QxWXuWhjs|j^Y@ef)3(|Wz5_=XxTnZU91HiXYD!H;`LcI=fBz^_J>$J;PW(hfw zc*zohwq1{a=mzad87ir(EhXLUEf`1QoqqA6UGo7*zKq(En<@toy99|7}M;ja8FNYyV=1qVxXuCEaf9-`~O`sQ6@8>DER@0VMWp$wM*!3=tc7K@|1WR|t?AS{X zVv65Nqz*8hL(ZCP6;zO+W)$Lgb+VORD(zK?oR`@S&^4+IEJ&!g_pxKm5MmBk`h6-l zZBr`I)&qck%rm1GLyG5f0f_N5s%z#J+g1r8@D2ce|L2Gno&obBa*}&W7CsWc3Sbpj zEuH^Jxq(uNujk0;6Xc0?A)HXN7NDy&2*13XL#d{xie=1^XdIxQ>(pEgIasbBr%Cm7 zN?vSVe-g-R3%Z2LDqOHUEx*}tbZarP@C-nxl-D-{e-03%*2ZKZ339DiMT0~b;XQ9r zOG{ae;GocIfiNxz9n!C|&!3sYeWT;B+Ltw5aCt1?tD+IW|@7a!i z0Yoj`4Xw#}Gl^{&-f>p%e(FH&_4~SQZb?w+WGkvUNR58Fm?=#8!Yi|Jp9P7t@@52k zF}!0`U(MhG1CD4<5V|SrJ_7Ll_*U9CZ;PfTrJf^bHqgKHR ziS6iputH1V_LwAn(A}_KOsS@|g@h{Rd)+#;%r$Dfk!u9_?ag=LVkW(q_@F;J1p#RH z>UW5j0yHG&Vs(w{ehA6mhbdd(jonYqlA<$M-KcWK2zcUNgu)BpsTp`~AgKb;+u$8v zDU=l#1wezC9=!-e%V343`PvA4j&ikL<{f}kH{u`g)ebL%KB+D*k5%0Tus&Dw{a~#w!4?Bq#Y?F>j_~068G4t7nF1gD|^0+)n`G zTv*}ipvUTO%Z^L^sOX!E^mcS-tZ#t%WsqnoCqK%{P?iRI-%{?UHkKR=X&wvVP5|+E z9r{%P&ioO8Js|9X8{URcXIi&koTUFoDp>yqo;-Q#psD}R00000NkvXXu0mjf67~jc literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 2e771dd..4e4baea 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -365,6 +365,12 @@ Click to select give away object Give away amount Give away to:%s + Handling fee + %d cash]]> + %d points]]> + Total payment amount + Current cash balance is insufficient + Current gift points balance is insufficient (optional) Enter give away instructions Initiate give away If the payment is not received within 24 hours, the give away amount will be automatically collected diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index d2bfc7b..df6ef69 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -362,6 +362,12 @@ クリックして転送オブジェクトを選択します 送金金額 送金先:%s + 手数料 + %dcash]]> + %dcash]]> + 支払金額合計 + 現在の現金残高が不足しています + 現在のギフトポイント残高が不足しています (オプション) 転送指示を入力します 転送を開始する 支払いが 24 時間以内に受け取られなかった場合、送金額は自動的に徴収されます diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index ccbdabf..4b2ec4c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -360,6 +360,12 @@ 点击选择赠送对象 赠送金额 赠送给:%s + 手续费 + %dcash]]> + %d积分]]> + 统计支付金额 + 当前cash余额不足 + 当前礼品积分余额不足 (选填)输入赠送说明 发起赠送 24小时内未收款,赠送金额将被自动领取 @@ -794,7 +800,7 @@ 该账号已被封禁 Cash储值 请选择储值Cash点数 - 当前Cash点数: + give away点数: 立即储值 自定义Cash点数 请输入%d-%d的整数 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bd58259..2378d29 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -61,6 +61,7 @@ #393a3e #FFFFFF #FF4E54 + #E4543E #EE9033 #e8e8e8 #f9f9f9 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 13e70b3..cb1d938 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -341,6 +341,7 @@ 還沒聊天記錄哦~ 已存入Cash餘額,點擊查看> Cash + 積分 禮品積分 禮金 拼手氣紅包 @@ -358,6 +359,12 @@ 點選選擇贈送對象 贈送金額 贈送給:%s + 手續費 + %dcash]]> + %d積分]]> + 統計支付金額 + 當前cash餘額不足 + 當前禮品積分餘額不足 (選填)輸入贈送說明 發起贈送 24小時內未收款,贈送金額將會自動領取 @@ -562,7 +569,7 @@ 收款人可見,最多20個字 付款成功 帳戶餘額 - 贈送方式 + give away 收款方 付款備註