import 'dart:io'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/widgets.dart'; class DisplayImageSource { String url; File file; DisplayImageSource({this.url, this.file}); ImageProvider get imageProvider => file == null ? CachedNetworkImageProvider(url) : FileImage(file); @override bool operator ==(other) { if (identical(this, other)) { return true; } return (other.file == this.file && (other.file != null || this.file != null)) || (other.url == this.url && (other.url != null || this.url != null)); } @override int get hashCode { int result = 17; result = 37 * result + file.hashCode; return result; } }