@@ -1167,8 +1167,10 @@ | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"choose_language": "请选择要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1184,7 +1186,34 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1167,8 +1167,10 @@ | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"choose_language": "请选择要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1184,7 +1186,32 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1166,8 +1166,10 @@ | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"choose_language": "请选择要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1183,7 +1185,32 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1167,8 +1167,10 @@ | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"choose_language": "请选择要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1184,7 +1186,32 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1167,8 +1167,10 @@ | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"choose_language": "请选择要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1184,8 +1186,32 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1168,7 +1168,9 @@ | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的實時貼身翻譯,隨時隨地幫您解決語言不通", | |||
"choose_language": "請選擇您的語言和要翻譯的語言", | |||
"translation_butler_rules": "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束", | |||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||
"translation_butler_scenes": "您当所在场景", | |||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||
"translation_butler_call": "呼叫管家", | |||
"travel_my_location": "我的位置", | |||
"travel_go_where": "你要去哪儿", | |||
@@ -1184,7 +1186,33 @@ | |||
"translation_butler_cancel": "取消呼叫", | |||
"translation_butler_wait_service": "等待服务", | |||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||
"translation_butler_dialog_order": "s1通过系统下单", | |||
"translation_butler_dialog_order": "/s1通过系统下单", | |||
"translation_butler_dialog_start_service": "开始服务", | |||
"translation_butler_dialog_start_chat": "开始聊天" | |||
"translation_butler_dialog_start_chat": "开始聊天", | |||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||
"translation_butler_end_service": "结束服务", | |||
"translation_butler_start_service": "服务开始", | |||
"translation_butler_service_end": "服务结束", | |||
"translation_butler_evaluation": "评价", | |||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||
"translation_butler_dialog_yes": "满意", | |||
"translation_butler_dialog_no": "不满意", | |||
"translation_butler_dialog_submit": "提交评价", | |||
"translation_pos_1": "服务耐心", | |||
"translation_pos_2": "快速准时", | |||
"translation_pos_3": "礼貌热情", | |||
"translation_pos_4": "沟通顺畅", | |||
"translation_pos_5": "大神翻译", | |||
"translation_neg1": "骚扰威胁", | |||
"translation_neg2": "沟通障碍", | |||
"translation_neg3": "响应缓慢", | |||
"translation_neg4": "态度不好", | |||
"translation_neg5": "翻译不行", | |||
"translation_scenes_1": "机场/车站", | |||
"translation_scenes_2": "餐厅/酒店", | |||
"translation_scenes_3": "KTV/酒吧", | |||
"translation_scenes_4": "其他" | |||
} |
@@ -1,5 +1,6 @@ | |||
import 'dart:io'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/chat/translate_state.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
@@ -18,6 +19,7 @@ import 'package:chat/utils/TokenMgr.dart'; | |||
import 'package:chat/utils/analyze_utils.dart'; | |||
import 'package:chat/utils/app_navigator.dart'; | |||
import 'package:chat/utils/blacklist_mgr.dart'; | |||
import 'package:chat/utils/count_down_button.dart'; | |||
import 'package:chat/utils/friend_list_mgr.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/net_state_widget.dart'; | |||
@@ -41,7 +43,9 @@ class ChatPage extends StatefulWidget { | |||
final int friendId; | |||
final int enterType; // 0默认 1图片 | |||
final dynamic enterContent; | |||
ChatPage({Key key, this.friendId, this.enterType = 0, this.enterContent}) | |||
final bool isTranslateButler; | |||
ChatPage({Key key, this.friendId, this.enterType = 0, this.enterContent,this.isTranslateButler=false}) | |||
: super(key: key); | |||
_ChatPageState createState() => _ChatPageState(); | |||
@@ -383,6 +387,9 @@ class _ChatPageState extends State<ChatPage> { | |||
child: Column( | |||
children: <Widget>[ | |||
NetStateWidget(), | |||
widget.isTranslateButler?_buildTranslationButler():Container(), | |||
widget.isTranslateButler? _buildServiceCard(true,(){}):Container(), | |||
widget.isTranslateButler? _buildServiceCard(false,(){}):Container(), | |||
Expanded(child: _buildMessageList()), | |||
InputBar(sendMsg: sendMsg), | |||
], | |||
@@ -410,6 +417,130 @@ class _ChatPageState extends State<ChatPage> { | |||
))); | |||
} | |||
Widget _buildTranslationButler() { | |||
bool hasHeadImg = true; | |||
if (friendInfo.headimgurl == null || friendInfo.headimgurl.length == 0) { | |||
hasHeadImg = false; | |||
} | |||
/// 5H币/1分钟 | |||
String coinTIme = I18n.of(context).translation_butler_coin_time; | |||
coinTIme = coinTIme.replaceAll('/s1', '5'); | |||
coinTIme = coinTIme.replaceAll('/s2', '1'); | |||
return Container( | |||
padding: EdgeInsets.fromLTRB(10, 10, 10, 10), | |||
color: Colors.white, | |||
child: Row( | |||
children: <Widget>[ | |||
ClipRRect( | |||
borderRadius: BorderRadius.circular(8), | |||
child: hasHeadImg | |||
? CachedNetworkImage( | |||
imageUrl: friendInfo.headimgurl, | |||
placeholder: (context, url) => Image.asset( | |||
Constants.DefaultHeadImgUrl, | |||
width: 54, | |||
height: 54, | |||
), | |||
width: 54, | |||
height: 54, | |||
) | |||
: SizedBox( | |||
width: 54, | |||
height: 54, | |||
child: Image.asset(R.assetsImagesDefaultNorAvatar))), | |||
Padding( | |||
padding: EdgeInsets.only(left: 10), | |||
child: Column( | |||
children: <Widget>[ | |||
Text( | |||
I18n.of(context).translation_butler, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: AppColors.NewAppbarTextColor, fontSize: 15), | |||
), | |||
Text( | |||
coinTIme, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: AppColors.NewAppbarTextColor, fontSize: 13), | |||
) | |||
], | |||
), | |||
), | |||
Expanded( | |||
child: Container( | |||
width: double.maxFinite, | |||
child: CountDownButton( | |||
I18n.of(context).translation_butler_end_service, | |||
() { | |||
Navigator.of(context).pop(); | |||
}, | |||
countDownTime: 60, | |||
align: Alignment.centerRight, | |||
onPress: (){}, | |||
), | |||
// alignment: Alignment(1,0), | |||
)), | |||
], | |||
), | |||
); | |||
} | |||
Widget _buildServiceCard(bool isStart, Function callBack) { | |||
return Container( | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, | |||
// 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
), | |||
child: Padding(padding: EdgeInsets.only(left: 10,right: 10,top: 15,bottom: 15),child: Row( | |||
children: <Widget>[ | |||
Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
children: <Widget>[ | |||
Text( | |||
isStart?I18n.of(context).translation_butler_start_service:I18n.of(context).translation_butler_service_end, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: AppColors.NewAppbarTextColor, fontSize: 15), | |||
), | |||
Text( | |||
isStart?I18n.of(context).translation_butler_start_tips:I18n.of(context).translation_butler_evaluation_tips, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: AppColors.NewAppbarTextColor, fontSize: 13), | |||
) | |||
], | |||
), | |||
isStart?Container():Expanded(child: Container( | |||
margin: EdgeInsets.only(left: 15 ), | |||
height: 30, | |||
child: RaisedButton( | |||
color: Color(0xff3875E9), | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.all(Radius.circular(10))), | |||
child: Text( | |||
I18n.of(context).translation_butler_evaluation , | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.white, fontSize: 19), | |||
), | |||
onPressed:(){ | |||
CustomUI.buildTranslationEvaluationDialog(context); | |||
} ), | |||
)), | |||
], | |||
),), | |||
), | |||
); | |||
} | |||
Widget _buildMessageList() { | |||
return Container( | |||
alignment: Alignment.topCenter, | |||
@@ -251,6 +251,10 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
child: extendedText(msg, color: Constants.GreyTextColor, fontSize: 12), | |||
); | |||
} else { | |||
///todo 翻译管家系统通知消息 | |||
if (type == ChatType.GroupChatNoticeType.value) { | |||
var res = GroupChatNotice.fromBuffer(widget.msg.msgContent); | |||
@@ -2369,10 +2369,14 @@ class I18n implements WidgetsLocalizations { | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "请选择要翻译的语言" | |||
String get choose_language => "请选择要翻译的语言"; | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
String get translation_butler_call => "呼叫管家"; | |||
/// "我的位置" | |||
@@ -2403,12 +2407,62 @@ class I18n implements WidgetsLocalizations { | |||
String get translation_butler_wait_service => "等待服务"; | |||
/// "实时帮-翻译管家" | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
/// "/s1通过系统下单" | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
String get translation_scenes_4 => "其他"; | |||
} | |||
class _I18n_en_US extends I18n { | |||
@@ -5925,12 +5979,18 @@ class _I18n_vi_VN extends I18n { | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
/// "请选择要翻译的语言" | |||
@override | |||
String get choose_language => "请选择要翻译的语言"; | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
@override | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@@ -5976,15 +6036,90 @@ class _I18n_vi_VN extends I18n { | |||
/// "实时帮-翻译管家" | |||
@override | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
/// "/s1通过系统下单" | |||
@override | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
@override | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
@override | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
@override | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
@override | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
@override | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
@override | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
@override | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
@override | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
@override | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
@override | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
@override | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
@override | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
@override | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
@override | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
@override | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
@override | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
@override | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
@override | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
@override | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
@override | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
@override | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
@override | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
@override | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
@override | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
@override | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
@override | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
@override | |||
String get translation_scenes_4 => "其他"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -9500,9 +9635,15 @@ class _I18n_zh_HK extends I18n { | |||
/// "請選擇您的語言和要翻譯的語言" | |||
@override | |||
String get choose_language => "請選擇您的語言和要翻譯的語言"; | |||
/// "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束" | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
@override | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束"; | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@@ -9548,15 +9689,90 @@ class _I18n_zh_HK extends I18n { | |||
/// "实时帮-翻译管家" | |||
@override | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
/// "/s1通过系统下单" | |||
@override | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
@override | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
@override | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
@override | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
@override | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
@override | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
@override | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
@override | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
@override | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
@override | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
@override | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
@override | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
@override | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
@override | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
@override | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
@override | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
@override | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
@override | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
@override | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
@override | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
@override | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
@override | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
@override | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
@override | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
@override | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
@override | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
@override | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
@override | |||
String get translation_scenes_4 => "其他"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -13069,12 +13285,18 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
/// "请选择要翻译的语言" | |||
@override | |||
String get choose_language => "请选择要翻译的语言"; | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
@override | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@@ -13120,15 +13342,90 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||
/// "实时帮-翻译管家" | |||
@override | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
/// "/s1通过系统下单" | |||
@override | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
@override | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
@override | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
@override | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
@override | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
@override | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
@override | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
@override | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
@override | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
@override | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
@override | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
@override | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
@override | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
@override | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
@override | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
@override | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
@override | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
@override | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
@override | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
@override | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
@override | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
@override | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
@override | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
@override | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
@override | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
@override | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
@override | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
@override | |||
String get translation_scenes_4 => "其他"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -16638,12 +16935,18 @@ class _I18n_ko_KR extends I18n { | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
/// "请选择要翻译的语言" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get choose_language => "请选择要翻译的语言"; | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
@override | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
@override | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@@ -16689,15 +16992,90 @@ class _I18n_ko_KR extends I18n { | |||
/// "实时帮-翻译管家" | |||
@override | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
/// "/s1通过系统下单" | |||
@override | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
@override | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
@override | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
@override | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
@override | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
@override | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
@override | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
@override | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
@override | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
@override | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
@override | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
@override | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
@override | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
@override | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
@override | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
@override | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
@override | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
@override | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
@override | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
@override | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
@override | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
@override | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
@override | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
@override | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
@override | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
@override | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
@override | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
@override | |||
String get translation_scenes_4 => "其他"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -20210,12 +20588,18 @@ class _I18n_ja_JP extends I18n { | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
/// "请选择要翻译的语言" | |||
@override | |||
String get choose_language => "请选择要翻译的语言"; | |||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||
/// "您当所在场景" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get translation_butler_scenes => "您当所在场景"; | |||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@@ -20261,15 +20645,90 @@ class _I18n_ja_JP extends I18n { | |||
/// "实时帮-翻译管家" | |||
@override | |||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||
/// "s1通过系统下单" | |||
/// "/s1通过系统下单" | |||
@override | |||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||
/// "开始服务" | |||
@override | |||
String get translation_butler_dialog_start_service => "开始服务"; | |||
/// "开始聊天" | |||
@override | |||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||
/// "/s1H币//s2分钟" | |||
@override | |||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||
/// "结束服务" | |||
@override | |||
String get translation_butler_end_service => "结束服务"; | |||
/// "服务开始" | |||
@override | |||
String get translation_butler_start_service => "服务开始"; | |||
/// "服务结束" | |||
@override | |||
String get translation_butler_service_end => "服务结束"; | |||
/// "评价" | |||
@override | |||
String get translation_butler_evaluation => "评价"; | |||
/// "翻译服务已开始,愿本次服务体验愉快" | |||
@override | |||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||
@override | |||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||
/// "你对本次服务满意吗?" | |||
@override | |||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||
/// "满意" | |||
@override | |||
String get translation_butler_dialog_yes => "满意"; | |||
/// "不满意" | |||
@override | |||
String get translation_butler_dialog_no => "不满意"; | |||
/// "提交评价" | |||
@override | |||
String get translation_butler_dialog_submit => "提交评价"; | |||
/// "服务耐心" | |||
@override | |||
String get translation_pos_1 => "服务耐心"; | |||
/// "快速准时" | |||
@override | |||
String get translation_pos_2 => "快速准时"; | |||
/// "礼貌热情" | |||
@override | |||
String get translation_pos_3 => "礼貌热情"; | |||
/// "沟通顺畅" | |||
@override | |||
String get translation_pos_4 => "沟通顺畅"; | |||
/// "大神翻译" | |||
@override | |||
String get translation_pos_5 => "大神翻译"; | |||
/// "骚扰威胁" | |||
@override | |||
String get translation_neg1 => "骚扰威胁"; | |||
/// "沟通障碍" | |||
@override | |||
String get translation_neg2 => "沟通障碍"; | |||
/// "响应缓慢" | |||
@override | |||
String get translation_neg3 => "响应缓慢"; | |||
/// "态度不好" | |||
@override | |||
String get translation_neg4 => "态度不好"; | |||
/// "翻译不行" | |||
@override | |||
String get translation_neg5 => "翻译不行"; | |||
/// "机场/车站" | |||
@override | |||
String get translation_scenes_1 => "机场/车站"; | |||
/// "餐厅/酒店" | |||
@override | |||
String get translation_scenes_2 => "餐厅/酒店"; | |||
/// "KTV/酒吧" | |||
@override | |||
String get translation_scenes_3 => "KTV/酒吧"; | |||
/// "其他" | |||
@override | |||
String get translation_scenes_4 => "其他"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -312,7 +312,7 @@ class _HomeMainState extends State<HomeMain> { | |||
fontFamily: 'iconfont', | |||
), | |||
isShowdot: true, | |||
type: 3, | |||
type: 6, | |||
iconSize: 25), | |||
NavigationIconView( | |||
title: _titles[0], | |||
@@ -338,7 +338,7 @@ class _HomeMainState extends State<HomeMain> { | |||
0xe60b, | |||
fontFamily: 'iconfont', | |||
), | |||
type: 4, | |||
type: 7, | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[3], | |||
@@ -121,6 +121,7 @@ class _LastChatItemState extends State<LastChatItem> { | |||
Provider.of<RefNameProvider>(context) | |||
.getRefName(userInfo.userId, userInfo.nickName), | |||
textScaleFactor: 1.0, | |||
maxLines: 1, | |||
style: TextStyle( | |||
fontSize: 15, | |||
color: Colors.black, | |||
@@ -1,6 +1,7 @@ | |||
import 'dart:async'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/chat/ChatPage.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
@@ -17,6 +18,7 @@ import 'package:chat/utils/screen.dart'; | |||
import 'package:chat/utils/sp_utils.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter/services.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:provider/provider.dart'; | |||
@@ -43,7 +45,11 @@ class TranslationButlerPage extends StatefulWidget { | |||
class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
int curToLang = 1; | |||
int curSourceLang = UserData().language; | |||
int curScenes = 0; | |||
List langList; | |||
List scenesList; | |||
String extraMsg; | |||
@override | |||
void initState() { | |||
@@ -51,43 +57,57 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
initData(); | |||
WidgetsBinding.instance.addPostFrameCallback((_) { | |||
Future.delayed(Duration(seconds: 4),(){ | |||
CustomUI.buildTranslationHelperOrderDialog(context); | |||
}); | |||
Future.delayed(Duration(seconds: 2), () { | |||
// CustomUI.buildTranslationHelperOrderDialog(context); | |||
Navigator.of(context).push( | |||
new MaterialPageRoute( | |||
builder: (context) { | |||
return ChatPage( | |||
key: Key('Chat'), | |||
friendId: 100006, | |||
isTranslateButler: true, | |||
); | |||
}, | |||
), | |||
); | |||
}); | |||
}); | |||
} | |||
initData() async{ | |||
String time= (await SPUtils.get(Constants.TranslationHelper)); | |||
if(time!=null){ | |||
print('time:$time'); | |||
initData() async { | |||
String time = (await SPUtils.get(Constants.TranslationHelper)); | |||
if (time != null) { | |||
print('time:$time'); | |||
int second = int.parse(time)~/1000; | |||
int second = int.parse(time) ~/ 1000; | |||
// if(DateTime.now().millisecondsSinceEpoch~/1000-second>5*3600){ ///超过5小时清除缓存记录 | |||
// SPUtils.save(Constants.TranslationHelper,null); | |||
// return; | |||
// } | |||
secondsPassed = ((DateTime.now().millisecondsSinceEpoch~/1000-second)); | |||
apply(); | |||
}else{ | |||
print('time: null'); | |||
} | |||
secondsPassed = | |||
((DateTime.now().millisecondsSinceEpoch ~/ 1000 - second)); | |||
apply(); | |||
} else { | |||
print('time: null'); | |||
} | |||
} | |||
apply(){ | |||
apply() { | |||
isApply = false; | |||
timer = Timer.periodic(Duration(seconds: 1), (Timer t){ | |||
timer = Timer.periodic(Duration(seconds: 1), (Timer t) { | |||
handleTick(); | |||
}); | |||
setState(() {}); | |||
} | |||
@override | |||
void didChangeDependencies() { | |||
super.didChangeDependencies(); | |||
@@ -101,19 +121,23 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
I18n.of(context).Japanese, | |||
]; | |||
scenesList = [ | |||
I18n.of(context).translation_scenes_1, | |||
I18n.of(context).translation_scenes_2, | |||
I18n.of(context).translation_scenes_3, | |||
I18n.of(context).translation_scenes_4, | |||
]; | |||
} | |||
@override | |||
void dispose() { | |||
// MessageMgr().off('Update Group Info', updateGroupInfo); | |||
timer?.cancel(); | |||
timer?.cancel(); | |||
if(!isApply && timeStamp!=null){ | |||
print('保存时间戳$timeStamp'); | |||
SPUtils.save(Constants.TranslationHelper,timeStamp.toString()); | |||
} | |||
if (!isApply && timeStamp != null) { | |||
print('保存时间戳$timeStamp'); | |||
SPUtils.save(Constants.TranslationHelper, timeStamp.toString()); | |||
} | |||
super.dispose(); | |||
} | |||
@@ -123,17 +147,19 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
return myPop.PopupMenuButton( | |||
child: Container( | |||
constraints: | |||
BoxConstraints(minHeight: 41, minWidth: 115, maxWidth: 165), | |||
height: 40, | |||
width: double.maxFinite, | |||
decoration: BoxDecoration( | |||
color: Color(0xffD3E7FF), | |||
borderRadius: BorderRadius.circular(10)), | |||
child: Row( | |||
mainAxisAlignment: MainAxisAlignment.start, | |||
children: <Widget>[ | |||
Expanded( | |||
child: Text( | |||
langList[curIndex], | |||
textAlign: TextAlign.center, | |||
overflow: TextOverflow.ellipsis, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xff4A5E76), fontSize: 14), | |||
)), | |||
@@ -177,6 +203,68 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
}); | |||
} | |||
_scenesPopMenu() { | |||
var curIndex = curScenes; | |||
return myPop.PopupMenuButton( | |||
child: Container( | |||
height: 40, | |||
width: double.maxFinite, | |||
child: Card( | |||
elevation: 2, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
), | |||
child: Row( | |||
mainAxisAlignment: MainAxisAlignment.start, | |||
children: <Widget>[ | |||
Expanded( | |||
child: Text( | |||
scenesList[curIndex], | |||
textAlign: TextAlign.center, | |||
overflow: TextOverflow.ellipsis, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xff3875E9), fontSize: 14), | |||
)), | |||
Icon(IconData(0xe63b, fontFamily: Constants.IconFontFamily), | |||
size: 30, color: Color(0xff4A5E76)) | |||
], | |||
), | |||
), | |||
), | |||
offset: Offset(0, 100), | |||
onSelected: (int index) { | |||
if (curIndex != index) { | |||
curScenes = index; | |||
print('更换场景'); | |||
setState(() {}); | |||
} | |||
}, | |||
itemBuilder: (BuildContext context) { | |||
return List<myPop.PopupMenuItem<int>>.generate(scenesList.length, | |||
(int i) { | |||
return myPop.PopupMenuItem( | |||
child: Container( | |||
width: Screen.width / 2 - 40, | |||
alignment: Alignment.center, | |||
color: Colors.white, | |||
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), | |||
child: Text(scenesList[i], | |||
textScaleFactor: 1.0, | |||
maxLines: 1, | |||
style: TextStyle( | |||
color: i == curIndex | |||
? Colors.blueAccent | |||
: Color(AppColors.AppBarColor), | |||
fontSize: 14)), | |||
), | |||
value: i, | |||
); | |||
}); | |||
}); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
Widget appBar = AppBar( | |||
@@ -226,7 +314,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
Container( | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, // 阴影 | |||
elevation: 2, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
@@ -248,53 +336,101 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
), | |||
Row( | |||
children: <Widget>[ | |||
Image.asset( | |||
R.assetsImagesImgTranslationIcon, | |||
width: 195, | |||
height: 175, | |||
Expanded( | |||
child: _langPopMenu(true), | |||
flex: 5, | |||
), | |||
Column( | |||
mainAxisSize: MainAxisSize.min, | |||
children: <Widget>[ | |||
_langPopMenu(true), | |||
SizedBox(height: 14), | |||
InkWell( | |||
onTap: () { | |||
var temp = curSourceLang; | |||
curSourceLang = curToLang; | |||
curToLang = temp; | |||
setState(() {}); | |||
}, | |||
child: RotatedBox( | |||
quarterTurns: 1, | |||
child: Container( | |||
child: Icon( | |||
IconData( | |||
0xe669, | |||
fontFamily: Constants.IconFontFamily, | |||
), | |||
size: 24, | |||
color: Color(0xff4A5E76), | |||
), | |||
padding: EdgeInsets.symmetric( | |||
vertical: 5, horizontal: 5), | |||
Expanded( | |||
child: InkWell( | |||
onTap: () { | |||
var temp = curSourceLang; | |||
curSourceLang = curToLang; | |||
curToLang = temp; | |||
setState(() {}); | |||
}, | |||
child: Container( | |||
child: Icon( | |||
IconData( | |||
0xe669, | |||
fontFamily: Constants.IconFontFamily, | |||
), | |||
size: 24, | |||
color: Color(0xff4A5E76), | |||
), | |||
padding: EdgeInsets.symmetric( | |||
vertical: 5, horizontal: 5), | |||
), | |||
SizedBox(height: 14), | |||
_langPopMenu(false), | |||
], | |||
), | |||
flex: 2, | |||
), | |||
Expanded( | |||
child: _langPopMenu(false), | |||
flex: 5, | |||
), | |||
], | |||
), | |||
Padding( | |||
padding: EdgeInsets.only(left: 10, right: 10, top: 15), | |||
child: Text( | |||
I18n.of(context).translation_butler_rules, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xffABABAB), fontSize: 13), | |||
Row( | |||
children: <Widget>[ | |||
Expanded( | |||
child: Image.asset( | |||
R.assetsImagesImgTranslationIcon, | |||
width: 195, | |||
height: 175, | |||
), | |||
flex: 1, | |||
), | |||
Expanded( | |||
child: Column( | |||
children: <Widget>[ | |||
Text( | |||
I18n.of(context).translation_butler_scenes, | |||
textScaleFactor: 1.0, | |||
textAlign: TextAlign.left, | |||
style: TextStyle( | |||
color: AppColors.NewAppbarTextColor, | |||
fontSize: 15), | |||
), | |||
_scenesPopMenu(), | |||
], | |||
), | |||
flex: 1, | |||
) | |||
], | |||
), | |||
Container( | |||
alignment: Alignment.topLeft, | |||
height: 100.5, | |||
width: Screen.width-50, | |||
padding: EdgeInsets.only(left: 17), | |||
// constraints: BoxConstraints( | |||
// minHeight: 82, | |||
// ), | |||
decoration: BoxDecoration( | |||
color: Color(0xFFE9EEF4), | |||
borderRadius: BorderRadius.all(Radius.circular(10))), | |||
child: TextField( | |||
keyboardAppearance: Brightness.light, | |||
decoration: new InputDecoration( | |||
hintText: I18n.of(context).set_password2, | |||
hintStyle: TextStyle(fontSize: 14), | |||
border: InputBorder.none, | |||
), | |||
// maxLines: 1, | |||
inputFormatters: [LengthLimitingTextInputFormatter(160)], | |||
// obscureText: true, | |||
style: TextStyle(textBaseline: TextBaseline.alphabetic), | |||
onChanged: (str) { | |||
extraMsg = str; | |||
setState(() {}); | |||
}, | |||
), | |||
), | |||
Text( | |||
I18n.of(context).translation_butler_scenes_tips, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xFFFA7B3D), fontSize: 12), | |||
), | |||
], | |||
), | |||
), | |||
@@ -312,20 +448,26 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.white, fontSize: 19), | |||
), | |||
onPressed:(){ | |||
onPressed: () { | |||
timeStamp = DateTime.now().millisecondsSinceEpoch; | |||
apply(); | |||
} ), | |||
) | |||
}), | |||
), | |||
Container( | |||
width: double.maxFinite, | |||
alignment: Alignment.center, | |||
padding: EdgeInsets.only(left: 10, right: 10, top: 15,bottom: 20), | |||
child: Text( | |||
I18n.of(context).translation_butler_rules, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xffABABAB), fontSize: 13), | |||
), | |||
), | |||
], | |||
); | |||
} | |||
Widget waitPage() { | |||
// ~/ 取整操作 | |||
int seconds = secondsPassed % 60; | |||
int minutes = secondsPassed ~/ 60; | |||
@@ -336,7 +478,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
Container( | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, // 阴影 | |||
elevation: 2, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
@@ -431,7 +573,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
), | |||
Padding( | |||
padding: EdgeInsets.only(left: 20, right: 10, top: 5,bottom: 10), | |||
padding: EdgeInsets.only(left: 20, right: 10, top: 5, bottom: 10), | |||
child: Text( | |||
I18n.of(context).translation_butler_tips3, | |||
textScaleFactor: 1.0, | |||
@@ -439,41 +581,46 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
), | |||
), | |||
Stack(alignment: Alignment.center,children: <Widget>[ | |||
UnconstrainedBox(child: Container( | |||
//限制进度条的高度 | |||
height: 190.0, | |||
//限制进度条的宽度 | |||
width: 190.0, | |||
child: CircularProgressIndicator( | |||
//0~1的浮点数,用来表示进度多少;如果 value 为 null 或空,则显示一个动画,否则显示一个定值 | |||
value: null, | |||
strokeWidth: 5, | |||
//背景颜色 | |||
backgroundColor: Color(0xffB2B2B2), | |||
//进度颜色 | |||
valueColor: AlwaysStoppedAnimation<Color>(Color(0xff3875E9))), | |||
),), | |||
Column(children: <Widget>[ | |||
Text( | |||
I18n.of(context).translation_butler_already_wait, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.black, fontSize: 19), | |||
Stack( | |||
alignment: Alignment.center, | |||
children: <Widget>[ | |||
UnconstrainedBox( | |||
child: Container( | |||
//限制进度条的高度 | |||
height: 190.0, | |||
//限制进度条的宽度 | |||
width: 190.0, | |||
child: CircularProgressIndicator( | |||
//0~1的浮点数,用来表示进度多少;如果 value 为 null 或空,则显示一个动画,否则显示一个定值 | |||
value: null, | |||
strokeWidth: 5, | |||
//背景颜色 | |||
backgroundColor: Color(0xffB2B2B2), | |||
//进度颜色 | |||
valueColor: | |||
AlwaysStoppedAnimation<Color>(Color(0xff3875E9))), | |||
), | |||
), | |||
SizedBox(height: 10,), | |||
Text( | |||
getFull(minutes)+' : '+getFull(seconds) , | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xffFF1010), fontSize: 35), | |||
Column( | |||
children: <Widget>[ | |||
Text( | |||
I18n.of(context).translation_butler_already_wait, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.black, fontSize: 19), | |||
), | |||
SizedBox( | |||
height: 10, | |||
), | |||
Text( | |||
getFull(minutes) + ' : ' + getFull(seconds), | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xffFF1010), fontSize: 35), | |||
) | |||
], | |||
) | |||
],) | |||
],), | |||
], | |||
), | |||
Container( | |||
margin: EdgeInsets.only(left: 70, right: 70, top: 50), | |||
@@ -487,13 +634,12 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.white, fontSize: 19), | |||
), | |||
onPressed: () async{ | |||
await SPUtils.save(Constants.TranslationHelper,null); | |||
onPressed: () async { | |||
await SPUtils.save(Constants.TranslationHelper, null); | |||
setState(() { | |||
isApply = true; | |||
timer?.cancel(); | |||
secondsPassed=0; | |||
secondsPassed = 0; | |||
}); | |||
}), | |||
), | |||
@@ -519,17 +665,16 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
int secondsPassed = 1; | |||
int timeStamp; | |||
Timer timer; | |||
void handleTick() { | |||
// if (isActive) { | |||
setState(() { | |||
secondsPassed = secondsPassed + 1; //需要更新UI | |||
}); | |||
setState(() { | |||
secondsPassed = secondsPassed + 1; //需要更新UI | |||
}); | |||
// } | |||
} | |||
getFull(int sec){ | |||
return sec<10?'0$sec':'$sec'; | |||
getFull(int sec) { | |||
return sec < 10 ? '0$sec' : '$sec'; | |||
} | |||
} |
@@ -0,0 +1,272 @@ | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/r.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:flutter/material.dart'; | |||
class TravelEvaluationPage extends StatefulWidget { | |||
@override | |||
State<StatefulWidget> createState() { | |||
return TravelEvaluationPageState(); | |||
} | |||
} | |||
class EvaluationBean { | |||
int id; | |||
String name; | |||
bool isSelect = false; | |||
EvaluationBean(this.id, this.name); | |||
} | |||
class TravelEvaluationPageState extends State<TravelEvaluationPage> { | |||
bool isGood = true; | |||
List<EvaluationBean> posList; | |||
List<EvaluationBean> negList; | |||
@override | |||
void initState() { | |||
// TODO: implement initState | |||
super.initState(); | |||
} | |||
@override | |||
void didChangeDependencies() { | |||
// TODO: implement didChangeDependencies | |||
super.didChangeDependencies(); | |||
posList = [ | |||
EvaluationBean(1, I18n.of(context).translation_pos_1), | |||
EvaluationBean(2, I18n.of(context).translation_pos_2), | |||
EvaluationBean(3, I18n.of(context).translation_pos_3), | |||
EvaluationBean(4, I18n.of(context).translation_pos_4), | |||
EvaluationBean(5, I18n.of(context).translation_pos_5), | |||
]; | |||
negList = [ | |||
EvaluationBean(1, I18n.of(context).translation_neg1), | |||
EvaluationBean(2, I18n.of(context).translation_neg2), | |||
EvaluationBean(3, I18n.of(context).translation_neg3), | |||
EvaluationBean(4, I18n.of(context).translation_neg4), | |||
EvaluationBean(5, I18n.of(context).translation_neg5), | |||
]; | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
// TODO: implement build | |||
List<Widget> evaluationWidget = getItem(isGood ? posList : negList); | |||
return UnconstrainedBox(child: Container( | |||
alignment: Alignment.center, | |||
width: Screen.width - 20, | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
), | |||
child: Container( | |||
// color: Colors.yellow, | |||
width: double.maxFinite, | |||
padding: EdgeInsets.all(16), | |||
child: Stack(children: <Widget>[ | |||
Column( | |||
crossAxisAlignment: CrossAxisAlignment.center, | |||
children: <Widget>[ | |||
Padding( | |||
padding: EdgeInsets.only(bottom: 15,top: 25), | |||
child: Text( | |||
I18n.of(context).translation_butler_dialog_tips, | |||
textScaleFactor: 1.0, | |||
textAlign: TextAlign.left, | |||
style: TextStyle( | |||
fontWeight: FontWeight.w500, | |||
color: AppColors.NewAppbarTextColor, | |||
fontSize: 17), | |||
), | |||
), | |||
///满意 - 不满意 | |||
Row( | |||
mainAxisAlignment: MainAxisAlignment.spaceAround, | |||
children: <Widget>[ | |||
InkWell( | |||
onTap: () { | |||
setState(() { | |||
isGood = !isGood; | |||
}); | |||
}, | |||
child: Column( | |||
children: <Widget>[ | |||
Stack( | |||
children: <Widget>[ | |||
Image.asset( | |||
isGood | |||
? R.assetsImagesImgTranslationYesP | |||
: R.assetsImagesImgTranslationYes, | |||
width: 82, | |||
height: 82, | |||
), | |||
isGood | |||
? Positioned.fill( | |||
child: Container( | |||
margin: EdgeInsets.only( | |||
top: 10, right: 10), | |||
alignment: Alignment.topRight, | |||
child: Image.asset( | |||
R.assetsImagesImgTranslationTick, | |||
width: 20, | |||
height: 20, | |||
), | |||
)) | |||
: Container() | |||
], | |||
), | |||
SizedBox( | |||
height: 4, | |||
), | |||
Text( | |||
I18n.of(context).translation_butler_dialog_yes, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: | |||
Color(isGood ? 0xff000000 : 0xffB0B0B0), | |||
fontSize: 18), | |||
) | |||
], | |||
), | |||
), | |||
Container( | |||
height: 60, | |||
width: 1, | |||
color: Color(0xffDDDDDD), | |||
), | |||
InkWell( | |||
onTap: () { | |||
setState(() { | |||
isGood = !isGood; | |||
}); | |||
}, | |||
child: Column( | |||
children: <Widget>[ | |||
Stack( | |||
children: <Widget>[ | |||
Image.asset( | |||
isGood | |||
? R.assetsImagesImgTranslationNo | |||
: R.assetsImagesImgTranslationNoP, | |||
width: 82, | |||
height: 82), | |||
isGood | |||
? Container() | |||
: Positioned.fill( | |||
child: Container( | |||
margin: EdgeInsets.only( | |||
top: 10, right: 10), | |||
alignment: Alignment.topRight, | |||
child: Image.asset( | |||
R.assetsImagesImgTranslationTick, | |||
width: 20, | |||
height: 20), | |||
)) | |||
], | |||
), | |||
SizedBox( | |||
height: 4, | |||
), | |||
Text( | |||
I18n.of(context).translation_butler_dialog_no, | |||
textScaleFactor: 1.0, | |||
style: TextStyle( | |||
color: | |||
Color(isGood ? 0xffB0B0B0 : 0xff000000), | |||
fontSize: 18), | |||
) | |||
], | |||
), | |||
) | |||
], | |||
), | |||
SizedBox(height: 10,), | |||
///评价 | |||
Wrap( | |||
alignment: WrapAlignment.center, | |||
children: evaluationWidget, | |||
), | |||
Container( | |||
margin: EdgeInsets.only( top: 30), | |||
height: 36, | |||
child: RaisedButton( | |||
color: Color(0xff3875E9), | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.all(Radius.circular(10))), | |||
child: Padding(padding: EdgeInsets.only(left: 10,right: 10),child: Text( | |||
I18n.of(context).translation_butler_dialog_submit , | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Colors.white, fontSize: 15,fontWeight: FontWeight.w500), | |||
),), | |||
onPressed:(){ | |||
Navigator.of(context)..pop(); | |||
} ), | |||
) | |||
], | |||
), | |||
Positioned.fill(child:Container( | |||
alignment: Alignment.topRight, | |||
padding: EdgeInsets.only( | |||
bottom: 10, right: 14, top: 10, left: 14), | |||
child: InkWell(onTap: (){Navigator.pop(context);},child:Icon( | |||
IconData( | |||
0xe679, | |||
fontFamily: 'iconfont', | |||
), | |||
size: 19, | |||
color: Colors.black //const Color(0xFF939393), | |||
) ,))) | |||
],), | |||
), | |||
), | |||
),); | |||
} | |||
getItem(List<EvaluationBean> posList) { | |||
List<Widget> evaluationWidget = []; | |||
for (int k = 0; k < posList.length; k++) { | |||
EvaluationBean item = posList[k]; | |||
evaluationWidget.add(InkWell( | |||
onTap: () { | |||
print('点击$k'); | |||
item.isSelect = !item.isSelect; | |||
posList[k] = item; | |||
setState(() {}); | |||
}, | |||
child: Container( | |||
margin: EdgeInsets.only(left: 10, top: 10), | |||
child: Padding( | |||
padding: EdgeInsets.only(left: 7, right: 7, top: 3, bottom: 3), | |||
child: fixedText(item.name, | |||
color: Color(item.isSelect ? 0xff3875E9 : 0xff868686)), | |||
), | |||
decoration: BoxDecoration( | |||
border: Border.all( | |||
color: Color(item.isSelect ? 0xff3875E9 : 0xff868686), | |||
width: 1.0), | |||
borderRadius: BorderRadius.all(Radius.circular(6))), | |||
), | |||
)); | |||
} | |||
return evaluationWidget; | |||
} | |||
} |
@@ -1,37 +1,19 @@ | |||
import 'dart:math'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/home/add_friend.dart'; | |||
import 'package:chat/home/group_announcement.dart'; | |||
import 'package:chat/home/group_manage_page.dart'; | |||
import 'package:chat/map/google_map_location_picker.dart'; | |||
import 'package:chat/map/location_result.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/group_member_model.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:chat/utils/separator_line.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; | |||
import 'package:geolocator/geolocator.dart'; | |||
import 'package:google_maps_flutter/google_maps_flutter.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:permission_handler/permission_handler.dart'; | |||
import 'package:provider/provider.dart'; | |||
import '../../data/constants.dart'; | |||
import '../../generated/i18n.dart'; | |||
import '../../utils/CustomUI.dart'; | |||
import '../../utils/FullWithButton.dart'; | |||
import '../../utils/app_navigator.dart'; | |||
import '../create_group_view.dart'; | |||
class TravelButlerPage extends StatefulWidget { | |||
final GroupInfoModel groupInfoModel; | |||
@@ -55,6 +55,13 @@ class _UnreadDotState extends State<UnreadDot> { | |||
break; | |||
case 5: | |||
isHasUnread = isHaveNewFriends(); | |||
break; | |||
case 6: | |||
isHasUnread=false; | |||
break; | |||
case 7: | |||
isHasUnread = ChatDataMgr().unreadCountProvider.checkUnreadMsg() || isShowMsg() || ChatDataMgr().groupUnreadProvider.checkUnreadMsg(); | |||
break; | |||
} | |||
@@ -1,514 +1,526 @@ | |||
class R { | |||
///  | |||
///  | |||
static final String assetsImagesBofang = 'assets/images/bofang.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcQuickSearch = 'assets/images/ic_quick_search.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempShare = 'assets/images/img_temp_share.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcTag = 'assets/images/ic_tag.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDefaultNorAvatar = 'assets/images/default_nor_avatar.png'; | |||
///  | |||
///  | |||
static final String assetsImagesServerIcon = 'assets/images/server_icon.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcPublicAccount = 'assets/images/ic_public_account.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcFeeds = 'assets/images/ic_feeds.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDailyBg1 = 'assets/images/daily_bg_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationNo = 'assets/images/img_translation_no.png'; | |||
///  | |||
static final String assetsImagesYqmBg = 'assets/images/yqm_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDailyBg2 = 'assets/images/daily_bg_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtExcel = 'assets/images/ext_excel.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgFyj = 'assets/images/img_fyj.png'; | |||
///  | |||
///  | |||
static final String assetsImagesRightGray = 'assets/images/right_gray.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcGroupChat = 'assets/images/ic_group_chat.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempSee = 'assets/images/img_temp_see.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtPdf = 'assets/images/ext_pdf.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtPpt = 'assets/images/ext_ppt.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcMiniProgram = 'assets/images/ic_mini_program.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcShakePhone = 'assets/images/ic_shake_phone.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationNoP = 'assets/images/img_translation_no_p.png'; | |||
///  | |||
static final String assetsImagesIcGameEntry = 'assets/images/ic_game_entry.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationYes = 'assets/images/img_translation_yes.png'; | |||
///  | |||
static final String assetsImagesDailyIcon = 'assets/images/daily_icon.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLeftGray = 'assets/images/left_gray.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcSocialCircle = 'assets/images/ic_social_circle.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtApk = 'assets/images/ext_apk.png'; | |||
///  | |||
///  | |||
static final String assetsImagesSvip = 'assets/images/svip.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcQrcodePreviewTiny = 'assets/images/ic_qrcode_preview_tiny.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranIcon = 'assets/images/img_tran_icon.png'; | |||
///  | |||
static final String assetsImagesIcAlbum = 'assets/images/ic_album.png'; | |||
///  | |||
///  | |||
static final String assetsImagesZhiwen = 'assets/images/zhiwen.png'; | |||
///  | |||
///  | |||
static final String assetsImagesNetError = 'assets/images/net_error.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcEmotions = 'assets/images/ic_emotions.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtVideo = 'assets/images/ext_video.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtWord = 'assets/images/ext_word.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempHy = 'assets/images/img_temp_hy.png'; | |||
///  | |||
///  | |||
static final String assetsImagesHand = 'assets/images/hand.png'; | |||
///  | |||
///  | |||
static final String assetsImagesQianbaoBg = 'assets/images/qianbao_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgSplash3 = 'assets/images/img_splash_3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgUpdateBg = 'assets/images/img_update_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDailyBtn1 = 'assets/images/daily_btn_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem4 = 'assets/images/chat_item_4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem5 = 'assets/images/chat_item_5.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcPeopleNearby = 'assets/images/ic_people_nearby.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgSplash2 = 'assets/images/img_splash_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcTxNews = 'assets/images/ic_tx_news.png'; | |||
///  | |||
///  | |||
static final String assetsImagesServiceIcon = 'assets/images/service_icon.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDailyBtn2 = 'assets/images/daily_btn_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem7 = 'assets/images/chat_item_7.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempQb = 'assets/images/img_temp_qb.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTravelButler = 'assets/images/img_travel_butler.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem6 = 'assets/images/chat_item_6.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgLongIndex = 'assets/images/img_long_index.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgSplash1 = 'assets/images/img_splash_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationYesP = 'assets/images/img_translation_yes_p.png'; | |||
///  | |||
static final String assetsImagesDailyCoin = 'assets/images/daily_coin.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcNewFriend = 'assets/images/ic_new_friend.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcSettings = 'assets/images/ic_settings.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcCardsWallet = 'assets/images/ic_cards_wallet.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem2 = 'assets/images/chat_item_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem3 = 'assets/images/chat_item_3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesRobot = 'assets/images/robot.jpg'; | |||
///  | |||
///  | |||
static final String assetsImagesExtSound = 'assets/images/ext_sound.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtZip = 'assets/images/ext_zip.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatItem1 = 'assets/images/chat_item_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempQd = 'assets/images/img_temp_qd.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationButler = 'assets/images/img_translation_butler.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLeftWhite = 'assets/images/left_white.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVoucher = 'assets/images/voucher.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVIP = 'assets/images/VIP.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcWallet = 'assets/images/ic_wallet.png'; | |||
///  | |||
///  | |||
static final String assetsImagesRightWhite = 'assets/images/right_white.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcCollections = 'assets/images/ic_collections.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftShow24 = 'assets/images/gift_show_2_4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcWxGames = 'assets/images/ic_wx_games.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcShopping = 'assets/images/ic_shopping.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcFengchao = 'assets/images/ic_fengchao.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcFileTransfer = 'assets/images/ic_file_transfer.png'; | |||
///  | |||
///  | |||
static final String assetsImagesSuo = 'assets/images/suo.png'; | |||
///  | |||
///  | |||
static final String assetsImagesRedPacketBg = 'assets/images/red_packet_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftShow23 = 'assets/images/gift_show_2_3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtUnknown = 'assets/images/ext_unknown.png'; | |||
///  | |||
///  | |||
static final String assetsImagesCoin = 'assets/images/coin.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftAnim3 = 'assets/images/gift_anim_3.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftAnim2 = 'assets/images/gift_anim_2.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesGift1 = 'assets/images/gift_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesBack = 'assets/images/back.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftShow22 = 'assets/images/gift_show_2_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGift3 = 'assets/images/gift_3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcQuickScan = 'assets/images/ic_quick_scan.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationIcon = 'assets/images/img_translation_icon.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationTick = 'assets/images/img_translation_tick.png'; | |||
///  | |||
static final String assetsImagesIcBottleMsg = 'assets/images/ic_bottle_msg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftAnim1 = 'assets/images/gift_anim_1.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesBg = 'assets/images/bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGift2 = 'assets/images/gift_2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtTxt = 'assets/images/ext_txt.png'; | |||
///  | |||
///  | |||
static final String assetsImagesGiftShow21 = 'assets/images/gift_show_2_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatEmoji = 'assets/images/chat/emoji.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatOnion = 'assets/images/chat/onion.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon1 = 'assets/images/chat/icon1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon3 = 'assets/images/chat/icon3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon2 = 'assets/images/chat/icon2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon6 = 'assets/images/chat/icon6.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon5 = 'assets/images/chat/icon5.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon4 = 'assets/images/chat/icon4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipWx = 'assets/images/login/vip_wx.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipLogio = 'assets/images/login/vip_logio.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginLock = 'assets/images/login/lock.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipRect1 = 'assets/images/login/vip_rect1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipRect3 = 'assets/images/login/vip_rect3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipRect2 = 'assets/images/login/vip_rect2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipZfb = 'assets/images/login/vip_zfb.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyIcon3 = 'assets/images/login/dly_icon3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyIcon2 = 'assets/images/login/dly_icon2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginSYBg = 'assets/images/login/SY_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyLogo = 'assets/images/login/dly_logo.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipOther = 'assets/images/login/vip_other.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyIcon1 = 'assets/images/login/dly_icon1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginRzzx = 'assets/images/login/rzzx.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyIcon4 = 'assets/images/login/dly_icon4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginMoney = 'assets/images/login/money.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginSYLogo = 'assets/images/login/SY_logo.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDelete = 'assets/images/login/delete.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginXzxbMale = 'assets/images/login/xzxb_male.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginXzxbFemale = 'assets/images/login/xzxb_female.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon8 = 'assets/images/park/qz_icon8.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon1 = 'assets/images/park/qz_icon1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon2 = 'assets/images/park/qz_icon2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon3 = 'assets/images/park/qz_icon3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon7 = 'assets/images/park/qz_icon7.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon6 = 'assets/images/park/qz_icon6.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon4 = 'assets/images/park/qz_icon4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon5 = 'assets/images/park/qz_icon5.png'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker11 = 'assets/images/sticker/sticker_11.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker7 = 'assets/images/sticker/sticker_7.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker6 = 'assets/images/sticker/sticker_6.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker10 = 'assets/images/sticker/sticker_10.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker12 = 'assets/images/sticker/sticker_12.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker4 = 'assets/images/sticker/sticker_4.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker5 = 'assets/images/sticker/sticker_5.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker13 = 'assets/images/sticker/sticker_13.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker17 = 'assets/images/sticker/sticker_17.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker1 = 'assets/images/sticker/sticker_1.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker16 = 'assets/images/sticker/sticker_16.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker14 = 'assets/images/sticker/sticker_14.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker28 = 'assets/images/sticker/sticker_28.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker2 = 'assets/images/sticker/sticker_2.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker3 = 'assets/images/sticker/sticker_3.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker29 = 'assets/images/sticker/sticker_29.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker15 = 'assets/images/sticker/sticker_15.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker18 = 'assets/images/sticker/sticker_18.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker24 = 'assets/images/sticker/sticker_24.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker30 = 'assets/images/sticker/sticker_30.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker25 = 'assets/images/sticker/sticker_25.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker19 = 'assets/images/sticker/sticker_19.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker27 = 'assets/images/sticker/sticker_27.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker26 = 'assets/images/sticker/sticker_26.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker22 = 'assets/images/sticker/sticker_22.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker8 = 'assets/images/sticker/sticker_8.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker9 = 'assets/images/sticker/sticker_9.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker23 = 'assets/images/sticker/sticker_23.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker21 = 'assets/images/sticker/sticker_21.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker20 = 'assets/images/sticker/sticker_20.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyBg = 'assets/images/vip/hy_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyTj = 'assets/images/vip/hy_tj.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyXz = 'assets/images/vip/hy_xz.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyCjhy = 'assets/images/vip/hy_cjhy.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyHy = 'assets/images/vip/hy_hy.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyTq = 'assets/images/vip/hy_tq.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface88 = 'assets/images/emojiface/88.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface77 = 'assets/images/emojiface/77.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface63 = 'assets/images/emojiface/63.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface62 = 'assets/images/emojiface/62.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface76 = 'assets/images/emojiface/76.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface89 = 'assets/images/emojiface/89.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface60 = 'assets/images/emojiface/60.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface74 = 'assets/images/emojiface/74.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface48 = 'assets/images/emojiface/48.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface49 = 'assets/images/emojiface/49.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface75 = 'assets/images/emojiface/75.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface61 = 'assets/images/emojiface/61.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface59 = 'assets/images/emojiface/59.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface65 = 'assets/images/emojiface/65.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface71 = 'assets/images/emojiface/71.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface70 = 'assets/images/emojiface/70.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface64 = 'assets/images/emojiface/64.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface58 = 'assets/images/emojiface/58.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface8 = 'assets/images/emojiface/8.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface72 = 'assets/images/emojiface/72.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface66 = 'assets/images/emojiface/66.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface67 = 'assets/images/emojiface/67.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface73 = 'assets/images/emojiface/73.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface9 = 'assets/images/emojiface/9.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface14 = 'assets/images/emojiface/14.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface28 = 'assets/images/emojiface/28.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface29 = 'assets/images/emojiface/29.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface15 = 'assets/images/emojiface/15.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface17 = 'assets/images/emojiface/17.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface16 = 'assets/images/emojiface/16.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface12 = 'assets/images/emojiface/12.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface13 = 'assets/images/emojiface/13.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface39 = 'assets/images/emojiface/39.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface11 = 'assets/images/emojiface/11.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface10 = 'assets/images/emojiface/10.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface38 = 'assets/images/emojiface/38.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface35 = 'assets/images/emojiface/35.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface21 = 'assets/images/emojiface/21.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface20 = 'assets/images/emojiface/20.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface34 = 'assets/images/emojiface/34.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface22 = 'assets/images/emojiface/22.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface36 = 'assets/images/emojiface/36.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface37 = 'assets/images/emojiface/37.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface23 = 'assets/images/emojiface/23.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface27 = 'assets/images/emojiface/27.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface33 = 'assets/images/emojiface/33.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface32 = 'assets/images/emojiface/32.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface26 = 'assets/images/emojiface/26.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface18 = 'assets/images/emojiface/18.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface30 = 'assets/images/emojiface/30.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface24 = 'assets/images/emojiface/24.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface25 = 'assets/images/emojiface/25.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface31 = 'assets/images/emojiface/31.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface19 = 'assets/images/emojiface/19.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface81 = 'assets/images/emojiface/81.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface4 = 'assets/images/emojiface/4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface56 = 'assets/images/emojiface/56.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface42 = 'assets/images/emojiface/42.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface43 = 'assets/images/emojiface/43.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface5 = 'assets/images/emojiface/5.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface57 = 'assets/images/emojiface/57.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface80 = 'assets/images/emojiface/80.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface82 = 'assets/images/emojiface/82.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface41 = 'assets/images/emojiface/41.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface55 = 'assets/images/emojiface/55.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface7 = 'assets/images/emojiface/7.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface69 = 'assets/images/emojiface/69.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface68 = 'assets/images/emojiface/68.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface54 = 'assets/images/emojiface/54.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface6 = 'assets/images/emojiface/6.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface40 = 'assets/images/emojiface/40.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface83 = 'assets/images/emojiface/83.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface87 = 'assets/images/emojiface/87.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface78 = 'assets/images/emojiface/78.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface44 = 'assets/images/emojiface/44.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface2 = 'assets/images/emojiface/2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface50 = 'assets/images/emojiface/50.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface3 = 'assets/images/emojiface/3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface51 = 'assets/images/emojiface/51.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface45 = 'assets/images/emojiface/45.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface79 = 'assets/images/emojiface/79.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface86 = 'assets/images/emojiface/86.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface90 = 'assets/images/emojiface/90.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface84 = 'assets/images/emojiface/84.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface53 = 'assets/images/emojiface/53.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface1 = 'assets/images/emojiface/1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface47 = 'assets/images/emojiface/47.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface46 = 'assets/images/emojiface/46.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface52 = 'assets/images/emojiface/52.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface85 = 'assets/images/emojiface/85.png'; | |||
} |
@@ -6,6 +6,7 @@ import 'package:chat/data/WebData.dart'; | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/home/VerificationCenter.dart'; | |||
import 'package:chat/home/realtimehelper/translation_evaluation_dialog.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/photo/ui/dialog/not_permission_dialog.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
@@ -1301,10 +1302,10 @@ class CustomUI { | |||
color: AppColors.NewAppbarTextColor, fontSize: 14), | |||
), | |||
Container(margin: EdgeInsets.only(left: 30, right: 30, top: 20,bottom: 10),child: CountDownButton( I18n.of(context).translation_butler_dialog_start_service,(){ | |||
Navigator.of(context).pop(); | |||
}) ,) | |||
CountDownButton( I18n.of(context).translation_butler_dialog_start_service,(){ | |||
Navigator.of(context).pop(); | |||
}), | |||
], | |||
@@ -1314,4 +1315,13 @@ class CustomUI { | |||
),),),),)); | |||
} | |||
static void buildTranslationEvaluationDialog(BuildContext context) { | |||
Navigator.of(context).push(TutorialOverlay( | |||
child: | |||
TravelEvaluationPage(),)); | |||
} | |||
} |
@@ -55,7 +55,7 @@ class OtherLogin { | |||
switch (result.status) { | |||
case FacebookLoginStatus.loggedIn: | |||
final FacebookAccessToken accessToken = result.accessToken; | |||
thirdLogin(context, accessToken.userId, 0); | |||
thirdLogin(context, accessToken.userId, 1); | |||
break; | |||
case FacebookLoginStatus.cancelledByUser: | |||
@@ -6,8 +6,11 @@ import 'package:flutter/material.dart'; | |||
class CountDownButton extends StatefulWidget{ | |||
final String text; | |||
final Function callBack; | |||
CountDownButton(this.text,this.callBack); | |||
final Function countDownCallBack; | |||
final Function onPress; | |||
final int countDownTime; | |||
final AlignmentGeometry align; | |||
CountDownButton(this.text,this.countDownCallBack,{this.countDownTime=5*60,this.align=Alignment.center,this.onPress}); | |||
@override | |||
State<StatefulWidget> createState() { | |||
@@ -18,14 +21,13 @@ class CountDownButton extends StatefulWidget{ | |||
} | |||
class CountDownButtonState extends State<CountDownButton> { | |||
int secondsPassed = 5*60; | |||
// int secondsPassed =10; | |||
int secondsPassed ; | |||
Timer timer; | |||
void handleTick() { | |||
// if (isActive) { | |||
if(secondsPassed==1){ | |||
widget.callBack(); | |||
widget.countDownCallBack(); | |||
timer?.cancel(); | |||
return; | |||
} | |||
@@ -44,6 +46,7 @@ class CountDownButtonState extends State<CountDownButton> { | |||
void initState() { | |||
// TODO: implement initState | |||
super.initState(); | |||
secondsPassed = widget.countDownTime; | |||
timer = Timer.periodic(Duration(seconds: 1), (Timer t){ | |||
handleTick(); | |||
}); | |||
@@ -63,10 +66,11 @@ class CountDownButtonState extends State<CountDownButton> { | |||
int seconds = secondsPassed % 60; | |||
int minutes = secondsPassed ~/ 60; | |||
return Container( | |||
alignment: Alignment.center, | |||
margin: EdgeInsets.only(left: 30, right: 30, top: 20,bottom: 20), | |||
alignment: widget.align, | |||
// margin: EdgeInsets.only(left: 30, right: 30, top: 20,bottom: 20), | |||
height: 48, | |||
child: RaisedButton( | |||
color: Color(0xff3875E9), | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.all(Radius.circular(10))), | |||
@@ -78,15 +82,13 @@ class CountDownButtonState extends State<CountDownButton> { | |||
text: widget.text, | |||
style: TextStyle( | |||
color: Colors.white, | |||
fontSize: 18)), | |||
fontSize: 16)), | |||
TextSpan( | |||
text:' ('+ getFull(minutes)+' : '+getFull(seconds)+')', | |||
style: TextStyle( | |||
color: Colors.white, fontSize: 14)), | |||
color: Colors.white, fontSize: 13)), | |||
])) , | |||
onPressed: () async{ | |||
}), | |||
onPressed: widget.onPress), | |||
); | |||
} | |||
@@ -206,6 +206,7 @@ flutter: | |||
- assets/images/ic_public_account.png | |||
- assets/images/ic_feeds.png | |||
- assets/images/daily_bg_1.png | |||
- assets/images/img_translation_no.png | |||
- assets/images/yqm_bg.png | |||
- assets/images/daily_bg_2.png | |||
- assets/images/ext_excel.png | |||
@@ -217,13 +218,16 @@ flutter: | |||
- assets/images/ext_ppt.png | |||
- assets/images/ic_mini_program.png | |||
- assets/images/ic_shake_phone.png | |||
- assets/images/img_translation_no_p.png | |||
- assets/images/ic_game_entry.png | |||
- assets/images/img_translation_yes.png | |||
- assets/images/daily_icon.png | |||
- assets/images/left_gray.png | |||
- assets/images/ic_social_circle.png | |||
- assets/images/ext_apk.png | |||
- assets/images/svip.png | |||
- assets/images/ic_qrcode_preview_tiny.png | |||
- assets/images/img_tran_icon.png | |||
- assets/images/ic_album.png | |||
- assets/images/zhiwen.png | |||
- assets/images/net_error.png | |||
@@ -249,6 +253,7 @@ flutter: | |||
- assets/images/chat_item_6.png | |||
- assets/images/img_long_index.png | |||
- assets/images/img_splash_1.png | |||
- assets/images/img_translation_yes_p.png | |||
- assets/images/daily_coin.png | |||
- assets/images/ic_new_friend.png | |||
- assets/images/ic_settings.png | |||
@@ -285,6 +290,7 @@ flutter: | |||
- assets/images/gift_3.png | |||
- assets/images/ic_quick_scan.png | |||
- assets/images/img_translation_icon.png | |||
- assets/images/img_translation_tick.png | |||
- assets/images/ic_bottle_msg.png | |||
- assets/images/gift_anim_1.gif | |||
- assets/images/bg.png | |||