share: loosened shared mime types to show more receiving apps
This commit is contained in:
parent
7c867f81bb
commit
760ee681d2
3 changed files with 8 additions and 11 deletions
|
@ -1,5 +1,7 @@
|
|||
import 'dart:typed_data';
|
||||
|
||||
import 'package:aves/model/image_entry.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
|
@ -86,7 +88,10 @@ class AndroidAppService {
|
|||
}
|
||||
}
|
||||
|
||||
static Future<void> share(Map<String, List<String>> urisByMimeType) async {
|
||||
static Future<void> share(Set<ImageEntry> entries) async {
|
||||
// loosen mime type to a generic one, so we can share with badly defined apps
|
||||
// e.g. Google Lens declares receiving "image/jpeg" only, but it can actually handle more formats
|
||||
final urisByMimeType = groupBy<ImageEntry, String>(entries, (e) => e.mimeTypeAnySubtype).map((k, v) => MapEntry(k, v.map((e) => e.uri).toList()));
|
||||
try {
|
||||
await platform.invokeMethod('share', <String, dynamic>{
|
||||
'title': 'Share via:',
|
||||
|
|
|
@ -64,9 +64,7 @@ class EntryActionDelegate with FeedbackMixin, PermissionAwareMixin {
|
|||
AndroidAppService.setAs(entry.uri, entry.mimeType);
|
||||
break;
|
||||
case EntryAction.share:
|
||||
AndroidAppService.share({
|
||||
entry.mimeType: [entry.uri]
|
||||
});
|
||||
AndroidAppService.share({entry});
|
||||
break;
|
||||
case EntryAction.debug:
|
||||
_goToDebug(context, entry);
|
||||
|
|
|
@ -17,7 +17,6 @@ import 'package:aves/widgets/common/action_delegates/permission_aware.dart';
|
|||
import 'package:aves/widgets/common/entry_actions.dart';
|
||||
import 'package:aves/widgets/common/icons.dart';
|
||||
import 'package:aves/widgets/filter_grid_page.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
|
@ -38,7 +37,7 @@ class SelectionActionDelegate with FeedbackMixin, PermissionAwareMixin {
|
|||
_showDeleteDialog(context);
|
||||
break;
|
||||
case EntryAction.share:
|
||||
_share();
|
||||
AndroidAppService.share(collection.selection);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -229,11 +228,6 @@ class SelectionActionDelegate with FeedbackMixin, PermissionAwareMixin {
|
|||
);
|
||||
}
|
||||
|
||||
void _share() {
|
||||
final urisByMimeType = groupBy<ImageEntry, String>(collection.selection, (e) => e.mimeType).map((k, v) => MapEntry(k, v.map((e) => e.uri).toList()));
|
||||
AndroidAppService.share(urisByMimeType);
|
||||
}
|
||||
|
||||
// selection action report overlay
|
||||
|
||||
OverlayEntry _opReportOverlayEntry;
|
||||
|
|
Loading…
Reference in a new issue