From 90fa8455acc398cbc4f6b7462c2aed7e3381f6d6 Mon Sep 17 00:00:00 2001 From: problematicconsumer Date: Thu, 14 Sep 2023 12:56:22 +0330 Subject: [PATCH] Fix per-app proxy selection --- .../settings/view/per_app_proxy_page.dart | 15 +++++++++++++-- lib/utils/pref_notifier.dart | 6 ++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/features/settings/view/per_app_proxy_page.dart b/lib/features/settings/view/per_app_proxy_page.dart index 814dbf07..c1027c80 100644 --- a/lib/features/settings/view/per_app_proxy_page.dart +++ b/lib/features/settings/view/per_app_proxy_page.dart @@ -94,8 +94,16 @@ class PerAppProxyPage extends HookConsumerWidget with PresLogger { title: TextFormField( onChanged: (value) => searchQuery.value = value, autofocus: true, - decoration: InputDecoration.collapsed( + decoration: InputDecoration( hintText: "${localizations.searchFieldLabel}...", + isDense: true, + filled: false, + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + focusedErrorBorder: InputBorder.none, + disabledBorder: InputBorder.none, ), ), leading: IconButton( @@ -179,7 +187,10 @@ class PerAppProxyPage extends HookConsumerWidget with PresLogger { package.name, overflow: TextOverflow.ellipsis, ), - subtitle: Text(package.packageName), + subtitle: Text( + package.packageName, + style: Theme.of(context).textTheme.bodySmall, + ), value: selected, onChanged: (value) async { final List newSelection; diff --git a/lib/utils/pref_notifier.dart b/lib/utils/pref_notifier.dart index 6daccc7a..d3cc6be4 100644 --- a/lib/utils/pref_notifier.dart +++ b/lib/utils/pref_notifier.dart @@ -20,7 +20,7 @@ class Pref with InfraLogger { /// Updates the value asynchronously. Future update(T value) async { - loggy.debug("updating preference [$key] to [$value]"); + loggy.debug("updating preference [$key]($T) to [$value]"); try { if (mapTo != null && mapFrom != null) { await prefs.setString(key, mapTo!(value)); @@ -45,10 +45,12 @@ class Pref with InfraLogger { T getValue() { try { - loggy.debug("getting persisted preference [$key]"); + loggy.debug("getting persisted preference [$key]($T)"); if (mapTo != null && mapFrom != null) { final persisted = prefs.getString(key); return persisted != null ? mapFrom!(persisted) : defaultValue; + } else if (T == List) { + return prefs.getStringList(key) as T ?? defaultValue; } return prefs.get(key) as T? ?? defaultValue; } catch (e) {