18 lines
631 B
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;
|
|
}
|