35 lines
942 B
Dart
35 lines
942 B
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
class DocumentCapabilities extends Equatable {
|
|
final bool canEdit;
|
|
final bool canAnnotate;
|
|
final bool isPdf;
|
|
final String mimeType;
|
|
|
|
const DocumentCapabilities({
|
|
required this.canEdit,
|
|
required this.canAnnotate,
|
|
required this.isPdf,
|
|
required this.mimeType,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [canEdit, canAnnotate, isPdf, mimeType];
|
|
|
|
factory DocumentCapabilities.fromJson(Map<String, dynamic> json) {
|
|
return DocumentCapabilities(
|
|
canEdit: json['canEdit'],
|
|
canAnnotate: json['canAnnotate'],
|
|
isPdf: json['isPdf'],
|
|
mimeType: json['mimeType'] ?? 'application/octet-stream',
|
|
);
|
|
}
|
|
|
|
bool get isImage => mimeType.startsWith('image/');
|
|
bool get isText => mimeType.startsWith('text/');
|
|
bool get isOffice =>
|
|
mimeType.contains('word') ||
|
|
mimeType.contains('spreadsheet') ||
|
|
mimeType.contains('presentation');
|
|
}
|