diff --git a/circle_app/android/app/build.gradle b/circle_app/android/app/build.gradle
index 27abffa..d4b80e4 100644
--- a/circle_app/android/app/build.gradle
+++ b/circle_app/android/app/build.gradle
@@ -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 6
- versionName "1.0.5"
+ versionCode 14
+ versionName "1.1.4"
manifestPlaceholders = [
vivo_APPID: "105669716",
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
diff --git a/circle_app/android/app/src/main/AndroidManifest.xml b/circle_app/android/app/src/main/AndroidManifest.xml
index 8cda5a1..838bce2 100644
--- a/circle_app/android/app/src/main/AndroidManifest.xml
+++ b/circle_app/android/app/src/main/AndroidManifest.xml
@@ -24,6 +24,9 @@
android:name="android.permission.READ_MEDIA_IMAGES"/>
+
+
+
@@ -71,7 +74,6 @@
android:hardwareAccelerated="true"
android:usesCleartextTraffic="true"
android:screenOrientation="portrait"
- android:showWhenLocked="true"
android:turnScreenOn="true"
android:networkSecurityConfig="@xml/network_security_config"
android:windowSoftInputMode="adjustResize">
diff --git a/circle_app/android/app/src/main/res/drawable/launch_background.xml b/circle_app/android/app/src/main/res/drawable/launch_background.xml
index 6ce8efd..a97dc18 100644
--- a/circle_app/android/app/src/main/res/drawable/launch_background.xml
+++ b/circle_app/android/app/src/main/res/drawable/launch_background.xml
@@ -7,7 +7,7 @@
-
+ android:src="@mipmap/launch_back" />
-
0){
+ circleName = numbers[0].name;
+ }
+
SharedPreferencesHelper.getInstance().then((sharedPreferences) {
vip = sharedPreferences.getInt(SharedPreferencesHelper.VIP);
print(vip);
diff --git a/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart b/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
index 0f52602..b0891e4 100644
--- a/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
+++ b/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
@@ -1,5 +1,8 @@
import 'dart:async';
+import 'dart:ffi';
+import 'dart:io';
import 'dart:math';
+import 'dart:typed_data';
import 'package:circle_app/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_send_sound_message.dart';
import 'package:circle_app/app/minefragment/logic.dart';
@@ -31,8 +34,11 @@ import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_send_sound_message.dart';
import 'package:tencent_extended_text_field/extended_text_field.dart';
import 'package:tencent_keyboard_visibility/tencent_keyboard_visibility.dart';
+import 'package:video_player/video_player.dart';
+import 'package:video_thumbnail/video_thumbnail.dart';
import '../../../../../util/eventBus.dart';
+import '../../../../call_out/logic.dart';
GlobalKey<_TIMTextFieldLayoutNarrowState> TIMnarrowTextFieldKey = GlobalKey();
@@ -80,7 +86,7 @@ class TIMTextFieldLayoutNarrow extends StatefulWidget {
/// hint text for textField widget
final String? hintText;
- final String? userId;
+ final String? userId;
final int? currentCursor;
@@ -140,7 +146,7 @@ class TIMTextFieldLayoutNarrow extends StatefulWidget {
required this.showSendEmoji,
required this.showMorePanel,
this.hintText,
- this.userId,
+ this.userId,
required this.customEmojiStickerList,
this.controller})
: super(key: key);
@@ -152,6 +158,7 @@ class TIMTextFieldLayoutNarrow extends StatefulWidget {
class _TIMTextFieldLayoutNarrowState
extends TIMUIKitState {
+
final TUISettingModel settingModel = serviceLocator();
final ImagePicker _picker = ImagePicker();
@@ -175,9 +182,10 @@ class _TIMTextFieldLayoutNarrowState
}
});
}
- if(null==commentBlackEvent){
- commentBlackEvent = EventBusManager.on().listen((event) {
- if(event.userId == widget.userId){
+ if (null == commentBlackEvent) {
+ commentBlackEvent =
+ EventBusManager.on().listen((event) {
+ if (event.userId == widget.userId) {
isBlack = event.isBlack;
}
});
@@ -185,15 +193,16 @@ class _TIMTextFieldLayoutNarrowState
getBlack();
}
- StreamSubscription? commentBlackEvent =null;
+
+ StreamSubscription? commentBlackEvent = null;
+
@override
void dispose() {
print("TIMTextFieldLayoutNarrow解绑");
- if(null!=commentBlackEvent){
+ if (null != commentBlackEvent) {
EventBusManager.cancelSubscription(commentBlackEvent!);
}
-
super.dispose();
}
@@ -201,7 +210,7 @@ class _TIMTextFieldLayoutNarrowState
getBlack() async {
final FriendshipServices _friendshipServices =
- serviceLocator();
+ serviceLocator();
List? blacklist = await _friendshipServices.getBlackList();
if (blacklist != null) {
isBlack = false;
@@ -214,7 +223,6 @@ class _TIMTextFieldLayoutNarrowState
}
}
-
void setSendButton() {
final value = widget.textEditingController.text;
if (isWebDevice() || isAndroidDevice()) {
@@ -412,7 +420,7 @@ class _TIMTextFieldLayoutNarrowState
setKeyboardHeight ??= OptimizeUtils.debounce((height) {
settingModel.keyboardHeight = height;
}, const Duration(seconds: 1));
- //
+ //
final debounceFunc = _debounce((value) {
if (isWebDevice() || isAndroidDevice()) {
if (value.isEmpty && showMoreButton != true) {
@@ -519,7 +527,7 @@ class _TIMTextFieldLayoutNarrowState
Stack(
children: [
Container(
- width: Get.width - 80.sp,
+ width: Get.width - 80.sp,
// width: 296.sp,
padding: EdgeInsets.symmetric(
vertical: 8, horizontal: 12.sp),
@@ -668,7 +676,7 @@ class _TIMTextFieldLayoutNarrowState
),
),
Container(
- height: 40.sp,
+ height: 64.sp,
width: Get.width,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
@@ -692,7 +700,8 @@ class _TIMTextFieldLayoutNarrowState
showSendSoundText = !showSendSoundText;
});
} else {
- var data = await Permission.microphone.request();
+ var data =
+ await Permission.microphone.request();
if (data.isGranted) {
setState(() {
showEmojiPanel = false;
@@ -700,7 +709,8 @@ class _TIMTextFieldLayoutNarrowState
showSendSoundText = !showSendSoundText;
});
} else {
- Permissions.showPermissionConfirmDialog(context, Permission.microphone.value);
+ Permissions.showPermissionConfirmDialog(
+ context, Permission.microphone.value);
}
}
} catch (e) {
@@ -713,27 +723,50 @@ class _TIMTextFieldLayoutNarrowState
),
),
GestureDetector(
- onTap: () {
+
+ onTap: () async {
if (isBlack) {
showOKToast("您已将对方拉黑,请移除黑名单后在发送消息~");
return;
}
- getImageFile();
+ await getImageFile();
},
child:
Image.asset(getMsgImage('photo'), width: 40.sp),
),
GestureDetector(
- onTap: () {
+ onTap: () async {
if (isBlack) {
showOKToast("您已将对方拉黑,请移除黑名单后在发送消息~");
return;
}
- getTakeImageFile();
+ await getTakeImageFile();
},
child: Image.asset(getMsgImage('take_photo'),
width: 40.sp),
),
+ GestureDetector(
+ onTap: () async {
+ if (isBlack) {
+ showOKToast("您已将对方拉黑,请移除黑名单后在发送消息~");
+ return;
+ }
+ await getVideoFile(ImageSource.gallery);
+ },
+ child: Image.asset(getMsgImage('icon_video'),
+ width: 40.sp),
+ ),
+ GestureDetector(
+ onTap: () async {
+ if (isBlack) {
+ showOKToast("您已将对方拉黑,请移除黑名单后在发送消息~");
+ return;
+ }
+ await getVideoFile(ImageSource.camera);
+ },
+ child: Image.asset(getMsgImage('icon_video_camera'),
+ width: 40.sp),
+ ),
],
),
),
@@ -775,22 +808,29 @@ class _TIMTextFieldLayoutNarrowState
);
}
- Future checkVipStatus() async {
+ Future checkVipStatus(int plate) async {
if (!isVip) {
SharedPreferencesHelper sp = await SharedPreferencesHelper.getInstance();
if (sp.getString(SharedPreferencesHelper.LOGINPHONE) == '18800000100') {
isVip = true;
return true;
} else {
- var data = await DioManager.instance.get(url: Api.getUserMine);
- var bean = BaseResponse.fromJson(
- data, (data) => MineResponseBean.fromJson(data));
- if (bean.isSuccess()) {
- User userInfoBean = bean.data.user!;
- isVip = userInfoBean.vip > 0;
+ var data =
+ await DioManager.instance.get(url: Api.getIsVips + plate.toString());
+
+ if (data['code'] == 200) {
+ isVip = !data['data'];
}
+ // var data = await DioManager.instance.get(url: Api.getUserMine);
+ // var bean = BaseResponse.fromJson(
+ // data, (data) => MineResponseBean.fromJson(data));
+ // if (bean.isSuccess()) {
+ // User userInfoBean = bean.data.user!;
+ // isVip = userInfoBean.vip > 0;
+ // }
}
}
+
if (!isVip) {
showOKToast('开通会员之后才能发送图片');
Get.bottomSheet(
@@ -807,8 +847,91 @@ class _TIMTextFieldLayoutNarrowState
return isVip;
}
+ VideoPlayerController? videoPlayerController;
+
+ Future getVideoFile(ImageSource imageSource) async {
+ bool isOK = await checkVipStatus(imageSource == ImageSource.camera ? 2 : 4);
+
+ if (!isOK) {
+ return;
+ }
+
+ await requestStoragePermission();
+
+ XFile? pickedFile;
+ String? thumbnailPath; // 声明 thumbnailPath 变量
+
+ try {
+ pickedFile = await _picker.pickVideo(
+ source: imageSource, maxDuration: const Duration(seconds: 30)
+ );
+ if (pickedFile == null) {
+ return;
+ }
+
+ videoPlayerController = VideoPlayerController.file(
+ File(pickedFile.path),
+ videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true),
+ );
+ await videoPlayerController?.initialize().then((_) async {
+ thumbnailPath = await VideoThumbnail.thumbnailFile(
+ video: pickedFile!.path,
+ imageFormat: ImageFormat.JPEG,
+ maxWidth: 100,
+ quality: 50,
+ );
+ });
+
+ final Duration videoDuration = videoPlayerController!.value.duration;
+ final double durationInSeconds = videoDuration.inSeconds.toDouble();
+
+ await widget.model.sendVideoMessage(
+ videoPath: pickedFile.path,
+ snapshotPath: thumbnailPath,
+ // 在此处可用
+ convID: widget.conversationID,
+ convType: widget.conversationType,
+ 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(() {
+ // _pickImageError = e;
+ // });
+ }
+ }
+
+ Future getFirstPic(url) async {
+ Uint8List? bytes = await VideoThumbnail.thumbnailData(video: url);
+ final Completer completer = Completer();
+ if (bytes != null) {
+ int _imageDataSize = bytes.length;
+ print("image size: $_imageDataSize");
+
+ final _image = Image.memory(bytes);
+ _image.image
+ .resolve(ImageConfiguration())
+ .addListener(ImageStreamListener((ImageInfo info, bool _) {
+ completer.complete(ThumbnailResult(
+ image: _image,
+ dataSize: _imageDataSize,
+ height: info.image.height,
+ width: info.image.width,
+ ));
+ }));
+ }
+
+ return completer.future;
+ }
+
Future getImageFile() async {
- bool isOK = await checkVipStatus();
+ bool isOK = await checkVipStatus(3);
if (!isOK) {
return;
}
@@ -821,6 +944,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(() {
@@ -830,24 +954,43 @@ class _TIMTextFieldLayoutNarrowState
}
Future getTakeImageFile() async {
- bool isOK = await checkVipStatus();
- if (!isOK) {
- return;
- }
-
-
+ bool isOK = await checkVipStatus(1);
+ if (!isOK) {
+ return;
+ }
+ await requestStoragePermission();
try {
final XFile? pickedFile = await _picker.pickImage(
source: ImageSource.camera,
);
+ if(null==pickedFile){
+ return;
+ }
widget.model.sendImageMessage(
- imagePath: pickedFile!.path,
+ imagePath: pickedFile.path,
convID: widget.conversationID,
convType: widget.conversationType,
inputElement: context);
+ DioManager.instance.get(url: Api.getAddTrialCount + "1");
} catch (e) {}
}
+ //实在找不到问题 先加个权限试试
+ Future requestStoragePermission() async {
+ final status = await Permission.storage.request();
+ if (status.isGranted) {
+ // 权限已授予,可以执行存储操作
+ } else if (status.isDenied) {
+ showOKToast("请打开存储权限。将为你带来更好的服务");
+ // 权限被拒绝,您可以显示一条消息来解释为什么需要权限
+ } else if (status.isPermanentlyDenied) {
+ showOKToast("请打开存储权限。将为你带来更优的服务");
+ // 权限被永久拒绝,用户无法在应用程序内授予权限
+ // 您可以引导用户进入应用程序设置以手动启用权限
+ }
+ }
+
+
_handleCameraAndMic() async {
// // 请求权限
// Map permissions = await PermissionHandler().requestPermissions(
diff --git a/circle_app/lib/app/chat/view.dart b/circle_app/lib/app/chat/view.dart
index b1cf689..0da79e0 100644
--- a/circle_app/lib/app/chat/view.dart
+++ b/circle_app/lib/app/chat/view.dart
@@ -14,7 +14,6 @@ import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart';
import 'package:tencent_cloud_chat_uikit/ui/controller/tim_uikit_chat_controller.dart';
import '../../util/eventBus.dart';
-import 'logic.dart';
class ChatPage extends StatefulWidget {
@@ -111,6 +110,7 @@ class _ChatPageState extends State {
Widget build(BuildContext context) {
V2TimConversation con = Get.arguments;
return TIMChat(
+
conversation: Get.arguments,
customStickerPanel: renderCustomStickerPanel,
onTapAvatar :(String userId,TapDownDetails tapDownDetails)async{
@@ -121,6 +121,7 @@ class _ChatPageState extends State {
},
controller : _timuiKitChatController,
config: TIMUIKitChatConfig(
+
// 仅供演示,非全部配置项,实际使用中,可只传和默认项不同的参数,无需传入所有开关
isAllowClickAvatar: true,
isUseDefaultEmoji: true,
diff --git a/circle_app/lib/app/circle/state.dart b/circle_app/lib/app/circle/state.dart
index 2a79e75..a87fd99 100644
--- a/circle_app/lib/app/circle/state.dart
+++ b/circle_app/lib/app/circle/state.dart
@@ -1,3 +1,7 @@
+import 'package:get/get_rx/src/rx_types/rx_types.dart';
+
+import 'logic.dart';
+
class CircleState {
String msg = '';
int index = 0;
@@ -79,6 +83,7 @@ class Chat {
int? count;
List? users;
+
Chat({this.accountId, this.count, this.users});
Chat.fromJson(Map json) {
diff --git a/circle_app/lib/app/circle/view.dart b/circle_app/lib/app/circle/view.dart
index 07f0d79..7b1c011 100644
--- a/circle_app/lib/app/circle/view.dart
+++ b/circle_app/lib/app/circle/view.dart
@@ -43,7 +43,7 @@ class _CirclePageState extends State
void initState() {
super.initState();
_pageController = PageController();
- _tabController = TabController(length: 2, vsync: this);
+ _tabController = TabController(length: 1, vsync: this);
_tabController.addListener(_handleTabChange);
}
@@ -77,7 +77,9 @@ class _CirclePageState extends State
{
return Scaffold(
backgroundColor: Colors.transparent,
- body: SafeArea(
+ body:
+
+ SafeArea(
child: GetBuilder(builder: (CircleLogic controller) {
return Stack(
children: [
@@ -98,7 +100,7 @@ class _CirclePageState extends State
},
children: [
circleList(controller),
- vicinityList(controller),
+ // vicinityList(controller),
],
),
),
@@ -592,87 +594,71 @@ class _CirclePageState extends State
child: Stack(
alignment: Alignment.center,
children: [
- logic.isShowCircle
- ? Positioned(
- left: 0,
- child: GestureDetector(
- onTap: () {
- Get.toNamed(AppRoutes.Invite);
- },
- child: Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(17.0),
- gradient: const LinearGradient(
- colors: [
- Color(0xFF06F9FA),
- Color(0xFFDC5BFD),
- ],
- ),
- color: const Color(0xFF392D53),
- ),
- child: Container(
- margin: EdgeInsets.all(0.6.sp),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(17.0),
- color: const Color(0xFF392D53),
- ),
- child: Padding(
- padding: EdgeInsets.only(
- top: 5.sp,
- bottom: 4.sp,
- left: 8.sp,
- right: 8.sp,
- ),
- child: const Center(
- child: Text(
- "邀请得会员",
- style: TextStyle(
- fontSize: 11,
- color: Colors.white,
- ),
- ),
- ),
- ),
- ),
- ),
- ))
-
- // Positioned(
- // left: 0,
- // child: GestureDetector(
- // onTap: () {
- // Get.toNamed(AppRoutes.VisitorListActivity);
- // },
- // child: SizedBox(
- // width: 30.sp * widgets.length,
- // height: 44.sp,
- // child: Stack(
- // alignment: Alignment.centerLeft,
- // children: widgets,
- // ),
- // ),
- // ),
- // )
- : GestureDetector(
- onTap: () {
- showCityPiker(context);
- },
- child: Row(
- children: [
- Image.asset(
- getCircleImage('icon_city'),
- width: 24.sp,
- ),
- Container(
- margin: EdgeInsets.only(left: 4.sp, top: 4.sp),
- child: Text(
- modifyCityName(logic.cityName),
- style:
- TextStyle(color: Colors.white, fontSize: 16.sp),
- ))
- ],
- ),
- ),
+ // logic.isShowCircle
+ // ? Positioned(
+ // left: 0,
+ // child: GestureDetector(
+ // onTap: () {
+ // Get.toNamed(AppRoutes.Invite);
+ // },
+ // child: Container(
+ // decoration: BoxDecoration(
+ // borderRadius: BorderRadius.circular(17.0),
+ // gradient: const LinearGradient(
+ // colors: [
+ // Color(0xFF06F9FA),
+ // Color(0xFFDC5BFD),
+ // ],
+ // ),
+ // color: const Color(0xFF392D53),
+ // ),
+ // child: Container(
+ // margin: EdgeInsets.all(0.6.sp),
+ // decoration: BoxDecoration(
+ // borderRadius: BorderRadius.circular(17.0),
+ // color: const Color(0xFF392D53),
+ // ),
+ // child: Padding(
+ // padding: EdgeInsets.only(
+ // top: 5.sp,
+ // bottom: 4.sp,
+ // left: 8.sp,
+ // right: 8.sp,
+ // ),
+ // child: const Center(
+ // child: Text(
+ // "邀请得会员",
+ // style: TextStyle(
+ // fontSize: 11,
+ // color: Colors.white,
+ // ),
+ // ),
+ // ),
+ // ),
+ // ),
+ // ),
+ // ))
+ //
+ // : GestureDetector(
+ // onTap: () {
+ // showCityPiker(context);
+ // },
+ // child: Row(
+ // children: [
+ // Image.asset(
+ // getCircleImage('icon_city'),
+ // width: 24.sp,
+ // ),
+ // Container(
+ // margin: EdgeInsets.only(left: 4.sp, top: 4.sp),
+ // child: Text(
+ // modifyCityName(logic.cityName),
+ // style:
+ // TextStyle(color: Colors.white, fontSize: 16.sp),
+ // ))
+ // ],
+ // ),
+ // ),
Container(
alignment: Alignment.center,
//padding: EdgeInsets.symmetric(horizontal: 10.sp),
@@ -707,14 +693,14 @@ class _CirclePageState extends State
),
),
),
- Tab(
- child: Text(
- '附近',
- style: TextStyle(
- fontSize: 18.sp,
- ),
- ),
- ),
+ // Tab(
+ // child: Text(
+ // '附近',
+ // style: TextStyle(
+ // fontSize: 18.sp,
+ // ),
+ // ),
+ // ),
],
labelStyle: TextStyle(
color: const Color(0xFF00FFF4),
diff --git a/circle_app/lib/app/dialog/UpdateDialog.dart b/circle_app/lib/app/dialog/UpdateDialog.dart
index 6c42260..721370e 100644
--- a/circle_app/lib/app/dialog/UpdateDialog.dart
+++ b/circle_app/lib/app/dialog/UpdateDialog.dart
@@ -2,7 +2,7 @@ import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
-// import 'package:flutter_install_app/flutter_install_app.dart';
+ // import 'package:flutter_install_app/flutter_install_app.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -260,7 +260,7 @@ class _CustomDialogState extends State {
// SmartDialog.dismiss();
print(error);
});
- // await AppInstaller.installApk(filePath, actionRequired: false);
+ // await AppInstaller.installApk(filePath, actionRequired: false);
}
}
diff --git a/circle_app/lib/app/dialog/YesAgreementDialog.dart b/circle_app/lib/app/dialog/YesAgreementDialog.dart
index d79a4f6..8c8e8df 100644
--- a/circle_app/lib/app/dialog/YesAgreementDialog.dart
+++ b/circle_app/lib/app/dialog/YesAgreementDialog.dart
@@ -1,14 +1,19 @@
+import 'dart:ffi';
import 'dart:io';
+import 'package:connectivity/connectivity.dart';
+import 'package:device_info/device_info.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:get/get.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';
import '../../common/values/pushconfig.dart';
+import '../../main.dart';
import '../../util/PaymentUtils.dart';
import '../../util/SharedPreferencesHelper.dart';
import '../../util/device.dart';
@@ -36,7 +41,6 @@ class _CustomDialogState extends State {
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
-
print(getAgreemement());
return false;
},
@@ -78,7 +82,7 @@ class _CustomDialogState extends State {
margin: EdgeInsets.only(left: 10.sp, right: 10.sp),
child: RichText(
text: TextSpan(
- text: "感谢您信任并使用跨友APP,在你使用跨友的服务之前,请认真阅读",
+ text: "感谢您信任并使用微乐园APP,在你使用微乐园的服务之前,请认真阅读",
style: TextStyle(
color: Colors.white,
fontSize: 14.sp,
@@ -86,7 +90,7 @@ class _CustomDialogState extends State {
children: [
TextSpan(
text: "《用户协议》",
- style: TextStyle(
+ style: const TextStyle(
color: Color(0xFF21BEAB),
),
recognizer: TapGestureRecognizer()
@@ -94,7 +98,7 @@ class _CustomDialogState extends State {
navigateToUserAgreement();
},
),
- TextSpan(
+ const TextSpan(
text: "和",
style: TextStyle(
color: Colors.white,
@@ -102,7 +106,7 @@ class _CustomDialogState extends State {
),
TextSpan(
text: "《隐私政策》",
- style: TextStyle(
+ style: const TextStyle(
color: Color(0xFF21BEAB),
),
recognizer: TapGestureRecognizer()
@@ -112,7 +116,7 @@ class _CustomDialogState extends State {
),
TextSpan(
text:
- "的全部内容,以了解用户权力义务和个人信息处理规则。跨友仅会将您的信息用于提供服务和改善体验,我们将权力保障您的信息安全,请同意后使用,若您不同意本隐私政策,很遗憾,我们将无法为您提供完整的产品和服务。",
+ "的全部内容,以了解用户权力义务和个人信息处理规则。微乐园仅会将您的信息用于提供服务和改善体验,我们将权力保障您的信息安全,请同意后使用,若您不同意本隐私政策,很遗憾,我们将无法为您提供完整的产品和服务。",
style: TextStyle(
color: Colors.white,
fontSize: 14.sp,
@@ -126,19 +130,32 @@ class _CustomDialogState extends State {
GestureDetector(
onTap: () async {
// 点击操作
- var sp = await SharedPreferencesHelper.getInstance();
- sp.setBool(SharedPreferencesHelper.AGREEMENT, true);
+ 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) {}
+ uploadBuzIDAndToken();
+ SmartDialog.dismiss();
pushLoginPage();
- uploadBuzIDAndToken();
},
child: Container(
width: 240.sp,
- padding: EdgeInsets.symmetric(
+ padding: const EdgeInsets.symmetric(
vertical: 10,
horizontal: 44,
),
decoration: BoxDecoration(
- gradient: LinearGradient(
+ gradient: const LinearGradient(
colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)],
begin: Alignment.centerLeft,
end: Alignment.centerRight,
@@ -159,7 +176,8 @@ class _CustomDialogState extends State {
TextButton(
onPressed: () {
// 点击不同意按钮的操作
- exit(1);
+ // exit(1);
+ SystemNavigator.pop();
},
child: Text(
"不同意并退出应用",
@@ -178,25 +196,29 @@ class _CustomDialogState extends State {
);
}
-
- void uploadBuzIDAndToken() async {
- if (Platform.isAndroid) {
- initWxApi();
- }
- final CoreServicesImpl coreInstance = TIMUIKitCore.getInstance();
- await ChannelPush.init((msg) {});
-
- int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo);
-
- String token = await ChannelPush.getDeviceToken();
- ChannelPush.uploadToken();
-
- print("token=" + token);
- if (token != "") {
- V2TimCallback res = await coreInstance.setOfflinePushConfig(
- token: token, businessID: businessID);
-
- print("token=" + res.code.toString());
- }
- }
+ // Future uploadBuzIDAndToken() async {
+ // if (Platform.isAndroid) {
+ // initWxApi();
+ // }
+ //
+ //
+ // final CoreServicesImpl coreInstance = TIMUIKitCore.getInstance();
+ // await ChannelPush.init((msg) {});
+ //
+ // int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo);
+ //
+ // String token = await ChannelPush.getDeviceToken();
+ // ChannelPush.uploadToken();
+ //
+ // print("token=" + token);
+ // if (token != "") {
+ // V2TimCallback res = await coreInstance.setOfflinePushConfig(
+ // token: token, businessID: businessID);
+ //
+ // print("token=" + res.code.toString());
+ // }
+ //
+ //
+ // return true;
+ // }
}
diff --git a/circle_app/lib/app/home/logic.dart b/circle_app/lib/app/home/logic.dart
index 4d07e32..84c3790 100644
--- a/circle_app/lib/app/home/logic.dart
+++ b/circle_app/lib/app/home/logic.dart
@@ -2,7 +2,6 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
-import 'dart:ffi';
import 'package:circle_app/app/circle/logic.dart';
import 'package:circle_app/app/minefragment/logic.dart';
diff --git a/circle_app/lib/app/login/login/logic.dart b/circle_app/lib/app/login/login/logic.dart
index 03eaec7..fc15aec 100644
--- a/circle_app/lib/app/login/login/logic.dart
+++ b/circle_app/lib/app/login/login/logic.dart
@@ -67,7 +67,7 @@ class LoginLogic extends GetxController {
if (bean.code == 200) {
showOKToast('发送成功!');
if (kDebugMode) {
- print("验证码:${bean.data!.code}");
+ //print("验证码:${bean.data!.code}");
// codeEditingController.text = bean.data!.code.toString();
// update();
}
diff --git a/circle_app/lib/app/minefragment/logic.dart b/circle_app/lib/app/minefragment/logic.dart
index 9301064..b8c835a 100644
--- a/circle_app/lib/app/minefragment/logic.dart
+++ b/circle_app/lib/app/minefragment/logic.dart
@@ -12,6 +12,7 @@ import 'package:shared_preferences/shared_preferences.dart';
class MinefragmentLogic extends GetxController {
final MinefragmentState state = MinefragmentState();
User? userInfoBean;
+ bool isProxy = false;
String ageMsg = "";
var isVip = 0.obs;
var likeCount = 0;
@@ -34,6 +35,12 @@ class MinefragmentLogic extends GetxController {
@override
void onInit() async {
super.onInit();
+ SharedPreferencesHelper sp = await SharedPreferencesHelper.getInstance();
+ if (sp.getString(SharedPreferencesHelper.LOGINPHONE) == '18800000100') {
+ isProxy = true;
+ } else {
+ isProxy = false;
+ }
getMode();
EventBusManager.on().listen((event) {
isVip.value = event.vip;
diff --git a/circle_app/lib/app/minefragment/view.dart b/circle_app/lib/app/minefragment/view.dart
index 29c4d91..ffa75cd 100644
--- a/circle_app/lib/app/minefragment/view.dart
+++ b/circle_app/lib/app/minefragment/view.dart
@@ -19,10 +19,18 @@ import 'logic.dart';
const vipIcon = 'assets/images/home/icon_vip.png';
-const MyImageWidget = const Image(
+const MyImageWidget = Image(
image: AssetImage(vipIcon),
fit: BoxFit.fill,
);
+
+const vipIcon1 = 'assets/images/home/icon_one_vip.png';
+
+const MyImageWidget1 = Image(
+ image: AssetImage(vipIcon1),
+ fit: BoxFit.fill,
+);
+
class MinefragmentPage extends StatelessWidget {
MinefragmentPage({Key? key}) : super(key: key);
@@ -60,7 +68,7 @@ class MinefragmentPage extends StatelessWidget {
showRechargeDialog(logic);
},
child: Stack(children: [
- MyImageWidget,
+ logic.isProxy ? MyImageWidget1 : MyImageWidget,
Positioned(
top: 54.sp,
left: 72.sp,
@@ -82,7 +90,7 @@ class MinefragmentPage extends StatelessWidget {
Widget _circleLiveView(MinefragmentLogic logic) {
return Column(
- children: [_circleItemView(logic), _invienItemView(), _helpItemView(),_setUpItemView()],
+ children: [_circleItemView(logic), _helpItemView(),_setUpItemView()],
);
}
diff --git a/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart b/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart
index c375a7b..c9ff67c 100644
--- a/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart
+++ b/circle_app/lib/app/msg/TIMUIKitConversation/tim_uikit_conversation.dart
@@ -22,6 +22,7 @@ import 'package:tencent_cloud_chat_uikit/ui/widgets/customize_ball_pulse_header.
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart';
import 'package:tencent_cloud_chat_uikit/ui/widgets/wide_popup.dart';
+import '../../../util/eventBus.dart';
import 'tim_uikit_conversation_item.dart';
typedef TIMConversationItemBuilder = Widget Function(
@@ -190,9 +191,11 @@ class _TIMConversationState extends TIMUIKitState {
model.setSelectedConversation(conversation);
}
- _clearHistory(V2TimConversation conversationItem) {
- _timuiKitConversationController.clearHistoryMessage(
+ _clearHistory(V2TimConversation conversationItem) async{
+ await _timuiKitConversationController.clearHistoryMessage(
conversation: conversationItem);
+ await Future.delayed(Duration(seconds: 1));
+ EventBusManager.fire(RefreshUnread());
}
_pinConversation(V2TimConversation conversation) {
@@ -201,9 +204,11 @@ class _TIMConversationState extends TIMUIKitState {
isPinned: !conversation.isPinned!);
}
- _deleteConversation(V2TimConversation conversation) {
- _timuiKitConversationController.deleteConversation(
+ _deleteConversation(V2TimConversation conversation) async{
+ await _timuiKitConversationController.deleteConversation(
conversationID: conversation.conversationID);
+ await Future.delayed(Duration(seconds: 1));
+ EventBusManager.fire(RefreshUnread());
}
List getFilteredConversation() {
diff --git a/circle_app/lib/app/select_circle/logic.dart b/circle_app/lib/app/select_circle/logic.dart
index 74d5996..e520eaf 100644
--- a/circle_app/lib/app/select_circle/logic.dart
+++ b/circle_app/lib/app/select_circle/logic.dart
@@ -17,13 +17,18 @@ class Select_circleLogic extends GetxController {
for (var entry in entries.asMap().entries) {
MyConfigData bean = MyConfigData(entry.value.key, entry.value.value, false);
- selectCircle.forEach((element) {
- if(entry.value.key==element.id){
- bean.isSelect = true;
- selectIndex = entry.key;
- }
+ if(selectCircle.isEmpty){
arrList.add(bean);
- });
+ }else{
+ selectCircle.forEach((element) {
+ if(entry.value.key==element.id){
+ bean.isSelect = true;
+ selectIndex = entry.key;
+ }
+ arrList.add(bean);
+ });
+ }
+
}
}else{
interestMap.forEach((key, value) {
@@ -36,7 +41,7 @@ class Select_circleLogic extends GetxController {
arrList.add(bean);
});
}
-
+print(arrList.length.toString());
update();
}
diff --git a/circle_app/lib/app/splash/logic.dart b/circle_app/lib/app/splash/logic.dart
index 4dca3b8..4eecb93 100644
--- a/circle_app/lib/app/splash/logic.dart
+++ b/circle_app/lib/app/splash/logic.dart
@@ -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';
@@ -8,6 +9,7 @@ import 'package:get/get.dart';
import '../../router/app_routers.dart';
import '../../util/SharedPreferencesHelper.dart';
import '../dialog/YesAgreementDialog.dart';
+import '../select_circle/logic.dart';
import 'state.dart';
import '../../network/api.dart';
@@ -25,10 +27,31 @@ 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.fromJson(
+ data1, (data1) => ConfigBean.fromJson(data1));
+ if (bean1.code == 200) {
+ configBean = bean1.data!;
+
+ configBean.genderMap.forEach((key, value) {
+ genderList.add(value);
+ });
+
+ configBean.orientationMap.forEach((key, value) {
+ orientationList.add(value);
+ });
+ configBean.roleMap.forEach((key, value) {
+ roleList.add(value);
+ });
+ }
+
if ((await getAuthorization()).isEmpty) {
if (Platform.isIOS) {
pushLoginPage();
diff --git a/circle_app/lib/app/splash/view.dart b/circle_app/lib/app/splash/view.dart
index d4cb354..2277145 100644
--- a/circle_app/lib/app/splash/view.dart
+++ b/circle_app/lib/app/splash/view.dart
@@ -15,7 +15,7 @@ class SplashPage extends StatelessWidget {
return Container(
decoration: const BoxDecoration(
image: DecorationImage(
- image: AssetImage('assets/images/base/launch_image.webp'),
+ image: AssetImage('assets/images/base/launch_back.webp'),
fit: BoxFit.cover,
),
),
diff --git a/circle_app/lib/app/userinfo/logic.dart b/circle_app/lib/app/userinfo/logic.dart
index eb6f765..479bccb 100644
--- a/circle_app/lib/app/userinfo/logic.dart
+++ b/circle_app/lib/app/userinfo/logic.dart
@@ -133,7 +133,11 @@ class UserinfoLogic extends GetxController {
}
onLineCity = isOnline ? "在线" : "离线";
if (userInfoBean?.city != null) {
- onLineCity = "$onLineCity·${userInfoBean!.city}";
+ if (isOnline) {
+ onLineCity = "$onLineCity·${userInfoBean!.city}";
+ } else {
+ onLineCity = userInfoBean!.city! ?? '';
+ }
} else {
onLineCity = "$onLineCity·外星";
}
diff --git a/circle_app/lib/app/userinfo/view.dart b/circle_app/lib/app/userinfo/view.dart
index 758a56a..78a2b2b 100644
--- a/circle_app/lib/app/userinfo/view.dart
+++ b/circle_app/lib/app/userinfo/view.dart
@@ -302,7 +302,7 @@ class MyTabbedScreenState extends State
shape: BoxShape.circle,
color: logic.isOnline
? const Color(0xFF00FFF4)
- : const Color(0xFF787575),
+ : const Color(0x00000000),
),
),
logic.isBlack || logic.isDestroy || logic.isBlackBeen
@@ -404,6 +404,17 @@ class MyTabbedScreenState extends State
}
Widget titleTab(UserinfoLogic controller) {
+ String buttonText = "";
+
+ if (controller.isMe) {
+ if (logic.isShowAlbum) {
+ buttonText = controller.isEdit ? "完成" : "管理";
+ } else {
+ buttonText = "发布喊话";
+ }
+ } else {
+ buttonText = controller.isUrgeStatus ? "已催更" : "催更";
+ }
return Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.symmetric(horizontal: 10.sp),
@@ -441,51 +452,48 @@ class MyTabbedScreenState extends State
);
},
),
- logic.isBlack || logic.isDestroy || logic.isBlackBeen
- ? Container()
- : GestureDetector(
- onTap: () {
- if (controller.isMe) {
- controller.isEdit = !controller.isEdit;
- controller.update();
- } else {
- controller.urgeChange();
- }
- },
- child: Visibility(
- visible: logic.isShowAlbum,
- child: Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(17),
- gradient: const LinearGradient(
- colors: [
- Color(0xFF06F9FA),
- Color(0xFFDC5BFD),
- ],
- begin: Alignment.centerLeft,
- end: Alignment.centerRight,
- ),
- ),
- padding: EdgeInsets.symmetric(
- vertical: 2.sp,
- horizontal: 12.sp,
- ),
- child: Text(
- controller.isMe
- ? controller.isEdit
- ? "完成"
- : "管理"
- : controller.isUrgeStatus
- ? "已催更"
- : "催更",
- style: const TextStyle(
- color: Colors.white,
- fontSize: 12,
- ),
- ),
- ),
+ logic.isBlack||logic.isDestroy||logic.isBlackBeen?Container(): GestureDetector(
+ onTap: () {
+ if(!logic.isShowAlbum&&controller.isMe){
+ List numbers = [];
+ var data = Get.toNamed(AppRoutes.Call_out, arguments: {'numbers': numbers});
+ return ;
+ }
+ if (controller.isMe) {
+ controller.isEdit = !controller.isEdit;
+ controller.update();
+ } else {
+ controller.urgeChange();
+ }
+ },
+ child: Visibility(
+ // visible: logic.isShowAlbum,
+ child: Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(17),
+ gradient: const LinearGradient(
+ colors: [
+ Color(0xFF06F9FA),
+ Color(0xFFDC5BFD),
+ ],
+ begin: Alignment.centerLeft,
+ end: Alignment.centerRight,
),
),
+ padding: EdgeInsets.symmetric(
+ vertical: 2.sp,
+ horizontal: 12.sp,
+ ),
+ child: Text(
+ buttonText,
+ style: const TextStyle(
+ color: Colors.white,
+ fontSize: 12,
+ ),
+ ),
+ ),
+ ),
+ ),
],
),
);
@@ -509,7 +517,7 @@ class MyTabbedScreenState extends State
style: const TextStyle(color: Colors.white30),
),
),
- controller.state.imaglist.isEmpty && !controller.isEdit
+ controller.state.imaglist.isEmpty && !controller.isMe
? Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
@@ -542,19 +550,21 @@ class MyTabbedScreenState extends State
crossAxisCount: 3,
),
itemCount: controller.isMe
- ? controller.isEdit
- ? controller.state.imaglist.length < 15
- ? controller.state.imaglist.length + 1
- : controller.state.imaglist.length
- : controller.state.imaglist.length
- : controller.state.imaglist.length,
+ // ? controller.isEdit
+ // ? controller.state.imaglist.length < 15
+ // ? controller.state.imaglist.length
+ ? controller.state.imaglist.length+1
+ : controller.state.imaglist.length ,
itemBuilder: (BuildContext context, int index) {
- if (controller.isMe &&
- controller.isEdit &&
- controller.state.imaglist.length < 15) {
+ // print("123123123123");
+ if (controller.isMe ) {
if (index == 0) {
return GestureDetector(
onTap: () {
+ if(controller.state.imaglist.length >= 15){
+ showOKToast("最大只可上传15张图片哦~");
+ return ;
+ }
controller.getImageFile();
},
child: Container(
diff --git a/circle_app/lib/common/values/pushconfig.dart b/circle_app/lib/common/values/pushconfig.dart
index 890c037..319ac7e 100644
--- a/circle_app/lib/common/values/pushconfig.dart
+++ b/circle_app/lib/common/values/pushconfig.dart
@@ -1,4 +1,5 @@
+import 'package:device_info/device_info.dart';
import 'package:tencent_chat_push_for_china/model/appInfo.dart';
import 'package:tencent_chat_push_for_china/tencent_chat_push_for_china.dart';
@@ -12,6 +13,7 @@ class PushConfig{
// Business ID for XiaoMi
static const XMPushBuzID = 30672;
+ static const String XMChannelID = "111363";
// APP Info of XiaoMi
static const String XMPushAPPID = "2882303761520264048";
@@ -72,14 +74,32 @@ class ChannelPush{
appInfo: PushConfig.appInfo,
);
print("token=初始化"+isInit.toString());
-
+ AndroidDeviceInfo androidInfo;
+ try {
+ DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
+ androidInfo = await deviceInfo.androidInfo;
+ } catch (e) {
+ // 处理异常
+ return true;
+ }
+ if (androidInfo.brand == 'Xiaomi'||androidInfo.brand == 'Redmi') {
+ cPush.createNotificationChannel(
+ channelId: PushConfig.XMChannelID,
+ channelName: "消息推送",
+ channelDescription:
+ "The notification for chat message from Tencent Cloud IM"
+ );
+ }else{
+ cPush.createNotificationChannel(
+ channelId: PushConfig.OPPOChannelID,
+ channelName: "消息推送",
+ channelDescription:
+ "The notification for chat message from Tencent Cloud IM"
+ );
+ }
// create new notification channel
- cPush.createNotificationChannel(
- channelId: PushConfig.OPPOChannelID,
- channelName: "消息推送",
- channelDescription:
- "The notification for chat message from Tencent Cloud IM"
- );
+
+
// require the permission for notification
cPush.requireNotificationPermission();
diff --git a/circle_app/lib/main.dart b/circle_app/lib/main.dart
index edea9d9..607d0a6 100644
--- a/circle_app/lib/main.dart
+++ b/circle_app/lib/main.dart
@@ -13,10 +13,12 @@ import 'package:circle_app/util/SharedPreferencesHelper.dart';
import 'package:circle_app/util/device.dart';
import 'package:circle_app/util/util.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
+import 'package:image_picker/image_picker.dart';
import 'package:oktoast/oktoast.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
@@ -37,8 +39,32 @@ void main() {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
runApp(const MyApp());
-}
+ if (Platform.isAndroid) {
+ getLostData();
+ }
+}
+Future getLostData() async {
+ final ImagePicker picker = ImagePicker();
+ final LostDataResponse response = await picker.retrieveLostData();
+ if (response.isEmpty) {
+ return;
+ }
+ final List? files = response.files;
+ if (files != null) {
+ _handleLostFiles(files);
+ } else {
+ _handleError(response.exception);
+ }
+}
+void _handleLostFiles(List file) {}
+Future _handleError(dynamic error) async {
+ // 处理错误,例如记录错误或显示错误消息
+ print('Error occurred: $error');
+ // 在界面上显示错误消息
+ showToast('内存异常,请重新上传');
+
+}
int IM_SDK_APP_ID = 1400799631;
String IOS_APP_ID = "";
diff --git a/circle_app/lib/network/api.dart b/circle_app/lib/network/api.dart
index 8087eb6..c5cd958 100644
--- a/circle_app/lib/network/api.dart
+++ b/circle_app/lib/network/api.dart
@@ -1,9 +1,10 @@
class Api {
- // static const baseUrl = 'https://leyuan666.com/zuul-service/';
+ static const baseUrl = 'https://leyuan666.com/zuul-service/';
- static const baseUrl = 'http://192.168.3.55:2000/' ;
+
+ // static const baseUrl = 'http://192.168.3.55:2000/' ;
// 获取验证码
@@ -80,6 +81,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';
diff --git a/circle_app/lib/util/util.dart b/circle_app/lib/util/util.dart
index e114808..0a271a6 100644
--- a/circle_app/lib/util/util.dart
+++ b/circle_app/lib/util/util.dart
@@ -183,60 +183,81 @@ String getAgeCOntent(int gender, int age, int role, int orientation) {
return "${getGenderContent(gender)}·${age}·${getRoleContent(role)}·${getOrientationContent(orientation)}";
}
+late ConfigBean configBean;
+List numbers = [];
+
+List genderList = [];
+
+List orientationList = [];
+
+List roleList = [];
+
String getGenderContent(int number) {
- switch (number) {
- case 1:
- return "男";
- case 2:
- return "女";
- case 3:
- return "MTF";
- case 4:
- return "FTM";
- case 5:
- return "CD";
- case 6:
- return "酷儿";
- default:
- return "";
+ if(genderList.length!=0){
+ return genderList[number-1];
+ }else {
+ switch (number) {
+ case 1:
+ return "男";
+ case 2:
+ return "女";
+ case 3:
+ return "MTF";
+ case 4:
+ return "FTM";
+ case 5:
+ return "CD";
+ case 6:
+ return "酷儿";
+ default:
+ return "";
+ }
}
}
String getOrientationContent(int number) {
- switch (number) {
- case 1:
- return "异性恋";
- case 2:
- return "同性恋";
- case 3:
- return "双性恋";
- case 4:
- return "泛性恋";
- case 5:
- return "无性恋";
- case 6:
- return "智性恋";
- case 7:
- return "性单恋";
- default:
- return "";
+ if(orientationList.length!=0){
+ return orientationList[number-1];
+ }else {
+ switch (number) {
+ case 1:
+ return "异性恋";
+ case 2:
+ return "同性恋";
+ case 3:
+ return "双性恋";
+ case 4:
+ return "泛性恋";
+ case 5:
+ return "无性恋";
+ case 6:
+ return "智性恋";
+ case 7:
+ return "性单恋";
+ default:
+ return "";
+ }
}
}
String getRoleContent(int number) {
- switch (number) {
- case 1:
- return "Sado";
- case 2:
- return "Maso";
- case 3:
- return "Dom";
- case 4:
- return "Sub";
- case 5:
- return "Switch";
- default:
- return "";
+ if(roleList.length!=0){
+ return roleList[number-1];
+ }else {
+ switch (number) {
+ case 1:
+ return "Sado";
+ case 2:
+ return "Maso";
+ case 3:
+ return "Dom";
+ case 4:
+ return "Sub";
+ case 5:
+ return "Switch";
+ default:
+ return "";
+ }
}
}