relatica/lib/models/timeline_network_info.dart

69 lines
1.2 KiB
Dart
Raw Normal View History

enum KnownNetworks {
activityPub,
bluesky,
calckey,
diaspora,
drupal,
firefish,
friendica,
funkwhale,
gnu_social,
hubzilla,
kbin,
lemmy,
mastodon,
nextcloud,
peertube,
pixelfed,
pleroma,
plume,
red,
redmatrix,
socialhome,
threads,
wordpress,
unknown,
;
static KnownNetworks parse(String? text) {
if (text == null) {
return unknown;
}
return values.firstWhere(
(e) => e.name == text,
orElse: () => unknown,
);
}
}
class TimelineNetworkInfo {
static const empty = TimelineNetworkInfo(
name: 'Unknown',
vapidKey: '',
network: KnownNetworks.unknown,
);
final String name;
final String vapidKey;
final KnownNetworks network;
const TimelineNetworkInfo({
required this.name,
required this.vapidKey,
required this.network,
});
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is TimelineNetworkInfo &&
runtimeType == other.runtimeType &&
name == other.name &&
vapidKey == other.vapidKey &&
network == other.network;
@override
int get hashCode => name.hashCode ^ vapidKey.hashCode ^ network.hashCode;
}