mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-24 14:32:37 +01:00
chore: Clean up bootstrap
This commit is contained in:
parent
5c326521fd
commit
65bff2c194
@ -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);
|
||||
|
@ -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,31 +196,39 @@ 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 {
|
||||
setState(() {
|
||||
_recoveryKeyInputError = null;
|
||||
_recoveryKeyInputLoading = true;
|
||||
});
|
||||
try {
|
||||
final key = _recoveryKeyTextEditingController.text;
|
||||
await bootstrap.newSsssKey.unlock(
|
||||
keyOrPassphrase: key,
|
||||
);
|
||||
await bootstrap.client.encryption.crossSigning
|
||||
.selfSign(
|
||||
keyOrPassphrase: key,
|
||||
);
|
||||
await bootstrap.openExistingSsss();
|
||||
} catch (e, s) {
|
||||
Logs().w('Unable to unlock SSSS', e, s);
|
||||
setState(() => _recoveryKeyInputError =
|
||||
L10n.of(context).oopsSomethingWentWrong);
|
||||
} finally {
|
||||
setState(() => _recoveryKeyInputLoading = false);
|
||||
}
|
||||
}),
|
||||
onPressed: _recoveryKeyInputLoading
|
||||
? null
|
||||
: () async {
|
||||
setState(() {
|
||||
_recoveryKeyInputError = null;
|
||||
_recoveryKeyInputLoading = true;
|
||||
});
|
||||
try {
|
||||
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);
|
||||
}
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
Row(children: [
|
||||
const Expanded(child: Divider()),
|
||||
@ -239,18 +247,20 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
|
||||
icon:
|
||||
const Icon(Icons.transfer_within_a_station_outlined),
|
||||
label: Text(L10n.of(context).transferFromAnotherDevice),
|
||||
onPressed: () async {
|
||||
final req = await showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => widget
|
||||
.client.userDeviceKeys[widget.client.userID]
|
||||
.startVerification(),
|
||||
);
|
||||
if (req.error != null) return;
|
||||
await KeyVerificationDialog(request: req.result)
|
||||
.show(context);
|
||||
Navigator.of(context, rootNavigator: false).pop();
|
||||
},
|
||||
onPressed: _recoveryKeyInputLoading
|
||||
? null
|
||||
: () async {
|
||||
final req = await showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => widget
|
||||
.client.userDeviceKeys[widget.client.userID]
|
||||
.startVerification(),
|
||||
);
|
||||
if (req.error != null) return;
|
||||
await KeyVerificationDialog(request: req.result)
|
||||
.show(context);
|
||||
Navigator.of(context, rootNavigator: false).pop();
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
ElevatedButton.icon(
|
||||
@ -260,20 +270,22 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
|
||||
),
|
||||
icon: const Icon(Icons.delete_outlined),
|
||||
label: Text(L10n.of(context).securityKeyLost),
|
||||
onPressed: () async {
|
||||
if (OkCancelResult.ok ==
|
||||
await showOkCancelAlertDialog(
|
||||
useRootNavigator: false,
|
||||
context: context,
|
||||
title: L10n.of(context).securityKeyLost,
|
||||
message: L10n.of(context).wipeChatBackup,
|
||||
okLabel: L10n.of(context).ok,
|
||||
cancelLabel: L10n.of(context).cancel,
|
||||
isDestructiveAction: true,
|
||||
)) {
|
||||
setState(() => _createBootstrap(true));
|
||||
}
|
||||
},
|
||||
onPressed: _recoveryKeyInputLoading
|
||||
? null
|
||||
: () async {
|
||||
if (OkCancelResult.ok ==
|
||||
await showOkCancelAlertDialog(
|
||||
useRootNavigator: false,
|
||||
context: context,
|
||||
title: L10n.of(context).securityKeyLost,
|
||||
message: L10n.of(context).wipeChatBackup,
|
||||
okLabel: L10n.of(context).ok,
|
||||
cancelLabel: L10n.of(context).cancel,
|
||||
isDestructiveAction: true,
|
||||
)) {
|
||||
setState(() => _createBootstrap(true));
|
||||
}
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
|
@ -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 {
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user