From fb856930efee631cf0fae17095e97c4fecd447f7 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Sat, 25 Dec 2021 14:42:48 +0100 Subject: [PATCH] chore: Improve stories --- lib/pages/story/story_page.dart | 5 ++++- lib/pages/story/story_view.dart | 1 + lib/utils/background_push.dart | 9 ++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/pages/story/story_page.dart b/lib/pages/story/story_page.dart index 9d50ef62..fd58a383 100644 --- a/lib/pages/story/story_page.dart +++ b/lib/pages/story/story_page.dart @@ -136,7 +136,10 @@ class StoryPageController extends State { Future? loadStory; Future _loadStory() async { - final room = Matrix.of(context).client.getRoomById(roomId); + final client = Matrix.of(context).client; + await client.roomsLoading; + await client.accountDataLoading; + final room = client.getRoomById(roomId); if (room == null) return; if (room.membership != Membership.join) { final joinedFuture = room.client.onSync.stream diff --git a/lib/pages/story/story_view.dart b/lib/pages/story/story_view.dart index 87eb259a..1c179c8a 100644 --- a/lib/pages/story/story_view.dart +++ b/lib/pages/story/story_view.dart @@ -23,6 +23,7 @@ class StoryView extends StatelessWidget { Widget build(BuildContext context) { final currentEvent = controller.currentEvent; return Scaffold( + backgroundColor: Colors.blueGrey, appBar: AppBar( titleSpacing: 0, title: ListTile( diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index 32a06596..9f159ddb 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -33,6 +33,7 @@ import 'package:matrix/matrix.dart'; import 'package:unifiedpush/unifiedpush.dart' hide Message; import 'package:vrouter/vrouter.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions.dart/client_stories_extension.dart'; import '../config/app_config.dart'; import '../config/setting_keys.dart'; import 'famedlysdk_store.dart'; @@ -296,7 +297,13 @@ class BackgroundPush { if (router == null) { return; } - router.currentState.toSegments(['rooms', roomId]); + final isStory = client + ?.getRoomById(roomId) + ?.getState(EventTypes.RoomCreate) + ?.content + ?.tryGet('type') == + ClientStoriesExtension.storiesRoomType; + router.currentState.toSegments([isStory ? 'stories' : 'rooms', roomId]); } catch (e, s) { Logs().e('[Push] Failed to open room', e, s); }