style: New settings design

This commit is contained in:
Krille 2023-02-04 18:32:56 +01:00
commit 5d53a37e2e
10 changed files with 401 additions and 458 deletions

View file

@ -15,6 +15,7 @@ import 'package:vrouter/vrouter.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/pages/chat_list/chat_list_view.dart';
import 'package:fluffychat/pages/settings_security/settings_security.dart';
import 'package:fluffychat/utils/famedlysdk_store.dart';
import 'package:fluffychat/utils/localized_exception_extension.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart';
@ -27,7 +28,6 @@ import '../../utils/voip/callkeep_manager.dart';
import '../../widgets/fluffy_chat_app.dart';
import '../../widgets/matrix.dart';
import '../bootstrap/bootstrap_dialog.dart';
import '../settings_account/settings_account.dart';
import 'package:fluffychat/utils/tor_stub.dart'
if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart';
@ -688,7 +688,7 @@ class ChatListController extends State<ChatList>
}
Future<void> dehydrate() =>
SettingsAccountController.dehydrateDevice(context);
SettingsSecurityController.dehydrateDevice(context);
}
enum EditBundleAction { addToBundle, removeFromBundle }

View file

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:keyboard_shortcuts/keyboard_shortcuts.dart';
import 'package:matrix/matrix.dart';
@ -212,12 +213,15 @@ class ClientChooserButton extends StatelessWidget {
child: Material(
color: Colors.transparent,
borderRadius: BorderRadius.circular(99),
child: Avatar(
mxContent: snapshot.data?.avatarUrl,
name: snapshot.data?.displayName ??
matrix.client.userID!.localpart,
size: 28,
fontSize: 12,
child: Hero(
tag: 'profilesettings',
child: Avatar(
mxContent: snapshot.data?.avatarUrl,
name: snapshot.data?.displayName ??
matrix.client.userID!.localpart,
size: 28,
fontSize: 12,
),
),
),
),
@ -240,7 +244,7 @@ class ClientChooserButton extends StatelessWidget {
void _clientSelected(
Object object,
BuildContext context,
) {
) async {
if (object is Client) {
controller.setActiveClient(object);
} else if (object is String) {
@ -248,7 +252,15 @@ class ClientChooserButton extends StatelessWidget {
} else if (object is SettingsAction) {
switch (object) {
case SettingsAction.addAccount:
VRouter.of(context).to('/settings/account');
final consent = await showOkCancelAlertDialog(
context: context,
title: L10n.of(context)!.addAccount,
message: L10n.of(context)!.enableMultiAccounts,
okLabel: L10n.of(context)!.next,
cancelLabel: L10n.of(context)!.cancel,
);
if (consent != OkCancelResult.ok) return;
VRouter.of(context).to('/settings/addaccount');
break;
case SettingsAction.newStory:
VRouter.of(context).to('/stories/create');