部分展示用户ID的页面增加复制ID功能

This commit is contained in:
huangjian
2023-02-06 14:59:22 +08:00
parent 064807470b
commit 67dad1004d
11 changed files with 68 additions and 36 deletions

View File

@@ -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 -> {}
}
}

View File

@@ -1115,7 +1115,7 @@ public class MessageListPanelEx {
}
private void onCopyMessageItem(IMMessage item) {
ClipboardUtil.clipboardCopyText(container.activity, item.getContent());
ClipboardUtil.clipboardCopyText(item.getContent());
}
// 长按菜单项--删除

View File

@@ -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<ActivityUserInfoBindin
mBinding.ivEdit.setOnClickListener(this);
mBinding.tvEdit.setOnClickListener(this);
mBinding.ivWhere.setOnClickListener(this);
mBinding.tvErbanId.setOnClickListener(this);
}
/**
@@ -540,6 +542,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
AVRoomActivity.FROM_TYPE_USER, userInfo.getNick(), String.valueOf(userInfo.getUid()));
}
break;
case R.id.tv_erban_id:
if (userInfo == null) {
toast("数据加载中,请稍后再试!");
return;
}
ClipboardUtil.clipboardCopyText(String.valueOf(userInfo.getErbanNo()));
break;
}
}

View File

@@ -18,6 +18,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatDialog;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -83,6 +84,7 @@ import com.mango.xchat_android_library.net.rxnet.callback.CallBack;
import com.mango.xchat_android_library.utils.ListUtils;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.mango.xchat_android_library.utils.config.BasicConfig;
import com.netease.nim.uikit.common.util.sys.ClipboardUtil;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
@@ -110,10 +112,11 @@ import io.reactivex.disposables.Disposable;
*/
public class UserInfoDialog extends AppCompatDialog implements View.OnClickListener {
@NonNull
private final UserInfo userInfo;
private Context context;
private long uid;
private boolean isAttention;
private UserInfo userInfo;
private ImageView closeImage;
private FrameLayout avatarLayout;
private ImageView ivAvatarHeadWear;
@@ -230,6 +233,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
ivAvatarBg = findViewById(R.id.iv_avatar_bg);
nick = findViewById(R.id.nick);
erbanId = findViewById(R.id.tv_erban_id);
erbanId.setOnClickListener(this);
ivGender = findViewById(R.id.iv_gender);
ivVipIcon = findViewById(R.id.iv_vip_icon);
fansNumber = findViewById(R.id.fans_number);
@@ -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;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

View File

@@ -177,6 +177,7 @@
android:gravity="center_vertical"
android:includeFontPadding="false"
android:maxLines="1"
android:drawableEnd="@drawable/ic_copy_id_white"
android:textColor="@color/white"
android:textSize="11dp"
tools:text="ID:7958626" />

View File

@@ -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" />
</LinearLayout>

View File

@@ -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">
<com.mango.moshen.common.widget.CircleImageView
@@ -90,8 +90,8 @@
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="30dp"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/iv_head_wear"
app:layout_constraintTop_toTopOf="@id/iv_head_wear">
@@ -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" />
<TextView
android:id="@+id/tv_constellation"
android:layout_width="42dp"
android:layout_height="15dp"
android:layout_marginStart="5dp"
android:background="@drawable/bg_me_sign"
android:gravity="center"
android:textColor="@color/color_FFFFFF"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="@id/iv_sex"
app:layout_constraintStart_toEndOf="@id/iv_sex"
app:layout_constraintTop_toTopOf="@id/iv_sex"
tools:ignore="SmallSp"
tools:text="摩羯座" />
<LinearLayout
android:id="@+id/ll_icon"
@@ -215,6 +202,19 @@
android:visibility="gone"
tools:ignore="SmallSp" />
<TextView
android:id="@+id/tv_constellation"
android:layout_width="42dp"
android:layout_height="15dp"
android:layout_marginStart="5dp"
android:background="@drawable/bg_me_sign"
android:gravity="center"
android:textColor="@color/color_FFFFFF"
android:textSize="10sp"
tools:ignore="SmallSp"
tools:text="摩羯座" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1093,7 +1093,7 @@ public class MessageListPanelEx {
}
private void onCopyMessageItem(IMMessage item) {
ClipboardUtil.clipboardCopyText(container.activity, item.getContent());
ClipboardUtil.clipboardCopyText(item.getContent());
}
// 长按菜单项--删除

View File

@@ -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;
}
}