From 67dad1004d9999512bb3f434bbd7fb63d4bef511 Mon Sep 17 00:00:00 2001 From: huangjian Date: Mon, 6 Feb 2023 14:59:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=B1=95=E7=A4=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7ID=E7=9A=84=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A4=8D=E5=88=B6ID=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mango/moshen/home/fragment/MeFragment.kt | 9 +++++ .../moshen/ui/im/MessageListPanelEx.java | 2 +- .../moshen/ui/user/UserInfoActivity.java | 9 +++++ .../moshen/ui/widget/UserInfoDialog.java | 16 ++++++-- .../main/res/drawable-xhdpi/ic_copy_id.png | Bin 0 -> 648 bytes .../res/drawable-xhdpi/ic_copy_id_white.png | Bin 0 -> 544 bytes .../main/res/layout/activity_user_info.xml | 1 + app/src/main/res/layout/dialog_user_info.xml | 1 + app/src/main/res/layout/fragment_me.xml | 36 +++++++++--------- .../module/list/MessageListPanelEx.java | 2 +- .../uikit/common/util/sys/ClipboardUtil.java | 28 ++++++++------ 11 files changed, 68 insertions(+), 36 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/ic_copy_id.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_copy_id_white.png diff --git a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt index adf30b825..627e93dc7 100644 --- a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt @@ -33,6 +33,7 @@ import com.mango.core.user.bean.UserInfo import com.mango.core.user.event.LoginUserInfoUpdateEvent import com.mango.core.utils.CurrentTimeUtils import com.mango.core.utils.StarUtils +import com.mango.core.utils.toast import com.mango.moshen.R import com.mango.moshen.UIHelper import com.mango.moshen.avroom.activity.AVRoomActivity @@ -64,6 +65,7 @@ import com.mango.moshen.utils.UserUtils import com.mango.moshen.vip.VipMainActivity import com.mango.moshen.vip.VipMainViewModel import com.mango.xchat_android_library.utils.FormatUtils +import com.netease.nim.uikit.common.util.sys.ClipboardUtil import com.netease.nim.uikit.common.util.sys.TimeUtil import com.trello.rxlifecycle3.android.FragmentEvent import io.reactivex.Observable @@ -543,6 +545,13 @@ class MeFragment : BaseFragment(), View.OnClickListener { ) } R.id.ll_pm_mode -> PatriarchModeActivity.start(mContext) + R.id.tv_user_id -> { + mUserInfo?.let { + ClipboardUtil.clipboardCopyText(it.erbanNo.toString()) + } ?: run { + "数据加载中,请稍后再试!".toast() + } + } else -> {} } } 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 09462edd6..b3ec971f0 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 @@ -1115,7 +1115,7 @@ public class MessageListPanelEx { } private void onCopyMessageItem(IMMessage item) { - ClipboardUtil.clipboardCopyText(container.activity, item.getContent()); + ClipboardUtil.clipboardCopyText(item.getContent()); } // 长按菜单项--删除 diff --git a/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java b/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java index e27b5430b..12a279633 100644 --- a/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java @@ -20,6 +20,7 @@ import androidx.viewpager.widget.ViewPager; import com.google.android.material.appbar.AppBarLayout; import com.netease.nim.uikit.StatusBarUtil; +import com.netease.nim.uikit.common.util.sys.ClipboardUtil; import com.netease.nim.uikit.impl.cache.NimUserInfoCache; import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; @@ -179,6 +180,7 @@ public class UserInfoActivity extends BaseBindingActivity() { @Override public void onSubscribe(Disposable d) { @@ -772,7 +776,11 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe UserInfoActivity.Companion.start(context, uid); dismiss(); break; + case R.id.tv_erban_id: + ClipboardUtil.clipboardCopyText(String.valueOf(userInfo.getErbanNo())); + break; default: + break; } } @@ -1107,7 +1115,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe return; } - if (AvRoomDataManager.get().haveStartDragon) { + if (AvRoomDataManager.get().haveStartDragon) { new DialogManager(context).showOkCancelDialog("你正在交友匹配中,此操作代表你放弃本局匹配展示,确定进行此操作?", false, new DialogManager.OkCancelDialogListener() { @Override public void onCancel() { diff --git a/app/src/main/res/drawable-xhdpi/ic_copy_id.png b/app/src/main/res/drawable-xhdpi/ic_copy_id.png new file mode 100644 index 0000000000000000000000000000000000000000..e69a7bf1d8f53aa109e255734402fa38506c49b3 GIT binary patch literal 648 zcmV;30(bq1P)Px%LP3AiF5A-+km;774m zT3Yx~D8fSKJ~4%Y%7UGZE@V-(RIrduq5pt_E{c-KJ2H|7x_OexBe+doJNM50&6)e= z9>E5GvcdH+2Jlv(Uaub@d5z>g5y|^p9myX6RzzgMTKhIB#|yw1GY#M+fK5Jy*T<0j zOmaF5!w>7%d;uNDKFE+UJKMq@q|KoA70BC;L8O>6B1pW<Zt+p2ojr?`tT#%u=g9>BIgn>7u<@B1TpUR7`T0`wqW1K2~d zsjAhq3XB293XD<#34*{)!^0$>s_M+Zm(Un95&#idC3#vzcJ=tT`xm2DuDPQ8uXAQDd5b8dseSlYcCDj zAYLz(O4(wu=p4@^$wgJ|GatSRJOOYVz;`#@W5xhu1%3el>5VWIl1KFb0000Px$+DSw~R9HvtmcL6@VHC$dUxb7P9U7W!j8KPiNR(=_(9K2AXh@J2L3607#)f_j zis1H=LxGCm=AsT!)TrPfF7^);SSSewCyv|~-t5ME?)Bok+-JS#dCup4pTqP0iUuz= zxIZO8SOGKZ0bT(&feXQ_I|4ocPb6)p?Fj*xSr_mbXbv_$UA7N&N&0&FLlj^I7zBO- zFM-1#$R*%u0zM~cJTJg5a21%AG!<-qQf6jLz!307Qg2>>N5C*JE@>wtz+2!UuqEk6 z2*Au-x=Elr!@zw9mVre{R&8Wv*#OL}4fq6H$?~T)wG~NYX90K*-1qAPHh_a5NP99T zUVc~7dNKo<75D+P0JD-Ng3W!{E&_YN<=SD*a|PA=dn{=t3XuHmCU6~?mo%DJffArp zpfCl@%)Q3l@HVg}>0aHJ(98+}0Ng(w03AtFx8yhH2{2M)->yQxB+mzbt$*yeKn1+% z9pEGIPSSBGkQ4<_eTeEkWN8X`*zjldg`{Wo4yZAmCcqPqn^|i3h$^rO3;@4?3h*rm zaSP~6YDXk3ME0dA(3#kAYvh2G8h211xZjceshQBst^v=JK;qIymghweB(Kw^{eK69 iLTRLX-kK7iRNxQ54g)Z|c8aC|0000 diff --git a/app/src/main/res/layout/dialog_user_info.xml b/app/src/main/res/layout/dialog_user_info.xml index 1057f50eb..756895c28 100644 --- a/app/src/main/res/layout/dialog_user_info.xml +++ b/app/src/main/res/layout/dialog_user_info.xml @@ -246,6 +246,7 @@ android:layout_height="wrap_content" android:textColor="@color/white_transparent_50" android:textSize="@dimen/sp_12" + android:drawableEnd="@drawable/ic_copy_id_white" tools:text="ID123456" /> diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 18cce1f47..515265efc 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -47,8 +47,8 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:onClick="@{click}" - app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/me_item_setting"> @@ -101,8 +101,8 @@ android:layout_height="wrap_content" android:drawablePadding="5dp" android:ellipsize="end" - android:maxLines="1" android:maxLength="10" + android:maxLines="1" android:text="@{userInfo.nick}" android:textColor="@color/text_title_white" android:textSize="@dimen/sp_16" @@ -129,9 +129,10 @@ android:id="@+id/tv_user_id" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:drawablePadding="4dp" + android:drawableEnd="@drawable/ic_copy_id" android:gravity="center" android:maxLines="1" + android:onClick="@{click}" android:textColor="@color/text_secondary_4f516a" android:textSize="@dimen/dp_13" tools:ignore="SpUsage" @@ -152,20 +153,6 @@ tools:ignore="ContentDescription" tools:src="@drawable/ic_gender_female" /> - + + + diff --git a/nim_uikit/src/com/netease/nim/uikit/business/session/module/list/MessageListPanelEx.java b/nim_uikit/src/com/netease/nim/uikit/business/session/module/list/MessageListPanelEx.java index bfa518561..54b67299b 100644 --- a/nim_uikit/src/com/netease/nim/uikit/business/session/module/list/MessageListPanelEx.java +++ b/nim_uikit/src/com/netease/nim/uikit/business/session/module/list/MessageListPanelEx.java @@ -1093,7 +1093,7 @@ public class MessageListPanelEx { } private void onCopyMessageItem(IMMessage item) { - ClipboardUtil.clipboardCopyText(container.activity, item.getContent()); + ClipboardUtil.clipboardCopyText(item.getContent()); } // 长按菜单项--删除 diff --git a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ClipboardUtil.java b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ClipboardUtil.java index 9f45e3647..195160af2 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ClipboardUtil.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ClipboardUtil.java @@ -1,19 +1,23 @@ package com.netease.nim.uikit.common.util.sys; -import android.content.Context; -import android.text.ClipboardManager; +import static android.content.Context.CLIPBOARD_SERVICE; + +import android.content.ClipData; +import android.content.ClipboardManager; + +import com.mango.xchat_android_library.utils.SingleToastUtil; +import com.mango.xchat_android_library.utils.config.BasicConfig; public class ClipboardUtil { - public static final void clipboardCopyText(Context context, CharSequence text) { - ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); - if (cm != null) { - cm.setText(text); - } + + public static void clipboardCopyText(CharSequence text) { + ClipboardManager myClipboard; + myClipboard = (android.content.ClipboardManager) BasicConfig.INSTANCE.getAppContext().getSystemService(CLIPBOARD_SERVICE); + ClipData myClip; + myClip = ClipData.newPlainText("text", text); + if (myClipboard != null) + myClipboard.setPrimaryClip(myClip); + SingleToastUtil.showToast("复制成功"); } - public static final int clipboardTextLength(Context context) { - ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); - CharSequence text = cm != null ? cm.getText() : null; - return text != null ? text.length() : 0; - } }