@@ -1 +1 @@ | |||
{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"agora_rtc_engine","dependencies":[]},{"name":"amap_location","dependencies":[]},{"name":"android_intent","dependencies":[]},{"name":"app_installer","dependencies":[]},{"name":"apple_sign_in","dependencies":[]},{"name":"audioplayer","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"city_pickers","dependencies":[]},{"name":"connectivity","dependencies":[]},{"name":"easy_contact_picker","dependencies":[]},{"name":"file_picker","dependencies":[]},{"name":"flutter_app_badger","dependencies":[]},{"name":"flutter_audio_recorder","dependencies":[]},{"name":"flutter_bugly","dependencies":[]},{"name":"flutter_facebook_login","dependencies":[]},{"name":"flutter_ijkplayer","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_local_notifications","dependencies":[]},{"name":"flutter_native_image","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_qr_reader","dependencies":["image_picker"]},{"name":"flutter_webview_plugin","dependencies":[]},{"name":"fluwx_no_pay","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"google_maps_flutter","dependencies":[]},{"name":"image_cropper","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"jpush_flutter","dependencies":[]},{"name":"keyboard_utils","dependencies":[]},{"name":"location","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"open_file","dependencies":[]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"share","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":[]},{"name":"video_player","dependencies":[]},{"name":"video_thumbnail","dependencies":[]},{"name":"wifi_info_plugin","dependencies":[]}]} | |||
{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"agora_rtc_engine","dependencies":[]},{"name":"amap_location","dependencies":[]},{"name":"android_intent","dependencies":[]},{"name":"app_installer","dependencies":[]},{"name":"apple_sign_in","dependencies":[]},{"name":"audioplayer","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"city_pickers","dependencies":[]},{"name":"connectivity","dependencies":[]},{"name":"easy_contact_picker","dependencies":[]},{"name":"file_picker","dependencies":[]},{"name":"flutter_app_badger","dependencies":[]},{"name":"flutter_audio_recorder","dependencies":[]},{"name":"flutter_bugly","dependencies":[]},{"name":"flutter_facebook_login","dependencies":[]},{"name":"flutter_ijkplayer","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_local_notifications","dependencies":[]},{"name":"flutter_native_image","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_qr_reader","dependencies":["image_picker"]},{"name":"flutter_webview_plugin","dependencies":[]},{"name":"fluwx_no_pay","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"google_maps_flutter","dependencies":[]},{"name":"image_cropper","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"jpush_flutter","dependencies":[]},{"name":"keyboard_utils","dependencies":[]},{"name":"location","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"open_file","dependencies":[]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"share","dependencies":[]},{"name":"share_extend","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":[]},{"name":"video_player","dependencies":[]},{"name":"video_thumbnail","dependencies":[]},{"name":"wifi_info_plugin","dependencies":[]}]} |
@@ -26,6 +26,7 @@ import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/app_navigator.dart'; | |||
import 'package:chat/utils/date_utils.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:chat/utils/sound_util.dart'; | |||
@@ -38,6 +39,8 @@ import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:provider/provider.dart'; | |||
import 'package:share_extend/share_extend.dart'; | |||
import 'package:url_launcher/url_launcher.dart'; | |||
import '../r.dart'; | |||
import 'full_img_view.dart'; | |||
@@ -253,6 +256,8 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
} else { | |||
///todo 翻译管家系统通知消息 | |||
if (type == ChatType.GroupChatNoticeType.value) { | |||
var res = GroupChatNotice.fromBuffer(widget.msg.msgContent); | |||
@@ -288,14 +293,17 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
_textMsg(List<int> msgContent) { | |||
var msg = utf8.decode(msgContent); | |||
bool isUrl =false; | |||
if(textList[curTextType].contains('http') ){ | |||
isUrl =true; | |||
} | |||
Widget text = Container( | |||
constraints: BoxConstraints(maxWidth: Screen.width - 120), | |||
child: extendedText( | |||
msg, | |||
hideKeyboard: widget.hideKeyboard, | |||
fontSize: FontSize, | |||
color: Colors.black, | |||
color: isUrl?Colors.blue:Colors.black, | |||
), | |||
padding: EdgeInsets.symmetric(horizontal: 9, vertical: 10.5), | |||
decoration: BoxDecoration( | |||
@@ -619,23 +627,47 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
Widget wrapItemWithMenu(item) { | |||
List<Function> actionsFunc = []; | |||
List<String> actions = [ | |||
I18n.of(context).forward, | |||
I18n.of(context).reply, | |||
I18n.of(context).delete, | |||
I18n.of(context).reply, | |||
I18n.of(context).forward | |||
]; | |||
actionsFunc.add(() { | |||
print('转发消息'); | |||
AppNavigator.pushForwardPage(context, widget.msg); | |||
MessageMgr().emit('Delete Select Message', widget.msg); | |||
}); | |||
actionsFunc.add(() { | |||
print('发送引用的消息'); | |||
MessageMgr().emit('Reply Select Message', widget.msg); | |||
}); | |||
actionsFunc.add(() { | |||
MessageMgr().emit('Delete Select Message', widget.msg); | |||
print('转发消息'); | |||
AppNavigator.pushForwardPage(context, widget.msg); | |||
}); | |||
if (widget.msg.msgType == ChatType.FileChatType.value &&widget.msg.localFile!=null) { | |||
//分享文件 | |||
actions.add(I18n.of(context).copy_download_url); | |||
actionsFunc.add(() async{ | |||
UploadUtil().copyFileUrl(widget.msg, context); | |||
String path = widget.msg.localFile; | |||
String type='file'; | |||
if(path.contains('mp4') ||path.contains('mp3')){ | |||
type = 'video'; | |||
}else if(path.contains('png')||path.contains('jpg')||path.contains('jpeg')||path.contains('JPG')||path.contains('PNG')){ | |||
type = 'image'; | |||
} | |||
ShareExtend.share(FileCacheMgr.replacePath(path), type); | |||
}); | |||
} | |||
if (widget.msg.msgType == ChatType.TextChatType.value) { | |||
actions.insert(0, I18n.of(context).copy); | |||
actionsFunc.insert(0, () { | |||
@@ -647,14 +679,6 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
}); | |||
} | |||
//如果是文件增加复制下载地址 | |||
if (widget.msg.msgType == ChatType.FileChatType.value) { | |||
actions.insert(0, I18n.of(context).copy_download_url); | |||
actionsFunc.insert(0, () { | |||
UploadUtil().copyFileUrl(widget.msg, context); | |||
}); | |||
} | |||
if (widget.msg.msgType == ChatType.ShortVoiceChatType.value) { | |||
var soundPlayMode = | |||
Provider.of<KeyboardIndexProvider>(context).soundPlayMode; | |||
@@ -669,9 +693,23 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
}); | |||
} | |||
// String date2 = DateTime.fromMillisecondsSinceEpoch(widget.msg.time).toString(); | |||
return WPopupMenu( | |||
bool isUrl =false; | |||
if(widget.msg.msgType==ChatType.TextChatType.value ){ | |||
if( textList[curTextType].contains('http')){ | |||
isUrl =true; | |||
} | |||
} | |||
return WPopupMenu( | |||
child: item, | |||
actions: actions, | |||
onTap: ()async{ | |||
if(isUrl){ | |||
if (await canLaunch(textList[curTextType])) { | |||
launch(textList[curTextType]); | |||
} | |||
} | |||
}, | |||
onLongPressStart: () { | |||
isLongPressed = true; | |||
setState(() {}); | |||
@@ -733,13 +771,19 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
_receiveText(MsgModel msg) { | |||
List<Widget> showMsg = []; | |||
if (textList.length > 0) { | |||
bool isUrl =false; | |||
if(textList[curTextType].contains('http') ){ | |||
isUrl =true; | |||
} | |||
showMsg.add(Container( | |||
constraints: | |||
BoxConstraints(maxWidth: Screen.width - 140, minHeight: 24), | |||
alignment: Alignment.centerLeft, | |||
child: extendedText( | |||
textList[curTextType], | |||
color: Constants.BlackTextColor, | |||
color: isUrl?Colors.blue:Constants.BlackTextColor, | |||
hideKeyboard: widget.hideKeyboard, | |||
fontSize: FontSize, | |||
))); | |||
@@ -836,17 +880,14 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
if (transTag == 1) { | |||
//机器翻译中 | |||
userTranslateWidget = | |||
_translateItemWidget(0xe670, I18n.of(context).man_retranslate, null); | |||
userTranslateWidget = _translateItemWidget(0xe670, I18n.of(context).man_retranslate, null); | |||
machineTranslateWidget = | |||
_translateItemWidget(0xe671, I18n.of(context).robotTranslate, null); | |||
} else if (transTag == 2) { | |||
//人工翻译中 | |||
userTranslateWidget = | |||
_translateItemWidget(0xe670, I18n.of(context).ManTranslate, null); | |||
machineTranslateWidget = | |||
_translateItemWidget(0xe671, I18n.of(context).robot_retranslate, () { | |||
userTranslateWidget = _translateItemWidget(0xe670, I18n.of(context).ManTranslate, null); | |||
machineTranslateWidget = _translateItemWidget(0xe671, I18n.of(context).robot_retranslate, () { | |||
setState(() { | |||
curTextType += 1; | |||
curTextType %= textList.length; | |||
@@ -898,8 +939,7 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
}); | |||
} | |||
}); | |||
machineTranslateWidget = | |||
_translateItemWidget(0xe671, I18n.of(context).robot_retranslate, () { | |||
machineTranslateWidget = _translateItemWidget(0xe671, I18n.of(context).robot_retranslate, () { | |||
setState(() { | |||
curTextType += 1; | |||
curTextType %= textList.length; | |||
@@ -954,8 +994,7 @@ class _ChatPageItemState extends State<ChatPageItem> | |||
)) | |||
], | |||
))); | |||
machineTranslateWidget = | |||
_translateItemWidget(0xe675, I18n.of(context).see_original, () { | |||
machineTranslateWidget = _translateItemWidget(0xe675, I18n.of(context).see_original, () { | |||
setState(() { | |||
curTextType = textList.length - 1; | |||
}); | |||
@@ -1,4 +1,5 @@ | |||
import 'dart:convert'; | |||
import 'dart:io'; | |||
import 'dart:math'; | |||
import 'dart:typed_data'; | |||
@@ -35,11 +36,15 @@ import 'package:chat/utils/video_anim.dart'; | |||
import 'package:dio/dio.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:path_provider/path_provider.dart'; | |||
import 'package:provider/provider.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:share_extend/share_extend.dart'; | |||
import 'package:url_launcher/url_launcher.dart'; | |||
import '../r.dart'; | |||
import '../utils/file_cache_mgr.dart'; | |||
import 'full_img_view.dart'; | |||
import 'upload_item.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
@@ -279,13 +284,17 @@ class _GroupChatPageItemState extends State<GroupChatPageItem> | |||
if (msg.contains(' ]')) { | |||
msg = msg.replaceAll(' ]', ']'); | |||
} | |||
bool isUrl =false; | |||
if(textList[curTextType].contains('http') ){ | |||
isUrl =true; | |||
} | |||
Widget text = Container( | |||
constraints: BoxConstraints(maxWidth: Screen.width - 120), | |||
child: extendedText( | |||
msg, | |||
hideKeyboard: widget.hideKeyboard, | |||
fontSize: FontSize, | |||
color: SendMsgText, | |||
color: isUrl?Colors.blue:SendMsgText, | |||
), | |||
padding: EdgeInsets.symmetric(horizontal: 9, vertical: 10.5), | |||
decoration: BoxDecoration( | |||
@@ -581,6 +590,31 @@ class _GroupChatPageItemState extends State<GroupChatPageItem> | |||
MessageMgr().emit('Delete Select Message', widget.msg); | |||
}); | |||
if (widget.msg.msgType == ChatType.FileChatType.value &&widget.msg.localFile!=null) { | |||
//分享文件 | |||
actions.add( I18n.of(context).copy_download_url); | |||
actionsFunc.add(() async{ | |||
//如果是文件增加复制下载地址 | |||
String path = widget.msg.localFile; | |||
UploadUtil().copyFileUrl(widget.msg, context); | |||
String type='file'; | |||
if(path.contains('mp4') ||path.contains('mp3')){ | |||
type = 'video'; | |||
}else if(path.contains('png')||path.contains('jpg')||path.contains('jpeg')||path.contains('JPG')||path.contains('PNG')){ | |||
type = 'image'; | |||
} | |||
ShareExtend.share(FileCacheMgr.replacePath(path), type); | |||
}); | |||
} | |||
if (widget.msg.msgType == ChatType.TextChatType.value) { | |||
actions.insert(0, I18n.of(context).copy); | |||
actionsFunc.insert(0, () { | |||
@@ -592,13 +626,7 @@ class _GroupChatPageItemState extends State<GroupChatPageItem> | |||
}); | |||
} | |||
//如果是文件增加复制下载地址 | |||
if (widget.msg.msgType == ChatType.FileChatType.value) { | |||
actions.insert(0, I18n.of(context).copy_download_url); | |||
actionsFunc.insert(0, () { | |||
UploadUtil().copyFileUrl(widget.msg, context); | |||
}); | |||
} | |||
if (widget.msg.msgType == ChatType.ShortVoiceChatType.value) { | |||
var soundPlayMode = | |||
@@ -615,9 +643,24 @@ class _GroupChatPageItemState extends State<GroupChatPageItem> | |||
} | |||
// String date2 = DateTime.fromMillisecondsSinceEpoch(widget.msg.time).toString(); | |||
bool isUrl =false; | |||
if(widget.msg.msgType==ChatType.TextChatType.value ){ | |||
if( textList[curTextType].contains('http')){ | |||
isUrl =true; | |||
} | |||
} | |||
return WPopupMenu( | |||
child: item, | |||
actions: actions, | |||
onTap: ()async{ | |||
if(isUrl){ | |||
if (await canLaunch(textList[curTextType])) { | |||
launch(textList[curTextType]); | |||
} | |||
} | |||
}, | |||
onLongPressStart: () { | |||
isLongPressed = true; | |||
setState(() {}); | |||
@@ -718,13 +761,21 @@ class _GroupChatPageItemState extends State<GroupChatPageItem> | |||
_receiveText(MsgModel msg) { | |||
List<Widget> showMsg = []; | |||
if (textList.length > 0) { | |||
bool isUrl =false; | |||
if(textList[curTextType].contains('http') ){ | |||
isUrl =true; | |||
} | |||
showMsg.add(Container( | |||
constraints: | |||
BoxConstraints(maxWidth: Screen.width - 140, minHeight: 22), | |||
alignment: Alignment.centerLeft, | |||
child: extendedText( | |||
textList[curTextType], | |||
color: Constants.BlackTextColor, | |||
color: isUrl?Colors.blue:Constants.BlackTextColor, | |||
hideKeyboard: widget.hideKeyboard, | |||
fontSize: FontSize, | |||
))); | |||
@@ -233,10 +233,10 @@ class InputBarState extends State<InputBar> | |||
bool isGroup = Provider.of<bool>(context); | |||
Widget centerWidget; | |||
Widget input = Container( | |||
child: ExtendedTextField( | |||
textSelectionControls: MyExtendedMaterialTextSelectionControls(), | |||
child: | |||
TextField( | |||
// textSelectionControls: ExtendedMaterialTextSelectionControls(), | |||
keyboardAppearance: Brightness.light, | |||
onChanged: (String messageText) { | |||
if (_textCtrl.text.length > 0) { | |||
@@ -262,9 +262,9 @@ class InputBarState extends State<InputBar> | |||
textBaseline: TextBaseline.alphabetic), | |||
maxLines: 3, | |||
minLines: 1, | |||
specialTextSpanBuilder: MySpecialTextSpanBuilder( | |||
showAtBackground: true, | |||
), | |||
// specialTextSpanBuilder: MySpecialTextSpanBuilder( | |||
// showAtBackground: true, | |||
// ), | |||
controller: _textCtrl, | |||
textInputAction: TextInputAction.newline, | |||
inputFormatters: <TextInputFormatter>[ | |||
@@ -313,79 +313,22 @@ class _HomeMainState extends State<HomeMain> { | |||
I18n.of(context).me | |||
]; | |||
_navigationViews = [ | |||
NavigationIconView( | |||
title: _titles[2], | |||
icon: IconData( | |||
0xe67c, | |||
fontFamily: 'iconfont', | |||
), | |||
isShowdot: true, | |||
iconSize: 29), | |||
NavigationIconView( | |||
title: _titles[0], | |||
isShowdot: true, | |||
iconMargin: EdgeInsets.only(top: 2), | |||
type: 5, | |||
icon: IconData( | |||
0xe66e, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[1], | |||
icon: IconData( | |||
0xe656, | |||
fontFamily: 'iconfont', | |||
), | |||
isCenter: true, | |||
iconSize: 31), | |||
NavigationIconView( | |||
title: _titles[1], | |||
isShowdot: true, | |||
icon: IconData( | |||
0xe60b, | |||
fontFamily: 'iconfont', | |||
), | |||
type: 6, | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[3], | |||
icon: IconData( | |||
0xe67b, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
]; | |||
_pages = [ | |||
RealTimeHelperPage(), | |||
FriendPage(), | |||
FindPage(), | |||
ConversActionPage(), | |||
// GroupChatListPage(), | |||
ProfilePage( | |||
userId: UserData().basicInfo.userId, | |||
), | |||
]; | |||
// _navigationViews = [ | |||
// NavigationIconView( | |||
// title: _titles[1], | |||
// isShowdot: true, | |||
// title: _titles[2], | |||
// icon: IconData( | |||
// 0xe60b, | |||
// 0xe67c, | |||
// fontFamily: 'iconfont', | |||
// ), | |||
// type: 1, | |||
// iconSize: 26.5), | |||
// isShowdot: true, | |||
// iconSize: 29), | |||
// NavigationIconView( | |||
// title: _titles[0], | |||
// isShowdot: true, | |||
// iconMargin: EdgeInsets.only(top: 2), | |||
// type: 5, | |||
// icon: IconData( | |||
// 0xe663, | |||
// 0xe66e, | |||
// fontFamily: 'iconfont', | |||
// ), | |||
// iconSize: 26.5), | |||
@@ -397,17 +340,15 @@ class _HomeMainState extends State<HomeMain> { | |||
// ), | |||
// isCenter: true, | |||
// iconSize: 31), | |||
// | |||
// NavigationIconView( | |||
// title: _titles[3], | |||
// title: _titles[1], | |||
// isShowdot: true, | |||
// icon: IconData( | |||
// 0xe66e, | |||
// 0xe60b, | |||
// fontFamily: 'iconfont', | |||
// ), | |||
// type: 4, | |||
// type: 6, | |||
// iconSize: 26.5), | |||
// | |||
// NavigationIconView( | |||
// title: _titles[3], | |||
// icon: IconData( | |||
@@ -418,17 +359,76 @@ class _HomeMainState extends State<HomeMain> { | |||
// ]; | |||
// | |||
// _pages = [ | |||
// ConversActionPage(), | |||
//// RealTimeHelperPage(), | |||
// RealTimeHelperPage(), | |||
// FriendPage(), | |||
// FindPage(), | |||
//// ConversActionPage(), | |||
// GroupChatListPage(), | |||
// ConversActionPage(), | |||
//// GroupChatListPage(), | |||
// ProfilePage( | |||
// userId: UserData().basicInfo.userId, | |||
// ), | |||
// ]; | |||
_navigationViews = [ | |||
NavigationIconView( | |||
title: _titles[1], | |||
isShowdot: true, | |||
icon: IconData( | |||
0xe60b, | |||
fontFamily: 'iconfont', | |||
), | |||
type: 1, | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[0], | |||
isShowdot: true, | |||
iconMargin: EdgeInsets.only(top: 2), | |||
type: 5, | |||
icon: IconData( | |||
0xe663, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[1], | |||
icon: IconData( | |||
0xe656, | |||
fontFamily: 'iconfont', | |||
), | |||
isCenter: true, | |||
iconSize: 31), | |||
NavigationIconView( | |||
title: _titles[3], | |||
isShowdot: true, | |||
icon: IconData( | |||
0xe66e, | |||
fontFamily: 'iconfont', | |||
), | |||
type: 4, | |||
iconSize: 26.5), | |||
NavigationIconView( | |||
title: _titles[3], | |||
icon: IconData( | |||
0xe67b, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
]; | |||
_pages = [ | |||
ConversActionPage(), | |||
// RealTimeHelperPage(), | |||
FriendPage(), | |||
FindPage(), | |||
// ConversActionPage(), | |||
GroupChatListPage(), | |||
ProfilePage( | |||
userId: UserData().basicInfo.userId, | |||
), | |||
]; | |||
} | |||
@@ -144,6 +144,7 @@ Map<String, int> language = { | |||
'zh_Hans_US': LanguageType.SimplifiedChinese, | |||
'zh_Hans_MO': LanguageType.SimplifiedChinese, | |||
'zh_Hans_SG': LanguageType.SimplifiedChinese, | |||
'zh_Hans_VN': LanguageType.SimplifiedChinese, | |||
'zh_CN': LanguageType.SimplifiedChinese, | |||
'ko_KR': LanguageType.Korean, | |||
@@ -44,9 +44,9 @@ class HttpUtil { | |||
//static const String BaseUrl = 'http://192.168.0.223:7001/'; | |||
//static const String BaseUrl = 'http://192.168.0.207:9080/'; | |||
static const String BaseUrl = 'http://120.79.107.63:9080/'; | |||
// static const String BaseUrl = 'http://120.79.107.63:9080/'; | |||
//static const String BaseUrl = 'http://192.168.0.177:9016/'; | |||
// static const String BaseUrl = 'https://datasm.chengyouhd.com/'; | |||
static const String BaseUrl = 'https://datasm.chengyouhd.com/'; | |||
static HttpUtil _getInstance() { | |||
if (_instance == null) { | |||
@@ -68,7 +68,7 @@ extendedText(String text, | |||
double emojisize = 20.0, | |||
Function hideKeyboard, | |||
fontWeight,int maxLines, | |||
Function onSpecialTextTap | |||
Function onSpecialTextTap, | |||
}) { | |||
return ExtendedText( | |||
text, | |||
@@ -16,6 +16,7 @@ class WPopupMenu extends StatefulWidget { | |||
this.menuHeight = 38, | |||
this.onLongPressStart, | |||
this.onLongPressEnd, | |||
this.onTap | |||
}); | |||
final ValueChanged<int> onValueChanged; | |||
@@ -28,6 +29,7 @@ class WPopupMenu extends StatefulWidget { | |||
final double menuHeight; | |||
final Function onLongPressStart; | |||
final Function onLongPressEnd; | |||
final Function onTap; | |||
@override | |||
_WPopupMenuState createState() => _WPopupMenuState(); | |||
@@ -60,6 +62,10 @@ class _WPopupMenuState extends State<WPopupMenu> { | |||
return GestureDetector( | |||
child: widget.child, | |||
onTap: () { | |||
if(widget.onTap!=null){ | |||
widget.onTap(); | |||
} | |||
if (widget.pressType == PressType.singleClick) { | |||
onTap(); | |||
} | |||
@@ -916,6 +916,13 @@ packages: | |||
url: "https://pub.flutter-io.cn" | |||
source: hosted | |||
version: "0.6.3+4" | |||
share_extend: | |||
dependency: "direct main" | |||
description: | |||
name: share_extend | |||
url: "https://pub.flutter-io.cn" | |||
source: hosted | |||
version: "1.1.1" | |||
shared_preferences: | |||
dependency: "direct main" | |||
description: | |||
@@ -47,7 +47,7 @@ dependencies: | |||
permission_handler: ^4.0.0 | |||
location_permissions: ^2.0.3 | |||
# audioplayer: ^0.5.2 | |||
# audioplayer: ^0.5.2 | |||
audioplayer: | |||
git: https://github.com/randomjoho/audioplayer.git | |||
@@ -156,7 +156,7 @@ dependencies: | |||
lpinyin: ^1.0.7 | |||
#网页-支付跳转 | |||
flutter_webview_plugin: ^0.3.10+1 | |||
flutter_webview_plugin: ^0.3.10 | |||
# firebase_auth: ^0.15.3 | |||
#图片保存 | |||
@@ -174,6 +174,7 @@ dependencies: | |||
#文件打开 | |||
open_file: ^3.0.1 | |||
share_extend: ^1.1.1 | |||
dev_dependencies: | |||