From adae2bc5583f4c71754a97cd6e72035f72f399a7 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Wed, 3 Dec 2025 19:55:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle.kts | 39 ++++++++++++++++++++++++++--- lib/main.dart | 2 +- lib/widget/record/record_daily.dart | 36 +++++++++++++++++++++++--- 3 files changed, 70 insertions(+), 7 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 5afedf5..8e2f3ee 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -1,3 +1,13 @@ +import java.util.Properties +import java.io.FileInputStream + +// 从根路径加载密钥属性 +val keystoreProperties = Properties() +val keystorePropertiesFile = rootProject.file("key.properties") +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + plugins { id("com.android.application") id("kotlin-android") @@ -30,11 +40,34 @@ android { versionName = flutter.versionName } + signingConfigs { + create("release") { + if (keystorePropertiesFile.exists()) { + keyAlias = keystoreProperties.getProperty("keyAlias") + keyPassword = keystoreProperties.getProperty("keyPassword") + storeFile = file(keystoreProperties.getProperty("storeFile")) + storePassword = keystoreProperties.getProperty("storePassword") + } + } + } + buildTypes { + debug { + signingConfig = if (keystorePropertiesFile.exists()) { + signingConfigs.getByName("release") + } else { + signingConfigs.getByName("debug") + } + } + release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("debug") + signingConfig = if (keystorePropertiesFile.exists()) { + // 使用发布签名 + signingConfigs.getByName("release") + } else { + // 使用默认签名 + signingConfigs.getByName("debug") + } } } } diff --git a/lib/main.dart b/lib/main.dart index 9b7ecdc..b411d4a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,7 +14,7 @@ void main() async { Hive.registerAdapter(HealthRecordAdapter()); final healthsBox = await Hive.openBox('healths'); - healthsBox.clear(); + // healthsBox.clear(); // await Hive.deleteBoxFromDisk('healths'); runApp( diff --git a/lib/widget/record/record_daily.dart b/lib/widget/record/record_daily.dart index 5b16f4e..1c8a133 100644 --- a/lib/widget/record/record_daily.dart +++ b/lib/widget/record/record_daily.dart @@ -167,7 +167,7 @@ class _RecordDailyState extends State { } else { switch (provider.type) { case RecordType.weight: - provider.updateWeight(70); + provider.updateWeight(AppConfig.initWeight); break; case RecordType.sport: provider.updateSportProject(AppConfig.sportProjectList[0]); @@ -189,13 +189,13 @@ class _RecordDailyState extends State { padding: EdgeInsets.all(20), child: Column( mainAxisSize: MainAxisSize.min, - children: [RecordForm(type: type), _buildDialogButton()], + children: [RecordForm(type: type), _buildDialogButton(type)], ), ), ); } - Widget _buildDialogButton() { + Widget _buildDialogButton(RecordType type) { final colors = Theme.of(context).colorScheme; return Row( @@ -211,6 +211,17 @@ class _RecordDailyState extends State { ), ), const SizedBox(width: 12), + Expanded( + child: GFButton( + onPressed: () { + Navigator.of(context).pop(); + _deleteRecord(type); + }, + color: Colors.red, + text: "删除", + ), + ), + const SizedBox(width: 12), Expanded( child: GFButton( onPressed: () { @@ -244,6 +255,25 @@ class _RecordDailyState extends State { } } + void _deleteRecord(RecordType type) async{ + final provider = context.read(); + + switch(type) { + case RecordType.weight: + provider.updateWeight(0); + break; + case RecordType.sport: + provider.updateSportDuration(0); + break; + case RecordType.sleep: + provider.updateSleepStartTime(''); + provider.updateSleepEndTime(''); + break; + } + + _saveRecord(); + } + void _saveRecord() async { final provider = context.read();