Update to new sdk
This commit is contained in:
parent
df358328df
commit
a49d0f8958
11 changed files with 161 additions and 32 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue