UI: Add ChannelTile with logos, search/filter, and design improvements

This commit is contained in:
2026-01-11 20:16:01 +09:00
parent c3a95684f3
commit e3bca82285
9 changed files with 265 additions and 36 deletions

View File

@@ -1,11 +1,18 @@
class StreamEntry {
final String title;
final String url;
final String? logo; // optional TVG logo URL
StreamEntry({required this.title, required this.url});
StreamEntry({required this.title, required this.url, this.logo});
StreamEntry copyWith({String? title, String? url, String? logo}) =>
StreamEntry(
title: title ?? this.title,
url: url ?? this.url,
logo: logo ?? this.logo);
@override
String toString() => 'StreamEntry(title: $title, url: $url)';
String toString() => 'StreamEntry(title: $title, url: $url, logo: $logo)';
@override
bool operator ==(Object other) =>
@@ -13,8 +20,9 @@ class StreamEntry {
other is StreamEntry &&
runtimeType == other.runtimeType &&
title == other.title &&
url == other.url;
url == other.url &&
logo == other.logo;
@override
int get hashCode => title.hashCode ^ url.hashCode;
int get hashCode => title.hashCode ^ url.hashCode ^ (logo?.hashCode ?? 0);
}