chore: Add some stats for app start
This commit is contained in:
parent
03f0641385
commit
6c3f1d6f51
6 changed files with 25 additions and 28 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,14 +65,8 @@ class FlutterMatrixSembastDatabase extends MatrixSembastDatabase {
|
|||
path: await _findDatabasePath(client),
|
||||
dbFactory: kIsWeb ? databaseFactoryWeb : databaseFactoryIo,
|
||||
);
|
||||
try {
|
||||
await db.open();
|
||||
Logs().d('Sembast is ready');
|
||||
} catch (e, s) {
|
||||
Logs().e('Unable to open Sembast. Delete and try again...', e, s);
|
||||
await db.clear();
|
||||
await db.open();
|
||||
}
|
||||
await db.open();
|
||||
Logs().d('Sembast is ready');
|
||||
return db;
|
||||
}
|
||||
|
||||
|
|
@ -91,7 +85,6 @@ class FlutterMatrixSembastDatabase extends MatrixSembastDatabase {
|
|||
}
|
||||
path = '${directory.path}${client.clientName}.db';
|
||||
}
|
||||
Logs().i('Use database path: "$path"');
|
||||
return path;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue