mirror of
https://github.com/stonega/tsacdop
synced 2025-02-22 06:17:55 +01:00
71 lines
1.7 KiB
Dart
71 lines
1.7 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:equatable/equatable.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import '../util/extension_helper.dart';
|
|
|
|
class PodcastLocal extends Equatable {
|
|
final String title;
|
|
final String imageUrl;
|
|
final String rssUrl;
|
|
final String author;
|
|
|
|
final String primaryColor;
|
|
final String id;
|
|
final String imagePath;
|
|
final String provider;
|
|
final String link;
|
|
|
|
final String description;
|
|
|
|
final int updateCount;
|
|
final int episodeCount;
|
|
|
|
final List<String> funding;
|
|
|
|
//set setUpdateCount(i) => updateCount = i;
|
|
|
|
//set setEpisodeCount(i) => episodeCount = i;
|
|
|
|
PodcastLocal(
|
|
this.title,
|
|
this.imageUrl,
|
|
this.rssUrl,
|
|
this.primaryColor,
|
|
this.author,
|
|
this.id,
|
|
this.imagePath,
|
|
this.provider,
|
|
this.link,
|
|
this.funding, {
|
|
this.description = '',
|
|
this.updateCount = 0,
|
|
this.episodeCount = 0,
|
|
}) : assert(rssUrl != null);
|
|
|
|
ImageProvider get avatarImage {
|
|
return File(imagePath).existsSync()
|
|
? FileImage(File(imagePath))
|
|
: const AssetImage('assets/avatar_backup.png');
|
|
}
|
|
|
|
Color backgroudColor(BuildContext context) {
|
|
return context.brightness == Brightness.light
|
|
? primaryColor.colorizedark()
|
|
: primaryColor.colorizeLight();
|
|
}
|
|
|
|
PodcastLocal copyWith({int updateCount, int episodeCount}) {
|
|
return PodcastLocal(title, imageUrl, rssUrl, primaryColor, author, id,
|
|
imagePath, provider, link, funding,
|
|
description: description,
|
|
updateCount: updateCount ?? 0,
|
|
episodeCount: episodeCount ?? 0,
|
|
);
|
|
}
|
|
|
|
@override
|
|
List<Object> get props => [id, rssUrl];
|
|
}
|