diff --git a/README.md b/README.md
index 4d35b89..2227a99 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,14 @@
Official forum丨QQ Group: 760014526丨Telegram: openmoodiary
+
## ✨ Feature
- **Cross-platform support**: 🌍 Compatible with Android, iOS, Windows, MacOS, Linux\*.
@@ -77,7 +78,7 @@ Some capabilities need to apply for third-party SDKS, and the following service
- [Tencent Hunyuan](https://cloud.tencent.com/document/product/1729/97731)
-### Direct mounting
+### Direct install
Use it by downloading the compiled installation package in Release, or manually compiling it if you don't have the platform you need.
@@ -87,9 +88,9 @@ Use it by downloading the compiled installation package in Release, or manually
> I always use the latest Flutter version (if possible), using newer versions will bring more features and better performance improvements, never use older versions unless you want your code to become a piece of 💩
-- Flutter SDK (>= 3.27.0 Stable) (It is recommended to use FVM to manage the Flutter version)
-- Dart (>= 3.6.0)
-- Rust Toolchain
+- Flutter SDK (>= 3.29.0 Stable) (It is recommended to use FVM to manage the Flutter version)
+- Dart (>= 3.7.0)
+- Rust Toolchain (Nightly)
- Clang/LLVM
- Compatible IDE (e.g. Android Studio, Visual Studio Code)
diff --git a/README.zh.md b/README.zh.md
index 171a209..6b4b9ea 100644
--- a/README.zh.md
+++ b/README.zh.md
@@ -8,7 +8,7 @@
官方论坛丨QQ群: 760014526丨Telegram: openmoodiary
+
## ✨ 功能特性
- **跨平台支持**:🌍 兼容 Android、iOS、Windows、MacOS、Linux\*。
@@ -88,9 +89,9 @@
> 我总是会使用最新的 Flutter 版本(如果可能的话),使用新版本可以带来更多的功能和更好的性能提升,永远不要使用老版本除非你希望代码变成一坨 💩
-- Flutter SDK (>= 3.27.0 Stable)(建议使用 fvm 来管理 flutter 版本)
-- Dart (>= 3.6.0)
-- Rust 工具链
+- Flutter SDK (>= 3.29.0 Stable)(建议使用 fvm 来管理 flutter 版本)
+- Dart (>= 3.7.0)
+- Rust 工具链(Nightly)
- Clang/LLVM
- 兼容的 IDE(如 Android Studio、Visual Studio Code)
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 3cb7dd9..8329912 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,25 +1,6 @@
-# This file configures the analyzer, which statically analyzes Dart code to
-# check for errors, warnings, and lints.
-#
-# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
-# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
-# invoked from the command line by running `flutter analyze`.
-
-# The following line activates a set of recommended lints for Flutter apps,
-# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
linter:
- # The lint rules applied to this project can be customized in the
- # section below to disable rules from the `package:flutter_lints/flutter.yaml`
- # included above or to enable additional rules. A list of all available lints
- # and their documentation is published at https://dart.dev/lints.
- #
- # Instead of disabling a lint rule for the entire project in the
- # section below, it can also be suppressed for a single line of code
- # or a specific dart file by using the `// ignore: name_of_lint` and
- # `// ignore_for_file: name_of_lint` syntax on the line or in the file
- # producing the lint.
rules:
prefer_const_constructors: true
prefer_const_literals_to_create_immutables: true
@@ -31,5 +12,9 @@ linter:
analyzer:
plugins:
- custom_lint
-# Additional information about this file can be found at
-# https://dart.dev/guides/language/analysis-options
+ exclude:
+ - "**/*.g.dart"
+ - "**/*.freezed.dart"
+ - "**/*.gr.dart"
+ - "**/*.mocks.dart"
+ - "rust_builder/**"
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 8279cf5..63d9d3d 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -68,9 +68,8 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
-
+ signingConfig = signingConfigs.config
resValue "string", "app_name", "Moodiary Debug"
-
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
}
diff --git a/cliff.toml b/cliff.toml
index aceec1d..fb7a8d3 100644
--- a/cliff.toml
+++ b/cliff.toml
@@ -74,6 +74,7 @@ commit_parsers = [
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
+ { message = "^chore\\(readme\\)", skip = true },
{ message = "^chore|^ci", group = "⚙️ Miscellaneous Tasks" },
{ body = ".*security", group = "🛡️ Security" },
{ message = "^revert", group = "◀️ Revert" },
diff --git a/lib/pages/share/share_logic.dart b/lib/pages/share/share_logic.dart
index 04194ac..7a08a5d 100644
--- a/lib/pages/share/share_logic.dart
+++ b/lib/pages/share/share_logic.dart
@@ -20,18 +20,20 @@ class ShareLogic extends GetxController {
super.onInit();
}
- Future captureWidget() async {
+ Future _captureWidget(BuildContext context) async {
final boundary =
state.key.currentContext?.findRenderObject() as RenderRepaintBoundary;
- final pixelRatio = MediaQuery.devicePixelRatioOf(Get.context!);
+ final pixelRatio = MediaQuery.devicePixelRatioOf(context);
final image = await boundary.toImage(pixelRatio: pixelRatio);
final data = await image.toByteData(format: ImageByteFormat.png);
return data!.buffer.asUint8List();
}
- Future share() async {
+ Future share(BuildContext context) async {
final name = 'screenshot-${const Uuid().v7()}.png';
- File(FileUtil.getCachePath(name)).writeAsBytes(await captureWidget());
+ await File(
+ FileUtil.getCachePath(name),
+ ).writeAsBytes(await _captureWidget(context));
await Share.shareXFiles([XFile(FileUtil.getCachePath(name))]);
}
}
diff --git a/lib/pages/share/share_view.dart b/lib/pages/share/share_view.dart
index 8259f70..7979086 100644
--- a/lib/pages/share/share_view.dart
+++ b/lib/pages/share/share_view.dart
@@ -134,7 +134,7 @@ class SharePage extends StatelessWidget {
),
floatingActionButton: FloatingActionButton(
onPressed: () {
- logic.share();
+ logic.share(context);
},
child: const Icon(Icons.share),
),
diff --git a/pubspec.lock b/pubspec.lock
index b5b2fc8..b6c15e0 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -22,14 +22,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.1"
- adaptive_number:
- dependency: transitive
- description:
- name: adaptive_number
- sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.0"
analyzer:
dependency: transitive
description:
@@ -130,10 +122,10 @@ packages:
dependency: transitive
description:
name: asn1lib
- sha256: "068190d6c99c436287936ba5855af2e1fa78d8083ae65b4db6a281780da727ae"
+ sha256: ed64c586b5e0476050ff719ea28a94b2831f8857ba2a90f8f05dc276a88456fa
url: "https://pub.dev"
source: hosted
- version: "1.6.0"
+ version: "1.6.1"
async:
dependency: transitive
description:
@@ -370,10 +362,10 @@ packages:
dependency: "direct main"
description:
name: calendar_date_picker2
- sha256: "7b5f20f2a02768df70b3d1fb181c217ab9f8992f39fd6c3fc2ff95b0885820a2"
+ sha256: "293020a283210ccefff669499178c127acbb5e77ae13864f992c8a3e68a8aca1"
url: "https://pub.dev"
source: hosted
- version: "1.1.9"
+ version: "2.0.0"
characters:
dependency: transitive
description:
@@ -494,14 +486,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.2"
- coverage:
- dependency: transitive
- description:
- name: coverage
- sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43
- url: "https://pub.dev"
- source: hosted
- version: "1.11.1"
cross_file:
dependency: "direct main"
description:
@@ -686,14 +670,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.7.0"
- ed25519_edwards:
- dependency: transitive
- description:
- name: ed25519_edwards
- sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.1"
encrypt:
dependency: "direct main"
description:
@@ -750,14 +726,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
- ffigen:
- dependency: transitive
- description:
- name: ffigen
- sha256: "2119b4fe3aad0db94dc9531b90283c4640a6231070e613c400b426a4da08c704"
- url: "https://pub.dev"
- source: hosted
- version: "16.1.0"
file:
dependency: transitive
description:
@@ -863,10 +831,10 @@ packages:
dependency: "direct main"
description:
name: flutter_drawing_board
- sha256: cc0a7bc665320628f2927632e2cdeee935ebbb48e0e6400ed504663ae704e713
+ sha256: b7eef8c506a12485853e8b4cdc110d1d307993279b588f3a35902a7d7082dbd4
url: "https://pub.dev"
source: hosted
- version: "0.9.5"
+ version: "0.9.8"
flutter_gen:
dependency: "direct dev"
description:
@@ -1132,10 +1100,10 @@ packages:
dependency: "direct main"
description:
name: flutter_quill
- sha256: "30a85c53ef19dba5403d0f4b8030c0f22fd2d3614f115ff07004bdecbda2b8f6"
+ sha256: cdc3802700bf6718b8286ec6c999094f45abb885b5b3b65380f25d1b4369032d
url: "https://pub.dev"
source: hosted
- version: "11.1.0"
+ version: "11.1.1"
flutter_quill_delta_from_html:
dependency: transitive
description:
@@ -1302,18 +1270,18 @@ packages:
dependency: transitive
description:
name: geolocator_apple
- sha256: "419e50f754281d3606750af07b198ecfe938e8648d3e30a898d3ac342ab717e6"
+ sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22
url: "https://pub.dev"
source: hosted
- version: "2.3.12"
+ version: "2.3.13"
geolocator_platform_interface:
dependency: transitive
description:
name: geolocator_platform_interface
- sha256: "722db30c0a2caa82a59d6655f04ef0a492da003036b880342cc67e6f1abc188f"
+ sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67"
url: "https://pub.dev"
source: hosted
- version: "4.2.5"
+ version: "4.2.6"
geolocator_web:
dependency: transitive
description:
@@ -1338,14 +1306,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "7.7.0"
- github:
- dependency: transitive
- description:
- name: github
- sha256: "57f6ad78591f9638e903409977443093f862d25062a6b582a3c89e4ae44e4814"
- url: "https://pub.dev"
- source: hosted
- version: "9.24.0"
glob:
dependency: transitive
description:
@@ -1394,14 +1354,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.0"
- hex:
- dependency: transitive
- description:
- name: hex
- sha256: "4e7cd54e4b59ba026432a6be2dd9d96e4c5205725194997193bf871703b82c4a"
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0"
highlight:
dependency: transitive
description:
@@ -1573,10 +1525,11 @@ packages:
isar_flutter_libs:
dependency: "direct main"
description:
- name: isar_flutter_libs
- sha256: "04a3f4035e213ddb6e78d0132a7c80296a085c2088c2a761b4a42ee5add36983"
- url: "https://pub.dev"
- source: hosted
+ path: "packages/isar_flutter_libs"
+ ref: HEAD
+ resolved-ref: fc323a5660b9987fd4d137f71b0d3dbad0915e4f
+ url: "https://github.com/ZhuJHua/isar"
+ source: git
version: "4.0.0-dev.14"
js:
dependency: transitive
@@ -1734,10 +1687,10 @@ packages:
dependency: transitive
description:
name: macos_window_utils
- sha256: "3534f2af024f2f24112ca28789a44e6750083f8c0065414546c6593ee48a5009"
+ sha256: "10036bd91202d3542b75d40b5b3f4001ca5a232081477ca71690d7c4ea91f7cb"
url: "https://pub.dev"
source: hosted
- version: "1.6.1"
+ version: "1.7.0"
macros:
dependency: transitive
description:
@@ -1850,6 +1803,13 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
+ moodiary_rust:
+ dependency: "direct main"
+ description:
+ path: rust_builder
+ relative: true
+ source: path
+ version: "0.0.1"
msix:
dependency: "direct dev"
description:
@@ -1890,14 +1850,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.5.0"
- node_preamble:
- dependency: transitive
- description:
- name: node_preamble
- sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.2"
octo_image:
dependency: transitive
description:
@@ -2158,10 +2110,10 @@ packages:
dependency: transitive
description:
name: quill_native_bridge
- sha256: bda0f0ad9bc160dcdd4bd2b378a7ae8bdb55c3d4b7301bf739d5e3b065ee5e82
+ sha256: "00752aca7d67cbd3254709a47558be78427750cb81aa42cfbed354d4a079bcfa"
url: "https://pub.dev"
source: hosted
- version: "11.0.0"
+ version: "11.0.1"
quill_native_bridge_android:
dependency: transitive
description:
@@ -2198,18 +2150,18 @@ packages:
dependency: transitive
description:
name: quill_native_bridge_platform_interface
- sha256: ea48bd12bf426741747ec8a575b122350971f338a75049099b349c63447582a2
+ sha256: "8264a2bdb8a294c31377a27b46c0f8717fa9f968cf113f7dc52d332ed9c84526"
url: "https://pub.dev"
source: hosted
- version: "0.0.1+1"
+ version: "0.0.2+1"
quill_native_bridge_web:
dependency: transitive
description:
name: quill_native_bridge_web
- sha256: e7e55047d68f1a88574c26dbe3f12988f49d07740590d8fc6280028bbde5b908
+ sha256: "7c723f6824b0250d7f33e8b6c23f2f8eb0103fe48ee7ebf47ab6786b64d5c05d"
url: "https://pub.dev"
source: hosted
- version: "0.0.1"
+ version: "0.0.2"
quill_native_bridge_windows:
dependency: transitive
description:
@@ -2522,22 +2474,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.1"
- shelf_packages_handler:
- dependency: transitive
- description:
- name: shelf_packages_handler
- sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- shelf_static:
- dependency: transitive
- description:
- name: shelf_static
- sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
- url: "https://pub.dev"
- source: hosted
- version: "1.1.3"
shelf_web_socket:
dependency: transitive
description:
@@ -2583,22 +2519,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.5"
- source_map_stack_trace:
- dependency: transitive
- description:
- name: source_map_stack_trace
- sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
- url: "https://pub.dev"
- source: hosted
- version: "2.1.2"
- source_maps:
- dependency: transitive
- description:
- name: source_maps
- sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812"
- url: "https://pub.dev"
- source: hosted
- version: "0.10.13"
source_span:
dependency: transitive
description:
@@ -2751,14 +2671,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.2"
- test:
- dependency: transitive
- description:
- name: test
- sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e"
- url: "https://pub.dev"
- source: hosted
- version: "1.25.15"
test_api:
dependency: transitive
description:
@@ -2767,14 +2679,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.4"
- test_core:
- dependency: transitive
- description:
- name: test_core
- sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa"
- url: "https://pub.dev"
- source: hosted
- version: "0.6.8"
tflite_flutter:
dependency: "direct main"
description:
@@ -2799,14 +2703,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.2"
- toml:
- dependency: transitive
- description:
- name: toml
- sha256: d968d149c8bd06dc14e09ea3a140f90a3f2ba71949e7a91df4a46f3107400e71
- url: "https://pub.dev"
- source: hosted
- version: "0.16.0"
tutorial_coach_mark:
dependency: "direct main"
description:
@@ -2959,14 +2855,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
- version:
- dependency: transitive
- description:
- name: version
- sha256: "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
video_player:
dependency: "direct main"
description:
@@ -3103,14 +2991,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.2"
- webkit_inspection_protocol:
- dependency: transitive
- description:
- name: webkit_inspection_protocol
- sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
win32:
dependency: transitive
description:
@@ -3159,14 +3039,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.3"
- yaml_edit:
- dependency: transitive
- description:
- name: yaml_edit
- sha256: fb38626579fb345ad00e674e2af3a5c9b0cc4b9bfb8fd7f7ff322c7c9e62aef5
- url: "https://pub.dev"
- source: hosted
- version: "2.2.2"
yet_another_json_isolate:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 0248954..9b930f0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,10 +7,6 @@ environment:
sdk: '>=3.7.0'
flutter: '>=3.29.0'
-workspace:
- - rust_builder
- - rust_builder/cargokit/build_tool
-
dependencies:
flutter:
sdk: flutter
@@ -19,9 +15,9 @@ dependencies:
dio: 5.8.0+1
path: 1.9.1
path_provider: 2.1.5
- calendar_date_picker2: 1.1.9
+ calendar_date_picker2: 2.0.0
logger: 2.5.0
- flutter_drawing_board: 0.9.5
+ flutter_drawing_board: 0.9.8
flutter_displaymode: 0.6.0
fl_chart: 0.70.2
file_picker: 9.2.1
@@ -32,7 +28,7 @@ dependencies:
device_info_plus: 11.3.3
package_info_plus: 8.3.0
uuid: 4.5.1
- flutter_quill: 11.1.0
+ flutter_quill: 11.1.1
share_plus: 10.1.4
url_launcher: 6.3.1
archive: 4.0.4
@@ -42,7 +38,10 @@ dependencies:
geolocator: 13.0.3
shared_preferences: 2.5.2
isar: 4.0.0-dev.14
- isar_flutter_libs: 4.0.0-dev.14
+ isar_flutter_libs:
+ git:
+ url: https://github.com/ZhuJHua/isar
+ path: packages/isar_flutter_libs
fluttertoast: 8.2.12
cached_network_image: 3.4.1
audioplayers: 6.4.0
@@ -122,7 +121,6 @@ dependencies:
json_annotation: 4.9.0
audioplayers_android_exo: 0.1.2
-
dev_dependencies:
flutter_test:
sdk: flutter
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index 2e36409..4d0b6e1 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -18,3 +18,9 @@ walkdir = "2.5.0"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] }
+
+[profile.release]
+lto = true
+codegen-units = 1
+panic = "abort"
+strip = "symbols"
\ No newline at end of file
diff --git a/rust_builder/pubspec.yaml b/rust_builder/pubspec.yaml
index da45870..3136012 100644
--- a/rust_builder/pubspec.yaml
+++ b/rust_builder/pubspec.yaml
@@ -2,7 +2,9 @@ name: moodiary_rust
description: "Utility to build Rust code"
version: 0.0.1
publish_to: none
-resolution: workspace
+
+workspace:
+ - cargokit/build_tool
environment:
sdk: '>=3.7.0'