Skip to content

Commit 09600c5

Browse files
authored
chore: handle fallback for null and .ico URLs in SafeNetworkImage; update search controller initialization in RadioBrowser (#104)
1 parent 5ed54a7 commit 09600c5

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

lib/common/view/safe_network_image.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class SafeNetworkImage extends StatelessWidget {
4848
Icon(YaruIcons.user, size: height != null ? height! * 0.7 : null),
4949
);
5050

51-
if (url == null) return fallBack;
51+
if (url == null || url!.endsWith('.ico')) return fallBack;
5252

5353
try {
5454
if (url!.endsWith('.svg')) {

lib/radio/view/radio_browser.dart

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:media_kit/media_kit.dart';
55
import 'package:watch_it/watch_it.dart';
66
import 'package:yaru/yaru.dart';
77

8+
import '../../common/view/build_context_x.dart';
89
import '../../common/view/theme.dart';
910
import '../../common/view/ui_constants.dart';
1011
import '../../extensions/media_x.dart';
@@ -23,21 +24,26 @@ class RadioBrowser extends StatefulWidget {
2324
State<RadioBrowser> createState() => _RadioBrowserState();
2425
}
2526

27+
final _searchDraft = ValueNotifier('');
28+
2629
class _RadioBrowserState extends State<RadioBrowser> with PlayerControlMixin {
2730
late Future<List<Media>> _future;
28-
final TextEditingController _searchController = TextEditingController();
31+
final TextEditingController _searchController = TextEditingController(
32+
text: _searchDraft.value,
33+
);
2934
Timer? _debounce;
3035

3136
@override
3237
void initState() {
3338
super.initState();
34-
_future = _loadMedia();
39+
_future = _loadMedia(name: _searchController.text);
3540
}
3641

3742
@override
3843
void dispose() {
3944
_searchController.dispose();
4045
_debounce?.cancel();
46+
_searchDraft.value = _searchController.text;
4147
super.dispose();
4248
}
4349

@@ -114,6 +120,15 @@ class _RadioBrowserState extends State<RadioBrowser> with PlayerControlMixin {
114120
return const Center(child: CircularProgressIndicator());
115121
}
116122

123+
if (snapshot.data!.isEmpty) {
124+
return Center(
125+
child: Text(
126+
context.l10n.nothingFound,
127+
style: context.textTheme.bodyLarge,
128+
),
129+
);
130+
}
131+
117132
return ListView.builder(
118133
itemBuilder: (context, index) {
119134
final media = snapshot.data![index];

0 commit comments

Comments
 (0)