chore: Add some stats for app start

This commit is contained in:
Krille Fear 2021-11-16 12:00:22 +01:00
commit 6c3f1d6f51
6 changed files with 25 additions and 28 deletions

View file

@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:matrix/encryption/utils/key_verification.dart';
import 'package:matrix/matrix.dart';
import 'package:matrix/src/utils/run_benchmarked.dart';
import 'package:path_provider/path_provider.dart';
import 'package:fluffychat/utils/platform_infos.dart';
@ -22,7 +23,10 @@ abstract class ClientManager {
}
final clientNames = <String>{};
try {
final rawClientNames = await Store().getItem(clientNamespace);
final rawClientNames = await runBenchmarked(
'Get client names',
() => Store().getItem(clientNamespace),
);
if (rawClientNames != null) {
final clientNamesList =
(jsonDecode(rawClientNames) as List).cast<String>();
@ -37,11 +41,12 @@ abstract class ClientManager {
await Store().setItem(clientNamespace, jsonEncode(clientNames.toList()));
}
final clients = clientNames.map(createClient).toList();
await Future.wait(clients.map((client) => client
.init(
waitForFirstSync: false,
waitUntilLoadCompletedLoaded: false,
)
await Future.wait(clients.map((client) => runBenchmarked(
'Init client ${client.clientName}',
() => client.init(
waitForFirstSync: false,
waitUntilLoadCompletedLoaded: false,
))
.catchError((e, s) => Logs().e('Unable to initialize client', e, s))));
if (clients.length > 1 && clients.any((c) => !c.isLogged())) {
final loggedOutClients = clients.where((c) => !c.isLogged()).toList();
@ -51,7 +56,11 @@ abstract class ClientManager {
clientNames.remove(client.clientName);
clients.remove(client);
}
await Store().setItem(clientNamespace, jsonEncode(clientNames.toList()));
await runBenchmarked(
'Update clientNamespaces',
() =>
Store().setItem(clientNamespace, jsonEncode(clientNames.toList())),
);
}
return clients;
}