1:添加权限说明

2:聊天添加举报按钮
This commit is contained in:
2025-10-30 18:13:59 +08:00
parent a5ebc83dea
commit a993a7710f
21 changed files with 423 additions and 361 deletions

View File

@@ -1,23 +1,32 @@
package com.tencent.qcloud.tuikit.tuichat.classicui.page;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.google.gson.Gson;
import com.tencent.imsdk.relationship.UserInfo;
import com.tencent.qcloud.tuicore.TUIConstants;
import com.tencent.qcloud.tuicore.TUICore;
import com.tencent.qcloud.tuicore.interfaces.TUIExtensionEventListener;
import com.tencent.qcloud.tuicore.interfaces.TUIExtensionInfo;
import com.tencent.qcloud.tuicore.interfaces.TUIValueCallback;
import com.tencent.qcloud.tuikit.timcommon.bean.UserBean;
import com.tencent.qcloud.tuikit.tuichat.R;
import com.tencent.qcloud.tuikit.tuichat.TUIChatConstants;
import com.tencent.qcloud.tuikit.tuichat.bean.C2CChatInfo;
import com.tencent.qcloud.tuikit.tuichat.bean.ChatInfo;
import com.tencent.qcloud.tuikit.tuichat.classicui.widget.input.InputView;
import com.tencent.qcloud.tuikit.tuichat.presenter.C2CChatPresenter;
import com.tencent.qcloud.tuikit.tuichat.presenter.FriendProfilePresenter;
import com.tencent.qcloud.tuikit.tuichat.util.TUIChatLog;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
@@ -63,38 +72,91 @@ public class TUIC2CChatFragment extends TUIBaseChatFragment {
}
private void setTitleBarExtension() {
titleBar.getRightGroup().setVisibility(View.GONE);
titleBar.getRightGroup().setVisibility(View.VISIBLE);
titleBar.setRightIcon(R.drawable.chat_title_bar_more_menu_icon);
titleBar.setOnRightClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Map<String, Object> param = new HashMap<>();
param.put(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.USER_ID, chatInfo.getId());
List<TUIExtensionInfo> extensionInfoList =
TUICore.getExtensionList(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.CLASSIC_EXTENSION_ID, param);
if (!extensionInfoList.isEmpty()) {
Collections.sort(extensionInfoList, new Comparator<TUIExtensionInfo>() {
@Override
public int compare(TUIExtensionInfo o1, TUIExtensionInfo o2) {
return o2.getWeight() - o1.getWeight();
}
});
TUIExtensionInfo extensionInfo = extensionInfoList.get(0);
TUIExtensionEventListener eventListener = extensionInfo.getExtensionListener();
if (eventListener != null) {
Map<String, Object> map = new HashMap<>();
map.put(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.USER_ID, chatInfo.getId());
map.put(TUIChatConstants.CHAT_BACKGROUND_URI, mChatBackgroundThumbnailUrl);
eventListener.onClicked(map);
}
} else {
String userId = chatInfo.getId();
openFriendProfile(userId);
}
// Map<String, Object> param = new HashMap<>();
// param.put(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.USER_ID, chatInfo.getId());
// List<TUIExtensionInfo> extensionInfoList =
// TUICore.getExtensionList(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.CLASSIC_EXTENSION_ID, param);
// if (!extensionInfoList.isEmpty()) {
// Collections.sort(extensionInfoList, new Comparator<TUIExtensionInfo>() {
// @Override
// public int compare(TUIExtensionInfo o1, TUIExtensionInfo o2) {
// return o2.getWeight() - o1.getWeight();
// }
// });
// TUIExtensionInfo extensionInfo = extensionInfoList.get(0);
// TUIExtensionEventListener eventListener = extensionInfo.getExtensionListener();
// if (eventListener != null) {
// Map<String, Object> map = new HashMap<>();
// map.put(TUIConstants.TUIChat.Extension.ChatNavigationMoreItem.USER_ID, chatInfo.getId());
// map.put(TUIChatConstants.CHAT_BACKGROUND_URI, mChatBackgroundThumbnailUrl);
// eventListener.onClicked(map);
// }
// } else {
// String userId = chatInfo.getId();
// openFriendProfile(userId);
// }
// 显示默认菜单,包含举报功能
showReportPopupMenu(v);
}
});
}
private void showReportPopupMenu(View anchorView) {
// 创建 PopupMenu 或自定义 PopupWindow
android.widget.PopupMenu popupMenu = new android.widget.PopupMenu(getContext(), anchorView);
// 添加举报选项
popupMenu.getMenu().add("举报");
// 设置点击监听
popupMenu.setOnMenuItemClickListener(new android.widget.PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(android.view.MenuItem item) {
if ("举报".equals(item.getTitle())) {
ARouter.getInstance().build("/moduleUtil/WebViewActivity").withString("url", "https://vespa.qxyushen.top/h5/web/index.html#/pages/feedback/report?id=?id="+getToken()+"&fromType=1&fromId="+ getUserInfo().getUser_id()).navigation();
return true;
}
return false;
}
});
popupMenu.show();
}
private String getToken(){
SharedPreferences sp = getContext().getSharedPreferences("Vespa", Context.MODE_PRIVATE);
return sp.getString("token","");
}
private UserIfo getUserInfo(){
SharedPreferences sp = getContext().getSharedPreferences("Vespa", Context.MODE_PRIVATE);
String s= sp.getString("userInfo","");
if (TextUtils.isEmpty(s)){
return null;
}
Gson Gson = new Gson();
UserIfo userInd =Gson.fromJson(s, UserIfo.class);
return userInd;
}
public static class UserIfo{
String user_id;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
}
private void openFriendProfile(String userId) {
// Intent intent = new Intent(getContext(), FriendProfileActivity.class);
// intent.putExtra(TUIConstants.TUIChat.CHAT_ID, userId);

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B