Update to new sdk

This commit is contained in:
Christian Pauly 2020-01-02 15:10:21 +01:00
commit a49d0f8958
11 changed files with 161 additions and 32 deletions

View file

@ -1,3 +1,5 @@
import 'dart:async';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/components/adaptive_page_layout.dart';
import 'package:fluffychat/components/dialogs/new_group_dialog.dart';
@ -33,24 +35,19 @@ class ChatList extends StatefulWidget {
}
class _ChatListState extends State<ChatList> {
RoomList roomList;
StreamSubscription sub;
Future<List<Room>> getRooms(BuildContext context) async {
Future<bool> waitForFirstSync(BuildContext context) async {
Client client = Matrix.of(context).client;
if (roomList != null) return roomList.rooms;
if (client.prevBatch?.isEmpty ?? true)
await client.connection.onFirstSync.stream.first;
roomList = client.getRoomList(onUpdate: () {
setState(() {});
});
return roomList.rooms;
await client.onFirstSync.stream.first;
sub ??= client.onSync.stream.listen((s) => setState(() => null));
return true;
}
@override
void dispose() {
roomList?.eventSub?.cancel();
roomList?.firstSyncSub?.cancel();
roomList?.roomSub?.cancel();
sub?.cancel();
super.dispose();
}
@ -112,11 +109,11 @@ class _ChatListState extends State<ChatList> {
),
],
),
body: FutureBuilder<List<Room>>(
future: getRooms(context),
body: FutureBuilder<bool>(
future: waitForFirstSync(context),
builder: (BuildContext context, snapshot) {
if (snapshot.hasData) {
List<Room> rooms = snapshot.data;
List<Room> rooms = Matrix.of(context).client.rooms;
return ListView.builder(
itemCount: rooms.length,
itemBuilder: (BuildContext context, int i) => ChatListItem(

View file

@ -16,8 +16,8 @@ class InvitationSelection extends StatelessWidget {
List<User> participants = await room.requestParticipants();
List<User> contacts = [];
Map<String, bool> userMap = {};
for (int i = 0; i < client.roomList.rooms.length; i++) {
List<User> roomUsers = client.roomList.rooms[i].getParticipants();
for (int i = 0; i < client.rooms.length; i++) {
List<User> roomUsers = client.rooms[i].getParticipants();
for (int j = 0; j < roomUsers.length; j++) {
if (userMap[roomUsers[j].id] != true &&
participants.indexWhere((u) => u.id == roomUsers[j].id) == -1)

View file

@ -43,7 +43,7 @@ class _SettingsState extends State<Settings> {
final MatrixState matrix = Matrix.of(context);
final Map<String, dynamic> success =
await matrix.tryRequestWithLoadingDialog(
matrix.client.connection.jsonRequest(
matrix.client.jsonRequest(
type: HTTPType.PUT,
action: "/client/r0/profile/${matrix.client.userID}/displayname",
data: {"displayname": displayname},