mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 10:03:31 +00:00
Add TimelineGroupingListdata parsing of type
This commit is contained in:
parent
052fa15eb8
commit
9c9428a85b
2 changed files with 36 additions and 9 deletions
|
@ -1,16 +1,26 @@
|
|||
enum GroupingType {
|
||||
channel,
|
||||
circle,
|
||||
group,
|
||||
}
|
||||
|
||||
class TimelineGroupingListData {
|
||||
static final followersPseudoCircle =
|
||||
TimelineGroupingListData('~', 'Followers');
|
||||
static const followersPseudoCircle =
|
||||
TimelineGroupingListData('~', 'Followers', GroupingType.circle);
|
||||
|
||||
static const empty = TimelineGroupingListData('', '', GroupingType.circle);
|
||||
|
||||
final String id;
|
||||
|
||||
final String name;
|
||||
|
||||
TimelineGroupingListData(this.id, this.name);
|
||||
final GroupingType groupingType;
|
||||
|
||||
const TimelineGroupingListData(this.id, this.name, this.groupingType);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'CircleData{id: $id, name: $name}';
|
||||
return 'CircleData{id: $id, name: $name, type: ${groupingType.name}}';
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -2,9 +2,26 @@ import '../../models/timeline_grouping_list_data.dart';
|
|||
|
||||
extension TimelineGroupingListDataMastodonExtensions
|
||||
on TimelineGroupingListData {
|
||||
static TimelineGroupingListData fromJson(Map<String, dynamic> json) =>
|
||||
TimelineGroupingListData(
|
||||
json['id'],
|
||||
json['title'],
|
||||
);
|
||||
static TimelineGroupingListData fromJson(Map<String, dynamic> json) {
|
||||
final id = json['id']?.toString() ?? '';
|
||||
final typeString = json['replies_policy']?.toString() ?? '';
|
||||
|
||||
late final GroupingType type;
|
||||
if (typeString == 'followed') {
|
||||
if (id.startsWith('channel')) {
|
||||
type = GroupingType.channel;
|
||||
} else if (id.startsWith('group')) {
|
||||
type = GroupingType.group;
|
||||
} else {
|
||||
type = GroupingType.circle;
|
||||
}
|
||||
} else {
|
||||
type = GroupingType.circle;
|
||||
}
|
||||
return TimelineGroupingListData(
|
||||
id,
|
||||
json['title'],
|
||||
type,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue