Ver código fonte

1.认证视频优化,将认证视频缓存到本地,提高访问效率

2.加入群聊点加入无反应,按钮没变色,实际已经加入
3.卸载重装后原本添加过得好友,又显示在申请列表上
网络延迟下解锁红包照片两次出错
master
ZCM 5 anos atrás
pai
commit
2c1e8cd691
15 arquivos alterados com 1223 adições e 1239 exclusões
  1. +1
    -1
      i18n/vi-VN.json
  2. +0
    -2
      lib/chat/ChatPageItem.dart
  3. +0
    -1
      lib/chat/group_chat_item.dart
  4. +0
    -1
      lib/chat/msg_state_widge.dart
  5. +0
    -1
      lib/chat/upload_item.dart
  6. +15
    -0
      lib/data/UserData.dart
  7. +2
    -0
      lib/data/constants.dart
  8. +2
    -2
      lib/generated/i18n.dart
  9. +1167
    -1167
      lib/home/ConversActionPage.dart
  10. +8
    -1
      lib/home/VerificationCenter.dart
  11. +7
    -59
      lib/home/VideoPage.dart
  12. +0
    -1
      lib/home/new_friends.dart
  13. +1
    -1
      lib/utils/PicSwiper.dart
  14. +19
    -1
      lib/utils/upload_util.dart
  15. +1
    -1
      pubspec.yaml

+ 1
- 1
i18n/vi-VN.json Ver arquivo

@@ -857,7 +857,7 @@
"has_get": "Đã nhận",
"no_gift": "Hiện tại không có phần quà nào",
"sent_gift": "Quà tặng",
"fill_tips": "Khi bạn điền thông tin thành công sẽ nhận được /s1H tề, không thể sửa đổi sau khi liên kết.",
"fill_tips": "Khi bạn nhập mã mời thành công sẽ nhận được /s1H coin, nhưng không thể sửa đổi sau khi liên kết.",
"bind_code": "Liên kết mã mời",
"invide_code": "Mã mời",
"confirm_delete": "Xác nhận xóa",


+ 0
- 2
lib/chat/ChatPageItem.dart Ver arquivo

@@ -13,7 +13,6 @@ import 'package:chat/chat/redbag_widget.dart';
import 'package:chat/chat/upload_item.dart';
import 'package:chat/chat/video_view.dart';
import 'package:chat/data/UserData.dart';
import 'package:chat/data/chat_data_mgr.dart';
import 'package:chat/data/constants.dart';
import 'package:chat/generated/i18n.dart';
import 'package:chat/models/ChatMsg.dart';
@@ -36,7 +35,6 @@ import 'package:chat/utils/sql_util.dart';
import 'package:chat/utils/upload_util.dart';
import 'package:chat/utils/video_anim.dart';
import 'package:chat/utils/wpop/w_popup_menu.dart';
import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';


+ 0
- 1
lib/chat/group_chat_item.dart Ver arquivo

@@ -34,7 +34,6 @@ import 'package:chat/utils/screen.dart';
import 'package:chat/utils/sound_util.dart';
import 'package:chat/utils/upload_util.dart';
import 'package:chat/utils/video_anim.dart';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';


+ 0
- 1
lib/chat/msg_state_widge.dart Ver arquivo

@@ -1,5 +1,4 @@
import 'package:chat/models/ChatMsg.dart';
import 'package:chat/proto/chat.pbserver.dart';
import 'package:chat/utils/MessageMgr.dart';
import 'package:chat/utils/msgHandler.dart';
import 'package:chat/utils/upload_util.dart';


+ 0
- 1
lib/chat/upload_item.dart Ver arquivo

@@ -4,7 +4,6 @@ import 'package:chat/utils/MessageMgr.dart';
import 'package:chat/utils/screen.dart';
import 'package:chat/utils/sql_util.dart';
import 'package:chat/utils/upload_util.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:percent_indicator/percent_indicator.dart';


+ 15
- 0
lib/data/UserData.dart Ver arquivo

