瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	ios/Flutter/flutter_export_environment.sh
#	lib/home/AddProgram.dart
#	lib/utils/msgHandler.dart
master
jiahao 5 年之前
父節點
當前提交
5eb7bd8bbb
共有 21 個文件被更改,包括 281 次插入236 次删除
  1. +3
    -3
      android/app/build.gradle
  2. +33
    -33
      i18n/en-US.json
  3. +4
    -3
      i18n/ja-JP.json
  4. +16
    -16
      i18n/ko-KR.json
  5. +4
    -3
      i18n/vi-VN.json
  6. +3
    -2
      i18n/zh-CN.json
  7. +4
    -3
      i18n/zh-HK.json
  8. +1
    -3
      lib/chat/ChatPageItem.dart
  9. +1
    -3
      lib/chat/group_chat_item.dart
  10. +22
    -23
      lib/chat/input_bar.dart
  11. +1
    -0
      lib/data/UserData.dart
  12. +102
    -76
      lib/generated/i18n.dart
  13. +39
    -35
      lib/home/AddProgram.dart
  14. +8
    -5
      lib/home/InformUser.dart
  15. +2
    -1
      lib/home/ProfilePage.dart
  16. +0
    -1
      lib/home/homeMain.dart
  17. +5
    -2
      lib/home/new_friends.dart
  18. +0
    -1
      lib/home/realtimehelper/real_time_helper_page.dart
  19. +0
    -1
      lib/home/realtimehelper/translation_butler_page.dart
  20. +13
    -20
      lib/utils/HttpUtil.dart
  21. +20
    -2
      lib/utils/friend_list_mgr.dart

+ 3
- 3
android/app/build.gradle 查看文件

