Skip to content

Commit ccf7680

Browse files
authored
chore: simplify player view state update and improve metadata observation handling (#102)
1 parent 46d5340 commit ccf7680

30 files changed

+197
-173
lines changed

lib/chat_master/view/chat_master_detail_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class _ChatMasterDetailPageState extends State<ChatMasterDetailPage> {
126126
)
127127
: const Center(child: Progress()),
128128
),
129-
bottomNavigationBar: const PlayerView(),
129+
bottomNavigationBar: const RepaintBoundary(child: PlayerView()),
130130
);
131131
}
132132
}

lib/chat_master/view/chat_master_panel.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import '../../common/view/build_context_x.dart';
99
import '../../common/view/theme.dart';
1010
import '../../common/view/ui_constants.dart';
1111
import '../../l10n/l10n.dart';
12+
import '../../player/player_manager.dart';
13+
import '../../player/view/player_full_view.dart';
1214
import '../../settings/view/chat_settings_dialog.dart';
1315
import 'chat_master_list_filter_bar.dart';
1416
import 'chat_master_settings_tile_avatar.dart';
@@ -58,6 +60,17 @@ class ChatMasterSidePanel extends StatelessWidget with WatchItMixin {
5860
context: context,
5961
builder: (context) => const ChatSettingsDialog(),
6062
),
63+
trailing: IconButton(
64+
tooltip: l10n.playMedia,
65+
onPressed: () {
66+
showDialog(
67+
context: context,
68+
builder: (context) => const PlayerFullView(),
69+
);
70+
di<PlayerManager>().updateState(fullMode: true);
71+
},
72+
icon: const Icon(YaruIcons.media_play),
73+
),
6174
),
6275
],
6376
),

lib/chat_master/view/chat_rooms_list.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class ChatRoomsList extends StatelessWidget with WatchItMixin {
1313
watchStream(
1414
(ChatManager m) => m.syncStream.map((_) => m.filteredRooms),
1515
initialValue: di<ChatManager>().filteredRooms,
16-
preserveState: false,
16+
preserveState: true,
1717
).data ??
1818
di<ChatManager>().filteredRooms;
1919
watchPropertyValue((ChatManager m) => m.filteredRoomsQuery);

lib/chat_master/view/chat_space_filter.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ChatSpaceFilter extends StatelessWidget with WatchItMixin {
2222
watchStream(
2323
(ChatManager m) => m.spacesStream,
2424
initialValue: chatManager.spaces,
25-
preserveState: false,
25+
preserveState: true,
2626
).data ??
2727
chatManager.spaces;
2828

lib/chat_room/common/view/chat_room_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class _ChatRoomPageState extends State<ChatRoomPage> {
9595
widget.room.isDirectChat && invitedUsers.isNotEmpty,
9696
),
9797
initialValue: widget.room.isUnacceptedDirectChat,
98-
preserveState: false,
98+
preserveState: true,
9999
).data;
100100

101101
return DropRegion(

lib/chat_room/common/view/chat_room_users_list.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class ChatRoomUsersList extends StatelessWidget with WatchItMixin {
3939
membershipFilter: membershipFilter,
4040
),
4141
initialValue: room.getParticipants(membershipFilter),
42-
preserveState: false,
42+
preserveState: true,
4343
).data?.sorted((a, b) => b.powerLevel.compareTo(a.powerLevel));
4444

4545
if (users == null || users.isEmpty) {

lib/chat_room/create_or_edit/view/chat_room_history_visibility_drop_down.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ChatRoomHistoryVisibilityDropDown extends StatelessWidget
2929
(EditRoomService m) =>
3030
m.getJoinedRoomHistoryVisibilityStream(room!),
3131
initialValue: room!.historyVisibility,
32-
preserveState: false,
32+
preserveState: true,
3333
).data ??
3434
room!.historyVisibility;
3535

@@ -39,7 +39,7 @@ class ChatRoomHistoryVisibilityDropDown extends StatelessWidget
3939
(EditRoomService m) =>
4040
m.getCanChangeHistoryVisibilityStream(room!),
4141
initialValue: room!.canChangeHistoryVisibility,
42-
preserveState: false,
42+
preserveState: true,
4343
).data ??
4444
false;
4545

lib/chat_room/create_or_edit/view/chat_room_join_rules_drop_down.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ class ChatRoomJoinRulesDropDown extends StatelessWidget with WatchItMixin {
2323
final canChangeJoinRules =
2424
watchStream(
2525
(EditRoomService m) => m.getCanChangeJoinRulesStream(room),
26-
preserveState: false,
26+
preserveState: true,
2727
initialValue: room.canChangeJoinRules,
2828
).data ??
2929
room.canChangeJoinRules;
3030

3131
final joinRules =
3232
watchStream(
3333
(EditRoomService m) => m.getJoinedRoomJoinRulesStream(room),
34-
preserveState: false,
34+
preserveState: true,
3535
initialValue: room.joinRules,
3636
).data ??
3737
JoinRules.private;

lib/chat_room/create_or_edit/view/chat_room_permissions.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class ChatRoomPermissions extends StatelessWidget with WatchItMixin {
2424
watchStream(
2525
(EditRoomService m) => m.canChangePowerLevels(room),
2626
initialValue: room.canChangePowerLevel,
27-
preserveState: false,
27+
preserveState: true,
2828
).data ??
2929
room.canChangePowerLevel;
3030

lib/chat_room/create_or_edit/view/create_or_edit_room_canonical_alias_text_field.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class _CreateOrEditRoomCanonicalAliasTextFieldState
4545
(EditRoomService m) =>
4646
m.getCanChangeCanonicalAliasStream(widget.room),
4747
initialValue: widget.room.canChangeCanonicalAlias,
48-
preserveState: false,
48+
preserveState: true,
4949
).data ??
5050
false;
5151

@@ -55,7 +55,7 @@ class _CreateOrEditRoomCanonicalAliasTextFieldState
5555
(EditRoomService m) =>
5656
m.getJoinedRoomCanonicalAliasStream(widget.room),
5757
initialValue: widget.room.canonicalAlias,
58-
preserveState: false,
58+
preserveState: true,
5959
).data ??
6060
widget.room.canonicalAlias;
6161
final homeServer = di<AuthenticationService>().homeServerName;

0 commit comments

Comments
 (0)