@@ -1167,8 +1167,10 @@ | |||||
"translation_butler": "翻译管家", | "translation_butler": "翻译管家", | ||||
"travel_butler": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | "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": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1184,7 +1186,34 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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": "翻译管家", | "translation_butler": "翻译管家", | ||||
"travel_butler": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | "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": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1184,7 +1186,32 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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": "翻译管家", | "translation_butler": "翻译管家", | ||||
"travel_butler": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | "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": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1183,7 +1185,32 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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": "翻译管家", | "translation_butler": "翻译管家", | ||||
"travel_butler": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | "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": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1184,7 +1186,32 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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": "翻译管家", | "translation_butler": "翻译管家", | ||||
"travel_butler": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | "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": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1184,8 +1186,32 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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": "出行管家", | "travel_butler": "出行管家", | ||||
"translation_butler_tips": "您的實時貼身翻譯,隨時隨地幫您解決語言不通", | "translation_butler_tips": "您的實時貼身翻譯,隨時隨地幫您解決語言不通", | ||||
"choose_language": "請選擇您的語言和要翻譯的語言", | "choose_language": "請選擇您的語言和要翻譯的語言", | ||||
"translation_butler_rules": "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束", | |||||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||||
"translation_butler_scenes": "您当所在场景", | |||||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||||
"translation_butler_call": "呼叫管家", | "translation_butler_call": "呼叫管家", | ||||
"travel_my_location": "我的位置", | "travel_my_location": "我的位置", | ||||
"travel_go_where": "你要去哪儿", | "travel_go_where": "你要去哪儿", | ||||
@@ -1184,7 +1186,33 @@ | |||||
"translation_butler_cancel": "取消呼叫", | "translation_butler_cancel": "取消呼叫", | ||||
"translation_butler_wait_service": "等待服务", | "translation_butler_wait_service": "等待服务", | ||||
"translation_butler_dialog_title": "实时帮-翻译管家", | "translation_butler_dialog_title": "实时帮-翻译管家", | ||||
"translation_butler_dialog_order": "s1通过系统下单", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | "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 'dart:io'; | ||||
import 'package:cached_network_image/cached_network_image.dart'; | |||||
import 'package:chat/chat/translate_state.dart'; | import 'package:chat/chat/translate_state.dart'; | ||||
import 'package:chat/data/UserData.dart'; | import 'package:chat/data/UserData.dart'; | ||||
import 'package:chat/data/chat_data_mgr.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/analyze_utils.dart'; | ||||
import 'package:chat/utils/app_navigator.dart'; | import 'package:chat/utils/app_navigator.dart'; | ||||
import 'package:chat/utils/blacklist_mgr.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/friend_list_mgr.dart'; | ||||
import 'package:chat/utils/msgHandler.dart'; | import 'package:chat/utils/msgHandler.dart'; | ||||
import 'package:chat/utils/net_state_widget.dart'; | import 'package:chat/utils/net_state_widget.dart'; | ||||
@@ -41,7 +43,9 @@ class ChatPage extends StatefulWidget { | |||||
final int friendId; | final int friendId; | ||||
final int enterType; // 0默认 1图片 | final int enterType; // 0默认 1图片 | ||||
final dynamic enterContent; | 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); | : super(key: key); | ||||
_ChatPageState createState() => _ChatPageState(); | _ChatPageState createState() => _ChatPageState(); | ||||
@@ -383,6 +387,9 @@ class _ChatPageState extends State<ChatPage> { | |||||
child: Column( | child: Column( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
NetStateWidget(), | NetStateWidget(), | ||||
widget.isTranslateButler?_buildTranslationButler():Container(), | |||||
widget.isTranslateButler? _buildServiceCard(true,(){}):Container(), | |||||
widget.isTranslateButler? _buildServiceCard(false,(){}):Container(), | |||||
Expanded(child: _buildMessageList()), | Expanded(child: _buildMessageList()), | ||||
InputBar(sendMsg: sendMsg), | 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() { | Widget _buildMessageList() { | ||||
return Container( | return Container( | ||||
alignment: Alignment.topCenter, | alignment: Alignment.topCenter, | ||||
@@ -251,6 +251,10 @@ class _ChatPageItemState extends State<ChatPageItem> | |||||
child: extendedText(msg, color: Constants.GreyTextColor, fontSize: 12), | child: extendedText(msg, color: Constants.GreyTextColor, fontSize: 12), | ||||
); | ); | ||||
} else { | } else { | ||||
///todo 翻译管家系统通知消息 | |||||
if (type == ChatType.GroupChatNoticeType.value) { | if (type == ChatType.GroupChatNoticeType.value) { | ||||
var res = GroupChatNotice.fromBuffer(widget.msg.msgContent); | var res = GroupChatNotice.fromBuffer(widget.msg.msgContent); | ||||
@@ -2369,10 +2369,14 @@ class I18n implements WidgetsLocalizations { | |||||
String get travel_butler => "出行管家"; | String get travel_butler => "出行管家"; | ||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | /// "您的实时贴身翻译,随时随地帮您解决语言不通" | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | 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 => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
/// "我的位置" | /// "我的位置" | ||||
@@ -2403,12 +2407,62 @@ class I18n implements WidgetsLocalizations { | |||||
String get translation_butler_wait_service => "等待服务"; | String get translation_butler_wait_service => "等待服务"; | ||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | 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_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 { | class _I18n_en_US extends I18n { | ||||
@@ -5925,12 +5979,18 @@ class _I18n_vi_VN extends I18n { | |||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | /// "您的实时贴身翻译,随时随地帮您解决语言不通" | ||||
@override | @override | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | ||||
/// "请选择您的语言和要翻译的语言" | |||||
/// "请选择要翻译的语言" | |||||
@override | |||||
String get choose_language => "请选择要翻译的语言"; | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
@override | @override | ||||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||||
/// "您当所在场景" | |||||
@override | @override | ||||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||||
String get translation_butler_scenes => "您当所在场景"; | |||||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||||
@override | |||||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||||
/// "呼叫管家" | /// "呼叫管家" | ||||
@override | @override | ||||
String get translation_butler_call => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
@@ -5976,15 +6036,90 @@ class _I18n_vi_VN extends I18n { | |||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | String get translation_butler_dialog_title => "实时帮-翻译管家"; | ||||
/// "s1通过系统下单" | |||||
/// "/s1通过系统下单" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | /// "开始服务" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | String get translation_butler_dialog_start_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 | @override | ||||
TextDirection get textDirection => TextDirection.ltr; | TextDirection get textDirection => TextDirection.ltr; | ||||
@@ -9500,9 +9635,15 @@ class _I18n_zh_HK extends I18n { | |||||
/// "請選擇您的語言和要翻譯的語言" | /// "請選擇您的語言和要翻譯的語言" | ||||
@override | @override | ||||
String get choose_language => "請選擇您的語言和要翻譯的語言"; | String get choose_language => "請選擇您的語言和要翻譯的語言"; | ||||
/// "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束" | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
@override | |||||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||||
/// "您当所在场景" | |||||
@override | |||||
String get translation_butler_scenes => "您当所在场景"; | |||||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||||
@override | @override | ||||
String get translation_butler_rules => "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束"; | |||||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||||
/// "呼叫管家" | /// "呼叫管家" | ||||
@override | @override | ||||
String get translation_butler_call => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
@@ -9548,15 +9689,90 @@ class _I18n_zh_HK extends I18n { | |||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | String get translation_butler_dialog_title => "实时帮-翻译管家"; | ||||
/// "s1通过系统下单" | |||||
/// "/s1通过系统下单" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | /// "开始服务" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | String get translation_butler_dialog_start_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 | @override | ||||
TextDirection get textDirection => TextDirection.ltr; | TextDirection get textDirection => TextDirection.ltr; | ||||
@@ -13069,12 +13285,18 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | /// "您的实时贴身翻译,随时随地帮您解决语言不通" | ||||
@override | @override | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | ||||
/// "请选择您的语言和要翻译的语言" | |||||
/// "请选择要翻译的语言" | |||||
@override | |||||
String get choose_language => "请选择要翻译的语言"; | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
@override | @override | ||||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||||
/// "您当所在场景" | |||||
@override | @override | ||||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||||
String get translation_butler_scenes => "您当所在场景"; | |||||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||||
@override | |||||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||||
/// "呼叫管家" | /// "呼叫管家" | ||||
@override | @override | ||||
String get translation_butler_call => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
@@ -13120,15 +13342,90 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | String get translation_butler_dialog_title => "实时帮-翻译管家"; | ||||
/// "s1通过系统下单" | |||||
/// "/s1通过系统下单" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | /// "开始服务" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | String get translation_butler_dialog_start_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 | @override | ||||
TextDirection get textDirection => TextDirection.ltr; | TextDirection get textDirection => TextDirection.ltr; | ||||
@@ -16638,12 +16935,18 @@ class _I18n_ko_KR extends I18n { | |||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | /// "您的实时贴身翻译,随时随地帮您解决语言不通" | ||||
@override | @override | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | ||||
/// "请选择您的语言和要翻译的语言" | |||||
/// "请选择要翻译的语言" | |||||
@override | @override | ||||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||||
String get choose_language => "请选择要翻译的语言"; | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
@override | @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 | @override | ||||
String get translation_butler_call => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
@@ -16689,15 +16992,90 @@ class _I18n_ko_KR extends I18n { | |||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | String get translation_butler_dialog_title => "实时帮-翻译管家"; | ||||
/// "s1通过系统下单" | |||||
/// "/s1通过系统下单" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | /// "开始服务" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | String get translation_butler_dialog_start_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 | @override | ||||
TextDirection get textDirection => TextDirection.ltr; | TextDirection get textDirection => TextDirection.ltr; | ||||
@@ -20210,12 +20588,18 @@ class _I18n_ja_JP extends I18n { | |||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | /// "您的实时贴身翻译,随时随地帮您解决语言不通" | ||||
@override | @override | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | ||||
/// "请选择您的语言和要翻译的语言" | |||||
/// "请选择要翻译的语言" | |||||
@override | |||||
String get choose_language => "请选择要翻译的语言"; | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
@override | |||||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||||
/// "您当所在场景" | |||||
@override | @override | ||||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||||
String get translation_butler_scenes => "您当所在场景"; | |||||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||||
@override | @override | ||||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||||
/// "呼叫管家" | /// "呼叫管家" | ||||
@override | @override | ||||
String get translation_butler_call => "呼叫管家"; | String get translation_butler_call => "呼叫管家"; | ||||
@@ -20261,15 +20645,90 @@ class _I18n_ja_JP extends I18n { | |||||
/// "实时帮-翻译管家" | /// "实时帮-翻译管家" | ||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | String get translation_butler_dialog_title => "实时帮-翻译管家"; | ||||
/// "s1通过系统下单" | |||||
/// "/s1通过系统下单" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "s1通过系统下单"; | |||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | /// "开始服务" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | String get translation_butler_dialog_start_service => "开始服务"; | ||||
/// "开始聊天" | /// "开始聊天" | ||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | 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 | @override | ||||
TextDirection get textDirection => TextDirection.ltr; | TextDirection get textDirection => TextDirection.ltr; | ||||
@@ -312,7 +312,7 @@ class _HomeMainState extends State<HomeMain> { | |||||
fontFamily: 'iconfont', | fontFamily: 'iconfont', | ||||
), | ), | ||||
isShowdot: true, | isShowdot: true, | ||||
type: 3, | |||||
type: 6, | |||||
iconSize: 25), | iconSize: 25), | ||||
NavigationIconView( | NavigationIconView( | ||||
title: _titles[0], | title: _titles[0], | ||||
@@ -338,7 +338,7 @@ class _HomeMainState extends State<HomeMain> { | |||||
0xe60b, | 0xe60b, | ||||
fontFamily: 'iconfont', | fontFamily: 'iconfont', | ||||
), | ), | ||||
type: 4, | |||||
type: 7, | |||||
iconSize: 26.5), | iconSize: 26.5), | ||||
NavigationIconView( | NavigationIconView( | ||||
title: _titles[3], | title: _titles[3], | ||||
@@ -121,6 +121,7 @@ class _LastChatItemState extends State<LastChatItem> { | |||||
Provider.of<RefNameProvider>(context) | Provider.of<RefNameProvider>(context) | ||||
.getRefName(userInfo.userId, userInfo.nickName), | .getRefName(userInfo.userId, userInfo.nickName), | ||||
textScaleFactor: 1.0, | textScaleFactor: 1.0, | ||||
maxLines: 1, | |||||
style: TextStyle( | style: TextStyle( | ||||
fontSize: 15, | fontSize: 15, | ||||
color: Colors.black, | color: Colors.black, | ||||
@@ -1,6 +1,7 @@ | |||||
import 'dart:async'; | import 'dart:async'; | ||||
import 'package:cached_network_image/cached_network_image.dart'; | 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/UserData.dart'; | ||||
import 'package:chat/data/chat_data_mgr.dart'; | import 'package:chat/data/chat_data_mgr.dart'; | ||||
import 'package:chat/data/group_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:chat/utils/sp_utils.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | |||||
import 'package:oktoast/oktoast.dart'; | import 'package:oktoast/oktoast.dart'; | ||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
@@ -43,7 +45,11 @@ class TranslationButlerPage extends StatefulWidget { | |||||
class TranslationButlerPageState extends State<TranslationButlerPage> { | class TranslationButlerPageState extends State<TranslationButlerPage> { | ||||
int curToLang = 1; | int curToLang = 1; | ||||
int curSourceLang = UserData().language; | int curSourceLang = UserData().language; | ||||
int curScenes = 0; | |||||
List langList; | List langList; | ||||
List scenesList; | |||||
String extraMsg; | |||||
@override | @override | ||||
void initState() { | void initState() { | ||||
@@ -51,43 +57,57 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
initData(); | initData(); | ||||
WidgetsBinding.instance.addPostFrameCallback((_) { | 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小时清除缓存记录 | // if(DateTime.now().millisecondsSinceEpoch~/1000-second>5*3600){ ///超过5小时清除缓存记录 | ||||
// SPUtils.save(Constants.TranslationHelper,null); | // SPUtils.save(Constants.TranslationHelper,null); | ||||
// return; | // 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; | isApply = false; | ||||
timer = Timer.periodic(Duration(seconds: 1), (Timer t){ | |||||
timer = Timer.periodic(Duration(seconds: 1), (Timer t) { | |||||
handleTick(); | handleTick(); | ||||
}); | }); | ||||
setState(() {}); | setState(() {}); | ||||
} | } | ||||
@override | @override | ||||
void didChangeDependencies() { | void didChangeDependencies() { | ||||
super.didChangeDependencies(); | super.didChangeDependencies(); | ||||
@@ -101,19 +121,23 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
I18n.of(context).Japanese, | 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 | @override | ||||
void dispose() { | void dispose() { | ||||
// MessageMgr().off('Update Group Info', updateGroupInfo); | // 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(); | super.dispose(); | ||||
} | } | ||||
@@ -123,17 +147,19 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
return myPop.PopupMenuButton( | return myPop.PopupMenuButton( | ||||
child: Container( | child: Container( | ||||
constraints: | |||||
BoxConstraints(minHeight: 41, minWidth: 115, maxWidth: 165), | |||||
height: 40, | |||||
width: double.maxFinite, | |||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
color: Color(0xffD3E7FF), | color: Color(0xffD3E7FF), | ||||
borderRadius: BorderRadius.circular(10)), | borderRadius: BorderRadius.circular(10)), | ||||
child: Row( | child: Row( | ||||
mainAxisAlignment: MainAxisAlignment.start, | |||||
children: <Widget>[ | children: <Widget>[ | ||||
Expanded( | Expanded( | ||||
child: Text( | child: Text( | ||||
langList[curIndex], | langList[curIndex], | ||||
textAlign: TextAlign.center, | textAlign: TextAlign.center, | ||||
overflow: TextOverflow.ellipsis, | |||||
textScaleFactor: 1.0, | textScaleFactor: 1.0, | ||||
style: TextStyle(color: Color(0xff4A5E76), fontSize: 14), | 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 | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
Widget appBar = AppBar( | Widget appBar = AppBar( | ||||
@@ -226,7 +314,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
Container( | Container( | ||||
margin: EdgeInsets.all(10), | margin: EdgeInsets.all(10), | ||||
child: Card( | child: Card( | ||||
elevation: 5, // 阴影 | |||||
elevation: 2, // 阴影 | |||||
shape: RoundedRectangleBorder( | shape: RoundedRectangleBorder( | ||||
borderRadius: BorderRadius.circular(10), | borderRadius: BorderRadius.circular(10), | ||||
// side: BorderSide(color: Colors.green,width: 25), | // side: BorderSide(color: Colors.green,width: 25), | ||||
@@ -248,53 +336,101 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
), | ), | ||||
Row( | Row( | ||||
children: <Widget>[ | 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, | textScaleFactor: 1.0, | ||||
style: TextStyle(color: Colors.white, fontSize: 19), | style: TextStyle(color: Colors.white, fontSize: 19), | ||||
), | ), | ||||
onPressed:(){ | |||||
onPressed: () { | |||||
timeStamp = DateTime.now().millisecondsSinceEpoch; | timeStamp = DateTime.now().millisecondsSinceEpoch; | ||||
apply(); | 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() { | Widget waitPage() { | ||||
// ~/ 取整操作 | // ~/ 取整操作 | ||||
int seconds = secondsPassed % 60; | int seconds = secondsPassed % 60; | ||||
int minutes = secondsPassed ~/ 60; | int minutes = secondsPassed ~/ 60; | ||||
@@ -336,7 +478,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
Container( | Container( | ||||
margin: EdgeInsets.all(10), | margin: EdgeInsets.all(10), | ||||
child: Card( | child: Card( | ||||
elevation: 5, // 阴影 | |||||
elevation: 2, // 阴影 | |||||
shape: RoundedRectangleBorder( | shape: RoundedRectangleBorder( | ||||
borderRadius: BorderRadius.circular(10), | borderRadius: BorderRadius.circular(10), | ||||
// side: BorderSide(color: Colors.green,width: 25), | // side: BorderSide(color: Colors.green,width: 25), | ||||
@@ -431,7 +573,7 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
), | ), | ||||
Padding( | 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( | child: Text( | ||||
I18n.of(context).translation_butler_tips3, | I18n.of(context).translation_butler_tips3, | ||||
textScaleFactor: 1.0, | 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( | Container( | ||||
margin: EdgeInsets.only(left: 70, right: 70, top: 50), | margin: EdgeInsets.only(left: 70, right: 70, top: 50), | ||||
@@ -487,13 +634,12 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
textScaleFactor: 1.0, | textScaleFactor: 1.0, | ||||
style: TextStyle(color: Colors.white, fontSize: 19), | style: TextStyle(color: Colors.white, fontSize: 19), | ||||
), | ), | ||||
onPressed: () async{ | |||||
await SPUtils.save(Constants.TranslationHelper,null); | |||||
onPressed: () async { | |||||
await SPUtils.save(Constants.TranslationHelper, null); | |||||
setState(() { | setState(() { | ||||
isApply = true; | isApply = true; | ||||
timer?.cancel(); | timer?.cancel(); | ||||
secondsPassed=0; | |||||
secondsPassed = 0; | |||||
}); | }); | ||||
}), | }), | ||||
), | ), | ||||
@@ -519,17 +665,16 @@ class TranslationButlerPageState extends State<TranslationButlerPage> { | |||||
int secondsPassed = 1; | int secondsPassed = 1; | ||||
int timeStamp; | int timeStamp; | ||||
Timer timer; | Timer timer; | ||||
void handleTick() { | void handleTick() { | ||||
// if (isActive) { | // 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/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/google_map_location_picker.dart'; | ||||
import 'package:chat/map/location_result.dart'; | import 'package:chat/map/location_result.dart'; | ||||
import 'package:chat/models/group_info_model.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/screen.dart'; | ||||
import 'package:chat/utils/separator_line.dart'; | import 'package:chat/utils/separator_line.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; | |||||
import 'package:geolocator/geolocator.dart'; | import 'package:geolocator/geolocator.dart'; | ||||
import 'package:google_maps_flutter/google_maps_flutter.dart'; | import 'package:google_maps_flutter/google_maps_flutter.dart'; | ||||
import 'package:oktoast/oktoast.dart'; | |||||
import 'package:permission_handler/permission_handler.dart'; | import 'package:permission_handler/permission_handler.dart'; | ||||
import 'package:provider/provider.dart'; | |||||
import '../../data/constants.dart'; | import '../../data/constants.dart'; | ||||
import '../../generated/i18n.dart'; | import '../../generated/i18n.dart'; | ||||
import '../../utils/CustomUI.dart'; | import '../../utils/CustomUI.dart'; | ||||
import '../../utils/FullWithButton.dart'; | |||||
import '../../utils/app_navigator.dart'; | |||||
import '../create_group_view.dart'; | |||||
class TravelButlerPage extends StatefulWidget { | class TravelButlerPage extends StatefulWidget { | ||||
final GroupInfoModel groupInfoModel; | final GroupInfoModel groupInfoModel; | ||||
@@ -55,6 +55,13 @@ class _UnreadDotState extends State<UnreadDot> { | |||||
break; | break; | ||||
case 5: | case 5: | ||||
isHasUnread = isHaveNewFriends(); | isHasUnread = isHaveNewFriends(); | ||||
break; | |||||
case 6: | |||||
isHasUnread=false; | |||||
break; | |||||
case 7: | |||||
isHasUnread = ChatDataMgr().unreadCountProvider.checkUnreadMsg() || isShowMsg() || ChatDataMgr().groupUnreadProvider.checkUnreadMsg(); | |||||
break; | break; | ||||
} | } | ||||
@@ -1,514 +1,526 @@ | |||||
class R { | class R { | ||||
///  | |||||
///  | |||||
static final String assetsImagesBofang = 'assets/images/bofang.png'; | static final String assetsImagesBofang = 'assets/images/bofang.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcQuickSearch = 'assets/images/ic_quick_search.png'; | static final String assetsImagesIcQuickSearch = 'assets/images/ic_quick_search.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTempShare = 'assets/images/img_temp_share.png'; | static final String assetsImagesImgTempShare = 'assets/images/img_temp_share.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcTag = 'assets/images/ic_tag.png'; | static final String assetsImagesIcTag = 'assets/images/ic_tag.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesDefaultNorAvatar = 'assets/images/default_nor_avatar.png'; | static final String assetsImagesDefaultNorAvatar = 'assets/images/default_nor_avatar.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesServerIcon = 'assets/images/server_icon.png'; | static final String assetsImagesServerIcon = 'assets/images/server_icon.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcPublicAccount = 'assets/images/ic_public_account.png'; | static final String assetsImagesIcPublicAccount = 'assets/images/ic_public_account.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcFeeds = 'assets/images/ic_feeds.png'; | static final String assetsImagesIcFeeds = 'assets/images/ic_feeds.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesDailyBg1 = 'assets/images/daily_bg_1.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 assetsImagesYqmBg = 'assets/images/yqm_bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesDailyBg2 = 'assets/images/daily_bg_2.png'; | static final String assetsImagesDailyBg2 = 'assets/images/daily_bg_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtExcel = 'assets/images/ext_excel.png'; | static final String assetsImagesExtExcel = 'assets/images/ext_excel.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgFyj = 'assets/images/img_fyj.png'; | static final String assetsImagesImgFyj = 'assets/images/img_fyj.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesRightGray = 'assets/images/right_gray.png'; | static final String assetsImagesRightGray = 'assets/images/right_gray.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcGroupChat = 'assets/images/ic_group_chat.png'; | static final String assetsImagesIcGroupChat = 'assets/images/ic_group_chat.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTempSee = 'assets/images/img_temp_see.png'; | static final String assetsImagesImgTempSee = 'assets/images/img_temp_see.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtPdf = 'assets/images/ext_pdf.png'; | static final String assetsImagesExtPdf = 'assets/images/ext_pdf.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtPpt = 'assets/images/ext_ppt.png'; | static final String assetsImagesExtPpt = 'assets/images/ext_ppt.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcMiniProgram = 'assets/images/ic_mini_program.png'; | static final String assetsImagesIcMiniProgram = 'assets/images/ic_mini_program.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcShakePhone = 'assets/images/ic_shake_phone.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 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 assetsImagesDailyIcon = 'assets/images/daily_icon.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLeftGray = 'assets/images/left_gray.png'; | static final String assetsImagesLeftGray = 'assets/images/left_gray.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcSocialCircle = 'assets/images/ic_social_circle.png'; | static final String assetsImagesIcSocialCircle = 'assets/images/ic_social_circle.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtApk = 'assets/images/ext_apk.png'; | static final String assetsImagesExtApk = 'assets/images/ext_apk.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesSvip = 'assets/images/svip.png'; | static final String assetsImagesSvip = 'assets/images/svip.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcQrcodePreviewTiny = 'assets/images/ic_qrcode_preview_tiny.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 assetsImagesIcAlbum = 'assets/images/ic_album.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesZhiwen = 'assets/images/zhiwen.png'; | static final String assetsImagesZhiwen = 'assets/images/zhiwen.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesNetError = 'assets/images/net_error.png'; | static final String assetsImagesNetError = 'assets/images/net_error.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcEmotions = 'assets/images/ic_emotions.png'; | static final String assetsImagesIcEmotions = 'assets/images/ic_emotions.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtVideo = 'assets/images/ext_video.png'; | static final String assetsImagesExtVideo = 'assets/images/ext_video.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtWord = 'assets/images/ext_word.png'; | static final String assetsImagesExtWord = 'assets/images/ext_word.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTempHy = 'assets/images/img_temp_hy.png'; | static final String assetsImagesImgTempHy = 'assets/images/img_temp_hy.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesHand = 'assets/images/hand.png'; | static final String assetsImagesHand = 'assets/images/hand.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesQianbaoBg = 'assets/images/qianbao_bg.png'; | static final String assetsImagesQianbaoBg = 'assets/images/qianbao_bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgSplash3 = 'assets/images/img_splash_3.png'; | static final String assetsImagesImgSplash3 = 'assets/images/img_splash_3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgUpdateBg = 'assets/images/img_update_bg.png'; | static final String assetsImagesImgUpdateBg = 'assets/images/img_update_bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesDailyBtn1 = 'assets/images/daily_btn_1.png'; | static final String assetsImagesDailyBtn1 = 'assets/images/daily_btn_1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem4 = 'assets/images/chat_item_4.png'; | static final String assetsImagesChatItem4 = 'assets/images/chat_item_4.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem5 = 'assets/images/chat_item_5.png'; | static final String assetsImagesChatItem5 = 'assets/images/chat_item_5.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcPeopleNearby = 'assets/images/ic_people_nearby.png'; | static final String assetsImagesIcPeopleNearby = 'assets/images/ic_people_nearby.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgSplash2 = 'assets/images/img_splash_2.png'; | static final String assetsImagesImgSplash2 = 'assets/images/img_splash_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcTxNews = 'assets/images/ic_tx_news.png'; | static final String assetsImagesIcTxNews = 'assets/images/ic_tx_news.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesServiceIcon = 'assets/images/service_icon.png'; | static final String assetsImagesServiceIcon = 'assets/images/service_icon.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesDailyBtn2 = 'assets/images/daily_btn_2.png'; | static final String assetsImagesDailyBtn2 = 'assets/images/daily_btn_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem7 = 'assets/images/chat_item_7.png'; | static final String assetsImagesChatItem7 = 'assets/images/chat_item_7.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTempQb = 'assets/images/img_temp_qb.png'; | static final String assetsImagesImgTempQb = 'assets/images/img_temp_qb.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTravelButler = 'assets/images/img_travel_butler.png'; | static final String assetsImagesImgTravelButler = 'assets/images/img_travel_butler.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem6 = 'assets/images/chat_item_6.png'; | static final String assetsImagesChatItem6 = 'assets/images/chat_item_6.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgLongIndex = 'assets/images/img_long_index.png'; | static final String assetsImagesImgLongIndex = 'assets/images/img_long_index.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgSplash1 = 'assets/images/img_splash_1.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 assetsImagesDailyCoin = 'assets/images/daily_coin.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcNewFriend = 'assets/images/ic_new_friend.png'; | static final String assetsImagesIcNewFriend = 'assets/images/ic_new_friend.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcSettings = 'assets/images/ic_settings.png'; | static final String assetsImagesIcSettings = 'assets/images/ic_settings.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcCardsWallet = 'assets/images/ic_cards_wallet.png'; | static final String assetsImagesIcCardsWallet = 'assets/images/ic_cards_wallet.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem2 = 'assets/images/chat_item_2.png'; | static final String assetsImagesChatItem2 = 'assets/images/chat_item_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem3 = 'assets/images/chat_item_3.png'; | static final String assetsImagesChatItem3 = 'assets/images/chat_item_3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesRobot = 'assets/images/robot.jpg'; | static final String assetsImagesRobot = 'assets/images/robot.jpg'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtSound = 'assets/images/ext_sound.png'; | static final String assetsImagesExtSound = 'assets/images/ext_sound.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtZip = 'assets/images/ext_zip.png'; | static final String assetsImagesExtZip = 'assets/images/ext_zip.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatItem1 = 'assets/images/chat_item_1.png'; | static final String assetsImagesChatItem1 = 'assets/images/chat_item_1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTempQd = 'assets/images/img_temp_qd.png'; | static final String assetsImagesImgTempQd = 'assets/images/img_temp_qd.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTranslationButler = 'assets/images/img_translation_butler.png'; | static final String assetsImagesImgTranslationButler = 'assets/images/img_translation_butler.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLeftWhite = 'assets/images/left_white.png'; | static final String assetsImagesLeftWhite = 'assets/images/left_white.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVoucher = 'assets/images/voucher.png'; | static final String assetsImagesVoucher = 'assets/images/voucher.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVIP = 'assets/images/VIP.png'; | static final String assetsImagesVIP = 'assets/images/VIP.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcWallet = 'assets/images/ic_wallet.png'; | static final String assetsImagesIcWallet = 'assets/images/ic_wallet.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesRightWhite = 'assets/images/right_white.png'; | static final String assetsImagesRightWhite = 'assets/images/right_white.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcCollections = 'assets/images/ic_collections.png'; | static final String assetsImagesIcCollections = 'assets/images/ic_collections.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftShow24 = 'assets/images/gift_show_2_4.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 assetsImagesIcWxGames = 'assets/images/ic_wx_games.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcShopping = 'assets/images/ic_shopping.png'; | static final String assetsImagesIcShopping = 'assets/images/ic_shopping.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcFengchao = 'assets/images/ic_fengchao.png'; | static final String assetsImagesIcFengchao = 'assets/images/ic_fengchao.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcFileTransfer = 'assets/images/ic_file_transfer.png'; | static final String assetsImagesIcFileTransfer = 'assets/images/ic_file_transfer.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesSuo = 'assets/images/suo.png'; | static final String assetsImagesSuo = 'assets/images/suo.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesRedPacketBg = 'assets/images/red_packet_bg.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 assetsImagesGiftShow23 = 'assets/images/gift_show_2_3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtUnknown = 'assets/images/ext_unknown.png'; | static final String assetsImagesExtUnknown = 'assets/images/ext_unknown.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesCoin = 'assets/images/coin.png'; | static final String assetsImagesCoin = 'assets/images/coin.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftAnim3 = 'assets/images/gift_anim_3.gif'; | static final String assetsImagesGiftAnim3 = 'assets/images/gift_anim_3.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftAnim2 = 'assets/images/gift_anim_2.gif'; | static final String assetsImagesGiftAnim2 = 'assets/images/gift_anim_2.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGift1 = 'assets/images/gift_1.png'; | static final String assetsImagesGift1 = 'assets/images/gift_1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesBack = 'assets/images/back.png'; | static final String assetsImagesBack = 'assets/images/back.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftShow22 = 'assets/images/gift_show_2_2.png'; | static final String assetsImagesGiftShow22 = 'assets/images/gift_show_2_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGift3 = 'assets/images/gift_3.png'; | static final String assetsImagesGift3 = 'assets/images/gift_3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesIcQuickScan = 'assets/images/ic_quick_scan.png'; | static final String assetsImagesIcQuickScan = 'assets/images/ic_quick_scan.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesImgTranslationIcon = 'assets/images/img_translation_icon.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 assetsImagesIcBottleMsg = 'assets/images/ic_bottle_msg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftAnim1 = 'assets/images/gift_anim_1.gif'; | static final String assetsImagesGiftAnim1 = 'assets/images/gift_anim_1.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesBg = 'assets/images/bg.png'; | static final String assetsImagesBg = 'assets/images/bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGift2 = 'assets/images/gift_2.png'; | static final String assetsImagesGift2 = 'assets/images/gift_2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesExtTxt = 'assets/images/ext_txt.png'; | static final String assetsImagesExtTxt = 'assets/images/ext_txt.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesGiftShow21 = 'assets/images/gift_show_2_1.png'; | static final String assetsImagesGiftShow21 = 'assets/images/gift_show_2_1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatEmoji = 'assets/images/chat/emoji.png'; | static final String assetsImagesChatEmoji = 'assets/images/chat/emoji.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatOnion = 'assets/images/chat/onion.png'; | static final String assetsImagesChatOnion = 'assets/images/chat/onion.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon1 = 'assets/images/chat/icon1.png'; | static final String assetsImagesChatIcon1 = 'assets/images/chat/icon1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon3 = 'assets/images/chat/icon3.png'; | static final String assetsImagesChatIcon3 = 'assets/images/chat/icon3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon2 = 'assets/images/chat/icon2.png'; | static final String assetsImagesChatIcon2 = 'assets/images/chat/icon2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon6 = 'assets/images/chat/icon6.png'; | static final String assetsImagesChatIcon6 = 'assets/images/chat/icon6.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon5 = 'assets/images/chat/icon5.png'; | static final String assetsImagesChatIcon5 = 'assets/images/chat/icon5.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesChatIcon4 = 'assets/images/chat/icon4.png'; | static final String assetsImagesChatIcon4 = 'assets/images/chat/icon4.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipWx = 'assets/images/login/vip_wx.png'; | static final String assetsImagesLoginVipWx = 'assets/images/login/vip_wx.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipLogio = 'assets/images/login/vip_logio.png'; | static final String assetsImagesLoginVipLogio = 'assets/images/login/vip_logio.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginLock = 'assets/images/login/lock.png'; | static final String assetsImagesLoginLock = 'assets/images/login/lock.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipRect1 = 'assets/images/login/vip_rect1.png'; | static final String assetsImagesLoginVipRect1 = 'assets/images/login/vip_rect1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipRect3 = 'assets/images/login/vip_rect3.png'; | static final String assetsImagesLoginVipRect3 = 'assets/images/login/vip_rect3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipRect2 = 'assets/images/login/vip_rect2.png'; | static final String assetsImagesLoginVipRect2 = 'assets/images/login/vip_rect2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipZfb = 'assets/images/login/vip_zfb.png'; | static final String assetsImagesLoginVipZfb = 'assets/images/login/vip_zfb.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDlyIcon3 = 'assets/images/login/dly_icon3.png'; | static final String assetsImagesLoginDlyIcon3 = 'assets/images/login/dly_icon3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDlyIcon2 = 'assets/images/login/dly_icon2.png'; | static final String assetsImagesLoginDlyIcon2 = 'assets/images/login/dly_icon2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginSYBg = 'assets/images/login/SY_bg.png'; | static final String assetsImagesLoginSYBg = 'assets/images/login/SY_bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDlyLogo = 'assets/images/login/dly_logo.png'; | static final String assetsImagesLoginDlyLogo = 'assets/images/login/dly_logo.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginVipOther = 'assets/images/login/vip_other.png'; | static final String assetsImagesLoginVipOther = 'assets/images/login/vip_other.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDlyIcon1 = 'assets/images/login/dly_icon1.png'; | static final String assetsImagesLoginDlyIcon1 = 'assets/images/login/dly_icon1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginRzzx = 'assets/images/login/rzzx.png'; | static final String assetsImagesLoginRzzx = 'assets/images/login/rzzx.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDlyIcon4 = 'assets/images/login/dly_icon4.png'; | static final String assetsImagesLoginDlyIcon4 = 'assets/images/login/dly_icon4.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginMoney = 'assets/images/login/money.png'; | static final String assetsImagesLoginMoney = 'assets/images/login/money.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginSYLogo = 'assets/images/login/SY_logo.png'; | static final String assetsImagesLoginSYLogo = 'assets/images/login/SY_logo.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginDelete = 'assets/images/login/delete.png'; | static final String assetsImagesLoginDelete = 'assets/images/login/delete.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginXzxbMale = 'assets/images/login/xzxb_male.png'; | static final String assetsImagesLoginXzxbMale = 'assets/images/login/xzxb_male.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesLoginXzxbFemale = 'assets/images/login/xzxb_female.png'; | static final String assetsImagesLoginXzxbFemale = 'assets/images/login/xzxb_female.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon8 = 'assets/images/park/qz_icon8.png'; | static final String assetsImagesParkQzIcon8 = 'assets/images/park/qz_icon8.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon1 = 'assets/images/park/qz_icon1.png'; | static final String assetsImagesParkQzIcon1 = 'assets/images/park/qz_icon1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon2 = 'assets/images/park/qz_icon2.png'; | static final String assetsImagesParkQzIcon2 = 'assets/images/park/qz_icon2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon3 = 'assets/images/park/qz_icon3.png'; | static final String assetsImagesParkQzIcon3 = 'assets/images/park/qz_icon3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon7 = 'assets/images/park/qz_icon7.png'; | static final String assetsImagesParkQzIcon7 = 'assets/images/park/qz_icon7.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon6 = 'assets/images/park/qz_icon6.png'; | static final String assetsImagesParkQzIcon6 = 'assets/images/park/qz_icon6.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon4 = 'assets/images/park/qz_icon4.png'; | static final String assetsImagesParkQzIcon4 = 'assets/images/park/qz_icon4.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesParkQzIcon5 = 'assets/images/park/qz_icon5.png'; | static final String assetsImagesParkQzIcon5 = 'assets/images/park/qz_icon5.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker11 = 'assets/images/sticker/sticker_11.gif'; | static final String assetsImagesStickerSticker11 = 'assets/images/sticker/sticker_11.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker7 = 'assets/images/sticker/sticker_7.gif'; | static final String assetsImagesStickerSticker7 = 'assets/images/sticker/sticker_7.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker6 = 'assets/images/sticker/sticker_6.gif'; | static final String assetsImagesStickerSticker6 = 'assets/images/sticker/sticker_6.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker10 = 'assets/images/sticker/sticker_10.gif'; | static final String assetsImagesStickerSticker10 = 'assets/images/sticker/sticker_10.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker12 = 'assets/images/sticker/sticker_12.gif'; | static final String assetsImagesStickerSticker12 = 'assets/images/sticker/sticker_12.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker4 = 'assets/images/sticker/sticker_4.gif'; | static final String assetsImagesStickerSticker4 = 'assets/images/sticker/sticker_4.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker5 = 'assets/images/sticker/sticker_5.gif'; | static final String assetsImagesStickerSticker5 = 'assets/images/sticker/sticker_5.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker13 = 'assets/images/sticker/sticker_13.gif'; | static final String assetsImagesStickerSticker13 = 'assets/images/sticker/sticker_13.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker17 = 'assets/images/sticker/sticker_17.gif'; | static final String assetsImagesStickerSticker17 = 'assets/images/sticker/sticker_17.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker1 = 'assets/images/sticker/sticker_1.gif'; | static final String assetsImagesStickerSticker1 = 'assets/images/sticker/sticker_1.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker16 = 'assets/images/sticker/sticker_16.gif'; | static final String assetsImagesStickerSticker16 = 'assets/images/sticker/sticker_16.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker14 = 'assets/images/sticker/sticker_14.gif'; | static final String assetsImagesStickerSticker14 = 'assets/images/sticker/sticker_14.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker28 = 'assets/images/sticker/sticker_28.gif'; | static final String assetsImagesStickerSticker28 = 'assets/images/sticker/sticker_28.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker2 = 'assets/images/sticker/sticker_2.gif'; | static final String assetsImagesStickerSticker2 = 'assets/images/sticker/sticker_2.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker3 = 'assets/images/sticker/sticker_3.gif'; | static final String assetsImagesStickerSticker3 = 'assets/images/sticker/sticker_3.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker29 = 'assets/images/sticker/sticker_29.gif'; | static final String assetsImagesStickerSticker29 = 'assets/images/sticker/sticker_29.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker15 = 'assets/images/sticker/sticker_15.gif'; | static final String assetsImagesStickerSticker15 = 'assets/images/sticker/sticker_15.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker18 = 'assets/images/sticker/sticker_18.gif'; | static final String assetsImagesStickerSticker18 = 'assets/images/sticker/sticker_18.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker24 = 'assets/images/sticker/sticker_24.gif'; | static final String assetsImagesStickerSticker24 = 'assets/images/sticker/sticker_24.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker30 = 'assets/images/sticker/sticker_30.gif'; | static final String assetsImagesStickerSticker30 = 'assets/images/sticker/sticker_30.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker25 = 'assets/images/sticker/sticker_25.gif'; | static final String assetsImagesStickerSticker25 = 'assets/images/sticker/sticker_25.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker19 = 'assets/images/sticker/sticker_19.gif'; | static final String assetsImagesStickerSticker19 = 'assets/images/sticker/sticker_19.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker27 = 'assets/images/sticker/sticker_27.gif'; | static final String assetsImagesStickerSticker27 = 'assets/images/sticker/sticker_27.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker26 = 'assets/images/sticker/sticker_26.gif'; | static final String assetsImagesStickerSticker26 = 'assets/images/sticker/sticker_26.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker22 = 'assets/images/sticker/sticker_22.gif'; | static final String assetsImagesStickerSticker22 = 'assets/images/sticker/sticker_22.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker8 = 'assets/images/sticker/sticker_8.gif'; | static final String assetsImagesStickerSticker8 = 'assets/images/sticker/sticker_8.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker9 = 'assets/images/sticker/sticker_9.gif'; | static final String assetsImagesStickerSticker9 = 'assets/images/sticker/sticker_9.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker23 = 'assets/images/sticker/sticker_23.gif'; | static final String assetsImagesStickerSticker23 = 'assets/images/sticker/sticker_23.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker21 = 'assets/images/sticker/sticker_21.gif'; | static final String assetsImagesStickerSticker21 = 'assets/images/sticker/sticker_21.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesStickerSticker20 = 'assets/images/sticker/sticker_20.gif'; | static final String assetsImagesStickerSticker20 = 'assets/images/sticker/sticker_20.gif'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyBg = 'assets/images/vip/hy_bg.png'; | static final String assetsImagesVipHyBg = 'assets/images/vip/hy_bg.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyTj = 'assets/images/vip/hy_tj.png'; | static final String assetsImagesVipHyTj = 'assets/images/vip/hy_tj.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyXz = 'assets/images/vip/hy_xz.png'; | static final String assetsImagesVipHyXz = 'assets/images/vip/hy_xz.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyCjhy = 'assets/images/vip/hy_cjhy.png'; | static final String assetsImagesVipHyCjhy = 'assets/images/vip/hy_cjhy.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyHy = 'assets/images/vip/hy_hy.png'; | static final String assetsImagesVipHyHy = 'assets/images/vip/hy_hy.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesVipHyTq = 'assets/images/vip/hy_tq.png'; | static final String assetsImagesVipHyTq = 'assets/images/vip/hy_tq.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface88 = 'assets/images/emojiface/88.png'; | static final String assetsImagesEmojiface88 = 'assets/images/emojiface/88.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface77 = 'assets/images/emojiface/77.png'; | static final String assetsImagesEmojiface77 = 'assets/images/emojiface/77.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface63 = 'assets/images/emojiface/63.png'; | static final String assetsImagesEmojiface63 = 'assets/images/emojiface/63.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface62 = 'assets/images/emojiface/62.png'; | static final String assetsImagesEmojiface62 = 'assets/images/emojiface/62.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface76 = 'assets/images/emojiface/76.png'; | static final String assetsImagesEmojiface76 = 'assets/images/emojiface/76.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface89 = 'assets/images/emojiface/89.png'; | static final String assetsImagesEmojiface89 = 'assets/images/emojiface/89.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface60 = 'assets/images/emojiface/60.png'; | static final String assetsImagesEmojiface60 = 'assets/images/emojiface/60.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface74 = 'assets/images/emojiface/74.png'; | static final String assetsImagesEmojiface74 = 'assets/images/emojiface/74.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface48 = 'assets/images/emojiface/48.png'; | static final String assetsImagesEmojiface48 = 'assets/images/emojiface/48.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface49 = 'assets/images/emojiface/49.png'; | static final String assetsImagesEmojiface49 = 'assets/images/emojiface/49.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface75 = 'assets/images/emojiface/75.png'; | static final String assetsImagesEmojiface75 = 'assets/images/emojiface/75.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface61 = 'assets/images/emojiface/61.png'; | static final String assetsImagesEmojiface61 = 'assets/images/emojiface/61.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface59 = 'assets/images/emojiface/59.png'; | static final String assetsImagesEmojiface59 = 'assets/images/emojiface/59.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface65 = 'assets/images/emojiface/65.png'; | static final String assetsImagesEmojiface65 = 'assets/images/emojiface/65.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface71 = 'assets/images/emojiface/71.png'; | static final String assetsImagesEmojiface71 = 'assets/images/emojiface/71.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface70 = 'assets/images/emojiface/70.png'; | static final String assetsImagesEmojiface70 = 'assets/images/emojiface/70.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface64 = 'assets/images/emojiface/64.png'; | static final String assetsImagesEmojiface64 = 'assets/images/emojiface/64.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface58 = 'assets/images/emojiface/58.png'; | static final String assetsImagesEmojiface58 = 'assets/images/emojiface/58.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface8 = 'assets/images/emojiface/8.png'; | static final String assetsImagesEmojiface8 = 'assets/images/emojiface/8.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface72 = 'assets/images/emojiface/72.png'; | static final String assetsImagesEmojiface72 = 'assets/images/emojiface/72.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface66 = 'assets/images/emojiface/66.png'; | static final String assetsImagesEmojiface66 = 'assets/images/emojiface/66.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface67 = 'assets/images/emojiface/67.png'; | static final String assetsImagesEmojiface67 = 'assets/images/emojiface/67.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface73 = 'assets/images/emojiface/73.png'; | static final String assetsImagesEmojiface73 = 'assets/images/emojiface/73.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface9 = 'assets/images/emojiface/9.png'; | static final String assetsImagesEmojiface9 = 'assets/images/emojiface/9.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface14 = 'assets/images/emojiface/14.png'; | static final String assetsImagesEmojiface14 = 'assets/images/emojiface/14.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface28 = 'assets/images/emojiface/28.png'; | static final String assetsImagesEmojiface28 = 'assets/images/emojiface/28.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface29 = 'assets/images/emojiface/29.png'; | static final String assetsImagesEmojiface29 = 'assets/images/emojiface/29.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface15 = 'assets/images/emojiface/15.png'; | static final String assetsImagesEmojiface15 = 'assets/images/emojiface/15.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface17 = 'assets/images/emojiface/17.png'; | static final String assetsImagesEmojiface17 = 'assets/images/emojiface/17.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface16 = 'assets/images/emojiface/16.png'; | static final String assetsImagesEmojiface16 = 'assets/images/emojiface/16.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface12 = 'assets/images/emojiface/12.png'; | static final String assetsImagesEmojiface12 = 'assets/images/emojiface/12.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface13 = 'assets/images/emojiface/13.png'; | static final String assetsImagesEmojiface13 = 'assets/images/emojiface/13.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface39 = 'assets/images/emojiface/39.png'; | static final String assetsImagesEmojiface39 = 'assets/images/emojiface/39.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface11 = 'assets/images/emojiface/11.png'; | static final String assetsImagesEmojiface11 = 'assets/images/emojiface/11.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface10 = 'assets/images/emojiface/10.png'; | static final String assetsImagesEmojiface10 = 'assets/images/emojiface/10.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface38 = 'assets/images/emojiface/38.png'; | static final String assetsImagesEmojiface38 = 'assets/images/emojiface/38.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface35 = 'assets/images/emojiface/35.png'; | static final String assetsImagesEmojiface35 = 'assets/images/emojiface/35.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface21 = 'assets/images/emojiface/21.png'; | static final String assetsImagesEmojiface21 = 'assets/images/emojiface/21.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface20 = 'assets/images/emojiface/20.png'; | static final String assetsImagesEmojiface20 = 'assets/images/emojiface/20.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface34 = 'assets/images/emojiface/34.png'; | static final String assetsImagesEmojiface34 = 'assets/images/emojiface/34.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface22 = 'assets/images/emojiface/22.png'; | static final String assetsImagesEmojiface22 = 'assets/images/emojiface/22.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface36 = 'assets/images/emojiface/36.png'; | static final String assetsImagesEmojiface36 = 'assets/images/emojiface/36.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface37 = 'assets/images/emojiface/37.png'; | static final String assetsImagesEmojiface37 = 'assets/images/emojiface/37.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface23 = 'assets/images/emojiface/23.png'; | static final String assetsImagesEmojiface23 = 'assets/images/emojiface/23.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface27 = 'assets/images/emojiface/27.png'; | static final String assetsImagesEmojiface27 = 'assets/images/emojiface/27.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface33 = 'assets/images/emojiface/33.png'; | static final String assetsImagesEmojiface33 = 'assets/images/emojiface/33.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface32 = 'assets/images/emojiface/32.png'; | static final String assetsImagesEmojiface32 = 'assets/images/emojiface/32.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface26 = 'assets/images/emojiface/26.png'; | static final String assetsImagesEmojiface26 = 'assets/images/emojiface/26.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface18 = 'assets/images/emojiface/18.png'; | static final String assetsImagesEmojiface18 = 'assets/images/emojiface/18.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface30 = 'assets/images/emojiface/30.png'; | static final String assetsImagesEmojiface30 = 'assets/images/emojiface/30.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface24 = 'assets/images/emojiface/24.png'; | static final String assetsImagesEmojiface24 = 'assets/images/emojiface/24.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface25 = 'assets/images/emojiface/25.png'; | static final String assetsImagesEmojiface25 = 'assets/images/emojiface/25.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface31 = 'assets/images/emojiface/31.png'; | static final String assetsImagesEmojiface31 = 'assets/images/emojiface/31.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface19 = 'assets/images/emojiface/19.png'; | static final String assetsImagesEmojiface19 = 'assets/images/emojiface/19.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface81 = 'assets/images/emojiface/81.png'; | static final String assetsImagesEmojiface81 = 'assets/images/emojiface/81.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface4 = 'assets/images/emojiface/4.png'; | static final String assetsImagesEmojiface4 = 'assets/images/emojiface/4.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface56 = 'assets/images/emojiface/56.png'; | static final String assetsImagesEmojiface56 = 'assets/images/emojiface/56.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface42 = 'assets/images/emojiface/42.png'; | static final String assetsImagesEmojiface42 = 'assets/images/emojiface/42.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface43 = 'assets/images/emojiface/43.png'; | static final String assetsImagesEmojiface43 = 'assets/images/emojiface/43.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface5 = 'assets/images/emojiface/5.png'; | static final String assetsImagesEmojiface5 = 'assets/images/emojiface/5.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface57 = 'assets/images/emojiface/57.png'; | static final String assetsImagesEmojiface57 = 'assets/images/emojiface/57.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface80 = 'assets/images/emojiface/80.png'; | static final String assetsImagesEmojiface80 = 'assets/images/emojiface/80.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface82 = 'assets/images/emojiface/82.png'; | static final String assetsImagesEmojiface82 = 'assets/images/emojiface/82.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface41 = 'assets/images/emojiface/41.png'; | static final String assetsImagesEmojiface41 = 'assets/images/emojiface/41.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface55 = 'assets/images/emojiface/55.png'; | static final String assetsImagesEmojiface55 = 'assets/images/emojiface/55.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface7 = 'assets/images/emojiface/7.png'; | static final String assetsImagesEmojiface7 = 'assets/images/emojiface/7.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface69 = 'assets/images/emojiface/69.png'; | static final String assetsImagesEmojiface69 = 'assets/images/emojiface/69.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface68 = 'assets/images/emojiface/68.png'; | static final String assetsImagesEmojiface68 = 'assets/images/emojiface/68.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface54 = 'assets/images/emojiface/54.png'; | static final String assetsImagesEmojiface54 = 'assets/images/emojiface/54.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface6 = 'assets/images/emojiface/6.png'; | static final String assetsImagesEmojiface6 = 'assets/images/emojiface/6.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface40 = 'assets/images/emojiface/40.png'; | static final String assetsImagesEmojiface40 = 'assets/images/emojiface/40.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface83 = 'assets/images/emojiface/83.png'; | static final String assetsImagesEmojiface83 = 'assets/images/emojiface/83.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface87 = 'assets/images/emojiface/87.png'; | static final String assetsImagesEmojiface87 = 'assets/images/emojiface/87.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface78 = 'assets/images/emojiface/78.png'; | static final String assetsImagesEmojiface78 = 'assets/images/emojiface/78.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface44 = 'assets/images/emojiface/44.png'; | static final String assetsImagesEmojiface44 = 'assets/images/emojiface/44.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface2 = 'assets/images/emojiface/2.png'; | static final String assetsImagesEmojiface2 = 'assets/images/emojiface/2.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface50 = 'assets/images/emojiface/50.png'; | static final String assetsImagesEmojiface50 = 'assets/images/emojiface/50.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface3 = 'assets/images/emojiface/3.png'; | static final String assetsImagesEmojiface3 = 'assets/images/emojiface/3.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface51 = 'assets/images/emojiface/51.png'; | static final String assetsImagesEmojiface51 = 'assets/images/emojiface/51.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface45 = 'assets/images/emojiface/45.png'; | static final String assetsImagesEmojiface45 = 'assets/images/emojiface/45.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface79 = 'assets/images/emojiface/79.png'; | static final String assetsImagesEmojiface79 = 'assets/images/emojiface/79.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface86 = 'assets/images/emojiface/86.png'; | static final String assetsImagesEmojiface86 = 'assets/images/emojiface/86.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface90 = 'assets/images/emojiface/90.png'; | static final String assetsImagesEmojiface90 = 'assets/images/emojiface/90.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface84 = 'assets/images/emojiface/84.png'; | static final String assetsImagesEmojiface84 = 'assets/images/emojiface/84.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface53 = 'assets/images/emojiface/53.png'; | static final String assetsImagesEmojiface53 = 'assets/images/emojiface/53.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface1 = 'assets/images/emojiface/1.png'; | static final String assetsImagesEmojiface1 = 'assets/images/emojiface/1.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface47 = 'assets/images/emojiface/47.png'; | static final String assetsImagesEmojiface47 = 'assets/images/emojiface/47.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface46 = 'assets/images/emojiface/46.png'; | static final String assetsImagesEmojiface46 = 'assets/images/emojiface/46.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface52 = 'assets/images/emojiface/52.png'; | static final String assetsImagesEmojiface52 = 'assets/images/emojiface/52.png'; | ||||
///  | |||||
///  | |||||
static final String assetsImagesEmojiface85 = 'assets/images/emojiface/85.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/data/constants.dart'; | ||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/home/VerificationCenter.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/models/group_info_model.dart'; | ||||
import 'package:chat/photo/ui/dialog/not_permission_dialog.dart'; | import 'package:chat/photo/ui/dialog/not_permission_dialog.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | import 'package:chat/utils/LoadingDialog.dart'; | ||||
@@ -1301,10 +1302,10 @@ class CustomUI { | |||||
color: AppColors.NewAppbarTextColor, fontSize: 14), | 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) { | switch (result.status) { | ||||
case FacebookLoginStatus.loggedIn: | case FacebookLoginStatus.loggedIn: | ||||
final FacebookAccessToken accessToken = result.accessToken; | final FacebookAccessToken accessToken = result.accessToken; | ||||
thirdLogin(context, accessToken.userId, 0); | |||||
thirdLogin(context, accessToken.userId, 1); | |||||
break; | break; | ||||
case FacebookLoginStatus.cancelledByUser: | case FacebookLoginStatus.cancelledByUser: | ||||
@@ -6,8 +6,11 @@ import 'package:flutter/material.dart'; | |||||
class CountDownButton extends StatefulWidget{ | class CountDownButton extends StatefulWidget{ | ||||
final String text; | 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 | @override | ||||
State<StatefulWidget> createState() { | State<StatefulWidget> createState() { | ||||
@@ -18,14 +21,13 @@ class CountDownButton extends StatefulWidget{ | |||||
} | } | ||||
class CountDownButtonState extends State<CountDownButton> { | class CountDownButtonState extends State<CountDownButton> { | ||||
int secondsPassed = 5*60; | |||||
// int secondsPassed =10; | |||||
int secondsPassed ; | |||||
Timer timer; | Timer timer; | ||||
void handleTick() { | void handleTick() { | ||||
// if (isActive) { | // if (isActive) { | ||||
if(secondsPassed==1){ | if(secondsPassed==1){ | ||||
widget.callBack(); | |||||
widget.countDownCallBack(); | |||||
timer?.cancel(); | timer?.cancel(); | ||||
return; | return; | ||||
} | } | ||||
@@ -44,6 +46,7 @@ class CountDownButtonState extends State<CountDownButton> { | |||||
void initState() { | void initState() { | ||||
// TODO: implement initState | // TODO: implement initState | ||||
super.initState(); | super.initState(); | ||||
secondsPassed = widget.countDownTime; | |||||
timer = Timer.periodic(Duration(seconds: 1), (Timer t){ | timer = Timer.periodic(Duration(seconds: 1), (Timer t){ | ||||
handleTick(); | handleTick(); | ||||
}); | }); | ||||
@@ -63,10 +66,11 @@ class CountDownButtonState extends State<CountDownButton> { | |||||
int seconds = secondsPassed % 60; | int seconds = secondsPassed % 60; | ||||
int minutes = secondsPassed ~/ 60; | int minutes = secondsPassed ~/ 60; | ||||
return Container( | 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, | height: 48, | ||||
child: RaisedButton( | child: RaisedButton( | ||||
color: Color(0xff3875E9), | color: Color(0xff3875E9), | ||||
shape: RoundedRectangleBorder( | shape: RoundedRectangleBorder( | ||||
borderRadius: BorderRadius.all(Radius.circular(10))), | borderRadius: BorderRadius.all(Radius.circular(10))), | ||||
@@ -78,15 +82,13 @@ class CountDownButtonState extends State<CountDownButton> { | |||||
text: widget.text, | text: widget.text, | ||||
style: TextStyle( | style: TextStyle( | ||||
color: Colors.white, | color: Colors.white, | ||||
fontSize: 18)), | |||||
fontSize: 16)), | |||||
TextSpan( | TextSpan( | ||||
text:' ('+ getFull(minutes)+' : '+getFull(seconds)+')', | text:' ('+ getFull(minutes)+' : '+getFull(seconds)+')', | ||||
style: TextStyle( | 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_public_account.png | ||||
- assets/images/ic_feeds.png | - assets/images/ic_feeds.png | ||||
- assets/images/daily_bg_1.png | - assets/images/daily_bg_1.png | ||||
- assets/images/img_translation_no.png | |||||
- assets/images/yqm_bg.png | - assets/images/yqm_bg.png | ||||
- assets/images/daily_bg_2.png | - assets/images/daily_bg_2.png | ||||
- assets/images/ext_excel.png | - assets/images/ext_excel.png | ||||
@@ -217,13 +218,16 @@ flutter: | |||||
- assets/images/ext_ppt.png | - assets/images/ext_ppt.png | ||||
- assets/images/ic_mini_program.png | - assets/images/ic_mini_program.png | ||||
- assets/images/ic_shake_phone.png | - assets/images/ic_shake_phone.png | ||||
- assets/images/img_translation_no_p.png | |||||
- assets/images/ic_game_entry.png | - assets/images/ic_game_entry.png | ||||
- assets/images/img_translation_yes.png | |||||
- assets/images/daily_icon.png | - assets/images/daily_icon.png | ||||
- assets/images/left_gray.png | - assets/images/left_gray.png | ||||
- assets/images/ic_social_circle.png | - assets/images/ic_social_circle.png | ||||
- assets/images/ext_apk.png | - assets/images/ext_apk.png | ||||
- assets/images/svip.png | - assets/images/svip.png | ||||
- assets/images/ic_qrcode_preview_tiny.png | - assets/images/ic_qrcode_preview_tiny.png | ||||
- assets/images/img_tran_icon.png | |||||
- assets/images/ic_album.png | - assets/images/ic_album.png | ||||
- assets/images/zhiwen.png | - assets/images/zhiwen.png | ||||
- assets/images/net_error.png | - assets/images/net_error.png | ||||
@@ -249,6 +253,7 @@ flutter: | |||||
- assets/images/chat_item_6.png | - assets/images/chat_item_6.png | ||||
- assets/images/img_long_index.png | - assets/images/img_long_index.png | ||||
- assets/images/img_splash_1.png | - assets/images/img_splash_1.png | ||||
- assets/images/img_translation_yes_p.png | |||||
- assets/images/daily_coin.png | - assets/images/daily_coin.png | ||||
- assets/images/ic_new_friend.png | - assets/images/ic_new_friend.png | ||||
- assets/images/ic_settings.png | - assets/images/ic_settings.png | ||||
@@ -285,6 +290,7 @@ flutter: | |||||
- assets/images/gift_3.png | - assets/images/gift_3.png | ||||
- assets/images/ic_quick_scan.png | - assets/images/ic_quick_scan.png | ||||
- assets/images/img_translation_icon.png | - assets/images/img_translation_icon.png | ||||
- assets/images/img_translation_tick.png | |||||
- assets/images/ic_bottle_msg.png | - assets/images/ic_bottle_msg.png | ||||
- assets/images/gift_anim_1.gif | - assets/images/gift_anim_1.gif | ||||
- assets/images/bg.png | - assets/images/bg.png | ||||