@@ -4,6 +4,8 @@ import 'dart:convert';
import 'package:amap_location/amap_location.dart';
import 'package:chat/data/constants.dart';
import 'package:chat/utils/HttpUtil.dart';
import 'package:chat/utils/LoadingDialog.dart';
import 'package:chat/utils/upload_util.dart';
import 'package:crclib/crclib.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:vibration/vibration.dart';
@@ -252,4 +254,17 @@ class UserData {
});
}
}
Future getLoaclVideoPath(String url) async {
var key = Constants.LocalCertifiedvideo + basicInfo.userId.toString();
SharedPreferences spf = await SharedPreferences.getInstance();
var path = spf.get(key);
if (path == null) {
LoadingManage().showLoading();
path = await UploadUtil()
.downloadCertifiedvideo(url, () => LoadingManage().closeLoading());
spf.setString(key, path);
}
return path;
}
}

+ 2
- 0
lib/data/constants.dart Ver arquivo

@@ -287,6 +287,8 @@ class Constants {
static const GroupAlterKey = 'GroupAlterKey'; //群@
static const LocalCertifiedvideo = 'LocalCertifiedvideo'; //本地认证视频
/// currentGoodsId+'@'+receipt+'@'+purchaseToken
static final vipIcon = Image.asset(


+ 2
- 2
lib/generated/i18n.dart Ver arquivo

@@ -5137,9 +5137,9 @@ class _I18n_vi_VN extends I18n {
/// "Quà tặng"
@override
String get sent_gift => "Quà tặng";
/// "Khi bạn điền thông tin thành công sẽ nhận được /s1H tề, không thể sửa đổi sau khi liên kết."
/// "Khi bạn nhập mã mời thành công sẽ nhận được /s1H coin, nhưng không thể sửa đổi sau khi liên kết."
@override
String get fill_tips => "Khi bạn điền thông tin thành công sẽ nhận được /s1H tề, không thể sửa đổi sau khi liên kết.";
String get fill_tips => "Khi bạn nhập mã mời thành công sẽ nhận được /s1H coin, nhưng không thể sửa đổi sau khi liên kết.";
/// "Liên kết mã mời"
@override
String get bind_code => "Liên kết mã mời";


+ 1167
- 1167
lib/home/ConversActionPage.dart
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 8
- 1
lib/home/VerificationCenter.dart Ver arquivo

@@ -4,6 +4,7 @@ import 'package:chat/data/constants.dart';
import 'package:chat/generated/i18n.dart';
import 'package:chat/utils/CustomUI.dart';
import 'package:chat/utils/LoadingDialog.dart';
import 'package:chat/utils/sp_utils.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
@@ -68,7 +69,8 @@ class _VerificationCenterPageState extends State<VerificationCenterPage> {
if (state == 0 || state == 1) {
isPostVideo = true;
videoUrl = resData['data']['AttestationValue'];
_controller = VideoPlayerController.network(videoUrl)
var path = await UserData().getLoaclVideoPath(videoUrl);
_controller = VideoPlayerController.file(new File(path))
..initialize().then((_) {
setState(() {
isLoadingVideoFinish = true;
@@ -338,9 +340,14 @@ class _VerificationCenterPageState extends State<VerificationCenterPage> {
isShowLoading: true);
var resData = res.data;
if (resData['code'] == 0) {
SPUtils.saveString(
Constants.LocalCertifiedvideo +
UserData().basicInfo.userId.toString(),
videoFile.path);
showToast(I18n.of(context).success);
videoUrl = resData['msg'];
isPostVideo = true;
isLoadingVideoFinish = true;
_controller = VideoPlayerController.file(videoFile)
..initialize().then((_) {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.


+ 7
- 59
lib/home/VideoPage.dart Ver arquivo

@@ -1,3 +1,6 @@
import 'dart:io';
import 'package:chat/data/UserData.dart';
import 'package:chat/data/constants.dart';
import 'package:chat/generated/i18n.dart';
import 'package:chat/utils/CustomUI.dart';
@@ -8,7 +11,6 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
import 'package:video_player/video_player.dart';
class VideoPage extends StatefulWidget {
final userId;
@@ -18,7 +20,6 @@ class VideoPage extends StatefulWidget {
}
class _VideoPageState extends State<VideoPage> {
VideoPlayerController _controller;
bool isShowPlayButton = true;
bool isLoadingFish = false;
@@ -35,7 +36,7 @@ class _VideoPageState extends State<VideoPage> {
@override
void dispose() {
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
_controller.dispose();
controller.dispose();
super.dispose();
}
@@ -52,26 +53,15 @@ class _VideoPageState extends State<VideoPage> {
if (resData['code'] == 0) {
var videoUrl = resData['data']['AttestationValue'];
if (videoUrl != '' && videoUrl != null) {
// _controller = VideoPlayerController.network(videoUrl)
// ..initialize().then((_) {
// isLoadingFish = true;
// setState(() {});
// });
// _controller.addListener(() {
// if (_controller.value.position >= _controller.value.duration) {
// isShowPlayButton = true;
// setState(() {});
// }
// });
isLoadingFish = true;
var filePath = await UserData().getLoaclVideoPath(videoUrl);
controller.setFileDataSource(File(filePath), autoPlay: false);
setState(() {});
WidgetsBinding.instance.addPostFrameCallback((_) {
controller.setNetworkDataSource(videoUrl, autoPlay: false);
});
}
}
}
@override
Widget build(BuildContext context) {
Widget appBar = new AppBar(
@@ -111,47 +101,5 @@ class _VideoPageState extends State<VideoPage> {
},
mediaController: controller,
);
// Widget stack = Stack(
// alignment: Alignment.center,
// children: <Widget>[
//
// Container(
// width: Screen.width,
// child: _controller != null && _controller.value.initialized
// ? AspectRatio(
// aspectRatio: _controller.value.aspectRatio,
// child: VideoPlayer(_controller),
// )
// : Container(),
// ),
// InkWell(
// highlightColor: Colors.transparent,
// radius: 0,
// onTap: () {
// setState(() {
// if (!_controller.value.isPlaying) {
// _controller.seekTo(Duration());
// _controller.play();
// isShowPlayButton = false;
// setState(() {});
// }
// });
// },
// child: Container(
// height: MediaQuery.of(context).size.height,
// color: Colors.black.withOpacity(
// _controller != null && _controller.value.isPlaying ? 0 : 0.5),
// padding: EdgeInsets.only(bottom: 20),
// alignment: Alignment.center,
// child: Image.asset(
// 'assets/images/bofang.png',
// width:
// _controller != null && _controller.value.isPlaying ? 0 : 70,
// ),
// ))
// ],
// );
// return stack;
}
}

+ 0
- 1
lib/home/new_friends.dart Ver arquivo

@@ -13,7 +13,6 @@ 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:oktoast/oktoast.dart';
import 'package:provider/provider.dart';
import 'package:chat/models/friends_info.dart';
import 'ProfilePage.dart';


+ 1
- 1
lib/utils/PicSwiper.dart Ver arquivo

@@ -131,7 +131,7 @@ class _PicSwiperState extends State<PicSwiper>
};
data['sign'] = TokenMgr().getSign(data);
data['price'] = price;
Response res = await HttpUtil().post('user/browse/photo', data: data);
Response res = await HttpUtil().post('user/browse/photo', data: data,isShowLoading: true);
Map resData = res.data;
print(resData);
if (resData['code'] == 0) {


+ 19
- 1
lib/utils/upload_util.dart Ver arquivo

@@ -114,7 +114,7 @@ class UploadUtil {
return cancelMap[fileId];
}
cancelSendMsg(MsgModel msgModel){
cancelSendMsg(MsgModel msgModel) {
var token = cancelMap[msgModel.extraFile];
if (token != null) {
token.cancel('用户取消');
@@ -265,6 +265,24 @@ class UploadUtil {
}
}
//下载认证视频
Future downloadCertifiedvideo(String url, downloadSuccess) async {
Response response;
var path = await FileCacheMgr().genFilePath(url);
try {
response = await dio.download(url, path);
if (response.statusCode == 200) {
if (downloadSuccess != null) downloadSuccess();
return path;
} else {
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips);
return null;
}
} catch (e) {
showToast(I18n.of(Constants.getCurrentContext()).server_error_tips);
}
}
//机器人翻译,type 1文字,2语音
Future<String> commitTranslateSource(
int type, int sourceLang, int toLang, dynamic content) async {


+ 1
- 1
pubspec.yaml Ver arquivo

@@ -1,7 +1,7 @@
name: chat
description: A new Flutter project.
#修改版本号后get-clean
version: 1.1.0+15
version: 1.1.3+17

environment:
sdk: ">=2.1.0 <3.0.0"


Carregando…
Cancelar
Salvar