@@ -1161,6 +1161,8 @@ | |||
"you_are_blaklisted":"对方已拉黑了你", | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
@@ -1161,6 +1161,8 @@ | |||
"you_are_blaklisted":"对方已拉黑了你", | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
@@ -1160,6 +1160,8 @@ | |||
"you_are_blaklisted":"对方已拉黑了你", | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
@@ -1161,6 +1161,8 @@ | |||
"you_are_blaklisted":"对方已拉黑了你", | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
@@ -1161,6 +1161,8 @@ | |||
"you_are_blaklisted":"对方已拉黑了你", | |||
"confrim_recovery":"确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||
"send_to": "发送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "实时帮", | |||
"translation_butler": "翻译管家", | |||
"travel_butler": "出行管家", | |||
@@ -1161,6 +1161,8 @@ | |||
"you_are_blaklisted":"對方已拉黑了你", | |||
"confrim_recovery":"確定恢復已被焚毀的照片嗎?\n(已經看過的用戶可以再看一次)", | |||
"send_to": "發送到", | |||
"search_plach":"搜索位置", | |||
"finding_place":"查找位置", | |||
"real_time_helper": "實時幫", | |||
"translation_butler": "翻譯管家", | |||
"travel_butler": "出行管家", | |||
@@ -36,6 +36,7 @@ import 'ChatPageItem.dart'; | |||
import 'input_bar.dart'; | |||
import 'package:chat/utils/PopUpMenu.dart' as myPop; | |||
import 'package:chat/models/money_change.dart'; | |||
class ChatPage extends StatefulWidget { | |||
final int friendId; | |||
final int enterType; // 0默认 1图片 | |||
@@ -365,33 +366,6 @@ class _ChatPageState extends State<ChatPage> { | |||
child: Scaffold( | |||
resizeToAvoidBottomInset: false, | |||
backgroundColor: const Color(0xFFE2E9F1), | |||
// appBar: PreferredSize( | |||
// preferredSize: Size.fromHeight(58), | |||
// child: Container( | |||
// color: AppBarTheme.of(context).color, | |||
// child: SafeArea( | |||
// child: Container( | |||
// height: 56, | |||
// child: Row(children: <Widget>[ | |||
// SizedBox(width: 10), | |||
// CustomUI.buildCustomLeading(context), | |||
// Text( | |||
// Provider.of<RefNameProvider>(context) | |||
// .getRefName(friendInfo.userId, | |||
// friendInfo.nickName), | |||
// textScaleFactor: 1.0, | |||
// style: TextStyle( | |||
// textBaseline: TextBaseline.ideographic, | |||
// color: Constants.BlackTextColor, | |||
// fontSize: 16.47), | |||
// ), | |||
// Expanded( | |||
// child: Row( | |||
// mainAxisAlignment: | |||
// MainAxisAlignment.end, | |||
// children: actions)) | |||
// ]), | |||
// )))), | |||
appBar: AppBar( | |||
title: Text( | |||
'${Provider.of<RefNameProvider>(context).getRefName(friendInfo.userId, friendInfo.nickName)}', | |||
@@ -479,13 +453,7 @@ class _ChatPageState extends State<ChatPage> { | |||
sendMsg(MsgModel msg) { | |||
print('对方是否拉黑你 ${friendInfo.isBlackened}'); | |||
if (BlacklistMgr.isBlaklistMe(friendInfo.userId)) { | |||
showToast(I18n.of(context).you_are_blaklisted); | |||
return; | |||
} | |||
if (BlacklistMgr.isInMyblaklist(friendInfo.userId)) { | |||
showToast(I18n.of(context).reject_message); | |||
if (BlacklistMgr.isBlack(friendInfo.userId)) { | |||
return; | |||
} | |||
@@ -32,8 +32,7 @@ import 'package:file_picker/file_picker.dart'; | |||
import '../r.dart'; | |||
class UtilKeyboard extends StatefulWidget { | |||
class UtilKeyboard extends StatefulWidget { | |||
final double keyboardHeight; | |||
final Function sendMsg; | |||
final bool isGroup; | |||
@@ -44,7 +43,7 @@ import '../r.dart'; | |||
} | |||
class _UtilKeyboardState extends State<UtilKeyboard> { | |||
bool isAuthority = false; | |||
bool isAuthority = false; | |||
@override | |||
Widget build(BuildContext context) { | |||
@@ -168,13 +167,8 @@ class _UtilKeyboardState extends State<UtilKeyboard> { | |||
showToast(I18n.of(context).cantt_voice); | |||
return; | |||
} | |||
if (BlacklistMgr.isBlaklistMe(info.userId)) { | |||
showToast(I18n.of(context).you_are_blaklisted); | |||
return; | |||
} | |||
if (BlacklistMgr.isInMyblaklist(info.userId)) { | |||
showToast(I18n.of(context).reject_message); | |||
if (BlacklistMgr.isBlack(info.userId)) { | |||
return; | |||
} | |||
@@ -308,39 +302,38 @@ class _UtilKeyboardState extends State<UtilKeyboard> { | |||
int fileSize = file.lengthSync(); | |||
print('选择的文件 ${file.path} 大小 $fileSize'); | |||
if (fileSize > 33 * 1024 * 1024) { | |||
showToast('文件大于33M'); | |||
return; | |||
} | |||
int friendId = 0; | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var fileName = file.path.split('/').last; | |||
print('fileName $fileName'); | |||
if (fileSize > 33 * 1024 * 1024) { | |||
showToast('文件大于33M'); | |||
return; | |||
} | |||
var ext = ''; | |||
var extList = fileName.split('.'); | |||
if (extList.length > 1) { | |||
ext = extList.last; | |||
} | |||
print('ext $ext'); | |||
int friendId = 0; | |||
if (!widget.isGroup) { | |||
friendId = Provider.of<int>(context); | |||
} | |||
var fileName = file.path.split('/').last; | |||
print('fileName $fileName'); | |||
var fileMsg = FileChat.create(); | |||
fileMsg.type = ext; | |||
fileMsg.size = fileSize; | |||
fileMsg.name = fileName; | |||
var ext = ''; | |||
var extList = fileName.split('.'); | |||
if (extList.length > 1) { | |||
ext = extList.last; | |||
} | |||
print('ext $ext'); | |||
var msg = MsgHandler.createSendMsg(ChatType.FileChatType, fileMsg.writeToBuffer(), | |||
friendId: friendId, | |||
localFile: file.path, | |||
channelType: | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
var fileMsg = FileChat.create(); | |||
fileMsg.type = ext; | |||
fileMsg.size = fileSize; | |||
fileMsg.name = fileName; | |||
widget.sendMsg(msg); | |||
var msg = MsgHandler.createSendMsg( | |||
ChatType.FileChatType, fileMsg.writeToBuffer(), | |||
friendId: friendId, | |||
localFile: file.path, | |||
channelType: | |||
widget.isGroup ? ChatChannelType.Group : ChatChannelType.Session); | |||
widget.sendMsg(msg); | |||
} | |||
void _sendVideo(BuildContext context) async { | |||
@@ -117,7 +117,7 @@ class Constants { | |||
static NavigatorState getCurrentState() => navigatorKey.currentState; | |||
/// 获取当前的context | |||
static BuildContext getCurrentContext() => navigatorKey.currentContext; | |||
static BuildContext getCurrentContext() => navigatorKey.currentState.overlay.context;//navigatorKey.currentContext; | |||
///在pubspec.yaml中修改版本号 | |||
static String versionName = '1.0.0'; | |||
@@ -2357,6 +2357,10 @@ class I18n implements WidgetsLocalizations { | |||
String get confrim_recovery => "确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)"; | |||
/// "發送到" | |||
String get send_to => "發送到"; | |||
/// "搜索位置" | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
String get real_time_helper => "实时帮"; | |||
/// "翻译管家" | |||
@@ -5903,6 +5907,12 @@ class _I18n_vi_VN extends I18n { | |||
/// "發送到" | |||
@override | |||
String get send_to => "發送到"; | |||
/// "搜索位置" | |||
@override | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
@@ -9469,6 +9479,12 @@ class _I18n_zh_HK extends I18n { | |||
/// "發送到" | |||
@override | |||
String get send_to => "發送到"; | |||
/// "搜索位置" | |||
@override | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "實時幫" | |||
@override | |||
String get real_time_helper => "實時幫"; | |||
@@ -13035,6 +13051,12 @@ class _I18n_zh_CN extends _I18n_zh_HK { | |||
/// "发送到" | |||
@override | |||
String get send_to => "发送到"; | |||
/// "搜索位置" | |||
@override | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
@@ -16598,6 +16620,12 @@ class _I18n_ko_KR extends I18n { | |||
/// "發送到" | |||
@override | |||
String get send_to => "發送到"; | |||
/// "搜索位置" | |||
@override | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
@@ -20164,6 +20192,12 @@ class _I18n_ja_JP extends I18n { | |||
/// "發送到" | |||
@override | |||
String get send_to => "發送到"; | |||
/// "搜索位置" | |||
@override | |||
String get search_plach => "搜索位置"; | |||
/// "查找位置" | |||
@override | |||
String get finding_place => "查找位置"; | |||
/// "实时帮" | |||
@override | |||
String get real_time_helper => "实时帮"; | |||
@@ -1090,9 +1090,8 @@ class _ProfilePageState extends State<ProfilePage> | |||
top: 20, | |||
child: InkWell( | |||
onTap: () async { | |||
if (!userInfo.isLike) { | |||
HttpUtil().setLove(userInfo.userId, () { | |||
HttpUtil().setLove(userInfo.userId, () { | |||
MessageMgr().emit('refresh_love_list', | |||
{'UserId': userInfo.userId, 'flag': 0}); | |||
setState(() { | |||
@@ -2090,7 +2089,8 @@ class _ProfilePageState extends State<ProfilePage> | |||
description: I18n.of(context).recovery_photo, | |||
showDivider: false, | |||
showRightIcon: false, | |||
onPressed: () async {CustomUI.buildOneConfirm( | |||
onPressed: () async { | |||
CustomUI.buildOneConfirm( | |||
context, | |||
I18n.of(context).confrim_recovery, | |||
I18n.of(context).determine, () async { | |||
@@ -2320,7 +2320,7 @@ class _ProfilePageState extends State<ProfilePage> | |||
), | |||
onTap: isblack | |||
? () async { | |||
HttpUtil().cancleBlackUser( | |||
HttpUtil().cancleBlackUser( | |||
userInfo.userId, () { | |||
Navigator.of(context).pop(); | |||
isblack = false; | |||
@@ -2529,13 +2529,7 @@ class _ProfilePageState extends State<ProfilePage> | |||
showToast(I18n.of(context).cantt_voice); | |||
return; | |||
} | |||
if (BlacklistMgr.isBlaklistMe(userInfo.userId)) { | |||
showToast(I18n.of(context).you_are_blaklisted); | |||
return; | |||
} | |||
if (BlacklistMgr.isInMyblaklist(userInfo.userId)) { | |||
showToast(I18n.of(context).reject_message); | |||
if (BlacklistMgr.isBlack(userInfo.userId)) { | |||
return; | |||
} | |||
//对方关闭陌生人消息,则提示 | |||
@@ -175,8 +175,8 @@ class _SearchPageState extends State<SearchPage> { | |||
child: Stack( | |||
children: <Widget>[ | |||
SmartRefresher( | |||
enablePullDown: list.length > 0, | |||
enablePullUp: true, | |||
enablePullDown: !isLoading, | |||
enablePullUp: !isLoading, | |||
header: MaterialClassicHeader(), | |||
footer: CustomUI.buildLoadingFooter(), | |||
controller: _refreshController, | |||
@@ -1,6 +1,7 @@ | |||
import 'dart:async'; | |||
import 'dart:convert'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/map/auto_comp_iete_item.dart'; | |||
import 'package:chat/map/location_provider.dart'; | |||
import 'package:chat/map/location_result.dart'; | |||
@@ -137,7 +138,7 @@ class LocationPickerState extends State<LocationPicker> { | |||
), | |||
Expanded( | |||
child: Text( | |||
"搜索中...", | |||
"${I18n.of(context).finding_place}...", | |||
style: TextStyle( | |||
fontSize: 16, | |||
), | |||
@@ -1,5 +1,6 @@ | |||
import 'dart:async'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:flutter/material.dart'; | |||
/// Custom Search input field, showing the search and clear icons. | |||
@@ -80,7 +81,7 @@ class SearchInputState extends State { | |||
keyboardAppearance: Brightness.light, | |||
style: TextStyle(textBaseline: TextBaseline.alphabetic), | |||
decoration: InputDecoration( | |||
hintText: '搜索位置', | |||
hintText: I18n.of(context).search_plach, | |||
border: InputBorder.none, | |||
), | |||
controller: editController, | |||
@@ -1,4 +1,10 @@ | |||
import 'package:chat/data/constants.dart'; | |||
import 'package:chat/generated/i18n.dart'; | |||
import 'package:chat/utils/LoadingDialog.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
class BlacklistMgr { | |||
//我拉黑的用户id | |||
static Set<int> myBlacklistSet = new Set(); | |||
@@ -30,4 +36,18 @@ class BlacklistMgr { | |||
static bool isBlaklistMe(int userId) { | |||
return blacklistMeSet.contains(userId); | |||
} | |||
//判断是否被别人拉黑或者拉黑别人 | |||
static bool isBlack(int userId) { | |||
if (isBlaklistMe(userId)) { | |||
showToast(I18n.of(Constants.getCurrentContext()).you_are_blaklisted); | |||
return true; | |||
} | |||
if (BlacklistMgr.isInMyblaklist(userId)) { | |||
showToast(I18n.of(Constants.getCurrentContext()).reject_message); | |||
return true; | |||
} | |||
return false; | |||
} | |||
} |