diff --git a/lib/core/translations/language/de_de.dart b/lib/core/translations/language/de_de.dart index e79f7b776..5e6c1eae3 100644 --- a/lib/core/translations/language/de_de.dart +++ b/lib/core/translations/language/de_de.dart @@ -64,6 +64,8 @@ const Map deDE = { "pleaseEnterCompleteCode": "Bitte geben Sie den vollständigen Verifizierungscode ein", "loginFailed": "Anmeldung fehlgeschlagen, bitte versuchen Sie es erneut", + 'pleaseAcceptPrivacyPolicy': + 'Bitte lesen und akzeptieren Sie die Datenschutzerklärung und die Nutzungsbedingungen', // 首页 "deviceStatus": "Gerätestatus", diff --git a/lib/core/translations/language/en_us.dart b/lib/core/translations/language/en_us.dart index a6b96787b..6491f8c8f 100644 --- a/lib/core/translations/language/en_us.dart +++ b/lib/core/translations/language/en_us.dart @@ -64,6 +64,8 @@ const Map enUS = { "pleaseEnterCompleteCode": "Please enter the complete verification code", // 登录错误提示 "loginFailed": "Login failed, please try again", + 'pleaseAcceptPrivacyPolicy': + 'Please read and accept the Privacy Policy and User Agreement first', // 首页 "deviceStatus": "Device Status", diff --git a/lib/core/translations/language/es_es.dart b/lib/core/translations/language/es_es.dart index 657bffc6e..5da8d80e1 100644 --- a/lib/core/translations/language/es_es.dart +++ b/lib/core/translations/language/es_es.dart @@ -66,6 +66,8 @@ const Map esES = { "pleaseEnterCompleteCode": "Por favor, introduce el código de verificación completo", "loginFailed": "Error al iniciar sesión, por favor intente de nuevo", + 'pleaseAcceptPrivacyPolicy': + 'Por favor, lea y acepte la Política de Privacidad y el Acuerdo de Usuario primero', // 首页 "deviceStatus": "Estado del Dispositivo", diff --git a/lib/core/translations/language/fr_fr.dart b/lib/core/translations/language/fr_fr.dart index 06434ef1f..2e89c0a6d 100644 --- a/lib/core/translations/language/fr_fr.dart +++ b/lib/core/translations/language/fr_fr.dart @@ -65,6 +65,8 @@ const Map frFR = { "tip": "Avis", "pleaseEnterCompleteCode": "Veuillez saisir le code de vérification complet", "loginFailed": "Échec de la connexion, veuillez réessayer", + 'pleaseAcceptPrivacyPolicy': + 'Veuillez lire et accepter la Politique de Confidentialité et les Conditions d\'Utilisation', // 首页 "deviceStatus": "État de l'appareil", diff --git a/lib/core/translations/language/it_it.dart b/lib/core/translations/language/it_it.dart index 7ba35cfa6..8d1dcf730 100644 --- a/lib/core/translations/language/it_it.dart +++ b/lib/core/translations/language/it_it.dart @@ -63,6 +63,8 @@ const Map itIT = { "tip": "Avviso", "pleaseEnterCompleteCode": "Inserisci il codice di verifica completo", "loginFailed": "Accesso fallito, per favore riprova", + 'pleaseAcceptPrivacyPolicy': + 'Si prega di leggere e accettare l\'Informativa sulla Privacy e le Condizioni d\'Uso', // 首页 "deviceStatus": "Stato del dispositivo", diff --git a/lib/core/translations/language/ja_jp.dart b/lib/core/translations/language/ja_jp.dart index 7221204fe..7cef96a98 100644 --- a/lib/core/translations/language/ja_jp.dart +++ b/lib/core/translations/language/ja_jp.dart @@ -63,6 +63,7 @@ const Map jaJP = { "tip": "お知らせ", "pleaseEnterCompleteCode": "認証コードを完全に入力してください", "loginFailed": "ログインに失敗しました。もう一度お試しください", + 'pleaseAcceptPrivacyPolicy': 'プライバシーポリシーとユーザー契約を読んで同意してください', // 首页 "deviceStatus": "デバイスステータス", diff --git a/lib/core/translations/language/ko_kr.dart b/lib/core/translations/language/ko_kr.dart index 3cd12c786..0fd03d3e6 100644 --- a/lib/core/translations/language/ko_kr.dart +++ b/lib/core/translations/language/ko_kr.dart @@ -63,6 +63,7 @@ const Map koKR = { "tip": "알림", "pleaseEnterCompleteCode": "인증번호를 완전히 입력해주세요", "loginFailed": "로그인 실패, 다시 시도해주세요", + 'pleaseAcceptPrivacyPolicy': '개인정보 보호정책 및 사용자 계약을 읽고 동의해주세요', // 首页 "deviceStatus": "기기 상태", diff --git a/lib/core/translations/language/pt_pt.dart b/lib/core/translations/language/pt_pt.dart index ca60ba498..f9a2feac8 100644 --- a/lib/core/translations/language/pt_pt.dart +++ b/lib/core/translations/language/pt_pt.dart @@ -67,6 +67,8 @@ const Map ptPT = { "pleaseEnterCompleteCode": "Por favor, insira o código de verificação completo", "loginFailed": "Falha no login, tente novamente", + 'pleaseAcceptPrivacyPolicy': + 'Por favor, leia e aceite a Política de Privacidade e o Acordo do Usuário primeiro', // 首页 "deviceStatus": "Status do Dispositivo", diff --git a/lib/core/translations/language/ru_ru.dart b/lib/core/translations/language/ru_ru.dart index 713e34aa6..28b690c8c 100644 --- a/lib/core/translations/language/ru_ru.dart +++ b/lib/core/translations/language/ru_ru.dart @@ -64,6 +64,8 @@ const Map ruRU = { "tip": "Уведомление", "pleaseEnterCompleteCode": "Пожалуйста, введите полный код подтверждения", "loginFailed": "Ошибка входа, пожалуйста, попробуйте снова", + 'pleaseAcceptPrivacyPolicy': + 'Пожалуйста, прочтите и примите Политику конфиденциальности и Пользовательское соглашение', // 首页 "deviceStatus": "Статус устройства", diff --git a/lib/core/translations/language/vi_vn.dart b/lib/core/translations/language/vi_vn.dart index 0bf757601..d7ea771ed 100644 --- a/lib/core/translations/language/vi_vn.dart +++ b/lib/core/translations/language/vi_vn.dart @@ -63,6 +63,8 @@ const Map viVN = { "tip": "Thông báo", "pleaseEnterCompleteCode": "Vui lòng nhập đầy đủ mã xác thực", "loginFailed": "Đăng nhập thất bại, vui lòng thử lại", + 'pleaseAcceptPrivacyPolicy': + 'Vui lòng đọc và chấp nhận Chính sách Bảo mật và Thỏa thuận Người dùng', // 首页 "deviceStatus": "Trạng thái thiết bị", diff --git a/lib/core/translations/language/zh_cn.dart b/lib/core/translations/language/zh_cn.dart index 848d61a97..1488135c4 100644 --- a/lib/core/translations/language/zh_cn.dart +++ b/lib/core/translations/language/zh_cn.dart @@ -62,6 +62,7 @@ const Map zhCN = { "tip": "提示", "pleaseEnterCompleteCode": "请输入完整的验证码", "loginFailed": "登录失败,请重试", + 'pleaseAcceptPrivacyPolicy': '请先阅读并同意隐私政策和用户协议', // 首页 "deviceStatus": "设备状态", diff --git a/lib/core/translations/language/zh_hk.dart b/lib/core/translations/language/zh_hk.dart index 7a15ab3ea..872c1cbcf 100644 --- a/lib/core/translations/language/zh_hk.dart +++ b/lib/core/translations/language/zh_hk.dart @@ -62,6 +62,7 @@ const Map zhHK = { "tip": "提示", "pleaseEnterCompleteCode": "請輸入完整的驗證碼", "loginFailed": "登錄失敗,請重試", + 'pleaseAcceptPrivacyPolicy': '請先閱讀並同意私隱政策和用戶協議', // 首页 "deviceStatus": "設備狀態", diff --git a/lib/data/services/deapsound_ai_service.dart b/lib/data/services/deapsound_ai_service.dart index dc85acebb..ba1750407 100644 --- a/lib/data/services/deapsound_ai_service.dart +++ b/lib/data/services/deapsound_ai_service.dart @@ -28,7 +28,7 @@ class DeapsoundAIService implements AiService { required String systemPrompt, }) async* { final client = http.Client(); - final url = Uri.parse('https://www.deapsound.com/ai/funcchat'); + final url = Uri.parse('https://api.deapsound.com/ai/funcchat'); List contextsList = []; String msg = ''; diff --git a/lib/data/services/network/nw_api.dart b/lib/data/services/network/nw_api.dart index 875a166b6..293c014b9 100644 --- a/lib/data/services/network/nw_api.dart +++ b/lib/data/services/network/nw_api.dart @@ -1,4 +1,4 @@ class NWApi { // static const baseApi = "https://www.deapsound.com"; - static const baseApi = "https://www.deapsound.com"; + static const baseApi = "https://api.deapsound.com"; } diff --git a/lib/modules/login/controllers/login_controller.dart b/lib/modules/login/controllers/login_controller.dart index d35a1d56c..945889b00 100644 --- a/lib/modules/login/controllers/login_controller.dart +++ b/lib/modules/login/controllers/login_controller.dart @@ -24,6 +24,10 @@ class LoginController extends GetxController { String _deviceId = ''; + final _hasAcceptedPrivacy = false.obs; + bool get hasAcceptedPrivacy => _hasAcceptedPrivacy.value; + set hasAcceptedPrivacy(bool value) => _hasAcceptedPrivacy.value = value; + // 添加国家编码相关状态 final _selectedCountryCode = ''.obs; final _selectedCountryFlag = '✉️'.obs; @@ -416,7 +420,6 @@ class LoginController extends GetxController { // 登录 Future login() async { - print("数据获取Facebook${loginType}"); // 添加基础验证 if (loginType == 0 || loginType == 1) { // 邮箱或手机号登录 @@ -455,6 +458,18 @@ class LoginController extends GetxController { return; } } + + //验证隐私协议勾选状态 + if (!_hasAcceptedPrivacy.value) { + Get.snackbar( + 'tip'.tr, + 'pleaseAcceptPrivacyPolicy'.tr, + snackPosition: SnackPosition.TOP, + backgroundColor: Colors.red.withOpacity(0.1), + colorText: Colors.red, + ); + return; + } _isLoading.value = true; try { diff --git a/lib/modules/login/views/login_view.dart b/lib/modules/login/views/login_view.dart index c7b1be4d2..9bc34934b 100644 --- a/lib/modules/login/views/login_view.dart +++ b/lib/modules/login/views/login_view.dart @@ -51,7 +51,7 @@ class LoginView extends GetView { _buildSocialLoginSection(isDarkMode), // 用户协议 - SizedBox(height: 40.h), + SizedBox(height: 24.h), _buildTermsAndPrivacy(isDarkMode), SizedBox(height: 24.h), ], @@ -524,14 +524,40 @@ class LoginView extends GetView { Widget _buildTermsAndPrivacy(bool isDarkMode) { return Column( children: [ - Text( - 'expressConsent'.tr, // 登录/注册即表示你同意 - style: TextStyle( - fontSize: 12.sp, - color: isDarkMode ? Colors.grey[500] : Colors.grey[600], - ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, // 添加这行 + children: [ + SizedBox( + width: 12.w, + height: 16.w, + child: Transform.scale( + scale: 0.7, + child: Obx(() => Checkbox( + value: controller.hasAcceptedPrivacy, + onChanged: (value) => + controller.hasAcceptedPrivacy = value ?? false, + activeColor: const Color(0xFF3B82F6), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + visualDensity: VisualDensity.compact, + side: BorderSide( + width: 1.6, + color: Colors.grey[600]!, + ), + )), + ), + ), + SizedBox(width: 4.w), + Text( + 'expressConsent'.tr, + style: TextStyle( + fontSize: 13.sp, + color: isDarkMode ? Colors.grey[400] : Colors.grey[700], + ), + ), + ], ), - SizedBox(height: 4.h), + //SizedBox(height: 4.h), Row( mainAxisAlignment: MainAxisAlignment.center, children: [