chore: Clean up bootstrap

This commit is contained in:
Krille Fear 2021-11-19 14:42:34 +01:00
parent 5c326521fd
commit 65bff2c194
4 changed files with 65 additions and 54 deletions

View File

@ -37,7 +37,7 @@ void main() async {
Zone.current.handleUncaughtError(details.exception, details.stack);
final clients = await ClientManager.getClients();
Logs().level = kReleaseMode ? Level.debug : Level.verbose;
Logs().level = kReleaseMode ? Level.warning : Level.verbose;
if (PlatformInfos.isMobile) {
BackgroundPush.clientOnly(clients.first);

View File

@ -182,8 +182,8 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
TextField(
minLines: 4,
maxLines: 4,
autofocus: true,
autocorrect: false,
readOnly: _recoveryKeyInputLoading,
autofillHints: _recoveryKeyInputLoading
? null
: [AutofillHints.password],
@ -196,29 +196,37 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
),
const SizedBox(height: 16),
ElevatedButton.icon(
icon: const Icon(Icons.lock_open_outlined),
icon: _recoveryKeyInputLoading
? const CircularProgressIndicator.adaptive()
: const Icon(Icons.lock_open_outlined),
label: Text(L10n.of(context).unlockChatBackup),
onPressed: () async {
onPressed: _recoveryKeyInputLoading
? null
: () async {
setState(() {
_recoveryKeyInputError = null;
_recoveryKeyInputLoading = true;
});
try {
final key = _recoveryKeyTextEditingController.text;
final key =
_recoveryKeyTextEditingController.text;
await bootstrap.newSsssKey.unlock(
keyOrPassphrase: key,
);
Logs().d('SSSS unlocked');
await bootstrap.client.encryption.crossSigning
.selfSign(
keyOrPassphrase: key,
);
Logs().d('Successful elfsigned');
await bootstrap.openExistingSsss();
} catch (e, s) {
Logs().w('Unable to unlock SSSS', e, s);
setState(() => _recoveryKeyInputError =
L10n.of(context).oopsSomethingWentWrong);
} finally {
setState(() => _recoveryKeyInputLoading = false);
setState(
() => _recoveryKeyInputLoading = false);
}
}),
const SizedBox(height: 16),
@ -239,7 +247,9 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
icon:
const Icon(Icons.transfer_within_a_station_outlined),
label: Text(L10n.of(context).transferFromAnotherDevice),
onPressed: () async {
onPressed: _recoveryKeyInputLoading
? null
: () async {
final req = await showFutureLoadingDialog(
context: context,
future: () => widget
@ -260,7 +270,9 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
),
icon: const Icon(Icons.delete_outlined),
label: Text(L10n.of(context).securityKeyLost),
onPressed: () async {
onPressed: _recoveryKeyInputLoading
? null
: () async {
if (OkCancelResult.ok ==
await showOkCancelAlertDialog(
useRootNavigator: false,

View File

@ -15,7 +15,6 @@ import 'matrix_sdk_extensions.dart/flutter_matrix_hive_database.dart';
abstract class ClientManager {
static const String clientNamespace = 'im.fluffychat.store.clients';
static Future<List<Client>> getClients() async {
Logs().level = Level.warning;
if (PlatformInfos.isLinux) {
Hive.init((await getApplicationSupportDirectory()).path);
} else {

View File

@ -775,7 +775,7 @@ packages:
description:
path: "."
ref: "krille/idb"
resolved-ref: "60b2b6b5fcc45a5bedbe6eafee19258784e1a329"
resolved-ref: "74037fb8ae0f4c4e1ac946d7c2057bf6e2da7aaf"
url: "https://gitlab.com/famedly/company/frontend/famedlysdk.git"
source: git
version: "0.7.0-nullsafety.6"