mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-24 18:38:48 +01:00
Show download progress when sharing
This commit is contained in:
parent
4d2d734179
commit
4bdd523a94
1 changed files with 14 additions and 3 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
@ -7,6 +9,7 @@ import 'package:nc_photos/entity/file.dart';
|
||||||
import 'package:nc_photos/exception.dart';
|
import 'package:nc_photos/exception.dart';
|
||||||
import 'package:nc_photos/exception_util.dart' as exception_util;
|
import 'package:nc_photos/exception_util.dart' as exception_util;
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
|
import 'package:nc_photos/iterable_extension.dart';
|
||||||
import 'package:nc_photos/mobile/share.dart';
|
import 'package:nc_photos/mobile/share.dart';
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||||
import 'package:nc_photos/snack_bar_manager.dart';
|
import 'package:nc_photos/snack_bar_manager.dart';
|
||||||
|
@ -19,13 +22,21 @@ class ShareHandler {
|
||||||
Future<void> shareFiles(
|
Future<void> shareFiles(
|
||||||
BuildContext context, Account account, List<File> files) async {
|
BuildContext context, Account account, List<File> files) async {
|
||||||
assert(platform_k.isAndroid);
|
assert(platform_k.isAndroid);
|
||||||
|
final controller = StreamController<String>();
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) =>
|
builder: (context) => StreamBuilder(
|
||||||
ProcessingDialog(text: L10n.global().shareDownloadingDialogContent),
|
stream: controller.stream,
|
||||||
|
builder: (context, snapshot) => ProcessingDialog(
|
||||||
|
text: L10n.global().shareDownloadingDialogContent +
|
||||||
|
(snapshot.hasData ? " ${snapshot.data}" : ""),
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
final results = <Tuple2<File, dynamic>>[];
|
final results = <Tuple2<File, dynamic>>[];
|
||||||
for (final f in files) {
|
for (final pair in files.withIndex()) {
|
||||||
|
final i = pair.item1, f = pair.item2;
|
||||||
|
controller.add("(${i + 1}/${files.length})");
|
||||||
try {
|
try {
|
||||||
results.add(Tuple2(
|
results.add(Tuple2(
|
||||||
f,
|
f,
|
||||||
|
|
Loading…
Reference in a new issue