From 6b4a86d2b5ea64a5cbb6000521052fbb1b1d7fcc Mon Sep 17 00:00:00 2001 From: Enbiya Olgun <78034913+NBA2K1@users.noreply.github.com> Date: Sun, 27 Apr 2025 03:15:04 +0200 Subject: [PATCH] Better UX for mobile Better text rendering of "ignore filters" checkbox on mobile. Adds a line break to mobile devices, where horizontal space is limited. --- lib/l10n/app_th.arb | 5 ++++- lib/l10n/app_zh.arb | 5 ++++- lib/l10n/generated/app_localizations_th.dart | 2 +- lib/l10n/generated/app_localizations_zh.dart | 2 +- lib/modules/library/library_screen.dart | 20 +++++++++++++++----- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/lib/l10n/app_th.arb b/lib/l10n/app_th.arb index eff6bfe5..76b6028c 100644 --- a/lib/l10n/app_th.arb +++ b/lib/l10n/app_th.arb @@ -8,7 +8,10 @@ "open_random_entry": "สุ่มอ่าน", "import": "นำเข้า", "filter": "ตัวกรอง", - "ignore_filters": "ไม่สนใจตัวกรอง", + "ignore_filters": "ไม่สนใจ\nตัวกรอง", + "@ignore_filters": { + "description": "Manual line break added for better rendering of the ignore filters text on mobile." + }, "downloaded": "ดาวน์โหลดแล้ว", "unread": "ยังไม่อ่าน", "started": "เริ่มแล้ว", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 7689fbcd..e26b3a42 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -8,7 +8,10 @@ "open_random_entry": "随机打开条目", "import": "导入", "filter": "筛选", - "ignore_filters": "忽略筛选", + "ignore_filters": "忽略\n筛选", + "@ignore_filters": { + "description": "Manual line break added for better rendering of the ignore filters text on mobile." + }, "downloaded": "已下载", "unread": "未读", "started": "已开始", diff --git a/lib/l10n/generated/app_localizations_th.dart b/lib/l10n/generated/app_localizations_th.dart index 651730f8..8149fae9 100644 --- a/lib/l10n/generated/app_localizations_th.dart +++ b/lib/l10n/generated/app_localizations_th.dart @@ -33,7 +33,7 @@ class AppLocalizationsTh extends AppLocalizations { String get filter => 'ตัวกรอง'; @override - String get ignore_filters => 'ไม่สนใจตัวกรอง'; + String get ignore_filters => 'ไม่สนใจ\nตัวกรอง'; @override String get downloaded => 'ดาวน์โหลดแล้ว'; diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index fd7b6ce4..990cf5ca 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -33,7 +33,7 @@ class AppLocalizationsZh extends AppLocalizations { String get filter => '筛选'; @override - String get ignore_filters => '忽略筛选'; + String get ignore_filters => '忽略\n筛选'; @override String get downloaded => '已下载'; diff --git a/lib/modules/library/library_screen.dart b/lib/modules/library/library_screen.dart index c8e36f43..394f3eeb 100644 --- a/lib/modules/library/library_screen.dart +++ b/lib/modules/library/library_screen.dart @@ -1039,7 +1039,7 @@ class _LibraryScreenState extends ConsumerState List? mangas; final searchQuery = _textEditingController.text; // Skip all filters, just do search - if (searchQuery.isNotEmpty && ignoreFiltersOnSearch) { + if (searchQuery.isNotEmpty && _ignoreFiltersOnSearch) { mangas = data .where((element) => matchesSearchQuery(element, searchQuery)) @@ -2053,7 +2053,8 @@ class _LibraryScreenState extends ConsumerState return l10n.date_added; } - bool ignoreFiltersOnSearch = false; + bool _ignoreFiltersOnSearch = false; + final bool _isMobile = Platform.isIOS || Platform.isAndroid; PreferredSize _appBar( bool isNotFiltering, bool showNumbersOfItems, @@ -2217,12 +2218,21 @@ class _LibraryScreenState extends ConsumerState Row( mainAxisSize: MainAxisSize.min, children: [ - Text(l10n.ignore_filters), + Text( + _isMobile + // Adds a line break where spaces exist for better mobile layout. + // Works for languages that use spaces between words. + ? l10n.ignore_filters.replaceAll(' ', '\n') + // Removes manually added line breaks for Thai and Chinese, + // where spaces aren’t used, to ensure proper desktop rendering. + : l10n.ignore_filters.replaceAll('\n', ''), + textAlign: TextAlign.center, + ), Checkbox( - value: ignoreFiltersOnSearch, + value: _ignoreFiltersOnSearch, onChanged: (val) { setState(() { - ignoreFiltersOnSearch = val ?? false; + _ignoreFiltersOnSearch = val ?? false; }); }, ),