From f3a4af458241019a698de78b9183bcceda9f46dc Mon Sep 17 00:00:00 2001 From: huangjian Date: Tue, 7 Feb 2023 16:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E8=81=8A=E6=94=B9=E9=80=A0:=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=8D=A1=E7=89=87UI=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moshen/ui/im/MessageListPanelEx.java | 6 +++ .../ui/im/chat/MsgViewHolderUserCard.java | 17 +++++-- .../mango/moshen/ui/webview/JSInterface.java | 33 ++++++++++-- .../ic_gender_female_empty_bg.png | Bin 0 -> 499 bytes .../ic_gender_male_empty_bg.png | Bin 0 -> 500 bytes .../res/drawable/shape_45bbff_to_8ad4ff.xml | 8 +++ .../res/drawable/shape_ff90ae_to_ff497d.xml | 8 +++ .../main/res/layout/layout_p2p_user_card.xml | 47 ++++++++++++------ .../mango/core/utils/CurrentTimeUtils.java | 32 ++++++++++++ 9 files changed, 130 insertions(+), 21 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/ic_gender_female_empty_bg.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_gender_male_empty_bg.png create mode 100644 app/src/main/res/drawable/shape_45bbff_to_8ad4ff.xml create mode 100644 app/src/main/res/drawable/shape_ff90ae_to_ff497d.xml diff --git a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java index e170b2413..6c891a003 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java +++ b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java @@ -92,6 +92,12 @@ public class MessageListPanelEx { @Override public int compare(IMMessage o1, IMMessage o2) { + if (o1.getAttachment() instanceof UserCardAttachment) { + return -1; + } + if (o2.getAttachment() instanceof UserCardAttachment) { + return 1; + } long time = o1.getTime() - o2.getTime(); return time == 0 ? 0 : (time < 0 ? -1 : 1); } diff --git a/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderUserCard.java b/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderUserCard.java index 7aa5dc38c..aeb6ef12a 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderUserCard.java +++ b/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderUserCard.java @@ -18,6 +18,7 @@ import com.mango.core.decoration.headwear.bean.HeadWearInfo; import com.mango.core.noble.NobleUtil; import com.mango.core.user.UserModel; import com.mango.core.user.bean.UserPhoto; +import com.mango.core.utils.CurrentTimeUtils; import com.mango.core.utils.StarUtils; import com.mango.core.utils.StringExtensionKt; import com.mango.core.utils.net.RxHelper; @@ -28,11 +29,15 @@ import com.mango.moshen.skill.repository.SkillModel; import com.mango.moshen.ui.user.ShowPhotoActivity; import com.mango.moshen.ui.user.UserInfoActivity; import com.mango.moshen.ui.utils.ImageLoadUtils; +import com.mango.moshen.utils.TimeUiUtils; +import com.mango.moshen.vip.VipHelper; import com.mango.xchat_android_library.utils.JavaUtil; import com.mango.xchat_android_library.utils.ListUtils; +import com.mango.xchat_android_library.utils.TimeUtils; import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; import com.netease.nim.uikit.common.util.sys.ScreenUtil; +import com.netease.nim.uikit.common.util.sys.TimeUtil; import java.util.ArrayList; import java.util.Date; @@ -53,11 +58,12 @@ public class MsgViewHolderUserCard extends MsgViewHolderBase { private View flSkill2; private CircleImageView ivAvatar; private TextView tvNick; - private ImageView ivGender; + private TextView tvGenderAndAge; private TextView tvConstellation; private TextView tvDesc; private RecyclerView rvPhotos; private ImageView ivHeadWear; + private ImageView ivVipIcon; public MsgViewHolderUserCard(BaseMultiItemFetchLoadAdapter adapter) { super(adapter); @@ -78,11 +84,12 @@ public class MsgViewHolderUserCard extends MsgViewHolderBase { flSkill2 = findViewById(R.id.fl_skill_2); ivAvatar = findViewById(R.id.iv_avatar); tvNick = findViewById(R.id.tv_nick); - ivGender = findViewById(R.id.iv_gender); + tvGenderAndAge = findViewById(R.id.tv_gender_and_age); tvConstellation = findViewById(R.id.tv_constellation); tvDesc = findViewById(R.id.tv_desc); rvPhotos = findViewById(R.id.rv_photos); ivHeadWear = findViewById(R.id.iv_head_wear); + ivVipIcon = findViewById(R.id.iv_vip_icon); } @Override @@ -132,7 +139,9 @@ public class MsgViewHolderUserCard extends MsgViewHolderBase { .subscribe(userInfo -> { ImageLoadUtils.loadAvatar(userInfo.getAvatar(), ivAvatar); tvNick.setText(StringExtensionKt.subAndReplaceDot(userInfo.getNick(), 7)); - ivGender.setImageResource(userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female); + tvGenderAndAge.setCompoundDrawablesRelativeWithIntrinsicBounds(userInfo.getGender() == 1 ? R.drawable.ic_gender_male_empty_bg : R.drawable.ic_gender_female_empty_bg, 0, 0, 0); + tvGenderAndAge.setBackgroundResource(userInfo.getGender() == 1 ? R.drawable.shape_45bbff_to_8ad4ff : R.drawable.shape_ff90ae_to_ff497d); + tvGenderAndAge.setText(String.valueOf(CurrentTimeUtils.getAgeFromTimestamp(userInfo.getBirth()))); tvDesc.setText(userInfo.getUserDesc() != null ? userInfo.getUserDesc() : context.getResources().getString(R.string.msg_no_user_desc)); //设置星座 String star = StarUtils.getConstellation(new Date(userInfo.getBirth())); @@ -142,8 +151,8 @@ public class MsgViewHolderUserCard extends MsgViewHolderBase { tvConstellation.setText(star); tvConstellation.setVisibility(View.VISIBLE); } + VipHelper.loadVipIcon(ivVipIcon, userInfo.getUserVipInfoVO()); photoAdapter.setNewData(userInfo.getPrivatePhoto()); - HeadWearInfo headWearInfo = userInfo.getUserHeadwear(); if (headWearInfo != null && !TextUtils.isEmpty(headWearInfo.getPic())) { NobleUtil.loadHeadWear( diff --git a/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java b/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java index cdb4f3f07..f5c3b43a1 100644 --- a/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java +++ b/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java @@ -23,9 +23,14 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.security.realidentity.RPEventListener; import com.alibaba.security.realidentity.RPResult; import com.alibaba.security.realidentity.RPVerify; +import com.mango.core.utils.LogUtils; +import com.mango.moshen.BuildConfig; import com.mango.xchat_android_library.utils.file.JXFileUtils; import com.netease.nim.uikit.common.util.log.LogUtil; import com.orhanobut.logger.Logger; +import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram; +import com.tencent.mm.opensdk.openapi.IWXAPI; +import com.tencent.mm.opensdk.openapi.WXAPIFactory; import com.umeng.commonsdk.statistics.common.DeviceConfig; import com.mango.moshen.UIHelper; import com.mango.moshen.avroom.activity.AVRoomActivity; @@ -532,6 +537,28 @@ public class JSInterface { if (mActivity instanceof TarotPayWebViewActivity) mActivity.finish(); } + @JavascriptInterface + public void openTarotPay(String json) { + JSONObject jsonObject = JSONObject.parseObject(json); + //微信小程序支付的微信appid和微信登录&支付的appid是不同的... + IWXAPI api = WXAPIFactory.createWXAPI(mActivity, jsonObject.getString("wxminiAppid")); + WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); + req.userName = jsonObject.getString("wxminiId"); // 填小程序原始id + //拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 + req.path = "pages/index/index?pub_ticket=" + AuthModel.get().getTicket() + + "&tarotChargeProdId=" + jsonObject.getString("tarotChargeProdId") + + "&cardList=" + jsonObject.getString("cardList") + + "&payType=" + jsonObject.getString("payType") + + "&pub_uid=" + AuthModel.get().getCurrentUid() + + "&uid=" + AuthModel.get().getCurrentUid() + + "&ticket=" + AuthModel.get().getTicket() + + "&roomUid=" + AvRoomDataManager.get().getRoomUid() + + "&appVersion=" + BuildConfig.VERSION_NAME + + "&app=" + XChatConstants.APP_MARK; + req.miniprogramType = BuildConfig.DEBUG ? WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST : WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版 + api.sendReq(req); + } + /** * 打开弹窗式 WebViewActivity */ @@ -550,9 +577,9 @@ public class JSInterface { public void saveBase64Image(String imageBase64) { mActivity.runOnUiThread(() -> mActivity.checkPermission( - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE - ) + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE + ) .subscribe(aBoolean -> { if (aBoolean) { try { diff --git a/app/src/main/res/drawable-xhdpi/ic_gender_female_empty_bg.png b/app/src/main/res/drawable-xhdpi/ic_gender_female_empty_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f90ef1f364dd898bc890541f7e00af8c636a8183 GIT binary patch literal 499 zcmVPx$tw}^dR5(wK(>)3^7osb?pXc@C3;@e0+SMki;hfC=1glxpUmN+dU2F8Hw#0?B|LRPd{RPM@%csT~- z3=ZRcCuCy#(mA*i5qn25;tagSJY4Sno#QxJEn`na^bKRiDY%KP_>JX}nR9Ujw_ET@ zODxb;T)-Pl#X3}>mF>-`i0CcIQJiiLtYOX^Z5ADOXK^SZvLNM;r&!P)e8;9%bw6rG zou>@h8xePh7BDkc;~{3XV7YWdL_EsO8g|*d3Jh*>M11U4T1q})ewhZfCzWtMA`XtT pEd{B8uEI79t~mN4;>&m;e*lu!ozs%=WETJc002ovPDHLkV1j^`*OveQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_gender_male_empty_bg.png b/app/src/main/res/drawable-xhdpi/ic_gender_male_empty_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2434b11f76e0514318b6ed706ad026b164b640 GIT binary patch literal 500 zcmVPx$u1Q2eR5(wK)K7>`Q5eVZ&*N`ONT$fbf|O~NlTgM&X_jO;ONFwMe;Yz5&B9nH zHg>{R7Gl^)B1tyn&khMIR{rJDna+KCM|ZsM+1&2A=X}rad49ihLmwkEcio!(EcU;3t-2cAfu&S$K>6xY-RkUKNzND>xMquj>Izu?r__dB3n0OYm$8l9_{e zjyX6M5vSW4n3eMY|8pxd4`IAEdlh!$Q-KuP8jMB6)gF*i z+UMG%!H9U-l=HoYXgDIC_R39WzQ;;zi-^evQmk5pjS=yv4@gl`EZ!Uu4;si54C6pV zoa<3eais(=i<*e|*g%dJOKY=+BI4Ujpv)}xkKu7dZ0IC5GmGD)xy!1BJKI2+*&J5( zjz+}oX|d1Dt+<7`Rnd7otchJ$tsJSF#v|fLx7yDAsG#drQCmg7YiiF#MCnOq{CfdQ qY5TCfM!Wn!$}KKdUWkYnZS=qTahUf-8kfWX0000 + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_ff90ae_to_ff497d.xml b/app/src/main/res/drawable/shape_ff90ae_to_ff497d.xml new file mode 100644 index 000000000..b307efa04 --- /dev/null +++ b/app/src/main/res/drawable/shape_ff90ae_to_ff497d.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_p2p_user_card.xml b/app/src/main/res/layout/layout_p2p_user_card.xml index af0b98534..4aab2aa33 100644 --- a/app/src/main/res/layout/layout_p2p_user_card.xml +++ b/app/src/main/res/layout/layout_p2p_user_card.xml @@ -139,29 +139,48 @@ app:layout_constraintStart_toStartOf="@id/iv_avatar" app:layout_constraintTop_toTopOf="@id/iv_avatar" /> + - + tools:src="@drawable/ic_gender_female" + tools:text="22" /> @@ -189,8 +208,8 @@ android:textColor="#BABBCD" android:textSize="14dp" app:layout_constraintBottom_toBottomOf="@id/iv_avatar" - app:layout_constraintStart_toStartOf="@id/tv_nick" - app:layout_constraintTop_toBottomOf="@id/tv_nick" + app:layout_constraintStart_toStartOf="@id/iv_vip_icon" + app:layout_constraintTop_toBottomOf="@id/iv_vip_icon" tools:text="正在“可惜不是你…”热聊中" />