fix: calls — correct MSC4143 JWT flow + message order
Calls: - JWT fetch now uses correct MSC4143 flow: get OpenID token from Synapse, then POST to /_matrix/livekit/jwt/sfu/get (was using GET with Bearer token to wrong path — returned 301→404) - Error messages now visible for 3 seconds before popping screen (was flashing away instantly — user couldn't see failure reason) - Voice vs video calls differentiated via ?video=0/1 query param - Debug logging added to JWT flow for troubleshooting Messages: - Chat timeline now shows newest at bottom (standard behaviour). Was reversed twice: SDK returns newest-first, code reversed to oldest-first, then ListView(reverse:true) put oldest at bottom. Removed the extra .reversed — newest-first + reverse:true = correct. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -109,7 +109,9 @@ class ChatRepository {
|
||||
for (final e in timeline.events) {
|
||||
models.add(_toModel(e, timeline, myUserId));
|
||||
}
|
||||
return models.reversed.toList();
|
||||
// Matrix SDK timeline.events is newest-first. Keep that order because
|
||||
// the chat ListView uses reverse:true — index 0 (newest) at the bottom.
|
||||
return models;
|
||||
}
|
||||
|
||||
MessageModel _toModel(Event event, Timeline timeline, String myUserId) {
|
||||
|
||||
@@ -72,15 +72,17 @@ class _ChatScreenState extends ConsumerState<ChatScreen> {
|
||||
IconButton(
|
||||
icon: const Icon(Icons.call),
|
||||
tooltip: 'Voice call',
|
||||
onPressed: () =>
|
||||
context.push('/calls/${Uri.encodeComponent(_decodedRoomId)}'),
|
||||
onPressed: () => context.push(
|
||||
'/calls/${Uri.encodeComponent(_decodedRoomId)}?video=0',
|
||||
),
|
||||
),
|
||||
// Video call
|
||||
IconButton(
|
||||
icon: const Icon(Icons.videocam_outlined),
|
||||
tooltip: 'Video call',
|
||||
onPressed: () =>
|
||||
context.push('/calls/${Uri.encodeComponent(_decodedRoomId)}'),
|
||||
onPressed: () => context.push(
|
||||
'/calls/${Uri.encodeComponent(_decodedRoomId)}?video=1',
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
icon: const Icon(Icons.more_vert),
|
||||
|
||||
Reference in New Issue
Block a user