Skip to content

Commit 1be732d

Browse files
committed
settings: Migrate to new RadioGroup API for theme-setting radio buttons
This migration is verified by the tests that we touched in the previous commit; they ensure that the buttons' checked state still updates visibly. Fixes: zulip#1545
1 parent cf8575a commit 1be732d

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

lib/widgets/settings.dart

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,19 @@ class _ThemeSetting extends StatelessWidget {
4444
Widget build(BuildContext context) {
4545
final zulipLocalizations = ZulipLocalizations.of(context);
4646
final globalSettings = GlobalStoreWidget.settingsOf(context);
47-
return Column(
48-
children: [
49-
ListTile(title: Text(zulipLocalizations.themeSettingTitle)),
50-
for (final themeSettingOption in [null, ...ThemeSetting.values])
51-
RadioListTile<ThemeSetting?>.adaptive(
52-
title: Text(ThemeSetting.displayName(
53-
themeSetting: themeSettingOption,
54-
zulipLocalizations: zulipLocalizations)),
55-
value: themeSettingOption,
56-
groupValue: globalSettings.themeSetting,
57-
onChanged: (newValue) => _handleChange(context, newValue)),
58-
]);
47+
return RadioGroup<ThemeSetting?>(
48+
groupValue: globalSettings.themeSetting,
49+
onChanged: (newValue) => _handleChange(context, newValue),
50+
child: Column(
51+
children: [
52+
ListTile(title: Text(zulipLocalizations.themeSettingTitle)),
53+
for (final themeSettingOption in [null, ...ThemeSetting.values])
54+
RadioListTile<ThemeSetting?>.adaptive(
55+
title: Text(ThemeSetting.displayName(
56+
themeSetting: themeSettingOption,
57+
zulipLocalizations: zulipLocalizations)),
58+
value: themeSettingOption),
59+
]));
5960
}
6061
}
6162

test/flutter_checks.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,3 @@ extension IconButtonChecks on Subject<IconButton> {
249249
extension SwitchListTileChecks<T> on Subject<SwitchListTile> {
250250
Subject<bool> get value => has((x) => x.value, 'value');
251251
}
252-
253-
extension RadioListTileChecks<T> on Subject<RadioListTile<T>> {
254-
Subject<bool> get checked => has((x) => x.checked, 'checked');
255-
}

0 commit comments

Comments
 (0)