Browse Source

Merge commit '47bfc7a8570d9a7a159503b84bde35ced4dfbbeb'

weicu
lxm 1 year ago
parent
commit
3101b72a2a
  1. 14
      android/app/build.gradle.kts
  2. 87
      android/app/proguard-rules.pro
  3. 2
      lib/modules/chat/controllers/chat_controller.dart
  4. 63
      lib/modules/login/views/login_view.dart

14
android/app/build.gradle.kts

@ -97,12 +97,22 @@ android {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
isMinifyEnabled = false
isShrinkResources = false
isMinifyEnabled = false
isShrinkResources = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("release")
// signingConfig = signingConfigs.getByName("debug")
}
debug {
isMinifyEnabled = false
isShrinkResources = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
}
}

87
android/app/proguard-rules.pro

@ -0,0 +1,87 @@
# Flutter Framework
# 这些规则保留了 Flutter 引擎和插件系统正常运行所需的类。
-ignorewarnings
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.embedding.android.** { *; }
-keep class io.flutter.embedding.engine.** { *; }
-keep class io.flutter.embedding.engine.plugins.** { *; }
-keep class io.flutter.plugin.common.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class io.flutter.plugin.platform.** { *; }
# 保留你的应用程序的主 Activity。
# !!! 请将 com.example.deep_voice.MainActivity 替换为你的实际包名和 Activity 类名 !!!
-keep class com.yunqiinnovation.deepsound.MainActivity { *; }
# 保留 open_ai_service 包下的所有类
-keep class com.yunqiinnovation.open_ai_service.** { *; }
# 保留 MCPClient 相关类
-keep class com.yunqiinnovation.open_ai_service.MCPClient { *; }
-keep class com.yunqiinnovation.open_ai_service.MCPSubClient { *; }
-keep class com.yunqiinnovation.open_ai_service.FunctionHandler { *; }
-keep class com.yunqiinnovation.open_ai_service.ToolType { *; }
-keep class com.yunqiinnovation.open_ai_service.mcp.** { *; }
-keep class com.yunqiinnovation.open_ai_service.mcp.CustomSseClientTransport { *; }
-keep class com.yunqiinnovation.open_ai_service.SystemFunctionHandler { *; }
-keep class com.yunqiinnovation.open_ai_service.OpenAIService { *; }
-keep class com.yunqiinnovation.open_ai_service.OpenAIService$* { *; }
# 保留 OpenAIServicePlugin 类
-keep class com.yunqiinnovation.open_ai_service.OpenAIServicePlugin { *; }
# 保留 Jackson 相关类
-keep class com.fasterxml.jackson.** { *; }
-keep class com.fasterxml.jackson.databind.** { *; }
-keep class com.fasterxml.jackson.core.** { *; }
# 保留 Ktor 相关类
-keep class io.ktor.** { *; }
-keep class kotlinx.coroutines.** { *; }
-keep class kotlinx.serialization.** { *; }
# 如果你的应用直接使用了 AndroidX 的某些特定类(例如,通过原生代码或插件),可能需要保留它们。
# 例如,保留所有 Parcelable 实现类,如果它们被跨进程使用或序列化。
# -keep class * implements android.os.Parcelable {
# public static final android.os.Parcelable$Creator *;
# }
# 保留 MCP 相关依赖库
-keep class io.modelcontextprotocol.** { *; }
-keep class com.anthropic.** { *; }
# 保留 OkHttp 相关类
-keep class okhttp3.** { *; }
-keep class okio.** { *; }
# 如果你使用了特定的第三方库,并且这些库需要特定的 ProGuard 规则,请在此处添加。
# 例如,OkHttp/Retrofit, Gson, Glide 等通常需要保留模型类或特定方法。
# 查看库的官方文档通常会提供所需的 ProGuard 规则。
# -keepclasseswithmembers class * {
# @android.webkit.JavascriptInterface <methods>;
# }
# -keepattributes Signature
# -keepattributes *Annotation*
# 如果你有自定义的原生插件,需要保留它们的类。
# !!! 将 com.yourcompany.yourplugin.** 替换为你的插件的实际包名 !!!
# -keep class com.yourcompany.yourplugin.** { *; }
# 保留枚举类,防止 switch 语句因混淆出错
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# 保留 R 类及其内部类,防止资源访问出错
-keep class **.R$* { *; }
# 保留 native 方法
-keepclasseswithmembernames class * {
native <methods>;
}

2
lib/modules/chat/controllers/chat_controller.dart

@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:convert';
import 'package:amap_flutter/amap_flutter.dart';
import 'package:deep_voice/data/services/spotify_service.dart';
import '../../../data/services/spotify_service.dart';
import 'package:get/get.dart';
import 'package:flutter/widgets.dart';
import 'package:get_storage/get_storage.dart';

63
lib/modules/login/views/login_view.dart

@ -526,33 +526,44 @@ class LoginView extends GetView<LoginController> {
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.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],
// 将勾选框和文本包装在 GestureDetector 中
GestureDetector(
onTap: () => controller.hasAcceptedPrivacy =
!controller.hasAcceptedPrivacy,
behavior: HitTestBehavior.opaque, // 确保透明区域也能响应点击
child: Row(
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],
),
),
],
),
),
],

Loading…
Cancel
Save