新增会话界面 发送视频和视频拍摄 修改同意隐私协议的逻辑

This commit is contained in:
yangyuhao 2023-09-07 16:19:59 +08:00
parent 4a86537491
commit 8f6e0c5aab
6 changed files with 68 additions and 35 deletions

View File

@ -65,8 +65,8 @@ android {
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode 10
versionName "1.0.9"
versionCode 11
versionName "1.1.0"
manifestPlaceholders = [
vivo_APPID: "105669716",
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",

View File

@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:ffi';
import 'dart:io';
import 'dart:math';
import 'dart:typed_data';
@ -804,16 +805,14 @@ class _TIMTextFieldLayoutNarrowState
);
}
Future checkVipStatus() async {
if (!isVip) {
var data = await DioManager.instance.get(url: Api.getUserMine);
var bean = BaseResponse<MineResponseBean>.fromJson(
data, (data) => MineResponseBean.fromJson(data));
if (bean.isSuccess()) {
User userInfoBean = bean.data.user!;
isVip = userInfoBean.vip > 0;
}
Future checkVipStatus(int plate) async {
var data =
await DioManager.instance.get(url: Api.getIsVips + plate.toString());
if (data['code'] == 200) {
isVip = !data['data'];
}
if (!isVip) {
showOKToast('开通会员之后才能发送图片');
Get.bottomSheet(
@ -833,7 +832,8 @@ class _TIMTextFieldLayoutNarrowState
VideoPlayerController? videoPlayerController;
Future getVideoFile(ImageSource imageSource) async {
bool isOK = await checkVipStatus();
bool isOK = await checkVipStatus(imageSource == ImageSource.camera ? 2 : 4);
if (!isOK) {
return;
}
@ -874,6 +874,11 @@ class _TIMTextFieldLayoutNarrowState
duration: durationInSeconds.toInt(),
inputElement: context,
);
if (imageSource == ImageSource.camera) {
DioManager.instance.get(url: Api.getAddTrialCount + "2");
} else {
DioManager.instance.get(url: Api.getAddTrialCount + "4");
}
} catch (e) {
print(e);
// setState(() {
@ -906,7 +911,7 @@ class _TIMTextFieldLayoutNarrowState
}
Future getImageFile() async {
bool isOK = await checkVipStatus();
bool isOK = await checkVipStatus(3);
if (!isOK) {
return;
}
@ -919,6 +924,7 @@ class _TIMTextFieldLayoutNarrowState
convID: widget.conversationID,
convType: widget.conversationType,
inputElement: context);
var data = await DioManager.instance.get(url: Api.getAddTrialCount + "3");
} catch (e) {
print(e);
// setState(() {
@ -928,7 +934,7 @@ class _TIMTextFieldLayoutNarrowState
}
Future getTakeImageFile() async {
bool isOK = await checkVipStatus();
bool isOK = await checkVipStatus(1);
if (!isOK) {
return;
}
@ -942,6 +948,7 @@ class _TIMTextFieldLayoutNarrowState
convID: widget.conversationID,
convType: widget.conversationType,
inputElement: context);
var data = await DioManager.instance.get(url: Api.getAddTrialCount + "1");
} catch (e) {}
}

View File

@ -1,10 +1,13 @@
import 'dart:ffi';
import 'dart:io';
import 'package:connectivity/connectivity.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:tencent_chat_push_for_china/tencent_chat_push_for_china.dart';
import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart';
@ -36,7 +39,6 @@ class _CustomDialogState extends State<YesAgreementDialog> {
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
print(getAgreemement());
return false;
},
@ -126,10 +128,23 @@ class _CustomDialogState extends State<YesAgreementDialog> {
GestureDetector(
onTap: () async {
//
SmartDialog.showLoading();
var connectivityResult =
await Connectivity().checkConnectivity();
if (connectivityResult == ConnectivityResult.none) {
showOKToast("请检查网络连接是否正常");
print('没网');
return;
}
try {
var sp = await SharedPreferencesHelper.getInstance();
sp.setBool(SharedPreferencesHelper.AGREEMENT, true);
} catch (e) {}
await uploadBuzIDAndToken();
SmartDialog.dismiss();
pushLoginPage();
uploadBuzIDAndToken();
},
child: Container(
width: 240.sp,
@ -179,8 +194,7 @@ class _CustomDialogState extends State<YesAgreementDialog> {
);
}
void uploadBuzIDAndToken() async {
Future<bool> uploadBuzIDAndToken() async {
if (Platform.isAndroid) {
initWxApi();
}
@ -199,5 +213,7 @@ class _CustomDialogState extends State<YesAgreementDialog> {
print("token=" + res.code.toString());
}
return true;
}
}

View File

@ -1,5 +1,6 @@
import 'dart:io';
import 'package:connectivity/connectivity.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
@ -26,11 +27,16 @@ class SplashLogic extends GetxController {
super.onReady();
}
@override
void onInit() async {
super.onInit();
// await Future.delayed(Duration(seconds: 30));
//
var data1 =
await DioManager.instance.get(url: Api.getCircleList, params: {});
var bean1 = BaseResponse<ConfigBean>.fromJson(
@ -50,7 +56,6 @@ class SplashLogic extends GetxController {
});
}
if ((await getAuthorization()).isEmpty) {
if (Platform.isIOS) {
pushLoginPage();
@ -82,7 +87,9 @@ class SplashLogic extends GetxController {
});
return;
} else if (bean.code == 5000 || bean.code == 5001 || bean.code == 5002 ||
} else if (bean.code == 5000 ||
bean.code == 5001 ||
bean.code == 5002 ||
bean.code == 5003) {
pushLoginPage();
return;
@ -99,7 +106,6 @@ class SplashLogic extends GetxController {
}
}
void showReportDialog() {
FlutterNativeSplash.remove();
showDialog(

View File

@ -45,12 +45,7 @@ class _WebViewContainerState extends State<WebviewPage> {
},
onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith('')) {
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
)
..loadRequest(Uri.parse(url));

View File

@ -80,6 +80,15 @@ class Api {
static const getUserMine = 'user-service/my/main';
//vip弹窗
static const getIsVips = 'mall-service/vips/show/';
//
static const getAddTrialCount = 'mall-service/vips/trialCount/';
//
static const getUserInfo = 'user-service/my/home';