fix: editing pref store (#618)

This commit is contained in:
lollipopkit🏳️‍⚧️
2024-10-29 19:37:19 +08:00
committed by GitHub
parent 229983d82e
commit 00d303ac36
4 changed files with 35 additions and 97 deletions

View File

@@ -8,7 +8,7 @@ final class _AppBar extends StatelessWidget implements PreferredSizeWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
height: paddingTop,
height: preferredSize.height,
child: isIOS
? const Center(child: Text(BuildData.name, style: UIs.text15Bold))
: null,
@@ -16,5 +16,11 @@ final class _AppBar extends StatelessWidget implements PreferredSizeWidget {
}
@override
Size get preferredSize => Size.fromHeight(paddingTop);
}
Size get preferredSize {
final height = switch (Pfs.type) {
Pfs.macos => paddingTop + (CustomAppBar.sysStatusBarHeight ?? 0),
_ => paddingTop,
};
return Size.fromHeight(height);
}
}

View File

@@ -11,6 +11,8 @@ class AndroidSettingsPage extends StatefulWidget {
State<AndroidSettingsPage> createState() => _AndroidSettingsPageState();
}
const _homeWidgetPrefPrefix = 'widget_';
class _AndroidSettingsPageState extends State<AndroidSettingsPage> {
@override
Widget build(BuildContext context) {
@@ -39,11 +41,13 @@ class _AndroidSettingsPageState extends State<AndroidSettingsPage> {
try {
final keysDel = old.keys.toSet().difference(map.keys.toSet());
for (final key in keysDel) {
if (!key.startsWith(_homeWidgetPrefPrefix)) continue;
PrefStore.remove(key);
}
map.forEach((key, value) {
PrefStore.set(key, value);
});
for (final entry in map.entries) {
if (!entry.key.startsWith(_homeWidgetPrefPrefix)) continue;
PrefStore.set(entry.key, entry.value);
}
context.showSnackBar(libL10n.success);
} catch (e) {
context.showSnackBar(e.toString());
@@ -64,7 +68,7 @@ class _AndroidSettingsPageState extends State<AndroidSettingsPage> {
}
final result = await KvEditor.route.go(
context,
KvEditorArgs(data: data, prefix: 'widget_'),
KvEditorArgs(data: data, prefix: _homeWidgetPrefPrefix),
);
if (result != null) {
_saveWidgetSP(result, data);