From b8ff14963ff005ba87d073ca6bf1e51342655390 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 13:01:55 +0200 Subject: [PATCH 1/6] fix(ui): use createdAt to sort media (the default value is updatedAt) --- .../lib/src/media_list_view.dart | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/media_list_view.dart b/packages/stream_chat_flutter/lib/src/media_list_view.dart index 4c845529..b3934332 100644 --- a/packages/stream_chat_flutter/lib/src/media_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/media_list_view.dart @@ -145,15 +145,16 @@ class _MediaListViewState extends State { } Future _getMedia() async { - final assetList = await PhotoManager.getAssetPathList().then((value) { - if (value.isNotEmpty) { - return value.singleWhere((element) => element.isAll); - } - }); - - if (assetList == null) { - return; - } + final assetList = (await PhotoManager.getAssetPathList( + filterOption: FilterOptionGroup(orders: [ + const OrderOption( + // ignore: avoid_redundant_argument_values + type: OrderOptionType.createDate, + ), + ]), + onlyAll: true, + )) + .first; final media = await assetList.getAssetListPaged(_currentPage, 50); From 68f6dd264eebf24d220aa5a1cfa6c58bcc66fac9 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 13:05:23 +0200 Subject: [PATCH 2/6] chore(ui): update changelog --- packages/stream_chat_flutter/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 0f3b914a..8d4faca8 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -2,6 +2,10 @@ - Updated Dart SDK constraints to `>=2.14.0 <3.0.0` +🐞 Fixed + +- [[#491]](https://github.com/GetStream/stream-chat-flutter/issues/491): Fix `MediaListView` showing media in wrong order. + ✅ Added - `MessageListViewThemeData` now accepts a `DecorationImage` as a background image for `MessageListView`. From 239b3ccded8fad55cc798ba2f1fb95c2782726a8 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 14:49:57 +0200 Subject: [PATCH 3/6] fix(ui): analysis --- .../lib/src/media_list_view.dart | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/media_list_view.dart b/packages/stream_chat_flutter/lib/src/media_list_view.dart index b3934332..8f0bb917 100644 --- a/packages/stream_chat_flutter/lib/src/media_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/media_list_view.dart @@ -146,12 +146,14 @@ class _MediaListViewState extends State { Future _getMedia() async { final assetList = (await PhotoManager.getAssetPathList( - filterOption: FilterOptionGroup(orders: [ - const OrderOption( - // ignore: avoid_redundant_argument_values - type: OrderOptionType.createDate, - ), - ]), + filterOption: FilterOptionGroup( + orders: [ + const OrderOption( + // ignore: avoid_redundant_argument_values + type: OrderOptionType.createDate, + ), + ], + ), onlyAll: true, )) .first; From c58f937b20d57f1e065a9616af57ff0534f9220a Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 14:58:19 +0200 Subject: [PATCH 4/6] fix(ui): analysis --- .../lib/src/theme/message_list_view_theme.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/theme/message_list_view_theme.dart b/packages/stream_chat_flutter/lib/src/theme/message_list_view_theme.dart index 1e968fed..e4857a79 100644 --- a/packages/stream_chat_flutter/lib/src/theme/message_list_view_theme.dart +++ b/packages/stream_chat_flutter/lib/src/theme/message_list_view_theme.dart @@ -118,8 +118,11 @@ class MessageListViewThemeData with Diagnosticable { properties ..add(ColorProperty('backgroundColor', backgroundColor)) ..add( - DiagnosticsProperty('backgroundImage', backgroundImage, - defaultValue: null), + DiagnosticsProperty( + 'backgroundImage', + backgroundImage, + defaultValue: null, + ), ); } } From ce68471a29a827239d78f697150a52b9bbcdb002 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 16:27:49 +0200 Subject: [PATCH 5/6] fix(ui): check assetList is not null --- .../stream_chat_flutter/lib/src/media_list_view.dart | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/media_list_view.dart b/packages/stream_chat_flutter/lib/src/media_list_view.dart index 8f0bb917..8b916477 100644 --- a/packages/stream_chat_flutter/lib/src/media_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/media_list_view.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:photo_manager/photo_manager.dart'; import 'package:stream_chat_flutter/src/stream_svg_icon.dart'; +import 'package:collection/collection.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; extension on Duration { @@ -156,13 +157,13 @@ class _MediaListViewState extends State { ), onlyAll: true, )) - .first; + .firstOrNull; - final media = await assetList.getAssetListPaged(_currentPage, 50); + final media = await assetList?.getAssetListPaged(_currentPage, 50); - if (media.isNotEmpty) { + if (media?.isNotEmpty == true) { setState(() { - _media.addAll(media); + _media.addAll(media!); }); } ++_currentPage; From 0f691fa924424c9d546d680884915fcf363c9cb4 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 12 Oct 2021 16:37:15 +0200 Subject: [PATCH 6/6] fix(ui): analysis --- packages/stream_chat_flutter/lib/src/media_list_view.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/lib/src/media_list_view.dart b/packages/stream_chat_flutter/lib/src/media_list_view.dart index 8b916477..8b1f7f06 100644 --- a/packages/stream_chat_flutter/lib/src/media_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/media_list_view.dart @@ -1,11 +1,11 @@ import 'dart:ui' as ui; +import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:photo_manager/photo_manager.dart'; import 'package:stream_chat_flutter/src/stream_svg_icon.dart'; -import 'package:collection/collection.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; extension on Duration {