From 2053f978a08414028786966b9d876087997a14f9 Mon Sep 17 00:00:00 2001 From: Kristen McWilliam <9575627+Merrit@users.noreply.github.com> Date: Mon, 24 Feb 2025 12:58:39 -0500 Subject: [PATCH 1/4] ci: upgrade deprecated actions versions --- .github/workflows/build-android.yml | 4 ++-- .github/workflows/build-linux.yml | 4 ++-- .github/workflows/build-website.yml | 2 +- .github/workflows/build-windows.yml | 6 +++--- .github/workflows/flatpak.yml | 4 ++-- .github/workflows/pre-release.yml | 4 ++-- .github/workflows/release-windows-store.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/tests.yml | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 0ed88769..4e08d043 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -34,7 +34,7 @@ jobs: java-version: '17' - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Configure Keystore for Android run: | @@ -67,7 +67,7 @@ jobs: # ---------------------------------- Upload ---------------------------- # - name: Upload artifacts to workflow - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: android-artifacts path: output/* diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 8ca34c8d..cb12e675 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -44,7 +44,7 @@ jobs: uses: subosito/flutter-action@v2 - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare for build run: | @@ -64,7 +64,7 @@ jobs: # ---------------------------------- Upload ---------------------------- # - name: Upload artifacts to workflow - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-artifacts path: output/* diff --git a/.github/workflows/build-website.yml b/.github/workflows/build-website.yml index a541a6f3..989c3c2b 100644 --- a/.github/workflows/build-website.yml +++ b/.github/workflows/build-website.yml @@ -28,7 +28,7 @@ jobs: # concurrency: # group: ${{ github.workflow }}-${{ github.ref }} # steps: -# - uses: actions/checkout@v3 +# - uses: actions/checkout@v4 # # Using static site for now as it seems required to verify with Google # # Cloud Console. ¯\_(ツ)_/¯ diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 53792242..18f5d443 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -33,7 +33,7 @@ jobs: uses: subosito/flutter-action@v2 - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare for build run: | @@ -56,7 +56,7 @@ jobs: # ---------------------------------- Upload ---------------------------- # - name: Upload Windows Store MSIX artifact to workflow - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: windows-store-artifact path: output/*.msix @@ -66,7 +66,7 @@ jobs: run: rm output/*.msix - name: Upload artifacts to workflow - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: windows-artifacts path: output/* diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml index 3cff1d84..7bcbf1d9 100644 --- a/.github/workflows/flatpak.yml +++ b/.github/workflows/flatpak.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main path: code @@ -61,7 +61,7 @@ jobs: run: sleep 60 - name: Checkout flathub repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: flathub/${{ env.project-id }} path: flathub diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 5ae8686b..125d9089 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -40,10 +40,10 @@ jobs: runs-on: "ubuntu-latest" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: artifacts diff --git a/.github/workflows/release-windows-store.yml b/.github/workflows/release-windows-store.yml index 4842f194..2e78a377 100644 --- a/.github/workflows/release-windows-store.yml +++ b/.github/workflows/release-windows-store.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: artifacts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b942749b..99f98291 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,10 +41,10 @@ jobs: runs-on: "ubuntu-latest" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: artifacts diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f49cd4dd..11f6f88b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,7 +11,7 @@ jobs: name: Run Tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Flutter uses: subosito/flutter-action@v2 From 0d4e86fdcb74404b1c136b960e4a8efe183668f7 Mon Sep 17 00:00:00 2001 From: Kristen McWilliam <9575627+Merrit@users.noreply.github.com> Date: Mon, 24 Feb 2025 13:58:43 -0500 Subject: [PATCH 2/4] chore: upgrade flutter_app_builder dependency --- pubspec.lock | 229 ++++++++++++++++++++----------------------- pubspec.yaml | 2 +- website/pubspec.lock | 74 +++++++------- 3 files changed, 146 insertions(+), 159 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index e9b63d80..a6f69502 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" + sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 url: "https://pub.dev" source: hosted - version: "76.0.0" + version: "80.0.0" _flutterfire_internals: dependency: transitive description: @@ -25,27 +25,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.35" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" + sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" url: "https://pub.dev" source: hosted - version: "6.11.0" + version: "7.3.0" archive: dependency: transitive description: name: archive - sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" + sha256: "528579c7e4579719f04b21eeeeddfd73a18b31dabc22766893b7d1be7f49b967" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.3" args: dependency: transitive description: @@ -58,10 +53,10 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" badges: dependency: "direct main" description: @@ -90,10 +85,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" build: dependency: transitive description: @@ -114,26 +109,26 @@ packages: dependency: transitive description: name: build_daemon - sha256: "294a2edaf4814a378725bfe6358210196f5ea37af89ecd81bfa32960113d4948" + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" url: "https://pub.dev" source: hosted - version: "4.0.3" + version: "4.0.4" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "99d3980049739a985cf9b21f30881f46db3ebc62c5b8d5e60e27440876b1ba1e" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.14" + version: "2.4.15" build_runner_core: dependency: transitive description: @@ -162,10 +157,10 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -186,10 +181,10 @@ packages: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" code_builder: dependency: transitive description: @@ -202,10 +197,10 @@ packages: dependency: "direct main" description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" console: dependency: transitive description: @@ -242,18 +237,18 @@ packages: dependency: transitive description: name: dart_style - sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "3.0.1" dbus: dependency: transitive description: name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.11" diff_match_patch: dependency: transitive description: @@ -266,10 +261,10 @@ packages: dependency: "direct main" description: name: easy_localization - sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201 + sha256: "0f5239c7b8ab06c66440cfb0e9aa4b4640429c6668d5a42fe389c5de42220b12" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.0.7+1" easy_logger: dependency: "direct main" description: @@ -290,18 +285,18 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" ffi: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" file: dependency: transitive description: @@ -354,10 +349,10 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: fbc008cf390d909b823763064b63afefe9f02d8afdb13eb3f485b871afee956b + sha256: e47f5c2776de018fa19bc9f6f723df136bc75cdb164d64b65305babd715c8e41 url: "https://pub.dev" source: hosted - version: "2.19.0" + version: "2.21.0" fixnum: dependency: transitive description: @@ -383,8 +378,8 @@ packages: dependency: "direct dev" description: path: "." - ref: a70df0728d9d7d8fd528553ff7d88be01a789a38 - resolved-ref: a70df0728d9d7d8fd528553ff7d88be01a789a38 + ref: b458f9cdffa9f06ba0f41dcb5afc7da8d0ac8dce + resolved-ref: b458f9cdffa9f06ba0f41dcb5afc7da8d0ac8dce url: "https://github.com/Merrit/flutter_app_builder.git" source: git version: "1.0.0" @@ -445,10 +440,10 @@ packages: dependency: transitive description: name: flutter_markdown - sha256: e37f4c69a07b07bb92622ef6b131a53c9aae48f64b176340af9e8e5238718487 + sha256: e7bbc718adc9476aa14cfddc1ef048d2e21e4e8f18311aaac723266db9f9e7b5 url: "https://pub.dev" source: hosted - version: "0.7.5" + version: "0.7.6+2" flutter_signin_button: dependency: "direct main" description: @@ -495,10 +490,10 @@ packages: dependency: "direct dev" description: name: freezed - sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e" + sha256: "59a584c24b3acdc5250bb856d0d3e9c0b798ed14a4af1ddb7dc1c7b41df91c9c" url: "https://pub.dev" source: hosted - version: "2.5.7" + version: "2.5.8" freezed_annotation: dependency: "direct main" description: @@ -527,10 +522,10 @@ packages: dependency: transitive description: name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" google_fonts: dependency: "direct main" description: @@ -559,18 +554,18 @@ packages: dependency: transitive description: name: google_sign_in_android - sha256: "3b96f9b6cf61915f73cbe1218a192623e296a9b8b31965702503649477761e36" + sha256: "7af72e5502c313865c729223b60e8ae7bce0a1011b250c24edcf30d3d7032748" url: "https://pub.dev" source: hosted - version: "6.1.34" + version: "6.1.35" google_sign_in_ios: dependency: transitive description: name: google_sign_in_ios - sha256: "83f015169102df1ab2905cf8abd8934e28f87db9ace7a5fa676998842fed228a" + sha256: "8468465516a6fdc283ffbbb06ec03a860ee34e9ff84b0454074978705b42379b" url: "https://pub.dev" source: hosted - version: "5.7.8" + version: "5.8.0" google_sign_in_platform_interface: dependency: transitive description: @@ -648,10 +643,10 @@ packages: dependency: "direct main" description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.3.0" http_multi_server: dependency: transitive description: @@ -672,10 +667,10 @@ packages: dependency: transitive description: name: image - sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" + sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "4.5.3" intl: dependency: "direct main" description: @@ -712,10 +707,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + sha256: "81f04dee10969f89f604e1249382d46b97a1ccad53872875369622b5bfc9e58a" url: "https://pub.dev" source: hosted - version: "6.9.0" + version: "6.9.4" launch_at_startup: dependency: "direct main" description: @@ -736,18 +731,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -788,30 +783,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - macros: - dependency: transitive - description: - name: macros - sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" - url: "https://pub.dev" - source: hosted - version: "0.1.3-main.0" markdown: dependency: transitive description: name: markdown - sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 + sha256: "935e23e1ff3bc02d390bad4d4be001208ee92cc217cb5b5a6c19bc14aaa318c1" url: "https://pub.dev" source: hosted - version: "7.2.2" + version: "7.3.0" matcher: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -832,10 +819,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mime: dependency: transitive description: @@ -896,26 +883,26 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "70c421fe9d9cc1a9a7f3b05ae56befd469fe4f8daa3b484823141a55442d858d" + sha256: "67eae327b1b0faf761964a1d2e5d323c797f3799db0e85aa232db8d9e922bc35" url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "8.2.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b + sha256: "205ec83335c2ab9107bbba3f8997f9356d72ca3c715d2f038fc773d0366b4c76" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.1.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_provider: dependency: "direct main" description: @@ -968,10 +955,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.1.0" platform: dependency: transitive description: @@ -1080,18 +1067,18 @@ packages: dependency: transitive description: name: shared_preferences - sha256: a752ce92ea7540fc35a0d19722816e04d0e72828a4200e83a98cf1a1eb524c9a + sha256: "846849e3e9b68f3ef4b60c60cf4b3e02e9321bc7f4d8c4692cf87ffa82fc8a3a" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.5.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d" + sha256: a768fc8ede5f0c8e6150476e14f38e2417c0864ca36bb4582be8e21925a03c22 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.6" shared_preferences_foundation: dependency: transitive description: @@ -1120,10 +1107,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" shared_preferences_windows: dependency: transitive description: @@ -1160,10 +1147,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" shortid: dependency: transitive description: @@ -1181,10 +1168,10 @@ packages: dependency: transitive description: name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "2.0.0" source_helper: dependency: transitive description: @@ -1213,10 +1200,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -1229,18 +1216,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" stream_transform: dependency: transitive description: @@ -1253,10 +1240,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" system_theme: dependency: "direct main" description: @@ -1277,34 +1264,34 @@ packages: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test: dependency: transitive description: name: test - sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.25.8" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.8" time: dependency: transitive description: @@ -1397,18 +1384,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" uuid: dependency: "direct main" description: @@ -1429,10 +1416,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" watcher: dependency: transitive description: @@ -1461,10 +1448,10 @@ packages: dependency: transitive description: name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" webkit_inspection_protocol: dependency: transitive description: @@ -1477,10 +1464,10 @@ packages: dependency: transitive description: name: win32 - sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29" + sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.11.0" win32_registry: dependency: transitive description: @@ -1556,5 +1543,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.7.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4c3f04dd..59700aeb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,7 +76,7 @@ dev_dependencies: flutter_app_builder: git: url: https://github.com/Merrit/flutter_app_builder.git - ref: a70df0728d9d7d8fd528553ff7d88be01a789a38 + ref: fe5262c6ea43b5d2fdb15fc20d84f91e63e8beff flutter_launcher_icons: ^0.13.1 flutter_lints: ^4.0.0 flutter_test: diff --git a/website/pubspec.lock b/website/pubspec.lock index f87d7282..3d26823d 100644 --- a/website/pubspec.lock +++ b/website/pubspec.lock @@ -5,50 +5,50 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" flutter: dependency: "direct main" description: flutter @@ -71,18 +71,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -103,10 +103,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -119,18 +119,18 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" sky_engine: dependency: transitive description: flutter @@ -140,50 +140,50 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" stack_trace: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" vector_math: dependency: transitive description: @@ -196,10 +196,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" sdks: - dart: ">=3.4.0 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" From 075eb84d86391388aa2b6e957f8a4d639362ba86 Mon Sep 17 00:00:00 2001 From: Kristen McWilliam <9575627+Merrit@users.noreply.github.com> Date: Tue, 25 Feb 2025 11:58:00 -0500 Subject: [PATCH 3/4] chore: regenerate Android project files Resolves issues with outdated gradle files and settings and etc. --- .metadata | 12 +- android/.gitignore | 3 +- android/app/build.gradle | 115 ------------- android/app/build.gradle.kts | 91 +++++++++++ android/app/src/main/AndroidManifest.xml | 23 ++- .../HomeWidgetExampleProvider.kt | 151 ------------------ .../example/adventure_list}/MainActivity.kt | 3 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2767 -> 2775 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1821 -> 1821 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3690 -> 3689 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 5464 -> 5449 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 7124 -> 7090 bytes android/build.gradle | 47 ------ android/build.gradle.kts | 21 +++ android/gradle.properties | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 25 --- android/settings.gradle.kts | 27 ++++ pubspec.lock | 17 +- pubspec.yaml | 11 +- web/favicon.png | Bin 581 -> 587 bytes web/icons/Icon-192.png | Bin 7124 -> 7090 bytes web/icons/Icon-512.png | Bin 16002 -> 15780 bytes web/icons/Icon-maskable-192.png | Bin 7124 -> 7090 bytes web/icons/Icon-maskable-512.png | Bin 16002 -> 15780 bytes windows/runner/resources/app_icon.ico | Bin 1843 -> 1843 bytes 26 files changed, 186 insertions(+), 367 deletions(-) delete mode 100644 android/app/build.gradle create mode 100644 android/app/build.gradle.kts delete mode 100644 android/app/src/main/kotlin/codes/merritt/adventurelist/HomeWidgetExampleProvider.kt rename android/app/src/main/kotlin/{codes/merritt/adventurelist => com/example/adventure_list}/MainActivity.kt (68%) delete mode 100644 android/build.gradle create mode 100644 android/build.gradle.kts delete mode 100644 android/settings.gradle create mode 100644 android/settings.gradle.kts diff --git a/.metadata b/.metadata index e0e4624e..6ac59d7f 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819" + revision: "35c388afb57ef061d06a39b537336c87e0e3d1b1" channel: "stable" project_type: app @@ -13,11 +13,11 @@ project_type: app migration: platforms: - platform: root - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - - platform: linux - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 + base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 + - platform: android + create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 + base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 # User provided section diff --git a/android/.gitignore b/android/.gitignore index 6f568019..be3943c9 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 71143650..00000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,115 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -def isRunningOnCI() { - return System.getenv('CI') != null || - System.getenv('GITHUB_ACTIONS') != null || - System.getenv('GITLAB_CI') != null -} - -def keystoreProperties = new Properties() -def keystorePropertiesFile = rootProject.file('key.properties') -if (keystorePropertiesFile.exists()) { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} else if (isRunningOnCI()) { - keystoreProperties.setProperty('storePassword', System.getenv('KEY_STORE_PASSWORD')) - keystoreProperties.setProperty('keyPassword', System.getenv('KEY_PASSWORD')) - keystoreProperties.setProperty('keyAlias', System.getenv('ALIAS')) - keystoreProperties.setProperty('storeFile', System.getenv('KEY_PATH')) -} - -android { - namespace "codes.merritt.adventurelist" - compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - - // flutter_local_notifications plugin requires desugaring - coreLibraryDesugaringEnabled true - } - - kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - applicationId "codes.merritt.adventurelist" - // 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. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null - storePassword keystoreProperties['storePassword'] - } - } - - buildTypes { - release { - signingConfig signingConfigs.release - - ndk { - debugSymbolLevel 'FULL' - } - } - } - - buildFeatures { - viewBinding true - } -} - -flutter { - source '../..' -} - -dependencies { - // flutter_local_notifications plugin requires desugaring - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2' - - // Desugaring causes crashes on Android 12+, adding these `window` - // dependencies fixes the issue until it is resolved in Flutter. - // - // See: https://github.com/flutter/flutter/issues/110658 - implementation 'androidx.window:window:1.0.0' - implementation 'androidx.window:window-java:1.0.0' - - // Workaround for bug with workmanager - // See: https://github.com/fluttercommunity/flutter_workmanager/issues/551#issuecomment-2180480982 - implementation("androidx.work:work-runtime-ktx:2.8.1") -} diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 00000000..6e16a965 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,91 @@ +import java.util.Properties +import java.io.FileInputStream + +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +fun isRunningOnCI(): Boolean { + return System.getenv("CI") != null || + System.getenv("GITHUB_ACTIONS") != null || + System.getenv("GITLAB_CI") != null +} + +val keystoreProperties = Properties() +val keystorePropertiesFile = rootProject.file("key.properties") +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} else if (isRunningOnCI()) { + // If running on CI, the keystore properties must be set as environment variables. + keystoreProperties["keyAlias"] = System.getenv("ALIAS") + keystoreProperties["storePassword"] = System.getenv("KEY_STORE_PASSWORD") + keystoreProperties["storeFile"] = System.getenv("KEY_PATH") + keystoreProperties["keyPassword"] = System.getenv("KEY_PASSWORD") +} + +android { + namespace = "codes.merritt.adventurelist" + compileSdk = flutter.compileSdkVersion + // ndkVersion = flutter.ndkVersion + // ndkVersion = "27.0.12077973" + ndkVersion = "25.1.8937393" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + + isCoreLibraryDesugaringEnabled = true + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "codes.merritt.adventurelist" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + signingConfigs { + create("release") { + if (keystorePropertiesFile.exists() || isRunningOnCI()) { + storeFile = file(keystoreProperties["storeFile"]) + storePassword = keystoreProperties["storePassword"] as String + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + } else { + throw GradleException("key.properties not found") + } + } + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + // signingConfig = signingConfigs.getByName("debug") + signingConfig = signingConfigs.getByName("release") + } + + debug { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.2") +} + +flutter { + source = "../.." +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ebcc7edd..88194efb 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ android:name=".MainActivity" android:exported="true" android:launchMode="singleTop" + android:taskAffinity="" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" @@ -18,12 +19,12 @@ while the Flutter UI initializes. After that, this theme continues to determine the Window background behind the Flutter UI. --> + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" + /> - - + + @@ -78,4 +79,16 @@ + + + + + + + + diff --git a/android/app/src/main/kotlin/codes/merritt/adventurelist/HomeWidgetExampleProvider.kt b/android/app/src/main/kotlin/codes/merritt/adventurelist/HomeWidgetExampleProvider.kt deleted file mode 100644 index 8d31e77e..00000000 --- a/android/app/src/main/kotlin/codes/merritt/adventurelist/HomeWidgetExampleProvider.kt +++ /dev/null @@ -1,151 +0,0 @@ -package codes.merritt.adventurelist - -import android.appwidget.AppWidgetManager -import android.content.Context -import android.content.SharedPreferences -import android.net.Uri -import android.widget.RemoteViews -import es.antonborri.home_widget.HomeWidgetLaunchIntent -import es.antonborri.home_widget.HomeWidgetProvider -import org.json.JSONArray -import org.json.JSONObject - - -class HomeWidgetExampleProvider : HomeWidgetProvider() { - - override fun onUpdate( - context: Context, - appWidgetManager: AppWidgetManager, - appWidgetIds: IntArray, - widgetData: SharedPreferences, - ) { - val views = RemoteViews(context.packageName, R.layout.example_layout) - - for (appWidgetId in appWidgetIds) { - - // Prepare data -------------------------------------------------------------------- - - val selectedListRawJson: String? = widgetData.getString( - "selectedList", null, - ) - - val selectedListData: JSONObject = stringToJsonObject(selectedListRawJson) - - val listTitle: String = if (selectedListData.isNull("title")) { - "Select List" - } else { - selectedListData.getString("title") - } - - val tasksJsonArray: JSONArray = if (selectedListData.isNull("items")) { - JSONArray() - } else { - selectedListData.getJSONArray("items") - } - - val tasksList = mutableListOf>() - for (i in 0 until tasksJsonArray.length()) { - if (tasksJsonArray.length() == 0) break - - val taskJsonObject = tasksJsonArray[i] as JSONObject - tasksList.add( - mapOf( - "title" to taskJsonObject.getString("title"), - "completed" to taskJsonObject.getBoolean("completed"), - ) - ) - } - - var tasksListString = "" - for (i in 0 until tasksList.size) { - val task: Map = tasksList[i] - tasksListString += "\n• ${task["title"]}" - } - - // List of Task objects - // - // Would be good to migrate to using this with a ListView, but - // it's a bit of a pain to get working with RemoteViews. - // - // Aborted attempts: 3 - val tasks = mutableListOf() - for (i in 0 until tasksJsonArray.length()) { - if (tasksJsonArray.length() == 0) break - - val taskJsonObject = tasksJsonArray[i] as JSONObject - tasks.add(Task(taskJsonObject)) - } - - - // Prepare view. ------------------------------------------------------------------- - - // Tapping AppWidget opens app, asking to open that list. - val pendingIntent = HomeWidgetLaunchIntent.getActivity( - context, - MainActivity::class.java, - Uri.parse("launchWidgetList"), - ) - views.setOnClickPendingIntent(R.id.widget_container, pendingIntent) - - // Tapping list name opens app, asking to open that list. - // TODO: If title == "Select List", launch list selection instead. - views.setTextViewText( - R.id.widget_title, - listTitle, - ) - val intentWithListName = HomeWidgetLaunchIntent.getActivity( - context, - MainActivity::class.java, - Uri.parse("launchWidgetList"), - ) - views.setOnClickPendingIntent(R.id.widget_title, intentWithListName) - - // Tapping configure button launches widget config in main app. - // Disabled for now because it stops working after the first use, - // issue in home widget repo. - // val intentWithConfig = HomeWidgetLaunchIntent.getActivity( - // context, - // MainActivity::class.java, - // Uri.parse("launchWidgetConfig"), - // ); - // views.setOnClickPendingIntent(R.id.widget_config_button, intentWithConfig); - - // Set the tasks list text. - // Currently just a TextView with newlines, because ListView et al. - // are annoying. - views.setTextViewText(R.id.tasks_list, tasksListString) - } - - // Update all widgets. - appWidgetManager.updateAppWidget(appWidgetIds, views) - } - - private val defaultJsonObject: JSONObject = JSONObject() - .put("id", null) - .put("items", null) - .put("title", null) - - /// Parse the TaskList json into a JSONObject. - /// - /// If the json is null, return an object with default values. - private fun stringToJsonObject(jsonString: String?): JSONObject { - if (jsonString == null) return defaultJsonObject - - return JSONObject(jsonString) - } - } - -class Task { - var title: String = "" - var completed: Boolean = false - - constructor(title: String, completed: Boolean) { - this.title = title - this.completed = completed - } - - constructor(json: JSONObject) { - title = json.getString("title") - completed = json.getBoolean("completed") - } -} diff --git a/android/app/src/main/kotlin/codes/merritt/adventurelist/MainActivity.kt b/android/app/src/main/kotlin/com/example/adventure_list/MainActivity.kt similarity index 68% rename from android/app/src/main/kotlin/codes/merritt/adventurelist/MainActivity.kt rename to android/app/src/main/kotlin/com/example/adventure_list/MainActivity.kt index 9f9e2bf5..253feac6 100644 --- a/android/app/src/main/kotlin/codes/merritt/adventurelist/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/adventure_list/MainActivity.kt @@ -2,5 +2,4 @@ package codes.merritt.adventurelist import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index 8fe74c188a01f4cde24ab2c4735a7ffed964f44f..c42f19c4f70110b953e4afe32dc5eb2b310cc7b2 100644 GIT binary patch delta 2730 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 Ef|HD4b^rhX delta 1762 zcmV<81|9jG4xJ8=Pk#aJS!qyHR}?-;UiJ_Iin3}&RtX|dMW8H^u&)*D&{a^Wqqc*# zE~BkhTb;H#)9JKh7h9Prs8vU6wL);gwj$!lIMzDKZdI6~AWK5Rnx*$WCz*sKgpj&=LDu2&k0O5NPi=Mx%dWaV%C?^_^zJz zim6tPD516LfU@?-k96bME4UG2ip!Kd_YkGpjxnh$0N=D7jLwF-(bg+xaT6&7cn*B0 zf)I5GKpPq1;clNt(xp})j{udTVR-X~>>gLGRs)qvg~yChhSo;b5~A2UpiCx(M;-0p zHEWK6ofHBZjemIp9m;><;$S7b!7Bs`W#T*;3?}e+e84a|X!Pu)%cxqT1{M0yDRg+E z>Vgk@HbFEihDctiR3fq(qdru0kA@kh#$vI+-NQ@U)G;TWz%lt@XdZ2VLjK#Zvu7KG zGZ#Uj!)oH5L~;h&9^N^4g`7nYq;F z_@onHQ`xY?X%GB9cmdM5S(A>VRE~nQuNR!0ryJPqLcq_@H?q08rPkDX#(|TtC3zhE z{W5sc-32T*$G~ng0WO!z&&kd>U0q$XsrK6SpKOh14g!HQFqtf1+nYdi^y2kQCc`B@ zKK9G{`hP}ApH$j8o_~+3n^;b{ynL(1!S@Y^!!@$oL_i>LbO{Sxuz?7K(FDoK;(f=C zpIol*gUcu`q!^M>Jb7G3g^c-xeBvjoxn-wKnnt6Io5O?&a5!w{z`)?JzAY&!;WIiN z6KLChem-vo%?m7j*w%hmYdel)v}v@FkkMT|TYn*pxe(Uyi;3ha%72Bnwg+a%6beHi zHZDQe#>tL7{3b*IpXt23mk*VclqTb|hQrI#BN!!IFvgW47RP^GcIaq|){w=`MYFyU z-tAfiVor)Kc^sKpxf2(o1iQ*-D++1fSMJ#%81=^@3xJ@LA+f4xqb*wL+ z&wmdTCy2Id+Z-wfb~=9w=LRYukDG5*`JfLfT1t31ffsXD5tu#8E7U*0cO`xu8~f6} z#-?UTPfu?LYAVh32?+38so&;P9bp;o)k!6;1-^l2zcAOxZjpdU6#I#GrWp*nb4Et$ zw`FBN=SU>y))y5OCZkPeEDa=7qvkL!0e_#l-cep&o(4q;dLr2i7R=ARdGprE%hgvm zi{fMUTQgvvsuya8E<-vudouYN!7KrMttKSI?*$XHnXn}OtLCPbs+yYGZvy;%bKTrr zmzaz5R7TZEMlnK0w<8&y#|Snpqi7_IW;!L6N(uck8Soti26nRqLPCO<&Y0m6ZGY+> zo6T}Zc&Jy6 z;+ns9-FqhUkx8Y{)%gf8y5TS;381yk6vfBxHAfCdaB$Gt+qdr=zW2}l>wn$4{Y6-4 z$QDz6X`F1>(X$!Wb`?SdD+-DoH-Dpg|EZFsre%XxmMsCFd7L0BT`Uubii}vt<8h6* zydKaDVp&;fW#4^&Ftn=bk6k`<=j0#>^&jgepb232w0%%HP)^7wRZn>t48~Y@v%r%d zyL?O%KqoFQB4Xjzi3D|UaPW(di`iOv?&9`}it{V-^Yf~a+4yWgGWrVdwSNgGYYmJD zL`N;&fM#a8DQ8m%4-eglmQY!9OY7A;cj|u#3JP3p-xSA(0Rbl`fophp*hXstpv}w5 z%t$?Ou%uLU{=%g#-rjRE(NlD{Z<+uKg&aB`cj&(t6EGlvlw~(6&iK{_cXgc^7a6&z zsHW!Hfj=)_*_4`+c-Y2#jeqb|c2!1p9RW{NoCW&(7fg15*qG?O4Gm3_8#itq2^I#u zgXL8i$96?e-@hA~4$7 z*>yzLFRRzuNFy*bG$gxTcVoL{PuuX!$f!9yCot9c55ry~oSw4((f|Me07*qoM6N<$ Eg7ykZMgRZ+ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index bef7f577c7500b930c47d763e70635701f2aad78..c2c080aefaaaa6f41524ce3a7d12cb85067f6178 100644 GIT binary patch delta 3651 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 SIQI{g0#p<=6bj|cg8m28dU9w0 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 661117fbb1b8608b553b16f9b4f65c533671e42e..59a673e024f791fca5ca0e3d4d42e8bc0ea4da71 100644 GIT binary patch literal 7090 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 diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 3537d51b..00000000 --- a/android/build.gradle +++ /dev/null @@ -1,47 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' - -// subprojects { -// project.buildDir = "${rootProject.buildDir}/${project.name}" -// } -// subprojects { -// project.evaluationDependsOn(':app') -// } -// Workaround for plugins with compileSdk < 31 -// https://github.com/flutter/flutter/issues/153281 -// Can be removed once all plugins are updated to compileSdk 31+ -subprojects { - afterEvaluate { project -> - if (project.extensions.findByName("android") != null) { - Integer pluginCompileSdk = project.android.compileSdk - if (pluginCompileSdk != null && pluginCompileSdk < 31) { - project.logger.error( - "Warning: Overriding compileSdk version in Flutter plugin: " - + project.name - + " from " - + pluginCompileSdk - + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." - + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " - + project.name - + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." - ) - project.android { - compileSdk 31 - } - } - } - } - - project.buildDir = "${rootProject.buildDir}/${project.name}" - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 00000000..89176ef4 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,21 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties index b9a9a246..f018a618 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,6 +1,3 @@ -org.gradle.jvmargs=-Xmx1536M +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true -android.defaults.buildfeatures.buildconfig=true -android.nonTransitiveRClass=false -android.nonFinalResIds=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 7bb2df6b..afa1e8eb 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index fbe3d941..00000000 --- a/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -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 - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.2.1' apply false - id "org.jetbrains.kotlin.android" version "1.9.0" apply false -} - -include ":app" diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 00000000..3ce13133 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,27 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + // id("com.android.application") version "8.7.0" apply false + // id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.android.application") version "8.3.2" apply false + id("org.jetbrains.kotlin.android") version "2.0.20" apply false +} + +include(":app") diff --git a/pubspec.lock b/pubspec.lock index a6f69502..d981b7c9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -378,8 +378,8 @@ packages: dependency: "direct dev" description: path: "." - ref: b458f9cdffa9f06ba0f41dcb5afc7da8d0ac8dce - resolved-ref: b458f9cdffa9f06ba0f41dcb5afc7da8d0ac8dce + ref: fe5262c6ea43b5d2fdb15fc20d84f91e63e8beff + resolved-ref: fe5262c6ea43b5d2fdb15fc20d84f91e63e8beff url: "https://github.com/Merrit/flutter_app_builder.git" source: git version: "1.0.0" @@ -395,10 +395,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c url: "https://pub.dev" source: hosted - version: "0.13.1" + version: "0.14.3" flutter_lints: dependency: "direct dev" description: @@ -1504,10 +1504,11 @@ packages: workmanager: dependency: "direct main" description: - name: workmanager - sha256: ed13530cccd28c5c9959ad42d657cd0666274ca74c56dea0ca183ddd527d3a00 - url: "https://pub.dev" - source: hosted + path: workmanager + ref: main + resolved-ref: "4ce065135dc1b91fee918f81596b42a56850391d" + url: "https://github.com/fluttercommunity/flutter_workmanager.git" + source: git version: "0.5.2" xdg_desktop_portal: dependency: "direct main" diff --git a/pubspec.yaml b/pubspec.yaml index 59700aeb..5e2a3a04 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -64,7 +64,14 @@ dependencies: path: plugins/window_size ref: 6c66ad23ee79749f30a8eece542cf54eaf157ed8 window_to_front: ^0.0.3 - workmanager: ^0.5.0 + # workmanager: ^0.5.0 + # Workaround under bug is resolved: + # https://github.com/fluttercommunity/flutter_workmanager/issues/588 + workmanager: + git: + url: https://github.com/fluttercommunity/flutter_workmanager.git + path: workmanager + ref: main xdg_desktop_portal: git: url: https://github.com/Merrit/xdg_desktop_portal.dart.git @@ -77,7 +84,7 @@ dev_dependencies: git: url: https://github.com/Merrit/flutter_app_builder.git ref: fe5262c6ea43b5d2fdb15fc20d84f91e63e8beff - flutter_launcher_icons: ^0.13.1 + flutter_launcher_icons: ^0.14.3 flutter_lints: ^4.0.0 flutter_test: sdk: flutter diff --git a/web/favicon.png b/web/favicon.png index 85a492c67fbd8bb3698fbc345dcf3e338e7523b8..2fec2892d8112fd10794e7a616c38ae181694bad 100644 GIT binary patch delta 365 zcmV-z0h0d31j_`FNeAsoL_t(|oRLs;f564SATBO}>;g;!Ku-Ms|38D9n{(frw{Ne5 z#NPaS!*J#MMFyiUrVJlHya%h3S5Rc&=H@{)fSH+@H7Lk$!Lef}dz6$Fd=wSsJ^ue^ zeDd_~BL+K8N3aIGE-*DU%Fs|(i+c9#`Pr8*UY(JU5I5!F;Z+o7F=V**`!a(Tf2%Io zbxcf5VD+4wTnGa=IN14YtSxInY+D*o)I0oK-*Wt^Oxq98UaD=V*|fnM6_)93n~ogK@(x&0wd6k}iz6GM1` znFZo_7Ct^cDKk^!Lgc_yQd0E3MtSr0+E1T8KNJ=gmIsNweE9+#jUXT(APB}_13rKL z{H(iY0ylb8{`>cz!O+Mk3}yf*0FeXn`?s$U13&@u=g(hk$${aM0s=D-Tk*Qp00000 LNkvXXu0mjfrXQ{9 delta 359 zcmV-t0hs>F1jPi9NeAaiL_t(|0g+I2e*i?{;u6R%z%&5l#Q*>QGq|}q_q}=h_Bu%H z&A&GcSH53lF#2N3@bSZYusV4KMFwte9#jLEnVDIGg8UX7J9e^1Nm;>1QBmIG|9{3O zPyaq*u;X+DYryLQQ&Xc14Ry7sXV0FWefi?m83_q-Q=mT;g;@+4uKm8upv9^Se|8-c z6BAfHCnp!e01ggzJ{xPxS`gdT#;Re{=4~;70lsU1T-I&hHZdr%sxZ8M{Sp|69~o3t z)xjEn{rrJ2z}nifjFXd76vSp_W#u(A&`Udg`dq)WvtyYzw?D**Vn8H@@B%Xn#PKYA ze0)-7rpATHfvKdV=za6%?X{miKz)8FEG#S!5_|db1vnZ(KtMncjKKzc{`~n_ch3ZF z^r-yz?>~c~kx>}T08juT2jcf{Um*s70_M-3zv%kG;FAafGY~W5f(8Hp002ovPDHLk FV1f!0s5t-t diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png index 661117fbb1b8608b553b16f9b4f65c533671e42e..59a673e024f791fca5ca0e3d4d42e8bc0ea4da71 100644 GIT binary patch literal 7090 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 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png index 20304c9c59c43d237a59d085ce4cd5b65bd071ec..46b22f9eca793e1739de8c8d71b87c83567caf51 100644 GIT binary patch literal 15780 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 WadKA8XBlt-dZ?leE4^>|`u_q$q(A%s literal 16002 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 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png index 661117fbb1b8608b553b16f9b4f65c533671e42e..59a673e024f791fca5ca0e3d4d42e8bc0ea4da71 100644 GIT binary patch literal 7090 zcmb_>Ra8}f(C9vNmvlErx;rJ64(W~qa_DXj0)m3lB_LhW-6h>EEz+IR`JMlLxDVgs zUH4({-&!-XXU(4e&3x8SQ^dv~#{d8T`>m3k7X0k`??FR>zqM8zP~iuehrGUrwll=T z+rrHT@b>oR{NMz2x3X}t;dFMhO+OJQ2LKA4w{kK%J{iZEn8rGD*8}ruWLqLVP!vKu zZW``vgkfc5LPEk?Iqq7gCGFban>E$iWhntRn)&p`(c$z;r?eR8pXnNY)lmYvwe>lq zYG^?u23DoTrvZTPr4^OOdZ(*xT!b&<>M3A{!RdO@7WCjfF8Xj(pA2SW!^8`#jBFAF zWSWqWVQ1uoz%Qr@Moda}Plp?-wWT7 zDe7@hE(iBhuvNYs7W5TTha#AhE=Io1W6MBrYibCk(QsL{IivsJu>bBGPLo^p4wT?CF$^Lvn{epsq7!dGorjZgr?&6U#rsy&PbMIq|VZaPl zngn43!s*lK|I1c5@mhP_?3&MiDVF zS!ro*;j4YC^CmFROINI=Bkia0A=c+t_)K;Zw6*qir}1s zyIcezw6)cuX zL%@K#x-%XIM^--=fLOc-9_IWlf_qG#=0~8(U2a*OA^NnC8Kiy}ZxZ;Q1Q%E6N^5H~ zpoPCV!&8=K{Z}N0bP5E7G)Wj82zBcnOq|x4e7GYsEeXQcy(^Aelyt%_gO!&(`)1~9;?d`_FH_h)GuEWw> z#UdS#D)~SdU24Ls9t3}iO$s|}M#6YW4@G}8oPw_O6j*{=m;b$q*}XrSp}KDuP$8gt zg*h}-68)oxI2$+uc<=P)+Aug8XB5jyp4g0?Il|MZYo(Q*o;g)dufak+dJ2_~d)N91 z7+pBRlV{tRL+XJ-bbO;ne`G&cQfEm;}CY0&Vy zc^OVL;JRTgYPb@FL*D6mqpkk%Qj!i(jzS4T$dTj=tA|UMisQZKK3BxuvuR=4Dq+2m zpbrp`uHjSf9~_`O-6Mw#4h?O%Y64z3_}x|n#tn@78cLAJaehHTY56`?G&HORALIYr zeRgh+yl($;k^Ug3pa408y$v%Puv1cs{L013D)QdUY@+@(+9K*)E|1+|q%UKMrUoF$ z$jeJG%@Vz~u`;l|*k*ON=IV%xKuaJJqA=rd=|3K*G92a9+sFuPumO9SIFC@2SC3|&s6;YdEDZV#s0bEi!L9qq>EXOO#A_koqSC{nt zSuxJdg!+s6&!3Ka6+D4Cj7dBGW0?zT%d>yDRrbb&(j>WgdBh&i?St0SEP1)PQbQwb z!lUIjkDpY0;t?YQ26>C6X{$u}__Ki%W>$NjDwQ3vJm^E%`G=8-OtE0Ok}^fTK^$6d z1fvjyJ-LIXt!*H&Tj4sHSakzVGjVhmaJtr9jb(vB*yY$?7)?%3>@Tiz^E5bkR$v>< zzT$RuAP_*hC!Y;m;+M^zKw+-a2<=gQi0Im+%5%4xg&zqTOYqH^A&|ga(1`_vvJ208 zI=D@rY~;q%C4Kp+fTF^OzH$AyI=GdBVSV=H2IKNY71oGA$_Kg3o{aq~Wh4&BBdeyx zH=pHkET=3F7aEldW!GJi_ck+LFQkkg)9D5A-nFvD@|hDxVxjqVbiyih5KU) z(+diIX_8ckQcioPq4762KcA=d;vXib5p-g)FyU-|$tHWMzUxh;eC(0vw+3f*Cv|nb zXGbF`b8#MBb(Jwc;A7~R@1-S*DF*EuYGPJ=Wj6=z#F0t3A@A;xWAypZnlBQD*7Bid z`i9!A@649KOTPIsW*+_ym|V!Qv3QEf637jt%B%_FsmY!%zb86xFJcR<97@&#Y%g9J z<`9`ynj&GgnRXniNmo4fGk3oJFX^vn+CMn9~2$=`N#e)S0D>x{!2%xo-)zzXr_ca3=|wJIwNZKm~3to zFp_?V{+cFuy`6T~jUhcubUTWar!m?2Q$7V9i*-1Ur5ZT6N z{?Z$03S^<}=0W&^U{;dVx4BdgxYgAD)*uupdkX%TnDIfI#Bs6ZNkF-uAgYh^GkUek z2_{}aL7~I__Hbn$E72ESWt20LtMDXA=kARIk`n?MJ$6@rN~-YOjq$ArHPAVuUTjfH zqa;<(u}JlCMK42 z9@p0@(IF)g@CZ3B%VS~W_jwx-aP+KQG@eoKf#t^HW7N{!MYWN>JVO?uq4e;V)2$|e ze7OMF*tCjJX5297?;s&0ydBsV(e8Y4xH0W?CD*rDG|xzhc|l+1pRI%AK5?5KBFJnd>2-VPRcH#>6Z_hpDOb^mdy+pI3{iWr!xM znMlPcZGF&YQ2i9IIM{=-V9oeL{dv5prTI{*;a3F`xBcv(0igz>>Jg_>R_b-itD^CI zkNJ|@>1`(TbB0>S`m1gg$~+zVm}&}8WS^y`Pt&71gepHTerMEo<8CZn%2;`Rdorho z3GtNdtWD?O9}Y~9cmdHUqG$2XHY9RIlnc(!m>ab|1Z6euqE9av@5bm z(gm%~L2Zy%+bI_6q4UZyV?QKtz{AFRnEM4ToUqirbwPBs8~_2LlGPA6@;exkn4C<0 ztZnF5deWMQJfl6pM6}d1@y!LdC_$PNw^NZhL9KQXMwlNFfgRLTS9h7^VFFK@LFD3g zT@NxcArp&7ZIL~{N&sd^w2=(!%7WWyZ&*`f6c-UqThJ3kz$6P1)h%T-?Vmm|pl@nA zsW#*&j21p-`#0vtKVK8wIUV6w((l}+HL4eCi#Tw1WJAm#kR8l)q2Q*}ijne*i~HQ% z_)a;wFvqI9JCS@jZKT74KL{LlGN^_=L;kPlnHME8(4^UkZ{CuL-CGs@8Na?tkr3ly z2wWD5aO0Y~5=neGCT{it_=2WI(z&DAYk#F#-5L!^2dnirX!gUQx$hN$ zhW+xX7TeF1E`lr~1^F(a#v;UxYtn4Qb}%{l?7f3`a@Ti2fvLZ;=1Q5153i`G$gxG& zFj>L-p;8CT-yG4&P%-KHWm|0XzNP-m=#b0%Ik@&1<+0@ALtyeAPetdzgZ}2VuqY!D zy>!Y_SR>c{?|dceZCs9&2<${9Mgxb8D4fr7@uHS;v%PI?AD#E^GekY_MQ`K#`&|tAgia%&W1ViSrq(AvovoqQ1p-CeDi<6v<#q=YL*|5CE4UG{RJW8 zdDZ>VYQ~y6Iv3@+>7$NPCT*972Tl2}x4g%bO+dNQK10ygkM$5TyT4BOWyQY8kf^M% zV6f1_=<(2Z2u0v>jitZ(?d>r9W(wl}zQ$)o(785IS=sk2RYeCoI(nTK`Vk?^@?N}9 znzvDPBCX{(OUzrMOy{RZ|NYi33E|D*t^|iTyBp2Wc~7!qKI^D|%~(|%Haj21_ zkcDUY`mZzrCv|gLw$e$#0`)9OJOWX)S^K$68x3#o>W)=%QX-hj4qJ3|8LcZh6=!|N`xwpB2}vx_ z`Dd}7VgTMRD0vBuFtn4>i+mWZaSz|^WIhG16!jy~ zU$Pr3udA@F5Mm?yDn5U9^)e_hpw0fIo+)ax4tG|)sjJtV9hX^OE_gHebl@^P<2hfkkSIw=V#AG_zE^Q`;#M|Y1=0u!VDZk#ZK@H)pg zdft(hPPjAN^uWdgE)B7yne8Rdj1%5OkjKsmJS8XOQYcV4h3Edf(+@J$b(>y5*a)n0 zG>;Igt2lAg-@D>f3qmoM0~QwzpdO<3!mq5B38|7YB#xiuX`ENjSxr(-JEhK@X=q*w z;_%mrLqO4KeMp#US9~}sqgM^l9`<>IEHE@ zn2VnN5t+beqQdj|@0Kl2I;Q!rTYj|~9-|Pb+r?giUd7`ZBaghAnxEUh!lRTUaHAe! zCNp@2)g|yUr-*ZP5kK0no$4^z*}m65HQ{wypjzg+H8_R)aCM~|H)M@-^N;RwK?l&( z)WmH1qwP%h%fti zJo90HJ27zz3^Rqz{pSqyzCKO9aIU18-`;%}+daQa7Yx1>G|9^I9T@*K5>a-R@HV9i zN@WQxBbI*iW+eg8X>uH`#smikcQ#J<7Z?j)1pcvTQ8Nn;+)Fwtd(A_jKGc5neZWlV zHm{~a!Hltzfi0{w-P3|X7rkp@B1Xq6XRLLzOT#K&q5MD%U_`uX{wLL*5ijmn6WV^` zqO@daw7yhtmR+!YgWV<|@E(tl5W$JKA2GBZVQ{G9X4`b*fr3GhK|51QTv8l>9|Q=lzPnomg>kQweUOg#v{esJwdo!>HS<%mR@9Nvci?D%6Rh91W#61u`Zs%~8kk1(q1f)p|h5MQC~v5)s^ zKf1@~`r+YW)}KG^ZSU{>wq13;B$4dFf}quE(7Oh!C?sy5vuqG=8vnpXttbJZfFzyM z77Y%SWKC$r$itx!vG~j5j8Px8X-qYgGMF}vhJ2Q_9ZOV9jFIU}Dcgtv-ASgn1yh7b zkUk3?kCWf}1=l(IHG>=o1gTq6LZ!}U8Tue;+6#gsB zJe~)Ls}-g0;q@PIIJy}@)({9g3PvS_%I6(pLg62wyK49~#wq8}{dW1(O9+zM)srs<|m<2G<57BA$t0J`TK@+=!#YE%`OTHsJM?24tUQBmKEK4#8jK6EU6E7jTN6tf|rY>%7zlKh`;2)fJ za@ko95F%O7sIm4jM7F~aqd5H_C;;6>!t*AtOb%+V5vhD4Q?z9*swA;W|* ztc$>(k&8>qQC5$K*#a{%>1b&eesU20->L1`D#-Wy4y4I9kMN`HiG>s!(#NXL?+W;r z{;aIzzvvrsP{X;vJ1fV!HHHb~8Bn1dXSWKap@RseA;Ic5?dz821vS%rB66|cD}9p>x|v(;%>Dpc2r7{B_# z(a2o_qUFS_Y(#jZ3o%e_A9)-3q#?3AO#n;V(C`z2c^b69hWSPw#2s~TFsDT-$d0hG zT3%`so~mGyNicXyDLrrZE|?IgHD+oh4Sv4EkW<9nTuL^@UF3AVJ`#Bv*QC-&Dx`#u z?PDQdcldp&Tn=@^VNGvjWI(#7W{T0W$xlP!pLAj!f*@=v(4_nzupK zhx3)P=?&QTsK|y_2h==aWp^n_t3de1xYz!hdc*ft!_{EmQ%QOG>gn+@k#dJ_sZM?@ z%4<#>%g;#R=1jfYCGei4-VmGheNX1~($c|G;kW(2<2CopLG>yxkLR7g78MOB zXD)x9SejiZzA?}QcGkDH^0O|jFT8yV?KvvJS)TuPu$KbLO=Lh-U42nf?ZhimF7&T! zyWq=?wEO#eRT56)+Z2(3Y(QVSKuaLd9W3POwv+GZ-D z?+T`ONFJ*~0xT`*QTc@$3+fsg{Orq%J;oKo-h}8f63$(^76yUY+3)ARS8D*2n)*I* qkLzXkn{>ZJ|5r$u{yzZzy)dbyQSe)b<@(8tEP+6loO@=@jYik{Y@@hX!d8hK50EXe6XVT0~lq0qIb>Yk+rt z-}~S9_j}hm_pEj9-e;Y??>YO~`#EtMYHx|~>F@ynAbO`Lr-kl&{%d$R=(pCQ6E3== z^^!O6(ss4=@_p}N1Ni#-^4hyNdRo1Av*C61faDyA(E$Lx&pSD39Y4^19)XFD&CSsA zOU!S;%SBr$5U7^FkocJ}rG|#akH@_xj?*=N?)UXFoF8VYI;wIUZ8x{71y8?hWn|mf zTV~*AW&d^XsBe;!!j4Ar_t`+R#1BcMe=uZ@w*GL-=PS78XZmycleMGUGh{pWGMK6C z#}5@OAZQ?N7XYBjQUFj30s$R3Silh-DbVBie>>0vD(aGrI=G7wFCw88U(}}C81)uQ zie~!j{r%%N57_sD8bnRrZ$x!xbwe{BDG+~ld_)yk%xi==PR!K*%|Ws1{2iy}vxi2| zXCl7j_axO`d?QOmA`PdE)oltk_QGHw15Y)VwvtQ*;Rh_IfIfl_n(LlObo6gAz*;Y zEvIp#`Z*0M;d3oj(yrub;%v!7h&`h977EZP2zi`j;%`HpYSve9v7UP~evzX~cbD`3 zt5_ov_}}++_Rw5ZAF0VuFZEe5p4W%7Au_xk2{$@^+ZPV2Z}3B;&8XFdzVhHfrE%ER z=*?tzB7$zA7zP|YlH44P9Xm1f;(}Np{$Y!+(Y z4s=9?k#!!)h}FaGVuIUaW%9!w3j^>Y!UI+W!2om)3IH)h)zy@OLa)H^G;$AbN|tYf zkOVN$!!q&LOA%2e<=r%^SUX4G+}hGo2!&c~ES4qD-i4#p3O_KQngn$(og7_U6u!Eo z7p6>v;VoY_;*bI>q~)`vb8WALh2f>8wo}BdMzefqBZjq`Qg&$q2%Mc~Dr1d|k9E=l zv8C=0#@?`_ogr5?SI-Mno5jC+BX~k}Q+GF+u(tL@CNYuj^ZwNn1GdLm3)omaA^}{9 z2qGtaX9Y;M+UN5r)nWZ-Hn;1veaInP!3tVn@|y5~^7S1}XRL@|Vi z`oFkkxq|PL`Y{A@Soovc+i9?|&fd<>DovdVe~d7T73+V@mVT|hj{yO?pw8n-H`P0y zW4-Ojny;t?Geihk^|4{H9L7+=$H;18rlTwQr(md=)LiefwE6pPGl8otEUc9k2K%eU zjTI8ljL#4;YERNsD-ed8hLIxj6f}?;TIKlV{ZacPFqynM6xfS(T#)fH416?plsRjK z+^?wKaf?9oN)q37U!J&J^6+&>xPCHbEE8#IZD$o23(0#V1^9fsE^XLJT%e3*ZC80F zyDmrm49PSZb{Ceu>_fl{2WU4tc!j~l+6<~nc zS=wh#X&yRTIsAPAl!8F>pz(mt*bH4B1!1GmPROmqxeLV(g>{|m+gC9oy$^`VuC0aq zpBAn^8?imS>s>tPkZ5ZG^)PCq&359uPFum7t#^bL+Ye{CqKg8nIu`h_)(B{K4|DgkxU= zvcf_gjFwIy7Hv#wl+7E*V(eLB3P3NE#Q=*-WghN>JbfOMdM<%>ppw2QR&yC+2e_+5 zK0Xoy&hj#{8m*d1Eb66kCy@R3n7`JUgz3tU2QZ^qt{2l{^N_u}!De|1fmGgNgXTpH zu#(@cG_$M4guj&aDy^>v>FO*hfWmt9E(tIIhVZsFqtDJ)h*%?2b)zDx4W~^*082_b zC`iR5BxJJn<|d#<7Nl5rc&Id#{Wg~l8%v5cH8u5_^I9Y$Z?H*$g!h|E`kHmnaM-_% zgvJHiG)d3DR(c#>(|1Ol5IznO{~xDVVH=Z^efpFXRBXC>dIF;EI6Guhq*ByHMHJ(o)w-#(RBno8$j&Db+Wtc#gz=Xvpkz;AmAZ@QIVqmgPr^hH z$V&!JL&lwU{d2D^cr9`!9mZ=a0oR(1p!|Y)lm+FL0`e4T3mQL){i0E|cD0}6NO@x5 zx3U5cbt9whVE{vyX<%Xjgi+Q4(X63m=s1wB7Dwkzl)~IdkKR97D*qlcGeeH0h>3{IGIGVXt`OSG zc~(z&m9IWn9+9{czcc{TpqBa^K`QyV7cZ`z>nPhl46?Hy@D20P86m11ibZ)ndz-hJ zIdHmlz_PV|wHObsI31Kd^YvCZG0|8L1OJHep4k1HNf=<>oA3NslX=kiM~1yxShLDe zCfOO`MDpKxS~iViORxC3W#Bw8HpVD2Sywcw*OClnwX~#|zscn0wc(YP4pV+iK6EfT zHr8(IC`O(Av#5KvM#?Cdz-X@ti#={oyLo@);>>Gfx#=``klgCLzwrmIrkmTdG64%e zPAHzgLAf0FNGY6a?tSX&=sS>@rSj9O;bh#gO;rnoEGkmaw z1l95d#l$2`ha*o!{4^{NSMqKzvnhD5eA&nM$jWG>cCHduxZP>iwXFh8MwQ}pi!|f% zCoU0K^guNIsvE)lz0RUoNIjUSI3=ab2$P?TW6A$ItCu>d z>b+fd>U8&|r|NB6xS-cDz*-^-QD*jA6*)6820K1&Tpc)mV@mJ;h=czJUK3?Ibi%^h*ioE#8)`=IIYp3|_1J-#3}0ieSh!@F z33Mjld};s9jBTCloN)~tGdq+X$prUq-mV|oHYVrTUMWfTb%D`#rQ!2ek)>$r$GswG zrvgMQ@-|N3@xx!&L>eIb%SRVmjp+EWJ^;6UT%sW+1GapY$nr;?Bkd=+dUl}!GH%{z z8yZ>`Vi(~>V5HeFv!haH-Y{M+zU-tPp^*6fy9?b+zf9!bh;H*YBAt2fxoCS~s1=m5%QK5bNYn>=`Xm1zBTP{qAh3!Zc+ z5T2a+M}0shtzT6yo|L3z=#Ks`Z!*5Em`LZF{fQRr`(^PJBlDAlz(=u)`_|Lu``$1< zg|~0JgOAq+=#+2iC3)>R{1*t}d@@$Kxw)1vILdf_w+7bE$~biT1=^)1j%Yh9B9tpFiPft#CwSaNMDVWZ4%I6e)`DL7qE{`4&nNd+w zpANKoN}AL)lLT@2DYyL|CO#g!@KTU6d!=pKA}V4mnXs<~YyfmDsj-lp8$%6^l>%F9 z_1lZIyO@O05{)B^UyV)0=~@%i@4vn-D^s60($JuQC_gpbCuMe4ha4HL)MTylzZNg5 ztUMooiJpq}Gv(Dc*guIZ4PKIEaw!l;Iv$F{^hL@I> z{>3j7?GLv8q%8KMgLo3)>>!0~M5S#B@dEwE*m#Y>{!`M;;3Dp`+$z%V7 zB|Ir^D$%Hz(Sjzsr{bxveGkaTosrGKn7V0JLrK&`bgx%L5Hs7({b7_Cd-UyOQZh1o zCLUhVhAs4ybLP$WU7TsPLC2euwFo-rg^v9t$bE-fV_8{$1p;5{aDW$!^zmbv{-GfQ zz5Q$7*wo1ng2g~v=YFOqs(*_1ch>7&`e6G3AZCaci=Um3 zbOi@CwtTmckYFdDhqw2SEDM0ujTd@#HBW<>8Q&6l<9_T;AMcv6>3!*BvD_8RCoTl} z=_f~;VZ>7i`_>8+eO8$G@;a&`1TRy>>gIq^^da3$OUv?$>bsG=HdnQ+F*Jh3LYzGA zLvdSTrlrBK7?MvT#nbk?DN^>U?`4@du#fmEI9gl%C5dRoRyqp{dmwhVCOz+0b%3;~ zq1q?ihUUwISdWhDUC~(0z{AsNsye$hoSJLnxh;|LuB)l5qcHE|v>Sz~(>>^J#FMOc zv?7}Tf}yCU#K1unc=2kp*8^_@mYRC}t=Sm~(-LgeHZvn@?@~5RJ=CIgQ!jMRa)8cS$ zrGD+;r;Mc+HB|~)=H|;C{-d{-JSImo$s3ZmFK7tXEs)dh8;3tyw_e({-A1G^)zceL zLkkL$Eexz*ug7cSMTQ@Ahn~de2)PP3)eSUwqcJv{+Iyo*MY$nm*wdkj&Uq&mJW4ZXnRJALFd zhzX_KY5ulLhVyNzfUL1GS4DMouQwf`y{?!TTeMPYb58|Otc7^S%j-kw$gD`pls5IW z!}sW}Dw&JP6xA?x%XoDqP z_wOtFWA{PKOZBV<$ICx?I?g}yMMF8b92ed+wcWD|S?v-sq2fOg5M85$hnov6p8h+( z-ESW9JMx{+&rd=zAI!@rTXF}T1*77yg)Xg#XLZv#tOk+pAz(-4(k~p)mKM$TEb!i6 zYJLrI6B8?m=&*EnLh#{UdDeERjc9axEbxgb7+mx_fk?ZoQkJU{#*$uh$KCWHsQU*b z{T_oN*#%{%!QGwNzm6rk21Q&I z3ch(#C;d2%EiG}pC>(|Ql*&q(rk3~p_Cv*3tLJto4XyYZRE0zEdBzxeq{Re>r0x*~3zfAPOF3Y@U@a)M#qM-zNUfX%g zq=%RZ(02ClJjK5`Kh0-iqVmr~l{s_bas&EN{`$>C)m4VJE#x!3dCf>W=j!9cm&Q)& z7GN%4xP6Iwfy6U5Fa9aJ8DH0kw)S`;q;r@iXxO^z+ip^q|H?A3Ej;<`>StQ@<-KTMIZ#A_ zpSv`6lWs?KTfOwPn}M!Nip`?RM);I~`7QedZW;r=Ty|uaE3| zm4F8XK9KeGQU6snvt1xs6G{HL(EYxT!^EqvcvbItWw!cu{&y862H4yCwDVbZMjtz? zC1bn#xl#TrS|}OF+Qz14Za0oh5EB+}tMOBXEdb-%80uejvp8iLOTx+XlkfzpD=4LVQEZ#*&Pp`?O)x-Nbb~W{|ftIF6tPvl~ z@_vS&k8gzG&8>CB{l2`gTF93NQX9)^@~3JphjVj$h8$@kiw`7)(R!d~6!;xeqh#77 z_x3o@O5b9x*UB?M{=4E@dBc4I|9)zGS%%g;o; zRG7PBW@55gcnVAn;kKOA7|BEo$6=PY4 ziT;1JMSldUj`aWr?nlyrAGjyu*)l}QRbahDR?O0U^S(&sktae zI8>U4r(1oc8iA0JmS!0q`+nX-lY^C#=e;~y?&}w--CtZ*V$C>uy#?q-q&-zP*G!;k zo}1P_;m-*>CbQ8U5Rd4N`0xQ49rdCL5~UcMOv|2rQ{Ctj`WD*gdw8$s)wj_A`f-n0 zz!R``{PsxRlQbTFOza)pIkN8;$M%zU!`3F`NhLNZd>Zlav%#g3DYn-WE8>}D0|rD|3SojYtj#(Rz2 za&DWNiV2-f=*rJ-ttXRoOBt~QN$(9=+I2{CoW8Xg8!K-*|Fa87c84fh$ok;NWAnQ# z&MVf>r_FYV_&}FGCA=GVUAh3-OcG7u>uzsTSH;Js)Y`n{?^;<~`yhi$sGwwnJypKz z9!(;vrr|4;woZp{%*L_yjjD6;mVW*4@bU}|58{w6NtpWV)=)f5cx3bBEgr`2bIZaA z+zXbxKNpLIUN5~Js6-|ZiP+7euSrP1@nzR30tm!9)khpB3g?0Y13$IgOpmJKVlN8a z$wc$ePWZj`Ls^=wHN*@o-!rmC>)GO6`6*+g#j8(V#g+h|Zl)0s3qMBhM>Pv|d0~8l z_=62lFjMnfB8ZiXIpBTr=_vA91U;Zzljpq z71R(TMJZVR*xkJ{i+GR>OnRcItiI&6dyz+20l_>!KPQ6x%r#HR&Ap=h(r5p8x>S6A zKiIpbPH+q^n8^-JNH{CmC?HF+?Ox?fRmt~x_%!5m@TWbZV(hrKd*mIOuTbu4YPWwZ zedizgq+2-|BbHXs!_H38%{BMPmK=@JhjMa}o15FzcPg`6Gl)e;?NSxnm)t!v0Tk$x z{@8@7xen5APp-s~iB?x9 zo{$!!Rf*R>-uE_JhWYXxNmCb!eEx-(2EQ-N@VW5dI3}0Uo3etII zU44D{R;dCTDPF1pw{({l^2@~kqkX@gDvc0hb&WEwYt* z5DefTsEoB5j6RGWld)(Klb0RL`*! zdS~As^Fdwc$O|?)BnH5K2Tw9HO=PX*49wkL?0)?-J-uG?6Il;&c5r&-r$-94 zc`YhRk0Z{6GOa-vjdFd5psT0&7v_%oQUJHx`9Jkq>`Rhdxvs>uHyM9af`jjVap~8f zkRQ>0;V#sx%;|cQk@kY!>V#KVcv7ck{jaK*%8iqq-RtZe*d?{{B`&BgQmLdu95n!& zE}~%Fl9!9*0}HR>Vrm#5g}gSfk4BVXyxoE44)^fEL529I%;A7Rq!{^*$7vTb!F+Nu z6*D^r`O(e%{He$<@eMg#QmPub2b? diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png index 20304c9c59c43d237a59d085ce4cd5b65bd071ec..46b22f9eca793e1739de8c8d71b87c83567caf51 100644 GIT binary patch literal 15780 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 WadKA8XBlt-dZ?leE4^>|`u_q$q(A%s literal 16002 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 diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico index b22d38cc09f76a16a1244bcbfd87ba4e89717413..f4da576daf87e8a3628481b5324ec4a8b88e8172 100644 GIT binary patch delta 1762 zcmV<81|9jc4zmuBWq+LQnR!qXcNE9pZZ?~fCE&%W6(N8mB2Y!7Kw`on%2B}%Jr$2S zYCC8vI$E{b>a^9FPNyAv*y>C{tvXt(Rf1<*6>(%7wT=n`R)r}F5=clmb98n!8FE2F zvO}Hm`w!Wdx9|5po8Nx(mSDNLx$ry-8}0_&)eC^()(e2)7JqF3*r+hEF=<5!gYXOT zR851fR|oZHcj_vC`q;dVr;6Jssi;)P4~W(oJXjND1B7L6#G9+D`syzp2f6_GUWCv5 zXhSqW10Chzc6(sjxq6@v07Z;=2*2CobqxjspePED@jl!XqiYKxo-U|XtKd;nBLt5f zZxN>jz-V*~(0`=+7tVB*!(049KoI9SahwHwJ^>iU1Y^HA?KWyK8bA+vU?NO-qHlrq z%3?@lCsEDobUH8^jW*|?2m%buvNblF4FQ3{rb9D1?EnWfd!e?k8VZSbVUuzl#IdGA zq1O`XJ%!>JG(5a-b558r0#Z{movKeeKrSyIK56?1-hXRZ3^}|xRP&~-la)2c?fSF> za8M3x^w|o3be)DwUiOgd=yZLcYHtG{-;ow^j{pdTVF|Uhb(Qw^GdzQEr+HEx9cp;e z+5&72*COsV0FTEba&u-My>OwTxbpIqpWUtJNCJT`uvl#1cp4xvaoP$N3m+wsB!6}1 zPK}~nrGIK3C|{{>rM6QZzrdw+$oq!N<=MpD0uTtiN5#fWUP%?g7=rY4`St?`56|nL zL)s{5q!_}ankQ{kgioUEll*3NwCzkyGZ>5kdvF?n%jK{-JG*-N$I{YdpEH@5z;rAW zhQ1v&F|y=gL*s2z?4V{Z-0iEOY;?17EyS{>z<*Mrh-$9v#Bb2h@WA1kB2hFXr^w95 zB&_w9pHl$jmCnz9b9Ds=Ub&Ba=GN2(mne#Oo41(9;{ccg7;e% zft;IRZk|+DcAhiKQ_^&(p=qe2M5=toR)4=SY4KBEUQl`Y%5E|ym8NV#070#D34(}} z%YURBOvhZ53!8jDgOi?)F;m98lO>fTZ*v4kN-U0AcJt<~z4!jPf93j(n_tGpM6a=z zm&wh6jmp)qtfdg*+0&uOdo`fX%ztZUW)7Hac`%Vzo&@CaEN?lx0MirVm-G2N+grY$ z5Cp-pvolM-|6y0m*|UFc4xKPQmmr96>pTHN09!_Ehw{!7l#QbOoEOJ&>vV@Ao44LR zb^*9t4nIDA%35cNdU<&XB`Ha3%TJ!!P*!$oK|w+O1=6yu^GF+gjsJ$z&40Qg8-T>= z(^ld*KGJ@=t>WThR$aewv$VFZ{?e^mcYchDid^FHE(eeWfRB&BFD@>2l`92M6lG`4 zp1E_^?h@&#)92QNgpAMPaybE>Zd9w)K=b3K{?EmfEC6IO$rdIPBU~-+=Qk!LAz|v` zii*oS|2luMcxFcGUJvwap?{~gtG9`p0fK@8#gXCR*29_8N={1LR$YBparNr8ePU76 zI|6}k`e5gjoj3}OjgF^LQvLx!)Uz|6?*;tO2*&_&x%3M_VBq0<0AU#BJ!@9Rj*^mn z*=34TMIw=?da!fksTqUXsP*t>v##mIp+iSz4RKJk5cvhA)oRtwgn#R>FMe5*pGZTj`uY; zx9n4QsPC9!v;lN?cdM^dUESbBs#|()Y}Aon01UVO1H)b;oc+gie*gdg07*qoM6N<$ Ef>~5yxBvhE delta 1762 zcmV<81|9jc4zmuBWq$$fS!qyHR}?-;UiJ_Iin3}&RtX|dMW8H^u&)*D&{a^Wqqc*# zE~BkhTb;H#)9JKh7h9Prs8vU6wL);gwj$!lIMzDKZdI6~AWK5Rnx*$WCz*sKgpj&=LDu2&k0O5NPi=Mx%dWaV%C?^_^zJz zim6tPD516LfU@?-k96bME4UG2ip!Kd_YkGpjxnh$0N=D7jLwF-(bg+xaT6&7cn*B0 zf)I5GKpPq1;clNt(xp})j{udTVR-X~>>gLGRs)qvg~yChhSo;b5~A2UpiCx(M;-0p zHEWK6ofHBZjemIp9m;><;$S7b!7Bs`W#T*;3?}e+e84a|X!Pu)%cxqT1{M0yDRg+E z>Vgk@HbFEihDctiR3fq(qdru0kA@kh#$vI+-NQ@U)G;TWz%lt@XdZ2VLjK#Zvu7KG zGZ#Uj!)oH5L~;h&9^N^4g`7nYq;F z_@onHQ`xY?X%GB9cmdM5S(A>VRE~nQuNR!0ryJPqLcq_@H?q08rPkDX#(|TtC3zhE z{W5sc-32T*$G~ng0WO!z&&kd>U0q$XsrK6SpKOh14g!HQFqtf1+nYdi^y2kQCc`B@ zKK9G{`hP}ApH$j8o_~+3n^;b{ynL(1!S@Y^!!@$oL_i>LbO{Sxuz?7K(FDoK;(f=C zpIol*gUcu`q!^M>Jb7G3g^c-xeBvjoxn-wKnnt6Io5O?&a5!w{z`)?JzAY&!;WIiN z6KLChem-vo%?m7j*w%hmYdel)v}v@FkkMT|TYn*pxe(Uyi;3ha%72Bnwg+a%6beHi zHZDQe#>tL7{3b*IpXt23mk*VclqTb|hQrI#BN!!IFvgW47RP^GcIaq|){w=`MYFyU z-tAfiVor)Kc^sKpxf2(o1iQ*-D++1fSMJ#%81=^@3xJ@LA+f4xqb*wL+ z&wmdTCy2Id+Z-wfb~=9w=LRYukDG5*`JfLfT1t31ffsXD5tu#8E7U*0cO`xu8~f6} z#-?UTPfu?LYAVh32?+38so&;P9bp;o)k!6;1-^l2zcAOxZjpdU6#I#GrWp*nb4Et$ zw`FBN=SU>y))y5OCZkPeEDa=7qvkL!0e_#l-cep&o(4q;dLr2i7R=ARdGprE%hgvm zi{fMUTQgvvsuya8E<-vudouYN!7KrMttKSI?*$XHnXn}OtLCPbs+yYGZvy;%bKTrr zmzaz5R7TZEMlnK0w<8&y#|Snpqi7_IW;!L6N(uck8Soti26nRqLPCO<&Y0m6ZGY+> zo6T}Zc&Jy6 z;+ns9-FqhUkx8Y{)%gf8y5TS;381yk6vfBxHAfCdaB$Gt+qdr=zW2}l>wn$4{Y6-4 z$QDz6X`F1>(X$!Wb`?SdD+-DoH-Dpg|EZFsre%XxmMsCFd7L0BT`Uubii}vt<8h6* zydKaDVp&;fW#4^&Ftn=bk6k`<=j0#>^&jgepb232w0%%HP)^7wRZn>t48~Y@v%r%d zyL?O%KqoFQB4Xjzi3D|UaPW(di`iOv?&9`}it{V-^Yf~a+4yWgGWrVdwSNgGYYmJD zL`N;&fM#a8DQ8m%4-eglmQY!9OY7A;cj|u#3JP3p-xSA(0Rbl`fophp*hXstpv}w5 z%t$?Ou%uLU{=%g#-rjRE(NlD{Z<+uKg&aB`cj&(t6EGlvlw~(6&iK{_cXgc^7a6&z zsHW!Hfj=)_*_4`+c-Y2#jeqb|c2!1p9RW{NoCW&(7fg15*qG?O4Gm3_8#itq2^I#u zgXL8i$96?e-@hA~4$7 z*>yzLFRRzuNFy*bG$gxTcVoL{PuuX!$f!9yCot9c55ry~oSw4((f|Me07*qoM6N<$ Eg1gd6hyVZp From 485836f8429bb4b4dda0dbcecba9598674f68b18 Mon Sep 17 00:00:00 2001 From: Kristen McWilliam <9575627+Merrit@users.noreply.github.com> Date: Tue, 25 Feb 2025 13:29:12 -0500 Subject: [PATCH 4/4] ci: fix build failure on Windows Related to firebase_auth, see: https://github.com/firebase/flutterfire/issues/16958 --- android/app/build.gradle.kts | 3 ++- pubspec.lock | 20 ++++++++++---------- pubspec.yaml | 4 ++-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 6e16a965..07407656 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -49,7 +49,8 @@ android { applicationId = "codes.merritt.adventurelist" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = flutter.minSdkVersion + // minSdk = flutter.minSdkVersion + minSdk = 23 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName diff --git a/pubspec.lock b/pubspec.lock index d981b7c9..fba5868e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7" + sha256: "401dd18096f5eaa140404ccbbbf346f83c850e6f27049698a7ee75a3488ddb32" url: "https://pub.dev" source: hosted - version: "1.3.35" + version: "1.3.52" analyzer: dependency: transitive description: @@ -309,34 +309,34 @@ packages: dependency: "direct main" description: name: firebase_auth - sha256: "279b2773ff61afd9763202cb5582e2b995ee57419d826b9af6517302a59b672f" + sha256: d0e2213daf3a740a379d4b788865dee6ada220496640abd875adb8f0fdbe5ba6 url: "https://pub.dev" source: hosted - version: "4.16.0" + version: "5.5.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: a0270e1db3b2098a14cb2a2342b3cd2e7e458e0c391b1f64f6f78b14296ec093 + sha256: "9c291bafc2a88599405fc810a4b4c249a40065b094379afb701efe443a3b0653" url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.6.0" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: c7b1379ccef7abf4b6816eede67a868c44142198e42350f51c01d8fc03f95a7d + sha256: a971b2f3a9c16b45e12687bb2e3d0da0c6fc272c4fbf6fa7833d0587844cca4d url: "https://pub.dev" source: hosted - version: "5.8.13" + version: "5.14.0" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c" + sha256: "6a4ea0f1d533443c8afc3d809cd36a4e2b8f2e2e711f697974f55bb31d71d1b8" url: "https://pub.dev" source: hosted - version: "2.32.0" + version: "3.12.0" firebase_core_platform_interface: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5e2a3a04..c6ae5bef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,8 +20,8 @@ dependencies: easy_logger: ^0.0.2 extension_google_sign_in_as_googleapis_auth: ^2.0.9 - firebase_auth: ^4.9.0 - firebase_core: ^2.15.1 + firebase_auth: ^5.5.0 + firebase_core: ^3.12.0 flutter: sdk: flutter flutter_adaptive_scaffold: ^0.2.1