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 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 get props => [id, rssUrl]; }