@@ -56,9 +56,9 @@ android {
// manifestPlaceholders = [
// AMAP_KEY : "1fd4e93e3b4b13747da41f484c955fe2", /// 高德地图key
// ]
ndk {
abiFilters 'armeabi-v7a'
}
// ndk {
// abiFilters 'armeabi-v7a'
// }
multiDexEnabled true
manifestPlaceholders = [
JPUSH_PKGNAME : 'com.cyhd.henhoandroid',


+ 33
- 33
i18n/en-US.json 查看文件

@@ -1117,7 +1117,7 @@
"update_group_announce": " Group announcement has been updated ",
"you_qr": "You join group chat by scanning QR code",
"others_qr": "/s1 join group chat by scanning QR code ",
"invite_confirm": " \"/s1 \" want to invite /S2 friends to join the group chat \\$ to confirm \\$",
"invite_confirm": " \"/s1 \" want to invite /s2 friends to join the group chat \\$ to confirm \\$",
"want_invite_confirm": " \" /s1 \"want to invite \" /s2 \" to join the group chat ",
"join_group_confirm": " \"/s1 \"joins group chat, confirmed",
"you_invite_gourp": "You are invited into group chat by /s1 ",
@@ -1219,37 +1219,37 @@
"translation_input_limit": "/s1 words can also be input",
"translation_more_desc": "More descriptions",
"feedback_assistant": "Feedback helper",
"feedback_tips":"You can give me feedback in case of any questions",
"man_retranslate":"Manual retranslation",
"robot_retranslate":"Machine retranslation",
"see_original":"View original",
"forward":"Forward",
"copy_download_url":"Copy download address",
"total_friends_nus":"Total /s1 friends",
"hava_error_photo":"There are image violations",
"translation_butler_evaluation_tips2": "The translation service is over. It's hard for you. Please stay online and watch for new order notifications",
"translation_butler_push_order_time": "Time: Today/s1 Duration:",
"translation_butler_push_order_time2": "Order time: Today/s1 Waiting time:",
"translation_butler_title3": "Great God Exclusive",
"translation_butler_start_receive_order": "Open Receive order",
"translation_butler_stop_receive_order": "Order not opened",
"translation_butler_stop_tips": "Translators cannot enter create order",
"translation_butler_scenes2": "Scenes:",
"translation_butler_last_item_start": "[Translation housekeeper service starts]",
"translation_butler_last_item_end": "[End of translation butler service]",
"travel_start": "Start",
"travel_end": "End",
"translation_butler_order_time_out": "Translation order timeout has been cancelled",
"translation_butler_order_close_tips": "Translation service has not ended",
"translation_butler_order_close_tips2": "Do you end the translation butler service in advance?",
"translation_butler_order_failed": "Failed to release order",
"translation_butler_order_failed2": "Order generation failed Network exception",
"translation_butler_introduction": "Still annoying that the other person does n’t understand what you say? Choose the language you need to translate and describe the problem you are experiencing. Personal translation butler will be at your service",
"travel_introduction": "Are you traveling further and further away from your destination? Choose your starting point and ending point, the travel manager will accurately measure the distance for you",
"splash_tips_content4": "Unobstructed travel chat",
"splash_tips_content5": "Worry-free your trip",
"shock_notice": "Vibration notification",
"feedback_tips": "You can give me feedback in case of any questions",
"man_retranslate": "Manual retranslation",
"robot_retranslate": "Machine retranslation",
"see_original": "View original",
"forward": "Forward",
"copy_download_url": "Copy download address",
"total_friends_nus": "Total /s1 friends",
"hava_error_photo": "There are image violations",
"translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知",
"translation_butler_push_order_time": "时间:今天/s1 时长:",
"translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:",
"translation_butler_title3": "大神专属",
"translation_butler_start_receive_order": "开启接单",
"translation_butler_stop_receive_order": "未开启接单",
"translation_butler_stop_tips": "翻译人员无法进入创建订单",
"translation_butler_scenes2": "场景:",
"translation_butler_last_item_start": "[翻译管家服务开始]",
"translation_butler_last_item_end": "[翻译管家服务结束]",
"travel_start": "起点",
"travel_end": "终点",
"translation_butler_order_time_out": "翻译订单超时已被取消",
"translation_butler_order_close_tips": "翻译服务未结束不能主动结束",
"translation_butler_order_close_tips2": "是否提前结束翻译管家服务?",
"translation_butler_order_failed": "发布订单失败",
"translation_butler_order_failed2": "订单生成失败 网络异常",
"translation_butler_introduction": "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务",
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行",
"shock_notice": "震动通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"Your personal butler, to solve the problem of taxis going to the wrong destination caused by the language"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 4
- 3
i18n/ja-JP.json 查看文件

@@ -1227,6 +1227,7 @@
"copy_download_url": "复制下载地址",
"total_friends_nus": "共/s1位朋友",
"hava_error_photo": "有图片违规",
"translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知",
"translation_butler_push_order_time": "时间:今天/s1 时长:",
"translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:",
"translation_butler_title3": "大神专属",
@@ -1246,9 +1247,9 @@
"translation_butler_introduction": "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务",
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行" ,
"splash_tips_content5": "无忧你的旅行",
"shock_notice": "震动通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"您的贴身出行管家,解决语言不通打车走错路的问题"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 16
- 16
i18n/ko-KR.json 查看文件

@@ -368,7 +368,7 @@
"need_photo": "상대방에게 당신의 사진을 한 장 보내는 것을 신청합니다.걱정하지 마세요. 상대방이 스크린을 찍는 2초 후에 삭제할 거예요",
"choose_photo": "사진 선택",
"send_application": "신청 이미 발송했고 상대방이 확인한 후에 당신은 소식을 받겠습니다",
"not_authenticate": "당신이 아직 인증안 했습니다",
"not_authenticate": "당신이 아직 신분 진실을 인증 하지 않았습니다",
"after_authenticate": "당신의 진실성을 인증한 후에다른 사람과 연락할 수 있다",
"authenticate_now": "바로 인증",
"destroy_after": "본 후에 바로 삭제",
@@ -383,10 +383,10 @@
"his_evaluation": "그는 진실 평가 ",
"evaluate": "평가 ",
"friendly": "친절하다 ",
"interesting": "재미는 성격",
"interesting": "재미있다",
"readily": "상쾌하다",
"patient": "인내심",
"indifferent": "퉁명하다",
"indifferent": "도도하다",
"bad_temper": "난폭한 성격",
"courtesy": "예의",
"generous": "대범하다 ",
@@ -500,11 +500,11 @@
"enjoy_privileges": "회원존을 업그레이드 하여 특권을 있다",
"expires": "/s1만료",
"wallet": "지갑",
"setting": "프라이버시",
"setting": "개인 정보 보호",
"my_dynamic": "나의 동태 ",
"my_album": "나의 앨범",
"first_photo": "제 첫 번째 사진을 올리다",
"no_photo": "사진이 있어야 남자를 사로잡을 수 있다",
"no_photo": "멋진사진으로 상대방을 사로 잡아보세요",
"upload_photos": "사진을 올리다",
"upload_video": "영상을 올리다",
"upload": "사진 업로드",
@@ -606,8 +606,8 @@
"first_upload": "먼저 사진을 올리고 유료 앨범을 설정하십시오",
"need_permission": "보기 전에 내 검증을 통과해야 합니다",
"permission_choose": "다른 사람은 반드시 사진을 보내서 당신이 신분을 검증한 후에야 당신의 홈페이지를 볼 수 있게 해야 합니다, 확실합니까?",
"hide_me": "주변 사람들 목록에서 나를 숨 깁니다",
"hide_distance": "다른 사람에게 나의 거리를 숨기",
"hide_me": "주변 사람들 목록에서 나를 숨기기",
"hide_distance": "다른 사람에게 나의 거리를 숨기",
"hide_account": "다른 사람에게 내 사교 아이디를 숨기다",
"chat_setting": "통화 제어",
"chat_me": "사적인 대화를 나눌 권한이 있는 사람이 나에게 통화를 일으키도록 허락하다",
@@ -737,7 +737,7 @@
"agrees_application": "당신의 신청에 동의하는 사용자가 있습니다",
"red_photo": "빨간봉투 사진",
"dont": "불법노출 저속한 사진/동영상을 올리지 마십시오, 심각한 경우 아이디 차단됩니다",
"current_version": "현재 버전",
"current_version": "정보",
"bank_card": "은행 카드를 묶다",
"choose_bank": "계좌의개설한 은행을 선택하십시오",
"bank_number": "은행 카드 번호 입력하세요",
@@ -755,7 +755,7 @@
"set_amount": "인출 금액 설정",
"enter_amount": "H 코인의 수를 입력하십시오",
"can_withdraw": "인출 가능하다",
"language_set": "음성 설정 ",
"language_set": "언어설정",
"user_agreement": "사용자 협의 ",
"renewal_fee": "속비",
"open_immediately": "즉시 개통",
@@ -763,7 +763,7 @@
"half_month": "반 개월",
"month2": " /s1 개월 ",
"cancel_shield": "차단 취소",
"blacklist2": "블랙리스트",
"blacklist2": "차단된목록",
"longTime": "(회원이 6초까지 연장 가능)",
"longClick": "화면을 눌러 보기",
"stop_program": "발효 중인 프로그램을 먼저 종료하세요",
@@ -967,8 +967,8 @@
"test_it": "즉시 체험",
"found_new": "새 버전이 발견됨",
"ad": "광고",
"attention": "관심을 가지다",
"fans": "",
"attention": "팔로잉",
"fans": "팔로워",
"apply_see": "/s1 내 자료 페이지 보기 요청.",
"agree_apply": "/s1 내 보기 요청을 통과했다.",
"see_redBag": "/s1 내 돈봉투 사진을 봤습니다.",
@@ -1058,7 +1058,7 @@
"change_group_name": "그룹 이름 수정",
"my_group_nickname": "이 그룹에 있는 내 닉네임",
"group_chat": "그룹 채팅",
"create_group_chat": "그룹 채팅 창건하다.",
"create_group_chat": "새로운 채팅",
"added_friends_tips": "너는 상대방이 통과할 때까지 검증 신청을 보내야 한다.",
"group_chat_name": "그룹 채팅 미름",
"my_group_nickname_tips": "여기서는 당신이 이 그룹에 있는 닉네임을 설정할 수 있으며, 이 닉네임은 이 그룹에만 표시됩니다.",
@@ -1247,9 +1247,9 @@
"translation_butler_introduction": "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务",
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行" ,
"splash_tips_content5": "无忧你的旅行",
"shock_notice": "震动通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"您的贴身出行管家,解决语言不通打车走错路的问题"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 4
- 3
i18n/vi-VN.json 查看文件

@@ -1227,6 +1227,7 @@
"copy_download_url": "复制下载地址",
"total_friends_nus": "共/s1位朋友",
"hava_error_photo": "有图片违规",
"translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知",
"translation_butler_push_order_time": "时间:今天/s1 时长:",
"translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:",
"translation_butler_title3": "大神专属",
@@ -1246,9 +1247,9 @@
"translation_butler_introduction": "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务",
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行" ,
"splash_tips_content5": "无忧你的旅行",
"shock_notice": "震动通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"您的贴身出行管家,解决语言不通打车走错路的问题"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 3
- 2
i18n/zh-CN.json 查看文件

@@ -1248,7 +1248,8 @@
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行",
"shock_notice":"震动通知",
"shock_notice": "震动通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"您的贴身出行管家,解决语言不通打车走错路的问题"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 4
- 3
i18n/zh-HK.json 查看文件

@@ -1227,6 +1227,7 @@
"copy_download_url": "複製下載地址",
"total_friends_nus": "共/s1位朋友",
"hava_error_photo": "有圖片違規",
"translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知",
"translation_butler_push_order_time": "时间:今天/s1 时长:",
"translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:",
"translation_butler_title3": "大神专属",
@@ -1247,8 +1248,8 @@
"travel_introduction": "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距",
"splash_tips_content4": "出行聊天畅通无阻",
"splash_tips_content5": "无忧你的旅行",
"shock_notice": "震通知",
"shock_notice": "震通知",
"max_upload_size": "最多上传/s1张",
"travel_tips2":"您的贴身出行管家,解决语言不通打车走错路的问题"
"travel_tips2": "您的贴身出行管家,解决语言不通打车走错路的问题",
"new_friends_tips": "现在我们可以开始聊天了。"
}

+ 1
- 3
lib/chat/ChatPageItem.dart 查看文件

@@ -924,9 +924,7 @@ class _ChatPageItemState extends State<ChatPageItem>
}
var contentWidth = _getTextWidth(textList[curTextType]);
if (contentWidth > width && contentWidth <= maxWidth) {
width = contentWidth;
}
width = min(max(contentWidth, width), maxWidth);
showMsg.add(Container(
constraints: BoxConstraints(maxWidth: maxWidth, minHeight: 22),


+ 1
- 3
lib/chat/group_chat_item.dart 查看文件

@@ -895,9 +895,7 @@ class _GroupChatPageItemState extends State<GroupChatPageItem>
}
var contentWidth = _getTextWidth(textList[curTextType]);
if (contentWidth > width && contentWidth <= maxWidth) {
width = contentWidth;
}
width = min(max(contentWidth, width), maxWidth);
showMsg.add(Container(
constraints: BoxConstraints(maxWidth: maxWidth, minHeight: 22),


+ 22
- 23
lib/chat/input_bar.dart 查看文件

@@ -80,26 +80,26 @@ class InputBarState extends State<InputBar>
getKeyboardHeight();
_bloc.start();
_textCtrl.addListener(() {
if (alterPosition.length > 0) {
int offset = -1;
int currentIndex = _textCtrl.selection.baseOffset;
for (int i = 0; i < alterPosition.length; i++) {
var postion = alterPosition[i];
if (currentIndex >= postion.startIndex &&
currentIndex <= postion.endIndex) {
int middle = (postion.startIndex + postion.endIndex) ~/ 2;
offset =
currentIndex >= middle ? postion.endIndex : postion.startIndex;
break;
}
}
if (offset != -1) {
_textCtrl.value = TextEditingValue(
text: _textCtrl.text,
selection:
TextSelection.fromPosition(TextPosition(offset: offset)));
}
}
// if (alterPosition.length > 0) {
// int offset = -1;
// int currentIndex = _textCtrl.selection.baseOffset;
// for (int i = 0; i < alterPosition.length; i++) {
// var postion = alterPosition[i];
// if (currentIndex >= postion.startIndex &&
// currentIndex <= postion.endIndex) {
// int middle = (postion.startIndex + postion.endIndex) ~/ 2;
// offset =
// currentIndex >= middle ? postion.endIndex : postion.startIndex;
// break;
// }
// }
// if (offset != -1) {
// _textCtrl.value = TextEditingValue(
// text: _textCtrl.text,
// selection:
// TextSelection.fromPosition(TextPosition(offset: offset)));
// }
// }
});
//处理引用事件
MessageMgr().on('Reply Select Message', replySelectMsg);
@@ -195,9 +195,8 @@ class InputBarState extends State<InputBar>
for (int i = 0; i < alterPosition.length; i++) {
var postion = alterPosition[i];
if (currentIndex >= postion.startIndex &&
currentIndex <= postion.endIndex) {
result = originalInputStr.replaceRange(
postion.startIndex, postion.endIndex, '');
currentIndex < postion.endIndex) {
result = originalInputStr.replaceRange(postion.startIndex, postion.endIndex, '');
starIndex = postion.startIndex;
alterPosition.removeAt(i);
break;


+ 1
- 0
lib/data/UserData.dart 查看文件

@@ -248,6 +248,7 @@ class UserData {
Vibration.vibrate();
Timer.periodic(Duration(seconds: 3), (timer) async {
UserData().isShocking = false;
timer.cancel();
});
}
}


+ 102
- 76
lib/generated/i18n.dart 查看文件

@@ -2269,8 +2269,8 @@ class I18n implements WidgetsLocalizations {
String get you_qr => "You join group chat by scanning QR code";
/// "/s1 join group chat by scanning QR code "
String get others_qr => "/s1 join group chat by scanning QR code ";
/// " \"/s1 \" want to invite /S2 friends to join the group chat \$ to confirm \$"
String get invite_confirm => " \"/s1 \" want to invite /S2 friends to join the group chat \$ to confirm \$";
/// " \"/s1 \" want to invite /s2 friends to join the group chat \$ to confirm \$"
String get invite_confirm => " \"/s1 \" want to invite /s2 friends to join the group chat \$ to confirm \$";
/// " \" /s1 \"want to invite \" /s2 \" to join the group chat "
String get want_invite_confirm => " \" /s1 \"want to invite \" /s2 \" to join the group chat ";
/// " \"/s1 \"joins group chat, confirmed"
@@ -2489,54 +2489,56 @@ class I18n implements WidgetsLocalizations {
String get total_friends_nus => "Total /s1 friends";
/// "There are image violations"
String get hava_error_photo => "There are image violations";
/// "The translation service is over. It's hard for you. Please stay online and watch for new order notifications"
String get translation_butler_evaluation_tips2 => "The translation service is over. It's hard for you. Please stay online and watch for new order notifications";
/// "Time: Today/s1 Duration:"
String get translation_butler_push_order_time => "Time: Today/s1 Duration:";
/// "Order time: Today/s1 Waiting time:"
String get translation_butler_push_order_time2 => "Order time: Today/s1 Waiting time:";
/// "Great God Exclusive"
String get translation_butler_title3 => "Great God Exclusive";
/// "Open Receive order"
String get translation_butler_start_receive_order => "Open Receive order";
/// "Order not opened"
String get translation_butler_stop_receive_order => "Order not opened";
/// "Translators cannot enter create order"
String get translation_butler_stop_tips => "Translators cannot enter create order";
/// "Scenes:"
String get translation_butler_scenes2 => "Scenes:";
/// "[Translation housekeeper service starts]"
String get translation_butler_last_item_start => "[Translation housekeeper service starts]";
/// "[End of translation butler service]"
String get translation_butler_last_item_end => "[End of translation butler service]";
/// "Start"
String get travel_start => "Start";
/// "End"
String get travel_end => "End";
/// "Translation order timeout has been cancelled"
String get translation_butler_order_time_out => "Translation order timeout has been cancelled";
/// "Translation service has not ended"
String get translation_butler_order_close_tips => "Translation service has not ended";
/// "Do you end the translation butler service in advance?"
String get translation_butler_order_close_tips2 => "Do you end the translation butler service in advance?";
/// "Failed to release order"
String get translation_butler_order_failed => "Failed to release order";
/// "Order generation failed Network exception"
String get translation_butler_order_failed2 => "Order generation failed Network exception";
/// "Still annoying that the other person does n’t understand what you say? Choose the language you need to translate and describe the problem you are experiencing. Personal translation butler will be at your service"
String get translation_butler_introduction => "Still annoying that the other person does n’t understand what you say? Choose the language you need to translate and describe the problem you are experiencing. Personal translation butler will be at your service";
/// "Are you traveling further and further away from your destination? Choose your starting point and ending point, the travel manager will accurately measure the distance for you"
String get travel_introduction => "Are you traveling further and further away from your destination? Choose your starting point and ending point, the travel manager will accurately measure the distance for you";
/// "Unobstructed travel chat"
String get splash_tips_content4 => "Unobstructed travel chat";
/// "Worry-free your trip"
String get splash_tips_content5 => "Worry-free your trip";
/// "Vibration notification"
String get shock_notice => "Vibration notification";
/// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"
String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知";
/// "时间:今天/s1 时长:"
String get translation_butler_push_order_time => "时间:今天/s1 时长:";
/// "下单时间:今天/s1 等待时长:"
String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:";
/// "大神专属"
String get translation_butler_title3 => "大神专属";
/// "开启接单"
String get translation_butler_start_receive_order => "开启接单";
/// "未开启接单"
String get translation_butler_stop_receive_order => "未开启接单";
/// "翻译人员无法进入创建订单"
String get translation_butler_stop_tips => "翻译人员无法进入创建订单";
/// "场景:"
String get translation_butler_scenes2 => "场景:";
/// "[翻译管家服务开始]"
String get translation_butler_last_item_start => "[翻译管家服务开始]";
/// "[翻译管家服务结束]"
String get translation_butler_last_item_end => "[翻译管家服务结束]";
/// "起点"
String get travel_start => "起点";
/// "终点"
String get travel_end => "终点";
/// "翻译订单超时已被取消"
String get translation_butler_order_time_out => "翻译订单超时已被取消";
/// "翻译服务未结束不能主动结束"
String get translation_butler_order_close_tips => "翻译服务未结束不能主动结束";
/// "是否提前结束翻译管家服务?"
String get translation_butler_order_close_tips2 => "是否提前结束翻译管家服务?";
/// "发布订单失败"
String get translation_butler_order_failed => "发布订单失败";
/// "订单生成失败 网络异常"
String get translation_butler_order_failed2 => "订单生成失败 网络异常";
/// "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务"
String get translation_butler_introduction => "还在烦恼对方听不懂你说什么吗?选择你需要翻译的语言,描述你遇到的问题。贴身翻译管家将随时为你服务";
/// "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距"
String get travel_introduction => "是否在离目的地越行越远?选择你的起点和终点,出行管家为你精准测距";
/// "出行聊天畅通无阻"
String get splash_tips_content4 => "出行聊天畅通无阻";
/// "无忧你的旅行"
String get splash_tips_content5 => "无忧你的旅行";
/// "震动通知"
String get shock_notice => "震动通知";
/// "最多上传/s1张"
String get max_upload_size => "最多上传/s1张";
/// "Your personal butler, to solve the problem of taxis going to the wrong destination caused by the language"
String get travel_tips2 => "Your personal butler, to solve the problem of taxis going to the wrong destination caused by the language";
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
String get new_friends_tips => "现在我们可以开始聊天了。";
}

class _I18n_en_US extends I18n {
@@ -6233,6 +6235,9 @@ class _I18n_vi_VN extends I18n {
/// "有图片违规"
@override
String get hava_error_photo => "有图片违规";
/// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"
@override
String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知";
/// "时间:今天/s1 时长:"
@override
String get translation_butler_push_order_time => "时间:今天/s1 时长:";
@@ -6302,6 +6307,9 @@ class _I18n_vi_VN extends I18n {
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
@override
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
@override
String get new_friends_tips => "现在我们可以开始聊天了。";

@override
TextDirection get textDirection => TextDirection.ltr;
@@ -9994,6 +10002,9 @@ class _I18n_zh_HK extends I18n {
/// "有圖片違規"
@override
String get hava_error_photo => "有圖片違規";
/// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"
@override
String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知";
/// "时间:今天/s1 时长:"
@override
String get translation_butler_push_order_time => "时间:今天/s1 时长:";
@@ -10054,15 +10065,18 @@ class _I18n_zh_HK extends I18n {
/// "无忧你的旅行"
@override
String get splash_tips_content5 => "无忧你的旅行";
/// "震通知"
/// "震通知"
@override
String get shock_notice => "震通知";
String get shock_notice => "震通知";
/// "最多上传/s1张"
@override
String get max_upload_size => "最多上传/s1张";
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
@override
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
@override
String get new_friends_tips => "现在我们可以开始聊天了。";

@override
TextDirection get textDirection => TextDirection.ltr;
@@ -13827,6 +13841,9 @@ class _I18n_zh_CN extends _I18n_zh_HK {
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
@override
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
@override
String get new_friends_tips => "现在我们可以开始聊天了。";

@override
TextDirection get textDirection => TextDirection.ltr;
@@ -14942,9 +14959,9 @@ class _I18n_ko_KR extends I18n {
/// "신청 이미 발송했고 상대방이 확인한 후에 당신은 소식을 받겠습니다"
@override
String get send_application => "신청 이미 발송했고 상대방이 확인한 후에 당신은 소식을 받겠습니다";
/// "당신이 아직 인증안 했습니다"
/// "당신이 아직 신분 진실을 인증 하지 않았습니다"
@override
String get not_authenticate => "당신이 아직 인증안 했습니다";
String get not_authenticate => "당신이 아직 신분 진실을 인증 하지 않았습니다";
/// "당신의 진실성을 인증한 후에다른 사람과 연락할 수 있다"
@override
String get after_authenticate => "당신의 진실성을 인증한 후에다른 사람과 연락할 수 있다";
@@ -14987,18 +15004,18 @@ class _I18n_ko_KR extends I18n {
/// "친절하다 "
@override
String get friendly => "친절하다 ";
/// "재미는 성격"
/// "재미있다"
@override
String get interesting => "재미는 성격";
String get interesting => "재미있다";
/// "상쾌하다"
@override
String get readily => "상쾌하다";
/// "인내심"
@override
String get patient => "인내심";
/// "퉁명하다"
/// "도도하다"
@override
String get indifferent => "퉁명하다";
String get indifferent => "도도하다";
/// "난폭한 성격"
@override
String get bad_temper => "난폭한 성격";
@@ -15338,9 +15355,9 @@ class _I18n_ko_KR extends I18n {
/// "지갑"
@override
String get wallet => "지갑";
/// "프라이버시"
/// "개인 정보 보호"
@override
String get setting => "프라이버시";
String get setting => "개인 정보 보호";
/// "나의 동태 "
@override
String get my_dynamic => "나의 동태 ";
@@ -15350,9 +15367,9 @@ class _I18n_ko_KR extends I18n {
/// "제 첫 번째 사진을 올리다"
@override
String get first_photo => "제 첫 번째 사진을 올리다";
/// "사진이 있어야 남자를 사로잡을 수 있다"
/// "멋진사진으로 상대방을 사로 잡아보세요"
@override
String get no_photo => "사진이 있어야 남자를 사로잡을 수 있다";
String get no_photo => "멋진사진으로 상대방을 사로 잡아보세요";
/// "사진을 올리다"
@override
String get upload_photos => "사진을 올리다";
@@ -15656,12 +15673,12 @@ class _I18n_ko_KR extends I18n {
/// "다른 사람은 반드시 사진을 보내서 당신이 신분을 검증한 후에야 당신의 홈페이지를 볼 수 있게 해야 합니다, 확실합니까?"
@override
String get permission_choose => "다른 사람은 반드시 사진을 보내서 당신이 신분을 검증한 후에야 당신의 홈페이지를 볼 수 있게 해야 합니다, 확실합니까?";
/// "주변 사람들 목록에서 나를 숨 깁니다"
/// "주변 사람들 목록에서 나를 숨기기"
@override
String get hide_me => "주변 사람들 목록에서 나를 숨 깁니다";
/// "다른 사람에게 나의 거리를 숨기"
String get hide_me => "주변 사람들 목록에서 나를 숨기기";
/// "다른 사람에게 나의 거리를 숨기"
@override
String get hide_distance => "다른 사람에게 나의 거리를 숨기";
String get hide_distance => "다른 사람에게 나의 거리를 숨기";
/// "다른 사람에게 내 사교 아이디를 숨기다"
@override
String get hide_account => "다른 사람에게 내 사교 아이디를 숨기다";
@@ -16049,9 +16066,9 @@ class _I18n_ko_KR extends I18n {
/// "불법노출 저속한 사진/동영상을 올리지 마십시오, 심각한 경우 아이디 차단됩니다"
@override
String get dont => "불법노출 저속한 사진/동영상을 올리지 마십시오, 심각한 경우 아이디 차단됩니다";
/// "현재 버전"
/// "정보"
@override
String get current_version => "현재 버전";
String get current_version => "정보";
/// "은행 카드를 묶다"
@override
String get bank_card => "은행 카드를 묶다";
@@ -16103,9 +16120,9 @@ class _I18n_ko_KR extends I18n {
/// "인출 가능하다"
@override
String get can_withdraw => "인출 가능하다";
/// "음성 설정 "
/// "언어설정"
@override
String get language_set => "음성 설정 ";
String get language_set => "언어설정";
/// "사용자 협의 "
@override
String get user_agreement => "사용자 협의 ";
@@ -16127,9 +16144,9 @@ class _I18n_ko_KR extends I18n {
/// "차단 취소"
@override
String get cancel_shield => "차단 취소";
/// "블랙리스트"
/// "차단된목록"
@override
String get blacklist2 => "블랙리스트";
String get blacklist2 => "차단된목록";
/// "(회원이 6초까지 연장 가능)"
@override
String get longTime => "(회원이 6초까지 연장 가능)";
@@ -16739,12 +16756,12 @@ class _I18n_ko_KR extends I18n {
/// "광고"
@override
String get ad => "광고";
/// "관심을 가지다"
/// "팔로잉"
@override
String get attention => "관심을 가지다";
/// ""
String get attention => "팔로잉";
/// "팔로워"
@override
String get fans => "";
String get fans => "팔로워";
/// "/s1 내 자료 페이지 보기 요청."
@override
String get apply_see => "/s1 내 자료 페이지 보기 요청.";
@@ -17012,9 +17029,9 @@ class _I18n_ko_KR extends I18n {
/// "그룹 채팅"
@override
String get group_chat => "그룹 채팅";
/// "그룹 채팅 창건하다."
/// "새로운 채팅"
@override
String get create_group_chat => "그룹 채팅 창건하다.";
String get create_group_chat => "새로운 채팅";
/// "너는 상대방이 통과할 때까지 검증 신청을 보내야 한다."
@override
String get added_friends_tips => "너는 상대방이 통과할 때까지 검증 신청을 보내야 한다.";
@@ -17591,6 +17608,9 @@ class _I18n_ko_KR extends I18n {
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
@override
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
@override
String get new_friends_tips => "现在我们可以开始聊天了。";

@override
TextDirection get textDirection => TextDirection.ltr;
@@ -21283,6 +21303,9 @@ class _I18n_ja_JP extends I18n {
/// "有图片违规"
@override
String get hava_error_photo => "有图片违规";
/// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"
@override
String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知";
/// "时间:今天/s1 时长:"
@override
String get translation_butler_push_order_time => "时间:今天/s1 时长:";
@@ -21352,6 +21375,9 @@ class _I18n_ja_JP extends I18n {
/// "您的贴身出行管家,解决语言不通打车走错路的问题"
@override
String get travel_tips2 => "您的贴身出行管家,解决语言不通打车走错路的问题";
/// "现在我们可以开始聊天了。"
@override
String get new_friends_tips => "现在我们可以开始聊天了。";

@override
TextDirection get textDirection => TextDirection.ltr;


+ 39
- 35
lib/home/AddProgram.dart 查看文件

@@ -712,43 +712,48 @@ class _AddProgramState extends State<AddProgram> {
List<Asset> resultList = List<Asset>();
resultList = await MultiImagePicker.pickImages(
maxImages: Max_Img_Num - imgUrlList.length,
enableCamera: false,
selectedAssets: [],
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"),
materialOptions: MaterialOptions(
actionBarColor: "#50A7F9",
actionBarTitle: "Hibok",
allViewTitle: "",
useDetailsView: true,
selectCircleStrokeColor: "#000000",
),
);
if (resultList != null && resultList.length > 0) {
List<File> fileList = [];
for (var i = 0; i < resultList.length; i++) {
Asset photoEntity = resultList[i];
print('名字:${photoEntity.name}');
ByteData byteData = await photoEntity.getByteData();
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}.png', byteData.buffer.asInt8List(0));
resultList = await MultiImagePicker.pickImages(
maxImages: Max_Img_Num - imgUrlList.length,
enableCamera: false,
selectedAssets: [],
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"),
materialOptions: MaterialOptions(
actionBarColor: "#50A7F9",
actionBarTitle: "Hibok",
allViewTitle: "",
useDetailsView: false,
selectCircleStrokeColor: "#000000",
),
);
fileList.add(file);
}
print('文件列表${fileList.length}');
Map data = {"type": 3, "userId": UserData().basicInfo.userId};
if (resultList != null && resultList.length > 0) {
List<File> fileList = [];
for (var i = 0; i < resultList.length; i++) {
Asset photoEntity = resultList[i];
print('名字:${photoEntity.name}');
ByteData byteData = await photoEntity.getByteData();
File file = await FileCacheMgr().writeFile(
'temp-photo-${DateTime.now().millisecondsSinceEpoch}.png',
byteData.buffer.asInt8List(0));
fileList.add(file);
}
print('文件列表${fileList.length}');
Map data = {"type": 7, "userId": UserData().basicInfo.userId};
data['sign'] = TokenMgr().getSign(data);
Response res = await HttpUtil().uploadFiles(
fileList, data, 'upload/post/postfiles', 'image',
isShowLoading: true);
var resData = res.data;
if (resData['code'] == 0 && resData['msg'] != null) {
imgUrlList.addAll(resData['msg'].split("|"));
setState(() {});
var resData = res.data;
if (resData['code'] == 0 && resData['msg'] != null) {
var returnList = resData['msg'].split('|');
imgUrlList.addAll(returnList);
if (returnList.length != fileList.length) {
showToast(I18n.of(context).hava_error_photo);
}
setState(() {});
}
}
// var photos = await PhotoPicker.pickAsset(
// context: context,
@@ -908,8 +913,7 @@ class _AddProgramState extends State<AddProgram> {
contentPadding:
EdgeInsets.only(top: 6, bottom: 10, right: 10),
hintText: I18n.of(context).please_civilization,
hintStyle:
TextStyle(fontSize: 12, height: 1.15),
hintStyle: TextStyle(fontSize: 12, height: 1.15),
border: InputBorder.none,
),
style: TextStyle(
@@ -1198,7 +1202,7 @@ class _AddProgramState extends State<AddProgram> {
.replaceFirst('/s1', UserData().addProgramPrice.toString());
}
return Container(
padding: EdgeInsets.only(bottom: 100, left: 20, right: 20),
padding: EdgeInsets.only(bottom: 100, left: 20, right: 20),
child: Text(
str,
textScaleFactor: 1.0,
@@ -1352,8 +1356,8 @@ class _AddProgramState extends State<AddProgram> {
var hopeObject = '';
lovePeopleId.forEach((f) => hopeObject += hopeObject == '' ? f : ',$f');
String temp='';
String postTemp='';
String temp = '';
String postTemp = '';
imgUrlList.forEach((str) {
temp += (temp == "" ? str : '|$str');
postTemp += (postTemp == ""


+ 8
- 5
lib/home/InformUser.dart 查看文件

@@ -179,7 +179,6 @@ class _InformUserPageState extends State<InformUserPage> {
}
void _sendPicture() async {
List<Asset> resultList = List<Asset>();
resultList = await MultiImagePicker.pickImages(
@@ -201,7 +200,9 @@ class _InformUserPageState extends State<InformUserPage> {
for (var i = 0; i < resultList.length; i++) {
Asset photoEntity = resultList[i];
ByteData byteData = await photoEntity.getByteData();
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}.png', byteData.buffer.asInt8List(0));
File file = await FileCacheMgr().writeFile(
'temp-photo-${DateTime.now().millisecondsSinceEpoch}.png',
byteData.buffer.asInt8List(0));
fileList.add(file);
}
Map data = {"type": 3, "userId": UserData().basicInfo.userId};
@@ -211,13 +212,15 @@ class _InformUserPageState extends State<InformUserPage> {
isShowLoading: true);
var resData = res.data;
if (resData['code'] == 0 && resData['msg'] != null) {
imgUrlList.addAll(resData['msg'].split("|"));
var returnList = resData['msg'].split('|');
imgUrlList.addAll(returnList);
if (returnList.length != fileList.length) {
showToast(I18n.of(context).hava_error_photo);
}
setState(() {});
}
}
// var photos = await PhotoPicker.pickAsset(
// context: context,
// themeColor: Color(0xFFF0F0F0),


+ 2
- 1
lib/home/ProfilePage.dart 查看文件

@@ -1647,13 +1647,14 @@ class _ProfilePageState extends State<ProfilePage>
'UserName': userInfo.nickName
});
FriendListMgr().addFriend(friendModel);
FriendListMgr().deleteLocalUserId();
MessageMgr().emit('do_friend_apply',
{'userId': userInfo.userId, 'state': 1});
MessageMgr().emit('Add friend');
//同意好友后发送打招呼
MsgModel msgModel = MsgHandler.createSendMsg(
ChatType.TextChatType, '现在我们可以开始聊天了。',
ChatType.TextChatType, I18n.of(context).new_friends_tips,
friendId: userInfo.userId,
refMsg: null,
refShortTxt: null,


+ 0
- 1
lib/home/homeMain.dart 查看文件

@@ -6,7 +6,6 @@ import 'package:chat/data/translate_hk_data_mgr.dart';
import 'package:chat/generated/i18n.dart';
import 'package:chat/home/SystemEditPage.dart';
import 'package:chat/home/find_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';


+ 5
- 2
lib/home/new_friends.dart 查看文件

@@ -2,6 +2,7 @@ import 'package:chat/data/UserData.dart';
import 'package:chat/data/WebData.dart';
import 'package:chat/data/constants.dart';
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/MessageMgr.dart';
@@ -11,6 +12,7 @@ import 'package:dio/dio.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'ProfilePage.dart';
@@ -258,8 +260,9 @@ class _NewFriendsPageState extends State<NewFriendsPage> {
return _ContactItem(
userId: _contact.friendId,
avatar: _contact.avatar,
title: _contact.name,
state: _contact.state,
title: Provider.of<RefNameProvider>(context)
.getRefName(_contact.friendId, _contact.name),
state: _contact.state,
isShowDivder: true,
applyId: _contact.applyId,
groupTitle: _isGroupTitle


+ 0
- 1
lib/home/realtimehelper/real_time_helper_page.dart 查看文件

@@ -2,7 +2,6 @@ import 'package:chat/data/UserData.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/utils/CustomUI.dart';
import 'package:chat/utils/MessageMgr.dart';
import 'package:chat/utils/msgHandler.dart';
import 'package:chat/utils/screen.dart';


+ 0
- 1
lib/home/realtimehelper/translation_butler_page.dart 查看文件

@@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:ffi';

import 'package:chat/data/UserData.dart';
import 'package:chat/data/translate_hk_data_mgr.dart';


+ 13
- 20
lib/utils/HttpUtil.dart 查看文件

@@ -1411,19 +1411,17 @@ class HttpUtil {
};
data['sign'] = TokenMgr().getSign(data);
Response res = await HttpUtil()
.post('friendship/check/userFriends', data: data);
Response res =
await HttpUtil().post('friendship/check/userFriends', data: data);
Map resData = res.data;
if (resData['code'] == 0) {
FriendListMgr().checkFromServer(resData['data']);
}
}
//保存设备名称和编码
saveMobileInfo() async {
String mobileType = '';
saveMobileInfo() async {
String mobileType = '';
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
@@ -1449,11 +1447,12 @@ String mobileType = '';
}
///实时帮-翻译管家评价
evaluationTransalteHK(String orderNo,String value,bool isGood,Function callback) async {
evaluationTransalteHK(
String orderNo, String value, bool isGood, Function callback) async {
Map data = {
"userId": UserData().basicInfo.userId,
"orderNo": orderNo,
"gradeStatus":isGood?1:2
"gradeStatus": isGood ? 1 : 2
};
data['sign'] = TokenMgr().getSign(data);
data['value'] = value;
@@ -1466,14 +1465,13 @@ String mobileType = '';
var resData = res.data;
if (resData['code'] == 0) {
showToast('评价成功');
}else{
} else {
showToast(I18n.of(Constants.getCurrentContext()).net_error);
}
}
///实时帮-用户测距
userRanging(int distance,String origin,String ending) async {
userRanging(int distance, String origin, String ending) async {
Map data = {
"userId": UserData().basicInfo.userId,
"distance": distance,
@@ -1490,17 +1488,16 @@ String mobileType = '';
var resData = res.data;
if (resData['code'] == 0) {
print('实时帮-用户测距提交 成功');
}else{
} else {
print('实时帮-用户测距提交 失败');
}
}
///实时帮-翻译人员上线、下线
translateHKloginRecord(bool isLogin,Function callback) async {
translateHKloginRecord(bool isLogin, Function callback) async {
Map data = {
"userId": UserData().basicInfo.userId,
"type": isLogin?1:2,
"type": isLogin ? 1 : 2,
};
data['sign'] = TokenMgr().getSign(data);
print('请求data : $data');
@@ -1514,12 +1511,8 @@ String mobileType = '';
if (resData['code'] == 0) {
callback();
print('翻译人员上线、下线 成功');
}else{
} else {
print('翻译人员上线、下线 失败 ${resData['msg']}');
}
}
}

+ 20
- 2
lib/utils/friend_list_mgr.dart 查看文件

@@ -1,8 +1,10 @@
import 'package:chat/data/constants.dart';
import 'package:chat/models/UserInfo.dart';
import 'package:chat/utils/HttpUtil.dart';
import 'package:chat/utils/conversation_table.dart';
import 'package:chat/utils/sql_util.dart';
import 'package:chat/utils/TokenMgr.dart';
import 'package:shared_preferences/shared_preferences.dart';
class FriendListMgr {
// 工厂模式
@@ -38,7 +40,7 @@ class FriendListMgr {
}
getFriendListFromServer() {
HttpUtil().getFriendList((List data) {
HttpUtil().getFriendList((List data) async {
Set oldUserId = new Set();
for (var friendModel in friendList) {
oldUserId.add(friendModel.friendId);
@@ -54,6 +56,21 @@ class FriendListMgr {
delteFriend(friendId);
}
});
deleteLocalUserId();
}
deleteLocalUserId() async {
//删除本地新加好友记录
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> list = prefs.getStringList(Constants.NewFriendsList);
if (list != null) {
for (int i = 0; i < list.length; i++) {
if (isMyFriend(int.parse(list[i]))) {
list.remove(list[i]);
}
}
prefs.setStringList(Constants.NewFriendsList, list);
}
}
//添加好友
@@ -122,7 +139,8 @@ class FriendListMgr {
idList.add(model.friendId);
}
idList.sort();
if (friendList.length == 0 || TokenMgr().generateMd5(idList.join(',')) != sign) {
if (friendList.length == 0 ||
TokenMgr().generateMd5(idList.join(',')) != sign) {
getFriendListFromServer();
}
}


Loading…
取消
儲存