Files
IKAR/lib/core/storage/startup_account.dart

18 lines
631 B
Dart

/// Resolves the local account without waiting for a network connection.
Future<int?> resolveStartupAccount({
required Future<int?> Function() readActiveId,
required Future<String?> Function(int) readToken,
required Future<List<int>> Function() readProfileIds,
required Future<void> Function(int) activate,
}) async {
final activeId = await readActiveId();
if (activeId != null && await readToken(activeId) != null) return activeId;
for (final id in await readProfileIds()) {
if (id == activeId) continue;
if (await readToken(id) == null) continue;
await activate(id);
return id;
}
return null;
}