diff --git a/.github/workflows/check_duplicates.yaml b/.github/workflows/check_duplicates.yaml index ff88e8768..e35745214 100644 --- a/.github/workflows/check_duplicates.yaml +++ b/.github/workflows/check_duplicates.yaml @@ -1,9 +1,5 @@ -# #Pangea # name: Check duplicates -on: - - # on: # issues: # types: [opened] @@ -17,7 +13,7 @@ on: # number: ${{ github.event.issue.number }} # GH_TOKEN: ${{ github.token }} # steps: -# - uses: actions/checkout@v4 +# - uses: actions/checkout@v5 # - name: Check duplicates # run: | # issues=$(gh issue list --search '${{ env.title }}' --json number,title,url) @@ -29,5 +25,4 @@ on: # issues_markdown=$(echo "$issues_filtered" | jq -r '.[] | "- [" + .title + "](" + .url + ")"') # formatted_body=$(echo -e "@${{ env.author }}\nPossible duplication of:\n$issues_markdown") # gh issue comment ${{ github.event.issue.number }} --body "$formatted_body" -# fi -# Pangea# \ No newline at end of file +# fi \ No newline at end of file diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml index 9c447c21f..f6e8d3e7f 100644 --- a/.github/workflows/main_deploy.yaml +++ b/.github/workflows/main_deploy.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest environment: staging steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: cat .github/workflows/versions.env >> $GITHUB_ENV - uses: subosito/flutter-action@v2 with: @@ -80,7 +80,7 @@ jobs: SENTRY_PROJECT: ${{ vars.SENTRY_PROJECT }} SENTRY_ORG: ${{ vars.SENTRY_ORG }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: cat .github/workflows/versions.env >> $GITHUB_ENV - uses: subosito/flutter-action@v2 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e083f2590..c566ad435 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -40,7 +40,7 @@ jobs: runs-on: ubuntu-latest environment: production steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: cat .github/workflows/versions.env >> $GITHUB_ENV - uses: subosito/flutter-action@v2 with: @@ -90,7 +90,7 @@ jobs: env: WEB_APP_ENV: ${{ vars.WEB_APP_ENV }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: cat .github/workflows/versions.env >> $GITHUB_ENV - uses: actions/setup-java@v4 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index f29cd1e61..83067c377 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ ## v2.1.0 +FluffyChat 2.1.0 brings support for room version 12 and a lot of bugfixes, updated translations and performance improvements. Also chat state events are now collapsed by default. + - feat: Collapse all state events by default (Christian Kußowski) - feat(linux/notify): support avatar icon (ShootingStarDragons) - build: (deps): bump archive from 3.6.1 to 4.0.7 (dependabot[bot]) diff --git a/android/fastlane/metadata/android/en-US/changelogs/default.txt b/android/fastlane/metadata/android/en-US/changelogs/default.txt index 8634247fb..0b2d50a81 100644 --- a/android/fastlane/metadata/android/en-US/changelogs/default.txt +++ b/android/fastlane/metadata/android/en-US/changelogs/default.txt @@ -1 +1 @@ -FluffyChat 2.1.0 brings a lot of bugfixes, updated translations and performance improvements. Also chat state events are now collapsed by default. \ No newline at end of file +FluffyChat 2.1.0 brings support for room version 12 and a lot of bugfixes, updated translations and performance improvements. Also chat state events are now collapsed by default. \ No newline at end of file diff --git a/lib/widgets/adaptive_dialogs/user_dialog.dart b/lib/widgets/adaptive_dialogs/user_dialog.dart index 102101336..7b8e915e5 100644 --- a/lib/widgets/adaptive_dialogs/user_dialog.dart +++ b/lib/widgets/adaptive_dialogs/user_dialog.dart @@ -183,9 +183,6 @@ class UserDialog extends StatelessWidget { bigButtons: true, onPressed: () async { final router = GoRouter.of(context); - // #Pangea - // Navigator.of(context).pop(); - // Pangea# final roomIdResult = await showFutureLoadingDialog( context: context, // #Pangea @@ -196,11 +193,9 @@ class UserDialog extends StatelessWidget { ), // Pangea# ); - // #Pangea - Navigator.of(context).pop(); - // Pangea# final roomId = roomIdResult.result; if (roomId == null) return; + if (context.mounted) Navigator.of(context).pop(); router.go('/rooms/$roomId'); }, child: Text( diff --git a/lib/widgets/mxc_image.dart b/lib/widgets/mxc_image.dart index 0615f5777..dfb33a271 100644 --- a/lib/widgets/mxc_image.dart +++ b/lib/widgets/mxc_image.dart @@ -165,53 +165,41 @@ class _MxcImageState extends State { final data = _imageData; final hasData = data != null && data.isNotEmpty; - return AnimatedCrossFade( - crossFadeState: - // #Pangea - // hasData ? CrossFadeState.showSecond : CrossFadeState.showFirst, - hasData || _error != null - ? CrossFadeState.showSecond - : CrossFadeState.showFirst, - // Pangea# + return AnimatedSwitcher( duration: const Duration(milliseconds: 128), - firstChild: placeholder(context), - // #Pangea - // secondChild: hasData - secondChild: _error != null - ? SizedBox( + child: hasData + ? Image.memory( + data, width: widget.width, height: widget.height, + fit: widget.fit, + filterQuality: + widget.isThumbnail ? FilterQuality.low : FilterQuality.medium, + errorBuilder: (context, e, s) { + Logs().d('Unable to render mxc image', e, s); + return SizedBox( + width: widget.width, + height: widget.height, + child: Material( + color: Theme.of(context).colorScheme.surfaceContainer, + child: Icon( + Icons.broken_image_outlined, + size: min(widget.height ?? 64, 64), + color: Theme.of(context).colorScheme.onSurface, + ), + ), + ); + }, ) - : hasData - // Pangea# - ? Image.memory( - data, + // #Pangea + // : placeholder(context), + : _error != null + ? SizedBox( width: widget.width, height: widget.height, - fit: widget.fit, - filterQuality: widget.isThumbnail - ? FilterQuality.low - : FilterQuality.medium, - errorBuilder: (context, e, s) { - Logs().d('Unable to render mxc image', e, s); - return SizedBox( - width: widget.width, - height: widget.height, - child: Material( - color: Theme.of(context).colorScheme.surfaceContainer, - child: Icon( - Icons.broken_image_outlined, - size: min(widget.height ?? 64, 64), - color: Theme.of(context).colorScheme.onSurface, - ), - ), - ); - }, ) - : SizedBox( - width: widget.width, - height: widget.height, - ), + : placeholder(context), + // Pangea# ); } } diff --git a/pubspec.lock b/pubspec.lock index 150051607..8251c469f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -581,10 +581,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "8f9f429998f9232d65bc4757af74475ce44fc80f10704ff5dfa8b1d14fc429b9" + sha256: ef7d2a085c1b1d69d17b6842d0734aad90156de08df6bd3c12496d0bd6ddf8e2 url: "https://pub.dev" source: hosted - version: "10.2.3" + version: "10.3.1" file_selector: dependency: "direct main" description: @@ -1612,10 +1612,10 @@ packages: dependency: "direct dev" description: name: msix - sha256: bbb9b3ff4a9f8e7e7507b2a22dc0517fd1fe3db44e72de7ab052cb6b362406ee + sha256: f88033fcb9e0dd8de5b18897cbebbd28ea30596810f4a7c86b12b0c03ace87e5 url: "https://pub.dev" source: hosted - version: "3.16.10" + version: "3.16.12" native_imaging: dependency: "direct main" description: @@ -1732,18 +1732,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" url: "https://pub.dev" source: hosted - version: "8.3.0" + version: "8.3.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" pana: dependency: transitive description: @@ -2204,18 +2204,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0 + sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1 url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef" + sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.0" shared_preferences: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 045d3db9b..8821f6abb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: dynamic_color: ^1.8.1 emoji_picker_flutter: ^4.3.0 emojis: ^0.9.9 - file_picker: ^10.2.3 + file_picker: ^10.3.1 file_selector: ^1.0.3 flutter: sdk: flutter @@ -75,7 +75,7 @@ dependencies: mime: ^2.0.0 native_imaging: ^0.2.0 opus_caf_converter_dart: ^1.0.1 - package_info_plus: ^8.1.1 + package_info_plus: ^8.3.1 path: ^1.9.0 path_provider: ^2.1.2 permission_handler: ^12.0.1 @@ -87,7 +87,7 @@ dependencies: receive_sharing_intent: ^1.8.1 record: ^6.0.0 scroll_to_index: ^3.0.1 - share_plus: ^11.0.0 + share_plus: ^11.1.0 shared_preferences: ^2.2.0 # Pinned because https://github.com/flutter/flutter/issues/118401 slugify: ^2.0.0 sqflite_common_ffi: ^2.3.6 @@ -144,7 +144,7 @@ dev_dependencies: integration_test: sdk: flutter license_checker: ^1.6.0 - msix: ^3.16.10 + msix: ^3.16.12 pedantic: ^1.11.0 sentry_dart_plugin: ^1.0.0 translations_cleaner: ^0.0.5