diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 40f9ba193..c7a67c37d 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -37,7 +37,6 @@ class AudioPlayerWidget extends StatefulWidget { final PangeaAudioFile? matrixFile; final ChatController chatController; final MessageOverlayController? overlayController; - final VoidCallback? onPlay; final bool autoplay; // Pangea# @@ -55,7 +54,6 @@ class AudioPlayerWidget extends StatefulWidget { this.matrixFile, required this.chatController, this.overlayController, - this.onPlay, this.autoplay = false, // Pangea# super.key, @@ -465,11 +463,7 @@ class AudioPlayerState extends State { onLongPress: () => widget.event?.saveFile(context), // Pangea# - onTap: () { - widget.onPlay != null - ? widget.onPlay!.call() - : _onButtonTap(); - }, + onTap: _onButtonTap, child: Material( color: widget.color.withAlpha(64), borderRadius: BorderRadius.circular(64), diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index a4098996c..028d86e66 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -225,14 +225,6 @@ class MessageContent extends StatelessWidget { eventId: event.eventId, roomId: event.room.id, senderId: event.senderId, - onPlay: overlayController == null - ? () { - controller.showToolbar( - pangeaMessageEvent!.event, - pangeaMessageEvent: pangeaMessageEvent, - ); - } - : null, autoplay: overlayController != null, // Pangea# ); diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index 6b142d304..8c30ebecb 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -544,7 +544,7 @@ class RoomDetailsButtonRowState extends State { ); } - final button = buttons[index]; + final button = mainViewButtons[index]; return Expanded( child: RoomDetailsButton( mini: mini, @@ -729,66 +729,70 @@ class RoomParticipantsSection extends StatelessWidget { padding: EdgeInsets.all(_padding), child: SizedBox( width: _width, - child: Column( - children: [ - Stack( - alignment: Alignment.center, - children: [ - if (gradient != null) - CircleAvatar( - radius: _width / 2, - child: Container( - decoration: BoxDecoration( - shape: BoxShape.circle, - gradient: gradient, - ), - ), - ) - else - SizedBox( - height: _width, - width: _width, - ), - Builder( - builder: (context) { - return MouseRegion( - cursor: SystemMouseCursors.click, - child: GestureDetector( - onTap: () => showMemberActionsPopupMenu( - context: context, - user: user, + child: Opacity( + opacity: user.membership == Membership.join ? 1.0 : 0.5, + child: Column( + children: [ + Stack( + alignment: Alignment.center, + children: [ + if (gradient != null) + CircleAvatar( + radius: _width / 2, + child: Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + gradient: gradient, ), - child: Center( - child: Avatar( - mxContent: user.avatarUrl, - name: user.calcDisplayname(), - size: _width - 6.0, - presenceUserId: user.id, - showPresence: false, + ), + ) + else + SizedBox( + height: _width, + width: _width, + ), + Builder( + builder: (context) { + return MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () => showMemberActionsPopupMenu( + context: context, + user: user, + ), + child: Center( + child: Avatar( + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + size: _width - 6.0, + presenceUserId: user.id, + showPresence: false, + ), ), ), - ), - ); - }, - ), - ], - ), - Text( - user.calcDisplayname(), - style: Theme.of(context) - .textTheme - .labelLarge - ?.copyWith( - color: Theme.of(context).colorScheme.primary, - fontWeight: FontWeight.bold, + ); + }, ), - overflow: TextOverflow.ellipsis, - ), - LevelDisplayName( - userId: user.id, - textStyle: Theme.of(context).textTheme.labelSmall, - ), - ], + ], + ), + Text( + user.calcDisplayname(), + style: Theme.of(context) + .textTheme + .labelLarge + ?.copyWith( + color: + Theme.of(context).colorScheme.primary, + fontWeight: FontWeight.bold, + ), + overflow: TextOverflow.ellipsis, + ), + LevelDisplayName( + userId: user.id, + textStyle: Theme.of(context).textTheme.labelSmall, + ), + ], + ), ), ), ); diff --git a/lib/pangea/spaces/utils/load_participants_util.dart b/lib/pangea/spaces/utils/load_participants_util.dart index 5b3d9c24a..c6b176bd8 100644 --- a/lib/pangea/spaces/utils/load_participants_util.dart +++ b/lib/pangea/spaces/utils/load_participants_util.dart @@ -89,6 +89,14 @@ class LoadParticipantsUtilState extends State { return -1; } + if (a.membership != Membership.join && b.membership != Membership.join) { + return a.displayName?.compareTo(b.displayName ?? '') ?? 0; + } else if (a.membership != Membership.join) { + return 1; + } else if (b.membership != Membership.join) { + return -1; + } + final PublicProfileModel? aProfile = _levelsCache[a.id]; final PublicProfileModel? bProfile = _levelsCache[b.id]; @@ -100,7 +108,7 @@ class LoadParticipantsUtilState extends State { Future _cacheLevels() async { for (final user in participants) { - if (_levelsCache[user.id] == null) { + if (_levelsCache[user.id] == null && user.membership == Membership.join) { _levelsCache[user.id] = await MatrixState .pangeaController.userController .getPublicProfile(user.id);