From 08f5e03dcd387c03ef8d3b114027d56d2ef97f1c Mon Sep 17 00:00:00 2001 From: Armand <4831c0@proton.me> Date: Fri, 22 Aug 2025 20:36:07 +0200 Subject: [PATCH] =?UTF-8?q?Gyermek=20v=C3=A9delem=20=F0=9F=8F=B3=EF=B8=8F?= =?UTF-8?q?=E2=80=8D=F0=9F=8C=88=F0=9F=8F=B3=EF=B8=8F=E2=80=8D=E2=9A=A7?= =?UTF-8?q?=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firka/lib/helpers/settings/setting.dart | 18 ++++++++++ firka/lib/l10n | 2 +- .../screens/settings/settings_screen.dart | 35 +++++++++++++++++-- 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/firka/lib/helpers/settings/setting.dart b/firka/lib/helpers/settings/setting.dart index 14a094fd..a6afed4b 100644 --- a/firka/lib/helpers/settings/setting.dart +++ b/firka/lib/helpers/settings/setting.dart @@ -19,6 +19,7 @@ const classAvgOnGraph = 1006; const leftHandedMode = 1007; const language = 1008; const appIcon = 1009; +const child_protection = 1010; bool always() { return true; @@ -131,6 +132,13 @@ class SettingsStore { "settings_padding": SettingsPadding(0, 24, always), "icon_preview": SettingsAppIconPreview(0, always), "settings_padding2": SettingsPadding(0, 24, always), + "child_protection": SettingsBoolean( + child_protection, + FirkaIconType.majesticons, + Majesticon.shieldSolid, + l10n.s_ci_child_protection, + true, + never), "icon_picker": SettingsAppIconPicker( 0, "original", @@ -169,6 +177,16 @@ class SettingsStore { "gay", "lesb", "bi" + ], + l10n.s_ci_icon_g6: [ + "lgbtq_f", + "lgbtqp_f", + "trans_f", + "enby_f", + "ace_f", + "gay_f", + "lesb_f", + "bi_f" ] }, always), diff --git a/firka/lib/l10n b/firka/lib/l10n index 52abcba8..24104a85 160000 --- a/firka/lib/l10n +++ b/firka/lib/l10n @@ -1 +1 @@ -Subproject commit 52abcba808d4deb60ccf02e0b9b467363c4284ca +Subproject commit 24104a853f3b62635412c364257b516198772490 diff --git a/firka/lib/ui/phone/screens/settings/settings_screen.dart b/firka/lib/ui/phone/screens/settings/settings_screen.dart index a0270d82..9eeea640 100644 --- a/firka/lib/ui/phone/screens/settings/settings_screen.dart +++ b/firka/lib/ui/phone/screens/settings/settings_screen.dart @@ -54,11 +54,12 @@ class _SettingsScreenState extends State { } List createWidgetTree( - Iterable items, SettingsStore settings) { + Iterable items, SettingsStore settings, + {bool forceRender = false}) { var widgets = List.empty(growable: true); for (var item in items) { - if (!item.visibilityProvider()) continue; + if (!forceRender && !item.visibilityProvider()) continue; if (item is SettingsGroup) { widgets.addAll(createWidgetTree(item.children.values, settings)); @@ -271,6 +272,19 @@ class _SettingsScreenState extends State { List pWidgets = []; for (var group in item.iconGroups.keys) { + if (widget.data.settings + .group("settings") + .subGroup("customization") + .subGroup("icon_picker") + .boolean("child_protection")) { + if (group == widget.data.l10n.s_ci_icon_g5) { + continue; + } + } else { + if (group == widget.data.l10n.s_ci_icon_g6) { + continue; + } + } List groupIcons = []; for (var icon in item.iconGroups[group]!) { var active = icon == activeIcon; @@ -328,6 +342,23 @@ class _SettingsScreenState extends State { style: appStyle.fonts.H_14px.apply(color: appStyle.colors.textPrimary), )); + + if (group == widget.data.l10n.s_ci_icon_g5 || + group == widget.data.l10n.s_ci_icon_g6) { + var settingsWidgets = createWidgetTree([ + widget.data.settings + .group("settings") + .subGroup("customization") + .subGroup("icon_picker")["child_protection"] + as SettingsBoolean + ], settings, forceRender: true); + + pWidgets.add(SizedBox(height: 12)); + for (var w in settingsWidgets) { + pWidgets.add(w); + } + } + pWidgets.add(SizedBox(height: 12)); pWidgets.add(SizedBox( height: (groupIcons.length / 4).ceil() * 100,