@@ -0,0 +1,2 @@ | |||||
connection.project.dir= | |||||
eclipse.preferences.version=1 |
@@ -1,5 +1,5 @@ | |||||
import 'package:chat/generated/i18n.dart'; | 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:extended_text_library/extended_text_library.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
@@ -28,7 +28,7 @@ class EmojiGifText extends SpecialText { | |||||
imageHeight: size, | imageHeight: size, | ||||
start: start, | start: start, | ||||
fit: BoxFit.fill, | 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]); | // return Image.asset(EmojiGifUitl.instance.emojiMap[key]); | ||||
@@ -1,14 +1,14 @@ | |||||
import 'dart:io'; | import 'dart:io'; | ||||
import 'dart:typed_data'; | import 'dart:typed_data'; | ||||
import 'package:chat/chat/download_item.dart'; | |||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/models/ChatMsg.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:flutter/material.dart'; | ||||
import 'package:image_gallery_saver/image_gallery_saver.dart'; | import 'package:image_gallery_saver/image_gallery_saver.dart'; | ||||
import 'package:oktoast/oktoast.dart'; | import 'package:oktoast/oktoast.dart'; | ||||
import '../r.dart'; | |||||
class PhotoPage extends StatefulWidget { | class PhotoPage extends StatefulWidget { | ||||
final MsgModel msg; | final MsgModel msg; | ||||
@@ -20,12 +20,6 @@ class PhotoPage extends StatefulWidget { | |||||
class _PhotoPageState extends State<PhotoPage> | class _PhotoPageState extends State<PhotoPage> | ||||
with SingleTickerProviderStateMixin { | with SingleTickerProviderStateMixin { | ||||
AnimationController _controller; | AnimationController _controller; | ||||
Animation<Offset> _animation; | |||||
Offset _offset = Offset.zero; | |||||
double _scale = 1.0; | |||||
Offset _normalizedOffset; | |||||
double _previousScale; | |||||
double _kMinFlingVelocity = 600.0; | |||||
ImageProvider provider; | ImageProvider provider; | ||||
@@ -37,7 +31,6 @@ class _PhotoPageState extends State<PhotoPage> | |||||
_controller = AnimationController(vsync: this); | _controller = AnimationController(vsync: this); | ||||
_controller.addListener(() { | _controller.addListener(() { | ||||
setState(() { | setState(() { | ||||
_offset = _animation.value; | |||||
}); | }); | ||||
}); | }); | ||||
} | } | ||||
@@ -59,75 +52,50 @@ class _PhotoPageState extends State<PhotoPage> | |||||
super.dispose(); | 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 | @override | ||||
Widget build(BuildContext context) { | 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( | 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( | child: Stack( | ||||
children: <Widget>[ | 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( | Positioned( | ||||
right: 10, | right: 10, | ||||
bottom: 10, | bottom: 10, | ||||
@@ -141,14 +109,12 @@ class _PhotoPageState extends State<PhotoPage> | |||||
child: Icon(Icons.save_alt, color: Colors.white70), | child: Icon(Icons.save_alt, color: Colors.white70), | ||||
))) | ))) | ||||
], | ], | ||||
)), | |||||
)), | |||||
); | |||||
))); | |||||
} | } | ||||
saveToGallery() async { | saveToGallery() async { | ||||
if (widget.msg.localFile != null) { | if (widget.msg.localFile != null) { | ||||
var data= File(widget.msg.localFile).readAsBytesSync(); | |||||
var data = File(widget.msg.localFile).readAsBytesSync(); | |||||
ImageGallerySaver.saveImage(data).then((res) { | ImageGallerySaver.saveImage(data).then((res) { | ||||
print(res); | print(res); | ||||
if (res != null) { | if (res != null) { | ||||
@@ -13,7 +13,7 @@ import 'package:chat/proto/all.pbserver.dart'; | |||||
import 'package:chat/utils/ChargeMoney.dart'; | import 'package:chat/utils/ChargeMoney.dart'; | ||||
import 'package:chat/utils/CustomUI.dart'; | import 'package:chat/utils/CustomUI.dart'; | ||||
import 'package:chat/utils/HttpUtil.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/app_navigator.dart'; | ||||
import 'package:chat/utils/blacklist_mgr.dart'; | import 'package:chat/utils/blacklist_mgr.dart'; | ||||
import 'package:chat/utils/image_util.dart'; | import 'package:chat/utils/image_util.dart'; | ||||
@@ -33,13 +33,18 @@ import 'package:file_picker/file_picker.dart'; | |||||
import '../r.dart'; | import '../r.dart'; | ||||
class UtilKeyboard extends StatelessWidget { | |||||
class UtilKeyboard extends StatefulWidget { | |||||
final double keyboardHeight; | final double keyboardHeight; | ||||
final Function sendMsg; | final Function sendMsg; | ||||
final bool isGroup; | final bool isGroup; | ||||
UtilKeyboard({this.keyboardHeight, this.sendMsg, this.isGroup}); | UtilKeyboard({this.keyboardHeight, this.sendMsg, this.isGroup}); | ||||
bool isAuthority = false; | |||||
@override | |||||
_UtilKeyboardState createState() => _UtilKeyboardState(); | |||||
} | |||||
class _UtilKeyboardState extends State<UtilKeyboard> { | |||||
bool isAuthority = false; | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
@@ -58,7 +63,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
_sendVideo(context); | _sendVideo(context); | ||||
})); | })); | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
iconList.add( | iconList.add( | ||||
_buildOtherSelect(R.assetsImagesChatItem3, I18n.of(context).chat, () { | _buildOtherSelect(R.assetsImagesChatItem3, I18n.of(context).chat, () { | ||||
_audioChat(context); | _audioChat(context); | ||||
@@ -70,7 +75,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
_openMap(context); | _openMap(context); | ||||
})); | })); | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
iconList.add(Offstage( | iconList.add(Offstage( | ||||
offstage: !isShowRedPacket, | offstage: !isShowRedPacket, | ||||
child: _buildOtherSelect( | child: _buildOtherSelect( | ||||
@@ -91,7 +96,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
return Container( | return Container( | ||||
width: Screen.width, | width: Screen.width, | ||||
color: Colors.white, | color: Colors.white, | ||||
height: keyboardHeight, | |||||
height: widget.keyboardHeight, | |||||
padding: EdgeInsets.only(top: 20, bottom: 10, left: 20), | padding: EdgeInsets.only(top: 20, bottom: 10, left: 20), | ||||
alignment: Alignment.topLeft, | alignment: Alignment.topLeft, | ||||
child: Wrap(spacing: 10.0, runSpacing: 20.0, children: iconList)); | child: Wrap(spacing: 10.0, runSpacing: 20.0, children: iconList)); | ||||
@@ -99,7 +104,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
_showGiftSheet(BuildContext context) { | _showGiftSheet(BuildContext context) { | ||||
int friendId = 0; | int friendId = 0; | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
friendId = Provider.of<int>(context); | friendId = Provider.of<int>(context); | ||||
} | } | ||||
@@ -113,7 +118,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
builder: (BuildContext context) { | builder: (BuildContext context) { | ||||
return StatefulBuilder( | return StatefulBuilder( | ||||
builder: (BuildContext context, setBottomSheetState) { | builder: (BuildContext context, setBottomSheetState) { | ||||
return GiftSelectWidget(friendId, sendMsg); | |||||
return GiftSelectWidget(friendId, widget.sendMsg); | |||||
}, | }, | ||||
); | ); | ||||
}); | }); | ||||
@@ -135,16 +140,16 @@ class UtilKeyboard extends StatelessWidget { | |||||
var reslutStr = jsonEncode(result); | var reslutStr = jsonEncode(result); | ||||
int friendId = 0; | int friendId = 0; | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
friendId = Provider.of<int>(context); | friendId = Provider.of<int>(context); | ||||
} | } | ||||
var msg = MsgHandler.createSendMsg( | var msg = MsgHandler.createSendMsg( | ||||
ChatType.PlaceChatType, utf8.encode(reslutStr), | ChatType.PlaceChatType, utf8.encode(reslutStr), | ||||
friendId: friendId, | friendId: friendId, | ||||
channelType: | channelType: | ||||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
sendMsg(msg); | |||||
widget.sendMsg(msg); | |||||
} | } | ||||
} | } | ||||
@@ -284,7 +289,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
int aspectRatio = rect.width * 100 ~/ rect.height; | int aspectRatio = rect.width * 100 ~/ rect.height; | ||||
int friendId = 0; | int friendId = 0; | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
friendId = Provider.of<int>(context); | friendId = Provider.of<int>(context); | ||||
} | } | ||||
var msg = MsgHandler.createSendMsg(ChatType.ImageChatType, sendImg, | var msg = MsgHandler.createSendMsg(ChatType.ImageChatType, sendImg, | ||||
@@ -292,9 +297,9 @@ class UtilKeyboard extends StatelessWidget { | |||||
friendId: friendId, | friendId: friendId, | ||||
localFile: isNeedUpload ? imgFile.absolute.path : null, | localFile: isNeedUpload ? imgFile.absolute.path : null, | ||||
channelType: | channelType: | ||||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
sendMsg(msg); | |||||
widget.sendMsg(msg); | |||||
} | } | ||||
} | } | ||||
@@ -309,7 +314,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
} | } | ||||
int friendId = 0; | int friendId = 0; | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
friendId = Provider.of<int>(context); | friendId = Provider.of<int>(context); | ||||
} | } | ||||
@@ -332,9 +337,9 @@ class UtilKeyboard extends StatelessWidget { | |||||
friendId: friendId, | friendId: friendId, | ||||
localFile: file.path, | localFile: file.path, | ||||
channelType: | channelType: | ||||
isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||||
sendMsg(msg); | |||||
widget.sendMsg(msg); | |||||
} | } | ||||
@@ -349,7 +354,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
print('视频大小:$videoSize'); | print('视频大小:$videoSize'); | ||||
if (videoSize > 33 * 1024 * 1024) { | if (videoSize > 33 * 1024 * 1024) { | ||||
showToast(I18n.of(LoadingManage.context).video_more_big); | |||||
showToast(I18n.of(Constants.getCurrentContext()).video_more_big); | |||||
return; | return; | ||||
} | } | ||||
@@ -361,7 +366,7 @@ class UtilKeyboard extends StatelessWidget { | |||||
int aspectRatio = rect.width * 100 ~/ rect.height; | int aspectRatio = rect.width * 100 ~/ rect.height; | ||||
int friendId = 0; | int friendId = 0; | ||||
if (!isGroup) { | |||||
if (!widget.isGroup) { | |||||
friendId = Provider.of<int>(context); | friendId = Provider.of<int>(context); | ||||
} | } | ||||
var msg = MsgHandler.createSendMsg(ChatType.ShortVideoChatType, thumbnail, | var msg = MsgHandler.createSendMsg(ChatType.ShortVideoChatType, thumbnail, | ||||
@@ -369,9 +374,9 @@ class UtilKeyboard extends StatelessWidget { | |||||
friendId: friendId, | friendId: friendId, | ||||
localFile: video.path, | localFile: video.path, | ||||
channelType: | 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线下渠道 | ///ture 应用商店版本 false线下渠道 | ||||
static const bool isStoreVersion = 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中修改版本号 | ///在pubspec.yaml中修改版本号 | ||||
static String versionName = '1.0.0'; | static String versionName = '1.0.0'; | ||||
@@ -1,6 +1,5 @@ | |||||
import 'package:chat/data/UserData.dart'; | import 'package:chat/data/UserData.dart'; | ||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/screen.dart'; | import 'package:chat/utils/screen.dart'; | ||||
import 'package:connectivity/connectivity.dart'; | import 'package:connectivity/connectivity.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
@@ -153,7 +152,7 @@ class _IndexPageState extends State<IndexPage> { | |||||
return; | return; | ||||
} | } | ||||
if (resData['data'] != null) { | if (resData['data'] != null) { | ||||
HttpUtil().changePage(LoadingManage.context, resData); | |||||
HttpUtil().changePage(Constants.getCurrentContext(), resData); | |||||
} | } | ||||
} | } | ||||
@@ -27,7 +27,7 @@ enum reason { | |||||
liar, | liar, | ||||
} | } | ||||
int Max_Img_Num = 4; | |||||
const int MaxImgNum = 4; | |||||
class InformUserPage extends StatefulWidget { | class InformUserPage extends StatefulWidget { | ||||
@required | @required | ||||
@@ -182,7 +182,7 @@ class _InformUserPageState extends State<InformUserPage> { | |||||
var photos = await PhotoPicker.pickAsset( | var photos = await PhotoPicker.pickAsset( | ||||
context: context, | context: context, | ||||
themeColor: Color(0xFFF0F0F0), | themeColor: Color(0xFFF0F0F0), | ||||
maxSelected: Max_Img_Num - imgUrlList.length, | |||||
maxSelected: MaxImgNum - imgUrlList.length, | |||||
textColor: Color(0xFF3F3F3F), | textColor: Color(0xFF3F3F3F), | ||||
pickType: PickType.onlyImage); | pickType: PickType.onlyImage); | ||||
@@ -346,7 +346,7 @@ class _InformUserPageState extends State<InformUserPage> { | |||||
List<Widget> list = imgUrlList.map((f) { | List<Widget> list = imgUrlList.map((f) { | ||||
return _buildImg(f); | return _buildImg(f); | ||||
}).toList(); | }).toList(); | ||||
if (list.length < Max_Img_Num) { | |||||
if (list.length < MaxImgNum) { | |||||
list.add(upButton); | list.add(upButton); | ||||
} | } | ||||
var socialCard = new Container( | 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) { | String getLetter(BuildContext context, double tileHeight, Offset globalPos) { | ||||
RenderBox _box = context.findRenderObject(); | RenderBox _box = context.findRenderObject(); | ||||
var local = _box.globalToLocal(globalPos); | 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/models/ref_name_provider.dart'; | ||||
import 'package:chat/utils/CustomUI.dart'; | import 'package:chat/utils/CustomUI.dart'; | ||||
import 'package:chat/utils/HttpUtil.dart'; | import 'package:chat/utils/HttpUtil.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/TokenMgr.dart'; | import 'package:chat/utils/TokenMgr.dart'; | ||||
import 'package:chat/utils/conversation_table.dart'; | import 'package:chat/utils/conversation_table.dart'; | ||||
@@ -93,7 +92,7 @@ class _FriendPageState extends State<FriendPage> { | |||||
avatar: '', | avatar: '', | ||||
userId: 0, | userId: 0, | ||||
iconCode: 0xe66c, | iconCode: 0xe66c, | ||||
title: I18n.of(LoadingManage.context).new_friends, | |||||
title: I18n.of(Constants.getCurrentContext()).new_friends, | |||||
gradient: LinearGradient( | gradient: LinearGradient( | ||||
begin: Alignment.topCenter, | begin: Alignment.topCenter, | ||||
end: Alignment.bottomCenter, | end: Alignment.bottomCenter, | ||||
@@ -187,11 +186,11 @@ class _FriendPageState extends State<FriendPage> { | |||||
showPermission() async { | showPermission() async { | ||||
if (await CustomUI.showPermissionSetting( | if (await CustomUI.showPermissionSetting( | ||||
LoadingManage.context, | |||||
Constants.getCurrentContext(), | |||||
PermissionGroup.contacts, | PermissionGroup.contacts, | ||||
I18n.of(LoadingManage.context).contact_permission)) { | |||||
I18n.of(Constants.getCurrentContext()).contact_permission)) { | |||||
MessageMgr().emit('PostContact'); | MessageMgr().emit('PostContact'); | ||||
Navigator.push(LoadingManage.context, | |||||
Navigator.push(Constants.getCurrentContext(), | |||||
MaterialPageRoute<void>(builder: (BuildContext context) { | MaterialPageRoute<void>(builder: (BuildContext context) { | ||||
return ContactsPage(); | return ContactsPage(); | ||||
})); | })); | ||||
@@ -259,7 +258,7 @@ class _FriendPageState extends State<FriendPage> { | |||||
avatar: '', | avatar: '', | ||||
userId: 0, | userId: 0, | ||||
iconCode: 0xe659, | iconCode: 0xe659, | ||||
title: I18n.of(LoadingManage.context).scan, | |||||
title: I18n.of(Constants.getCurrentContext()).scan, | |||||
gradient: LinearGradient( | gradient: LinearGradient( | ||||
begin: Alignment.topCenter, | begin: Alignment.topCenter, | ||||
end: Alignment.bottomCenter, | end: Alignment.bottomCenter, | ||||
@@ -268,14 +267,14 @@ class _FriendPageState extends State<FriendPage> { | |||||
const Color(0xFF3441C1), | const Color(0xFF3441C1), | ||||
]), | ]), | ||||
onPressed: () { | onPressed: () { | ||||
CustomUI().goScanPage(LoadingManage.context); | |||||
CustomUI().goScanPage(Constants.getCurrentContext()); | |||||
}), | }), | ||||
FriendsInfo( | FriendsInfo( | ||||
avatar: '', | avatar: '', | ||||
userId: 0, | userId: 0, | ||||
iconCode: 0xe67a, | iconCode: 0xe67a, | ||||
isShowDivder: true, | isShowDivder: true, | ||||
title: I18n.of(LoadingManage.context).contact_add, | |||||
title: I18n.of(Constants.getCurrentContext()).contact_add, | |||||
gradient: LinearGradient( | gradient: LinearGradient( | ||||
begin: Alignment.topCenter, | begin: Alignment.topCenter, | ||||
end: Alignment.bottomCenter, | end: Alignment.bottomCenter, | ||||
@@ -303,7 +302,7 @@ class _FriendPageState extends State<FriendPage> { | |||||
userId: 0, | userId: 0, | ||||
iconCode: 0xe662, | iconCode: 0xe662, | ||||
isShowDivder: true, | isShowDivder: true, | ||||
title: I18n.of(LoadingManage.context).add_friends, | |||||
title: I18n.of(Constants.getCurrentContext()).add_friends, | |||||
gradient: LinearGradient( | gradient: LinearGradient( | ||||
begin: Alignment.topCenter, | begin: Alignment.topCenter, | ||||
end: Alignment.bottomCenter, | end: Alignment.bottomCenter, | ||||
@@ -312,7 +311,7 @@ class _FriendPageState extends State<FriendPage> { | |||||
const Color(0xFF6118A6), | const Color(0xFF6118A6), | ||||
]), | ]), | ||||
onPressed: () async { | onPressed: () async { | ||||
Navigator.push(LoadingManage.context, | |||||
Navigator.push(Constants.getCurrentContext(), | |||||
MaterialPageRoute<void>(builder: (BuildContext context) { | MaterialPageRoute<void>(builder: (BuildContext context) { | ||||
return SearchNewFriendsPage(); | return SearchNewFriendsPage(); | ||||
})); | })); | ||||
@@ -8,7 +8,6 @@ import 'package:chat/home/unread_dot_widget.dart'; | |||||
import 'package:chat/models/UserInfo.dart'; | import 'package:chat/models/UserInfo.dart'; | ||||
import 'package:chat/models/ref_name_provider.dart'; | import 'package:chat/models/ref_name_provider.dart'; | ||||
import 'package:chat/utils/HttpUtil.dart'; | import 'package:chat/utils/HttpUtil.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/TokenMgr.dart'; | import 'package:chat/utils/TokenMgr.dart'; | ||||
import 'package:chat/utils/app_navigator.dart'; | import 'package:chat/utils/app_navigator.dart'; | ||||
@@ -142,7 +141,6 @@ class _HomeMainState extends State<HomeMain> { | |||||
@override | @override | ||||
void initState() { | void initState() { | ||||
MsgHandler.context = context; | |||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light); | SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light); | ||||
super.initState(); | super.initState(); | ||||
@@ -253,7 +251,7 @@ class _HomeMainState extends State<HomeMain> { | |||||
goShareInfo(data) async { | goShareInfo(data) async { | ||||
Future.delayed(Duration(milliseconds: 1000), () { | Future.delayed(Duration(milliseconds: 1000), () { | ||||
Navigator.of(LoadingManage.context).push( | |||||
Navigator.of(Constants.getCurrentContext()).push( | |||||
new MaterialPageRoute( | new MaterialPageRoute( | ||||
builder: (context) { | builder: (context) { | ||||
return FilePreview(data); | return FilePreview(data); | ||||
@@ -7,7 +7,6 @@ import 'package:chat/data/group_data_mgr.dart'; | |||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/home/qr_scanner_overlay.dart'; | import 'package:chat/home/qr_scanner_overlay.dart'; | ||||
import 'package:chat/utils/CustomUI.dart'; | import 'package:chat/utils/CustomUI.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/app_navigator.dart'; | import 'package:chat/utils/app_navigator.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
@@ -208,7 +207,7 @@ class _QrScannerPageState extends State<QrScannerPage> | |||||
showToast(I18n.of(context).no_goupr_info); | showToast(I18n.of(context).no_goupr_info); | ||||
return; | return; | ||||
} | } | ||||
Navigator.push(LoadingManage.context, | |||||
Navigator.push(Constants.getCurrentContext(), | |||||
MaterialPageRoute<void>(builder: (BuildContext context) { | MaterialPageRoute<void>(builder: (BuildContext context) { | ||||
return JoinGroupConfirmPage( | return JoinGroupConfirmPage( | ||||
groupInfoModel: groupInfo, | groupInfoModel: groupInfo, | ||||
@@ -32,8 +32,8 @@ class ServiceMsgModel { | |||||
} | } | ||||
class ServiceCenterPage extends StatefulWidget { | class ServiceCenterPage extends StatefulWidget { | ||||
int questionIndex = -1; | |||||
ServiceCenterPage(this.questionIndex); | |||||
final int questionIndex; | |||||
ServiceCenterPage({this.questionIndex = -1}); | |||||
@override | @override | ||||
_ServiceCenterPageState createState() => _ServiceCenterPageState(); | _ServiceCenterPageState createState() => _ServiceCenterPageState(); | ||||
@@ -1,5 +1,4 @@ | |||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/screen.dart'; | import 'package:chat/utils/screen.dart'; | ||||
import 'package:chat/utils/sp_utils.dart'; | import 'package:chat/utils/sp_utils.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
@@ -34,11 +33,11 @@ class SplashPageState extends State<SplashPage> { | |||||
void initState() { | void initState() { | ||||
super.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))); | 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))); | 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))); | Color(0xff2B79F7))); | ||||
pageController = PageController( | 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/gift_select_provider.dart'; | ||||
import 'package:chat/models/money_change.dart'; | import 'package:chat/models/money_change.dart'; | ||||
import 'package:chat/models/ref_name_provider.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/MessageMgr.dart'; | ||||
import 'package:chat/utils/NetUtil.dart'; | import 'package:chat/utils/NetUtil.dart'; | ||||
import 'package:chat/utils/OtherLogin.dart'; | import 'package:chat/utils/OtherLogin.dart'; | ||||
@@ -115,7 +114,7 @@ void setCustomErrorPage(BuildContext context) { | |||||
Container( | Container( | ||||
margin: EdgeInsets.only(top: ScreenUtil().setHeight(50)), | margin: EdgeInsets.only(top: ScreenUtil().setHeight(50)), | ||||
child: Text( | child: Text( | ||||
I18n.of(LoadingManage.context).server_error_tips, | |||||
I18n.of(Constants.getCurrentContext()).server_error_tips, | |||||
style: TextStyle(color: Color(0xFF8F8E8E), fontSize: 18), | style: TextStyle(color: Color(0xFF8F8E8E), fontSize: 18), | ||||
), | ), | ||||
), | ), | ||||
@@ -214,7 +213,6 @@ class MyApp extends StatefulWidget { | |||||
_MyAppState createState() => _MyAppState(); | _MyAppState createState() => _MyAppState(); | ||||
} | } | ||||
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>(); | |||||
class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | ||||
final i18n = I18n.delegate; | final i18n = I18n.delegate; | ||||
@@ -232,7 +230,6 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||||
initVersionName(); | initVersionName(); | ||||
askLocationPermission(); | askLocationPermission(); | ||||
MsgHandler.context = context; | |||||
I18n.onLocaleChanged = onLocaleChange; | I18n.onLocaleChanged = onLocaleChange; | ||||
WidgetsBinding.instance.addObserver(this); | WidgetsBinding.instance.addObserver(this); | ||||
ReceiveShareFile.init(); | ReceiveShareFile.init(); | ||||
@@ -385,7 +382,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||||
// 此处 | // 此处 | ||||
return 'Hibok'; | return 'Hibok'; | ||||
}, | }, | ||||
navigatorKey: navigatorKey, | |||||
navigatorKey: Constants.navigatorKey, | |||||
routes: <String, WidgetBuilder>{ | routes: <String, WidgetBuilder>{ | ||||
'/main': (BuildContext context) => HomeMain(), | '/main': (BuildContext context) => HomeMain(), | ||||
}, | }, | ||||
@@ -410,8 +407,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver { | |||||
} | } | ||||
goIndex() { | goIndex() { | ||||
LoadingManage.context = navigatorKey.currentState.overlay.context; | |||||
if (!isOpen) { | if (!isOpen) { | ||||
return SplashPage(); | return SplashPage(); | ||||
} else { | } else { | ||||
@@ -137,7 +137,7 @@ class LocationPickerState extends State<LocationPicker> { | |||||
), | ), | ||||
Expanded( | Expanded( | ||||
child: Text( | child: Text( | ||||
"Finding place...", | |||||
"搜索中...", | |||||
style: TextStyle( | style: TextStyle( | ||||
fontSize: 16, | fontSize: 16, | ||||
), | ), | ||||
@@ -80,7 +80,7 @@ class SearchInputState extends State { | |||||
keyboardAppearance: Brightness.light, | keyboardAppearance: Brightness.light, | ||||
style: TextStyle(textBaseline: TextBaseline.alphabetic), | style: TextStyle(textBaseline: TextBaseline.alphabetic), | ||||
decoration: InputDecoration( | decoration: InputDecoration( | ||||
hintText: 'Search place', | |||||
hintText: '搜索位置', | |||||
border: InputBorder.none, | border: InputBorder.none, | ||||
), | ), | ||||
controller: editController, | controller: editController, | ||||
@@ -8,7 +8,6 @@ import 'package:chat/models/last_message_model.dart'; | |||||
import 'package:chat/models/ref_name_provider.dart'; | import 'package:chat/models/ref_name_provider.dart'; | ||||
import 'package:chat/proto/chat.pb.dart'; | import 'package:chat/proto/chat.pb.dart'; | ||||
import 'package:chat/utils/HttpUtil.dart'; | import 'package:chat/utils/HttpUtil.dart'; | ||||
import 'package:chat/utils/LoadingDialog.dart'; | |||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/msgHandler.dart'; | import 'package:chat/utils/msgHandler.dart'; | ||||
import 'package:chat/utils/screen.dart'; | import 'package:chat/utils/screen.dart'; | ||||
@@ -82,19 +81,19 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||||
} | } | ||||
break; | break; | ||||
case ChatType.EmoticonType: | case ChatType.EmoticonType: | ||||
desc = '[${I18n.of(LoadingManage.context).emoji}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).emoji}]'; | |||||
break; | break; | ||||
case ChatType.ImageChatType: | case ChatType.ImageChatType: | ||||
desc = '[${I18n.of(LoadingManage.context).picture}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).picture}]'; | |||||
break; | break; | ||||
case ChatType.ShortVideoChatType: | case ChatType.ShortVideoChatType: | ||||
desc = '[${I18n.of(LoadingManage.context).video}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).video}]'; | |||||
break; | break; | ||||
case ChatType.PlaceChatType: | case ChatType.PlaceChatType: | ||||
desc = '[${I18n.of(LoadingManage.context).locate}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).locate}]'; | |||||
break; | break; | ||||
case ChatType.ShortVoiceChatType: | case ChatType.ShortVoiceChatType: | ||||
desc = '[${I18n.of(LoadingManage.context).voice}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).voice}]'; | |||||
break; | break; | ||||
case ChatType.GiftChatType: | case ChatType.GiftChatType: | ||||
@@ -102,9 +101,9 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||||
GiftChat.fromBuffer(widget.lastMessageModel.msgContent); | GiftChat.fromBuffer(widget.lastMessageModel.msgContent); | ||||
if (giftChat.tuId == UserData().basicInfo.userId) { | if (giftChat.tuId == UserData().basicInfo.userId) { | ||||
desc = I18n.of(LoadingManage.context).you_get; | |||||
desc = I18n.of(Constants.getCurrentContext()).you_get; | |||||
} else { | } else { | ||||
desc = I18n.of(LoadingManage.context).you_give; | |||||
desc = I18n.of(Constants.getCurrentContext()).you_give; | |||||
} | } | ||||
break; | break; | ||||
@@ -118,21 +117,21 @@ class _LastMsgDescriptionState extends State<LastMsgDescription> { | |||||
if (wallet.state == RedWalletState.Received) { | if (wallet.state == RedWalletState.Received) { | ||||
var myId = UserData().basicInfo.userId; | var myId = UserData().basicInfo.userId; | ||||
if (wallet.suId == myId) { | if (wallet.suId == myId) { | ||||
desc = I18n.of(LoadingManage.context) | |||||
desc = I18n.of(Constants.getCurrentContext()) | |||||
.get_money | .get_money | ||||
.replaceFirst('/s1', fdName); | .replaceFirst('/s1', fdName); | ||||
} else { | } else { | ||||
desc = I18n.of(LoadingManage.context) | |||||
desc = I18n.of(Constants.getCurrentContext()) | |||||
.you_get_money | .you_get_money | ||||
.replaceFirst('/s1', fdName); | .replaceFirst('/s1', fdName); | ||||
} | } | ||||
} else if (wallet.state == RedWalletState.Expire) { | } else if (wallet.state == RedWalletState.Expire) { | ||||
desc = I18n.of(LoadingManage.context).money_over; | |||||
desc = I18n.of(Constants.getCurrentContext()).money_over; | |||||
} else { | } else { | ||||
print('WWWWW${wallet.state}'); | print('WWWWW${wallet.state}'); | ||||
} | } | ||||
} else { | } else { | ||||
desc = '[${I18n.of(LoadingManage.context).red_money}]'; | |||||
desc = '[${I18n.of(Constants.getCurrentContext()).red_money}]'; | |||||
} | } | ||||
break; | break; | ||||
@@ -88,19 +88,6 @@ class _PhotoSelectMenuState extends State<PhotoSelectMenu> { | |||||
setState(() {}); | 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() { | void clearOverlay() { | ||||
if (overlayEntry != null) { | if (overlayEntry != null) { | ||||
overlayEntry.remove(); | overlayEntry.remove(); | ||||
@@ -87,7 +87,7 @@ class HttpUtil { | |||||
return response; // continue | return response; // continue | ||||
}, onError: (DioError e) async { | }, onError: (DioError e) async { | ||||
// Do something with response error | // Do something with response error | ||||
showToast(I18n.of(LoadingManage.context).net_error); | |||||
showToast(I18n.of(Constants.getCurrentContext()).net_error); | |||||
return e; //continue | return e; //continue | ||||
})); | })); | ||||
} | } | ||||
@@ -172,7 +172,7 @@ class HttpUtil { | |||||
} | } | ||||
print('post请求发生错误:$e'); | print('post请求发生错误:$e'); | ||||
if (isShowLoading) LoadingManage().closeLoading(); | if (isShowLoading) LoadingManage().closeLoading(); | ||||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||||
if (failback != null) failback(); | if (failback != null) failback(); | ||||
} | } | ||||
return response; | return response; | ||||
@@ -5,6 +5,7 @@ | |||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:chat/utils/my_dialog.dart' as myDialog; | import 'package:chat/utils/my_dialog.dart' as myDialog; | ||||
import 'package:chat/data/constants.dart'; | |||||
class LoadingManage { | class LoadingManage { | ||||
//私有构造函数 | //私有构造函数 | ||||
@@ -16,10 +17,9 @@ class LoadingManage { | |||||
//工厂构造函数 | //工厂构造函数 | ||||
factory LoadingManage() => _singleton; | factory LoadingManage() => _singleton; | ||||
static BuildContext context; | |||||
showLoading() { | showLoading() { | ||||
myDialog.showDialog( | myDialog.showDialog( | ||||
context: context, | |||||
context: Constants.getCurrentContext(), | |||||
barrierDismissible: true, | barrierDismissible: true, | ||||
builder: (BuildContext context) { | builder: (BuildContext context) { | ||||
return LoadingDialog(); | return LoadingDialog(); | ||||
@@ -27,7 +27,7 @@ class LoadingManage { | |||||
} | } | ||||
closeLoading() { | 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/data/group_data_mgr.dart'; | ||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/proto/all.pbserver.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/net_state_util.dart'; | ||||
import 'package:chat/utils/screen.dart'; | import 'package:chat/utils/screen.dart'; | ||||
import 'package:chat/utils/upload_util.dart'; | import 'package:chat/utils/upload_util.dart'; | ||||
@@ -164,7 +163,7 @@ class NetWork { | |||||
} else { | } else { | ||||
_stateBloc.addState(ChatState.loginFailed); | _stateBloc.addState(ChatState.loginFailed); | ||||
print('登录失败${msgContent.errorCode}'); | print('登录失败${msgContent.errorCode}'); | ||||
showToast(I18n.of(LoadingManage.context).fail); | |||||
showToast(I18n.of(Constants.getCurrentContext()).fail); | |||||
} | } | ||||
} else if (msgId == 3) { | } else if (msgId == 3) { | ||||
//用户登出,其他设备替换 | //用户登出,其他设备替换 | ||||
@@ -134,7 +134,7 @@ class AppNavigator { | |||||
//客服 | //客服 | ||||
static pushServicePage(BuildContext context, {questionIndex = -1}) async { | static pushServicePage(BuildContext context, {questionIndex = -1}) async { | ||||
AppNavigator.push(context, ServiceCenterPage(questionIndex)); | |||||
AppNavigator.push(context, ServiceCenterPage(questionIndex : questionIndex)); | |||||
} | } | ||||
//群成员列表 | //群成员列表 | ||||
@@ -1,7 +1,7 @@ | |||||
import 'package:chat/data/UserData.dart'; | import 'package:chat/data/UserData.dart'; | ||||
import 'package:chat/models/UserInfo.dart'; | import 'package:chat/models/UserInfo.dart'; | ||||
import 'package:chat/models/ref_name_provider.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:chat/utils/sql_model.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:lpinyin/lpinyin.dart'; | import 'package:lpinyin/lpinyin.dart'; | ||||
@@ -39,7 +39,7 @@ class FriendModel { | |||||
} | } | ||||
updataRefName() { | updataRefName() { | ||||
refName = Provider.of<RefNameProvider>(LoadingManage.context, listen: false) | |||||
refName = Provider.of<RefNameProvider>(Constants.getCurrentContext(), listen: false) | |||||
.getRefName(friendId, name); | .getRefName(friendId, name); | ||||
nameTag = getNameTag(); | nameTag = getNameTag(); | ||||
} | } | ||||
@@ -38,7 +38,7 @@ class BottomAreaAvoider extends StatefulWidget { | |||||
/// Animation curve. Defaults to [defaultCurve] | /// Animation curve. Defaults to [defaultCurve] | ||||
final Curve curve; | final Curve curve; | ||||
ScrollController scrollTo; | |||||
final ScrollController scrollTo; | |||||
BottomAreaAvoider({ | BottomAreaAvoider({ | ||||
Key key, | Key key, | ||||
@@ -181,7 +181,7 @@ RenderObject findFocusedObject(RenderObject root) { | |||||
final q = Queue<RenderObject>(); | final q = Queue<RenderObject>(); | ||||
q.add(root); | q.add(root); | ||||
while (q.isNotEmpty) { | while (q.isNotEmpty) { | ||||
final node = q.removeFirst(); | |||||
final RenderObject node = q.removeFirst(); | |||||
final config = SemanticsConfiguration(); | final config = SemanticsConfiguration(); | ||||
node.describeSemanticsConfiguration(config); | node.describeSemanticsConfiguration(config); | ||||
if (config.isFocused) { | if (config.isFocused) { | ||||
@@ -1,31 +1,23 @@ | |||||
import 'dart:async'; | |||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart'; | import 'package:receive_sharing_intent/receive_sharing_intent.dart'; | ||||
import 'MessageMgr.dart'; | import 'MessageMgr.dart'; | ||||
class ReceiveShareFile { | class ReceiveShareFile { | ||||
static StreamSubscription _intentDataStreamSubscription; | |||||
static List<SharedMediaFile> _sharedFiles; | |||||
static String tempFilePath; | static String tempFilePath; | ||||
static int mLastClickTime = 0; | static int mLastClickTime = 0; | ||||
static final int TIME_INTERVAL = 3000; | |||||
static int timeInterval = 3000; | |||||
static void init() { | static void init() { | ||||
// For sharing images coming from outside the app while the app is in the memory | // For sharing images coming from outside the app while the app is in the memory | ||||
_intentDataStreamSubscription = ReceiveSharingIntent.getMediaStream() | |||||
ReceiveSharingIntent.getMediaStream() | |||||
.listen((List<SharedMediaFile> value) { | .listen((List<SharedMediaFile> value) { | ||||
// setState(() { | |||||
// _sharedFiles = value; | |||||
// print("Shared:" + (_sharedFiles?.map((f) => f.path)?.join(",") ?? "")); | |||||
// }); | |||||
// print('#### getfilePath ${value[0].path}'); | |||||
if (currentIndex == 1) { | if (currentIndex == 1) { | ||||
int nowTime = DateTime.now().millisecondsSinceEpoch; | int nowTime = DateTime.now().millisecondsSinceEpoch; | ||||
if (nowTime - mLastClickTime > TIME_INTERVAL) { | |||||
if (nowTime - mLastClickTime > timeInterval) { | |||||
if (value != null && value.length > 0) { | if (value != null && value.length > 0) { | ||||
MessageMgr().emit(MessageMgr.RECEIVE_THIRD_SHARE, value[0].path); | MessageMgr().emit(MessageMgr.RECEIVE_THIRD_SHARE, value[0].path); | ||||
} | } | ||||
@@ -51,7 +43,7 @@ class ReceiveShareFile { | |||||
if (currentIndex == 1) { | if (currentIndex == 1) { | ||||
int nowTime = DateTime.now().millisecondsSinceEpoch; | int nowTime = DateTime.now().millisecondsSinceEpoch; | ||||
if (nowTime - mLastClickTime > TIME_INTERVAL) { | |||||
if (nowTime - mLastClickTime > timeInterval) { | |||||
// do something | // do something | ||||
if (value != null && value.length > 0) { | if (value != null && value.length > 0) { | ||||
MessageMgr().emit(MessageMgr.RECEIVE_THIRD_SHARE, value[0].path); | 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 | // For sharing or opening urls/text coming from outside the app while the app is in the memory | ||||
_intentDataStreamSubscription = | |||||
ReceiveSharingIntent.getTextStream().listen((String value) { | ReceiveSharingIntent.getTextStream().listen((String value) { | ||||
print('#### getfilePath $value '); | print('#### getfilePath $value '); | ||||
// setState(() { | // 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_model.dart'; | ||||
import 'package:chat/models/group_info_server_model.dart'; | import 'package:chat/models/group_info_server_model.dart'; | ||||
import 'package:chat/proto/all.pbserver.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:chat/utils/file_cache_mgr.dart'; | ||||
import 'package:convert/convert.dart'; | import 'package:convert/convert.dart'; | ||||
import 'package:dio/dio.dart'; | import 'package:dio/dio.dart'; | ||||
@@ -224,12 +224,12 @@ class UploadUtil { | |||||
return path; | return path; | ||||
} else { | } else { | ||||
msg.state = MsgState.DownloadFailed; | msg.state = MsgState.DownloadFailed; | ||||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||||
return null; | return null; | ||||
} | } | ||||
} catch (e) { | } catch (e) { | ||||
msg.state = MsgState.DownloadFailed; | msg.state = MsgState.DownloadFailed; | ||||
showToast(I18n.of(LoadingManage.context).server_error_tips); | |||||
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips); | |||||
print(response.toString()); | print(response.toString()); | ||||
} | } | ||||
} | } | ||||