Compare commits

...

176 commits

Author SHA1 Message Date
ae2a6b8b32 feature/prepare-1.6.4-22-release (#135)
All checks were successful
/ build (push) Successful in 4m46s
Reviewed-on: #135
2024-11-01 14:36:36 +00:00
dce3c916a2 chore(release): prepare release of 1.6.4.+22
All checks were successful
/ build (push) Successful in 4m19s
2024-11-01 15:31:20 +01:00
58141fe646 chore(deps,build): move to latest gradle wrapper and AGP, apply all possible updates
All checks were successful
/ build (push) Successful in 4m23s
2024-11-01 15:21:38 +01:00
dd5abc48f9 fix(deps): update all patch dependencies (#127)
All checks were successful
/ build (push) Successful in 4m27s
file_picker (source) 	dependencies 	patch 	8.0.3 -> 8.0.5
stacked 	dependencies 	patch 	3.4.2 -> 3.4.3
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-07-01 07:16:42 +00:00
bf1f1e3295 chore(deps,ci): Updates and group renovate updates together
All checks were successful
/ build (push) Successful in 5m55s
2024-06-08 10:35:06 +02:00
e7463ffaef Upgrades #noissue
All checks were successful
/ build (push) Successful in 5m10s
2024-05-01 09:45:22 +02:00
ae454abb3a Update dependency url_launcher to v6.2.6 (#115)
All checks were successful
/ build (push) Successful in 5m19s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-04-28 14:29:09 +00:00
34bcd2ee92 Update ghcr.io/cirruslabs/flutter Docker tag to v3.19.6 (#116)
All checks were successful
/ build (push) Successful in 5m24s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-04-26 19:46:10 +00:00
d2485a91cd Upgrades #noissue
All checks were successful
/ build (push) Successful in 5m6s
2024-04-02 09:04:43 +02:00
e8c8808c0e Change Renovate schedule to be monthly #noissue
All checks were successful
/ build (push) Successful in 5m19s
2024-03-06 23:40:45 +01:00
b544003941 Update dependency provider to v6.1.2 (#98)
All checks were successful
/ build (push) Successful in 5m20s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-03-02 09:03:30 +00:00
5668c15547 Update ghcr.io/cirruslabs/flutter Docker tag to v3.19.2 (#99)
All checks were successful
/ build (push) Successful in 5m25s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-03-02 08:19:56 +00:00
7f145f6960 Some upgrades #noissue
All checks were successful
/ build (push) Successful in 5m23s
2024-02-26 22:56:03 +01:00
d0dd798008 Update dependency device_info_plus to v9.1.2 (#93)
All checks were successful
/ build (push) Successful in 5m55s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-02-05 23:07:48 +00:00
f16ee08079 Update dependency share_plus to v7.2.2 (#94)
All checks were successful
/ build (push) Successful in 5m40s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-02-05 22:14:38 +00:00
a4a3c2e5dc Build per-abi in fdroid fastlane script #noissue
All checks were successful
/ build (push) Successful in 5m33s
2024-02-05 22:52:45 +01:00
a5e9597207 Update dependency stacked to v3.4.2 (#92)
All checks were successful
/ build (push) Successful in 5m34s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-02-01 22:03:47 +00:00
f460c68339 Fix renovate schedule #noissue
All checks were successful
/ build (push) Successful in 5m33s
2024-01-26 13:46:49 +01:00
c7af6a874d Bump Flutter in pipeline; adapt renovate to provide separated pull requests for all dependencies and ignore intl and path as they are bound to underlying flutter version (or the test dependency) #noissue
All checks were successful
/ build (push) Successful in 5m31s
2024-01-26 09:28:02 +01:00
e0973735d8 Update dependencies
All checks were successful
/ build (push) Successful in 6m3s
2024-01-25 20:40:48 +01:00
dc715e38d1 Update all patch dependencies (#87)
All checks were successful
/ build (push) Successful in 6m5s
get_it 	dependencies 	patch 	7.6.4 -> 7.6.6
ghcr.io/cirruslabs/flutter 	container 	patch 	3.16.4 -> 3.16.6
url_launcher (source) 	dependencies 	patch 	6.2.2 -> 6.2.3
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2024-01-10 22:16:53 +00:00
eb1d949af8 release/prepare-next-dev-cycle (#86)
All checks were successful
/ build (push) Successful in 5m17s
Reviewed-on: #86
2023-12-16 18:47:43 +00:00
4a715aba48 Prepare next dev cycle
All checks were successful
/ build (push) Successful in 5m42s
2023-12-16 19:37:55 +01:00
c48c16d63d release/1.6.3 (#85)
All checks were successful
/ build (push) Successful in 5m30s
Reviewed-on: #85
2023-12-16 18:29:59 +00:00
57db10e912 Prepare release of 1.6.3
All checks were successful
/ build (push) Successful in 5m43s
2023-12-16 19:23:38 +01:00
a4defff982 Fixed not receiving sharing intents, reduced renovate frequency (#84)
All checks were successful
/ build (push) Successful in 5m36s
2023-12-16 18:59:00 +01:00
3ae2c37813 Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.4 (#83)
All checks were successful
/ build (push) Successful in 5m52s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-12-15 00:50:41 +00:00
d9b33feac9 Update dependency built_value_generator to v8.8.1 (#82)
All checks were successful
/ build (push) Successful in 5m30s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-12-12 21:55:16 +00:00
941b7c81ad Update dependency url_launcher to v6.2.2 (#81)
All checks were successful
/ build (push) Successful in 5m34s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-12-09 09:10:32 +00:00
5bc02638f7 Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.3 (#80)
All checks were successful
/ build (push) Successful in 5m35s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-12-08 14:55:39 +00:00
477e557d31 Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.2 (#78)
All checks were successful
/ build (push) Successful in 5m23s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-12-06 23:43:44 +00:00
c917e478a6 release/prepare-next-dev-cycle (#77)
All checks were successful
/ build (push) Successful in 5m42s
Reviewed-on: #77
2023-12-01 18:35:41 +00:00
8b96610fa6 Prepare next dev cycle #noissue
All checks were successful
/ build (push) Successful in 5m29s
2023-12-01 19:20:13 +01:00
df40808bd7 release/1.6.2+20 (#76)
All checks were successful
/ build (push) Successful in 5m57s
Reviewed-on: #76
2023-12-01 18:15:51 +00:00
dfc5772b93 Prepare release of 1.6.2+20 #noissue
All checks were successful
/ build (push) Successful in 5m32s
2023-12-01 19:09:33 +01:00
3d6ae1a9ef Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.1 (#75)
All checks were successful
/ build (push) Successful in 5m14s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-11-29 21:08:49 +00:00
e49dd86347 Update dependency build_runner to v2.4.7 (#74)
All checks were successful
/ build (push) Successful in 5m24s
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-11-28 21:46:18 +00:00
4cd6165d9b Update dependency http to v1.1.2 (#71)
All checks were successful
/ build (push) Successful in 5m24s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [http](https://github.com/dart-lang/http) | dependencies | patch | `1.1.0` -> `1.1.2` |
Co-authored-by: Renovate Bot <renovate@myservermanager.com>
Co-committed-by: Renovate Bot <renovate@myservermanager.com>
2023-11-27 18:48:53 +00:00
e661171fd2 Various improvements and #noissue
All checks were successful
/ build (push) Successful in 5m17s
- Bumped Android minSdk to 30 (Android 11)
- Fixed permission service not handling Android SDK 33 correctly
- Fixed permission service not being started during application start
2023-11-26 23:53:17 +01:00
c99df89cb0 Update transitive dependencies #noissue 2023-11-26 20:48:47 +01:00
03d61dcdd0 Merge pull request 'Update dependency package_info_plus to v5' (#73) from renovate/package_info_plus-5.x into develop
All checks were successful
/ build (push) Successful in 5m42s
Reviewed-on: #73
2023-11-26 19:34:57 +00:00
f2d1083620 Update dependency package_info_plus to v5
All checks were successful
/ build (push) Successful in 5m17s
2023-11-25 00:01:06 +00:00
b5694ae9c6 Merge pull request 'Update all minor dependencies' (#72) from renovate/all-minor-deps into develop
All checks were successful
/ build (push) Successful in 5m37s
Reviewed-on: #72
2023-11-24 23:32:04 +00:00
9dd84b20a9 Update all minor dependencies
All checks were successful
/ build (push) Successful in 5m31s
2023-11-24 23:01:08 +00:00
8bb310fb40 Update lock file #noissue
All checks were successful
/ build (push) Successful in 5m17s
2023-11-18 14:10:44 +01:00
47987b8dad Merge pull request 'Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.0' (#70) from renovate/all-minor-deps into develop
All checks were successful
/ build (push) Successful in 5m18s
Reviewed-on: #70
2023-11-18 12:54:36 +00:00
3d68dcefab Update ghcr.io/cirruslabs/flutter Docker tag to v3.16.0
All checks were successful
/ build (push) Successful in 6m8s
2023-11-17 23:00:15 +00:00
b51131de8f Merge pull request 'Update dependency flutter_lints to v3' (#65) from renovate/flutter_lints-3.x into develop
All checks were successful
/ build (push) Successful in 5m0s
Reviewed-on: #65
2023-11-14 19:27:35 +00:00
7e871bb4b1 Fix flutter lints for next major version #noissue
All checks were successful
/ build (push) Successful in 5m5s
2023-11-14 20:22:12 +01:00
88b9d81bc2 Update dependency flutter_lints to v3
Some checks failed
/ build (push) Failing after 1m39s
2023-11-14 00:01:15 +00:00
7c7befe071 Merge pull request 'Update dependency file_picker to v6' (#61) from renovate/file_picker-6.x into develop
All checks were successful
/ build (push) Successful in 5m5s
Reviewed-on: #61
2023-11-13 23:30:24 +00:00
2461a02f9d Update dependency file_picker to v6
All checks were successful
/ build (push) Successful in 5m4s
2023-11-13 22:01:15 +00:00
15104d7e40 Renovate: bundle minor versions
All checks were successful
/ build (push) Successful in 5m7s
2023-11-13 21:54:08 +00:00
733f09baab Merge pull request 'Update dependency share_plus to v7.2.1' (#63) from renovate/share_plus-7.x into develop
All checks were successful
/ build (push) Successful in 4m56s
Reviewed-on: #63
2023-11-13 21:42:27 +00:00
1758eeed18 Update dependency share_plus to v7.2.1
All checks were successful
/ build (push) Successful in 4m58s
2023-11-12 17:01:17 +00:00
c9764e780b Merge pull request 'Update dependency provider to v6.1.1' (#69) from renovate/provider-6.x into develop
All checks were successful
/ build (push) Successful in 5m11s
Reviewed-on: #69
2023-11-12 16:06:07 +00:00
3754d71dec Update dependency provider to v6.1.1
All checks were successful
/ build (push) Successful in 5m0s
2023-11-10 23:01:11 +00:00
8904d49eb2 Merge pull request 'Update dependency package_info_plus to v4.2.0' (#62) from renovate/package_info_plus-4.x into develop
All checks were successful
/ build (push) Successful in 4m54s
Reviewed-on: #62
2023-11-07 00:18:34 +00:00
0e7bc55bef Update dependency package_info_plus to v4.2.0
All checks were successful
/ build (push) Successful in 4m58s
2023-10-31 08:01:12 +00:00
089d07846d Merge pull request 'Update dependency url_launcher to v6.2.1' (#67) from renovate/url_launcher-6.x into develop
All checks were successful
/ build (push) Successful in 4m38s
Reviewed-on: #67
2023-10-31 07:38:36 +00:00
3f64f86acf Update dependency url_launcher to v6.2.1
All checks were successful
/ build (push) Successful in 4m49s
2023-10-31 00:01:21 +00:00
7c91d8b6ca Merge pull request 'Update dependency built_value_generator to v8.7.0' (#68) from renovate/built_value_generator-8.x into develop
All checks were successful
/ build (push) Successful in 4m39s
Reviewed-on: #68
2023-10-30 23:07:49 +00:00
df1b038782 Update dependency built_value_generator to v8.7.0
All checks were successful
/ build (push) Successful in 4m43s
2023-10-30 23:01:11 +00:00
c9ef125abb Merge pull request 'Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.9' (#66) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 4m58s
Reviewed-on: #66
2023-10-30 22:42:52 +00:00
5a8750b877 Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.9
All checks were successful
/ build (push) Successful in 5m15s
2023-10-26 20:00:17 +00:00
8c10e42c0f Merge pull request 'Update all patch dependencies' (#64) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 4m47s
Reviewed-on: #64
2023-10-22 11:50:21 +00:00
96d8cbea99 Update all patch dependencies
All checks were successful
/ build (push) Successful in 5m16s
2023-10-20 22:01:12 +00:00
685b140135 Merge pull request 'Update dependency shared_preferences to v2.2.2' (#60) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 4m43s
Reviewed-on: #60
2023-10-12 07:48:57 +00:00
f51e781a9f Update dependency shared_preferences to v2.2.2
All checks were successful
/ build (push) Successful in 4m45s
2023-10-12 00:01:22 +00:00
16c1a597fc Merge pull request 'Update dependency permission_handler to v11.0.1' (#59) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 4m39s
Reviewed-on: #59
2023-10-08 11:14:45 +00:00
71ac72a6cc Update dependency permission_handler to v11.0.1
All checks were successful
/ build (push) Successful in 4m40s
2023-10-06 22:01:13 +00:00
0bc3ae1da8 Merge pull request 'Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.6' (#58) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m4s
Reviewed-on: #58
2023-10-02 07:02:40 +00:00
fc5b8783d3 Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.6
All checks were successful
/ build (push) Successful in 6m35s
2023-09-29 22:00:18 +00:00
5492fed0b5 Updated internal dependencies and moved progress indicator of Show Configuration into button #noissue
All checks were successful
/ build (push) Successful in 5m55s
2023-09-24 17:43:37 +02:00
30810868b2 Merge pull request 'Update all patch dependencies' (#57) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m24s
Reviewed-on: #57
2023-09-23 16:44:40 +00:00
a889a6fbee Update all patch dependencies
All checks were successful
/ build (push) Successful in 6m32s
2023-09-22 22:01:09 +00:00
36e5bcab1f Merge pull request 'Update dependency dynamic_color to v1.6.7' (#56) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m29s
Reviewed-on: #56
2023-09-16 07:09:22 +00:00
3b06c2b80b Update dependency dynamic_color to v1.6.7
All checks were successful
/ build (push) Successful in 5m19s
2023-09-15 10:01:11 +00:00
e4cfa81672 Merge pull request 'Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.4' (#55) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m18s
Reviewed-on: #55
2023-09-14 16:22:19 +00:00
2837054383 Update ghcr.io/cirruslabs/flutter Docker tag to v3.13.4
All checks were successful
/ build (push) Successful in 5m51s
2023-09-14 10:00:21 +00:00
4deb9b92cb Merge pull request 'Update dependency permission_handler to v11' (#54) from renovate/permission_handler-11.x into develop
All checks were successful
/ build (push) Successful in 6m13s
Reviewed-on: #54
2023-09-11 17:13:37 +00:00
b0edda0432 Update dependency permission_handler to v11
All checks were successful
/ build (push) Successful in 6m9s
2023-09-11 09:01:11 +00:00
886632957d Merge pull request 'Update dependency permission_handler to v10.4.5' (#53) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m3s
Reviewed-on: #53
2023-09-06 22:08:45 +00:00
264609dff3 Update dependency permission_handler to v10.4.5
All checks were successful
/ build (push) Successful in 6m5s
2023-09-06 14:01:23 +00:00
d87796f47b Merge pull request 'Update dependency get_it to v7.6.4' (#52) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m10s
Reviewed-on: #52
2023-09-04 14:57:28 +00:00
42f40d52d2 Update dependency get_it to v7.6.4
All checks were successful
/ build (push) Successful in 6m5s
2023-09-04 14:01:23 +00:00
292660a970 Merge pull request 'Update dependency logger to v2.0.2' (#51) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m8s
Reviewed-on: #51
2023-09-04 00:08:04 +00:00
51e2c476c7 Update dependency logger to v2.0.2
All checks were successful
/ build (push) Successful in 6m1s
2023-09-03 22:01:17 +00:00
44cc8bac28 Merge pull request 'Update dependency flutter_sharing_intent to v1.1.0' (#50) from renovate/flutter_sharing_intent-1.x into develop
All checks were successful
/ build (push) Successful in 6m5s
Reviewed-on: #50
2023-09-03 08:18:45 +00:00
9b571fb1a4 Update dependency flutter_sharing_intent to v1.1.0
All checks were successful
/ build (push) Successful in 6m12s
2023-09-03 08:01:14 +00:00
d63ef288eb Merge pull request 'Update all patch dependencies' (#49) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m5s
Reviewed-on: #49
2023-08-31 21:47:36 +00:00
549b218922 Update all patch dependencies
All checks were successful
/ build (push) Successful in 6m5s
2023-08-31 20:01:12 +00:00
f61c5a4a1b Merge pull request 'Update dependency file_picker to v5.5.0' (#48) from renovate/file_picker-5.x into develop
All checks were successful
/ build (push) Successful in 6m28s
Reviewed-on: #48
2023-08-30 22:33:32 +00:00
a06bbf6751 Update dependency file_picker to v5.5.0
All checks were successful
/ build (push) Successful in 6m9s
2023-08-30 20:14:30 +00:00
e980f1ae53 Merge pull request 'Update all patch dependencies' (#47) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m1s
Reviewed-on: #47
2023-08-30 20:14:19 +00:00
66a5f4e9af Update all patch dependencies
All checks were successful
/ build (push) Successful in 5m56s
2023-08-30 16:01:16 +00:00
39b1465efc Merge pull request 'Update dependency flutter_lints to v2.0.3' (#46) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 6m2s
Reviewed-on: #46
2023-08-29 18:40:21 +00:00
22d096ae43 Update dependency flutter_lints to v2.0.3
All checks were successful
/ build (push) Successful in 6m6s
2023-08-29 18:01:20 +00:00
08d935284d Merge pull request 'Update dependency file_picker to v5.3.4' (#45) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m57s
Reviewed-on: #45
2023-08-29 06:39:29 +00:00
6b87873cc7 Update dependency file_picker to v5.3.4
All checks were successful
/ build (push) Successful in 6m4s
2023-08-26 00:01:18 +00:00
41987331b0 Merge pull request 'Update dependency built_value_generator to v8.6.2' (#44) from renovate/all-patch-deps into develop
All checks were successful
/ build (push) Successful in 5m58s
Reviewed-on: #44
2023-08-24 11:04:38 +00:00
f19d23a757 Update dependency built_value_generator to v8.6.2
All checks were successful
/ build (push) Successful in 6m45s
2023-08-24 09:01:25 +00:00
67076779a3 Upgrade Flutter to 3.13.0 and Dart to 3.1 #noissue (#43)
All checks were successful
/ build (push) Successful in 5m54s
Reviewed-on: #43
Co-authored-by: Varakh <varakh@varakh.de>
Co-committed-by: Varakh <varakh@varakh.de>
2023-08-17 21:56:23 +00:00
6d302c4392 Merge pull request 'Move to Forgejo as pipeline #noissue' (#41) from feature/move-to-forgejo into develop
All checks were successful
/ build (push) Successful in 5m56s
Reviewed-on: #41
2023-08-15 19:54:47 +00:00
53cd587a42 Update renovate.json
All checks were successful
/ build (push) Successful in 5m56s
2023-08-15 19:28:25 +00:00
769dd7e513 Move to Forgejo as pipeline and configure Renovate to update all patch dependencies in one PR #noissue
All checks were successful
/ build (push) Successful in 5m52s
2023-08-15 19:05:29 +00:00
a3ee146e25 Merge pull request 'Update dependency package_info_plus to v4.1.0' (#39) from renovate/package_info_plus-4.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #39
2023-08-10 18:53:51 +00:00
5e9947969e Update dependency package_info_plus to v4.1.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-02 13:02:12 +00:00
689c8b4408 Update renovate config to align with recommendations #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-28 21:36:47 +00:00
7cee219b19 Merge pull request 'Update ghcr.io/cirruslabs/flutter Docker tag to v3.12.0' (#34) from renovate/ghcr.io-cirruslabs-flutter-3.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #34
2023-07-27 19:24:16 +00:00
803cd11cc4 Upgrade docker image for pipeline #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-27 21:12:56 +02:00
a99662af3c Update ghcr.io/cirruslabs/flutter Docker tag to v3.12.0
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-27 18:17:48 +00:00
3d11fde4e9 Add back ignoring intl as it depends on underlying flutter engine #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-27 18:17:18 +00:00
43cb6472f2 Remove ignoring intl for renovate #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-27 07:15:53 +00:00
67dafa615f Merge pull request 'Update dependency logger to v2' (#36) from renovate/logger-2.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #36
2023-07-26 20:51:54 +00:00
fc0fe31b70 Fix signature change in upgraded logger #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 22:42:51 +02:00
0e4dcbde22 Update dependency logger to v2
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-26 19:01:45 +00:00
65a0a294a6 Merge pull request 'Update dependency http to v1' (#35) from renovate/http-1.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #35
2023-07-26 18:28:53 +00:00
548d02362b Update dependency http to v1
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 07:01:45 +00:00
c50e9ec7ba Merge pull request 'Update dependency shared_preferences to v2.2.0' (#32) from renovate/shared_preferences-2.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #32
2023-07-26 06:24:09 +00:00
e5518b4ade Merge pull request 'Update dependency share_plus to v7.0.2' (#28) from renovate/share_plus-7.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #28
2023-07-26 06:24:01 +00:00
0b093302ec Merge pull request 'Update dependency json_serializable to v6.7.1' (#26) from renovate/json_serializable-6.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #26
2023-07-26 06:23:53 +00:00
4114feb56e Update dependency shared_preferences to v2.2.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 23:01:56 +00:00
d8c9027509 Update dependency share_plus to v7.0.2
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 23:01:52 +00:00
e1075f5725 Update dependency json_serializable to v6.7.1
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 23:01:47 +00:00
b49f10c875 Merge pull request 'Update dependency stacked to v3.4.1' (#33) from renovate/stacked-3.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #33
2023-07-25 22:01:45 +00:00
494420cbd3 Merge pull request 'Update dependency logger to v1.4.0' (#30) from renovate/logger-1.x into develop
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #30
2023-07-25 22:01:36 +00:00
aedc7f2bbb Merge pull request 'Update dependency flutter_lints to v2.0.2' (#25) from renovate/flutter_lints-2.x into develop
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #25
2023-07-25 22:01:21 +00:00
9ac363070b Merge pull request 'Update dependency package_info_plus to v4.0.2' (#27) from renovate/package_info_plus-4.x into develop
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #27
2023-07-25 22:01:10 +00:00
580099856f Merge pull request 'Update dependency url_launcher to v6.1.12' (#29) from renovate/url_launcher-6.x into develop
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #29
2023-07-25 22:00:34 +00:00
d56d717de0 Merge pull request 'Update dependency file_picker to v5.3.3' (#24) from renovate/file_picker-5.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #24
2023-07-25 21:59:59 +00:00
3cf96ad5ab Update dependency stacked to v3.4.1
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:38 +00:00
26d0e0851b Update dependency logger to v1.4.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:29 +00:00
c772d950e2 Update dependency url_launcher to v6.1.12
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:25 +00:00
0630035e45 Update dependency package_info_plus to v4.0.2
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:17 +00:00
3fb46fc766 Update dependency flutter_lints to v2.0.2
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:08 +00:00
53c65ce54f Update dependency file_picker to v5.3.3
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:02:02 +00:00
9a1db51f23 Merge pull request 'Update dependency permission_handler to v10.4.3' (#31) from renovate/permission_handler-10.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #31
2023-07-25 16:19:36 +00:00
664b734544 Merge pull request 'Update dependency dynamic_color to v1.6.6' (#23) from renovate/dynamic_color-1.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #23
2023-07-25 06:02:38 +00:00
0e69e904b4 Update dependency permission_handler to v10.4.3
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 05:53:58 +00:00
09b608a168 Update dependency dynamic_color to v1.6.6
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 05:53:17 +00:00
091e344831 Merge pull request 'Update dependency built_value_generator to v8.6.1' (#21) from renovate/built_value_generator-8.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #21
2023-07-25 05:50:47 +00:00
0f9e8b398f Update dependency built_value_generator to v8.6.1
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 05:40:26 +00:00
88d85257a7 Merge pull request 'Update dependency build_runner to v2.4.6' (#20) from renovate/build_runner-2.x into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #20
2023-07-25 05:36:06 +00:00
06566d3d6e Update dependency build_runner to v2.4.6
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 05:25:33 +00:00
35bdd06f72 Merge pull request 'Configure Renovate' (#19) from renovate/configure into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
2023-07-25 05:23:40 +00:00
e59164e803 Ignore android and ios folders
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 07:17:04 +02:00
eec38b455c Add renovate config
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 07:12:13 +02:00
ee6230399a Add renovate.json
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 05:04:32 +00:00
31d91bafc1 Remove renovate pipeline step #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 07:00:55 +02:00
82f9ab5535 Merge pull request 'Add fdroid build instructions and fastlane script #noissue' (#18) from feature/add-izzy-on-droid into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #18
2023-07-24 21:51:24 +00:00
66493cff91 Add fdroid build instructions and fastlane script #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 23:42:08 +02:00
210c3e7aa4 Add renovate pipeline step #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 23:39:21 +02:00
d6b645112e Merge pull request 'feature/prepare-next-dev' (#16) from feature/prepare-next-dev into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #16
2023-05-29 14:23:17 +00:00
713d8f57be Bump version to next develop #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 16:14:59 +02:00
bc777d4826 Add documentation for release with bundler and fastlane #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 15:59:59 +02:00
ad9a3a15f5 Prepare next develop cycle #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 15:47:12 +02:00
dbb4929939 Merge pull request 'Prepare release of 1.6.1+19' (#15) from develop into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #15
2023-05-29 13:43:26 +00:00
adb55fd73b Prepare release of latest develop
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 15:35:47 +02:00
004133f0c0 Restore to initial state #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 15:25:57 +02:00
67903d1331 Try out larger executor #noissue
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-05-29 15:10:34 +02:00
0a0fbe039b Try out larger executor #noissue
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2023-05-29 15:09:53 +02:00
6ef8a9daa0 Restore old state for pipeline #noissue
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-29 15:04:37 +02:00
47b45a9084 Enforce runner #noissue
Some checks are pending
continuous-integration/drone/push Build is pending
2023-05-29 15:03:30 +02:00
06dab63e05 Enforce runner #noissue
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-05-29 14:53:38 +02:00
9c331cf6d3 Enforce runner #noissue
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-05-29 14:35:45 +02:00
40451dbabc Determine runner size #noissue
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-05-29 14:26:27 +02:00
6bb4c177e2 Merge pull request 'Upgrade dependencies and minSdk version #noissue' (#14) from feature/upgrade-deps into develop
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #14
2023-05-28 20:37:08 +00:00
81eb1af2bd Upgrade dependencies and minSdk version #noissue
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-05-28 18:20:18 +02:00
3e7bc379f1 Only trigger main build pipeline for push and pull requests #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-20 18:58:25 +01:00
e9929bd3c3 Remove drone signing and rename pipeline stage to build #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-20 18:18:16 +01:00
9386661adb Enforce drone yml signing #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-20 09:03:18 +01:00
46a6df9f80 Merge pull request 'Upgrade dependencies #noissue' (#13) from feature/upgrade-dependencies into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #13
2023-03-17 20:22:02 +00:00
577f9cd42c Upgrade dependencies #noissue
All checks were successful
continuous-integration/drone Build is passing
2023-03-17 21:10:41 +01:00
d8d89167a9 Merge pull request 'Prepare next dev cycle #noissue' (#12) from release/prepare-next-dev-cycle into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #12
2023-01-16 18:47:13 +00:00
6d75672add Prepare next dev cycle #noissue
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-16 19:39:18 +01:00
36 changed files with 1041 additions and 447 deletions

View file

@ -1,14 +0,0 @@
kind: pipeline
type: docker
name: default
steps:
- name: build
image: cirrusci/flutter:3.3.10
commands:
- flutter doctor
- flutter pub get
- flutter pub outdated
- flutter packages pub run build_runner build --delete-conflicting-outputs
- flutter analyze --no-pub --no-current-package lib/
- flutter build apk --debug

View file

@ -0,0 +1,21 @@
on: [ push ]
jobs:
build:
runs-on: docker
container:
image: ghcr.io/cirruslabs/flutter:3.24.4
steps:
- name: Prepare requirements
run: |
apt-get update
apt-get install -y nodejs npm git
rm -rf /var/lib/apt/lists/*
- uses: actions/checkout@v3
- name: Build
run: |
flutter doctor
flutter pub get
flutter pub outdated
flutter packages pub run build_runner build --delete-conflicting-outputs
flutter analyze --no-pub --no-current-package lib/
flutter build apk --debug

1
.gitignore vendored
View file

@ -1,6 +1,7 @@
# Miscellaneous # Miscellaneous
*.class *.class
*.lock *.lock
!Gemfile.lock
!pubspec.lock !pubspec.lock
*.log *.log
*.pyc *.pyc

View file

@ -1,5 +1,23 @@
# CHANGELOG # CHANGELOG
## 1.6.4+22 - 2024/11/01
* Dependency updates
* Internal build updates
## 1.6.3+21
* Fixed not receiving share requests from other applications
## 1.6.2+20
* Updated internal dependencies
* Moved progress indicator of _Show Configuration_ into the underlying button
* Bumped Android minSdk to `30` (Android 11)
* Bumped Android targetSdk to `34` (Android 14)
* Fixed permission service not handling Android SDK 33 correctly
* Fixed permission service not being started during application start
## 1.6.1+19
* Updated internal dependencies
## 1.6.0+18 ## 1.6.0+18
* Fixed input colors in login view when using dark theme * Fixed input colors in login view when using dark theme
* Added removal of individual files selected for upload * Added removal of individual files selected for upload

View file

@ -2,7 +2,8 @@
A mobile flutter app for [FileBin](https://git.server-speed.net/users/flo/filebin/). A mobile flutter app for [FileBin](https://git.server-speed.net/users/flo/filebin/).
Available on the [Play Store](https://play.google.com/store/apps/details?id=de.varakh.fbmobile). Available on the [Play Store](https://play.google.com/store/apps/details?id=de.varakh.fbmobile) and
[IzzyOnDroid](https://apt.izzysoft.de/fdroid/index/apk/de.varakh.fbmobile/).
The main git repository is hosted at **[https://git.myservermanager.com/varakh/fbmobile](https://git.myservermanager.com/varakh/fbmobile)**. The main git repository is hosted at **[https://git.myservermanager.com/varakh/fbmobile](https://git.myservermanager.com/varakh/fbmobile)**.
Other repositories are mirrors and pull requests, issues, and planning are managed there. Other repositories are mirrors and pull requests, issues, and planning are managed there.
@ -94,7 +95,7 @@ profiles. They're stored in a separate git repository and are encrypted.
You need access to the git repository in which those private files reside. You need access to the git repository in which those private files reside.
#### Usage #### Usage / doing the actual release
Go into the platform directory you want to build for, e.g. `ios/` or `android/` and then look into the Go into the platform directory you want to build for, e.g. `ios/` or `android/` and then look into the
`Fastlane` file which lanes are present. Run a lane via `fastlane <platform> <lane>`, e.g. use the `Fastlane` file which lanes are present. Run a lane via `fastlane <platform> <lane>`, e.g. use the
@ -104,13 +105,37 @@ following to build for Android `fastlane android build`.
##### Android ##### Android
Use `fastlane android beta` to build and upload a new beta version to the Play Store. It's recommended you set up `fastlane` via `bundler` (you need this to be installed on your machine).
Go into the `android/` sub-directory of the project
```shell
bundle config set --local path 'vendor/bundle'
bundle install
# update fastlane when needed
bundle update fastlane
# build only
bundle exec fastlane android build
# deploy (push BETA to app store)
bundle exec fastlane android beta
# deploy (push to app store)
bundle exec fastlane android deploy
# deploy (build signed fdroid large bundle [no target and abi split])
bundle exec fastlane android build_production_fdroid
```
##### iOS ##### iOS
For iOS you need to execute `fastlane ios build` before uploading to testflight with For iOS you need to execute `fastlane ios build` before uploading to testflight with
`fastlane ios beta`. `fastlane ios beta`.
Probably do the same Ruby/fastlane setup as mentioned under the _Android_ section.
### Release manually (not recommended) ### Release manually (not recommended)
See the following links on how to setup: See the following links on how to setup:

2
android/.gitignore vendored
View file

@ -5,3 +5,5 @@ gradle-wrapper.jar
/gradlew.bat /gradlew.bat
/local.properties /local.properties
GeneratedPluginRegistrant.java GeneratedPluginRegistrant.java
.bundle
vendor/

222
android/Gemfile.lock Normal file
View file

@ -0,0 +1,222 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1000.0)
aws-sdk-core (3.211.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.95.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.169.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.10.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.112.0)
faraday (1.10.4)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.225.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored (~> 1.2)
commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
fastlane-sirp (>= 1.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (>= 0.1.1, < 1.0.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.5)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.1)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.7)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.5)
jwt (2.9.3)
base64
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.1)
nanaimo (0.4.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.5.0)
os (1.1.4)
plist (3.7.1)
public_suffix (6.0.1)
rake (13.2.1)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.3.9)
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
naturally
sysrandom (1.0.5)
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
xcodeproj (1.27.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
fastlane
BUNDLED WITH
2.5.16

View file

@ -1,3 +1,9 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties() def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties') def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) { if (localPropertiesFile.exists()) {
@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) {
} }
} }
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode') def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) { if (flutterVersionCode == null) {
flutterVersionCode = '1' flutterVersionCode = '1'
@ -21,9 +22,6 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0' flutterVersionName = '1.0'
} }
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties() def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties') def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) { if (keystorePropertiesFile.exists()) {
@ -31,7 +29,9 @@ if (keystorePropertiesFile.exists()) {
} }
android { android {
compileSdkVersion 33 compileSdkVersion 34
namespace "de.varakh.fbmobile"
lintOptions { lintOptions {
disable 'InvalidPackage' disable 'InvalidPackage'
@ -39,8 +39,8 @@ android {
defaultConfig { defaultConfig {
applicationId "de.varakh.fbmobile" applicationId "de.varakh.fbmobile"
minSdkVersion 16 minSdkVersion 30
targetSdkVersion 33 targetSdkVersion 34
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View file

@ -4,7 +4,10 @@
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.
--> -->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<queries> <queries>
<intent> <intent>

View file

@ -21,6 +21,41 @@
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
@ -30,7 +65,10 @@
</application> </application>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<queries> <queries>
<intent> <intent>

View file

@ -4,7 +4,10 @@
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.
--> -->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<queries> <queries>
<intent> <intent>

View file

@ -1,14 +1,3 @@
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
}
}
allprojects { allprojects {
repositories { repositories {
google() google()
@ -24,6 +13,6 @@ subprojects {
project.evaluationDependsOn(':app') project.evaluationDependsOn(':app')
} }
task clean(type: Delete) { tasks.register("clean", Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }

View file

@ -11,6 +11,11 @@ platform :android do
sh("#{ENV['PWD']}/fastlane/buildAndroidProduction.sh") sh("#{ENV['PWD']}/fastlane/buildAndroidProduction.sh")
end end
desc "Build Production fdroid"
lane :build_production_fdroid do
sh("#{ENV['PWD']}/fastlane/buildAndroidProductionFdroid.sh")
end
desc "Build" desc "Build"
lane :build do lane :build do
sh("#{ENV['PWD']}/fastlane/buildAndroid.sh") sh("#{ENV['PWD']}/fastlane/buildAndroid.sh")

View file

@ -31,6 +31,14 @@ Build Debug
Build Production Build Production
### android build_production_fdroid
```sh
[bundle exec] fastlane android build_production_fdroid
```
Build Production fdroid
### android build ### android build
```sh ```sh

View file

@ -0,0 +1,9 @@
#!/usr/bin/env sh
cd ../../;
flutter clean && \
flutter pub get &&
flutter packages pub run build_runner build --delete-conflicting-outputs;
flutter build apk --release;
flutter build apk --split-per-abi --release;

View file

@ -1,4 +1,6 @@
agpVersion=8.7.2
kotlinVersion=1.7.10
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true

View file

@ -1,6 +1,7 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

View file

@ -1,15 +1,25 @@
include ':app' pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
def plugins = new Properties() repositories {
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') google()
if (pluginsFile.exists()) { mavenCentral()
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } gradlePluginPortal()
}
} }
plugins.each { name, path -> plugins {
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() id "dev.flutter.flutter-plugin-loader" version "1.0.0"
include ":$name" id "com.android.application" version "${agpVersion}" apply false
project(":$name").projectDir = pluginDirectory id "org.jetbrains.kotlin.android" version "${kotlinVersion}" apply false
} }
include ":app"

View file

@ -126,14 +126,6 @@
"description": "Could not open '{link}'. Please ensure that you have an application installed which handles opening such link types." "description": "Could not open '{link}'. Please ensure that you have an application installed which handles opening such link types."
} }
}, },
"permission_service": {
"dialog": {
"title": "Storage permission",
"description": "Storage permission should be granted to the app so that it can work properly. Do you want to grant permission or ignore this message permanently in the future?",
"grant": "Grant",
"ignore": "Ignore"
}
},
"dialog": { "dialog": {
"confirm": "OK", "confirm": "OK",
"cancel": "Cancel" "cancel": "Cancel"

View file

@ -5,8 +5,8 @@ class RestServiceException extends ServiceException {
final int statusCode; final int statusCode;
final dynamic responseBody; final dynamic responseBody;
RestServiceException(this.statusCode, {this.responseBody, String? message}) RestServiceException(this.statusCode, {this.responseBody, super.message = null})
: super(code: ErrorCode.restError, message: message); : super(code: ErrorCode.restError);
@override @override
String toString() { String toString() {

View file

@ -8,7 +8,7 @@ import '../services/dialog_service.dart';
class DialogManager extends StatefulWidget { class DialogManager extends StatefulWidget {
final Widget? child; final Widget? child;
const DialogManager({Key? key, this.child}) : super(key: key); const DialogManager({super.key, this.child});
@override @override
_DialogManagerState createState() => _DialogManagerState(); _DialogManagerState createState() => _DialogManagerState();

View file

@ -11,7 +11,7 @@ import '../util/logger.dart';
class LifeCycleManager extends StatefulWidget { class LifeCycleManager extends StatefulWidget {
final Widget? child; final Widget? child;
const LifeCycleManager({Key? key, this.child}) : super(key: key); const LifeCycleManager({super.key, this.child});
@override @override
_LifeCycleManagerState createState() => _LifeCycleManagerState(); _LifeCycleManagerState createState() => _LifeCycleManagerState();

View file

@ -1,108 +1,100 @@
import 'dart:async'; import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter_translate/flutter_translate.dart'; import 'package:device_info_plus/device_info_plus.dart';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import '../../constants.dart'; import '../../constants.dart';
import '../../core/datamodels/dialog_response.dart';
import '../../core/services/dialog_service.dart';
import '../../core/services/stoppable_service.dart'; import '../../core/services/stoppable_service.dart';
import '../../core/util/logger.dart'; import '../../core/util/logger.dart';
import '../../locator.dart';
import 'storage_service.dart';
class PermissionService extends StoppableService { class PermissionService extends StoppableService {
final Logger _logger = getLogger(); final Logger _logger = getLogger();
final DialogService _dialogService = locator<DialogService>();
final StorageService _storageService = locator<StorageService>();
Timer? _serviceCheckTimer; Timer? _serviceCheckTimer;
PermissionStatus? _permissionStatus;
bool _permanentlyIgnored = false;
bool _devicePermissionDialogActive = false; bool _devicePermissionDialogActive = false;
bool _ownPermissionDialogActive = false;
PermissionService() { bool _deviceInformationInitialized = false;
_devicePermissionDialogActive = true; bool _useStoragePermission = true;
Permission.storage.request().then((status) { PermissionService();
_permissionStatus = status;
if (PermissionStatus.permanentlyDenied == status) {
_permanentlyIgnored = true;
}
}).whenComplete(() {
_logger.d('Initial device request permission finished');
_devicePermissionDialogActive = false;
});
}
Future checkEnabledAndPermission() async { Future checkEnabledAndPermission() async {
if (_permanentlyIgnored) {
await _storageService.storeStoragePermissionDialogIgnored();
_permanentlyIgnored = false;
_logger.d('Set permanently ignored permission request');
stop();
}
if (_devicePermissionDialogActive) { if (_devicePermissionDialogActive) {
_logger.d('Device permission dialog active, skipping'); _logger.d('Device permission dialog active, skipping');
return; return;
} }
if (_ownPermissionDialogActive) { bool allGranted = false;
_logger.d('Own permission dialog already active, skipping'); bool anyPermanentlyDenied = false;
return;
// Since Android compileSdk >= 33, "storage" is deprecated
// Instead, request access to all of
// - Permission.photos
// - Permission.videos
// - Permission.audio
//
// For iOS and Android < 33, keep using "storage"
if (_useStoragePermission) {
PermissionStatus storagePermission = await Permission.storage.status;
allGranted = PermissionStatus.granted == storagePermission;
anyPermanentlyDenied =
PermissionStatus.permanentlyDenied == storagePermission;
} else {
PermissionStatus photosPermission = await Permission.photos.status;
PermissionStatus videosPermission = await Permission.videos.status;
PermissionStatus audioPermission = await Permission.audio.status;
allGranted = PermissionStatus.granted == photosPermission &&
PermissionStatus.granted == videosPermission &&
PermissionStatus.granted == audioPermission;
anyPermanentlyDenied =
PermissionStatus.permanentlyDenied == photosPermission ||
PermissionStatus.permanentlyDenied == videosPermission ||
PermissionStatus.permanentlyDenied == audioPermission;
} }
var ignoredDialog = // show warning to user to manually handle, don't enforce it over and over again
await _storageService.hasStoragePermissionDialogIgnored(); if (anyPermanentlyDenied) {
_logger.w(
if (ignoredDialog) { "At least one required permission has been denied permanently, stopping service");
_logger.d('Permanently ignored permission request, skipping');
stop(); stop();
return; return;
} }
_permissionStatus = await Permission.storage.status; // all good, stop the permission service
if (_permissionStatus != PermissionStatus.granted) { if (allGranted) {
if (_permissionStatus == PermissionStatus.permanentlyDenied) { _logger.d("All permissions have been granted, stopping service");
await _storageService.storeStoragePermissionDialogIgnored(); stop();
return; return;
} }
_ownPermissionDialogActive = true; // not all have been granted, show OS dialog
DialogResponse response = await _dialogService.showConfirmationDialog( _logger.d(
title: translate('permission_service.dialog.title'), "Not all permissions have been granted yet, initializing permission dialog");
description: translate('permission_service.dialog.description'), _devicePermissionDialogActive = true;
buttonTitleAccept: translate('permission_service.dialog.grant'),
buttonTitleDeny: translate('permission_service.dialog.ignore'));
if (!response.confirmed!) { if (_useStoragePermission) {
await _storageService.storeStoragePermissionDialogIgnored(); await [Permission.storage].request().whenComplete(() {
} else { _logger.d('Device request permission finished');
_devicePermissionDialogActive = true; _devicePermissionDialogActive = false;
Permission.storage.request().then((status) async { });
if (PermissionStatus.permanentlyDenied == status) {
await _storageService.storeStoragePermissionDialogIgnored();
}
}).whenComplete(() {
_logger.d('Device request permission finished');
_devicePermissionDialogActive = false;
});
}
_ownPermissionDialogActive = false;
} else { } else {
await _storageService.storeStoragePermissionDialogIgnored(); await [Permission.photos, Permission.videos, Permission.audio]
.request()
.whenComplete(() {
_logger.d('Device request permission finished');
_devicePermissionDialogActive = false;
});
} }
} }
@override @override
Future start() async { Future start() async {
super.start(); super.start();
await _determineDeviceInfo();
await checkEnabledAndPermission(); await checkEnabledAndPermission();
_serviceCheckTimer = Timer.periodic( _serviceCheckTimer = Timer.periodic(
@ -124,6 +116,29 @@ class PermissionService extends StoppableService {
_logger.d('PermissionService stopped'); _logger.d('PermissionService stopped');
} }
Future _determineDeviceInfo() async {
if (_deviceInformationInitialized) {
_logger.d('Device information already initialized, skipping');
return;
}
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
if (Platform.isAndroid) {
final androidInfo = await deviceInfoPlugin.androidInfo;
if (androidInfo.version.sdkInt >= 33) {
_useStoragePermission = false;
}
}
if (_useStoragePermission) {
_logger.d('Device requires [storage] permission');
} else {
_logger.d('Device requires [photos,videos,audio] permission');
}
_deviceInformationInitialized = true;
}
void _removeServiceCheckTimer() { void _removeServiceCheckTimer() {
if (_serviceCheckTimer != null) { if (_serviceCheckTimer != null) {
_serviceCheckTimer!.cancel(); _serviceCheckTimer!.cancel();

View file

@ -7,8 +7,6 @@ import '../models/session.dart';
class StorageService { class StorageService {
static const _sessionKey = 'session'; static const _sessionKey = 'session';
static const _lastUrlKey = 'last_url'; static const _lastUrlKey = 'last_url';
static const _storagePermissionDialogIgnoredKey =
'storage_permission_ignored';
Future<bool> storeLastUrl(String url) { Future<bool> storeLastUrl(String url) {
return _store(_lastUrlKey, url); return _store(_lastUrlKey, url);
@ -39,14 +37,6 @@ class StorageService {
return _remove(_sessionKey); return _remove(_sessionKey);
} }
Future<bool> storeStoragePermissionDialogIgnored() {
return _store(_storagePermissionDialogIgnoredKey, true.toString());
}
Future<bool> hasStoragePermissionDialogIgnored() {
return _exists(_storagePermissionDialogIgnoredKey);
}
Future<bool> _exists(String key) async { Future<bool> _exists(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.containsKey(key); return prefs.containsKey(key);

View file

@ -108,7 +108,7 @@ class HistoryModel extends BaseModel {
} else { } else {
errorMessage = translate('app.unknown_error'); errorMessage = translate('app.unknown_error');
setStateView(ViewState.idle); setStateView(ViewState.idle);
_logger.e('An unknown error occurred', e); _logger.e('An unknown error occurred', error: e);
rethrow; rethrow;
} }
} }
@ -156,7 +156,7 @@ class HistoryModel extends BaseModel {
} else { } else {
errorMessage = translate('app.unknown_error'); errorMessage = translate('app.unknown_error');
setStateView(ViewState.idle); setStateView(ViewState.idle);
_logger.e('An unknown error occurred', e); _logger.e('An unknown error occurred', error: e);
rethrow; rethrow;
} }
} }

View file

@ -163,7 +163,7 @@ class LoginModel extends BaseModel {
errorMessage = translate('app.unknown_error'); errorMessage = translate('app.unknown_error');
_sessionService.logout(); _sessionService.logout();
setStateView(ViewState.idle); setStateView(ViewState.idle);
_logger.e('An unknown error occurred', e); _logger.e('An unknown error occurred', error: e);
rethrow; rethrow;
} }

View file

@ -77,7 +77,7 @@ class ProfileModel extends BaseModel {
setStateBoolValue(_configurationButtonLoading, false); setStateBoolValue(_configurationButtonLoading, false);
_sessionService.logout(); _sessionService.logout();
setStateBoolValue(_configurationButtonLoading, false); setStateBoolValue(_configurationButtonLoading, false);
_logger.e('An unknown error occurred', e); _logger.e('An unknown error occurred', error: e);
rethrow; rethrow;
} }
} }

View file

@ -1,3 +1,4 @@
import 'package:fbmobile/core/services/permission_service.dart';
import 'package:flutter_translate/flutter_translate.dart'; import 'package:flutter_translate/flutter_translate.dart';
import '../../locator.dart'; import '../../locator.dart';
@ -9,16 +10,18 @@ import 'base_model.dart';
class StartUpViewModel extends BaseModel { class StartUpViewModel extends BaseModel {
final SessionService _sessionService = locator<SessionService>(); final SessionService _sessionService = locator<SessionService>();
final PermissionService _permissionService = locator<PermissionService>();
final NavigationService _navigationService = locator<NavigationService>(); final NavigationService _navigationService = locator<NavigationService>();
Future handleStartUpLogic() async { Future handleStartUpLogic() async {
setStateView(ViewState.busy); setStateView(ViewState.busy);
setStateMessage(translate('startup.init')); setStateMessage(translate('startup.init'));
await Future.delayed(const Duration(milliseconds: 150)); await Future.delayed(const Duration(milliseconds: 100));
setStateMessage(translate('startup.start_services')); setStateMessage(translate('startup.start_services'));
await _sessionService.start(); await _sessionService.start();
await Future.delayed(const Duration(milliseconds: 150)); await _permissionService.start();
await Future.delayed(const Duration(milliseconds: 100));
_navigationService.navigateAndReplaceTo(HomeView.routeName); _navigationService.navigateAndReplaceTo(HomeView.routeName);

View file

@ -152,9 +152,9 @@ class UploadModel extends BaseModel {
)) ))
?.files; ?.files;
} on PlatformException catch (e) { } on PlatformException catch (e) {
_logger.e('Unsupported operation', e); _logger.e('Unsupported operation', error: e);
} catch (ex) { } catch (ex) {
_logger.e('An unknown error occurred', ex); _logger.e('An unknown error occurred', error: ex);
} }
loadingPath = false; loadingPath = false;
@ -238,7 +238,7 @@ class UploadModel extends BaseModel {
errorMessage = translate('app.unknown_error'); errorMessage = translate('app.unknown_error');
setStateMessage(null); setStateMessage(null);
setStateView(ViewState.idle); setStateView(ViewState.idle);
_logger.e('An unknown error occurred', e); _logger.e('An unknown error occurred', error: e);
rethrow; rethrow;
} }
} }

View file

@ -91,7 +91,9 @@ class HistoryView extends StatelessWidget {
content: Text(translate('history.copy_link.copied')), content: Text(translate('history.copy_link.copied')),
duration: const Duration(seconds: 10), duration: const Duration(seconds: 10),
); );
ScaffoldMessenger.of(context).showSnackBar(snackBar); if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(snackBar);
}
}); });
})); }));

View file

@ -53,24 +53,26 @@ class ProfileView extends StatelessWidget {
UIHelper.verticalSpaceMedium(), UIHelper.verticalSpaceMedium(),
Padding( Padding(
padding: const EdgeInsets.only(left: 25.0, right: 25.0), padding: const EdgeInsets.only(left: 25.0, right: 25.0),
child: model.configLoading child: ElevatedButton.icon(
? Center( icon: model.configLoading
child: Column( ? Container(
mainAxisAlignment: MainAxisAlignment.center, width: 24,
crossAxisAlignment: CrossAxisAlignment.center, height: 24,
children: [ padding: const EdgeInsets.all(2.0),
const CircularProgressIndicator(), child: const CircularProgressIndicator(
Text(translate('profile.show_config_loading')), color: blueColor,
], strokeWidth: 3,
)) ),
: ElevatedButton.icon( )
icon: const Icon(Icons.settings, color: blueColor), : const Icon(Icons.settings, color: blueColor),
label: Text( label: Text(
translate('profile.show_config'), model.configLoading
), ? translate('profile.show_config_loading')
onPressed: () async { : translate('profile.show_config'),
await model.showConfig(url); ),
})), onPressed: () async {
await model.showConfig(url);
})),
UIHelper.verticalSpaceMedium(), UIHelper.verticalSpaceMedium(),
Padding( Padding(
padding: const EdgeInsets.only(left: 25.0, right: 25.0), padding: const EdgeInsets.only(left: 25.0, right: 25.0),

View file

@ -151,8 +151,10 @@ class UploadView extends StatelessWidget {
duration: duration:
const Duration(seconds: 10), const Duration(seconds: 10),
); );
ScaffoldMessenger.of(context) if (context.mounted) {
.showSnackBar(snackBar); ScaffoldMessenger.of(context)
.showSnackBar(snackBar);
}
}); });
} }
}, },

View file

@ -7,12 +7,11 @@ class MyAppBar extends AppBar {
static final List<Widget> aboutDisabledWidgets = []; static final List<Widget> aboutDisabledWidgets = [];
MyAppBar( MyAppBar(
{Key? key, {super.key,
required Widget title, required Widget title,
List<Widget>? actionWidgets, List<Widget>? actionWidgets,
bool enableAbout = true}) bool enableAbout = true})
: super( : super(
key: key,
title: Row(children: <Widget>[title]), title: Row(children: <Widget>[title]),
actions: _renderIconButtons(actionWidgets, enableAbout)); actions: _renderIconButtons(actionWidgets, enableAbout));

File diff suppressed because it is too large Load diff

View file

@ -11,46 +11,47 @@ description: A mobile client for FileBin.
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.6.0+18 version: 1.6.4+22
environment: environment:
sdk: '>=2.18.5 <3.0.0' sdk: '>=3.5.0 <4.0.0'
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
cupertino_icons: 1.0.5 cupertino_icons: 1.0.8
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
flutter_translate: 4.0.3 flutter_translate: 4.1.0
provider: 6.0.5 provider: 6.1.2
stacked: 3.1.0+1 stacked: 3.4.3
get_it: 7.2.0 get_it: 7.7.0
logger: 1.1.0 logger: 2.4.0
shared_preferences: 2.0.16 shared_preferences: 2.3.2
http: 0.13.5 http: 1.2.2
validators: 3.0.0 validators: 3.0.0
flutter_linkify: 5.0.2 flutter_linkify: 6.0.0
url_launcher: 6.1.7 url_launcher: 6.3.1
expandable: 5.0.1 expandable: 5.0.1
share_plus: 6.3.0 share_plus: 10.1.1
file_picker: 5.2.5 file_picker: 8.1.3
clipboard: 0.1.3 clipboard: 0.1.3
permission_handler: 10.2.0 permission_handler: 11.3.1
package_info_plus: 3.0.2 package_info_plus: 8.1.0
json_annotation: 4.7.0 json_annotation: 4.9.0
dynamic_color: 1.5.4 dynamic_color: 1.7.0
intl: 0.17.0 intl: 0.19.0
path: 1.8.2 path: 1.9.0
flutter_sharing_intent: 1.0.5 flutter_sharing_intent: 1.1.1
device_info_plus: 11.1.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: 2.3.3 build_runner: 2.4.13
built_value_generator: 8.4.3 built_value_generator: 8.9.2
json_serializable: 6.5.4 json_serializable: 6.8.0
flutter_lints: 2.0.1 flutter_lints: 5.0.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec # following page: https://www.dartlang.org/tools/pub/pubspec

38
renovate.json5 Normal file
View file

@ -0,0 +1,38 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":rebaseStalePrs",
":ignoreUnstable",
"group:monorepos",
"group:recommended"
],
"prConcurrentLimit": 0,
"schedule": [
"monthly"
],
"ignorePaths": [
"android/**",
"ios/**"
],
"ignoreDeps": [
"intl",
"path"
],
"packageRules": [
{
"matchUpdateTypes": [
"minor"
],
"groupName": "all minor dependencies",
"groupSlug": "all-minor-deps"
},
{
"matchUpdateTypes": [
"patch"
],
"groupName": "all patch dependencies",
"groupSlug": "all-patch-deps"
}
]
}