6.9.0
This commit is contained in:
@@ -21,6 +21,10 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.yunbao.common.event.LiveMsgWindowsCloseEvent;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.event.MessageIMLiveEvent;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
@@ -232,6 +236,9 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
||||
}
|
||||
}
|
||||
}
|
||||
if(fragment!=null){
|
||||
fragment.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -990,14 +997,29 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
||||
new LiveUserAnchorMailBoxPopDialog(mContext).showDialog();
|
||||
}
|
||||
|
||||
LiveUserAnchorMsgPopDialog fragment;
|
||||
/**
|
||||
* 用户端打开聊天列表页面
|
||||
*/
|
||||
public void openLiveMsgWindow() {
|
||||
LiveUserAnchorMsgPopDialog fragment = new LiveUserAnchorMsgPopDialog();
|
||||
fragment = new LiveUserAnchorMsgPopDialog();
|
||||
fragment.show(((LiveActivity) mContext).getSupportFragmentManager(), "LiveUserAnchorMsgPopDialog");
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(LiveMsgWindowsCloseEvent event) {
|
||||
if(fragment!=null){
|
||||
fragment.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(MessageIMLiveEvent event) {
|
||||
if(fragment!=null){
|
||||
fragment.refreshMsgCount(event.getNumber());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发 弹幕 消息
|
||||
*/
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.lxj.xpopup.interfaces.XPopupCallback;
|
||||
import com.lzf.easyfloat.EasyFloat;
|
||||
import com.lzf.easyfloat.enums.ShowPattern;
|
||||
import com.yunbao.common.dialog.DebugDialog;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
@@ -1860,7 +1861,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
public void showMsgRed(int num) {
|
||||
if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPoint == null) {
|
||||
/*if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPoint == null) {
|
||||
return;
|
||||
}
|
||||
if (num == -1) {
|
||||
@@ -1869,7 +1870,21 @@ public class LiveAudienceActivity extends LiveActivity {
|
||||
} else if (num > 0) {
|
||||
manager.mLiveAudienceViewHolder.mRedPoint.setText(num + "");
|
||||
}
|
||||
manager.mLiveAudienceViewHolder.mRedPoint.setVisibility(View.VISIBLE);
|
||||
manager.mLiveAudienceViewHolder.mRedPoint.setVisibility(View.VISIBLE);*/
|
||||
}
|
||||
|
||||
//消息中心
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(MessageIMEvent event) {
|
||||
if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPoint == null) {
|
||||
return;
|
||||
}
|
||||
if(event.getNumber()>0){
|
||||
manager.mLiveAudienceViewHolder.mRedPoint.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
manager.mLiveAudienceViewHolder.mRedPoint.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void setShowCrownRed(boolean isShow) {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -45,6 +47,8 @@ import java.util.List;
|
||||
public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
private ViewPager2 viewPager;
|
||||
private MagicIndicator mIndicator;
|
||||
private TextView titleCount;
|
||||
|
||||
private List<AbsMainMessageChatListFragment> fragmentList;
|
||||
|
||||
@Override
|
||||
@@ -68,7 +72,7 @@ public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
window.setWindowAnimations(R.style.bottomToTopAnim);
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.height = (int) (ScreenDimenUtil.getInstance().getScreenHeight()*0.6);
|
||||
params.height = (int) (ScreenDimenUtil.getInstance().getScreenHeight() * 0.6);
|
||||
params.gravity = Gravity.BOTTOM;
|
||||
window.setAttributes(params);
|
||||
}
|
||||
@@ -78,10 +82,10 @@ public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mIndicator = (MagicIndicator) findViewById(R.id.indicator);
|
||||
viewPager = (ViewPager2) findViewById(R.id.viewPager);
|
||||
titleCount= (TextView) findViewById(R.id.titleCount);
|
||||
fragmentList = new ArrayList<>();
|
||||
fragmentList.add(new MainMessageChatListFragment(AppManager.getInstance().getLiveActivity()));
|
||||
viewPager.setAdapter(new FragmentStateAdapter((FragmentActivity) AppManager.getInstance().getLiveActivity()) {
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return fragmentList.size();
|
||||
@@ -98,6 +102,18 @@ public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
initIndicator();
|
||||
initData();
|
||||
}
|
||||
|
||||
public void refreshMsgCount(int num){
|
||||
if(titleCount!=null){
|
||||
titleCount.setText(getResources().getString(R.string.message_chat_msg_all_an_a)+"("+num+")");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*/
|
||||
@@ -105,6 +121,7 @@ public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
IMLoginManager.get(mContext).checkInstructor();
|
||||
MessageIMManager.get(mContext).getSystemMessages();
|
||||
}
|
||||
|
||||
private void initIndicator() {
|
||||
final String[] titles = new String[]{
|
||||
WordUtil.getNewString(R.string.message_chat_msg_all),
|
||||
@@ -148,6 +165,8 @@ public class LiveUserAnchorMsgPopDialog extends AbsDialogFragment {
|
||||
return linePagerIndicator;
|
||||
}
|
||||
});
|
||||
LinePagerIndicator linePagerIndicator = new LinePagerIndicator(mContext);
|
||||
linePagerIndicator.setLineHeight(0);
|
||||
mIndicator.setNavigator(commonNavigator);
|
||||
ViewPageIndicatorUtils.bind(mIndicator, viewPager, new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -22,6 +23,7 @@ import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.event.MainHomeCommunityToChatEvent;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
@@ -48,6 +50,7 @@ import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveActivity;
|
||||
@@ -129,6 +132,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
GifImageView btn_live;
|
||||
SVGAImageView gift_svga;
|
||||
|
||||
String userType;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -347,6 +351,8 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
isAnchor = obj.getInteger("is_anchor") == 1;
|
||||
mUserBean = JSON.toJavaObject(obj, UserBean.class);
|
||||
|
||||
userType = obj.getString("type");
|
||||
|
||||
mToName = obj.getString("user_nicename");
|
||||
mAvatarUrl = obj.getString("avatar");
|
||||
mAction = obj.getIntValue("action");
|
||||
@@ -663,7 +669,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
|
||||
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
|
||||
@Override
|
||||
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
|
||||
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
|
||||
if (liveBean == null) {
|
||||
return;
|
||||
}
|
||||
@@ -738,9 +744,32 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
} else if (i == R.id.btn_setting) {
|
||||
if (TextUtils.equals(mLiveUid, "uid")) return;
|
||||
setting();
|
||||
} else if (i == R.id.btn_pri_msg) {
|
||||
//私聊
|
||||
if (CommonAppConfig.getInstance().getUserBean().getUsers_type().equals("C") && userType.equals("C")) {
|
||||
showMsgError();
|
||||
return;
|
||||
}
|
||||
if (CommonAppConfig.getInstance().getUserBean().getUsers_type().equals("A") && userType.equals("A")) {
|
||||
showMsgError();
|
||||
return;
|
||||
}
|
||||
if (CommonAppConfig.getInstance().getUserBean().getUsers_type().equals("A") && userType.equals("B")) {
|
||||
showMsgError();
|
||||
return;
|
||||
}
|
||||
if (CommonAppConfig.getInstance().getUserBean().getUsers_type().equals("B") && userType.equals("A")) {
|
||||
showMsgError();
|
||||
return;
|
||||
}
|
||||
EventBus.getDefault().post(new MainHomeCommunityToChatEvent().setTargetId(mToUid));
|
||||
}
|
||||
}
|
||||
|
||||
public void showMsgError() {
|
||||
ToastUtil.show(WordUtil.isNewZh()?"無法聊天,待開發":"Unable to chat, awaiting development");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置
|
||||
|
||||
@@ -11,6 +11,8 @@ import com.yunbao.common.http.LiveHttpUtil;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.AppManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.views.LiveRoomViewHolder;
|
||||
|
||||
public abstract class AbsLinkMicPkPresenter {
|
||||
@@ -115,7 +117,22 @@ public abstract class AbsLinkMicPkPresenter {
|
||||
}
|
||||
|
||||
protected void isPKTmp(UserBean u) {
|
||||
isPK(u);
|
||||
LiveHttpUtil.livePkCheckLive(IMLoginManager.get(AppManager.getInstance().getMainActivity()).getUserInfo().getId()+"", "", "", new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0 && info.length > 0) {
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
if (obj != null) {
|
||||
if (obj.getString("ispk").equals("0")) {
|
||||
isPK(u);
|
||||
} else {
|
||||
ToastUtil.show(AppManager.getInstance().getMainActivity().getString(R.string.pking_over));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
protected void onDRPkApplyTmp(UserBean u) {
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.widget.ViewFlipper;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
@@ -374,6 +375,11 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
|
||||
} else {
|
||||
findViewById(R.id.total_image_red_point).setVisibility(View.GONE);
|
||||
}
|
||||
getMsgCount();
|
||||
}
|
||||
|
||||
private void getMsgCount() {
|
||||
MessageIMManager.get(mContext).resetImUnReadMessageCount(mContext);
|
||||
}
|
||||
|
||||
public void onGuardRed() {
|
||||
@@ -768,7 +774,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(MessageIMEvent event) {
|
||||
//判断消息中心红点是否已经展示,如果已经展示并且未读消息大于0则不再执行之后的逻辑
|
||||
int number = event.getMessage();
|
||||
int number = event.getNumber();
|
||||
if (v_msg_redpoint.getVisibility() == View.VISIBLE && number > 0 || SpUtil.getInstance().getBooleanValue("private_chat_message_switch"))
|
||||
return;
|
||||
if (number > 0) {
|
||||
|
||||
@@ -184,6 +184,7 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
||||
}
|
||||
|
||||
public void initSwEngine(String liveUid) {
|
||||
dr_pk_view.setVisibility(View.GONE);
|
||||
this.liveUid = liveUid;
|
||||
//初始化声网SDK
|
||||
swAuManager = SWAuManager.get();
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.lzf.easyfloat.EasyFloat;
|
||||
import com.lzf.easyfloat.enums.ShowPattern;
|
||||
import com.lzf.easyfloat.permission.PermissionUtils;
|
||||
import com.lzf.easyfloat.utils.LifecycleUtils;
|
||||
import com.yunbao.common.event.LiveMsgWindowsCloseEvent;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
@@ -1556,6 +1557,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
||||
|
||||
@Override
|
||||
public void onLiveEnd() {
|
||||
Bus.get().post(new LiveMsgWindowsCloseEvent());
|
||||
MicStatusManager.getInstance().clear();
|
||||
endPlay();
|
||||
if (!CommonAppConfig.LIVE_ROOM_SCROLL) {
|
||||
|
||||
@@ -14,38 +14,6 @@
|
||||
android:layout_height="50dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/btn_pri_msg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="13dp"
|
||||
android:layout_height="13dp"
|
||||
android:src="@mipmap/icon_user_home_msg" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:text="@string/pri_msg"
|
||||
android:textColor="@color/textColor"
|
||||
android:textSize="13sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/btn_home_page"
|
||||
android:layout_width="0dp"
|
||||
@@ -78,7 +46,32 @@
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
<FrameLayout
|
||||
android:id="@+id/btn_pri_msg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:visibility="visible">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:text="@string/im_pri_chat"
|
||||
android:textColor="@color/textColor"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
<FrameLayout
|
||||
android:id="@+id/btn_follow"
|
||||
android:layout_width="0dp"
|
||||
|
||||
@@ -3,18 +3,30 @@
|
||||
android:layout_width="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/bg_live_user"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<net.lucode.hackware.magicindicator.MagicIndicator
|
||||
android:id="@+id/indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="37dp"
|
||||
android:visibility="visible" />
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/titleCount"
|
||||
android:text="全部聊天(0)"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:textColor="#000000"
|
||||
android:textStyle="bold"
|
||||
android:textSize="15dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:layout_marginTop="20dp"
|
||||
android:id="@+id/viewPager"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@color/green_81c160"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
@@ -117,13 +117,15 @@
|
||||
<string name="live_fans_group_send_gift_tips">Fan group level Of Lv%s Can send this gift</string>
|
||||
<string name="live_rad_pack_join_fans_group_tip">Join the fan group can be opened [Join]</string>
|
||||
<string name="live_rad_pack_join_fans_group_click_tip">Join the fan group to open</string>
|
||||
<string name="message_chat_msg_all">全部聊天</string>
|
||||
<string name="message_chat_msg_system">系統匹配</string>
|
||||
<string name="message_chat_msg_user">對方主動</string>
|
||||
<string name="message_chat_msg_all">Chat All</string>
|
||||
<string name="message_chat_msg_all_an_a">Chat All</string>
|
||||
<string name="message_chat_msg_recommend">Suggest chat</string>
|
||||
<string name="message_chat_msg_system">System matching</string>
|
||||
<string name="message_chat_msg_user">User initiated</string>
|
||||
<string name="message_chat_msg_look_live">看直播%dmin</string>
|
||||
<string name="message_chat_msg_read_tip">[Read]</string>
|
||||
<string name="message_chat_msg_unread_tip">[Unread]</string>
|
||||
<string name="message_interactive_chat">發起聊天</string>
|
||||
<string name="message_interactive_chat">Initiate a chat</string>
|
||||
|
||||
<string name="prank_progress">Progress</string>
|
||||
<string name="turntable_prank">To do</string>
|
||||
|
||||
@@ -116,6 +116,8 @@
|
||||
<string name="live_rad_pack_join_fans_group_tip">加入粉絲團可開啟【加入】</string>
|
||||
<string name="live_rad_pack_join_fans_group_click_tip">加入粉絲團可開啟</string>
|
||||
<string name="message_chat_msg_all">全部聊天</string>
|
||||
<string name="message_chat_msg_all_an_a">全部聊天</string>
|
||||
<string name="message_chat_msg_recommend">推荐聊天</string>
|
||||
<string name="message_chat_msg_system">系統匹配</string>
|
||||
<string name="message_chat_msg_user">對方主動</string>
|
||||
<string name="message_chat_msg_look_live">看直播%dmin</string>
|
||||
|
||||
Reference in New Issue
Block a user