Compare commits
488 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8ce69011c | ||
|
|
4d93fe259b | ||
|
|
466a664157 | ||
|
|
7885b68415 | ||
|
|
8ef72433eb | ||
|
|
073e483112 | ||
|
|
967f652d9a | ||
|
|
64ca18ef44 | ||
|
|
c1948f888e | ||
|
|
2b7f750b4c | ||
|
|
ef3f0270a6 | ||
|
|
8d9f380ec5 | ||
|
|
2e206a9335 | ||
|
|
f642530bca | ||
|
|
13e3dc1bb2 | ||
|
|
ce319374a2 | ||
|
|
eee3cc03d8 | ||
|
|
372678fa82 | ||
|
|
9b3757dea1 | ||
|
|
cc4cee941d | ||
|
|
3be9f90575 | ||
|
|
87a7af08ff | ||
|
|
cf97917117 | ||
|
|
487972451c | ||
|
|
2eb6ab7409 | ||
|
|
f106154fe4 | ||
|
|
9524193261 | ||
|
|
59346795ae | ||
|
|
96682cb593 | ||
|
|
06b52fce5d | ||
|
|
9edc55a6c8 | ||
|
|
d25231c413 | ||
|
|
6584cca855 | ||
|
|
12e4e808da | ||
|
|
3266d9f438 | ||
|
|
c39f5b30f8 | ||
|
|
d5e5b94607 | ||
|
|
ddb6d8f2db | ||
|
|
a7f7601408 | ||
|
|
5edaf2f6cf | ||
|
|
b274622006 | ||
|
|
6de1968ddf | ||
|
|
aeef1e511c | ||
|
|
9589dc9e54 | ||
|
|
4abb85ad42 | ||
|
|
f9f2056d04 | ||
|
|
182008a678 | ||
|
|
0b1a9bf4c8 | ||
|
|
cd51e8922b | ||
|
|
8c9fe08128 | ||
|
|
8dc18c92cd | ||
|
|
2a9900556e | ||
|
|
0e46a830af | ||
|
|
41709c8832 | ||
|
|
316fa1119f | ||
|
|
0df58eed05 | ||
|
|
7d936ac1c3 | ||
|
|
4a1c2609ab | ||
|
|
28dc3e1114 | ||
|
|
cd78b4d64d | ||
|
|
e32bb156fe | ||
|
|
ab8f40b98f | ||
|
|
235f632670 | ||
|
|
af3bf29139 | ||
|
|
1afe59ac70 | ||
|
|
406e042411 | ||
|
|
8d95476d04 | ||
|
|
83049f598e | ||
|
|
047a3ac576 | ||
|
|
fe2f29c939 | ||
|
|
c631636472 | ||
|
|
ca9c553df1 | ||
|
|
4ca93f15ca | ||
|
|
9906d8c1af | ||
|
|
3a00ffa04f | ||
|
|
5328649b67 | ||
|
|
b3b3f526b4 | ||
|
|
1f438e5c52 | ||
|
|
c4f5cf7d96 | ||
|
|
443de5d35a | ||
|
|
c424839453 | ||
|
|
6d9489076e | ||
|
|
cb43f50ea5 | ||
|
|
b6e116418b | ||
|
|
574e7090cc | ||
|
|
77b9bd5005 | ||
|
|
7c6f704895 | ||
|
|
7ed54ddf95 | ||
|
|
d992cc173d | ||
|
|
1671c3c770 | ||
|
|
89f9045e30 | ||
|
|
80ad276634 | ||
|
|
3fb5573a7c | ||
|
|
9b72ceaa6e | ||
|
|
8047c391b3 | ||
|
|
ea053f5a73 | ||
|
|
31560b783f | ||
|
|
d25d8c8269 | ||
|
|
fae6316f55 | ||
|
|
63ba3c2b68 | ||
|
|
827fd89ddc | ||
|
|
5bf5f36f9d | ||
|
|
84d1bb5802 | ||
|
|
ee1e240f6d | ||
|
|
5f5e6b90ed | ||
|
|
512cd622f7 | ||
|
|
5b9ca30c95 | ||
|
|
348fe883ab | ||
|
|
64a65f39b6 | ||
|
|
acca62a525 | ||
|
|
cd78ab72c4 | ||
|
|
9c20ee729c | ||
|
|
a2c92ef947 | ||
|
|
42fe3ab33b | ||
|
|
738d13d67d | ||
|
|
e7ea753e78 | ||
|
|
39e52878e1 | ||
|
|
744e7464e1 | ||
|
|
a6c91f2316 | ||
|
|
10e0da1861 | ||
|
|
ccf2ec85dd | ||
|
|
bcdbabc8d4 | ||
|
|
80cd02e0fe | ||
|
|
abbd48d600 | ||
|
|
f172e0791a | ||
|
|
e5578bdeae | ||
|
|
b9d694ca50 | ||
|
|
827c98d177 | ||
|
|
e9992128c7 | ||
|
|
12e5dbdaad | ||
|
|
cdf39298f9 | ||
|
|
fe6267bf29 | ||
|
|
e53c379502 | ||
|
|
b3d1b53fb1 | ||
|
|
1c374b7a84 | ||
|
|
7597ff5194 | ||
|
|
6ce64f8b46 | ||
|
|
545891fe55 | ||
|
|
610b983e12 | ||
|
|
905a398e7e | ||
|
|
6b1aa8c07d | ||
|
|
2176e96c2d | ||
|
|
c0fe3d31a3 | ||
|
|
75dfb05e6c | ||
|
|
9ba802a6ae | ||
|
|
0029932e85 | ||
|
|
09b979493c | ||
|
|
97dd44856c | ||
|
|
cebab37e0a | ||
|
|
3006aa2dda | ||
|
|
527767e1ab | ||
|
|
1f08c317b9 | ||
|
|
5dc836ecce | ||
|
|
5154db3269 | ||
|
|
b5be93fa56 | ||
|
|
cb1bb4b891 | ||
|
|
5ded722d5c | ||
|
|
6ae4b4a45f | ||
|
|
7acbc7854d | ||
|
|
1374ae8a64 | ||
|
|
4436162bd7 | ||
|
|
e3066748d4 | ||
|
|
f6fbdf8c4c | ||
|
|
7523cd0f6b | ||
|
|
a1ad810e0f | ||
|
|
e9498646e2 | ||
|
|
4e05adca5d | ||
|
|
ac23cdaeb1 | ||
|
|
74b8f4db3b | ||
|
|
9daf5dfe4b | ||
|
|
bfb5429f76 | ||
|
|
c3aac55752 | ||
|
|
86f3ecbfb9 | ||
|
|
13348fd880 | ||
|
|
77bfab6584 | ||
|
|
6649f04ae3 | ||
|
|
a1379eb474 | ||
|
|
28bffec383 | ||
|
|
9ee9e78974 | ||
|
|
e563afc43a | ||
|
|
c6bc93fdbd | ||
|
|
ac01624def | ||
|
|
4e662f9b96 | ||
|
|
9a5b85cc02 | ||
|
|
676ea4d763 | ||
|
|
fb77e91a33 | ||
|
|
1e220f67c3 | ||
|
|
5f62a228f0 | ||
|
|
be911fbd17 | ||
|
|
509d8f17e2 | ||
|
|
c6022db034 | ||
|
|
686bd4f41a | ||
|
|
042da7d659 | ||
|
|
00395a27ac | ||
|
|
93a4325aec | ||
|
|
0b5aa5f762 | ||
|
|
c9fd39561f | ||
|
|
ad32aa616a | ||
|
|
41e6113a0a | ||
|
|
5cba840f80 | ||
|
|
2478c9c932 | ||
|
|
67bf72284f | ||
|
|
022c4bb60d | ||
|
|
5fe6d66d48 | ||
|
|
3584cca5c9 | ||
|
|
58ca34bcf9 | ||
|
|
3c05149bed | ||
|
|
4e525f4d30 | ||
|
|
6ff78e4538 | ||
|
|
502df877c1 | ||
|
|
875edb6dba | ||
|
|
7a2fe21a21 | ||
|
|
c9d626ed3d | ||
|
|
0d0c95b78c | ||
|
|
aa40bdb9ab | ||
|
|
f22231ff33 | ||
|
|
feed024495 | ||
|
|
c94499ad43 | ||
|
|
c36a771405 | ||
|
|
c67b13ecd3 | ||
|
|
630849e189 | ||
|
|
2ce60b0a21 | ||
|
|
47a6eb8baa | ||
|
|
cd4e699878 | ||
|
|
b5978de312 | ||
|
|
bc5f9ee3b8 | ||
|
|
246b17ab68 | ||
|
|
d525ddaa70 | ||
|
|
0354e1af37 | ||
|
|
df1020b7ee | ||
|
|
ca0f81a09c | ||
|
|
7fee9ae8ae | ||
|
|
17a7ee7ed9 | ||
|
|
f7da792bdb | ||
|
|
1de5ae87ae | ||
|
|
f84f636529 | ||
|
|
3709b4fd57 | ||
|
|
6eba9a1a1e | ||
|
|
865234514e | ||
|
|
c4f5780dab | ||
|
|
b31c7415a9 | ||
|
|
581655b2dd | ||
|
|
3c5dea31ab | ||
|
|
e4c356560d | ||
|
|
e55358cfbf | ||
|
|
93d378637e | ||
|
|
589a87b30d | ||
|
|
51e87f9ae6 | ||
|
|
c0d3d60674 | ||
|
|
08df9bba04 | ||
|
|
1e4b75b414 | ||
|
|
137a1f3c98 | ||
|
|
59caeb3f28 | ||
|
|
042a715595 | ||
|
|
3a55579f33 | ||
|
|
7736c72780 | ||
|
|
cabb760599 | ||
|
|
86f337c0a2 | ||
|
|
784297f007 | ||
|
|
5af6d9080b | ||
|
|
074b2e0631 | ||
|
|
4f12267b3f | ||
|
|
9e1ffc49e3 | ||
|
|
b3dddaabda | ||
|
|
81657dbe69 | ||
|
|
76365ece09 | ||
|
|
671aa29b3c | ||
|
|
d285b74131 | ||
|
|
3b7c46c815 | ||
|
|
0222f7b352 | ||
|
|
c30b84f668 | ||
|
|
04c37d3465 | ||
|
|
b05c71a69c | ||
|
|
2cd0661ee9 | ||
|
|
ca40667068 | ||
|
|
7a5df7605e | ||
|
|
d6012c6499 | ||
|
|
be5814c6a0 | ||
|
|
3aab7784c6 | ||
|
|
df95b1e252 | ||
|
|
e103f3fd8b | ||
|
|
e951a59d9d | ||
|
|
b66ff57c07 | ||
|
|
8250c7a0bf | ||
|
|
822719bdeb | ||
|
|
f3e735b886 | ||
|
|
3e0f437a0e | ||
|
|
e3d27db92e | ||
|
|
25d0858a76 | ||
|
|
8365641f74 | ||
|
|
691ff9a65d | ||
|
|
793c248b2a | ||
|
|
123d1842dc | ||
|
|
b7906f0114 | ||
|
|
2b279f59af | ||
|
|
cfd3b66cc5 | ||
|
|
dfd1078b11 | ||
|
|
95b877cae2 | ||
|
|
f67d073e51 | ||
|
|
bd2d91b07a | ||
|
|
b1035b5336 | ||
|
|
1812133c63 | ||
|
|
0fcad41525 | ||
|
|
93f4fa1147 | ||
|
|
a1ff7f8cbc | ||
|
|
d917e4384c | ||
|
|
7b6c923737 | ||
|
|
09de3e1da0 | ||
|
|
685bb4e2dd | ||
|
|
66de7b3daf | ||
|
|
90bf879eea | ||
|
|
e927fb769b | ||
|
|
84bc3532bf | ||
|
|
17da3a5025 | ||
|
|
c68f4078ba | ||
|
|
ec13f38366 | ||
|
|
9c694e0535 | ||
|
|
8e4d187e35 | ||
|
|
f45007a51d | ||
|
|
a22ad6219f | ||
|
|
6be4f85408 | ||
|
|
ee9e73671f | ||
|
|
fa7d34ad7b | ||
|
|
6cc4ee4795 | ||
|
|
ac20514093 | ||
|
|
e5bc11a2be | ||
|
|
eca54601b0 | ||
|
|
bd262c7418 | ||
|
|
41160ae27f | ||
|
|
85f30c5fcf | ||
|
|
f871cb66ee | ||
|
|
67c421991d | ||
|
|
e155f69e87 | ||
|
|
6d569af9f3 | ||
|
|
19cabc1b13 | ||
|
|
3065159ec2 | ||
|
|
333ff5e80d | ||
|
|
fe2c81bdc8 | ||
|
|
36b7d64b4f | ||
|
|
0dd871ffd1 | ||
|
|
8dd3639d07 | ||
|
|
f253b0e63d | ||
|
|
0327b2c0a3 | ||
|
|
e3be3746ab | ||
|
|
a4005eddff | ||
|
|
80f8dac274 | ||
|
|
d5b212d2a1 | ||
|
|
df9c343936 | ||
|
|
5c5d608c3a | ||
|
|
ec7d2c6a3f | ||
|
|
36296edaa9 | ||
|
|
d13760c09e | ||
|
|
1f8baf3258 | ||
|
|
cde4b0db69 | ||
|
|
9363507183 | ||
|
|
0b6e335d3b | ||
|
|
d6acb97e40 | ||
|
|
453d3ca39e | ||
|
|
82f63f0f93 | ||
|
|
23a030b450 | ||
|
|
b0c77ddaeb | ||
|
|
15181e29e4 | ||
|
|
bd9cbd8189 | ||
|
|
c7d5a571b1 | ||
|
|
55cbb8f6ae | ||
|
|
703d780d92 | ||
|
|
dbcd3f74ab | ||
|
|
06f9dcf2cf | ||
|
|
8cf07ba940 | ||
|
|
a7e10c3892 | ||
|
|
d0beed52c5 | ||
|
|
f18fa856a2 | ||
|
|
e95a820d3f | ||
|
|
8afda6e8ef | ||
|
|
b94b3f666b | ||
|
|
13dc2f4e50 | ||
|
|
2316e0d2ec | ||
|
|
73706eb0f9 | ||
|
|
152e20aea0 | ||
|
|
c01abf05e1 | ||
|
|
e651cdce88 | ||
|
|
90bbc7f7a9 | ||
|
|
c4a5ca9959 | ||
|
|
cada631d26 | ||
|
|
523535ba16 | ||
|
|
1b9b16b3e1 | ||
|
|
bd06ee66b3 | ||
|
|
059b3b37e3 | ||
|
|
4b104af23a | ||
|
|
d7ce5713aa | ||
|
|
ff1a8f5cc8 | ||
|
|
366e33ad49 | ||
|
|
377d838134 | ||
|
|
8d5ea87124 | ||
|
|
db14008af1 | ||
|
|
9c70360242 | ||
|
|
8ab5b3f8ea | ||
|
|
96627cab42 | ||
|
|
57bc494382 | ||
|
|
e206fdeb75 | ||
|
|
5f6b04d917 | ||
|
|
13efeea393 | ||
|
|
17c1da5687 | ||
|
|
f84f5ca40b | ||
|
|
b376fc9219 | ||
|
|
6747fb6bec | ||
|
|
5c5028c490 | ||
|
|
f11d524952 | ||
|
|
4ad72a592e | ||
|
|
7dfb215eec | ||
|
|
403b47793b | ||
|
|
3103d650e4 | ||
|
|
6e27cd0821 | ||
|
|
d98e9a9601 | ||
|
|
17b16f021b | ||
|
|
ef1970888e | ||
|
|
8c6d34e6f1 | ||
|
|
3f5ee19589 | ||
|
|
eb2d0fe2b4 | ||
|
|
a7019130b9 | ||
|
|
0341ae7b89 | ||
|
|
a10b12af07 | ||
|
|
90caf19a4a | ||
|
|
7ff119fc05 | ||
|
|
cf649b48ff | ||
|
|
3a072a2748 | ||
|
|
de2f1f4c2f | ||
|
|
faaf790f84 | ||
|
|
f49ac142b7 | ||
|
|
c3166e1965 | ||
|
|
be4746da05 | ||
|
|
7a0277e87a | ||
|
|
c85b1baceb | ||
|
|
7e7d721e11 | ||
|
|
24eedd097b | ||
|
|
4886007109 | ||
|
|
d89d3e3457 | ||
|
|
c43170d1cf | ||
|
|
8e4cf6b997 | ||
|
|
112de63c36 | ||
|
|
eaa0f7b883 | ||
|
|
8d760023e9 | ||
|
|
2e0ce5cc97 | ||
|
|
4eec599592 | ||
|
|
61c8341e8c | ||
|
|
f9cdf4a994 | ||
|
|
74a33ef320 | ||
|
|
49bab7e4ac | ||
|
|
8c81afd646 | ||
|
|
64271d06dc | ||
|
|
414c3ee5aa | ||
|
|
e0f7cab93b | ||
|
|
f37f491dd0 | ||
|
|
4c431746b5 | ||
|
|
1a19527b13 | ||
|
|
163d030cab | ||
|
|
00e7c3a966 | ||
|
|
f7b19c043f | ||
|
|
ffa5bcaf4e | ||
|
|
64d81d198b | ||
|
|
820586bcdf | ||
|
|
95886edb3b | ||
|
|
d0be93dd64 | ||
|
|
f663afde08 | ||
|
|
0b3be6d7c9 | ||
|
|
e093b5cfcc | ||
|
|
1195a5d105 | ||
|
|
4e188a3784 | ||
|
|
ef38f4d591 | ||
|
|
64c85f6b20 | ||
|
|
77dd89ae1b | ||
|
|
304a65b6d4 | ||
|
|
048e253030 | ||
|
|
56ae315c2f | ||
|
|
715f5634a5 | ||
|
|
036e588e4d | ||
|
|
d4348b30b3 | ||
|
|
aacf2684e1 | ||
|
|
1d11e13b0d | ||
|
|
f96f627143 | ||
|
|
0ed9fc026c | ||
|
|
0c3dc27b10 | ||
|
|
42187cbd5b | ||
|
|
6564907a97 | ||
|
|
45e64cfe6d | ||
|
|
d32fa6ad23 | ||
|
|
67d36738fe | ||
|
|
9a012efd38 |
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
* text=auto eol=lf
|
||||
|
||||
49
.github/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name-template: 'v$RESOLVED_VERSION'
|
||||
tag-template: 'v$RESOLVED_VERSION'
|
||||
|
||||
categories:
|
||||
- title: ✨ Features
|
||||
labels:
|
||||
- feat
|
||||
- title: 🐛 Bug Fixes
|
||||
labels:
|
||||
- fix
|
||||
- title: 🛠️ Chores
|
||||
labels:
|
||||
- chore
|
||||
- title: 📚 Documentation Updates
|
||||
labels:
|
||||
- docs
|
||||
- title: 🎨 Code Style Updates
|
||||
labels:
|
||||
- style
|
||||
- title: 🔨 Refactors
|
||||
labels:
|
||||
- refactor
|
||||
- title: ⚡ Performance Improvements
|
||||
labels:
|
||||
- perf
|
||||
- title: ✅ Tests
|
||||
labels:
|
||||
- test
|
||||
- title: 🏗️ Build System
|
||||
labels:
|
||||
- build
|
||||
- title: 🧹 CI/CD Changes
|
||||
labels:
|
||||
- ci
|
||||
- title: ⏪ Reverts
|
||||
labels:
|
||||
- revert
|
||||
- title: ❓ What is This
|
||||
labels:
|
||||
- '?'
|
||||
|
||||
change-template: '- $TITLE (#$NUMBER) by @$AUTHOR'
|
||||
template: |
|
||||
# 🔥 What's Changed
|
||||
|
||||
$CHANGES
|
||||
|
||||
---
|
||||
🔖 Compare Changes: [View Changes](https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION)
|
||||
33
.github/workflows/auto-merge.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Auto Merge
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- labeled
|
||||
- unlabeled
|
||||
- synchronize
|
||||
- opened
|
||||
- edited
|
||||
- ready_for_review
|
||||
- reopened
|
||||
- unlocked
|
||||
pull_request_review:
|
||||
types:
|
||||
- submitted
|
||||
check_suite:
|
||||
types:
|
||||
- completed
|
||||
status: { }
|
||||
jobs:
|
||||
automerge:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: automerge
|
||||
name: automerge
|
||||
uses: "pascalgn/automerge-action@v0.16.4"
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
MERGE_METHOD: "squash"
|
||||
MERGE_DELETE_BRANCH: "true"
|
||||
182
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
name: Build & Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-apk:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build APK
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set Up Java
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '21'
|
||||
|
||||
- name: Install jq
|
||||
run: sudo apt-get install -y jq
|
||||
|
||||
- name: Read Flutter Version
|
||||
id: flutter_version
|
||||
run: |
|
||||
if [ -f .fvmrc ]; then
|
||||
FLUTTER_VERSION=$(cat .fvmrc | jq -r '.flutter')
|
||||
echo "Flutter version detected: $FLUTTER_VERSION"
|
||||
echo "flutter-version=$FLUTTER_VERSION" >> $GITHUB_ENV
|
||||
else
|
||||
echo ".fvmrc not found. Defaulting to latest Flutter version."
|
||||
echo "flutter-version=stable" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Set Up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: ${{ env.flutter-version }}
|
||||
|
||||
- name: Set Up Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly
|
||||
override: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Decode Keystore
|
||||
run: |
|
||||
echo "${{ secrets.ANDROID_KJS }}" | base64 --decode > android/app/key.jks
|
||||
|
||||
- name: Create local.properties
|
||||
run: |
|
||||
echo "storePassword=${{ secrets.ANDROID_STORE_PASSWORD }}" > android/local.properties
|
||||
echo "keyPassword=${{ secrets.ANDROID_KEY_PASSWORD }}" >> android/local.properties
|
||||
|
||||
- name: Build APK
|
||||
run: flutter build apk --release --obfuscate --split-debug-info=splitMap
|
||||
|
||||
- name: Upload APK Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: build/app/outputs/flutter-apk/app-release.apk
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
name: Build Windows
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set Up Java
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: "temurin"
|
||||
java-version: "21"
|
||||
|
||||
- name: Read Flutter Version
|
||||
id: flutter_version
|
||||
run: |
|
||||
if (Test-Path .fvmrc) {
|
||||
$FLUTTER_VERSION = (Get-Content .fvmrc | ConvertFrom-Json).flutter
|
||||
echo "Flutter version detected: $FLUTTER_VERSION"
|
||||
echo "flutter-version=$FLUTTER_VERSION" >> $env:GITHUB_ENV
|
||||
} else {
|
||||
echo ".fvmrc not found. Defaulting to latest Flutter version."
|
||||
echo "flutter-version=stable" >> $env:GITHUB_ENV
|
||||
}
|
||||
|
||||
- name: Set Up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: ${{ env.flutter-version }}
|
||||
|
||||
- name: Set Up Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly
|
||||
override: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Build Windows
|
||||
run: flutter build windows --release
|
||||
|
||||
- name: Create ZIP Archive
|
||||
run: |
|
||||
Compress-Archive -Path build\windows\x64\runner\Release\* -DestinationPath build\windows\moodiary-windows.zip
|
||||
|
||||
- name: Upload Windows Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-app
|
||||
path: build\windows\moodiary-windows.zip
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
name: Publish Release
|
||||
needs: [ build-apk, build-windows ]
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download APK Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: artifacts/android
|
||||
|
||||
- name: Download Windows Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: windows-app
|
||||
path: artifacts/windows
|
||||
|
||||
- name: Get Latest Tag
|
||||
id: latest_tag
|
||||
uses: actions-ecosystem/action-get-latest-tag@v1.6.0
|
||||
with:
|
||||
fetch-all-tags: true
|
||||
sort-tags: true
|
||||
|
||||
- name: Extract Tag Version
|
||||
id: extract_tag_version
|
||||
run: |
|
||||
tag="${{ steps.latest_tag.outputs.tag }}"
|
||||
version="${tag#v}"
|
||||
echo "VERSION=$version" >> $GITHUB_ENV
|
||||
|
||||
- name: Rename Artifacts
|
||||
run: |
|
||||
mkdir -p renamed-artifacts
|
||||
mv artifacts/android/app-release.apk renamed-artifacts/moodiary-${{ env.VERSION }}-android-arm64.apk
|
||||
mv artifacts/windows/moodiary-windows.zip renamed-artifacts/moodiary-${{ env.VERSION }}-windows-x64.zip
|
||||
|
||||
- name: Generate Release Notes
|
||||
id: release_notes
|
||||
uses: release-drafter/release-drafter@v5
|
||||
with:
|
||||
config-name: release-drafter.yml
|
||||
tag: v${{ env.VERSION }}
|
||||
publish: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifacts: renamed-artifacts/*
|
||||
tag: v${{ env.VERSION }}
|
||||
name: v${{ env.VERSION }}
|
||||
body: ${{ steps.release_notes.outputs.body }}
|
||||
draft: true
|
||||
prerelease: false
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
28
.github/workflows/cargo-ci.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
name: Cargo CI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Run Tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly
|
||||
override: true
|
||||
|
||||
- name: Run cargo test
|
||||
working-directory: rust
|
||||
run: cargo test
|
||||
|
||||
- name: Fail on Errors
|
||||
if: failure()
|
||||
run: exit 1
|
||||
57
.github/workflows/cliff.yml
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: Git Cliff
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
types:
|
||||
- closed
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
changelog:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check if PR is merged
|
||||
run: |
|
||||
if [ "${{ github.event.pull_request.merged }}" == "true" ]; then
|
||||
echo "PR is merged, proceeding with changelog update."
|
||||
else
|
||||
echo "PR is not merged, skipping changelog update."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
- name: Generate changelog using Git Cliff
|
||||
uses: orhun/git-cliff-action@v4
|
||||
with:
|
||||
config: cliff.toml
|
||||
args: --verbose
|
||||
env:
|
||||
OUTPUT: CHANGELOG.md
|
||||
GITHUB_REPO: ${{ github.repository }}
|
||||
|
||||
- name: Commit and push changelog changes
|
||||
run: |
|
||||
git checkout -b changelog-update
|
||||
git config user.name 'github-actions[bot]'
|
||||
git config user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git add CHANGELOG.md
|
||||
git commit -m "Update changelog"
|
||||
git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git changelog-update
|
||||
|
||||
- name: Create Pull Request
|
||||
run: |
|
||||
gh pr create --base master --head changelog-update --title "Update changelog" --body "This PR updates the changelog based on recent changes." --label bot
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Auto Merge Pull Request
|
||||
run: |
|
||||
gh pr merge --merge --delete-branch "changelog-update"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
49
.github/workflows/flutter-ci.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: Flutter CI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
flutter-ci:
|
||||
name: Analyze and Run Tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install jq
|
||||
run: sudo apt-get install -y jq
|
||||
|
||||
- name: Read Flutter Version
|
||||
id: flutter_version
|
||||
run: |
|
||||
if [ -f .fvmrc ]; then
|
||||
FLUTTER_VERSION=$(cat .fvmrc | jq -r '.flutter')
|
||||
echo "Flutter version detected: $FLUTTER_VERSION"
|
||||
echo "flutter-version=$FLUTTER_VERSION" >> $GITHUB_ENV
|
||||
else
|
||||
echo ".fvmrc not found. Defaulting to latest Flutter version."
|
||||
echo "flutter-version=stable" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Set Up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: ${{ env.flutter-version }}
|
||||
|
||||
- name: Install Dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Run Flutter Analyze
|
||||
run: flutter analyze
|
||||
|
||||
- name: Run Flutter Tests
|
||||
run: flutter test
|
||||
|
||||
- name: Fail on Errors
|
||||
if: failure()
|
||||
run: exit 1
|
||||
22
.github/workflows/issue.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Issue Labeled
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [ labeled ]
|
||||
|
||||
jobs:
|
||||
issue-labeled:
|
||||
if: github.actor != github.event.issue.user.login
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Need more info
|
||||
if: github.event.label.name == 'question'
|
||||
uses: actions-cool/issues-helper@main
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
body: |
|
||||
你好 @${{ github.event.issue.user.login }},你所提供的信息不足于我们排查问题,请按照 issue 模板填写相关信息,感谢配合,谢谢!15 天内未回复issue自动关闭。
|
||||
|
||||
Hello, @${{ github.event.issue.user.login }}, the information you provided is not enough for us to troubleshoot the problem. Please complete the issue description. Thanks so much for your cooperation! The issue will be closed without any replay within 15 days.
|
||||
54
.github/workflows/label-pr.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
name: Label PR Based on Conventional Commits
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened ]
|
||||
|
||||
jobs:
|
||||
label-pr:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Analyze PR Title
|
||||
id: analyze_title
|
||||
run: |
|
||||
pr_title="${{ github.event.pull_request.title }}"
|
||||
label=""
|
||||
|
||||
# Match against Conventional Commits
|
||||
if [[ "$pr_title" == feat* ]]; then
|
||||
label="feat"
|
||||
elif [[ "$pr_title" == fix* ]]; then
|
||||
label="fix"
|
||||
elif [[ "$pr_title" == chore* ]]; then
|
||||
label="chore"
|
||||
elif [[ "$pr_title" == docs* ]]; then
|
||||
label="docs"
|
||||
elif [[ "$pr_title" == style* ]]; then
|
||||
label="style"
|
||||
elif [[ "$pr_title" == refactor* ]]; then
|
||||
label="refactor"
|
||||
elif [[ "$pr_title" == perf* ]]; then
|
||||
label="perf"
|
||||
elif [[ "$pr_title" == test* ]]; then
|
||||
label="test"
|
||||
elif [[ "$pr_title" == build* ]]; then
|
||||
label="build"
|
||||
elif [[ "$pr_title" == ci* ]]; then
|
||||
label="ci"
|
||||
elif [[ "$pr_title" == revert* ]]; then
|
||||
label="revert"
|
||||
else
|
||||
label="?"
|
||||
fi
|
||||
|
||||
echo "label=$label" >> $GITHUB_ENV
|
||||
|
||||
- name: Add Label to PR
|
||||
uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: ${{ env.label }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
54
.github/workflows/telegram-bot.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
name: Release Notification
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- released
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
jobs:
|
||||
notify-telegram:
|
||||
name: Notify Telegram
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Extract Release Info
|
||||
id: extract_release
|
||||
run: |
|
||||
response=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
"https://api.github.com/repos/ZhuJHua/moodiary/releases/latest")
|
||||
|
||||
# Parse the response to extract needed fields
|
||||
RELEASE_TAG=$(echo "$response" | jq -r '.tag_name')
|
||||
RELEASE_NAME=$(echo "$response" | jq -r '.name')
|
||||
RELEASE_NOTES=$(echo "$response" | jq -r '.body')
|
||||
RELEASE_URL=$(echo "$response" | jq -r '.html_url')
|
||||
|
||||
# Export as environment variables
|
||||
echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV
|
||||
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
|
||||
{
|
||||
echo "RELEASE_NOTES<<EOF"
|
||||
echo "$RELEASE_NOTES"
|
||||
echo "EOF"
|
||||
} >> $GITHUB_ENV
|
||||
echo "RELEASE_URL=$RELEASE_URL" >> $GITHUB_ENV
|
||||
|
||||
- name: Send Telegram Message
|
||||
uses: appleboy/telegram-action@master
|
||||
with:
|
||||
to: ${{ secrets.TELEGRAM_TO }}
|
||||
token: ${{ secrets.TELEGRAM_TOKEN }}
|
||||
format: html
|
||||
message: |
|
||||
🎉 A new release is live! 🎉
|
||||
|
||||
Version: ${{ env.RELEASE_TAG }}
|
||||
|
||||
Release Notes:
|
||||
${{ env.RELEASE_NOTES }}
|
||||
|
||||
🔗 View Release: ${{ env.RELEASE_URL }}
|
||||
4
.gitignore
vendored
@@ -43,3 +43,7 @@ app.*.map.json
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
/ios/build
|
||||
|
||||
# FVM Version Cache
|
||||
.fvm/
|
||||
691
CHANGELOG.md
Normal file
@@ -0,0 +1,691 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(zip)* Use rust to increase data export speed
|
||||
- *(widget)* Add utility functions to capture widget as image
|
||||
- Add code scanning to import support
|
||||
- Optimize image processing capabilities
|
||||
- Integrate Jieba for keyword extraction and search optimization
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(share)* Fix capture and share methods
|
||||
- Remove workspace
|
||||
- Qweather api error
|
||||
- Qweather api error
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- Optimize the code structure
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Update sponsor list
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Fix build
|
||||
- *(ci)* Remove redundant dependency installation for Rust builder
|
||||
- Remove custom_lint to fix dart analyzer slow
|
||||
- Update rust test ci
|
||||
- Add test module to lib.rs
|
||||
|
||||
## [2.7.3] - 2025-03-02
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(telegram-bot)* Enhance release notification workflow
|
||||
- *(telegram-bot)* Enhance release notification workflow
|
||||
- *(llama)* Add LlamaUtil class and update dependencies
|
||||
- *(text)* Introduce AdaptiveText and EllipsisText components for improved text handling
|
||||
- *(about)* Replace Text with AnimatedText for dynamic app info display
|
||||
- *(cache)* Implement LRUCache and AsyncLRUCache for efficient data management
|
||||
- *(font)* Streamline font loading
|
||||
- *(font)* Add caching for font name and weight axis retrieval
|
||||
- *(diary)* Enhance text handling by trimming titles and removing line breaks from content
|
||||
- *(font)* Enhance font loading capabilities
|
||||
- *(font)* Clear cache when font style change
|
||||
- *(aes)* Add aes-gcm encryption algorithm
|
||||
- Add secure storage to store user key
|
||||
- Use the new route transition
|
||||
- Optimize image preview
|
||||
- Enhance image viewing experience with hero transitions and loading states
|
||||
- Improve image handling with enhanced hero transitions and dynamic sizing
|
||||
- Add WindowsBar and MoveTitle widgets for improved window management
|
||||
- Enhance UI and improve desktop experience (#179)
|
||||
- Add workflow_run trigger for Git Cliff completion
|
||||
- Update changelog workflow to check PR merge status before generating changelog
|
||||
- Add an abstract sync interface
|
||||
- Enhance diary card views with icons and improve page transitions
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(font)* Fix adding the font may cause the application crash
|
||||
- *(font)* Fix font is not loaded when startup
|
||||
- *(log)* Log did not work in release mode
|
||||
- Route error
|
||||
- Update application name and improve debug configuration
|
||||
- Update localization configuration to include synthetic package option
|
||||
- Update dependencies and remove unused localization imports
|
||||
- Ci (#177)
|
||||
- Correct syntax for workflow_run trigger in auto-merge.yml
|
||||
- Update diary_view to use Get.put for DiaryLogic instantiation
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(*)* Upgrade dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- Rename rust library from rust_lib_mood_diary to moodiary_rust
|
||||
- Remove video page routing and update video state initialization
|
||||
- Streamline theme management and dynamic color support
|
||||
- Remove Objectbox plugin references and update tile caching implementation
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Update telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- *(*)* Adjust the output format of outdated dependencies in the Telegram bot workflow
|
||||
- Update flutter_rust_bridge to version 2.7.1 and adjust generated files
|
||||
- Update imports and refresh package version to 3.0.0
|
||||
- Update readme
|
||||
- *(*)* Upgrade flutter and frb version
|
||||
- *(*)* Upgrade flutter version to 3.29.0
|
||||
- Add git-cliff to generate changelog
|
||||
- Add git-cliff to generate changelog
|
||||
- Add git-cliff to generate changelog
|
||||
- Add git-cliff to generate changelog
|
||||
- Add git-cliff to generate changelog
|
||||
- Upgrade actions/checkout to v4 across workflow files
|
||||
- Fix cliff ci
|
||||
- Update dependencies in pubspec.yaml to latest versions
|
||||
- Update NDK and plugin versions in build configuration
|
||||
- Update .gitignore
|
||||
- *(fix build error)* [skip ci]
|
||||
|
||||
## [2.7.2] - 2025-01-27
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(ui)* Adjust lock page and correct localization
|
||||
- *(markdown)* Add support for markdown diary
|
||||
- *(android)* Update NDK and Kotlin versions
|
||||
- *(dependencies)* Update SDK and package versions
|
||||
- *(readme)* Update Flutter and Dart version requirements
|
||||
- *(category)* Init support nested multi-level classification
|
||||
- *(*)* Add workflow to send release notifications to Telegram
|
||||
- *(ui)* Optimize home page ui
|
||||
- *(ui)* Optimize UI details
|
||||
- *(about)* Add easter eggs
|
||||
- *(media)* Optimize UI layout
|
||||
- *(markdown)* Add markdown preview support
|
||||
- *(lint)* Add more lint rules
|
||||
- *(about)* Enhance confetti effect and update duration
|
||||
- *(text)* Optimize ellipsis text rendering
|
||||
- *(ui)* Refine window buttons and UI components
|
||||
- *(ui)* Add simple window button support for windows
|
||||
- *(msix)* Add msix configuration for store publishing
|
||||
- *(msix)* Update msix configuration for store
|
||||
- *(msix)* Update msix config for store publishing
|
||||
- *(pubspec)* Add logo path for desktop
|
||||
- *(ui)* Enhance diary card text visibility and format
|
||||
- *(markdown)* Support markdown editing and embed rendering
|
||||
- *(home)* Add shadow option for the HomeFab component
|
||||
- *(ui)* Enhance image viewing and navigation
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(ui)* Improve desktop page switching performance
|
||||
- *(ui)* Add microsoft yahei ui as default font at windows
|
||||
- *(*)* Remove pull to refresh at desktop platform
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(macos)* Update code signing and provisioning settings
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Organize the project structure and use absolute paths uniformly
|
||||
- *(*)* Optimize project structure
|
||||
- *(media)* Reconstruct the media library, with more animation and better performance
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(flutter)* Update flutter version to 3.27.2
|
||||
- Simplify telegram release notification
|
||||
- *(ci)* Enhance telegram notification with release details
|
||||
- Refine release notification workflow
|
||||
- Update Flutter version to 3.27.3
|
||||
- Update shared_preferences_android to 2.4.3
|
||||
- *(*)* Adjust msix_config settings in pubspec.yaml
|
||||
- *(*)* Bump version to 2.7.2+72
|
||||
|
||||
## [2.7.1] - 2025-01-18
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(l10n)* Add full localization support
|
||||
- *(edit)* Add audio file selection
|
||||
- *(l10n)* Add localization for diary operations and data sync
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(ci)* Add release drafter
|
||||
- *(*)* Fix ci
|
||||
- *(*)* Fix ci
|
||||
- *(*)* Fix ci
|
||||
- *(ci)* Fix ci (#107)
|
||||
- *(*)* Fix ci
|
||||
- *(*)* Fix ci
|
||||
- *(calendar)* Filter visible diaries
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(action)* Fix workflow
|
||||
- *(android)* Upgrade AGP to 8.8.0
|
||||
- *(android)* Upgrade AGP to 8.8.0
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Update readme
|
||||
- *(*)* Optimize release note generation logic
|
||||
- *(*)* Add flutter analyze workflow and dynamic flutter version support
|
||||
- *(ci)* Adjust flutter analyze trigger
|
||||
- *(ci)* Install dependencies for rust builder project in flutter analyze workflow
|
||||
- *(workflow)* Update flutter analyze workflow
|
||||
- *(ci)* Add dependency installation step for rust builder
|
||||
- *(*)* Bump version to 2.7.1+71
|
||||
|
||||
## [2.7.0] - 2025-01-17
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(diary)* Init support for multi diary
|
||||
- *(private)* Add private mode
|
||||
- *(feedback)* Add new feedback
|
||||
- *(lock)* Automatically invoke biometrics on startup
|
||||
- *(edit)* Add multi image picker support
|
||||
- *(webdav)* Added more option for webdav
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(webdav)* Fix webdav error
|
||||
- *(logger)* Fix logger can't export
|
||||
- *(log)* Fix logger
|
||||
- *(ci)* Fix workflow error (#105)
|
||||
- *(ci)* Fix ci (#106)
|
||||
- *(ci)* Fix work flows
|
||||
- *(media_view)* Fix file time sorting bug in media library
|
||||
- *(sync)* Fix local sync exception
|
||||
- *(*)* Fix unexpected issue causing immediate lockup
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(pub)* Update dependencies
|
||||
- *(pub)* Upgrade dependencies
|
||||
- *(pub)* Upgrade dependencies
|
||||
- *(pub)* Upgrade dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(ui)* Improve ui
|
||||
- *(ui)* Improve ui
|
||||
- *(*)* Use refreshed to replace getx &use in app webview
|
||||
- *(ui)* Improve ui
|
||||
- *(ui)* Improve ui
|
||||
- *(ui)* Limit the maximum height of media files in rich text to 300
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean up
|
||||
- *(*)* Code clean
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Update readme
|
||||
- *(*)* Update readme
|
||||
- *(*)* Update readme
|
||||
- *(*)* Update readme
|
||||
- *(*)* Release at 2.7.0
|
||||
|
||||
## [2.6.5] - 2025-01-02
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(category)* Init support nested multi-level classification
|
||||
- *(font)* Add support for custom font
|
||||
- *(ui)* Optimize image and video viewing
|
||||
- *(ui)* Optimize desktop operating experience
|
||||
- *(fvm)* Add fvm to manager flutter version
|
||||
- *(*)* Improve category manager
|
||||
- *(hitokoto)* Add hitokoto in title
|
||||
- *(ui)* Add marquee to fix long text
|
||||
- *(*)* Add dev mode
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(fix display error when local send)* Closes #80
|
||||
- *(android)* Fix release build error on android platform
|
||||
- *(logger)* Fix can't catch error log at release mode
|
||||
- *(webdav)* Fix webdav error when creating dir
|
||||
- *(ui)* Fix text painter did not match custom text scale
|
||||
- *(font)* Fix variable font misans vf
|
||||
- *(action)* Fix github action
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Add some notice when catching error
|
||||
- *(ui)* New bottom sheet ui & new theme color picker
|
||||
- *(home)* New ui for home page
|
||||
- *(ui)* Add animated switcher to fade
|
||||
- *(ui)* Remove useless widget & add try catch for hitokoto
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(code)* Cleanup the code
|
||||
- *(*)* Code cleanup
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Update readme
|
||||
- *(*)* Update readme
|
||||
- *(*)* Fix isar build error
|
||||
- *(*)* Release at 2.6.5
|
||||
|
||||
## [2.6.4] - 2024-12-15
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(data)* Fix date merge error
|
||||
- *(data)* Fix data merge error to 2.6.3
|
||||
- *(diary)* Home page did not remove deleted diary
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(ui)* Improve ui
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Release at 2.6.4 as hotfix
|
||||
|
||||
## [2.6.3] - 2024-12-15
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(icon)* Add new icon for desktop
|
||||
- *(webdav)* Improve webdav behavior
|
||||
- *(*)* Add try catch
|
||||
- *(sync)* Add local sync at home page
|
||||
- *(webdav)* Improve webdav util
|
||||
- *(save_image)* Add save image to local
|
||||
- *(media)* Improve media library
|
||||
- *(media)* Improve media
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(layout)* Fix home page layout overflow
|
||||
- *(desktop)* Improve desktop experience
|
||||
- *(layout)* Fix layout
|
||||
- *(logic)* Fix did not jump to new category tabview when add category
|
||||
- *(webdav)* Local did not delete
|
||||
- *(android)* Fix splash screen not full
|
||||
- *(lab)* Key did not update after input
|
||||
- *(log)* Error log did not write into file
|
||||
- *(local_sync)* Category sync error
|
||||
- *(location)* Fix can't get location on macos
|
||||
- *(toast)* Remove flutter hook
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Remove hitokoto
|
||||
- *(calendar)* Better calendar view
|
||||
- *(l10n)* Refactor localization
|
||||
- *(ui)* Refactor ui
|
||||
- *(ui)* Refactor rich text adding media
|
||||
- *(ui)* Make record_sheet_view higher
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(image)* Improve image performance
|
||||
- *(*)* Improve performance
|
||||
- *(*)* Use isolate to improve performance
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Hotfix at 2.6.1
|
||||
- *(*)* Update readme
|
||||
- *(isar)* Gen code
|
||||
- *(*)* Release at 2.6.3
|
||||
|
||||
## [2.6.1] - 2024-12-11
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(data)* Fix data merge error
|
||||
- *(webdav)* Behavior when has no options
|
||||
- *(rust)* Frb version
|
||||
- *(*)* Can't start on some devices
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Remove font setting
|
||||
- *(diary_detail)* Remove squad
|
||||
|
||||
## [2.6.0] - 2024-12-10
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(server)* Init server support
|
||||
- *(kmp)* Add kmp search use rust
|
||||
- *(webdav)* Init webdav util
|
||||
- *(server)* Init server
|
||||
- *(*)* Add rich text and media editor
|
||||
- *(util)* Add keyboard listener
|
||||
- *(icon)* Use new app icon
|
||||
- *(webdav)* Support webdav sync
|
||||
- *(webdav)* Improve webdav support
|
||||
- *(edit)* Add auto select category
|
||||
- *(*)* Add data merge to 2.6.0
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(rust)* Fix string error in kmp
|
||||
- *(ui)* Fixed layout issues with three-button navigation mode
|
||||
- *(image_compress)* Fix can't compress heif image
|
||||
- *(local_send)* Fix can't find ip at ethernet mode
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(pubspec)* Upgrade dependencies
|
||||
- *(rust)* Update dependencies
|
||||
- *(rust)* Generated rust builder
|
||||
- *(*)* Platform build option
|
||||
- *(pubsepc)* Remove unused dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(ui)* Improve ui
|
||||
- *(ui)* Improve ui
|
||||
- *(*)* Use the new flutter api to catch error
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(*)* Improve perf at home page
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(git)* Add attributes
|
||||
- *(*)* Add workflows
|
||||
- *(release)* Prepare release version 2.6.0
|
||||
|
||||
## [2.4.9] - 2024-11-19
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(password)* Remove password error
|
||||
- *(windows)* Fix biometric auth error in windows
|
||||
- *(windows)* Fix get video thumbnail error in windows
|
||||
- *(home)* Fix pagination error
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(image)* Use rust to compress image
|
||||
- *(ui)* Add some animation
|
||||
- *(ui)* Improve layout for better user experience
|
||||
- *(ui)* Improve layout for better user experience
|
||||
- *(*)* Add category manager
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Release 2.4.9
|
||||
|
||||
## [2.4.8] - 2024-11-12
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(*)* Fix many bugs
|
||||
|
||||
## [2.4.8-rc] - 2024-11-12
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(*)* Initial localization and LAN synchronization
|
||||
- *(macos)* Prepare for macos support
|
||||
- *(map)* Add map support for viewing and managing diary entry locations
|
||||
- *(local_send)* Add local send support
|
||||
- *(local_send)* More improve about local send
|
||||
- *(*)* Add more function in home page
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(search)* Add title search support
|
||||
- *(*)* Fix title bar in macos
|
||||
- *(local_send)* Fix modifying list in loop
|
||||
- *(map)* Fix map cache error
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(android)* Remove unused dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Improve performance
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Release 2.4.8
|
||||
|
||||
## [2.4.7] - 2024-10-27
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(edit)* Add automatic weather getting
|
||||
- *(page/map)* Map
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(edit)* Fix tooltip position error
|
||||
- *(edit)* Fix tooltip position
|
||||
- *(category)* Fix category not be able to deselect
|
||||
- *(file_util)* Fix share and data export error on windows
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(page/setting)* Improve performance
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Release 2.4.7
|
||||
|
||||
## [2.4.6] - 2024-10-18
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(update)* Add check update in app
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(location)* Fix location error
|
||||
- *(app)* Fix title display on some devices
|
||||
- *(file_util)* Fix data import and export
|
||||
|
||||
## [2.4.5] - 2024-10-17
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(video)* Add support for video player
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(*)* Landscape cannot be used on Android tablets
|
||||
- *(weather)* Weather cannot be obtained due to positioning problems
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(android)* Update gradle version
|
||||
- *(*)* Update version
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Refactor directory structure
|
||||
- *(*)* Refactor for performance
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
## [2.4.4] - 2024-10-01
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(ask_question)* Add SQuAD task in diary
|
||||
- *(media_view)* Add media view in navigator bar
|
||||
- *(media_view)* Add image manager
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(android)* Change the minSdk 26
|
||||
- *(pubspec)* Update dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* Optimize the color scheme
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(setting_view)* Cache the list reduces unnecessary rebuild
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(*)* Code clean
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(lint)* Add lint rules
|
||||
- *(lfs)* Add lfs support
|
||||
|
||||
## [2.4.3] - 2024-09-23
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(calendar)* Add timeline view in calendar page
|
||||
- *(home)* Auto hidden navigation bar
|
||||
- *(calendar_view)* Add calendar view
|
||||
- *(About)* Add about page
|
||||
- *(Calendar)* Add expansion panel in calendar view
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(isar)* Fix error when importing data
|
||||
- *(home)* Fix scrolling error
|
||||
- *(record_sheet)* Can not start recording after stop recording
|
||||
- *(calendar)* Unnecessary build in calendar page
|
||||
- *(*)* Diary is not change after edit or delete
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(pubspec)* Update dependencies
|
||||
- *(pubspec)* Update dependencies
|
||||
- *(pubspec)* Update dependencies
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(wave_form)* Make wave form componentized
|
||||
- *(*)* Make the code clear
|
||||
- *(*)* Extract the border radius settings
|
||||
- *(isar)* Add equal method in diary
|
||||
- *(isar)* Rename the method
|
||||
- *(pref)* Change the default color when start up
|
||||
- *(*)* Remove useless method
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(theme)* New theme color
|
||||
- *(*)* Code clean
|
||||
- *(intl)* More localization
|
||||
- *(intl)* More localization
|
||||
|
||||
## [2.4.2] - 2024-09-19
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(windows)* Prepare for windows platform
|
||||
- *(assistant)* Prepare for assistant page
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(diary_details)* Fix banner height
|
||||
- *(home)* Fix multi scroll in home page
|
||||
- *(permission_util)* Fix get location on android platform
|
||||
- *(diary_card)* Fix an unexpected jump after modify a diary
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(pubspec)* Update dependencies
|
||||
- *(android)* Remove unused abiFilters
|
||||
- *(pubspec)* Update dependencies
|
||||
- *(*)* Remove unused dependencies
|
||||
- *(pubsepc)* Update dependencies
|
||||
- *(android)* Update agp version
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(*)* There are so many changes, I don't know what changes, so fuck it
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(*)* Improve performance in some cases
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(intl)* More localization
|
||||
|
||||
## [2.4.1] - 2024-08-26
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(record_sheet)* Fix wave form width anomalies
|
||||
- *(notice_util)* Something wrong when catching bugs
|
||||
|
||||
### 💼 Other
|
||||
|
||||
- *(pubspec)* Update dependencies
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(home)* Improve performance in home view
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||
144
README.en.md
@@ -1,144 +0,0 @@
|
||||
# 📔 Moodiary
|
||||
|
||||
[简体中文](README.md)丨English
|
||||
|
||||
「Moodiary」 is an open source, ad-free, social-free cross-platform private journal written with Flutter. Designed with Material Design, simple and easy to use.
|
||||
|
||||
    
|
||||
|
||||
## ✨ Feature
|
||||
|
||||
- **Cross-platform support**:🌍 Compatible with Android, iOS\*, Windows, MacOS\*, Linux\*.
|
||||
- **Material Design**:🎨 The interface is intuitive and user-friendly, and follows the Material Design specifications.
|
||||
- **Rich text editing**:📝 Supports text editing in bold, italic, underline and other formats.
|
||||
- **Multimedia accessories**:📷 You can add pictures, audio, video or even draw a picture to your diary.
|
||||
- **Search and classification**:🔍 Easily manage your diary by full-text search and categorization.
|
||||
- **Custom theme**:🌈 Supports light and dark modes, as well as a variety of color schemes.
|
||||
- **Data security**:🔒 Keep your diary safe with a password, supports biometric unlocking.
|
||||
- **Export and share**:🧾 Support all data import/export, as well as single diary sharing.
|
||||
- **Backup and synchronization**:☁ Support for LAN synchronization and WebDav backup (coming soon).
|
||||
- **Footprint Map** : 🗺️ See your footprints on a map. Every step of your life is worth documenting.
|
||||
- **Intelligent assistant**:💬 Supports access to third-party large models, provides Q&A, sentiment
|
||||
analysis and other functions.
|
||||
- **Local Natural Language Processing (NLP)**:🤖 A more secure intelligent assistant that lets your
|
||||
diary know you better.
|
||||
|
||||
(Note: Cross-platform capabilities are provided by Flutter, platforms with * may require more testing)
|
||||
|
||||
## 🔧 Main Technology stack
|
||||
|
||||
- [Flutter](https://github.com/flutter/flutter) ( Cross-platform UI framework )
|
||||
- [Isar](https://github.com/isar/isar) ( High performance local database )
|
||||
- [GetX](https://github.com/jonataslaw/getx) ( State management framework )
|
||||
|
||||
## 📸 Application screenshot
|
||||
|
||||
> The application is constantly updated, and the interface may change slightly in the new version
|
||||
|
||||
### Mobile
|
||||
|
||||

|
||||
|
||||
### Desktop
|
||||
|
||||

|
||||
|
||||
## 🚀 Installation guide
|
||||
|
||||
### Third party SDK
|
||||
|
||||
Some capabilities need to apply for third-party SDKS, and the following service providers provide free versions, and the obtained keys are configured in the lab.
|
||||
|
||||
#### Weather service
|
||||
|
||||
- [QWeather](https://dev.qweather.com/docs/api/)
|
||||
|
||||
#### Map service
|
||||
|
||||
- [Tianditu](http://lbs.tianditu.gov.cn/server/MapService.html)
|
||||
|
||||
#### Intelligent assistant
|
||||
|
||||
- [Tencent Hunyuan](https://cloud.tencent.com/document/product/1729/97731)
|
||||
|
||||
### Direct mounting
|
||||
|
||||
Use it by downloading the compiled installation package in Release, or manually compiling it if you don't have the platform you need.
|
||||
|
||||
### Manual compilation
|
||||
|
||||
#### Environmental requirement
|
||||
|
||||
- Flutter SDK (>= 3.26.0-0.1.pre, Because I use features that have not been incorporated into the stable version, I can only use the beta version and will migrate as soon as the stable version is updated)
|
||||
- Dart (>= 3.6.0)
|
||||
- Compatible ides (e.g. Android Studio, Visual Studio Code)
|
||||
|
||||
#### Installation procedure
|
||||
|
||||
> Note: When packaging, you need to modify the corresponding platform configuration file, such as Android platform build.gradle
|
||||
|
||||
1. **Clone Repo**:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ZhuJHua/moodiary.git
|
||||
cd moodiary
|
||||
```
|
||||
|
||||
2. **Installation dependency**:
|
||||
|
||||
```bash
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
3. **Running application**:
|
||||
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
|
||||
4. **Package release**:
|
||||
|
||||
- Android: `flutter build apk`
|
||||
- iOS: `flutter build ios`
|
||||
- Windows: `flutter build windows`
|
||||
|
||||
## 📝 More description
|
||||
|
||||
### Natural Language Processing (NLP)
|
||||
|
||||
> In the experimental stage
|
||||
|
||||
Today, more and more industry products are beginning to incorporate AI technology, which undoubtedly greatly improves our experience. However, for diary applications, it is not acceptable to hand over the data to a large model because it is not certain that the data will be used for training. Therefore, a better approach is to adopt a local model. Although local models may not be as powerful as large models due to size limitations, they can still provide necessary help to a certain extent.
|
||||
|
||||
Currently, I have the following tasks integrated into the source code:
|
||||
|
||||
#### SQuAD task based on Bert pre-trained model
|
||||
|
||||
I used MobileBert for the SQuAD task, which is a simple machine reading comprehension task. You can ask it questions and it will return the answers you need. The model files are in the `.tflite` format required by TensorFlow Lite, so you can add your own model files to the `assets/tflite` directory.
|
||||
|
||||
Thanks to the following open source projects:
|
||||
|
||||
- [Chinese MobileBERT](https://github.com/ymcui/Chinese-MobileBERT)
|
||||
- [Mobilebert](https://github.com/google-research/google-research/tree/master/mobilebert)
|
||||
- [ChineseSquad](https://github.com/junzeng-pluto/ChineseSquad)
|
||||
|
||||
## 🤝 Contribution guide
|
||||
|
||||
Contributions are welcome! Please follow these steps to contribute:
|
||||
|
||||
1. Fork this repository.
|
||||
2. Create a new branch(`git checkout -b feature-branch-name`)。
|
||||
3. Commit your changes(`git commit -am 'Add some feature'`)。
|
||||
4. Push to branch(`git push origin feature-branch-name`)。
|
||||
5. Create a Pull Request.
|
||||
|
||||
Please make sure that your code to follow [Flutter style guide](https://flutter.dev/docs/development/tools/formatting) and include the appropriate tests.
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is licensed under the AGPL-3.0 LICENSE, see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## 💖 Thanks
|
||||
|
||||
- Thanks to the Flutter team for the excellent framework.
|
||||
- Special thanks to the open source community for their valuable contributions.
|
||||
214
README.md
@@ -1,142 +1,188 @@
|
||||
# 📔 心绪日记
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/banner/dark_en.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/banner/light_en.svg">
|
||||
<img alt="The preview for moodiary." src="res/banner/light_en.svg">
|
||||
</picture>
|
||||
<p align="center"><a href="README.zh.md">简体中文</a> | English</p>
|
||||
|
||||
简体中文丨[English](README.en.md)
|
||||
<p align="center"><a href="https://answer.moodiary.net" target="_blank">Official forum</a>丨QQ Group: <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=xGr0TNp_X1z3XEn09_iE_iGSLolQwl6Y&jump_from=webapi&authKey=ZmSb2oEd94FSXxBXRBq53hgTjjvcfmgkQrduB3uL12XtRylPmRlO2OdFz6R25tIo">760014526</a>丨Telegram: <a target="_blank" href="https://t.me/openmoodiary">openmoodiary</a></p>
|
||||
|
||||
「心绪日记」 是采用 Flutter 编写的,无广告、无社交的开源跨平台私密日记本。采用 Material Design 设计,简洁且易用。
|
||||
<div align="center">
|
||||
<img src="https://img.shields.io/badge/Flutter-3.29.2-blue?style=for-the-badge">
|
||||
<img src="https://img.shields.io/github/repo-size/ZhuJHua/moodiary?style=for-the-badge&color=ff7070">
|
||||
<img src="https://img.shields.io/github/stars/ZhuJHua/moodiary?style=for-the-badge&color=965f8a">
|
||||
<img src="https://img.shields.io/github/v/release/ZhuJHua/moodiary?style=for-the-badge&color=4f5e7f">
|
||||
<img src="https://img.shields.io/github/license/ZhuJHua/moodiary?style=for-the-badge&color=4ac6b7">
|
||||
</div>
|
||||
|
||||
    
|
||||
|
||||
## ✨ 功能特性
|
||||
## ✨ Feature
|
||||
|
||||
- **跨平台支持**:🌍 兼容 Android、iOS\*、Windows、MacOS\*、Linux\*。
|
||||
- **Material Design**:🎨 界面直观且用户友好,遵循 Material Design 设计规范。
|
||||
- **富文本编辑**:📝 支持加粗、斜体、下划线等多种格式的文本编辑。
|
||||
- **多媒体附件**:📷 可以为你的日记添加图片、音频、视频甚至画一张画。
|
||||
- **搜索和分类**:🔍 轻松通过全文搜索及分类管理你的日记。
|
||||
- **自定义主题**:🌈 支持浅色和深色模式,以及多种配色的主题。
|
||||
- **数据安全**:🔒 通过密码来保障你的日记安全,支持通过生物识别解锁。
|
||||
- **导出和分享**:🧾 支持所有数据的导入/导出,以及单篇日记的分享。
|
||||
- **备份与同步**:☁ 支持局域网同步,快速在设备间同步数据,以及 WebDav 备份(即将支持)。
|
||||
- **足迹地图**:🗺️ 在地图上查看你足迹,生活中的每一步都值得被记录。
|
||||
- **智能助手**:💬 支持接入第三方大模型,提供问答、情绪分析等功能。
|
||||
- **本地自然语言处理(NLP)**:🤖 更安全的智能助手,让你的日记更懂你。
|
||||
- **Cross-platform support**: 🌍 Compatible with Android, iOS, Windows, MacOS, Linux\*.
|
||||
- **Material Design**: 🎨 The interface is intuitive and user-friendly, and follows the Material Design specifications.
|
||||
- **Multiple editors**: 📝 supports markdown, plain text, rich text and other forms of text editing.
|
||||
- **Multimedia accessories**: 📷 You can add pictures, audio, video or even draw a picture to your diary.
|
||||
- **Search and classification**: 🔍 Easily manage your diary by full-text search and categorization.
|
||||
- **Custom theme**: 🌈 Supports light and dark modes, as well as a variety of color schemes.
|
||||
- **Custom fonts**: ✍️ Supports importing different fonts, and supports variable fonts.
|
||||
- **Data security**: 🔒 Keep your diary safe with a password, supports biometric unlocking.
|
||||
- **Export and share**: 🧾 Support all data import/export, as well as single diary sharing.
|
||||
- **Backup and synchronization**: ☁ Support for LAN synchronization and WebDav backup.
|
||||
- **Trail Map**: 🗺️ See your footprints on a map. Every step of your life is worth documenting.
|
||||
- **Intelligent assistant**: 💬 Supports access to third-party large models, provides Q&A, sentiment analysis and other functions.
|
||||
- **Local Natural Language Processing (NLP)**: 🤖 A more secure intelligent assistant that lets your diary know you better.
|
||||
|
||||
(注:跨平台能力由 Flutter 提供,带 * 号的平台可能需要更多测试)
|
||||
(Note: Cross-platform capabilities are provided by Flutter, and platforms with * marks may require more testing)
|
||||
|
||||
## 🔧 主要技术栈
|
||||
## 🔧 Main Technology stack
|
||||
|
||||
- [Flutter](https://github.com/flutter/flutter)(跨平台 UI 框架)
|
||||
- [Isar](https://github.com/isar/isar)(高性能本地数据库)
|
||||
- [GetX](https://github.com/jonataslaw/getx)(状态管理框架)
|
||||
- [Flutter](https://github.com/flutter/flutter) ( Cross-platform UI framework )
|
||||
- [Isar](https://github.com/isar/isar) ( High performance local database )
|
||||
- [GetX](https://github.com/jonataslaw/getx) ( State management framework )
|
||||
|
||||
## 📸 应用截图
|
||||
## 📸 Application screenshot
|
||||
|
||||
> 应用持续更新中,新版本界面可能稍有变化
|
||||
> The application is constantly updated, and the interface may change slightly in the new version
|
||||
|
||||
### 移动端
|
||||
### Mobile
|
||||
|
||||

|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/screenshot/mobile_dark_en.webp">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/screenshot/mobile_light_en.webp">
|
||||
<img alt="The mobile screenshot for moodiary." src="res/screenshot/mobile_light_en.webp">
|
||||
</picture>
|
||||
|
||||
### 桌面端
|
||||
### Desktop
|
||||
|
||||

|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/screenshot/desktop_dark_en.webp">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/screenshot/desktop_light_en.webp">
|
||||
<img alt="The desktop screenshot for moodiary." src="res/screenshot/desktop_light_en.webp">
|
||||
</picture>
|
||||
|
||||
## 🚀 安装指南
|
||||
## 🚀 Installation guide
|
||||
|
||||
### 第三方 SDK
|
||||
### Third party SDK
|
||||
|
||||
某些能力需要自行申请第三方 SDK,下列服务商均提供免费的版本,获取到的 Key 在实验室中配置。
|
||||
Some capabilities need to apply for third-party SDKS, and the following service providers provide free versions, and the obtained keys are configured in the lab.
|
||||
|
||||
#### 天气服务
|
||||
#### Weather service
|
||||
|
||||
- [和风天气](https://dev.qweather.com/docs/api/)
|
||||
- [QWeather](https://dev.qweather.com/docs/api/)
|
||||
|
||||
#### 地图服务
|
||||
#### Map service
|
||||
|
||||
- [天地图](http://lbs.tianditu.gov.cn/server/MapService.html)
|
||||
- [Tianditu](http://lbs.tianditu.gov.cn/server/MapService.html)
|
||||
|
||||
#### 智能助手
|
||||
#### Intelligent assistant
|
||||
|
||||
- [腾讯混元大模型](https://cloud.tencent.com/document/product/1729/97731)
|
||||
- [Tencent Hunyuan](https://cloud.tencent.com/document/product/1729/97731)
|
||||
|
||||
### 直接安装
|
||||
### Direct install
|
||||
|
||||
通过下载 Release 中已编译好的安装包来使用,如果没有你所需要的平台,请使用手动编译。
|
||||
Use it by downloading the compiled installation package in Release, or manually compiling it if you don't have the platform you need.
|
||||
|
||||
### 手动编译
|
||||
### Manual compilation
|
||||
|
||||
#### 环境要求
|
||||
#### Environmental requirement
|
||||
|
||||
- Flutter SDK (>= 3.26.0-0.1.pre,因为使用了尚未合并到稳定版的功能,我只能使用测试版,等稳定版更新后会尽快迁移)
|
||||
- Dart (>= 3.6.0)
|
||||
- 兼容的 IDE(如 Android Studio、Visual Studio Code)
|
||||
> 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.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)
|
||||
|
||||
> 注意:当打包时,需要自己修改对应平台的配置文件,例如安卓平台的 build.gradle
|
||||
#### Installation procedure
|
||||
|
||||
1. **克隆仓库**:
|
||||
> Note: For security reasons, I did not include my signature in the code base, when you need to manually package, you need to modify the configuration file of the corresponding platform, such as build.gradle on the Android platform, and package after modifying the package name, thank you for your understanding.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ZhuJHua/moodiary.git
|
||||
cd moodiary
|
||||
```
|
||||
1. **Clone Repo**:
|
||||
|
||||
2. **安装依赖**:
|
||||
```bash
|
||||
git clone https://github.com/ZhuJHua/moodiary.git
|
||||
cd moodiary
|
||||
```
|
||||
|
||||
```bash
|
||||
flutter pub get
|
||||
```
|
||||
2. **Installation dependency**:
|
||||
|
||||
3. **运行应用**:
|
||||
```bash
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
3. **Running application**:
|
||||
|
||||
4. **打包发布**:
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
|
||||
- Android: `flutter build apk`
|
||||
- iOS: `flutter build ios`
|
||||
- Windows: `flutter build windows`
|
||||
4. **Package release**:
|
||||
|
||||
## 📝 更多说明
|
||||
- Android: `flutter build apk`
|
||||
- iOS: `flutter build ipa`
|
||||
- Windows: `flutter build windows`
|
||||
- MacOS: `flutter build macos`
|
||||
|
||||
### 自然语言处理(NLP)
|
||||
## 📝 More description
|
||||
|
||||
> 处于实验阶段
|
||||
### Natural Language Processing (NLP)
|
||||
|
||||
如今,越来越多的行业产品开始融入 AI 技术,这无疑极大地提升了我们的使用体验。然而,对于日记应用来说,将数据交给大型模型处理并不可接受,因为无法确定这些数据是否会被用于训练。因此,更好的方法是采用本地模型。虽然由于体积限制,本地模型的能力可能不如大型模型强大,但在一定程度上仍能为我们提供必要的帮助。
|
||||
> In the experimental stage
|
||||
|
||||
目前,我在源码中集成了以下任务:
|
||||
Today, more and more industry products are beginning to incorporate AI technology, which undoubtedly greatly improves our experience. However, for diary applications, it is not acceptable to hand over the data to a large model because it is not certain that the data will be used for training. Therefore, a better approach is to adopt a local model. Although local models may not be as powerful as large models due to size limitations, they can still provide necessary help to a certain extent.
|
||||
|
||||
#### 基于 Bert 预训练模型的 SQuAD 任务
|
||||
Currently, I have the following tasks integrated into the source code:
|
||||
|
||||
我采用了 MobileBert 来处理 SQuAD 任务,这是一个简单的机器阅读理解任务。你可以向它提出问题,它会返回你需要的答案。模型文件采用 TensorFlow Lite 所需的 `.tflite` 格式,所以你可以添加自己的模型文件到 `assets/tflite` 目录下。
|
||||
#### SQuAD task based on Bert pre-trained model
|
||||
|
||||
感谢以下开源项目:
|
||||
I used MobileBert for the SQuAD task, which is a simple machine reading comprehension task. You can ask it questions and it will return the answers you need. The model files are in the `.tflite` format required by TensorFlow Lite, so you can add your own model files to the `assets/tflite` directory.
|
||||
|
||||
Thanks to the following open source projects:
|
||||
|
||||
- [Chinese MobileBERT](https://github.com/ymcui/Chinese-MobileBERT)
|
||||
- [Mobilebert](https://github.com/google-research/google-research/tree/master/mobilebert)
|
||||
- [ChineseSquad](https://github.com/junzeng-pluto/ChineseSquad)
|
||||
|
||||
## 🤝 贡献指南
|
||||
## 🤝 Contribution guide
|
||||
|
||||
欢迎贡献!请按照以下步骤进行贡献:
|
||||
Contributions are welcome! Please follow these steps to contribute:
|
||||
|
||||
1. Fork 本仓库。
|
||||
2. 创建一个新分支(`git checkout -b feature-branch-name`)。
|
||||
3. 提交你的修改(`git commit -am 'Add some feature'`)。
|
||||
4. 推送到分支(`git push origin feature-branch-name`)。
|
||||
5. 创建一个 Pull Request。
|
||||
1. Fork this repository.
|
||||
2. Create a new branch(`git checkout -b feature-branch-name`)。
|
||||
3. Commit your changes(`git commit -am 'Add some feature'`)。
|
||||
4. Push to branch(`git push origin feature-branch-name`)。
|
||||
5. Create a Pull Request.
|
||||
|
||||
请确保你的代码遵循 [Flutter 风格指南](https://flutter.dev/docs/development/tools/formatting) 并包含适当的测试。
|
||||
Please make sure that your code to follow [Flutter style guide](https://flutter.dev/docs/development/tools/formatting) and include the appropriate tests.
|
||||
|
||||
## 📄 许可证
|
||||
## 📄 License
|
||||
|
||||
此项目基于 AGPL-3.0 许可证进行许可,详情请参阅 [LICENSE](LICENSE) 文件。
|
||||
This project is licensed under the AGPL-3.0 LICENSE, see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## 💖 鸣谢
|
||||
## 💖 Thanks
|
||||
|
||||
- 感谢 Flutter 团队提供出色的框架。
|
||||
- 特别感谢开源社区的宝贵贡献。
|
||||
- Thanks to the Flutter team for the excellent framework.
|
||||
- Special thanks to the open source community for their valuable contributions.
|
||||
|
||||
## 🥪 Sponsor
|
||||
|
||||
You can buy me a sandwich to keep me motivated to continue developing.
|
||||
|
||||
<img src="res/sponsor/wechat.jpg" style="width:300px" alt="Sponsor"/>
|
||||
|
||||
### List of sponsors
|
||||
|
||||
If you want to appear on the list, you can leave your Github username in the comment, in no particular order, and the list will be updated regularly.
|
||||
|
||||
| Sponsor | Price | Sponsor | Price |
|
||||
|-----------------------------------| -------- | ------------------------------------------------ | ------ |
|
||||
| [dsxksss](https://github.com/dsxksss) | 50 CNY | 十* | 20 CNY |
|
||||
| 沭** | 10 CNY | 朱东杰 | 60 CNY |
|
||||
| *Person* | 5 CNY | wu* | 10 CNY |
|
||||
| 云* | 2.76 CNY | 不对味的雪碧 | 10 CNY |
|
||||
| w** | 6.6 CNY | [帕斯卡的芦苇](https://github.com/xiaoxianzi-99) | 10 CNY |
|
||||
| 不** | 20 CNY | 曾** | 20 CNY |
|
||||
| *Person* | 20 CNY | *Person* | 18.88 CNY |
|
||||
| Lucci | 9.9 CNY | *Person* | 5 CNY |
|
||||
| 宋** | 5 CNY | 翰** | 5 CNY |
|
||||
|
||||
189
README.zh.md
Normal file
@@ -0,0 +1,189 @@
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/banner/dark_zh.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/banner/light_zh.svg">
|
||||
<img alt="The preview for moodiary." src="res/banner/light_zh.svg">
|
||||
</picture>
|
||||
<p align="center">简体中文 | <a href="README.md">English</a></p>
|
||||
|
||||
<p align="center"><a href="https://answer.moodiary.net" target="_blank">官方论坛</a>丨QQ群: <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=xGr0TNp_X1z3XEn09_iE_iGSLolQwl6Y&jump_from=webapi&authKey=ZmSb2oEd94FSXxBXRBq53hgTjjvcfmgkQrduB3uL12XtRylPmRlO2OdFz6R25tIo">760014526</a>丨Telegram: <a target="_blank" href="https://t.me/openmoodiary">openmoodiary</a></p>
|
||||
|
||||
<div align="center">
|
||||
<img src="https://img.shields.io/badge/Flutter-3.29.2-blue?style=for-the-badge">
|
||||
<img src="https://img.shields.io/github/repo-size/ZhuJHua/moodiary?style=for-the-badge&color=ff7070">
|
||||
<img src="https://img.shields.io/github/stars/ZhuJHua/moodiary?style=for-the-badge&color=965f8a">
|
||||
<img src="https://img.shields.io/github/v/release/ZhuJHua/moodiary?style=for-the-badge&color=4f5e7f">
|
||||
<img src="https://img.shields.io/github/license/ZhuJHua/moodiary?style=for-the-badge&color=4ac6b7">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
## ✨ 功能特性
|
||||
|
||||
- **跨平台支持**:🌍 兼容 Android、iOS、Windows、MacOS、Linux\*。
|
||||
- **Material Design**:🎨 界面直观且用户友好,遵循 Material Design 设计规范。
|
||||
- **多种编辑器**:📝 支持 Markdown 、纯文本、富文本等多种形式的文本编辑。
|
||||
- **多媒体附件**:📷 可以为你的日记添加图片、音频、视频甚至画一张画。
|
||||
- **搜索和分类**:🔍 轻松通过全文搜索及分类管理你的日记。
|
||||
- **自定义主题**:🌈 支持浅色和深色模式,以及多种配色的主题。
|
||||
- **自定义字体**:✍️ 支持导入不同的字体,并支持可变字体。
|
||||
- **数据安全**:🔒 通过密码来保障你的日记安全,支持通过生物识别解锁。
|
||||
- **导出和分享**:🧾 支持所有数据的导入/导出,以及单篇日记的分享。
|
||||
- **备份与同步**:☁ 支持局域网同步,快速在设备间同步数据,以及 WebDav 备份。
|
||||
- **足迹地图**:🗺️ 在地图上查看你足迹,生活中的每一步都值得被记录。
|
||||
- **智能助手**:💬 支持接入第三方大模型,提供问答、情绪分析等功能。
|
||||
- **本地自然语言处理(NLP)**:🤖 更安全的智能助手,让你的日记更懂你。
|
||||
|
||||
(注:跨平台能力由 Flutter 提供,带 * 号的平台可能需要更多测试)
|
||||
|
||||
## 🔧 主要技术栈
|
||||
|
||||
- [Flutter](https://github.com/flutter/flutter)(跨平台 UI 框架)
|
||||
- [Isar](https://github.com/isar/isar)(高性能本地数据库)
|
||||
- [GetX](https://github.com/jonataslaw/getx)(状态管理框架)
|
||||
|
||||
## 📸 应用截图
|
||||
|
||||
> 应用持续更新中,新版本界面可能稍有变化
|
||||
|
||||
### 移动端
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/screenshot/mobile_dark_zh.webp">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/screenshot/mobile_light_zh.webp">
|
||||
<img alt="The mobile screenshot for moodiary." src="res/screenshot/mobile_light_zh.webp">
|
||||
</picture>
|
||||
|
||||
### 桌面端
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="res/screenshot/desktop_dark_zh.webp">
|
||||
<source media="(prefers-color-scheme: light)" srcset="res/screenshot/desktop_light_zh.webp">
|
||||
<img alt="The desktop screenshot for moodiary." src="res/screenshot/desktop_light_zh.webp">
|
||||
</picture>
|
||||
|
||||
## 🚀 安装指南
|
||||
|
||||
### 第三方 SDK
|
||||
|
||||
某些能力需要自行申请第三方 SDK,下列服务商均提供免费的版本,获取到的 Key 在实验室中配置。
|
||||
|
||||
#### 天气服务
|
||||
|
||||
- [和风天气](https://dev.qweather.com/docs/api/)
|
||||
|
||||
#### 地图服务
|
||||
|
||||
- [天地图](http://lbs.tianditu.gov.cn/server/MapService.html)
|
||||
|
||||
#### 智能助手
|
||||
|
||||
- [腾讯混元大模型](https://cloud.tencent.com/document/product/1729/97731)
|
||||
|
||||
### 直接安装
|
||||
|
||||
通过下载 Release 中已编译好的安装包来使用,如果没有你所需要的平台,请使用手动编译。
|
||||
|
||||
### 手动编译
|
||||
|
||||
#### 环境要求
|
||||
|
||||
> 我总是会使用最新的 Flutter 版本(如果可能的话),使用新版本可以带来更多的功能和更好的性能提升,永远不要使用老版本除非你希望代码变成一坨 💩
|
||||
|
||||
- Flutter SDK (>= 3.29.0 Stable)(建议使用 fvm 来管理 flutter 版本)
|
||||
- Dart (>= 3.7.0)
|
||||
- Rust 工具链(Nightly)
|
||||
- Clang/LLVM
|
||||
- 兼容的 IDE(如 Android Studio、Visual Studio Code)
|
||||
|
||||
#### 安装步骤
|
||||
|
||||
> 注意:出于安全考虑,我并没有在代码库中包含我的签名,当您需要手动打包时,需要自己修改对应平台的配置文件,例如安卓平台的 build.gradle,修改包名后打包,感谢您的理解
|
||||
|
||||
1. **克隆仓库**:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ZhuJHua/moodiary.git
|
||||
cd moodiary
|
||||
```
|
||||
|
||||
2. **安装依赖**:
|
||||
|
||||
```bash
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
3. **运行应用**:
|
||||
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
|
||||
4. **打包发布**:
|
||||
|
||||
- Android: `flutter build apk`
|
||||
- iOS: `flutter build ipa`
|
||||
- Windows: `flutter build windows`
|
||||
- MacOS: `flutter build macos`
|
||||
|
||||
## 📝 更多说明
|
||||
|
||||
### 自然语言处理(NLP)
|
||||
|
||||
> 处于实验阶段
|
||||
|
||||
如今,越来越多的行业产品开始融入 AI 技术,这无疑极大地提升了我们的使用体验。然而,对于日记应用来说,将数据交给大型模型处理并不可接受,因为无法确定这些数据是否会被用于训练。因此,更好的方法是采用本地模型。虽然由于体积限制,本地模型的能力可能不如大型模型强大,但在一定程度上仍能为我们提供必要的帮助。
|
||||
|
||||
目前,我在源码中集成了以下任务:
|
||||
|
||||
#### 基于 Bert 预训练模型的 SQuAD 任务
|
||||
|
||||
我采用了 MobileBert 来处理 SQuAD 任务,这是一个简单的机器阅读理解任务。你可以向它提出问题,它会返回你需要的答案。模型文件采用 TensorFlow Lite 所需的 `.tflite` 格式,所以你可以添加自己的模型文件到 `assets/tflite` 目录下。
|
||||
|
||||
感谢以下开源项目:
|
||||
|
||||
- [Chinese MobileBERT](https://github.com/ymcui/Chinese-MobileBERT)
|
||||
- [Mobilebert](https://github.com/google-research/google-research/tree/master/mobilebert)
|
||||
- [ChineseSquad](https://github.com/junzeng-pluto/ChineseSquad)
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
欢迎贡献!请按照以下步骤进行贡献:
|
||||
|
||||
1. Fork 本仓库。
|
||||
2. 创建一个新分支(`git checkout -b feature-branch-name`)。
|
||||
3. 提交你的修改(`git commit -am 'Add some feature'`)。
|
||||
4. 推送到分支(`git push origin feature-branch-name`)。
|
||||
5. 创建一个 Pull Request。
|
||||
|
||||
请确保你的代码遵循 [Flutter 风格指南](https://flutter.dev/docs/development/tools/formatting) 并包含适当的测试。
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
此项目基于 AGPL-3.0 许可证进行许可,详情请参阅 [LICENSE](LICENSE) 文件。
|
||||
|
||||
## 💖 鸣谢
|
||||
|
||||
- 感谢 Flutter 团队提供出色的框架。
|
||||
- 特别感谢开源社区的宝贵贡献。
|
||||
|
||||
## 🥪 捐助
|
||||
|
||||
可以给我买一个三明治,让我更有动力继续开发。
|
||||
|
||||
<img src="res/sponsor/wechat.jpg" style="width:300px" alt="Sponsor"/>
|
||||
|
||||
### 捐助者名单
|
||||
|
||||
如果您想要出现在名单中,可以在留言中留下您的 Github 用户名,排名不分先后,名单会定期更新。
|
||||
|
||||
| 捐助者 | 金额 | 捐助者 | 金额 |
|
||||
| ------------------------------------- | -------- | ------------------------------------------------ | --------- |
|
||||
| [dsxksss](https://github.com/dsxksss) | 50 CNY | 十* | 20 CNY |
|
||||
| 沭** | 10 CNY | 朱东杰 | 60 CNY |
|
||||
| *人* | 5 CNY | wu* | 10 CNY |
|
||||
| 云* | 2.76 CNY | 不对味的雪碧 | 10 CNY |
|
||||
| w** | 6.6 CNY | [帕斯卡的芦苇](https://github.com/xiaoxianzi-99) | 10 CNY |
|
||||
| 不** | 20 CNY | 曾** | 20 CNY |
|
||||
| *人* | 20 CNY | *人* | 18.88 CNY |
|
||||
| Lucci | 9.9 CNY | *人* | 5 CNY |
|
||||
| 宋** | 5 CNY | 翰** | 5 CNY |
|
||||
@@ -1,31 +1,24 @@
|
||||
# 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
|
||||
prefer_const_declarations: true
|
||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
prefer_final_in_for_each: true
|
||||
prefer_final_fields: true
|
||||
prefer_final_locals: true
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
analyzer:
|
||||
exclude:
|
||||
- "**/*.g.dart"
|
||||
- "**/*.freezed.dart"
|
||||
- "**/*.gr.dart"
|
||||
- "**/*.mocks.dart"
|
||||
- "rust_builder/**"
|
||||
- "ios/**"
|
||||
- "android/**"
|
||||
- "windows/**"
|
||||
- "macos/**"
|
||||
errors:
|
||||
invalid_annotation_target: ignore
|
||||
|
||||
4
android/.gitignore
vendored
@@ -1,8 +1,10 @@
|
||||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/app/.cxx
|
||||
/.kotlin
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/gradlew.bats
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
|
||||
|
||||
@@ -23,17 +23,17 @@ if (flutterVersionName == null) {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "cn.yooss.mood_diary"
|
||||
compileSdk = 35
|
||||
ndkVersion = "27.1.12297006"
|
||||
namespace = "cn.yooss.moodiary"
|
||||
compileSdk = 36
|
||||
ndkVersion = "28.0.13004108"
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
jvmTarget = JavaVersion.VERSION_21.toString()
|
||||
}
|
||||
signingConfigs {
|
||||
config {
|
||||
@@ -51,10 +51,11 @@ android {
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||
minSdk = 26
|
||||
targetSdk = 35
|
||||
targetSdk = 36
|
||||
versionCode = flutterVersionCode.toInteger()
|
||||
versionName = flutterVersionName
|
||||
ndk {
|
||||
//noinspection ChromeOsAbiSupport
|
||||
abiFilters 'arm64-v8a'
|
||||
}
|
||||
}
|
||||
@@ -68,6 +69,9 @@ android {
|
||||
}
|
||||
debug {
|
||||
signingConfig = signingConfigs.config
|
||||
resValue "string", "app_name", "Moodiary Debug"
|
||||
applicationIdSuffix ".debug"
|
||||
versionNameSuffix "-debug"
|
||||
}
|
||||
profile {
|
||||
signingConfig = signingConfigs.config
|
||||
@@ -79,6 +83,7 @@ flutter {
|
||||
source = "../.."
|
||||
}
|
||||
dependencies {
|
||||
implementation 'com.github.gzu-liyujiang:Android_CN_OAID:4.2.9'
|
||||
implementation 'com.github.gzu-liyujiang:Android_CN_OAID:4.2.11'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
}
|
||||
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
</queries>
|
||||
<application
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/appName"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:icon="@mipmap/launcher_icon"
|
||||
android:label="@string/app_name"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package cn.yooss.mood_diary
|
||||
|
||||
import com.github.gzuliyujiang.oaid.IGetter
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import java.lang.Exception
|
||||
|
||||
class HandleGetOAID(private var resultCallback: MethodChannel.Result) : IGetter {
|
||||
override fun onOAIDGetComplete(result: String?) {
|
||||
resultCallback.success(result);
|
||||
}
|
||||
|
||||
override fun onOAIDGetError(error: Exception?) {
|
||||
|
||||
resultCallback.error("100", "error", error);
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,14 @@
|
||||
package cn.yooss.mood_diary
|
||||
package cn.yooss.moodiary
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import com.github.gzuliyujiang.oaid.DeviceID
|
||||
import com.github.gzuliyujiang.oaid.IGetter
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
|
||||
|
||||
class MainActivity : FlutterFragmentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
enableEdgeToEdge()
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
@@ -29,13 +25,24 @@ class MainActivity : FlutterFragmentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun getOAID(resultCallback: MethodChannel.Result) {
|
||||
if (DeviceID.supportedOAID(application)) {
|
||||
DeviceID.getOAID(application, HandleGetOAID(resultCallback));
|
||||
DeviceID.getOAID(application, HandleGetOAID(resultCallback))
|
||||
} else {
|
||||
resultCallback.success(null)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class HandleGetOAID(private var resultCallback: MethodChannel.Result) : IGetter {
|
||||
override fun onOAIDGetComplete(result: String) {
|
||||
resultCallback.success(result)
|
||||
}
|
||||
|
||||
override fun onOAIDGetError(error: Exception?) {
|
||||
resultCallback.success(null)
|
||||
}
|
||||
}
|
||||
BIN
android/app/src/main/res/drawable-hdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
BIN
android/app/src/main/res/drawable-hdpi/splash.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
android/app/src/main/res/drawable-mdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
BIN
android/app/src/main/res/drawable-mdpi/splash.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
android/app/src/main/res/drawable-night-hdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
android/app/src/main/res/drawable-night-hdpi/splash.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
android/app/src/main/res/drawable-night-mdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
android/app/src/main/res/drawable-night-mdpi/splash.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
android/app/src/main/res/drawable-night-v21/background.png
Normal file
|
After Width: | Height: | Size: 69 B |
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="fill"
|
||||
android:src="@drawable/background" />
|
||||
</item>
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@drawable/splash" />
|
||||
</item>
|
||||
</layer-list>
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
BIN
android/app/src/main/res/drawable-night-xhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 14 KiB |
BIN
android/app/src/main/res/drawable-night-xxhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 16 KiB |
BIN
android/app/src/main/res/drawable-night-xxxhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
android/app/src/main/res/drawable-night/background.png
Normal file
|
After Width: | Height: | Size: 69 B |
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="fill"
|
||||
android:src="@drawable/background" />
|
||||
</item>
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@drawable/splash" />
|
||||
</item>
|
||||
</layer-list>
|
||||
BIN
android/app/src/main/res/drawable-v21/background.png
Normal file
|
After Width: | Height: | Size: 69 B |
@@ -1,12 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="fill"
|
||||
android:src="@drawable/background" />
|
||||
</item>
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
android:src="@drawable/splash" />
|
||||
</item>
|
||||
</layer-list>
|
||||
|
||||
BIN
android/app/src/main/res/drawable-xhdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
BIN
android/app/src/main/res/drawable-xhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
android/app/src/main/res/drawable-xxhdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
BIN
android/app/src/main/res/drawable-xxhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
android/app/src/main/res/drawable-xxxhdpi/android12splash.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
BIN
android/app/src/main/res/drawable-xxxhdpi/splash.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
android/app/src/main/res/drawable/background.png
Normal file
|
After Width: | Height: | Size: 69 B |
@@ -1,12 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>-->
|
||||
<!-- <bitmap-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:src="@mipmap/ic_launcher_foreground" />-->
|
||||
<!-- </item>-->
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="fill"
|
||||
android:src="@drawable/background" />
|
||||
</item>
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@drawable/splash" />
|
||||
</item>
|
||||
</layer-list>
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@mipmap/ic_launcher_background" />
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@mipmap/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
14
android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background" />
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_foreground"
|
||||
android:inset="16%" />
|
||||
</foreground>
|
||||
<monochrome>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_monochrome"
|
||||
android:inset="16%" />
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
BIN
android/app/src/main/res/mipmap-hdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1016 B |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
BIN
android/app/src/main/res/mipmap-mdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 745 B |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
BIN
android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 12 KiB |
BIN
android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 18 KiB |
BIN
android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
21
android/app/src/main/res/values-night-v31/styles.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
<item name="android:windowSplashScreenBackground">#000000</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
@@ -12,7 +16,7 @@
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<style name="NormalTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
21
android/app/src/main/res/values-v31/styles.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
<item name="android:windowSplashScreenBackground">#ffffff</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="appName">Moodiary</string>
|
||||
<string name="app_name">Moodiary</string>
|
||||
</resources>
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="appName">心绪日记</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="appName">心绪日记</string>
|
||||
<color name="ic_launcher_background">#ffffff</color>
|
||||
</resources>
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#FFFFFF</color>
|
||||
</resources>
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
@@ -12,7 +16,7 @@
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -2,22 +2,40 @@ allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url "https://maven.aliyun.com/repository/google" }
|
||||
maven { url "https://maven.aliyun.com/repository/jcenter" }
|
||||
maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
|
||||
maven { url "https://tencent-tds-maven.pkg.coding.net/repository/shiply/repo" }
|
||||
maven { url "https://storage.googleapis.com/download.flutter.io" }
|
||||
maven { url 'https://jitpack.io' }
|
||||
maven { url 'https://developer.hihonor.com/repo' }
|
||||
maven { url 'https://developer.huawei.com/repo' }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.buildDir = "../build"
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
|
||||
subprojects {
|
||||
afterEvaluate { project ->
|
||||
if (project.plugins.hasPlugin("com.android.application") ||
|
||||
project.plugins.hasPlugin("com.android.library")) {
|
||||
project.android {
|
||||
compileSdkVersion 36
|
||||
buildToolsVersion "36.0.0"
|
||||
}
|
||||
}
|
||||
if (project.hasProperty("android")) {
|
||||
project.android {
|
||||
if (namespace == null) {
|
||||
namespace project.group
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.9-all.zip
|
||||
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.11.1-all.zip
|
||||
|
||||
90
android/gradlew.bat
vendored
Executable file
@@ -0,0 +1,90 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@@ -16,15 +16,17 @@ pluginManagement {
|
||||
maven { url "https://maven.aliyun.com/repository/google" }
|
||||
maven { url "https://maven.aliyun.com/repository/jcenter" }
|
||||
maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
|
||||
maven { url "https://tencent-tds-maven.pkg.coding.net/repository/shiply/repo" }
|
||||
maven { url "https://storage.googleapis.com/download.flutter.io" }
|
||||
maven { url 'https://jitpack.io' }
|
||||
maven { url 'https://developer.hihonor.com/repo' }
|
||||
maven { url 'https://developer.huawei.com/repo' }
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
id "com.android.application" version '8.7.1' apply false
|
||||
id "org.jetbrains.kotlin.android" version "2.0.20" apply false
|
||||
id "com.android.application" version '8.9.1' apply false
|
||||
id "org.jetbrains.kotlin.android" version "2.1.20" apply false
|
||||
}
|
||||
|
||||
include ":app"
|
||||
|
||||