diff --git a/lib/pages/chat_access_settings/chat_access_settings_page.dart b/lib/pages/chat_access_settings/chat_access_settings_page.dart index 19012c771..5f679cffb 100644 --- a/lib/pages/chat_access_settings/chat_access_settings_page.dart +++ b/lib/pages/chat_access_settings/chat_access_settings_page.dart @@ -45,45 +45,56 @@ class ChatAccessSettingsPageView extends StatelessWidget { ), ), ), - for (final historyVisibility in HistoryVisibility.values) - RadioListTile.adaptive( - title: Text( - historyVisibility - .getLocalizedString(MatrixLocals(L10n.of(context))), - ), - value: historyVisibility, - groupValue: room.historyVisibility, - onChanged: controller.historyVisibilityLoading || - !room.canChangeHistoryVisibility - ? null - : controller.setHistoryVisibility, + RadioGroup( + groupValue: room.historyVisibility, + onChanged: controller.historyVisibilityLoading || + !room.canChangeHistoryVisibility + ? (_) {} + : controller.setHistoryVisibility, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (final historyVisibility in HistoryVisibility.values) + RadioListTile.adaptive( + title: Text( + historyVisibility.getLocalizedString( + MatrixLocals(L10n.of(context)), + ), + ), + value: historyVisibility, + ), + ], ), + ), Divider(color: theme.dividerColor), ListTile( title: Text( - // #Pangea - // L10n.of(context).whoIsAllowedToJoinThisGroup, - L10n.of(context).whoIsAllowedToJoinThisChat, - // Pangea# + L10n.of(context).whoIsAllowedToJoinThisGroup, style: TextStyle( color: theme.colorScheme.secondary, fontWeight: FontWeight.bold, ), ), ), - for (final joinRule in controller.availableJoinRules) - if (joinRule != JoinRules.private) - RadioListTile.adaptive( - title: Text( - joinRule.localizedString(L10n.of(context)), - ), - value: joinRule, - groupValue: room.joinRules, - onChanged: controller.joinRulesLoading || - !room.canChangeJoinRules - ? null - : controller.setJoinRule, - ), + RadioGroup( + groupValue: room.joinRules, + onChanged: controller.setJoinRule, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (final joinRule in controller.availableJoinRules) + if (joinRule != JoinRules.private) + RadioListTile.adaptive( + enabled: !controller.joinRulesLoading && + room.canChangeJoinRules, + title: Text( + joinRule.localizedString(L10n.of(context)), + ), + value: joinRule, + ), + ], + ), + ), Divider(color: theme.dividerColor), if ({JoinRules.public, JoinRules.knock} .contains(room.joinRules)) ...[ @@ -96,20 +107,26 @@ class ChatAccessSettingsPageView extends StatelessWidget { ), ), ), - for (final guestAccess in GuestAccess.values) - RadioListTile.adaptive( - title: Text( - guestAccess.getLocalizedString( - MatrixLocals(L10n.of(context)), - ), - ), - value: guestAccess, - groupValue: room.guestAccess, - onChanged: controller.guestAccessLoading || - !room.canChangeGuestAccess - ? null - : controller.setGuestAccess, + RadioGroup( + groupValue: room.guestAccess, + onChanged: controller.setGuestAccess, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (final guestAccess in GuestAccess.values) + RadioListTile.adaptive( + enabled: !controller.guestAccessLoading && + room.canChangeGuestAccess, + title: Text( + guestAccess.getLocalizedString( + MatrixLocals(L10n.of(context)), + ), + ), + value: guestAccess, + ), + ], ), + ), Divider(color: theme.dividerColor), ListTile( title: Text( diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart index c338166b9..f6adffd58 100644 --- a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; @@ -52,13 +53,11 @@ class ChatEncryptionSettingsView extends StatelessWidget { value: room.encrypted, onChanged: controller.enableEncryption, ), - // #Pangea - // Icon( - // CupertinoIcons.lock_shield, - // size: 128, - // color: theme.colorScheme.onInverseSurface, - // ), - // Pangea# + Icon( + CupertinoIcons.lock_shield, + size: 128, + color: theme.colorScheme.onInverseSurface, + ), const Divider(), if (room.isDirectChat) Padding( @@ -111,7 +110,7 @@ class ChatEncryptionSettingsView extends StatelessWidget { itemBuilder: (BuildContext context, int i) => SwitchListTile( value: !deviceKeys[i].blocked, - activeColor: deviceKeys[i].verified + activeThumbColor: deviceKeys[i].verified ? Colors.green : Colors.orange, onChanged: (_) => diff --git a/lib/pangea/instructions/instructions_toggle.dart b/lib/pangea/instructions/instructions_toggle.dart index e803bc43c..b2b653e44 100644 --- a/lib/pangea/instructions/instructions_toggle.dart +++ b/lib/pangea/instructions/instructions_toggle.dart @@ -31,7 +31,7 @@ class InstructionsToggleState extends State { @override Widget build(BuildContext context) { return SwitchListTile.adaptive( - activeColor: AppConfig.activeToggleColor, + activeThumbColor: AppConfig.activeToggleColor, title: Text(L10n.of(context).doNotShowAgain), value: widget.instructionsKey.isToggledOff, onChanged: ((value) async { diff --git a/lib/pangea/learning_settings/pages/settings_learning_view.dart b/lib/pangea/learning_settings/pages/settings_learning_view.dart index 86ee89f58..952d50d39 100644 --- a/lib/pangea/learning_settings/pages/settings_learning_view.dart +++ b/lib/pangea/learning_settings/pages/settings_learning_view.dart @@ -301,7 +301,8 @@ class SettingsLearningView extends StatelessWidget { subtitle: Text( L10n.of(context).publicProfileDesc, ), - activeColor: AppConfig.activeToggleColor, + activeThumbColor: + AppConfig.activeToggleColor, contentPadding: EdgeInsets.zero, ), ResetInstructionsListTile( diff --git a/lib/pangea/learning_settings/widgets/p_settings_switch_list_tile.dart b/lib/pangea/learning_settings/widgets/p_settings_switch_list_tile.dart index e605eae90..188debae1 100644 --- a/lib/pangea/learning_settings/widgets/p_settings_switch_list_tile.dart +++ b/lib/pangea/learning_settings/widgets/p_settings_switch_list_tile.dart @@ -47,7 +47,7 @@ class PSettingsSwitchListTileState contentPadding: EdgeInsets.zero, value: currentValue, title: Text(widget.title), - activeColor: AppConfig.activeToggleColor, + activeThumbColor: AppConfig.activeToggleColor, subtitle: widget.subtitle != null ? Text(widget.subtitle!) : null, onChanged: widget.enabled ? (bool newValue) async { diff --git a/lib/pangea/login/widgets/app_config_dialog.dart b/lib/pangea/login/widgets/app_config_dialog.dart index dab9666bd..454fdad1f 100644 --- a/lib/pangea/login/widgets/app_config_dialog.dart +++ b/lib/pangea/login/widgets/app_config_dialog.dart @@ -42,37 +42,33 @@ class AppConfigDialogState extends State { maxWidth: 256, ), child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - ...widget.overrides.map((override) { - return RadioListTile.adaptive( - title: Text( - override.environment ?? L10n.of(context).unkDisplayName, + child: RadioGroup( + groupValue: selectedOverride, + onChanged: (override) { + setState(() { + selectedOverride = override; + }); + }, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ...widget.overrides.map((override) { + return RadioListTile.adaptive( + title: Text( + override.environment ?? L10n.of(context).unkDisplayName, + ), + value: override, + ); + }).toList() + ..insert( + 0, + RadioListTile.adaptive( + title: Text(L10n.of(context).defaultOption), + value: null, + ), ), - value: override, - groupValue: selectedOverride, - onChanged: (override) { - setState(() { - selectedOverride = override; - }); - }, - ); - }).toList() - ..insert( - 0, - RadioListTile.adaptive( - title: Text(L10n.of(context).defaultOption), - value: null, - groupValue: selectedOverride, - onChanged: (override) { - setState(() { - selectedOverride = null; - }); - }, - ), - ), - ], + ], + ), ), ), ),