@@ -0,0 +1,2 @@ | |||
connection.project.dir= | |||
eclipse.preferences.version=1 |
@@ -1162,5 +1162,12 @@ | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -1162,5 +1162,12 @@ | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -1161,5 +1161,12 @@ | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -1162,5 +1162,12 @@ | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -1162,5 +1162,16 @@ | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "发送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||
"choose_language": "请选择您的语言和要翻译的语言", | |||
"translation_butler_rules": "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -1162,5 +1162,12 @@ | |||
"confrim_recovery":"確定恢復已被焚毀的照片嗎?\n(已經看過的用戶可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置" | |||
"finding_place":"查找位置", | |||
"real_time_helper": "實時幫", | |||
"translation_butler": "翻譯管家", | |||
"travel_butler": "出行管家", | |||
"translation_butler_tips": "您的實時貼身翻譯,隨時隨地幫您解決語言不通", | |||
"choose_language": "請選擇您的語言和要翻譯的語言", | |||
"translation_butler_rules": "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束", | |||
"translation_butler_call": "呼叫管家" | |||
} |
@@ -2,9 +2,10 @@ | |||
# This is a generated file; do not edit or check into version control. | |||
export "FLUTTER_ROOT=/Users/random/sdk/flutter_sdk" | |||
export "FLUTTER_APPLICATION_PATH=/Users/random/code/flutter/project/qunliao" | |||
export "FLUTTER_TARGET=lib/main.dart" | |||
export "FLUTTER_TARGET=/Users/random/code/flutter/project/qunliao/lib/main.dart" | |||
export "FLUTTER_BUILD_DIR=build" | |||
export "SYMROOT=${SOURCE_ROOT}/../build/ios" | |||
export "FLUTTER_FRAMEWORK_DIR=/Users/random/sdk/flutter_sdk/bin/cache/artifacts/engine/ios-release" | |||
export "FLUTTER_FRAMEWORK_DIR=/Users/random/sdk/flutter_sdk/bin/cache/artifacts/engine/ios" | |||
export "FLUTTER_BUILD_NAME=1.0.5" | |||
export "FLUTTER_BUILD_NUMBER=6" | |||
export "TRACK_WIDGET_CREATION=true" |
@@ -1,5 +1,5 @@ | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:extended_text_library/extended_text_library.dart'; | |||
import 'package:flutter/material.dart'; | |||
@@ -28,7 +28,7 @@ class EmojiGifText extends SpecialText { | |||
imageHeight: size, | |||
start: start, | |||
fit: BoxFit.fill, | |||
margin: EdgeInsets.only(left: 2.0, top: 2.0, right: 2.0)):SpecialTextSpan(text:'[${I18n.of(LoadingManage.context).emoji}]', actualText: '' ); | |||
margin: EdgeInsets.only(left: 2.0, top: 2.0, right: 2.0)):SpecialTextSpan(text:'[${I18n.of(Constants.getCurrentContext()).emoji}]', actualText: '' ); | |||
// return Image.asset(EmojiGifUitl.instance.emojiMap[key]); | |||
@@ -1,14 +1,14 @@ | |||
import 'dart:io'; | |||
import 'dart:typed_data'; | |||
import 'package:chat/chat/download_item.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/models/ChatMsg.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:extended_image/extended_image.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:image_gallery_saver/image_gallery_saver.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import '../r.dart'; | |||
class PhotoPage extends StatefulWidget { | |||
final MsgModel msg; | |||
@@ -20,12 +20,6 @@ class PhotoPage extends StatefulWidget { | |||
class _PhotoPageState extends State<PhotoPage> | |||
with SingleTickerProviderStateMixin { | |||
AnimationController _controller; | |||
Animation<Offset> _animation; | |||
Offset _offset = Offset.zero; | |||
double _scale = 1.0; | |||
Offset _normalizedOffset; | |||
double _previousScale; | |||
double _kMinFlingVelocity = 600.0; | |||
ImageProvider provider; | |||
@@ -37,7 +31,6 @@ class _PhotoPageState extends State<PhotoPage> | |||
_controller = AnimationController(vsync: this); | |||
_controller.addListener(() { | |||
setState(() { | |||
_offset = _animation.value; | |||
}); | |||
}); | |||
} | |||
@@ -59,75 +52,50 @@ class _PhotoPageState extends State<PhotoPage> | |||
super.dispose(); | |||
} | |||
Offset _clampOffset(Offset offset) { | |||
final Size size = context.size; | |||
// widget的屏幕宽度 | |||
final Offset minOffset = Offset(size.width, size.height) * (1.0 - _scale); | |||
// 限制他的最小尺寸 | |||
return Offset( | |||
offset.dx.clamp(minOffset.dx, 0.0), offset.dy.clamp(minOffset.dy, 0.0)); | |||
} | |||
void _handleOnScaleStart(ScaleStartDetails details) { | |||
setState(() { | |||
_previousScale = _scale; | |||
_normalizedOffset = (details.focalPoint - _offset) / _scale; | |||
// 计算图片放大后的位置 | |||
_controller.stop(); | |||
}); | |||
} | |||
void _handleOnScaleUpdate(ScaleUpdateDetails details) { | |||
setState(() { | |||
_scale = (_previousScale * details.scale).clamp(1.0, 3.0); | |||
// 限制放大倍数 1~3倍 | |||
_offset = _clampOffset(details.focalPoint - _normalizedOffset * _scale); | |||
// 更新当前位置 | |||
}); | |||
} | |||
void _handleOnScaleEnd(ScaleEndDetails details) { | |||
final double magnitude = details.velocity.pixelsPerSecond.distance; | |||
if (magnitude < _kMinFlingVelocity) return; | |||
final Offset direction = details.velocity.pixelsPerSecond / magnitude; | |||
// 计算当前的方向 | |||
final double distance = (Offset.zero & context.size).shortestSide; | |||
// 计算放大倍速,并相应的放大宽和高,比如原来是600*480的图片,放大后倍数为1.25倍时,宽和高是同时变化的 | |||
_animation = _controller.drive(Tween<Offset>( | |||
begin: _offset, end: _clampOffset(_offset + direction * distance))); | |||
_controller | |||
..value = 0.0 | |||
..fling(velocity: magnitude / 1000.0); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
Uint8List fileData; | |||
if (widget.msg.localFile != null) { | |||
fileData = File(widget.msg.localFile).readAsBytesSync(); | |||
} else { | |||
fileData = Uint8List.fromList(widget.msg.msgContent); | |||
} | |||
return GestureDetector( | |||
onTap: () { | |||
Navigator.pop(context); | |||
}, | |||
onScaleStart: _handleOnScaleStart, | |||
onScaleUpdate: _handleOnScaleUpdate, | |||
onScaleEnd: _handleOnScaleEnd, | |||
child: Material( | |||
child: DownloadItem( | |||
msg: widget.msg, | |||
isAutoDown: false, | |||
onComplete: () { | |||
getImgData(); | |||
setState(() {}); | |||
onTap: () { | |||
Navigator.pop(context); | |||
}, | |||
child: Transform( | |||
transform: Matrix4.identity() | |||
..translate(_offset.dx, _offset.dy) | |||
..scale(_scale), | |||
child: Container( | |||
width: Screen.width, | |||
height: Screen.height, | |||
alignment: Alignment.center, | |||
child: Stack( | |||
children: <Widget>[ | |||
Image( | |||
fit: BoxFit.fitWidth, | |||
image: provider ?? AssetImage(R.assetsImagesIcAlbum), | |||
), | |||
SingleChildScrollView( | |||
child: Column( | |||
children: <Widget>[ | |||
Container( | |||
width: Screen.width, | |||
constraints: BoxConstraints(minHeight: Screen.height), | |||
child: ExtendedImage.memory( | |||
fileData, | |||
fit: BoxFit.fitWidth, | |||
mode: ExtendedImageMode.gesture, | |||
initGestureConfigHandler: (state) { | |||
return GestureConfig( | |||
minScale: 0.9, | |||
animationMinScale: 0.7, | |||
maxScale: 3.0, | |||
animationMaxScale: 3.5, | |||
speed: 1.0, | |||
inertialSpeed: 100.0, | |||
initialScale: 1.0, | |||
inPageView: true, | |||
initialAlignment: InitialAlignment.center, | |||
); | |||
}, | |||
)) | |||
], | |||
)), | |||
Positioned( | |||
right: 10, | |||
bottom: 10, | |||
@@ -141,14 +109,12 @@ class _PhotoPageState extends State<PhotoPage> | |||
child: Icon(Icons.save_alt, color: Colors.white70), | |||
))) | |||
], | |||
)), | |||
)), | |||
); | |||
))); | |||
} | |||
saveToGallery() async { | |||
if (widget.msg.localFile != null) { | |||
var data= File(widget.msg.localFile).readAsBytesSync(); | |||
var data = File(widget.msg.localFile).readAsBytesSync(); | |||
ImageGallerySaver.saveImage(data).then((res) { | |||
print(res); | |||
if (res != null) { | |||
@@ -13,7 +13,7 @@ import 'package:chat/proto/all.pbserver.dart'; | |||
import 'package:chat/utils/ChargeMoney.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/utils/app_navigator.dart'; | |||
import 'package:chat/utils/blacklist_mgr.dart'; | |||
import 'package:chat/utils/image_util.dart'; | |||
@@ -32,12 +32,17 @@ import 'package:file_picker/file_picker.dart'; | |||
import '../r.dart'; | |||
class UtilKeyboard extends StatelessWidget { | |||
class UtilKeyboard extends StatefulWidget { | |||
final double keyboardHeight; | |||
final Function sendMsg; | |||
final bool isGroup; | |||
UtilKeyboard({this.keyboardHeight, this.sendMsg, this.isGroup}); | |||
@override | |||
_UtilKeyboardState createState() => _UtilKeyboardState(); | |||
} | |||
class _UtilKeyboardState extends State<UtilKeyboard> { | |||
bool isAuthority = false; | |||
@override | |||
@@ -57,7 +62,7 @@ class UtilKeyboard extends StatelessWidget { | |||
_sendVideo(context); | |||
})); | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
iconList.add( | |||
_buildOtherSelect(R.assetsImagesChatItem3, I18n.of(context).chat, () { | |||
_audioChat(context); | |||
@@ -69,7 +74,7 @@ class UtilKeyboard extends StatelessWidget { | |||
_openMap(context); | |||
})); | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
iconList.add(Offstage( | |||
offstage: !isShowRedPacket, | |||
child: _buildOtherSelect( | |||
@@ -90,7 +95,7 @@ class UtilKeyboard extends StatelessWidget { | |||
return Container( | |||
width: Screen.width, | |||
color: Colors.white, | |||
height: keyboardHeight, | |||
height: widget.keyboardHeight, | |||
padding: EdgeInsets.only(top: 20, bottom: 10, left: 20), | |||
alignment: Alignment.topLeft, | |||
child: Wrap(spacing: 10.0, runSpacing: 20.0, children: iconList)); | |||
@@ -98,7 +103,7 @@ class UtilKeyboard extends StatelessWidget { | |||
_showGiftSheet(BuildContext context) { | |||
int friendId = 0; | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
@@ -112,7 +117,7 @@ class UtilKeyboard extends StatelessWidget { | |||
builder: (BuildContext context) { | |||
return StatefulBuilder( | |||
builder: (BuildContext context, setBottomSheetState) { | |||
return GiftSelectWidget(friendId, sendMsg); | |||
return GiftSelectWidget(friendId, widget.sendMsg); | |||
}, | |||
); | |||
}); | |||
@@ -134,16 +139,16 @@ class UtilKeyboard extends StatelessWidget { | |||
var reslutStr = jsonEncode(result); | |||
int friendId = 0; | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var msg = MsgHandler.createSendMsg( | |||
ChatType.PlaceChatType, utf8.encode(reslutStr), | |||
friendId: friendId, | |||
channelType: | |||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
sendMsg(msg); | |||
widget.sendMsg(msg); | |||
} | |||
} | |||
@@ -278,7 +283,7 @@ class UtilKeyboard extends StatelessWidget { | |||
int aspectRatio = rect.width * 100 ~/ rect.height; | |||
int friendId = 0; | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var msg = MsgHandler.createSendMsg(ChatType.ImageChatType, sendImg, | |||
@@ -286,9 +291,9 @@ class UtilKeyboard extends StatelessWidget { | |||
friendId: friendId, | |||
localFile: isNeedUpload ? imgFile.absolute.path : null, | |||
channelType: | |||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
sendMsg(msg); | |||
widget.sendMsg(msg); | |||
} | |||
} | |||
@@ -303,10 +308,9 @@ class UtilKeyboard extends StatelessWidget { | |||
} | |||
int friendId = 0; | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var fileName = file.path.split('/').last; | |||
print('fileName $fileName'); | |||
@@ -326,9 +330,10 @@ class UtilKeyboard extends StatelessWidget { | |||
ChatType.FileChatType, fileMsg.writeToBuffer(), | |||
friendId: friendId, | |||
localFile: file.path, | |||
channelType: isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
channelType: | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
sendMsg(msg); | |||
widget.sendMsg(msg); | |||
} | |||
void _sendVideo(BuildContext context) async { | |||
@@ -342,7 +347,7 @@ class UtilKeyboard extends StatelessWidget { | |||
print('视频大小:$videoSize'); | |||
if (videoSize > 33 * 1024 * 1024) { | |||
showToast(I18n.of(LoadingManage.context).video_more_big); | |||
showToast(I18n.of(Constants.getCurrentContext()).video_more_big); | |||
return; | |||
} | |||
@@ -354,7 +359,7 @@ class UtilKeyboard extends StatelessWidget { | |||
int aspectRatio = rect.width * 100 ~/ rect.height; | |||
int friendId = 0; | |||
if (!isGroup) { | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var msg = MsgHandler.createSendMsg(ChatType.ShortVideoChatType, thumbnail, | |||
@@ -362,9 +367,9 @@ class UtilKeyboard extends StatelessWidget { | |||
friendId: friendId, | |||
localFile: video.path, | |||
channelType: | |||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
sendMsg(msg); | |||
widget.sendMsg(msg); | |||
} | |||
} | |||
@@ -109,6 +109,16 @@ class Constants { | |||
///ture 应用商店版本 false线下渠道 | |||
static const bool isStoreVersion = false; | |||
//app全局key,处理content | |||
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey(); | |||
/// 获取当前的state | |||
static NavigatorState getCurrentState() => navigatorKey.currentState; | |||
/// 获取当前的context | |||
static BuildContext getCurrentContext() => navigatorKey.currentContext; | |||
///在pubspec.yaml中修改版本号 | |||
static String versionName = '1.0.0'; | |||
@@ -2361,6 +2361,20 @@ class I18n implements WidgetsLocalizations { | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
String get translation_butler => "翻译管家"; | |||
/// "出行管家" | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "呼叫管家" | |||
String get translation_butler_call => "呼叫管家"; | |||
} | |||
class _I18n_en_US extends I18n { | |||
@@ -5865,6 +5879,27 @@ class _I18n_vi_VN extends I18n { | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
@override | |||
String get translation_butler => "翻译管家"; | |||
/// "出行管家" | |||
@override | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -9365,6 +9400,27 @@ class _I18n_zh_HK extends I18n { | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "實時幫" | |||
@override | |||
String get real_time_helper => "實時幫"; | |||
/// "翻譯管家" | |||
@override | |||
String get translation_butler => "翻譯管家"; | |||
/// "出行管家" | |||
@override | |||
String get travel_butler => "出行管家"; | |||
/// "您的實時貼身翻譯,隨時隨地幫您解決語言不通" | |||
@override | |||
String get translation_butler_tips => "您的實時貼身翻譯,隨時隨地幫您解決語言不通"; | |||
/// "請選擇您的語言和要翻譯的語言" | |||
@override | |||
String get choose_language => "請選擇您的語言和要翻譯的語言"; | |||
/// "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要預扣50H幣,超過10分鐘後根據每分鐘5H幣進行自動扣費,餘額不足時自動結束"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -12865,6 +12921,27 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
@override | |||
String get translation_butler => "翻译管家"; | |||
/// "出行管家" | |||
@override | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -16362,6 +16439,27 @@ class _I18n_ko_KR extends I18n { | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
@override | |||
String get translation_butler => "翻译管家"; | |||
/// "出行管家" | |||
@override | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -19862,6 +19960,27 @@ class _I18n_ja_JP extends I18n { | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
@override | |||
String get translation_butler => "翻译管家"; | |||
/// "出行管家" | |||
@override | |||
String get travel_butler => "出行管家"; | |||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||
@override | |||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||
/// "请选择您的语言和要翻译的语言" | |||
@override | |||
String get choose_language => "请选择您的语言和要翻译的语言"; | |||
/// "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束" | |||
@override | |||
String get translation_butler_rules => "呼叫管家需要预扣50H币,超过10分钟后根据每分钟5H币进行自动扣费,余额不足时自动结束"; | |||
/// "呼叫管家" | |||
@override | |||
String get translation_butler_call => "呼叫管家"; | |||
@override | |||
TextDirection get textDirection => TextDirection.ltr; | |||
@@ -1,22 +1,29 @@ | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/WebData.dart'; | |||
import 'package:chat/data/conversation.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/home/InfoList.dart'; | |||
import 'package:chat/home/last_chat_record_widget.dart'; | |||
import 'package:chat/home/rich_title.dart'; | |||
import 'package:chat/home/unread_dot_widget.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/TokenMgr.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:dio/dio.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:shared_preferences/shared_preferences.dart'; | |||
import '../data/constants.dart' show AppColors, AppStyles, Constants; | |||
import '../data/constants.dart' show AppColors, AppStyles, Constants, GlobalSearchPageType, GroupOperatingPageType; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'create_group_view.dart'; | |||
import 'global_search.dart'; | |||
import 'group_item_widget.dart'; | |||
class _ConversationItem extends StatelessWidget { | |||
const _ConversationItem( | |||
{Key key, | |||
@@ -229,9 +236,12 @@ class _ConversActionPageState extends State<ConversActionPage> | |||
super.initState(); | |||
MessageMgr().on('update_system', getSystemMsg); | |||
MessageMgr().on('Quit Group', quitGroup); | |||
MessageMgr().on('Update Group List', updateGroupLastMsg); | |||
getSystemMsg(null); | |||
tabCtrl = TabController(length: 2, vsync: this); | |||
tabCtrl = TabController(length: 3, vsync: this); | |||
} | |||
@override | |||
@@ -243,6 +253,9 @@ class _ConversActionPageState extends State<ConversActionPage> | |||
@override | |||
Widget build(BuildContext context) { | |||
List<GroupInfoModel> groupList = GroupInfoMgr().groupInfoList; | |||
return Scaffold( | |||
backgroundColor: Colors.white, | |||
appBar: AppBar( | |||
@@ -315,6 +328,13 @@ class _ConversActionPageState extends State<ConversActionPage> | |||
textScaleFactor: 1.0), | |||
), | |||
type: 1), | |||
UnreadDot( | |||
child: Container( | |||
margin: EdgeInsets.only(right: 4), | |||
child: Text(I18n.of(context).group_chat, | |||
textScaleFactor: 1.0), | |||
), | |||
type: 4), | |||
UnreadDot( | |||
child: Container( | |||
margin: EdgeInsets.only(right: 4), | |||
@@ -330,6 +350,22 @@ class _ConversActionPageState extends State<ConversActionPage> | |||
child: TabBarView( | |||
children: <Widget>[ | |||
LastChatPage(), | |||
ListView.builder( | |||
// controller: _scrollController, | |||
itemBuilder: (BuildContext context, int index) { | |||
if (index == 0) { | |||
return _buildCreateButton(); | |||
} else { | |||
var info = groupList[index - 1]; | |||
return GroupItem(ValueKey(info), groupInfoModel: info); | |||
} | |||
}, | |||
itemCount: groupList.length + 1, | |||
), | |||
ListView( | |||
children: <Widget>[ | |||
SizedBox(height: 8.5), | |||
@@ -480,4 +516,93 @@ class _ConversActionPageState extends State<ConversActionPage> | |||
controller: tabCtrl, | |||
))); | |||
} | |||
Widget _buildCreateButton() { | |||
List<GroupInfoModel> groupList = GroupInfoMgr().groupInfoList; | |||
Widget _avatarIcon = ClipRRect( | |||
borderRadius: BorderRadius.circular(GroupRadius), | |||
child: Container( | |||
color: const Color(0xFFF2F2F2), | |||
height: AvatarSize, | |||
width: AvatarSize, | |||
child: Icon( | |||
IconData(0xe66f, fontFamily: Constants.IconFontFamily), | |||
color: Constants.BlueTextColor, | |||
size: 35, | |||
), | |||
)); | |||
Widget _button = InkWell( | |||
onTap: () { | |||
Navigator.of(context).push( | |||
new MaterialPageRoute( | |||
builder: (context) { | |||
return CreateGroupPage( | |||
GroupOperatingPageType.CreateGroup, [], null); | |||
}, | |||
), | |||
); | |||
}, | |||
child: Container( | |||
height: ItemHeight-20, | |||
// margin: EdgeInsets.only(top: 1.5, bottom:1), | |||
decoration: BoxDecoration(color: Colors.white), | |||
child: Row( | |||
children: <Widget>[ | |||
SizedBox(width: LeftPadding), | |||
_avatarIcon, | |||
SizedBox(width: 14.0), | |||
Text( | |||
I18n.of(context).create_group_chat, | |||
style: TextStyle(fontSize: 15.5), | |||
), | |||
], | |||
), | |||
)); | |||
Widget tips = Container( | |||
alignment: Alignment.centerLeft, | |||
width: Screen.width, | |||
height: 33.5, | |||
padding: EdgeInsets.only(left: LeftPadding), | |||
decoration: BoxDecoration( | |||
color: Colors.white, | |||
border: Border(bottom: Constants.GreyBorderSide)), | |||
child: Text(I18n.of(context).group_chat + '(${groupList.length})'), | |||
); | |||
return Column( | |||
children: <Widget>[ | |||
SizedBox(height: 10,), | |||
CustomUI.buildSearchButton(context, () { | |||
Navigator.of(context).push( | |||
new MaterialPageRoute( | |||
builder: (context) { | |||
return GlobalSearchPage( | |||
type: GlobalSearchPageType.SearchGroup, | |||
); | |||
}, | |||
), | |||
); | |||
},bottom: 10 ), | |||
_button, | |||
tips, | |||
], | |||
); | |||
} | |||
quitGroup(args) { | |||
if (mounted) { | |||
setState(() { | |||
print('更新群列表'); | |||
}); | |||
} | |||
} | |||
updateGroupLastMsg(args) async { | |||
await GroupInfoMgr().sortGroupList(); | |||
if (mounted) { | |||
setState(() {}); | |||
} | |||
} | |||
} |
@@ -1,6 +1,5 @@ | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:connectivity/connectivity.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
@@ -153,7 +152,7 @@ class _IndexPageState extends State<IndexPage> { | |||
return; | |||
} | |||
if (resData['data'] != null) { | |||
HttpUtil().changePage(LoadingManage.context, resData); | |||
HttpUtil().changePage(Constants.getCurrentContext(), resData); | |||
} | |||
} | |||
@@ -27,7 +27,7 @@ enum reason { | |||
liar, | |||
} | |||
int Max_Img_Num = 4; | |||
const int MaxImgNum = 4; | |||
class InformUserPage extends StatefulWidget { | |||
@required | |||
@@ -182,7 +182,7 @@ class _InformUserPageState extends State<InformUserPage> { | |||
var photos = await PhotoPicker.pickAsset( | |||
context: context, | |||
themeColor: Color(0xFFF0F0F0), | |||
maxSelected: Max_Img_Num - imgUrlList.length, | |||
maxSelected: MaxImgNum - imgUrlList.length, | |||
textColor: Color(0xFF3F3F3F), | |||
pickType: PickType.onlyImage); | |||
@@ -346,7 +346,7 @@ class _InformUserPageState extends State<InformUserPage> { | |||
List<Widget> list = imgUrlList.map((f) { | |||
return _buildImg(f); | |||
}).toList(); | |||
if (list.length < Max_Img_Num) { | |||
if (list.length < MaxImgNum) { | |||
list.add(upButton); | |||
} | |||
var socialCard = new Container( | |||
@@ -187,16 +187,6 @@ class _AlterSelectPageState extends State<AlterSelectPage> { | |||
} | |||
} | |||
Widget _buildAvatar(url) { | |||
return ClipRRect( | |||
borderRadius: BorderRadius.circular(6), | |||
child: CachedNetworkImage( | |||
imageUrl: url, | |||
width: Constants.ContactAvatarSize, | |||
height: Constants.ContactAvatarSize, | |||
)); | |||
} | |||
String getLetter(BuildContext context, double tileHeight, Offset globalPos) { | |||
RenderBox _box = context.findRenderObject(); | |||
var local = _box.globalToLocal(globalPos); | |||
@@ -12,7 +12,6 @@ import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/TokenMgr.dart'; | |||
import 'package:chat/utils/conversation_table.dart'; | |||
@@ -93,7 +92,7 @@ class _FriendPageState extends State<FriendPage> { | |||
avatar: '', | |||
userId: 0, | |||
iconCode: 0xe66c, | |||
title: I18n.of(LoadingManage.context).new_friends, | |||
title: I18n.of(Constants.getCurrentContext()).new_friends, | |||
gradient: LinearGradient( | |||
begin: Alignment.topCenter, | |||
end: Alignment.bottomCenter, | |||
@@ -187,11 +186,11 @@ class _FriendPageState extends State<FriendPage> { | |||
showPermission() async { | |||
if (await CustomUI.showPermissionSetting( | |||
LoadingManage.context, | |||
Constants.getCurrentContext(), | |||
PermissionGroup.contacts, | |||
I18n.of(LoadingManage.context).contact_permission)) { | |||
I18n.of(Constants.getCurrentContext()).contact_permission)) { | |||
MessageMgr().emit('PostContact'); | |||
Navigator.push(LoadingManage.context, | |||
Navigator.push(Constants.getCurrentContext(), | |||
MaterialPageRoute<void>(builder: (BuildContext context) { | |||
return ContactsPage(); | |||
})); | |||
@@ -259,7 +258,7 @@ class _FriendPageState extends State<FriendPage> { | |||
avatar: '', | |||
userId: 0, | |||
iconCode: 0xe659, | |||
title: I18n.of(LoadingManage.context).scan, | |||
title: I18n.of(Constants.getCurrentContext()).scan, | |||
gradient: LinearGradient( | |||
begin: Alignment.topCenter, | |||
end: Alignment.bottomCenter, | |||
@@ -268,14 +267,14 @@ class _FriendPageState extends State<FriendPage> { | |||
const Color(0xFF3441C1), | |||
]), | |||
onPressed: () { | |||
CustomUI().goScanPage(LoadingManage.context); | |||
CustomUI().goScanPage(Constants.getCurrentContext()); | |||
}), | |||
FriendsInfo( | |||
avatar: '', | |||
userId: 0, | |||
iconCode: 0xe67a, | |||
isShowDivder: true, | |||
title: I18n.of(LoadingManage.context).contact_add, | |||
title: I18n.of(Constants.getCurrentContext()).contact_add, | |||
gradient: LinearGradient( | |||
begin: Alignment.topCenter, | |||
end: Alignment.bottomCenter, | |||
@@ -303,7 +302,7 @@ class _FriendPageState extends State<FriendPage> { | |||
userId: 0, | |||
iconCode: 0xe662, | |||
isShowDivder: true, | |||
title: I18n.of(LoadingManage.context).add_friends, | |||
title: I18n.of(Constants.getCurrentContext()).add_friends, | |||
gradient: LinearGradient( | |||
begin: Alignment.topCenter, | |||
end: Alignment.bottomCenter, | |||
@@ -312,7 +311,7 @@ class _FriendPageState extends State<FriendPage> { | |||
const Color(0xFF6118A6), | |||
]), | |||
onPressed: () async { | |||
Navigator.push(LoadingManage.context, | |||
Navigator.push(Constants.getCurrentContext(), | |||
MaterialPageRoute<void>(builder: (BuildContext context) { | |||
return SearchNewFriendsPage(); | |||
})); | |||
@@ -4,11 +4,11 @@ import 'package:chat/data/constants.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/home/find_page.dart'; | |||
import 'package:chat/home/group_chat_page.dart'; | |||
import 'package:chat/home/realtimehelper/real_time_helper_page.dart'; | |||
import 'package:chat/home/unread_dot_widget.dart'; | |||
import 'package:chat/models/UserInfo.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/TokenMgr.dart'; | |||
import 'package:chat/utils/app_navigator.dart'; | |||
@@ -142,7 +142,6 @@ class _HomeMainState extends State<HomeMain> { | |||
@override | |||
void initState() { | |||
MsgHandler.context = context; | |||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light); | |||
super.initState(); | |||
@@ -253,7 +252,7 @@ class _HomeMainState extends State<HomeMain> { | |||
goShareInfo(data) async { | |||
Future.delayed(Duration(milliseconds: 1000), () { | |||
Navigator.of(LoadingManage.context).push( | |||
Navigator.of(Constants.getCurrentContext()).push( | |||
new MaterialPageRoute( | |||
builder: (context) { | |||
return FilePreview(data); | |||
@@ -310,7 +309,7 @@ class _HomeMainState extends State<HomeMain> { | |||
NavigationIconView( | |||
title: _titles[2], | |||
icon: IconData( | |||
0xe60b, | |||
0xe67c, | |||
fontFamily: 'iconfont', | |||
), | |||
isShowdot: true, | |||
@@ -321,7 +320,7 @@ class _HomeMainState extends State<HomeMain> { | |||
isShowdot: true, | |||
type: 5, | |||
icon: IconData( | |||
0xe663, | |||
0xe66e, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
@@ -337,7 +336,7 @@ class _HomeMainState extends State<HomeMain> { | |||
title: _titles[1], | |||
isShowdot: true, | |||
icon: IconData( | |||
0xe66e, | |||
0xe60b, | |||
fontFamily: 'iconfont', | |||
), | |||
type: 4, | |||
@@ -345,17 +344,18 @@ class _HomeMainState extends State<HomeMain> { | |||
NavigationIconView( | |||
title: _titles[3], | |||
icon: IconData( | |||
0xe648, | |||
0xe67b, | |||
fontFamily: 'iconfont', | |||
), | |||
iconSize: 26.5), | |||
]; | |||
_pages = [ | |||
ConversActionPage(), | |||
RealTimeHelperPage(), | |||
FriendPage(), | |||
FindPage(), | |||
GroupChatListPage(), | |||
ConversActionPage(), | |||
// GroupChatListPage(), | |||
ProfilePage( | |||
userId: UserData().basicInfo.userId, | |||
), | |||
@@ -7,7 +7,6 @@ import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/home/qr_scanner_overlay.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/app_navigator.dart'; | |||
import 'package:flutter/material.dart'; | |||
@@ -208,7 +207,7 @@ class _QrScannerPageState extends State<QrScannerPage> | |||
showToast(I18n.of(context).no_goupr_info); | |||
return; | |||
} | |||
Navigator.push(LoadingManage.context, | |||
Navigator.push(Constants.getCurrentContext(), | |||
MaterialPageRoute<void>(builder: (BuildContext context) { | |||
return JoinGroupConfirmPage( | |||
groupInfoModel: groupInfo, | |||
@@ -0,0 +1,129 @@ | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/home/add_friend.dart'; | |||
import 'package:chat/home/group_announcement.dart'; | |||
import 'package:chat/home/group_manage_page.dart'; | |||
import 'package:chat/home/realtimehelper/translation_butler_page.dart'; | |||
import 'package:chat/home/realtimehelper/travel_butler_page.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:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:provider/provider.dart'; | |||
import '../../data/constants.dart'; | |||
import '../../generated/i18n.dart'; | |||
import '../../r.dart'; | |||
import '../../utils/CustomUI.dart'; | |||
import '../../utils/FullWithButton.dart'; | |||
import '../../utils/app_navigator.dart'; | |||
import '../create_group_view.dart'; | |||
class RealTimeHelperPage extends StatefulWidget { | |||
final GroupInfoModel groupInfoModel; | |||
RealTimeHelperPage({Key key, this.groupInfoModel}) : super(key: key); | |||
@override | |||
State<StatefulWidget> createState() { | |||
return RealTimeHelperPageState(); | |||
} | |||
} | |||
class RealTimeHelperPageState extends State<RealTimeHelperPage> { | |||
@override | |||
void initState() { | |||
super.initState(); | |||
} | |||
@override | |||
void dispose() { | |||
// MessageMgr().off('Update Group Info', updateGroupInfo); | |||
super.dispose(); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
Widget appBar = AppBar( | |||
backgroundColor: AppColors.NewAppbarBgColor, | |||
title: Text( | |||
I18n.of(context).real_time_helper, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor), | |||
), | |||
// leading: CustomUI.buildCustomLeading(context), | |||
centerTitle: false, | |||
); | |||
return Scaffold( | |||
appBar: appBar, | |||
body: SafeArea( | |||
child: Container( | |||
color: Color(0xffE8EAF0), | |||
child: ListView( | |||
children: <Widget>[ | |||
helperCard(I18n.of(context).translation_butler, | |||
R.assetsImagesImgTranslationButler, () { | |||
Navigator.of(context).push( | |||
MaterialPageRoute( | |||
builder: (_) => TranslationButlerPage(), | |||
), | |||
); | |||
}), | |||
helperCard( | |||
I18n.of(context).travel_butler, R.assetsImagesImgTravelButler, | |||
() { | |||
Navigator.of(context).push( | |||
MaterialPageRoute( | |||
builder: (_) => TravelButlerPage(), | |||
), | |||
); | |||
}), | |||
SizedBox( | |||
height: 15, | |||
), | |||
], | |||
), | |||
), | |||
), | |||
); | |||
} | |||
Widget helperCard(String title, String assets, Function callBack) { | |||
return InkWell( | |||
child: Container( | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
), | |||
child: Container(padding: EdgeInsets.all(10),child: Column( | |||
children: <Widget>[ | |||
Image.asset( | |||
assets, | |||
), | |||
Padding( | |||
padding: EdgeInsets.only(top: 15, bottom: 15), | |||
child: Text( | |||
title + ' >>', | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xff2685FA), fontSize: 20), | |||
), | |||
) | |||
], | |||
),), | |||
), | |||
), | |||
onTap: callBack, | |||
); | |||
} | |||
} |
@@ -0,0 +1,245 @@ | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/home/add_friend.dart'; | |||
import 'package:chat/home/group_announcement.dart'; | |||
import 'package:chat/home/group_manage_page.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/models/money_change.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:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:provider/provider.dart'; | |||
import '../../data/constants.dart'; | |||
import '../../generated/i18n.dart'; | |||
import '../../r.dart'; | |||
import '../../utils/CustomUI.dart'; | |||
import '../../utils/FullWithButton.dart'; | |||
import '../../utils/app_navigator.dart'; | |||
import '../create_group_view.dart'; | |||
import 'package:chat/utils/PopUpMenu.dart' as myPop; | |||
class TranslationButlerPage extends StatefulWidget { | |||
final GroupInfoModel groupInfoModel; | |||
TranslationButlerPage({Key key, this.groupInfoModel}) : super(key: key); | |||
@override | |||
State<StatefulWidget> createState() { | |||
return TranslationButlerPageState(); | |||
} | |||
} | |||
class TranslationButlerPageState extends State<TranslationButlerPage> { | |||
int curToLang = 1; | |||
int curSourceLang = UserData().language; | |||
List langList; | |||
@override | |||
void initState() { | |||
super.initState(); | |||
} | |||
@override | |||
void didChangeDependencies() { | |||
super.didChangeDependencies(); | |||
langList = [ | |||
I18n.of(context).english, | |||
I18n.of(context).Vietnamese, | |||
I18n.of(context).traditional_Chinese, | |||
I18n.of(context).Simplified_Chinese, | |||
I18n.of(context).Korean, | |||
I18n.of(context).Japanese, | |||
]; | |||
} | |||
@override | |||
void dispose() { | |||
// MessageMgr().off('Update Group Info', updateGroupInfo); | |||
super.dispose(); | |||
} | |||
_langPopMenu(bool isSource) { | |||
var curIndex = isSource ? curSourceLang : curToLang; | |||
return myPop.PopupMenuButton( | |||
child: Container( | |||
constraints: BoxConstraints( | |||
minHeight: 41, | |||
minWidth: 115, | |||
maxWidth: 165), | |||
decoration: BoxDecoration(color: Color(0xffD3E7FF),borderRadius:BorderRadius.circular(10) ), | |||
child: Row( | |||
children: <Widget>[ | |||
Expanded(child: Text(langList[curIndex],textAlign: TextAlign.center,textScaleFactor: 1.0,style: TextStyle(color: Colors.black, fontSize: 16),)), | |||
Icon(IconData(0xe63b, fontFamily: Constants.IconFontFamily), | |||
color: Colors.grey) | |||
], | |||
), | |||
), | |||
offset: Offset(0, 100), | |||
onSelected: (int index) { | |||
if (curIndex != index) { | |||
if (isSource) { | |||
curSourceLang = index; | |||
} else { | |||
curToLang = index; | |||
} | |||
print('更换翻译语言'); | |||
setState(() {}); | |||
} | |||
}, | |||
itemBuilder: (BuildContext context) { | |||
return List<myPop.PopupMenuItem<int>>.generate(langList.length, | |||
(int i) { | |||
return myPop.PopupMenuItem( | |||
child: Container( | |||
alignment: Alignment.center, | |||
color: Colors.white, | |||
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), | |||
child: Text(langList[i], | |||
textScaleFactor: 1.0, | |||
maxLines: 1, | |||
style: TextStyle( | |||
color: i == curIndex | |||
? Colors.blueAccent | |||
: Color(AppColors.AppBarColor), | |||
fontSize: 14)), | |||
), | |||
value: i, | |||
); | |||
}); | |||
}); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
Widget appBar = AppBar( | |||
backgroundColor: AppColors.NewAppbarBgColor, | |||
title: Text( | |||
I18n.of(context).translation_butler, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor), | |||
), | |||
// leading: CustomUI.buildCustomLeading(context), | |||
centerTitle: true, | |||
actions: <Widget>[ Container(child: CustomUI.buildImageLabel( | |||
R.assetsImagesCoin, Provider.of<MoneyChangeProvider>(context).money, | |||
isLeft: true),decoration: BoxDecoration(borderRadius:BorderRadius.circular(10)),),SizedBox(width: 10,)], | |||
); | |||
return Scaffold( | |||
appBar: appBar, | |||
body: SafeArea( | |||
child: Container( | |||
color: Color(0xffE8EAF0), | |||
child: ListView( | |||
children: <Widget>[ | |||
Padding( | |||
padding: EdgeInsets.only(left: 10, right: 10, top: 15), | |||
child: Text( | |||
I18n.of(context).translation_butler_tips, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: Color(0xffABABAB), fontSize: 13), | |||
), | |||
), | |||
Container( | |||
margin: EdgeInsets.all(10), | |||
child: Card( | |||
elevation: 5, // 阴影 | |||
shape: RoundedRectangleBorder( | |||
borderRadius: BorderRadius.circular(10), | |||
// side: BorderSide(color: Colors.green,width: 25), | |||
), | |||
child: Container( | |||
padding: EdgeInsets.all(10), | |||
child: Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
children: <Widget>[ | |||
Text( | |||
I18n.of(context).choose_language, | |||
textScaleFactor: 1.0, | |||
textAlign: TextAlign.left, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor,fontSize: 17), | |||
), | |||
Row( | |||
children: <Widget>[ | |||
Image.asset( | |||
R.assetsImagesImgTranslationIcon, | |||
width: 195, | |||
height: 175, | |||
), | |||
Column( | |||
mainAxisSize: MainAxisSize.min, | |||
children: <Widget>[ | |||
_langPopMenu(true), | |||
SizedBox(width: 10), | |||
InkWell( | |||
onTap: () { | |||
var temp = curSourceLang; | |||
curSourceLang = curToLang; | |||
curToLang = temp; | |||
setState(() {}); | |||
}, | |||
child: Container( | |||
child: Icon( | |||
IconData( | |||
0xe669, | |||
fontFamily: Constants.IconFontFamily, | |||
), | |||
size: 12, | |||
), | |||
padding: EdgeInsets.symmetric( | |||
vertical: 5, horizontal: 5), | |||
), | |||
), | |||
SizedBox(width: 20), | |||
_langPopMenu(false), | |||
], | |||
), | |||
], | |||
), | |||
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), | |||
), | |||
), | |||
], | |||
), | |||
), | |||
), | |||
), | |||
Container( | |||
margin: EdgeInsets.only(left: 70, right: 70,top: 50), | |||
height: 47, | |||
child: RaisedButton( | |||
color: Color(0xff3875E9), | |||
shape:RoundedRectangleBorder( | |||
borderRadius: BorderRadius.all(Radius.circular(10)) | |||
), | |||
child: Text(I18n.of(context).translation_butler_call+' (50h)',textScaleFactor: 1.0,style: TextStyle(color: Colors.white,fontSize: 19),), | |||
onPressed: () { | |||
showToast( | |||
'呼叫管家${I18n.of(context).translation_butler_call}'); | |||
}), | |||
) | |||
], | |||
), | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,183 @@ | |||
import 'dart:math'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/data/chat_data_mgr.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/home/add_friend.dart'; | |||
import 'package:chat/home/group_announcement.dart'; | |||
import 'package:chat/home/group_manage_page.dart'; | |||
import 'package:chat/map/google_map_location_picker.dart'; | |||
import 'package:chat/map/location_result.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/group_member_model.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; | |||
import 'package:geolocator/geolocator.dart'; | |||
import 'package:google_maps_flutter/google_maps_flutter.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:permission_handler/permission_handler.dart'; | |||
import 'package:provider/provider.dart'; | |||
import '../../data/constants.dart'; | |||
import '../../generated/i18n.dart'; | |||
import '../../utils/CustomUI.dart'; | |||
import '../../utils/FullWithButton.dart'; | |||
import '../../utils/app_navigator.dart'; | |||
import '../create_group_view.dart'; | |||
class TravelButlerPage extends StatefulWidget { | |||
final GroupInfoModel groupInfoModel; | |||
TravelButlerPage({Key key, this.groupInfoModel}) : super(key: key); | |||
@override | |||
State<StatefulWidget> createState() { | |||
return TravelButlerPageState(); | |||
} | |||
} | |||
class TravelButlerPageState extends State<TravelButlerPage> { | |||
LocationResult startResult; | |||
LocationResult endResult; | |||
double distance=0.0; | |||
double distanceB=0.0; | |||
@override | |||
void initState() { | |||
super.initState(); | |||
} | |||
@override | |||
void dispose() { | |||
// MessageMgr().off('Update Group Info', updateGroupInfo); | |||
super.dispose(); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
Widget appBar = AppBar( | |||
backgroundColor: AppColors.NewAppbarBgColor, | |||
title: Text( | |||
I18n.of(context).travel_butler, | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor), | |||
), | |||
// leading: CustomUI.buildCustomLeading(context), | |||
centerTitle: true, | |||
); | |||
return Scaffold( | |||
appBar: appBar, | |||
body: SafeArea( | |||
child: ListView( | |||
children: <Widget>[ | |||
InkWell( | |||
child: Text( | |||
I18n.of(context).travel_butler+'起点', | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor,fontSize: 30), | |||
), | |||
onTap: () async{ | |||
startResult =await _openMap(context); | |||
}, | |||
), | |||
InkWell( | |||
child: Text( | |||
I18n.of(context).travel_butler+'终点', | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor,fontSize: 30), | |||
), | |||
onTap: () async{ | |||
endResult = await _openMap(context); | |||
}, | |||
), | |||
InkWell( | |||
child: Text( | |||
'距离查询', | |||
textScaleFactor: 1.0, | |||
style: TextStyle(color: AppColors.NewAppbarTextColor,fontSize: 30), | |||
), | |||
onTap: () async{ | |||
if(startResult!=null && endResult!=null){ | |||
distanceB =await Geolocator().distanceBetween(startResult.latLng.latitude,startResult.latLng.longitude,endResult.latLng.latitude,endResult.latLng.longitude); | |||
setState(() { | |||
print('开始计算'); | |||
distance =getDistance(startResult.latLng.latitude,startResult.latLng.longitude,endResult.latLng.latitude,endResult.latLng.longitude); | |||
}); | |||
}else{ | |||
print('参数为空'); | |||
} | |||
}, | |||
), | |||
// Text('距离为: ${getDistanceStr(distance)}'), | |||
// Text('距离为: ${getDistanceStr(distanceB)}') | |||
Text('距离为: $distance'), | |||
Text('距离为: $distanceB'), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
getDistanceStr(double m){ | |||
if(m<1000){ | |||
return '${m.toInt()} M'; | |||
}else{ | |||
return '${(m/1000).toStringAsFixed(2)} KM'; | |||
} | |||
} | |||
getDistance(double lat1, double lng1, double lat2, double lng2) { | |||
double radLat1 = rad(lat1); | |||
double radLat2 = rad(lat2); | |||
double a = radLat1 - radLat2; | |||
double b = rad(lng1) - rad(lng2); | |||
double s = 2 * | |||
asin(sqrt(pow(sin(a / 2), 2) + | |||
cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2))); | |||
return s * 6378138.0; | |||
} | |||
double rad(double d) { | |||
return d * pi / 180.0; | |||
} | |||
_openMap(BuildContext context) async { | |||
if (await CustomUI.showPermissionSetting( | |||
context, PermissionGroup.location, I18n.of(context).open_location)) { | |||
return LocationPicker.pickLocation( | |||
context, 'AIzaSyAb9JNtW0BEZ_qLeDg87ZhvxSmZply-7hU', | |||
initialCenter: LatLng(UserData().latitude, UserData().longitude)); | |||
// print('地图结果 ${result}'); | |||
// return result; | |||
} | |||
} | |||
} |
@@ -32,8 +32,8 @@ class ServiceMsgModel { | |||
} | |||
class ServiceCenterPage extends StatefulWidget { | |||
int questionIndex = -1; | |||
ServiceCenterPage(this.questionIndex); | |||
final int questionIndex; | |||
ServiceCenterPage({this.questionIndex = -1}); | |||
@override | |||
_ServiceCenterPageState createState() => _ServiceCenterPageState(); | |||
@@ -1,5 +1,4 @@ | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:chat/utils/sp_utils.dart'; | |||
import 'package:flutter/cupertino.dart'; | |||
@@ -34,11 +33,11 @@ class SplashPageState extends State<SplashPage> { | |||
void initState() { | |||
super.initState(); | |||
list.add(SplashBean('assets/images/img_splash_1.png',I18n.of( LoadingManage.context).splash_tips1 , I18n.of( LoadingManage.context).splash_tips_content1, | |||
list.add(SplashBean('assets/images/img_splash_1.png',I18n.of( Constants.getCurrentContext()).splash_tips1 , I18n.of( Constants.getCurrentContext()).splash_tips_content1, | |||
Color(0xffEC527D))); | |||
list.add(SplashBean('assets/images/img_splash_2.png', I18n.of( LoadingManage.context).splash_tips2, I18n.of( LoadingManage.context).splash_tips_content2, | |||
list.add(SplashBean('assets/images/img_splash_2.png', I18n.of( Constants.getCurrentContext()).splash_tips2, I18n.of( Constants.getCurrentContext()).splash_tips_content2, | |||
Color(0xffB439EB))); | |||
list.add(SplashBean('assets/images/img_splash_3.png', I18n.of( LoadingManage.context).splash_tips3, I18n.of( LoadingManage.context).splash_tips_content3, | |||
list.add(SplashBean('assets/images/img_splash_3.png', I18n.of( Constants.getCurrentContext()).splash_tips3, I18n.of( Constants.getCurrentContext()).splash_tips_content3, | |||
Color(0xff2B79F7))); | |||
pageController = PageController( | |||
@@ -12,7 +12,6 @@ import 'package:chat/home/splash_page.dart'; | |||
import 'package:chat/models/gift_select_provider.dart'; | |||
import 'package:chat/models/money_change.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/NetUtil.dart'; | |||
import 'package:chat/utils/OtherLogin.dart'; | |||
@@ -115,7 +114,7 @@ void setCustomErrorPage(BuildContext context) { | |||
Container( | |||
margin: EdgeInsets.only(top: ScreenUtil().setHeight(50)), | |||
child: Text( | |||
I18n.of(LoadingManage.context).server_error_tips, | |||
I18n.of(Constants.getCurrentContext()).server_error_tips, | |||
style: TextStyle(color: Color(0xFF8F8E8E), fontSize: 18), | |||
), | |||
), | |||
@@ -214,7 +213,6 @@ class MyApp extends StatefulWidget { | |||
_MyAppState createState() => _MyAppState(); | |||
} | |||
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>(); | |||
class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||
final i18n = I18n.delegate; | |||
@@ -232,7 +230,6 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||
initVersionName(); | |||
askLocationPermission(); | |||
MsgHandler.context = context; | |||
I18n.onLocaleChanged = onLocaleChange; | |||
WidgetsBinding.instance.addObserver(this); | |||
ReceiveShareFile.init(); | |||
@@ -385,7 +382,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||
// 此处 | |||
return 'Hibok'; | |||
}, | |||
navigatorKey: navigatorKey, | |||
navigatorKey: Constants.navigatorKey, | |||
routes: <String, WidgetBuilder>{ | |||
'/main': (BuildContext context) => HomeMain(), | |||
}, | |||
@@ -410,8 +407,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||
} | |||
goIndex() { | |||
LoadingManage.context = navigatorKey.currentState.overlay.context; | |||
if (!isOpen) { | |||
return SplashPage(); | |||
} else { | |||
@@ -8,7 +8,6 @@ import 'package:chat/models/last_message_model.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/proto/chat.pb.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
@@ -82,19 +81,19 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||
} | |||
break; | |||
case ChatType.EmoticonType: | |||
desc = '[${I18n.of(LoadingManage.context).emoji}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).emoji}]'; | |||
break; | |||
case ChatType.ImageChatType: | |||
desc = '[${I18n.of(LoadingManage.context).picture}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).picture}]'; | |||
break; | |||
case ChatType.ShortVideoChatType: | |||
desc = '[${I18n.of(LoadingManage.context).video}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).video}]'; | |||
break; | |||
case ChatType.PlaceChatType: | |||
desc = '[${I18n.of(LoadingManage.context).locate}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).locate}]'; | |||
break; | |||
case ChatType.ShortVoiceChatType: | |||
desc = '[${I18n.of(LoadingManage.context).voice}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).voice}]'; | |||
break; | |||
case ChatType.GiftChatType: | |||
@@ -102,9 +101,9 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||
GiftChat.fromBuffer(widget.lastMessageModel.msgContent); | |||
if (giftChat.tuId == UserData().basicInfo.userId) { | |||
desc = I18n.of(LoadingManage.context).you_get; | |||
desc = I18n.of(Constants.getCurrentContext()).you_get; | |||
} else { | |||
desc = I18n.of(LoadingManage.context).you_give; | |||
desc = I18n.of(Constants.getCurrentContext()).you_give; | |||
} | |||
break; | |||
@@ -118,21 +117,21 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||
if (wallet.state == RedWalletState.Received) { | |||
var myId = UserData().basicInfo.userId; | |||
if (wallet.suId == myId) { | |||
desc = I18n.of(LoadingManage.context) | |||
desc = I18n.of(Constants.getCurrentContext()) | |||
.get_money | |||
.replaceFirst('/s1', fdName); | |||
} else { | |||
desc = I18n.of(LoadingManage.context) | |||
desc = I18n.of(Constants.getCurrentContext()) | |||
.you_get_money | |||
.replaceFirst('/s1', fdName); | |||
} | |||
} else if (wallet.state == RedWalletState.Expire) { | |||
desc = I18n.of(LoadingManage.context).money_over; | |||
desc = I18n.of(Constants.getCurrentContext()).money_over; | |||
} else { | |||
print('WWWWW${wallet.state}'); | |||
} | |||
} else { | |||
desc = '[${I18n.of(LoadingManage.context).red_money}]'; | |||
desc = '[${I18n.of(Constants.getCurrentContext()).red_money}]'; | |||
} | |||
break; | |||
@@ -88,19 +88,6 @@ class _PhotoSelectMenuState extends State<PhotoSelectMenu> { | |||
setState(() {}); | |||
} | |||
Widget _mask() { | |||
return GestureDetector( | |||
onTap: () { | |||
print('到mask了'); | |||
clearOverlay(); | |||
}, | |||
child: Expanded( | |||
child: Container( | |||
width: MediaQuery.of(context).size.width, | |||
color: Color.fromRGBO(0, 0, 0, 0.1), | |||
))); | |||
} | |||
void clearOverlay() { | |||
if (overlayEntry != null) { | |||
overlayEntry.remove(); | |||
@@ -1,508 +1,514 @@ | |||
class R { | |||
///  | |||
static final String assetsImagesBack = 'assets/images/back.png'; | |||
///  | |||
static final String assetsImagesBg = 'assets/images/bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesBofang = 'assets/images/bofang.png'; | |||
///  | |||
static final String assetsImagesChatItem1 = 'assets/images/chat_item_1.png'; | |||
///  | |||
static final String assetsImagesChatItem2 = 'assets/images/chat_item_2.png'; | |||
///  | |||
static final String assetsImagesChatItem3 = 'assets/images/chat_item_3.png'; | |||
///  | |||
static final String assetsImagesChatItem4 = 'assets/images/chat_item_4.png'; | |||
///  | |||
static final String assetsImagesChatItem5 = 'assets/images/chat_item_5.png'; | |||
///  | |||
static final String assetsImagesChatItem6 = 'assets/images/chat_item_6.png'; | |||
///  | |||
static final String assetsImagesChatItem7 = 'assets/images/chat_item_7.png'; | |||
///  | |||
static final String assetsImagesCoin = 'assets/images/coin.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcQuickSearch = 'assets/images/ic_quick_search.png'; | |||
///  | |||
static final String assetsImagesImgTempShare = 'assets/images/img_temp_share.png'; | |||
///  | |||
static final String assetsImagesIcTag = 'assets/images/ic_tag.png'; | |||
///  | |||
static final String assetsImagesDefaultNorAvatar = 'assets/images/default_nor_avatar.png'; | |||
///  | |||
static final String assetsImagesServerIcon = 'assets/images/server_icon.png'; | |||
///  | |||
static final String assetsImagesIcPublicAccount = 'assets/images/ic_public_account.png'; | |||
///  | |||
static final String assetsImagesIcFeeds = 'assets/images/ic_feeds.png'; | |||
///  | |||
static final String assetsImagesDailyBg1 = 'assets/images/daily_bg_1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesYqmBg = 'assets/images/yqm_bg.png'; | |||
///  | |||
static final String assetsImagesDailyBg2 = 'assets/images/daily_bg_2.png'; | |||
///  | |||
static final String assetsImagesDailyBtn1 = 'assets/images/daily_btn_1.png'; | |||
///  | |||
static final String assetsImagesDailyBtn2 = 'assets/images/daily_btn_2.png'; | |||
///  | |||
static final String assetsImagesDailyCoin = 'assets/images/daily_coin.png'; | |||
///  | |||
static final String assetsImagesDailyIcon = 'assets/images/daily_icon.png'; | |||
///  | |||
static final String assetsImagesDefaultNorAvatar = 'assets/images/default_nor_avatar.png'; | |||
///  | |||
static final String assetsImagesExtApk = 'assets/images/ext_apk.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtExcel = 'assets/images/ext_excel.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgFyj = 'assets/images/img_fyj.png'; | |||
///  | |||
static final String assetsImagesRightGray = 'assets/images/right_gray.png'; | |||
///  | |||
static final String assetsImagesIcGroupChat = 'assets/images/ic_group_chat.png'; | |||
///  | |||
static final String assetsImagesImgTempSee = 'assets/images/img_temp_see.png'; | |||
///  | |||
static final String assetsImagesExtPdf = 'assets/images/ext_pdf.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtPpt = 'assets/images/ext_ppt.png'; | |||
///  | |||
static final String assetsImagesExtSound = 'assets/images/ext_sound.png'; | |||
///  | |||
static final String assetsImagesExtTxt = 'assets/images/ext_txt.png'; | |||
///  | |||
static final String assetsImagesExtUnknown = 'assets/images/ext_unknown.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcMiniProgram = 'assets/images/ic_mini_program.png'; | |||
///  | |||
static final String assetsImagesIcShakePhone = 'assets/images/ic_shake_phone.png'; | |||
///  | |||
static final String assetsImagesIcGameEntry = 'assets/images/ic_game_entry.png'; | |||
///  | |||
static final String assetsImagesDailyIcon = 'assets/images/daily_icon.png'; | |||
///  | |||
static final String assetsImagesLeftGray = 'assets/images/left_gray.png'; | |||
///  | |||
static final String assetsImagesIcSocialCircle = 'assets/images/ic_social_circle.png'; | |||
///  | |||
static final String assetsImagesExtApk = 'assets/images/ext_apk.png'; | |||
///  | |||
static final String assetsImagesSvip = 'assets/images/svip.png'; | |||
///  | |||
static final String assetsImagesIcQrcodePreviewTiny = 'assets/images/ic_qrcode_preview_tiny.png'; | |||
///  | |||
static final String assetsImagesIcAlbum = 'assets/images/ic_album.png'; | |||
///  | |||
static final String assetsImagesZhiwen = 'assets/images/zhiwen.png'; | |||
///  | |||
static final String assetsImagesNetError = 'assets/images/net_error.png'; | |||
///  | |||
static final String assetsImagesIcEmotions = 'assets/images/ic_emotions.png'; | |||
///  | |||
static final String assetsImagesExtVideo = 'assets/images/ext_video.png'; | |||
///  | |||
///  | |||
static final String assetsImagesExtWord = 'assets/images/ext_word.png'; | |||
///  | |||
static final String assetsImagesExtZip = 'assets/images/ext_zip.png'; | |||
///  | |||
static final String assetsImagesGift1 = 'assets/images/gift_1.png'; | |||
///  | |||
static final String assetsImagesGift2 = 'assets/images/gift_2.png'; | |||
///  | |||
static final String assetsImagesGift3 = 'assets/images/gift_3.png'; | |||
///  | |||
static final String assetsImagesGiftAnim1 = 'assets/images/gift_anim_1.gif'; | |||
///  | |||
static final String assetsImagesGiftAnim2 = 'assets/images/gift_anim_2.gif'; | |||
///  | |||
static final String assetsImagesGiftAnim3 = 'assets/images/gift_anim_3.gif'; | |||
///  | |||
static final String assetsImagesGiftShow21 = 'assets/images/gift_show_2_1.png'; | |||
///  | |||
static final String assetsImagesGiftShow22 = 'assets/images/gift_show_2_2.png'; | |||
///  | |||
static final String assetsImagesGiftShow23 = 'assets/images/gift_show_2_3.png'; | |||
///  | |||
static final String assetsImagesGiftShow24 = 'assets/images/gift_show_2_4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTempHy = 'assets/images/img_temp_hy.png'; | |||
///  | |||
static final String assetsImagesHand = 'assets/images/hand.png'; | |||
///  | |||
static final String assetsImagesIcAlbum = 'assets/images/ic_album.png'; | |||
///  | |||
static final String assetsImagesIcBottleMsg = 'assets/images/ic_bottle_msg.png'; | |||
///  | |||
static final String assetsImagesIcCardsWallet = 'assets/images/ic_cards_wallet.png'; | |||
///  | |||
static final String assetsImagesIcCollections = 'assets/images/ic_collections.png'; | |||
///  | |||
static final String assetsImagesIcEmotions = 'assets/images/ic_emotions.png'; | |||
///  | |||
static final String assetsImagesIcFeeds = 'assets/images/ic_feeds.png'; | |||
///  | |||
static final String assetsImagesIcFengchao = 'assets/images/ic_fengchao.png'; | |||
///  | |||
static final String assetsImagesIcFileTransfer = 'assets/images/ic_file_transfer.png'; | |||
///  | |||
static final String assetsImagesIcGameEntry = 'assets/images/ic_game_entry.png'; | |||
///  | |||
static final String assetsImagesIcGroupChat = 'assets/images/ic_group_chat.png'; | |||
///  | |||
static final String assetsImagesIcMiniProgram = 'assets/images/ic_mini_program.png'; | |||
///  | |||
static final String assetsImagesIcNewFriend = 'assets/images/ic_new_friend.png'; | |||
///  | |||
///  | |||
static final String assetsImagesQianbaoBg = 'assets/images/qianbao_bg.png'; | |||
///  | |||
static final String assetsImagesImgSplash3 = 'assets/images/img_splash_3.png'; | |||
///  | |||
static final String assetsImagesImgUpdateBg = 'assets/images/img_update_bg.png'; | |||
///  | |||
static final String assetsImagesDailyBtn1 = 'assets/images/daily_btn_1.png'; | |||
///  | |||
static final String assetsImagesChatItem4 = 'assets/images/chat_item_4.png'; | |||
///  | |||
static final String assetsImagesChatItem5 = 'assets/images/chat_item_5.png'; | |||
///  | |||
static final String assetsImagesIcPeopleNearby = 'assets/images/ic_people_nearby.png'; | |||
///  | |||
static final String assetsImagesIcPublicAccount = 'assets/images/ic_public_account.png'; | |||
///  | |||
static final String assetsImagesIcQrcodePreviewTiny = 'assets/images/ic_qrcode_preview_tiny.png'; | |||
///  | |||
static final String assetsImagesIcQuickScan = 'assets/images/ic_quick_scan.png'; | |||
///  | |||
static final String assetsImagesIcQuickSearch = 'assets/images/ic_quick_search.png'; | |||
///  | |||
static final String assetsImagesIcSettings = 'assets/images/ic_settings.png'; | |||
///  | |||
static final String assetsImagesIcShakePhone = 'assets/images/ic_shake_phone.png'; | |||
///  | |||
static final String assetsImagesIcShopping = 'assets/images/ic_shopping.png'; | |||
///  | |||
static final String assetsImagesIcSocialCircle = 'assets/images/ic_social_circle.png'; | |||
///  | |||
static final String assetsImagesIcTag = 'assets/images/ic_tag.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgSplash2 = 'assets/images/img_splash_2.png'; | |||
///  | |||
static final String assetsImagesIcTxNews = 'assets/images/ic_tx_news.png'; | |||
///  | |||
static final String assetsImagesIcWallet = 'assets/images/ic_wallet.png'; | |||
///  | |||
static final String assetsImagesIcWxGames = 'assets/images/ic_wx_games.png'; | |||
///  | |||
static final String assetsImagesImgFyj = 'assets/images/img_fyj.png'; | |||
///  | |||
///  | |||
static final String assetsImagesServiceIcon = 'assets/images/service_icon.png'; | |||
///  | |||
static final String assetsImagesDailyBtn2 = 'assets/images/daily_btn_2.png'; | |||
///  | |||
static final String assetsImagesChatItem7 = 'assets/images/chat_item_7.png'; | |||
///  | |||
static final String assetsImagesImgTempQb = 'assets/images/img_temp_qb.png'; | |||
///  | |||
static final String assetsImagesImgTravelButler = 'assets/images/img_travel_butler.png'; | |||
///  | |||
static final String assetsImagesChatItem6 = 'assets/images/chat_item_6.png'; | |||
///  | |||
static final String assetsImagesImgLongIndex = 'assets/images/img_long_index.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgSplash1 = 'assets/images/img_splash_1.png'; | |||
///  | |||
static final String assetsImagesImgSplash2 = 'assets/images/img_splash_2.png'; | |||
///  | |||
static final String assetsImagesImgSplash3 = 'assets/images/img_splash_3.png'; | |||
///  | |||
static final String assetsImagesImgTempHy = 'assets/images/img_temp_hy.png'; | |||
///  | |||
static final String assetsImagesImgTempQb = 'assets/images/img_temp_qb.png'; | |||
///  | |||
///  | |||
static final String assetsImagesDailyCoin = 'assets/images/daily_coin.png'; | |||
///  | |||
static final String assetsImagesIcNewFriend = 'assets/images/ic_new_friend.png'; | |||
///  | |||
static final String assetsImagesIcSettings = 'assets/images/ic_settings.png'; | |||
///  | |||
static final String assetsImagesIcCardsWallet = 'assets/images/ic_cards_wallet.png'; | |||
///  | |||
static final String assetsImagesChatItem2 = 'assets/images/chat_item_2.png'; | |||
///  | |||
static final String assetsImagesChatItem3 = 'assets/images/chat_item_3.png'; | |||
///  | |||
static final String assetsImagesRobot = 'assets/images/robot.jpg'; | |||
///  | |||
static final String assetsImagesExtSound = 'assets/images/ext_sound.png'; | |||
///  | |||
static final String assetsImagesExtZip = 'assets/images/ext_zip.png'; | |||
///  | |||
static final String assetsImagesChatItem1 = 'assets/images/chat_item_1.png'; | |||
///  | |||
static final String assetsImagesImgTempQd = 'assets/images/img_temp_qd.png'; | |||
///  | |||
static final String assetsImagesImgTempSee = 'assets/images/img_temp_see.png'; | |||
///  | |||
static final String assetsImagesImgTempShare = 'assets/images/img_temp_share.png'; | |||
///  | |||
static final String assetsImagesImgUpdateBg = 'assets/images/img_update_bg.png'; | |||
///  | |||
static final String assetsImagesLeftGray = 'assets/images/left_gray.png'; | |||
///  | |||
///  | |||
static final String assetsImagesImgTranslationButler = 'assets/images/img_translation_butler.png'; | |||
///  | |||
static final String assetsImagesLeftWhite = 'assets/images/left_white.png'; | |||
///  | |||
static final String assetsImagesNetError = 'assets/images/net_error.png'; | |||
///  | |||
static final String assetsImagesQianbaoBg = 'assets/images/qianbao_bg.png'; | |||
///  | |||
static final String assetsImagesRedPacketBg = 'assets/images/red_packet_bg.png'; | |||
///  | |||
static final String assetsImagesRightGray = 'assets/images/right_gray.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVoucher = 'assets/images/voucher.png'; | |||
///  | |||
static final String assetsImagesVIP = 'assets/images/VIP.png'; | |||
///  | |||
static final String assetsImagesIcWallet = 'assets/images/ic_wallet.png'; | |||
///  | |||
static final String assetsImagesRightWhite = 'assets/images/right_white.png'; | |||
///  | |||
static final String assetsImagesRobot = 'assets/images/robot.jpg'; | |||
///  | |||
static final String assetsImagesServerIcon = 'assets/images/server_icon.png'; | |||
///  | |||
static final String assetsImagesServiceIcon = 'assets/images/service_icon.png'; | |||
///  | |||
///  | |||
static final String assetsImagesIcCollections = 'assets/images/ic_collections.png'; | |||
///  | |||
static final String assetsImagesGiftShow24 = 'assets/images/gift_show_2_4.png'; | |||
///  | |||
static final String assetsImagesIcWxGames = 'assets/images/ic_wx_games.png'; | |||
///  | |||
static final String assetsImagesIcShopping = 'assets/images/ic_shopping.png'; | |||
///  | |||
static final String assetsImagesIcFengchao = 'assets/images/ic_fengchao.png'; | |||
///  | |||
static final String assetsImagesIcFileTransfer = 'assets/images/ic_file_transfer.png'; | |||
///  | |||
static final String assetsImagesSuo = 'assets/images/suo.png'; | |||
///  | |||
static final String assetsImagesSvip = 'assets/images/svip.png'; | |||
///  | |||
static final String assetsImagesVIP = 'assets/images/VIP.png'; | |||
///  | |||
static final String assetsImagesVoucher = 'assets/images/voucher.png'; | |||
///  | |||
static final String assetsImagesYqmBg = 'assets/images/yqm_bg.png'; | |||
///  | |||
static final String assetsImagesZhiwen = 'assets/images/zhiwen.png'; | |||
///  | |||
///  | |||
static final String assetsImagesRedPacketBg = 'assets/images/red_packet_bg.png'; | |||
///  | |||
static final String assetsImagesGiftShow23 = 'assets/images/gift_show_2_3.png'; | |||
///  | |||
static final String assetsImagesExtUnknown = 'assets/images/ext_unknown.png'; | |||
///  | |||
static final String assetsImagesCoin = 'assets/images/coin.png'; | |||
///  | |||
static final String assetsImagesGiftAnim3 = 'assets/images/gift_anim_3.gif'; | |||
///  | |||
static final String assetsImagesGiftAnim2 = 'assets/images/gift_anim_2.gif'; | |||
///  | |||
static final String assetsImagesGift1 = 'assets/images/gift_1.png'; | |||
///  | |||
static final String assetsImagesBack = 'assets/images/back.png'; | |||
///  | |||
static final String assetsImagesGiftShow22 = 'assets/images/gift_show_2_2.png'; | |||
///  | |||
static final String assetsImagesGift3 = 'assets/images/gift_3.png'; | |||
///  | |||
static final String assetsImagesIcQuickScan = 'assets/images/ic_quick_scan.png'; | |||
///  | |||
static final String assetsImagesImgTranslationIcon = 'assets/images/img_translation_icon.png'; | |||
///  | |||
static final String assetsImagesIcBottleMsg = 'assets/images/ic_bottle_msg.png'; | |||
///  | |||
static final String assetsImagesGiftAnim1 = 'assets/images/gift_anim_1.gif'; | |||
///  | |||
static final String assetsImagesBg = 'assets/images/bg.png'; | |||
///  | |||
static final String assetsImagesGift2 = 'assets/images/gift_2.png'; | |||
///  | |||
static final String assetsImagesExtTxt = 'assets/images/ext_txt.png'; | |||
///  | |||
static final String assetsImagesGiftShow21 = 'assets/images/gift_show_2_1.png'; | |||
///  | |||
static final String assetsImagesChatEmoji = 'assets/images/chat/emoji.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatOnion = 'assets/images/chat/onion.png'; | |||
///  | |||
static final String assetsImagesChatIcon1 = 'assets/images/chat/icon1.png'; | |||
///  | |||
static final String assetsImagesChatIcon2 = 'assets/images/chat/icon2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon3 = 'assets/images/chat/icon3.png'; | |||
///  | |||
static final String assetsImagesChatIcon4 = 'assets/images/chat/icon4.png'; | |||
///  | |||
static final String assetsImagesChatIcon5 = 'assets/images/chat/icon5.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon2 = 'assets/images/chat/icon2.png'; | |||
///  | |||
static final String assetsImagesChatIcon6 = 'assets/images/chat/icon6.png'; | |||
///  | |||
static final String assetsImagesChatOnion = 'assets/images/chat/onion.png'; | |||
///  | |||
static final String assetsImagesLoginDelete = 'assets/images/login/delete.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon1 = 'assets/images/login/dly_icon1.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon2 = 'assets/images/login/dly_icon2.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon3 = 'assets/images/login/dly_icon3.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon4 = 'assets/images/login/dly_icon4.png'; | |||
///  | |||
static final String assetsImagesLoginDlyLogo = 'assets/images/login/dly_logo.png'; | |||
///  | |||
static final String assetsImagesLoginLock = 'assets/images/login/lock.png'; | |||
///  | |||
static final String assetsImagesLoginMoney = 'assets/images/login/money.png'; | |||
///  | |||
static final String assetsImagesLoginRzzx = 'assets/images/login/rzzx.png'; | |||
///  | |||
static final String assetsImagesLoginSYBg = 'assets/images/login/SY_bg.png'; | |||
///  | |||
static final String assetsImagesLoginSYLogo = 'assets/images/login/SY_logo.png'; | |||
///  | |||
///  | |||
static final String assetsImagesChatIcon5 = 'assets/images/chat/icon5.png'; | |||
///  | |||
static final String assetsImagesChatIcon4 = 'assets/images/chat/icon4.png'; | |||
///  | |||
static final String assetsImagesLoginVipWx = 'assets/images/login/vip_wx.png'; | |||
///  | |||
static final String assetsImagesLoginVipLogio = 'assets/images/login/vip_logio.png'; | |||
///  | |||
static final String assetsImagesLoginVipOther = 'assets/images/login/vip_other.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginLock = 'assets/images/login/lock.png'; | |||
///  | |||
static final String assetsImagesLoginVipRect1 = 'assets/images/login/vip_rect1.png'; | |||
///  | |||
static final String assetsImagesLoginVipRect2 = 'assets/images/login/vip_rect2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipRect3 = 'assets/images/login/vip_rect3.png'; | |||
///  | |||
static final String assetsImagesLoginVipWx = 'assets/images/login/vip_wx.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginVipRect2 = 'assets/images/login/vip_rect2.png'; | |||
///  | |||
static final String assetsImagesLoginVipZfb = 'assets/images/login/vip_zfb.png'; | |||
///  | |||
static final String assetsImagesLoginXzxbFemale = 'assets/images/login/xzxb_female.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginDlyIcon3 = 'assets/images/login/dly_icon3.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon2 = 'assets/images/login/dly_icon2.png'; | |||
///  | |||
static final String assetsImagesLoginSYBg = 'assets/images/login/SY_bg.png'; | |||
///  | |||
static final String assetsImagesLoginDlyLogo = 'assets/images/login/dly_logo.png'; | |||
///  | |||
static final String assetsImagesLoginVipOther = 'assets/images/login/vip_other.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon1 = 'assets/images/login/dly_icon1.png'; | |||
///  | |||
static final String assetsImagesLoginRzzx = 'assets/images/login/rzzx.png'; | |||
///  | |||
static final String assetsImagesLoginDlyIcon4 = 'assets/images/login/dly_icon4.png'; | |||
///  | |||
static final String assetsImagesLoginMoney = 'assets/images/login/money.png'; | |||
///  | |||
static final String assetsImagesLoginSYLogo = 'assets/images/login/SY_logo.png'; | |||
///  | |||
static final String assetsImagesLoginDelete = 'assets/images/login/delete.png'; | |||
///  | |||
static final String assetsImagesLoginXzxbMale = 'assets/images/login/xzxb_male.png'; | |||
///  | |||
///  | |||
static final String assetsImagesLoginXzxbFemale = 'assets/images/login/xzxb_female.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon8 = 'assets/images/park/qz_icon8.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon1 = 'assets/images/park/qz_icon1.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon2 = 'assets/images/park/qz_icon2.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon3 = 'assets/images/park/qz_icon3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon7 = 'assets/images/park/qz_icon7.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon6 = 'assets/images/park/qz_icon6.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon4 = 'assets/images/park/qz_icon4.png'; | |||
///  | |||
///  | |||
static final String assetsImagesParkQzIcon5 = 'assets/images/park/qz_icon5.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon6 = 'assets/images/park/qz_icon6.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon7 = 'assets/images/park/qz_icon7.png'; | |||
///  | |||
static final String assetsImagesParkQzIcon8 = 'assets/images/park/qz_icon8.png'; | |||
///  | |||
static final String assetsImagesStickerSticker1 = 'assets/images/sticker/sticker_1.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker10 = 'assets/images/sticker/sticker_10.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker11 = 'assets/images/sticker/sticker_11.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker7 = 'assets/images/sticker/sticker_7.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker6 = 'assets/images/sticker/sticker_6.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker10 = 'assets/images/sticker/sticker_10.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker12 = 'assets/images/sticker/sticker_12.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker4 = 'assets/images/sticker/sticker_4.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker5 = 'assets/images/sticker/sticker_5.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker13 = 'assets/images/sticker/sticker_13.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker17 = 'assets/images/sticker/sticker_17.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker1 = 'assets/images/sticker/sticker_1.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker16 = 'assets/images/sticker/sticker_16.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker14 = 'assets/images/sticker/sticker_14.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker28 = 'assets/images/sticker/sticker_28.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker2 = 'assets/images/sticker/sticker_2.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker3 = 'assets/images/sticker/sticker_3.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker29 = 'assets/images/sticker/sticker_29.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker15 = 'assets/images/sticker/sticker_15.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker16 = 'assets/images/sticker/sticker_16.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker17 = 'assets/images/sticker/sticker_17.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker18 = 'assets/images/sticker/sticker_18.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker19 = 'assets/images/sticker/sticker_19.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker2 = 'assets/images/sticker/sticker_2.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker20 = 'assets/images/sticker/sticker_20.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker21 = 'assets/images/sticker/sticker_21.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker22 = 'assets/images/sticker/sticker_22.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker23 = 'assets/images/sticker/sticker_23.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker24 = 'assets/images/sticker/sticker_24.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker30 = 'assets/images/sticker/sticker_30.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker25 = 'assets/images/sticker/sticker_25.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker26 = 'assets/images/sticker/sticker_26.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker19 = 'assets/images/sticker/sticker_19.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker27 = 'assets/images/sticker/sticker_27.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker28 = 'assets/images/sticker/sticker_28.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker29 = 'assets/images/sticker/sticker_29.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker3 = 'assets/images/sticker/sticker_3.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker30 = 'assets/images/sticker/sticker_30.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker4 = 'assets/images/sticker/sticker_4.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker5 = 'assets/images/sticker/sticker_5.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker6 = 'assets/images/sticker/sticker_6.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker7 = 'assets/images/sticker/sticker_7.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker26 = 'assets/images/sticker/sticker_26.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker22 = 'assets/images/sticker/sticker_22.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker8 = 'assets/images/sticker/sticker_8.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker9 = 'assets/images/sticker/sticker_9.gif'; | |||
///  | |||
///  | |||
static final String assetsImagesStickerSticker23 = 'assets/images/sticker/sticker_23.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker21 = 'assets/images/sticker/sticker_21.gif'; | |||
///  | |||
static final String assetsImagesStickerSticker20 = 'assets/images/sticker/sticker_20.gif'; | |||
///  | |||
static final String assetsImagesVipHyBg = 'assets/images/vip/hy_bg.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyTj = 'assets/images/vip/hy_tj.png'; | |||
///  | |||
static final String assetsImagesVipHyXz = 'assets/images/vip/hy_xz.png'; | |||
///  | |||
static final String assetsImagesVipHyCjhy = 'assets/images/vip/hy_cjhy.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyHy = 'assets/images/vip/hy_hy.png'; | |||
///  | |||
static final String assetsImagesVipHyTj = 'assets/images/vip/hy_tj.png'; | |||
///  | |||
///  | |||
static final String assetsImagesVipHyTq = 'assets/images/vip/hy_tq.png'; | |||
///  | |||
static final String assetsImagesVipHyXz = 'assets/images/vip/hy_xz.png'; | |||
///  | |||
static final String assetsImagesEmojiface1 = 'assets/images/emojiface/1.png'; | |||
///  | |||
static final String assetsImagesEmojiface10 = 'assets/images/emojiface/10.png'; | |||
///  | |||
static final String assetsImagesEmojiface11 = 'assets/images/emojiface/11.png'; | |||
///  | |||
static final String assetsImagesEmojiface12 = 'assets/images/emojiface/12.png'; | |||
///  | |||
static final String assetsImagesEmojiface13 = 'assets/images/emojiface/13.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface88 = 'assets/images/emojiface/88.png'; | |||
///  | |||
static final String assetsImagesEmojiface77 = 'assets/images/emojiface/77.png'; | |||
///  | |||
static final String assetsImagesEmojiface63 = 'assets/images/emojiface/63.png'; | |||
///  | |||
static final String assetsImagesEmojiface62 = 'assets/images/emojiface/62.png'; | |||
///  | |||
static final String assetsImagesEmojiface76 = 'assets/images/emojiface/76.png'; | |||
///  | |||
static final String assetsImagesEmojiface89 = 'assets/images/emojiface/89.png'; | |||
///  | |||
static final String assetsImagesEmojiface60 = 'assets/images/emojiface/60.png'; | |||
///  | |||
static final String assetsImagesEmojiface74 = 'assets/images/emojiface/74.png'; | |||
///  | |||
static final String assetsImagesEmojiface48 = 'assets/images/emojiface/48.png'; | |||
///  | |||
static final String assetsImagesEmojiface49 = 'assets/images/emojiface/49.png'; | |||
///  | |||
static final String assetsImagesEmojiface75 = 'assets/images/emojiface/75.png'; | |||
///  | |||
static final String assetsImagesEmojiface61 = 'assets/images/emojiface/61.png'; | |||
///  | |||
static final String assetsImagesEmojiface59 = 'assets/images/emojiface/59.png'; | |||
///  | |||
static final String assetsImagesEmojiface65 = 'assets/images/emojiface/65.png'; | |||
///  | |||
static final String assetsImagesEmojiface71 = 'assets/images/emojiface/71.png'; | |||
///  | |||
static final String assetsImagesEmojiface70 = 'assets/images/emojiface/70.png'; | |||
///  | |||
static final String assetsImagesEmojiface64 = 'assets/images/emojiface/64.png'; | |||
///  | |||
static final String assetsImagesEmojiface58 = 'assets/images/emojiface/58.png'; | |||
///  | |||
static final String assetsImagesEmojiface8 = 'assets/images/emojiface/8.png'; | |||
///  | |||
static final String assetsImagesEmojiface72 = 'assets/images/emojiface/72.png'; | |||
///  | |||
static final String assetsImagesEmojiface66 = 'assets/images/emojiface/66.png'; | |||
///  | |||
static final String assetsImagesEmojiface67 = 'assets/images/emojiface/67.png'; | |||
///  | |||
static final String assetsImagesEmojiface73 = 'assets/images/emojiface/73.png'; | |||
///  | |||
static final String assetsImagesEmojiface9 = 'assets/images/emojiface/9.png'; | |||
///  | |||
static final String assetsImagesEmojiface14 = 'assets/images/emojiface/14.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface28 = 'assets/images/emojiface/28.png'; | |||
///  | |||
static final String assetsImagesEmojiface29 = 'assets/images/emojiface/29.png'; | |||
///  | |||
static final String assetsImagesEmojiface15 = 'assets/images/emojiface/15.png'; | |||
///  | |||
static final String assetsImagesEmojiface16 = 'assets/images/emojiface/16.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface17 = 'assets/images/emojiface/17.png'; | |||
///  | |||
static final String assetsImagesEmojiface18 = 'assets/images/emojiface/18.png'; | |||
///  | |||
static final String assetsImagesEmojiface19 = 'assets/images/emojiface/19.png'; | |||
///  | |||
static final String assetsImagesEmojiface2 = 'assets/images/emojiface/2.png'; | |||
///  | |||
static final String assetsImagesEmojiface20 = 'assets/images/emojiface/20.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface16 = 'assets/images/emojiface/16.png'; | |||
///  | |||
static final String assetsImagesEmojiface12 = 'assets/images/emojiface/12.png'; | |||
///  | |||
static final String assetsImagesEmojiface13 = 'assets/images/emojiface/13.png'; | |||
///  | |||
static final String assetsImagesEmojiface39 = 'assets/images/emojiface/39.png'; | |||
///  | |||
static final String assetsImagesEmojiface11 = 'assets/images/emojiface/11.png'; | |||
///  | |||
static final String assetsImagesEmojiface10 = 'assets/images/emojiface/10.png'; | |||
///  | |||
static final String assetsImagesEmojiface38 = 'assets/images/emojiface/38.png'; | |||
///  | |||
static final String assetsImagesEmojiface35 = 'assets/images/emojiface/35.png'; | |||
///  | |||
static final String assetsImagesEmojiface21 = 'assets/images/emojiface/21.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface20 = 'assets/images/emojiface/20.png'; | |||
///  | |||
static final String assetsImagesEmojiface34 = 'assets/images/emojiface/34.png'; | |||
///  | |||
static final String assetsImagesEmojiface22 = 'assets/images/emojiface/22.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface36 = 'assets/images/emojiface/36.png'; | |||
///  | |||
static final String assetsImagesEmojiface37 = 'assets/images/emojiface/37.png'; | |||
///  | |||
static final String assetsImagesEmojiface23 = 'assets/images/emojiface/23.png'; | |||
///  | |||
static final String assetsImagesEmojiface24 = 'assets/images/emojiface/24.png'; | |||
///  | |||
static final String assetsImagesEmojiface25 = 'assets/images/emojiface/25.png'; | |||
///  | |||
static final String assetsImagesEmojiface26 = 'assets/images/emojiface/26.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface27 = 'assets/images/emojiface/27.png'; | |||
///  | |||
static final String assetsImagesEmojiface28 = 'assets/images/emojiface/28.png'; | |||
///  | |||
static final String assetsImagesEmojiface29 = 'assets/images/emojiface/29.png'; | |||
///  | |||
static final String assetsImagesEmojiface3 = 'assets/images/emojiface/3.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface33 = 'assets/images/emojiface/33.png'; | |||
///  | |||
static final String assetsImagesEmojiface32 = 'assets/images/emojiface/32.png'; | |||
///  | |||
static final String assetsImagesEmojiface26 = 'assets/images/emojiface/26.png'; | |||
///  | |||
static final String assetsImagesEmojiface18 = 'assets/images/emojiface/18.png'; | |||
///  | |||
static final String assetsImagesEmojiface30 = 'assets/images/emojiface/30.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface24 = 'assets/images/emojiface/24.png'; | |||
///  | |||
static final String assetsImagesEmojiface25 = 'assets/images/emojiface/25.png'; | |||
///  | |||
static final String assetsImagesEmojiface31 = 'assets/images/emojiface/31.png'; | |||
///  | |||
static final String assetsImagesEmojiface32 = 'assets/images/emojiface/32.png'; | |||
///  | |||
static final String assetsImagesEmojiface33 = 'assets/images/emojiface/33.png'; | |||
///  | |||
static final String assetsImagesEmojiface34 = 'assets/images/emojiface/34.png'; | |||
///  | |||
static final String assetsImagesEmojiface35 = 'assets/images/emojiface/35.png'; | |||
///  | |||
static final String assetsImagesEmojiface36 = 'assets/images/emojiface/36.png'; | |||
///  | |||
static final String assetsImagesEmojiface37 = 'assets/images/emojiface/37.png'; | |||
///  | |||
static final String assetsImagesEmojiface38 = 'assets/images/emojiface/38.png'; | |||
///  | |||
static final String assetsImagesEmojiface39 = 'assets/images/emojiface/39.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface19 = 'assets/images/emojiface/19.png'; | |||
///  | |||
static final String assetsImagesEmojiface81 = 'assets/images/emojiface/81.png'; | |||
///  | |||
static final String assetsImagesEmojiface4 = 'assets/images/emojiface/4.png'; | |||
///  | |||
static final String assetsImagesEmojiface40 = 'assets/images/emojiface/40.png'; | |||
///  | |||
static final String assetsImagesEmojiface41 = 'assets/images/emojiface/41.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface56 = 'assets/images/emojiface/56.png'; | |||
///  | |||
static final String assetsImagesEmojiface42 = 'assets/images/emojiface/42.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface43 = 'assets/images/emojiface/43.png'; | |||
///  | |||
static final String assetsImagesEmojiface44 = 'assets/images/emojiface/44.png'; | |||
///  | |||
static final String assetsImagesEmojiface45 = 'assets/images/emojiface/45.png'; | |||
///  | |||
static final String assetsImagesEmojiface46 = 'assets/images/emojiface/46.png'; | |||
///  | |||
static final String assetsImagesEmojiface47 = 'assets/images/emojiface/47.png'; | |||
///  | |||
static final String assetsImagesEmojiface48 = 'assets/images/emojiface/48.png'; | |||
///  | |||
static final String assetsImagesEmojiface49 = 'assets/images/emojiface/49.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface5 = 'assets/images/emojiface/5.png'; | |||
///  | |||
static final String assetsImagesEmojiface50 = 'assets/images/emojiface/50.png'; | |||
///  | |||
static final String assetsImagesEmojiface51 = 'assets/images/emojiface/51.png'; | |||
///  | |||
static final String assetsImagesEmojiface52 = 'assets/images/emojiface/52.png'; | |||
///  | |||
static final String assetsImagesEmojiface53 = 'assets/images/emojiface/53.png'; | |||
///  | |||
static final String assetsImagesEmojiface54 = 'assets/images/emojiface/54.png'; | |||
///  | |||
static final String assetsImagesEmojiface55 = 'assets/images/emojiface/55.png'; | |||
///  | |||
static final String assetsImagesEmojiface56 = 'assets/images/emojiface/56.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface57 = 'assets/images/emojiface/57.png'; | |||
///  | |||
static final String assetsImagesEmojiface58 = 'assets/images/emojiface/58.png'; | |||
///  | |||
static final String assetsImagesEmojiface59 = 'assets/images/emojiface/59.png'; | |||
///  | |||
static final String assetsImagesEmojiface6 = 'assets/images/emojiface/6.png'; | |||
///  | |||
static final String assetsImagesEmojiface60 = 'assets/images/emojiface/60.png'; | |||
///  | |||
static final String assetsImagesEmojiface61 = 'assets/images/emojiface/61.png'; | |||
///  | |||
static final String assetsImagesEmojiface62 = 'assets/images/emojiface/62.png'; | |||
///  | |||
static final String assetsImagesEmojiface63 = 'assets/images/emojiface/63.png'; | |||
///  | |||
static final String assetsImagesEmojiface64 = 'assets/images/emojiface/64.png'; | |||
///  | |||
static final String assetsImagesEmojiface65 = 'assets/images/emojiface/65.png'; | |||
///  | |||
static final String assetsImagesEmojiface66 = 'assets/images/emojiface/66.png'; | |||
///  | |||
static final String assetsImagesEmojiface67 = 'assets/images/emojiface/67.png'; | |||
///  | |||
static final String assetsImagesEmojiface68 = 'assets/images/emojiface/68.png'; | |||
///  | |||
static final String assetsImagesEmojiface69 = 'assets/images/emojiface/69.png'; | |||
///  | |||
static final String assetsImagesEmojiface7 = 'assets/images/emojiface/7.png'; | |||
///  | |||
static final String assetsImagesEmojiface70 = 'assets/images/emojiface/70.png'; | |||
///  | |||
static final String assetsImagesEmojiface71 = 'assets/images/emojiface/71.png'; | |||
///  | |||
static final String assetsImagesEmojiface72 = 'assets/images/emojiface/72.png'; | |||
///  | |||
static final String assetsImagesEmojiface73 = 'assets/images/emojiface/73.png'; | |||
///  | |||
static final String assetsImagesEmojiface74 = 'assets/images/emojiface/74.png'; | |||
///  | |||
static final String assetsImagesEmojiface75 = 'assets/images/emojiface/75.png'; | |||
///  | |||
static final String assetsImagesEmojiface76 = 'assets/images/emojiface/76.png'; | |||
///  | |||
static final String assetsImagesEmojiface77 = 'assets/images/emojiface/77.png'; | |||
///  | |||
static final String assetsImagesEmojiface78 = 'assets/images/emojiface/78.png'; | |||
///  | |||
static final String assetsImagesEmojiface79 = 'assets/images/emojiface/79.png'; | |||
///  | |||
static final String assetsImagesEmojiface8 = 'assets/images/emojiface/8.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface80 = 'assets/images/emojiface/80.png'; | |||
///  | |||
static final String assetsImagesEmojiface81 = 'assets/images/emojiface/81.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface82 = 'assets/images/emojiface/82.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface41 = 'assets/images/emojiface/41.png'; | |||
///  | |||
static final String assetsImagesEmojiface55 = 'assets/images/emojiface/55.png'; | |||
///  | |||
static final String assetsImagesEmojiface7 = 'assets/images/emojiface/7.png'; | |||
///  | |||
static final String assetsImagesEmojiface69 = 'assets/images/emojiface/69.png'; | |||
///  | |||
static final String assetsImagesEmojiface68 = 'assets/images/emojiface/68.png'; | |||
///  | |||
static final String assetsImagesEmojiface54 = 'assets/images/emojiface/54.png'; | |||
///  | |||
static final String assetsImagesEmojiface6 = 'assets/images/emojiface/6.png'; | |||
///  | |||
static final String assetsImagesEmojiface40 = 'assets/images/emojiface/40.png'; | |||
///  | |||
static final String assetsImagesEmojiface83 = 'assets/images/emojiface/83.png'; | |||
///  | |||
static final String assetsImagesEmojiface84 = 'assets/images/emojiface/84.png'; | |||
///  | |||
static final String assetsImagesEmojiface85 = 'assets/images/emojiface/85.png'; | |||
///  | |||
static final String assetsImagesEmojiface86 = 'assets/images/emojiface/86.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface87 = 'assets/images/emojiface/87.png'; | |||
///  | |||
static final String assetsImagesEmojiface88 = 'assets/images/emojiface/88.png'; | |||
///  | |||
static final String assetsImagesEmojiface89 = 'assets/images/emojiface/89.png'; | |||
///  | |||
static final String assetsImagesEmojiface9 = 'assets/images/emojiface/9.png'; | |||
///  | |||
///  | |||
static final String assetsImagesEmojiface78 = 'assets/images/emojiface/78.png'; | |||
///  | |||
static final String assetsImagesEmojiface44 = 'assets/images/emojiface/44.png'; | |||
///  | |||
static final String assetsImagesEmojiface2 = 'assets/images/emojiface/2.png'; | |||
///  | |||
static final String assetsImagesEmojiface50 = 'assets/images/emojiface/50.png'; | |||
///  | |||
static final String assetsImagesEmojiface3 = 'assets/images/emojiface/3.png'; | |||
///  | |||
static final String assetsImagesEmojiface51 = 'assets/images/emojiface/51.png'; | |||
///  | |||
static final String assetsImagesEmojiface45 = 'assets/images/emojiface/45.png'; | |||
///  | |||
static final String assetsImagesEmojiface79 = 'assets/images/emojiface/79.png'; | |||
///  | |||
static final String assetsImagesEmojiface86 = 'assets/images/emojiface/86.png'; | |||
///  | |||
static final String assetsImagesEmojiface90 = 'assets/images/emojiface/90.png'; | |||
///  | |||
static final String assetsImagesEmojiface84 = 'assets/images/emojiface/84.png'; | |||
///  | |||
static final String assetsImagesEmojiface53 = 'assets/images/emojiface/53.png'; | |||
///  | |||
static final String assetsImagesEmojiface1 = 'assets/images/emojiface/1.png'; | |||
///  | |||
static final String assetsImagesEmojiface47 = 'assets/images/emojiface/47.png'; | |||
///  | |||
static final String assetsImagesEmojiface46 = 'assets/images/emojiface/46.png'; | |||
///  | |||
static final String assetsImagesEmojiface52 = 'assets/images/emojiface/52.png'; | |||
///  | |||
static final String assetsImagesEmojiface85 = 'assets/images/emojiface/85.png'; | |||
} |
@@ -1151,14 +1151,14 @@ class CustomUI { | |||
); | |||
} | |||
static PreferredSizeWidget buildSearchButton(BuildContext context, callback) { | |||
static PreferredSizeWidget buildSearchButton(BuildContext context, callback,{double bottom=14}) { | |||
return PreferredSize( | |||
preferredSize: Size.fromHeight(49), | |||
child: InkWell( | |||
onTap: callback, | |||
child: Container( | |||
alignment: Alignment.center, | |||
margin: EdgeInsets.only(bottom: 14, left: 12.5, right: 12.5), | |||
margin: EdgeInsets.only(bottom: bottom, left: 12.5, right: 12.5), | |||
height: 35, | |||
decoration: BoxDecoration( | |||
color: const Color(0xFFEEEEEE), | |||
@@ -87,7 +87,7 @@ class HttpUtil { | |||
return response; // continue | |||
}, onError: (DioError e) async { | |||
// Do something with response error | |||
showToast(I18n.of(LoadingManage.context).net_error); | |||
showToast(I18n.of(Constants.getCurrentContext()).net_error); | |||
return e; //continue | |||
})); | |||
} | |||
@@ -172,7 +172,7 @@ class HttpUtil { | |||
} | |||
print('post请求发生错误:$e'); | |||
if (isShowLoading) LoadingManage().closeLoading(); | |||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||
if (failback != null) failback(); | |||
} | |||
return response; | |||
@@ -5,6 +5,7 @@ | |||
import 'package:flutter/material.dart'; | |||
import 'package:chat/utils/my_dialog.dart' as myDialog; | |||
import 'package:chat/data/constants.dart'; | |||
class LoadingManage { | |||
//私有构造函数 | |||
@@ -16,10 +17,9 @@ class LoadingManage { | |||
//工厂构造函数 | |||
factory LoadingManage() => _singleton; | |||
static BuildContext context; | |||
showLoading() { | |||
myDialog.showDialog( | |||
context: context, | |||
context: Constants.getCurrentContext(), | |||
barrierDismissible: true, | |||
builder: (BuildContext context) { | |||
return LoadingDialog(); | |||
@@ -27,7 +27,7 @@ class LoadingManage { | |||
} | |||
closeLoading() { | |||
Navigator.of(context).pop(); | |||
Constants.getCurrentState().pop(); | |||
} | |||
} | |||
@@ -9,7 +9,6 @@ import 'package:chat/data/constants.dart'; | |||
import 'package:chat/data/group_data_mgr.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/proto/all.pbserver.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/utils/net_state_util.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:chat/utils/upload_util.dart'; | |||
@@ -164,7 +163,7 @@ class NetWork { | |||
} else { | |||
_stateBloc.addState(ChatState.loginFailed); | |||
print('登录失败${msgContent.errorCode}'); | |||
showToast(I18n.of(LoadingManage.context).fail); | |||
showToast(I18n.of(Constants.getCurrentContext()).fail); | |||
} | |||
} else if (msgId == 3) { | |||
//用户登出,其他设备替换 | |||
@@ -134,7 +134,7 @@ class AppNavigator { | |||
//客服 | |||
static pushServicePage(BuildContext context, {questionIndex = -1}) async { | |||
AppNavigator.push(context, ServiceCenterPage(questionIndex)); | |||
AppNavigator.push(context, ServiceCenterPage(questionIndex : questionIndex)); | |||
} | |||
//群成员列表 | |||
@@ -1,3 +1,5 @@ | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
@@ -38,12 +40,12 @@ class BlacklistMgr { | |||
//判断是否被别人拉黑或者拉黑别人 | |||
static bool isBlack(int userId) { | |||
if (isBlaklistMe(userId)) { | |||
showToast(I18n.of(LoadingManage.context).you_are_blaklisted); | |||
showToast(I18n.of(Constants.getCurrentContext()).you_are_blaklisted); | |||
return true; | |||
} | |||
if (BlacklistMgr.isInMyblaklist(userId)) { | |||
showToast(I18n.of(LoadingManage.context).reject_message); | |||
showToast(I18n.of(Constants.getCurrentContext()).reject_message); | |||
return true; | |||
} | |||
return false; | |||
@@ -1,7 +1,7 @@ | |||
import 'package:chat/data/UserData.dart'; | |||
import 'package:chat/models/UserInfo.dart'; | |||
import 'package:chat/models/ref_name_provider.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/utils/sql_model.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:lpinyin/lpinyin.dart'; | |||
@@ -39,7 +39,7 @@ class FriendModel { | |||
} | |||
updataRefName() { | |||
refName = Provider.of<RefNameProvider>(LoadingManage.context, listen: false) | |||
refName = Provider.of<RefNameProvider>(Constants.getCurrentContext(), listen: false) | |||
.getRefName(friendId, name); | |||
nameTag = getNameTag(); | |||
} | |||
@@ -38,7 +38,7 @@ class BottomAreaAvoider extends StatefulWidget { | |||
/// Animation curve. Defaults to [defaultCurve] | |||
final Curve curve; | |||
ScrollController scrollTo; | |||
final ScrollController scrollTo; | |||
BottomAreaAvoider({ | |||
Key key, | |||
@@ -181,7 +181,7 @@ RenderObject findFocusedObject(RenderObject root) { | |||
final q = Queue<RenderObject>(); | |||
q.add(root); | |||
while (q.isNotEmpty) { | |||
final node = q.removeFirst(); | |||
final RenderObject node = q.removeFirst(); | |||
final config = SemanticsConfiguration(); | |||
node.describeSemanticsConfiguration(config); | |||
if (config.isFocused) { | |||
@@ -1,31 +1,23 @@ | |||
import 'dart:async'; | |||
import 'package:receive_sharing_intent/receive_sharing_intent.dart'; | |||
import 'MessageMgr.dart'; | |||
class ReceiveShareFile { | |||
static StreamSubscription _intentDataStreamSubscription; | |||
static List<SharedMediaFile> _sharedFiles; | |||
static String tempFilePath; | |||
static int mLastClickTime = 0; | |||
static final int TIME_INTERVAL = 3000; | |||
static int timeInterval = 3000; | |||
static void init() { | |||
// For sharing images coming from outside the app while the app is in the memory | |||
_intentDataStreamSubscription = ReceiveSharingIntent.getMediaStream() | |||
ReceiveSharingIntent.getMediaStream() | |||
.listen((List<SharedMediaFile> value) { | |||
// setState(() { | |||
// _sharedFiles = value; | |||
// print("Shared:" + (_sharedFiles?.map((f) => f.path)?.join(",") ?? "")); | |||
// }); | |||
// print('#### getfilePath ${value[0].path}'); | |||
if (currentIndex == 1) { | |||
int nowTime = DateTime.now().millisecondsSinceEpoch; | |||
if (nowTime - mLastClickTime > TIME_INTERVAL) { | |||
if (nowTime - mLastClickTime > timeInterval) { | |||
if (value != null && value.length > 0) { | |||
MessageMgr().emit(MessageMgr.RECEIVE_THIRD_SHARE, value[0].path); | |||
} | |||
@@ -51,7 +43,7 @@ class ReceiveShareFile { | |||
if (currentIndex == 1) { | |||
int nowTime = DateTime.now().millisecondsSinceEpoch; | |||
if (nowTime - mLastClickTime > TIME_INTERVAL) { | |||
if (nowTime - mLastClickTime > timeInterval) { | |||
// do something | |||
if (value != null && value.length > 0) { | |||
MessageMgr().emit(MessageMgr.RECEIVE_THIRD_SHARE, value[0].path); | |||
@@ -67,7 +59,6 @@ class ReceiveShareFile { | |||
}); | |||
// For sharing or opening urls/text coming from outside the app while the app is in the memory | |||
_intentDataStreamSubscription = | |||
ReceiveSharingIntent.getTextStream().listen((String value) { | |||
print('#### getfilePath $value '); | |||
// setState(() { | |||
@@ -5,7 +5,7 @@ import 'package:chat/models/ChatMsg.dart'; | |||
import 'package:chat/models/group_info_model.dart'; | |||
import 'package:chat/models/group_info_server_model.dart'; | |||
import 'package:chat/proto/all.pbserver.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:convert/convert.dart'; | |||
import 'package:dio/dio.dart'; | |||
@@ -224,12 +224,12 @@ class UploadUtil { | |||
return path; | |||
} else { | |||
msg.state = MsgState.DownloadFailed; | |||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||
return null; | |||
} | |||
} catch (e) { | |||
msg.state = MsgState.DownloadFailed; | |||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||
print(response.toString()); | |||
} | |||
} | |||
@@ -197,265 +197,268 @@ flutter: | |||
assets: | |||
# assets-generator-begin | |||
# assets/images/* | |||
- assets/images/back.png | |||
- assets/images/bg.png | |||
- assets/images/bofang.png | |||
- assets/images/chat_item_1.png | |||
- assets/images/chat_item_2.png | |||
- assets/images/chat_item_3.png | |||
- assets/images/chat_item_4.png | |||
- assets/images/chat_item_5.png | |||
- assets/images/chat_item_6.png | |||
- assets/images/chat_item_7.png | |||
- assets/images/coin.png | |||
- assets/images/ic_quick_search.png | |||
- assets/images/img_temp_share.png | |||
- assets/images/ic_tag.png | |||
- assets/images/default_nor_avatar.png | |||
- assets/images/server_icon.png | |||
- assets/images/ic_public_account.png | |||
- assets/images/ic_feeds.png | |||
- assets/images/daily_bg_1.png | |||
- assets/images/yqm_bg.png | |||
- assets/images/daily_bg_2.png | |||
- assets/images/daily_btn_1.png | |||
- assets/images/daily_btn_2.png | |||
- assets/images/daily_coin.png | |||
- assets/images/daily_icon.png | |||
- assets/images/default_nor_avatar.png | |||
- assets/images/ext_apk.png | |||
- assets/images/ext_excel.png | |||
- assets/images/img_fyj.png | |||
- assets/images/right_gray.png | |||
- assets/images/ic_group_chat.png | |||
- assets/images/img_temp_see.png | |||
- assets/images/ext_pdf.png | |||
- assets/images/ext_ppt.png | |||
- assets/images/ext_sound.png | |||
- assets/images/ext_txt.png | |||
- assets/images/ext_unknown.png | |||
- assets/images/ic_mini_program.png | |||
- assets/images/ic_shake_phone.png | |||
- assets/images/ic_game_entry.png | |||
- assets/images/daily_icon.png | |||
- assets/images/left_gray.png | |||
- assets/images/ic_social_circle.png | |||
- assets/images/ext_apk.png | |||
- assets/images/svip.png | |||
- assets/images/ic_qrcode_preview_tiny.png | |||
- assets/images/ic_album.png | |||
- assets/images/zhiwen.png | |||
- assets/images/net_error.png | |||
- assets/images/ic_emotions.png | |||
- assets/images/ext_video.png | |||
- assets/images/ext_word.png | |||
- assets/images/ext_zip.png | |||
- assets/images/gift_1.png | |||
- assets/images/gift_2.png | |||
- assets/images/gift_3.png | |||
- assets/images/gift_anim_1.gif | |||
- assets/images/gift_anim_2.gif | |||
- assets/images/gift_anim_3.gif | |||
- assets/images/gift_show_2_1.png | |||
- assets/images/gift_show_2_2.png | |||
- assets/images/gift_show_2_3.png | |||
- assets/images/gift_show_2_4.png | |||
- assets/images/img_temp_hy.png | |||
- assets/images/hand.png | |||
- assets/images/ic_album.png | |||
- assets/images/ic_bottle_msg.png | |||
- assets/images/ic_cards_wallet.png | |||
- assets/images/ic_collections.png | |||
- assets/images/ic_emotions.png | |||
- assets/images/ic_feeds.png | |||
- assets/images/ic_fengchao.png | |||
- assets/images/ic_file_transfer.png | |||
- assets/images/ic_game_entry.png | |||
- assets/images/ic_group_chat.png | |||
- assets/images/ic_mini_program.png | |||
- assets/images/ic_new_friend.png | |||
- assets/images/qianbao_bg.png | |||
- assets/images/img_splash_3.png | |||
- assets/images/img_update_bg.png | |||
- assets/images/daily_btn_1.png | |||
- assets/images/chat_item_4.png | |||
- assets/images/chat_item_5.png | |||
- assets/images/ic_people_nearby.png | |||
- assets/images/ic_public_account.png | |||
- assets/images/ic_qrcode_preview_tiny.png | |||
- assets/images/ic_quick_scan.png | |||
- assets/images/ic_quick_search.png | |||
- assets/images/ic_settings.png | |||
- assets/images/ic_shake_phone.png | |||
- assets/images/ic_shopping.png | |||
- assets/images/ic_social_circle.png | |||
- assets/images/ic_tag.png | |||
- assets/images/img_splash_2.png | |||
- assets/images/ic_tx_news.png | |||
- assets/images/ic_wallet.png | |||
- assets/images/ic_wx_games.png | |||
- assets/images/img_fyj.png | |||
- assets/images/service_icon.png | |||
- assets/images/daily_btn_2.png | |||
- assets/images/chat_item_7.png | |||
- assets/images/img_temp_qb.png | |||
- assets/images/img_travel_butler.png | |||
- assets/images/chat_item_6.png | |||
- assets/images/img_long_index.png | |||
- assets/images/img_splash_1.png | |||
- assets/images/img_splash_2.png | |||
- assets/images/img_splash_3.png | |||
- assets/images/img_temp_hy.png | |||
- assets/images/img_temp_qb.png | |||
- assets/images/daily_coin.png | |||
- assets/images/ic_new_friend.png | |||
- assets/images/ic_settings.png | |||
- assets/images/ic_cards_wallet.png | |||
- assets/images/chat_item_2.png | |||
- assets/images/chat_item_3.png | |||
- assets/images/robot.jpg | |||
- assets/images/ext_sound.png | |||
- assets/images/ext_zip.png | |||
- assets/images/chat_item_1.png | |||
- assets/images/img_temp_qd.png | |||
- assets/images/img_temp_see.png | |||
- assets/images/img_temp_share.png | |||
- assets/images/img_update_bg.png | |||
- assets/images/left_gray.png | |||
- assets/images/img_translation_butler.png | |||
- assets/images/left_white.png | |||
- assets/images/net_error.png | |||
- assets/images/qianbao_bg.png | |||
- assets/images/red_packet_bg.png | |||
- assets/images/right_gray.png | |||
- assets/images/voucher.png | |||
- assets/images/VIP.png | |||
- assets/images/ic_wallet.png | |||
- assets/images/right_white.png | |||
- assets/images/robot.jpg | |||
- assets/images/server_icon.png | |||
- assets/images/service_icon.png | |||
- assets/images/ic_collections.png | |||
- assets/images/gift_show_2_4.png | |||
- assets/images/ic_wx_games.png | |||
- assets/images/ic_shopping.png | |||
- assets/images/ic_fengchao.png | |||
- assets/images/ic_file_transfer.png | |||
- assets/images/suo.png | |||
- assets/images/svip.png | |||
- assets/images/VIP.png | |||
- assets/images/voucher.png | |||
- assets/images/yqm_bg.png | |||
- assets/images/zhiwen.png | |||
- assets/images/red_packet_bg.png | |||
- assets/images/gift_show_2_3.png | |||
- assets/images/ext_unknown.png | |||
- assets/images/coin.png | |||
- assets/images/gift_anim_3.gif | |||
- assets/images/gift_anim_2.gif | |||
- assets/images/gift_1.png | |||
- assets/images/back.png | |||
- assets/images/gift_show_2_2.png | |||
- assets/images/gift_3.png | |||
- assets/images/ic_quick_scan.png | |||
- assets/images/img_translation_icon.png | |||
- assets/images/ic_bottle_msg.png | |||
- assets/images/gift_anim_1.gif | |||
- assets/images/bg.png | |||
- assets/images/gift_2.png | |||
- assets/images/ext_txt.png | |||
- assets/images/gift_show_2_1.png | |||
# assets/images/chat/* | |||
- assets/images/chat/emoji.png | |||
- assets/images/chat/onion.png | |||
- assets/images/chat/icon1.png | |||
- assets/images/chat/icon2.png | |||
- assets/images/chat/icon3.png | |||
- assets/images/chat/icon4.png | |||
- assets/images/chat/icon5.png | |||
- assets/images/chat/icon2.png | |||
- assets/images/chat/icon6.png | |||
- assets/images/chat/onion.png | |||
- assets/images/chat/icon5.png | |||
- assets/images/chat/icon4.png | |||
# assets/images/login/* | |||
- assets/images/login/delete.png | |||
- assets/images/login/dly_icon1.png | |||
- assets/images/login/dly_icon2.png | |||
- assets/images/login/dly_icon3.png | |||
- assets/images/login/dly_icon4.png | |||
- assets/images/login/dly_logo.png | |||
- assets/images/login/lock.png | |||
- assets/images/login/money.png | |||
- assets/images/login/rzzx.png | |||
- assets/images/login/SY_bg.png | |||
- assets/images/login/SY_logo.png | |||
- assets/images/login/vip_wx.png | |||
- assets/images/login/vip_logio.png | |||
- assets/images/login/vip_other.png | |||
- assets/images/login/lock.png | |||
- assets/images/login/vip_rect1.png | |||
- assets/images/login/vip_rect2.png | |||
- assets/images/login/vip_rect3.png | |||
- assets/images/login/vip_wx.png | |||
- assets/images/login/vip_rect2.png | |||
- assets/images/login/vip_zfb.png | |||
- assets/images/login/xzxb_female.png | |||
- assets/images/login/dly_icon3.png | |||
- assets/images/login/dly_icon2.png | |||
- assets/images/login/SY_bg.png | |||
- assets/images/login/dly_logo.png | |||
- assets/images/login/vip_other.png | |||
- assets/images/login/dly_icon1.png | |||
- assets/images/login/rzzx.png | |||
- assets/images/login/dly_icon4.png | |||
- assets/images/login/money.png | |||
- assets/images/login/SY_logo.png | |||
- assets/images/login/delete.png | |||
- assets/images/login/xzxb_male.png | |||
- assets/images/login/xzxb_female.png | |||
# assets/images/park/* | |||
- assets/images/park/qz_icon8.png | |||
- assets/images/park/qz_icon1.png | |||
- assets/images/park/qz_icon2.png | |||
- assets/images/park/qz_icon3.png | |||
- assets/images/park/qz_icon7.png | |||
- assets/images/park/qz_icon6.png | |||
- assets/images/park/qz_icon4.png | |||
- assets/images/park/qz_icon5.png | |||
- assets/images/park/qz_icon6.png | |||
- assets/images/park/qz_icon7.png | |||
- assets/images/park/qz_icon8.png | |||
# assets/images/sticker/* | |||
- assets/images/sticker/sticker_1.gif | |||
- assets/images/sticker/sticker_10.gif | |||
- assets/images/sticker/sticker_11.gif | |||
- assets/images/sticker/sticker_7.gif | |||
- assets/images/sticker/sticker_6.gif | |||
- assets/images/sticker/sticker_10.gif | |||
- assets/images/sticker/sticker_12.gif | |||
- assets/images/sticker/sticker_4.gif | |||
- assets/images/sticker/sticker_5.gif | |||
- assets/images/sticker/sticker_13.gif | |||
- assets/images/sticker/sticker_17.gif | |||
- assets/images/sticker/sticker_1.gif | |||
- assets/images/sticker/sticker_16.gif | |||
- assets/images/sticker/sticker_14.gif | |||
- assets/images/sticker/sticker_28.gif | |||
- assets/images/sticker/sticker_2.gif | |||
- assets/images/sticker/sticker_3.gif | |||
- assets/images/sticker/sticker_29.gif | |||
- assets/images/sticker/sticker_15.gif | |||
- assets/images/sticker/sticker_16.gif | |||
- assets/images/sticker/sticker_17.gif | |||
- assets/images/sticker/sticker_18.gif | |||
- assets/images/sticker/sticker_19.gif | |||
- assets/images/sticker/sticker_2.gif | |||
- assets/images/sticker/sticker_20.gif | |||
- assets/images/sticker/sticker_21.gif | |||
- assets/images/sticker/sticker_22.gif | |||
- assets/images/sticker/sticker_23.gif | |||
- assets/images/sticker/sticker_24.gif | |||
- assets/images/sticker/sticker_30.gif | |||
- assets/images/sticker/sticker_25.gif | |||
- assets/images/sticker/sticker_26.gif | |||
- assets/images/sticker/sticker_19.gif | |||
- assets/images/sticker/sticker_27.gif | |||
- assets/images/sticker/sticker_28.gif | |||
- assets/images/sticker/sticker_29.gif | |||
- assets/images/sticker/sticker_3.gif | |||
- assets/images/sticker/sticker_30.gif | |||
- assets/images/sticker/sticker_4.gif | |||
- assets/images/sticker/sticker_5.gif | |||
- assets/images/sticker/sticker_6.gif | |||
- assets/images/sticker/sticker_7.gif | |||
- assets/images/sticker/sticker_26.gif | |||
- assets/images/sticker/sticker_22.gif | |||
- assets/images/sticker/sticker_8.gif | |||
- assets/images/sticker/sticker_9.gif | |||
- assets/images/sticker/sticker_23.gif | |||
- assets/images/sticker/sticker_21.gif | |||
- assets/images/sticker/sticker_20.gif | |||
# assets/images/vip/* | |||
- assets/images/vip/hy_bg.png | |||
- assets/images/vip/hy_tj.png | |||
- assets/images/vip/hy_xz.png | |||
- assets/images/vip/hy_cjhy.png | |||
- assets/images/vip/hy_hy.png | |||
- assets/images/vip/hy_tj.png | |||
- assets/images/vip/hy_tq.png | |||
- assets/images/vip/hy_xz.png | |||
# assets/images/emojiface/* | |||
- assets/images/emojiface/1.png | |||
- assets/images/emojiface/10.png | |||
- assets/images/emojiface/11.png | |||
- assets/images/emojiface/12.png | |||
- assets/images/emojiface/13.png | |||
- assets/images/emojiface/88.png | |||
- assets/images/emojiface/77.png | |||
- assets/images/emojiface/63.png | |||
- assets/images/emojiface/62.png | |||
- assets/images/emojiface/76.png | |||
- assets/images/emojiface/89.png | |||
- assets/images/emojiface/60.png | |||
- assets/images/emojiface/74.png | |||
- assets/images/emojiface/48.png | |||
- assets/images/emojiface/49.png | |||
- assets/images/emojiface/75.png | |||
- assets/images/emojiface/61.png | |||
- assets/images/emojiface/59.png | |||
- assets/images/emojiface/65.png | |||
- assets/images/emojiface/71.png | |||
- assets/images/emojiface/70.png | |||
- assets/images/emojiface/64.png | |||
- assets/images/emojiface/58.png | |||
- assets/images/emojiface/8.png | |||
- assets/images/emojiface/72.png | |||
- assets/images/emojiface/66.png | |||
- assets/images/emojiface/67.png | |||
- assets/images/emojiface/73.png | |||
- assets/images/emojiface/9.png | |||
- assets/images/emojiface/14.png | |||
- assets/images/emojiface/28.png | |||
- assets/images/emojiface/29.png | |||
- assets/images/emojiface/15.png | |||
- assets/images/emojiface/16.png | |||
- assets/images/emojiface/17.png | |||
- assets/images/emojiface/18.png | |||
- assets/images/emojiface/19.png | |||
- assets/images/emojiface/2.png | |||
- assets/images/emojiface/20.png | |||
- assets/images/emojiface/16.png | |||
- assets/images/emojiface/12.png | |||
- assets/images/emojiface/13.png | |||
- assets/images/emojiface/39.png | |||
- assets/images/emojiface/11.png | |||
- assets/images/emojiface/10.png | |||
- assets/images/emojiface/38.png | |||
- assets/images/emojiface/35.png | |||
- assets/images/emojiface/21.png | |||
- assets/images/emojiface/20.png | |||
- assets/images/emojiface/34.png | |||
- assets/images/emojiface/22.png | |||
- assets/images/emojiface/36.png | |||
- assets/images/emojiface/37.png | |||
- assets/images/emojiface/23.png | |||
- assets/images/emojiface/24.png | |||
- assets/images/emojiface/25.png | |||
- assets/images/emojiface/26.png | |||
- assets/images/emojiface/27.png | |||
- assets/images/emojiface/28.png | |||
- assets/images/emojiface/29.png | |||
- assets/images/emojiface/3.png | |||
- assets/images/emojiface/33.png | |||
- assets/images/emojiface/32.png | |||
- assets/images/emojiface/26.png | |||
- assets/images/emojiface/18.png | |||
- assets/images/emojiface/30.png | |||
- assets/images/emojiface/24.png | |||
- assets/images/emojiface/25.png | |||
- assets/images/emojiface/31.png | |||
- assets/images/emojiface/32.png | |||
- assets/images/emojiface/33.png | |||
- assets/images/emojiface/34.png | |||
- assets/images/emojiface/35.png | |||
- assets/images/emojiface/36.png | |||
- assets/images/emojiface/37.png | |||
- assets/images/emojiface/38.png | |||
- assets/images/emojiface/39.png | |||
- assets/images/emojiface/19.png | |||
- assets/images/emojiface/81.png | |||
- assets/images/emojiface/4.png | |||
- assets/images/emojiface/40.png | |||
- assets/images/emojiface/41.png | |||
- assets/images/emojiface/56.png | |||
- assets/images/emojiface/42.png | |||
- assets/images/emojiface/43.png | |||
- assets/images/emojiface/44.png | |||
- assets/images/emojiface/45.png | |||
- assets/images/emojiface/46.png | |||
- assets/images/emojiface/47.png | |||
- assets/images/emojiface/48.png | |||
- assets/images/emojiface/49.png | |||
- assets/images/emojiface/5.png | |||
- assets/images/emojiface/50.png | |||
- assets/images/emojiface/51.png | |||
- assets/images/emojiface/52.png | |||
- assets/images/emojiface/53.png | |||
- assets/images/emojiface/54.png | |||
- assets/images/emojiface/55.png | |||
- assets/images/emojiface/56.png | |||
- assets/images/emojiface/57.png | |||
- assets/images/emojiface/58.png | |||
- assets/images/emojiface/59.png | |||
- assets/images/emojiface/6.png | |||
- assets/images/emojiface/60.png | |||
- assets/images/emojiface/61.png | |||
- assets/images/emojiface/62.png | |||
- assets/images/emojiface/63.png | |||
- assets/images/emojiface/64.png | |||
- assets/images/emojiface/65.png | |||
- assets/images/emojiface/66.png | |||
- assets/images/emojiface/67.png | |||
- assets/images/emojiface/68.png | |||
- assets/images/emojiface/69.png | |||
- assets/images/emojiface/7.png | |||
- assets/images/emojiface/70.png | |||
- assets/images/emojiface/71.png | |||
- assets/images/emojiface/72.png | |||
- assets/images/emojiface/73.png | |||
- assets/images/emojiface/74.png | |||
- assets/images/emojiface/75.png | |||
- assets/images/emojiface/76.png | |||
- assets/images/emojiface/77.png | |||
- assets/images/emojiface/78.png | |||
- assets/images/emojiface/79.png | |||
- assets/images/emojiface/8.png | |||
- assets/images/emojiface/80.png | |||
- assets/images/emojiface/81.png | |||
- assets/images/emojiface/82.png | |||
- assets/images/emojiface/41.png | |||
- assets/images/emojiface/55.png | |||
- assets/images/emojiface/7.png | |||
- assets/images/emojiface/69.png | |||
- assets/images/emojiface/68.png | |||
- assets/images/emojiface/54.png | |||
- assets/images/emojiface/6.png | |||
- assets/images/emojiface/40.png | |||
- assets/images/emojiface/83.png | |||
- assets/images/emojiface/84.png | |||
- assets/images/emojiface/85.png | |||
- assets/images/emojiface/86.png | |||
- assets/images/emojiface/87.png | |||
- assets/images/emojiface/88.png | |||
- assets/images/emojiface/89.png | |||
- assets/images/emojiface/9.png | |||
- assets/images/emojiface/78.png | |||
- assets/images/emojiface/44.png | |||
- assets/images/emojiface/2.png | |||
- assets/images/emojiface/50.png | |||
- assets/images/emojiface/3.png | |||
- assets/images/emojiface/51.png | |||
- assets/images/emojiface/45.png | |||
- assets/images/emojiface/79.png | |||
- assets/images/emojiface/86.png | |||
- assets/images/emojiface/90.png | |||
- assets/images/emojiface/84.png | |||
- assets/images/emojiface/53.png | |||
- assets/images/emojiface/1.png | |||
- assets/images/emojiface/47.png | |||
- assets/images/emojiface/46.png | |||
- assets/images/emojiface/52.png | |||
- assets/images/emojiface/85.png | |||
# assets-generator-end | |||
# To add custom fonts to your application, add a fonts section here, | |||