KerwinZheng 5 年之前
父節點
當前提交
3d534c25ac
共有 16 個檔案被更改,包括 236 行新增91 行删除
  1. +61
    -22
      lib/chat/ChatPage.dart
  2. +8
    -2
      lib/home/audio_chat_view.dart
  3. +0
    -1
      lib/home/last_chat_item.dart
  4. +18
    -49
      lib/home/realtimehelper/real_time_helper_page.dart
  5. +1
    -1
      lib/home/realtimehelper/translation_evaluation_dialog.dart
  6. +1
    -0
      lib/home/realtimehelper/translation_order_push_dialog.dart
  7. +0
    -1
      lib/models/last_msg_description.dart
  8. +12
    -0
      lib/proto/login.pb.dart
  9. +2
    -0
      lib/proto/login.pbjson.dart
  10. +2
    -0
      lib/proto/login.proto
  11. +58
    -0
      lib/proto/transhousekeeper.pb.dart
  12. +15
    -0
      lib/proto/transhousekeeper.pbjson.dart
  13. +11
    -0
      lib/proto/transhousekeeper.proto
  14. +1
    -0
      lib/utils/MessageMgr.dart
  15. +5
    -0
      lib/utils/NetUtil.dart
  16. +41
    -15
      lib/utils/msgHandler.dart

+ 61
- 22
lib/chat/ChatPage.dart 查看文件

@@ -38,6 +38,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:scroll_to_index/scroll_to_index.dart';
//import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
@@ -86,6 +87,8 @@ class _ChatPageState extends State<ChatPage> {
AutoScrollController controller;
bool hasChatPermission=false;
@override
void dispose() {
var endTime = DateTime.now().millisecondsSinceEpoch ~/ 1000;
@@ -150,11 +153,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;
});
}
@@ -415,7 +453,7 @@ class _ChatPageState extends State<ChatPage> {
child: Column(
children: <Widget>[
NetStateWidget(),
(isTranslateButler&!isTranslateButlerFinish)
(isTranslateButler)
? _buildTranslationButler()
: Container(),
Expanded(child: _buildMessageList()),
@@ -481,21 +519,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) {
@@ -524,7 +562,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();
@@ -534,14 +573,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;
}
@@ -551,14 +590,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),
@@ -649,7 +688,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,


+ 8
- 2
lib/home/audio_chat_view.dart 查看文件

@@ -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();


+ 0
- 1
lib/home/last_chat_item.dart 查看文件

@@ -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'));


+ 18
- 49
lib/home/realtimehelper/real_time_helper_page.dart 查看文件

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

+ 1
- 1
lib/home/realtimehelper/translation_evaluation_dialog.dart 查看文件

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


+ 1
- 0
lib/home/realtimehelper/translation_order_push_dialog.dart 查看文件

@@ -205,6 +205,7 @@ class TranslateOrderPushPageState extends State<TranslateOrderPushPage> {
MsgHandler.sendReceiveOrder();
Navigator.of(context).pop();
},
countDownTime: 60,
),
)
],


+ 0
- 1
lib/models/last_msg_description.dart 查看文件

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


+ 12
- 0
lib/proto/login.pb.dart 查看文件

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


+ 2
- 0
lib/proto/login.pbjson.dart 查看文件

@@ -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'},
],
};



+ 2
- 0
lib/proto/login.proto 查看文件

@@ -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 推送用户推出登陆状态


+ 58
- 0
lib/proto/transhousekeeper.pb.dart 查看文件

@@ -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')


+ 15
- 0
lib/proto/transhousekeeper.pbjson.dart 查看文件

@@ -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 [


+ 11
- 0
lib/proto/transhousekeeper.proto 查看文件

@@ -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; //订单号


+ 1
- 0
lib/utils/MessageMgr.dart 查看文件

@@ -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';
//私有构造函数


+ 5
- 0
lib/utils/NetUtil.dart 查看文件

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


+ 41
- 15
lib/utils/msgHandler.dart 查看文件

@@ -414,24 +414,18 @@ 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 {
TransHKChatNotice notice = TransHKChatNotice.fromBuffer(chat.contentBuff);
BaseUserInfo friendId ;
TranslateHKMgr().isUser = myId== notice.employer.id; ///判断自己是翻译官还是用户
if(myId== notice.employer.id){
friendId =notice.inter;
}else{
friendId = notice.employer;
}
print('friend id: ${friendId.id} ');
print('结束chat.sendTime ${chat.sendTime}');
int sessionId = chat.targetId;
if (chat.cType == ChatType.GroupChatNoticeType) {
msgModel = MsgModel(0, friendId.id, chat.cType.value,
@@ -912,7 +906,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);
@@ -980,6 +977,8 @@ class MsgHandler {
handlerCancellationTransHKOrderPush(content);
} else if (msgId == 8) {
handlerEndTransHKOrderRes(content);
}else if(msgId==10){
handlerTransHKInterSetIsReceiptRes(content);
}
break;
@@ -1298,6 +1297,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() {
debugPrint('取消订单 orderid:${TranslateHKMgr().orderId}');


正在載入中…
取消
儲存