diff --git a/circle_app/android/build.gradle b/circle_app/android/build.gradle index 89af7cb..2870ca5 100644 --- a/circle_app/android/build.gradle +++ b/circle_app/android/build.gradle @@ -9,15 +9,12 @@ buildscript { maven{url 'https://maven.aliyun.com/repository/jcenter' } maven {url 'https://developer.huawei.com/repo/'} maven { url 'https://developer.hihonor.com/repo/' } - maven { url "https://mvn.mob.com/android"} } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.huawei.agconnect:agcp:1.6.0.300' - classpath 'com.android.tools.build:gradle:3.1.2' - classpath 'com.mob.sdk:MobSDK:+' } } diff --git a/circle_app/lib/app/circle/view.dart b/circle_app/lib/app/circle/view.dart index 2a8d98f..322a74b 100644 --- a/circle_app/lib/app/circle/view.dart +++ b/circle_app/lib/app/circle/view.dart @@ -729,15 +729,57 @@ class _CirclePageState extends State Positioned( right: 0, child: logic.isShowCircle - ? GestureDetector( - onTap: () { - Get.toNamed(AppRoutes.MyCircle, arguments: ''); - }, - child: Image.asset( - getCircleImage('my_circle'), - width: 64.sp, + ? + GestureDetector( + onTap: (){ + Get.toNamed(AppRoutes.Invite); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(17.0), + gradient: const LinearGradient( + colors: [ + Color(0xFF06F9FA), + Color(0xFFDC5BFD), + ], + ), + color: const Color(0xFF392D53), + ), + child: Container( + margin: EdgeInsets.all(0.6.sp), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(17.0), + color: const Color(0xFF392D53), + ), + child: Padding( + padding: EdgeInsets.only( + top: 5.sp, + bottom: 4.sp, + left: 15.sp, + right: 15.sp, ), - ) + child: const Center( + child: Text( + "邀请得会员", + style: TextStyle( + fontSize: 11, + color: Colors.white, + ), + ), + ), + ), + ), + ), + ) + // GestureDetector( + // onTap: () { + // Get.toNamed(AppRoutes.MyCircle, arguments: ''); + // }, + // child: Image.asset( + // getCircleImage('my_circle'), + // width: 64.sp, + // ), + // ) : GestureDetector( onTap: () { _showBottomSheet(context); diff --git a/circle_app/lib/app/home/logic.dart b/circle_app/lib/app/home/logic.dart index 964fab1..1a5917c 100644 --- a/circle_app/lib/app/home/logic.dart +++ b/circle_app/lib/app/home/logic.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:io'; import 'dart:ffi'; @@ -18,6 +19,7 @@ import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart'; import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart'; import '../../util/eventBus.dart'; +import '../../view/notice.dart'; import '../circle/view.dart'; import '../dialog/UpdateDialog.dart'; import '../minefragment/view.dart'; @@ -58,7 +60,53 @@ class HomeLogic extends GetxController { print("收到新消息" + text); unreadSIze.value = (int.parse(unreadSIze.value) + 1).toString(); //getUnreadSize(); + }, onRecvC2CCustomMessage: ( + String msgID, + V2TimUserInfo sender, + String customData, + ) { + + if (sender.userID == "qpqz_dev_10_10000000000" || + sender.userID == "qpqz_prod_10_10000000000") { + + + print("123123123123"+customData); + Map jsonData = json.decode(customData); + int event = jsonData['event']; + Map content = jsonData['content']; + switch(event){ + case 1://关注 + String ageMsg = "${content['genderName']}·${content['age']}·${content['roleName']}·${content['orientationName']}"; + if(content['isFollow']==1){//互关 + showFloatingButtonOverlay(Get.context!,content['nickname'],ageMsg,content['avatarThumb'],3,(){ + pushChatPage(content['id'].toString(), content['imId'], + content['nickname']); + }); + }else{ + showFloatingButtonOverlay(Get.context!,content['nickname'],ageMsg,content['avatarThumb'],1,(){ + setLike(content['id'].toString()); + }); + } + + break; + case 2://上线 + + String ageMsg = "${content['genderName']}·${content['age']}·${content['roleName']}·${content['orientationName']}"; + + showFloatingButtonOverlay(Get.context!,content['nickname'],ageMsg,content['avatarThumb'],2,(){ + pushChatPage(content['id'].toString(), content['imId'], + content['nickname']); + }); + break; + } + + } }); + + + + + _messageService.addSimpleMsgListener(listener: msgListener); var data = await DioManager.instance.get(url: Api.APP_VERSION); @@ -68,7 +116,19 @@ class HomeLogic extends GetxController { showReportDialog(Get.context!, bean.data.constraint == 0, bean.data); } } - + setLike(String userId) async { + var data = await DioManager.instance.post( + url: "${Api.setLike + userId}/follow", + params: {'status': "1"}); + var bean = BaseResponse.fromJson( + data, + (jsonData) => jsonData, + ); + if (bean.isSuccess()) { + update(); + } + showOKToast(bean.msg); + } getUnreadSize() async { V2TimValueCallback getTotalUnreadMessageCountRes = await TencentImSDKPlugin.v2TIMManager diff --git a/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart b/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart index 6898ef4..c375a7b 100644 --- a/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart +++ b/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart @@ -211,6 +211,16 @@ class _TIMConversationState extends TIMUIKitState { .where( (element) => (element?.groupID != null || element?.userID != null)) .toList(); + + // 过滤指定的 userID + String devtTargetUserID = "qpqz_dev_10_10000000000"; + String prodTargetUserID = "qpqz_dev_10_10000000000"; + filteredConversationList = filteredConversationList + .where((conversation) => + conversation?.userID != devtTargetUserID ||conversation?.userID != prodTargetUserID) + .toList(); + + if (widget.conversationCollector != null) { filteredConversationList = filteredConversationList .where(widget.conversationCollector!) diff --git a/circle_app/lib/app/userinfo/logic.dart b/circle_app/lib/app/userinfo/logic.dart index 72c0315..eb6f765 100644 --- a/circle_app/lib/app/userinfo/logic.dart +++ b/circle_app/lib/app/userinfo/logic.dart @@ -156,7 +156,7 @@ class UserinfoLogic extends GetxController { if (countdown > 0) { countdown--; } else { - showFloatingButtonOverlay(Get.context!,userInfoBean!.nickname!,ageMsg,userInfoBean!.avatarThumb,(){ + showFloatingButtonOverlay(Get.context!,userInfoBean!.nickname!,ageMsg,userInfoBean!.avatarThumb,0,(){ setLike(); }); diff --git a/circle_app/lib/main.dart b/circle_app/lib/main.dart index ef9567e..edea9d9 100644 --- a/circle_app/lib/main.dart +++ b/circle_app/lib/main.dart @@ -51,6 +51,15 @@ loginIM(String userId, String sig) async { ); if (info.code == 0) { uploadBuzIDAndToken(); + V2TimCallback setC2CReceiveMessageOptRes = await TencentImSDKPlugin + .v2TIMManager + .getMessageManager() + .setC2CReceiveMessageOpt( + userIDList: ['qpqz_dev_10_10000000000','qpqz_prod_10_10000000000'], // 需要设置的用户id列表 + opt: ReceiveMsgOptEnum.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE); // 用户消息接收选项属性 + if (setC2CReceiveMessageOptRes.code == 0) { + //设置成功 + } } } @@ -415,8 +424,6 @@ class _MyAppState extends State with WidgetsBindingObserver { listener: V2TimSDKListener(onConnectSuccess: () { print('IM登录成功'); // loginIM(); - },onUserStatusChanged:(List userStatusList){ - })); } diff --git a/circle_app/lib/view/notice.dart b/circle_app/lib/view/notice.dart index a2d6923..b9cf305 100644 --- a/circle_app/lib/view/notice.dart +++ b/circle_app/lib/view/notice.dart @@ -9,7 +9,7 @@ typedef void NoticeCallback(); void showFloatingButtonOverlay( - BuildContext context, String nickname, String ageMsg, String avatar,NoticeCallback noticeCallback) { + BuildContext context, String nickname, String ageMsg, String avatar,int event,NoticeCallback noticeCallback) { OverlayState? overlayState = Overlay.of(context); late OverlayEntry overlayEntry; bool showMessage = false; @@ -97,8 +97,13 @@ void showFloatingButtonOverlay( ], ), const SizedBox(height: 8), - Text( - "看了这么久,给我点个喜欢呗~", + Text( event == 0 + ? "看了这么久,给我点个喜欢呗~" + : event == 1 + ? "我喜欢了你,可以喜欢我一下吗?" + : event == 2 + ? "你喜欢的人上线啦,赶紧找他聊天吧!" + : "我也喜欢了你,一起聊聊呗~", style: TextStyle( color: Colors.grey, fontSize: 12.sp, @@ -136,7 +141,13 @@ void showFloatingButtonOverlay( padding: EdgeInsets.symmetric( horizontal: 16.sp, vertical: 6.sp), child: Text( - "喜欢", + event == 0 + ? "喜欢" + : event == 1 + ? "回关" + : event == 2 + ? "私聊" + : "私聊", style: TextStyle( color: Colors.white, fontSize: 14.sp,