Upphovsman | SHA1 | Meddelande | Datum |
---|---|---|---|
|
341519feae |
Merge remote-tracking branch 'origin/master'
# Conflicts: # lib/chat/ChatPage.dart |
5 år sedan |
|
7da62a7857 | 翻译管家 | 5 år sedan |
@@ -38,6 +38,7 @@ import 'package:flutter/cupertino.dart'; | |||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:oktoast/oktoast.dart'; | import 'package:oktoast/oktoast.dart'; | ||||
import 'package:permission_handler/permission_handler.dart'; | |||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
import 'package:scroll_to_index/scroll_to_index.dart'; | import 'package:scroll_to_index/scroll_to_index.dart'; | ||||
//import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; | //import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; | ||||
@@ -86,6 +87,8 @@ class _ChatPageState extends State<ChatPage> { | |||||
AutoScrollController controller; | AutoScrollController controller; | ||||
bool hasChatPermission=false; | |||||
@override | @override | ||||
void dispose() { | void dispose() { | ||||
var endTime = DateTime.now().millisecondsSinceEpoch ~/ 1000; | var endTime = DateTime.now().millisecondsSinceEpoch ~/ 1000; | ||||
@@ -150,11 +153,46 @@ class _ChatPageState extends State<ChatPage> { | |||||
msgMgr.on('Delete Select Message', _deleteItem); | msgMgr.on('Delete Select Message', _deleteItem); | ||||
msgMgr.on(MessageMgr.TRANSLATE_HK_END_CHAT, translateHKChatEnd); | msgMgr.on(MessageMgr.TRANSLATE_HK_END_CHAT, translateHKChatEnd); | ||||
msgMgr.on('Jump to Msg', jumpToMsg); | 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){ | translateHKChatEnd(args){ | ||||
setState(() { | setState(() { | ||||
isShowZoomButton=false; | |||||
isTranslateButlerFinish=true; | isTranslateButlerFinish=true; | ||||
TranslateHKMgr().order=null; | |||||
}); | }); | ||||
} | } | ||||
@@ -415,7 +453,7 @@ class _ChatPageState extends State<ChatPage> { | |||||
child: Column( | child: Column( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
NetStateWidget(), | NetStateWidget(), | ||||
(isTranslateButler&!isTranslateButlerFinish) | |||||
(isTranslateButler) | |||||
? _buildTranslationButler() | ? _buildTranslationButler() | ||||
: Container(), | : Container(), | ||||
Expanded(child: _buildMessageList()), | Expanded(child: _buildMessageList()), | ||||
@@ -481,21 +519,21 @@ class _ChatPageState extends State<ChatPage> { | |||||
} | } | ||||
Widget getAudioChatView() { | Widget getAudioChatView() { | ||||
if (friendInfo == null || isTranslateButlerFinish) { | |||||
if (friendInfo == null || isTranslateButlerFinish || !hasChatPermission) { | |||||
return Container(); | 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) { | audioChatPageCallBack(int args) { | ||||
@@ -524,7 +562,8 @@ class _ChatPageState extends State<ChatPage> { | |||||
GlobalKey mykey = GlobalKey(); | GlobalKey mykey = GlobalKey(); | ||||
double dx = 0 , dy = 0; | double dx = 0 , dy = 0; | ||||
double zoomButtonSize = 60; | |||||
double zoomButtonSizeWidth = 60; | |||||
double zoomButtonSizeHeight = 74; | |||||
void dragEvent(DragUpdateDetails details) { | void dragEvent(DragUpdateDetails details) { | ||||
final RenderObject box = context.findRenderObject(); | final RenderObject box = context.findRenderObject(); | ||||
@@ -534,14 +573,14 @@ class _ChatPageState extends State<ChatPage> { | |||||
// print('dx $dx dy $dy screen width:${Screen.width}'); | // 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) { | } else if (dx < 0) { | ||||
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) { | } else if (dy < 0) { | ||||
dy = 0; | dy = 0; | ||||
} | } | ||||
@@ -551,14 +590,14 @@ class _ChatPageState extends State<ChatPage> { | |||||
Widget zoomAudioButton() { | Widget zoomAudioButton() { | ||||
if (friendInfo == null || !isShowZoomButton) { | |||||
if (friendInfo == null || !isShowZoomButton || !hasChatPermission) { | |||||
return Container(); | return Container(); | ||||
} | } | ||||
Widget button = Container( | Widget button = Container( | ||||
key: mykey, | key: mykey, | ||||
width: 57, | |||||
height: 74, | |||||
width: zoomButtonSizeWidth, | |||||
height: zoomButtonSizeHeight, | |||||
child: Card(child: Align(child: Icon( | child: Card(child: Align(child: Icon( | ||||
IconData(0xe67d, fontFamily: Constants.IconFontFamily), | IconData(0xe67d, fontFamily: Constants.IconFontFamily), | ||||
color: Color(0xFF008AFF), | color: Color(0xFF008AFF), | ||||
@@ -649,7 +688,7 @@ class _ChatPageState extends State<ChatPage> { | |||||
constraints: BoxConstraints(maxWidth: 135), | constraints: BoxConstraints(maxWidth: 135), | ||||
), | ), | ||||
), | ), | ||||
TranslateHKMgr().isUser?Expanded( | |||||
(TranslateHKMgr().isUser&& !isTranslateButlerFinish)?Expanded( | |||||
child: Container( | child: Container( | ||||
constraints: BoxConstraints(maxWidth: 130), | constraints: BoxConstraints(maxWidth: 130), | ||||
width: double.maxFinite, | 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( | widget.isTranslateButler?InkWell(child: Container( width: 60,height: 60,child: Align(child: Icon( | ||||
IconData(0xe67f, fontFamily: Constants.IconFontFamily), | IconData(0xe67f, fontFamily: Constants.IconFontFamily), | ||||
color: Colors.white, | color: Colors.white, | ||||
size: 35.0, | |||||
size: 28.0, | |||||
),alignment: Alignment.center,),),onTap: (){ | ),alignment: Alignment.center,),),onTap: (){ | ||||
widget.translateButlerCloseCallBack(1); | widget.translateButlerCloseCallBack(1); | ||||
print('内页内页'); | print('内页内页'); | ||||
@@ -476,6 +476,9 @@ class _AudioChatPageState extends State<AudioChatPage> { | |||||
isChating = true; | isChating = true; | ||||
}); | }); | ||||
} else { | } else { | ||||
// if(!widget.isTranslateButler){ | |||||
// | |||||
// } | |||||
MsgHandler.sendAudioChatReq(widget.userInfo.userId); | MsgHandler.sendAudioChatReq(widget.userInfo.userId); | ||||
callingTimer = Timer.periodic(Duration(milliseconds: 2200), (timer) { | callingTimer = Timer.periodic(Duration(milliseconds: 2200), (timer) { | ||||
@@ -781,10 +784,13 @@ class _AudioChatPageState extends State<AudioChatPage> { | |||||
//退出频道 退出本页面 | //退出频道 退出本页面 | ||||
void _onExit(BuildContext context) { | void _onExit(BuildContext context) { | ||||
if (!isQuit) { | if (!isQuit) { | ||||
print('连麦关闭AAAA'); | |||||
if (Navigator.canPop(context)) { | if (Navigator.canPop(context)) { | ||||
isQuit = true; | isQuit = true; | ||||
print('连麦关闭BBBB'); | |||||
if(widget.translateButlerCloseCallBack!=null){ | if(widget.translateButlerCloseCallBack!=null){ | ||||
print('连麦关闭CCCCCCCC'); | |||||
widget.translateButlerCloseCallBack(2); | widget.translateButlerCloseCallBack(2); | ||||
}else{ | }else{ | ||||
Navigator.of(context).pop(); | Navigator.of(context).pop(); | ||||
@@ -68,7 +68,6 @@ class _LastChatItemState extends State<LastChatItem> { | |||||
int unreadCount = ChatDataMgr() | int unreadCount = ChatDataMgr() | ||||
.unreadCountProvider | .unreadCountProvider | ||||
.getUnreadCount(widget.lastMessageModel.sessionId); | .getUnreadCount(widget.lastMessageModel.sessionId); | ||||
print('build lastchatimte 未读消息数$unreadCount'); | |||||
if (userInfo == null ) { | if (userInfo == null ) { | ||||
print(('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/HttpUtil.dart'; | ||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/TokenMgr.dart'; | import 'package:chat/utils/TokenMgr.dart'; | ||||
import 'package:chat/utils/msgHandler.dart'; | |||||
import 'package:chat/utils/screen.dart'; | import 'package:chat/utils/screen.dart'; | ||||
import 'package:dio/dio.dart'; | import 'package:dio/dio.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
@@ -28,61 +29,34 @@ class RealTimeHelperPage extends StatefulWidget { | |||||
class RealTimeHelperPageState extends State<RealTimeHelperPage> { | class RealTimeHelperPageState extends State<RealTimeHelperPage> { | ||||
bool isTranslateHKLogin = false; | |||||
bool isReceiveOrder = false; | |||||
bool isReady=false; | |||||
@override | @override | ||||
void initState() { | void initState() { | ||||
super.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 | @override | ||||
void dispose() { | void dispose() { | ||||
super.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: SafeArea( | ||||
child: ListView( | child: ListView( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
SizedBox(height: 4,), | |||||
Container( | Container( | ||||
alignment: Alignment.center, | alignment: Alignment.center, | ||||
child: fixedText(I18n.of(context).translation_butler_title3, color: Colors.white, fontSize: 21), | child: fixedText(I18n.of(context).translation_butler_title3, color: Colors.white, fontSize: 21), | ||||
), | ), | ||||
UnconstrainedBox(child: InkWell(onTap: (){ | UnconstrainedBox(child: InkWell(onTap: (){ | ||||
HttpUtil().translateHKloginRecord(!isTranslateHKLogin,(){ | |||||
isTranslateHKLogin = !isTranslateHKLogin; | |||||
setState(() { | |||||
}); | |||||
}); | |||||
MsgHandler.translateReceiptOrStopOrder(!isReceiveOrder); | |||||
},child: Container( | },child: Container( | ||||
alignment: Alignment.center, | alignment: Alignment.center, | ||||
padding: EdgeInsets.only(left: 11,right: 11,top: 3,bottom: 3), | padding: EdgeInsets.only(left: 11,right: 11,top: 3,bottom: 3), | ||||
decoration: BoxDecoration( | 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)), | 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( | Container( | ||||
padding: EdgeInsets.only(left: 13,top: 20), | 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++){ | for(int k=0;k<list.length;k++){ | ||||
EvaluationBean item = posList[k]; | EvaluationBean item = posList[k]; | ||||
if(item.isSelect){ | if(item.isSelect){ | ||||
if(k==0){ | |||||
if(value==''){ | |||||
value= '${item.id}'; | value= '${item.id}'; | ||||
}else{ | }else{ | ||||
value = value+'|${item.id}'; | value = value+'|${item.id}'; | ||||
@@ -205,6 +205,7 @@ class TranslateOrderPushPageState extends State<TranslateOrderPushPage> { | |||||
MsgHandler.sendReceiveOrder(); | MsgHandler.sendReceiveOrder(); | ||||
Navigator.of(context).pop(); | Navigator.of(context).pop(); | ||||
}, | }, | ||||
countDownTime: 60, | |||||
), | ), | ||||
) | ) | ||||
], | ], | ||||
@@ -140,7 +140,6 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||||
if(widget.lastMessageModel.channelType==ChatChannelType.Session.value){ | if(widget.lastMessageModel.channelType==ChatChannelType.Session.value){ | ||||
///翻译管家的 通知消息 | ///翻译管家的 通知消息 | ||||
print('翻译管家的 通知消息-'); | |||||
TransHKChatNotice res = TransHKChatNotice.fromBuffer(widget.lastMessageModel.msgContent); | TransHKChatNotice res = TransHKChatNotice.fromBuffer(widget.lastMessageModel.msgContent); | ||||
if(res.noticeType==TransHKChatNoticeType.StartChat){ | if(res.noticeType==TransHKChatNoticeType.StartChat){ | ||||
desc = I18n.of(Constants.getCurrentContext()).translation_butler_last_item_start; | 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')) | static final $pb.BuilderInfo _i = $pb.BuilderInfo('LoginAccountRes', package: const $pb.PackageName('yl_pb')) | ||||
..a<$core.int>(1, 'errorCode', $pb.PbFieldType.O3) | ..a<$core.int>(1, 'errorCode', $pb.PbFieldType.O3) | ||||
..aOS(2, 'httpAddr') | ..aOS(2, 'httpAddr') | ||||
..aOB(3, 'isTransHKInter') | |||||
..aOB(4, 'isReceipt') | |||||
..hasRequiredFields = false | ..hasRequiredFields = false | ||||
; | ; | ||||
@@ -71,6 +73,16 @@ class LoginAccountRes extends $pb.GeneratedMessage { | |||||
set httpAddr($core.String v) { $_setString(1, v); } | set httpAddr($core.String v) { $_setString(1, v); } | ||||
$core.bool hasHttpAddr() => $_has(1); | $core.bool hasHttpAddr() => $_has(1); | ||||
void clearHttpAddr() => clearField(2); | 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 { | class PushUserOutLogin extends $pb.GeneratedMessage { | ||||
@@ -18,6 +18,8 @@ const LoginAccountRes$json = const { | |||||
'2': const [ | '2': const [ | ||||
const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 5, '10': 'ErrorCode'}, | const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 5, '10': 'ErrorCode'}, | ||||
const {'1': 'HttpAddr', '3': 2, '4': 1, '5': 9, '10': 'HttpAddr'}, | 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 { | message LoginAccountRes { | ||||
optional int32 ErrorCode = 1; //0 成功 1参数错误 2签名错误 3用户不存在 4用户已登陆 | optional int32 ErrorCode = 1; //0 成功 1参数错误 2签名错误 3用户不存在 4用户已登陆 | ||||
optional string HttpAddr = 2; //服务器对应http服务地址 | optional string HttpAddr = 2; //服务器对应http服务地址 | ||||
optional bool IsTransHKInter = 3; //是否是翻译人员 | |||||
optional bool IsReceipt = 4; //是否接单 | |||||
} | } | ||||
//Msg = 3 推送用户推出登陆状态 | //Msg = 3 推送用户推出登陆状态 | ||||
@@ -260,6 +260,64 @@ class EndTransHKOrderRes extends $pb.GeneratedMessage { | |||||
void clearOrderId() => clearField(2); | 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 { | class DeliveryTransHKOrderPush extends $pb.GeneratedMessage { | ||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('DeliveryTransHKOrderPush', package: const $pb.PackageName('yl_pb')) | static final $pb.BuilderInfo _i = $pb.BuilderInfo('DeliveryTransHKOrderPush', package: const $pb.PackageName('yl_pb')) | ||||
..aOS(1, 'orderId') | ..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 { | const DeliveryTransHKOrderPush$json = const { | ||||
'1': 'DeliveryTransHKOrderPush', | '1': 'DeliveryTransHKOrderPush', | ||||
'2': const [ | '2': const [ | ||||
@@ -65,6 +65,17 @@ message EndTransHKOrderRes{ | |||||
optional string OrderId = 2; //订单号 | 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 派送订单推送 | //Msg= 20 派送订单推送 | ||||
message DeliveryTransHKOrderPush { | message DeliveryTransHKOrderPush { | ||||
optional string OrderId =1; //订单号 | 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_CANCEL_ORDER ='translate_hk_cancel_order'; | ||||
static const String TRANSLATE_HK_START_CHAT ='translate_hk_start_chat'; | 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_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); | var msgContent = LoginAccountRes.fromBuffer(content); | ||||
if (msgContent.errorCode == 0) { | if (msgContent.errorCode == 0) { | ||||
UserData().isTranslateUser =msgContent.isTransHKInter; //是否是翻译人员 | |||||
MessageMgr().emit(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,msgContent.isReceipt);//是否开启接单 | |||||
print('登录成功'); | print('登录成功'); | ||||
isLogin = true; | isLogin = true; | ||||
_stateBloc.addState(ChatState.logined); | _stateBloc.addState(ChatState.logined); | ||||
@@ -412,13 +412,10 @@ class MsgHandler { | |||||
} | } | ||||
} else if (isTranslateHK) { | } else if (isTranslateHK) { | ||||
var myId = UserData().basicInfo.userId; | var myId = UserData().basicInfo.userId; | ||||
print('chat.contentBuff:${chat.contentBuff.length}'); | |||||
TransHKChatNotice notice = TransHKChatNotice.fromBuffer(chat.contentBuff); | TransHKChatNotice notice = TransHKChatNotice.fromBuffer(chat.contentBuff); | ||||
BaseUserInfo friendId ; | BaseUserInfo friendId ; | ||||
print('chat.contentBuff AAAA'); | |||||
TranslateHKMgr().isUser = myId== notice.employer.id; ///判断自己是翻译官还是用户 | TranslateHKMgr().isUser = myId== notice.employer.id; ///判断自己是翻译官还是用户 | ||||
print('chat.contentBuff BBBB'); | |||||
if(myId== notice.employer.id){ | if(myId== notice.employer.id){ | ||||
friendId =notice.inter; | friendId =notice.inter; | ||||
}else{ | }else{ | ||||
@@ -427,7 +424,7 @@ class MsgHandler { | |||||
print('friend id: ${friendId.id} '); | print('friend id: ${friendId.id} '); | ||||
print('结束chat.sendTime ${chat.sendTime}'); | |||||
int sessionId = chat.targetId; | int sessionId = chat.targetId; | ||||
if (chat.cType == ChatType.GroupChatNoticeType) { | if (chat.cType == ChatType.GroupChatNoticeType) { | ||||
@@ -911,7 +908,10 @@ class MsgHandler { | |||||
LocalNotificationUtil.instance | LocalNotificationUtil.instance | ||||
.show(I18n.of(context).notice, I18n.of(context).new_video_msg); | .show(I18n.of(context).notice, I18n.of(context).new_video_msg); | ||||
playAudioRing(); | playAudioRing(); | ||||
MessageMgr().emit('Receive AudioChat Request', friendId); | |||||
if(TranslateHKMgr().order==null){ | |||||
MessageMgr().emit('Receive AudioChat Request', friendId); | |||||
} | |||||
} | } | ||||
} else if (msgId == 14) { | } else if (msgId == 14) { | ||||
var msgContent = PushRealtimeCallRespond.fromBuffer(content); | var msgContent = PushRealtimeCallRespond.fromBuffer(content); | ||||
@@ -979,6 +979,8 @@ class MsgHandler { | |||||
handlerCancellationTransHKOrderPush(content); | handlerCancellationTransHKOrderPush(content); | ||||
}else if(msgId==8){ | }else if(msgId==8){ | ||||
handlerEndTransHKOrderRes(content); | handlerEndTransHKOrderRes(content); | ||||
}else if(msgId==10){ | |||||
handlerTransHKInterSetIsReceiptRes(content); | |||||
} | } | ||||
break; | break; | ||||
@@ -1296,6 +1298,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() { | static sendCancelTranslateOrder() { | ||||
debugPrint('取消订单 orderid:${TranslateHKMgr().orderId}'); | debugPrint('取消订单 orderid:${TranslateHKMgr().orderId}'); | ||||