@@ -39,6 +39,7 @@ import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter/services.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:permission_handler/permission_handler.dart'; | |||
import 'package:provider/provider.dart'; | |||
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; | |||
import '../r.dart'; | |||
@@ -89,6 +90,8 @@ class _ChatPageState extends State<ChatPage> { | |||
int jumpTime; | |||
bool hasChatPermission=false; | |||
@override | |||
void dispose() { | |||
var endTime = DateTime.now().millisecondsSinceEpoch ~/ 1000; | |||
@@ -149,11 +152,46 @@ class _ChatPageState extends State<ChatPage> { | |||
msgMgr.on('Delete Select Message', _deleteItem); | |||
msgMgr.on(MessageMgr.TRANSLATE_HK_END_CHAT, translateHKChatEnd); | |||
msgMgr.on('Jump to Msg', jumpToMsg); | |||
WidgetsBinding.instance.addPostFrameCallback((_) { | |||
checkPermission(); | |||
}); | |||
} | |||
checkPermission()async{ | |||
if(isTranslateButler){ | |||
if (await CustomUI.showPermissionSetting(context, | |||
PermissionGroup.microphone, I18n.of(context).video_permission)) { | |||
setState(() { | |||
hasChatPermission=true; | |||
dx=Screen.width - zoomButtonSizeWidth; | |||
dy = (Screen.height - zoomButtonSizeHeight)/2; | |||
}); | |||
} else { | |||
hasChatPermission=false; | |||
showToast(I18n.of(context).need_record); | |||
} | |||
} | |||
} | |||
translateHKChatEnd(args){ | |||
setState(() { | |||
isShowZoomButton=false; | |||
isTranslateButlerFinish=true; | |||
TranslateHKMgr().order=null; | |||
}); | |||
} | |||
@@ -414,7 +452,7 @@ class _ChatPageState extends State<ChatPage> { | |||
child: Column( | |||
children: <Widget>[ | |||
NetStateWidget(), | |||
(isTranslateButler&!isTranslateButlerFinish) | |||
(isTranslateButler) | |||
? _buildTranslationButler() | |||
: Container(), | |||
Expanded(child: _buildMessageList()), | |||
@@ -480,21 +518,21 @@ class _ChatPageState extends State<ChatPage> { | |||
} | |||
Widget getAudioChatView() { | |||
if (friendInfo == null || isTranslateButlerFinish) { | |||
if (friendInfo == null || isTranslateButlerFinish || !hasChatPermission) { | |||
return Container(); | |||
} | |||
return isActive == null | |||
? Container() | |||
: Offstage( | |||
offstage: !isShowAudio, | |||
child: AudioChatPage( | |||
userInfo: friendInfo, | |||
isTranslateButler: true, | |||
isReplay: !TranslateHKMgr().isUser, | |||
translateButlerCloseCallBack: audioChatPageCallBack, | |||
), | |||
); | |||
return isActive | |||
? Offstage( | |||
offstage: !isShowAudio, | |||
child: AudioChatPage( | |||
userInfo: friendInfo, | |||
isTranslateButler: true, | |||
isReplay: !TranslateHKMgr().isUser, | |||
translateButlerCloseCallBack: audioChatPageCallBack, | |||
), | |||
):Container() | |||
; | |||
} | |||
audioChatPageCallBack(int args) { | |||
@@ -507,7 +545,9 @@ class _ChatPageState extends State<ChatPage> { | |||
break; | |||
case 2: | |||
setState(() { | |||
print('连麦关闭GGGGGGGG'); | |||
isActive = false; | |||
isShowZoomButton=false; | |||
}); | |||
break; | |||
} | |||
@@ -523,7 +563,8 @@ class _ChatPageState extends State<ChatPage> { | |||
GlobalKey mykey = GlobalKey(); | |||
double dx = 0 , dy = 0; | |||
double zoomButtonSize = 60; | |||
double zoomButtonSizeWidth = 60; | |||
double zoomButtonSizeHeight = 74; | |||
void dragEvent(DragUpdateDetails details) { | |||
final RenderObject box = context.findRenderObject(); | |||
@@ -533,14 +574,14 @@ class _ChatPageState extends State<ChatPage> { | |||
// print('dx $dx dy $dy screen width:${Screen.width}'); | |||
if (dx > Screen.width - zoomButtonSize) { | |||
dx = Screen.width - zoomButtonSize; | |||
if (dx > Screen.width - zoomButtonSizeWidth) { | |||
dx = Screen.width - zoomButtonSizeWidth; | |||
} else if (dx < 0) { | |||
dx = 0; | |||
} | |||
if (dy > Screen.height - zoomButtonSize) { | |||
dy = Screen.height - zoomButtonSize; | |||
if (dy > Screen.height - zoomButtonSizeHeight) { | |||
dy = Screen.height - zoomButtonSizeHeight; | |||
} else if (dy < 0) { | |||
dy = 0; | |||
} | |||
@@ -550,14 +591,14 @@ class _ChatPageState extends State<ChatPage> { | |||
Widget zoomAudioButton() { | |||
if (friendInfo == null || !isShowZoomButton) { | |||
if (friendInfo == null || !isShowZoomButton || !hasChatPermission) { | |||
return Container(); | |||
} | |||
Widget button = Container( | |||
key: mykey, | |||
width: 57, | |||
height: 74, | |||
width: zoomButtonSizeWidth, | |||
height: zoomButtonSizeHeight, | |||
child: Card(child: Align(child: Icon( | |||
IconData(0xe67d, fontFamily: Constants.IconFontFamily), | |||
color: Color(0xFF008AFF), | |||
@@ -648,7 +689,7 @@ class _ChatPageState extends State<ChatPage> { | |||
constraints: BoxConstraints(maxWidth: 135), | |||
), | |||
), | |||
TranslateHKMgr().isUser?Expanded( | |||
(TranslateHKMgr().isUser&& !isTranslateButlerFinish)?Expanded( | |||
child: Container( | |||
constraints: BoxConstraints(maxWidth: 130), | |||
width: double.maxFinite, | |||
@@ -220,7 +220,7 @@ class _AudioChatPageState extends State<AudioChatPage> { | |||
widget.isTranslateButler?InkWell(child: Container( width: 60,height: 60,child: Align(child: Icon( | |||
IconData(0xe67f, fontFamily: Constants.IconFontFamily), | |||
color: Colors.white, | |||
size: 35.0, | |||
size: 28.0, | |||
),alignment: Alignment.center,),),onTap: (){ | |||
widget.translateButlerCloseCallBack(1); | |||
print('内页内页'); | |||
@@ -476,6 +476,9 @@ class _AudioChatPageState extends State<AudioChatPage> { | |||
isChating = true; | |||
}); | |||
} else { | |||
// if(!widget.isTranslateButler){ | |||
// | |||
// } | |||
MsgHandler.sendAudioChatReq(widget.userInfo.userId); | |||
callingTimer = Timer.periodic(Duration(milliseconds: 2200), (timer) { | |||
@@ -781,10 +784,13 @@ class _AudioChatPageState extends State<AudioChatPage> { | |||
//退出频道 退出本页面 | |||
void _onExit(BuildContext context) { | |||
if (!isQuit) { | |||
print('连麦关闭AAAA'); | |||
if (Navigator.canPop(context)) { | |||
isQuit = true; | |||
print('连麦关闭BBBB'); | |||
if(widget.translateButlerCloseCallBack!=null){ | |||
print('连麦关闭CCCCCCCC'); | |||
widget.translateButlerCloseCallBack(2); | |||
}else{ | |||
Navigator.of(context).pop(); | |||
@@ -68,7 +68,6 @@ class _LastChatItemState extends State<LastChatItem> { | |||
int unreadCount = ChatDataMgr() | |||
.unreadCountProvider | |||
.getUnreadCount(widget.lastMessageModel.sessionId); | |||
print('build lastchatimte 未读消息数$unreadCount'); | |||
if (userInfo == null ) { | |||
print(('userinfo ==null')); | |||
@@ -5,6 +5,7 @@ import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/TokenMgr.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:dio/dio.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
@@ -28,61 +29,34 @@ class RealTimeHelperPage extends StatefulWidget { | |||
class RealTimeHelperPageState extends State<RealTimeHelperPage> { | |||
bool isTranslateHKLogin = false; | |||
bool isReceiveOrder = false; | |||
bool isReady=false; | |||
@override | |||
void initState() { | |||
super.initState(); | |||
MessageMgr().on('update_system',refresh); | |||
WidgetsBinding.instance.addPostFrameCallback((_) { | |||
isTranslateAndStatus(); | |||
}); | |||
// MessageMgr().on('update_system',refresh); | |||
MessageMgr().on(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,isReceiveOrderMsg); | |||
} | |||
refresh(args){ | |||
isTranslateAndStatus(); | |||
} | |||
///实时帮-翻译人员状态,是否是翻译人员 | |||
isTranslateAndStatus() async { | |||
Map data = { | |||
"userId": UserData().basicInfo.userId, | |||
}; | |||
data['sign'] = TokenMgr().getSign(data); | |||
Response res = await HttpUtil().post('steward/userStatus', data: data); | |||
if (res == null) { | |||
print('请求异常'); | |||
return; | |||
} | |||
var resData = res.data; | |||
if (resData['code'] == 0) { | |||
isReady=true; | |||
print('xxxdksldsd $resData'); | |||
UserData().isTranslateUser = resData['data']['isTranslateUser'] == 1; | |||
int status = resData['data']['Status'] ; | |||
if(status==1){ | |||
isTranslateHKLogin=true; | |||
} | |||
setState(() { | |||
}); | |||
print('翻译人员状态 status $status isTranslateUser ${UserData().isTranslateUser} '); | |||
}else{ | |||
print('获取翻译人员翻译人员状态 失败 ${resData['msg']}'); | |||
} | |||
isReceiveOrderMsg(data){ | |||
bool isReceive = data; | |||
isReceiveOrder = isReceive; | |||
setState(() {}); | |||
} | |||
@override | |||
void dispose() { | |||
super.dispose(); | |||
MessageMgr().on('update_system',refresh); | |||
// MessageMgr().off('update_system',refresh); | |||
MessageMgr().off(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,isReceiveOrderMsg); | |||
} | |||
@@ -126,28 +100,23 @@ class RealTimeHelperPageState extends State<RealTimeHelperPage> { | |||
child: SafeArea( | |||
child: ListView( | |||
children: <Widget>[ | |||
SizedBox(height: 4,), | |||
Container( | |||
alignment: Alignment.center, | |||
child: fixedText(I18n.of(context).translation_butler_title3, color: Colors.white, fontSize: 21), | |||
), | |||
UnconstrainedBox(child: InkWell(onTap: (){ | |||
HttpUtil().translateHKloginRecord(!isTranslateHKLogin,(){ | |||
isTranslateHKLogin = !isTranslateHKLogin; | |||
setState(() { | |||
}); | |||
}); | |||
MsgHandler.translateReceiptOrStopOrder(!isReceiveOrder); | |||
},child: Container( | |||
alignment: Alignment.center, | |||
padding: EdgeInsets.only(left: 11,right: 11,top: 3,bottom: 3), | |||
decoration: BoxDecoration( | |||
border: Border.all(color: isTranslateHKLogin?Color(0xFFFEE645):Colors.white, width: 1), | |||
border: Border.all(color: isReceiveOrder?Color(0xFFFEE645):Colors.white, width: 1), | |||
borderRadius: BorderRadius.circular(11)), | |||
child: fixedText(isTranslateHKLogin?I18n.of(context).translation_butler_start_receive_order:I18n.of(context).translation_butler_stop_receive_order, color: isTranslateHKLogin?Color(0xFFFEE645):Colors.white, fontSize: 15), | |||
child: fixedText(isReceiveOrder?I18n.of(context).translation_butler_start_receive_order:I18n.of(context).translation_butler_stop_receive_order, color: isReceiveOrder?Color(0xFFFEE645):Colors.white, fontSize: 15), | |||
),),), | |||
Container( | |||
padding: EdgeInsets.only(left: 13,top: 20), | |||
@@ -247,7 +216,7 @@ class RealTimeHelperPageState extends State<RealTimeHelperPage> { | |||
), | |||
), | |||
), | |||
onTap: isReady?callBack:null, | |||
onTap: callBack, | |||
); | |||
} | |||
} |
@@ -62,7 +62,7 @@ class TravelEvaluationPageState extends State<TravelEvaluationPage> { | |||
for(int k=0;k<list.length;k++){ | |||
EvaluationBean item = posList[k]; | |||
if(item.isSelect){ | |||
if(k==0){ | |||
if(value==''){ | |||
value= '${item.id}'; | |||
}else{ | |||
value = value+'|${item.id}'; | |||
@@ -205,6 +205,7 @@ class TranslateOrderPushPageState extends State<TranslateOrderPushPage> { | |||
MsgHandler.sendReceiveOrder(); | |||
Navigator.of(context).pop(); | |||
}, | |||
countDownTime: 60, | |||
), | |||
) | |||
], | |||
@@ -140,7 +140,6 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||
if(widget.lastMessageModel.channelType==ChatChannelType.Session.value){ | |||
///翻译管家的 通知消息 | |||
print('翻译管家的 通知消息-'); | |||
TransHKChatNotice res = TransHKChatNotice.fromBuffer(widget.lastMessageModel.msgContent); | |||
if(res.noticeType==TransHKChatNoticeType.StartChat){ | |||
desc = I18n.of(Constants.getCurrentContext()).translation_butler_last_item_start; | |||
@@ -45,6 +45,8 @@ class LoginAccountRes extends $pb.GeneratedMessage { | |||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('LoginAccountRes', package: const $pb.PackageName('yl_pb')) | |||
..a<$core.int>(1, 'errorCode', $pb.PbFieldType.O3) | |||
..aOS(2, 'httpAddr') | |||
..aOB(3, 'isTransHKInter') | |||
..aOB(4, 'isReceipt') | |||
..hasRequiredFields = false | |||
; | |||
@@ -71,6 +73,16 @@ class LoginAccountRes extends $pb.GeneratedMessage { | |||
set httpAddr($core.String v) { $_setString(1, v); } | |||
$core.bool hasHttpAddr() => $_has(1); | |||
void clearHttpAddr() => clearField(2); | |||
$core.bool get isTransHKInter => $_get(2, false); | |||
set isTransHKInter($core.bool v) { $_setBool(2, v); } | |||
$core.bool hasIsTransHKInter() => $_has(2); | |||
void clearIsTransHKInter() => clearField(3); | |||
$core.bool get isReceipt => $_get(3, false); | |||
set isReceipt($core.bool v) { $_setBool(3, v); } | |||
$core.bool hasIsReceipt() => $_has(3); | |||
void clearIsReceipt() => clearField(4); | |||
} | |||
class PushUserOutLogin extends $pb.GeneratedMessage { | |||
@@ -18,6 +18,8 @@ const LoginAccountRes$json = const { | |||
'2': const [ | |||
const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 5, '10': 'ErrorCode'}, | |||
const {'1': 'HttpAddr', '3': 2, '4': 1, '5': 9, '10': 'HttpAddr'}, | |||
const {'1': 'IsTransHKInter', '3': 3, '4': 1, '5': 8, '10': 'IsTransHKInter'}, | |||
const {'1': 'IsReceipt', '3': 4, '4': 1, '5': 8, '10': 'IsReceipt'}, | |||
], | |||
}; | |||
@@ -10,6 +10,8 @@ message LoginAccountReq { | |||
message LoginAccountRes { | |||
optional int32 ErrorCode = 1; //0 成功 1参数错误 2签名错误 3用户不存在 4用户已登陆 | |||
optional string HttpAddr = 2; //服务器对应http服务地址 | |||
optional bool IsTransHKInter = 3; //是否是翻译人员 | |||
optional bool IsReceipt = 4; //是否接单 | |||
} | |||
//Msg = 3 推送用户推出登陆状态 | |||
@@ -260,6 +260,64 @@ class EndTransHKOrderRes extends $pb.GeneratedMessage { | |||
void clearOrderId() => clearField(2); | |||
} | |||
class TransHKInterSetIsReceiptReq extends $pb.GeneratedMessage { | |||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('TransHKInterSetIsReceiptReq', package: const $pb.PackageName('yl_pb')) | |||
..aOB(1, 'isReceipt') | |||
..hasRequiredFields = false | |||
; | |||
TransHKInterSetIsReceiptReq._() : super(); | |||
factory TransHKInterSetIsReceiptReq() => create(); | |||
factory TransHKInterSetIsReceiptReq.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |||
factory TransHKInterSetIsReceiptReq.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |||
TransHKInterSetIsReceiptReq clone() => TransHKInterSetIsReceiptReq()..mergeFromMessage(this); | |||
TransHKInterSetIsReceiptReq copyWith(void Function(TransHKInterSetIsReceiptReq) updates) => super.copyWith((message) => updates(message as TransHKInterSetIsReceiptReq)); | |||
$pb.BuilderInfo get info_ => _i; | |||
@$core.pragma('dart2js:noInline') | |||
static TransHKInterSetIsReceiptReq create() => TransHKInterSetIsReceiptReq._(); | |||
TransHKInterSetIsReceiptReq createEmptyInstance() => create(); | |||
static $pb.PbList<TransHKInterSetIsReceiptReq> createRepeated() => $pb.PbList<TransHKInterSetIsReceiptReq>(); | |||
static TransHKInterSetIsReceiptReq getDefault() => _defaultInstance ??= create()..freeze(); | |||
static TransHKInterSetIsReceiptReq _defaultInstance; | |||
$core.bool get isReceipt => $_get(0, false); | |||
set isReceipt($core.bool v) { $_setBool(0, v); } | |||
$core.bool hasIsReceipt() => $_has(0); | |||
void clearIsReceipt() => clearField(1); | |||
} | |||
class TransHKInterSetIsReceiptRes extends $pb.GeneratedMessage { | |||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('TransHKInterSetIsReceiptRes', package: const $pb.PackageName('yl_pb')) | |||
..a<$core.int>(1, 'errorCode', $pb.PbFieldType.O3) | |||
..aOB(2, 'isReceipt') | |||
..hasRequiredFields = false | |||
; | |||
TransHKInterSetIsReceiptRes._() : super(); | |||
factory TransHKInterSetIsReceiptRes() => create(); | |||
factory TransHKInterSetIsReceiptRes.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |||
factory TransHKInterSetIsReceiptRes.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |||
TransHKInterSetIsReceiptRes clone() => TransHKInterSetIsReceiptRes()..mergeFromMessage(this); | |||
TransHKInterSetIsReceiptRes copyWith(void Function(TransHKInterSetIsReceiptRes) updates) => super.copyWith((message) => updates(message as TransHKInterSetIsReceiptRes)); | |||
$pb.BuilderInfo get info_ => _i; | |||
@$core.pragma('dart2js:noInline') | |||
static TransHKInterSetIsReceiptRes create() => TransHKInterSetIsReceiptRes._(); | |||
TransHKInterSetIsReceiptRes createEmptyInstance() => create(); | |||
static $pb.PbList<TransHKInterSetIsReceiptRes> createRepeated() => $pb.PbList<TransHKInterSetIsReceiptRes>(); | |||
static TransHKInterSetIsReceiptRes getDefault() => _defaultInstance ??= create()..freeze(); | |||
static TransHKInterSetIsReceiptRes _defaultInstance; | |||
$core.int get errorCode => $_get(0, 0); | |||
set errorCode($core.int v) { $_setSignedInt32(0, v); } | |||
$core.bool hasErrorCode() => $_has(0); | |||
void clearErrorCode() => clearField(1); | |||
$core.bool get isReceipt => $_get(1, false); | |||
set isReceipt($core.bool v) { $_setBool(1, v); } | |||
$core.bool hasIsReceipt() => $_has(1); | |||
void clearIsReceipt() => clearField(2); | |||
} | |||
class DeliveryTransHKOrderPush extends $pb.GeneratedMessage { | |||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('DeliveryTransHKOrderPush', package: const $pb.PackageName('yl_pb')) | |||
..aOS(1, 'orderId') | |||
@@ -86,6 +86,21 @@ const EndTransHKOrderRes$json = const { | |||
], | |||
}; | |||
const TransHKInterSetIsReceiptReq$json = const { | |||
'1': 'TransHKInterSetIsReceiptReq', | |||
'2': const [ | |||
const {'1': 'IsReceipt', '3': 1, '4': 1, '5': 8, '10': 'IsReceipt'}, | |||
], | |||
}; | |||
const TransHKInterSetIsReceiptRes$json = const { | |||
'1': 'TransHKInterSetIsReceiptRes', | |||
'2': const [ | |||
const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 5, '10': 'ErrorCode'}, | |||
const {'1': 'IsReceipt', '3': 2, '4': 1, '5': 8, '10': 'IsReceipt'}, | |||
], | |||
}; | |||
const DeliveryTransHKOrderPush$json = const { | |||
'1': 'DeliveryTransHKOrderPush', | |||
'2': const [ | |||
@@ -65,6 +65,17 @@ message EndTransHKOrderRes{ | |||
optional string OrderId = 2; //订单号 | |||
} | |||
//翻译官设置是否接单Msg= 9 | |||
message TransHKInterSetIsReceiptReq { | |||
optional bool IsReceipt = 1; //详见错误码文档 | |||
} | |||
//翻译官设置是否接单Msg= 10 | |||
message TransHKInterSetIsReceiptRes { | |||
optional int32 ErrorCode = 1; //详见错误码文档 | |||
optional bool IsReceipt = 2; //详见错误码文档 | |||
} | |||
//Msg= 20 派送订单推送 | |||
message DeliveryTransHKOrderPush { | |||
optional string OrderId =1; //订单号 | |||
@@ -11,6 +11,7 @@ class MessageMgr { | |||
static const String TRANSLATE_HK_CANCEL_ORDER ='translate_hk_cancel_order'; | |||
static const String TRANSLATE_HK_START_CHAT ='translate_hk_start_chat'; | |||
static const String TRANSLATE_HK_END_CHAT ='translate_hk_end_chat'; | |||
static const String TRANSLATE_HK_IS_RECEIVED_ORDER ='translate_hk_is_receive_order'; | |||
//私有构造函数 | |||
@@ -153,6 +153,11 @@ class NetWork { | |||
//登陆成功回应 | |||
var msgContent = LoginAccountRes.fromBuffer(content); | |||
if (msgContent.errorCode == 0) { | |||
UserData().isTranslateUser =msgContent.isTransHKInter; //是否是翻译人员 | |||
MessageMgr().emit(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,msgContent.isReceipt);//是否开启接单 | |||
print('登录成功'); | |||
isLogin = true; | |||
_stateBloc.addState(ChatState.logined); | |||
@@ -414,13 +414,10 @@ class MsgHandler { | |||
} | |||
else if(isTranslateHK){ | |||
var myId = UserData().basicInfo.userId; | |||
print('chat.contentBuff:${chat.contentBuff.length}'); | |||
TransHKChatNotice notice = TransHKChatNotice.fromBuffer(chat.contentBuff); | |||
BaseUserInfo friendId ; | |||
print('chat.contentBuff AAAA'); | |||
TranslateHKMgr().isUser = myId== notice.employer.id; ///判断自己是翻译官还是用户 | |||
print('chat.contentBuff BBBB'); | |||
if(myId== notice.employer.id){ | |||
friendId =notice.inter; | |||
}else{ | |||
@@ -429,7 +426,7 @@ class MsgHandler { | |||
print('friend id: ${friendId.id} '); | |||
print('结束chat.sendTime ${chat.sendTime}'); | |||
int sessionId = chat.targetId; | |||
if (chat.cType == ChatType.GroupChatNoticeType) { | |||
@@ -917,7 +914,10 @@ class MsgHandler { | |||
LocalNotificationUtil.instance | |||
.show(I18n.of(context).notice, I18n.of(context).new_video_msg); | |||
playAudioRing(); | |||
MessageMgr().emit('Receive AudioChat Request', friendId); | |||
if(TranslateHKMgr().order==null){ | |||
MessageMgr().emit('Receive AudioChat Request', friendId); | |||
} | |||
} | |||
} else if (msgId == 14) { | |||
var msgContent = PushRealtimeCallRespond.fromBuffer(content); | |||
@@ -987,6 +987,8 @@ class MsgHandler { | |||
handlerCancellationTransHKOrderPush(content); | |||
}else if(msgId==8){ | |||
handlerEndTransHKOrderRes(content); | |||
}else if(msgId==10){ | |||
handlerTransHKInterSetIsReceiptRes(content); | |||
} | |||
break; | |||
@@ -1307,6 +1309,33 @@ class MsgHandler { | |||
} | |||
} | |||
//翻译官开启/关闭接收订单 | |||
static translateReceiptOrStopOrder(bool isReceipt) { | |||
debugPrint('翻译官开启/关闭接收订单 请求 $isReceipt' ); | |||
var seq = TransHKInterSetIsReceiptReq.create(); | |||
seq.isReceipt = isReceipt; | |||
NetWork().sendMsg(ComId.TranslateOrder, 9, seq); | |||
} | |||
// | |||
static handlerTransHKInterSetIsReceiptRes(List<int> msgContent) { | |||
debugPrint('翻译官开启/关闭接收订单 回应'); | |||
var res = TransHKInterSetIsReceiptRes.fromBuffer(msgContent); | |||
if (res.errorCode == 0) { | |||
MessageMgr().emit(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,res.isReceipt); | |||
debugPrint('翻译官开启/关闭接收订单 回应成功: ${res.isReceipt}'); | |||
} else { | |||
debugPrint('翻译官开启/关闭接收订单 失败${res.errorCode}'); | |||
} | |||
} | |||
//撤销订单消息 | |||
static sendCancelTranslateOrder( ) { | |||