Skip to content

Commit 8a0a58a

Browse files
committed
Picker loading dialog
1 parent 7240465 commit 8a0a58a

5 files changed

Lines changed: 32 additions & 11 deletions

File tree

lib/app.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_easyloading/flutter_easyloading.dart';
23
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
34
import 'package:flutter_localizations/flutter_localizations.dart';
45
import 'package:image_picker/image_picker.dart';
@@ -63,9 +64,14 @@ class App extends StatelessWidget {
6364
darkTheme: darkTheme,
6465
theme: lightTheme,
6566
builder: (context, child) {
67+
EasyLoading.instance
68+
..loadingStyle = EasyLoadingStyle.custom
69+
..backgroundColor = Theme.of(context).scaffoldBackgroundColor
70+
..indicatorColor = Theme.of(context).textTheme.bodyMedium?.color
71+
..textColor = Theme.of(context).textTheme.bodyMedium?.color;
6672
return ScrollConfiguration(
6773
behavior: OverscrollBehavior(),
68-
child: child!,
74+
child: EasyLoading.init().call(context, child),
6975
);
7076
},
7177
onGenerateRoute: generateRoute,

lib/services/auto_upload_manager.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,10 @@ class AutoUploadManager {
9999
// Convert .heic files to .jpg
100100
for (File file in files) {
101101
if (file.path.endsWith('.heic')) {
102-
debugPrint("${file.path} is Heic !");
102+
debugPrint("${file.path} is Heic ! Converting to jpg... ");
103103
String? jpgPath = await HeicToJpg.convert(
104104
file.path,
105105
);
106-
debugPrint("From ${file.path}...\nto $jpgPath");
107106
if (jpgPath != null) {
108107
files.remove(file);
109108
files.add(File(jpgPath));

lib/views/album/album_view_page.dart

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import 'dart:math';
22

33
import 'package:flutter/material.dart';
4+
import 'package:flutter_easyloading/flutter_easyloading.dart';
45
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
56
import 'package:image_picker/image_picker.dart';
6-
import 'package:piwigo_ng/components/loading_overlay.dart';
77
import 'package:piwigo_ng/components/popup_list_item.dart';
88
import 'package:piwigo_ng/components/scroll_widgets/album_grid_view.dart';
99
import 'package:piwigo_ng/components/scroll_widgets/image_grid_view.dart';
@@ -167,11 +167,15 @@ class _AlbumViewPageState extends State<AlbumViewPage>
167167
});
168168

169169
Future<void> _onPickImages() async {
170-
OverlayEntry overlayEntry =
171-
OverlayEntry(builder: (context) => LoadingOverlay());
172-
Overlay.of(context).insert(overlayEntry);
170+
EasyLoading.show(
171+
status: appStrings.loadingHUD_label,
172+
indicator: CircularProgressIndicator(),
173+
maskType: EasyLoadingMaskType.black,
174+
dismissOnTap: true,
175+
);
173176
List<XFile>? images = await onPickImages();
174-
overlayEntry.remove();
177+
if (!EasyLoading.isShow) return;
178+
EasyLoading.dismiss();
175179
if (images == null || images.isEmpty) return;
176180
Navigator.of(context).pushNamed(UploadViewPage.routeName, arguments: {
177181
'images': images,

lib/views/upload/upload_view_page.dart

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:io';
22

33
import 'package:flutter/material.dart';
4+
import 'package:flutter_easyloading/flutter_easyloading.dart';
45
import 'package:image_picker/image_picker.dart';
56
import 'package:mime_type/mime_type.dart';
67
import 'package:piwigo_ng/components/buttons/animated_piwigo_button.dart';
@@ -84,6 +85,7 @@ class _UploadGalleryViewPage extends State<UploadViewPage>
8485
_imageList.map((e) => File(e.path)).toList(),
8586
returnExistFiles: true,
8687
);
88+
if (!mounted) return;
8789
setState(() {
8890
_imageExistList = files.map((e) => e.path).toList();
8991
});
@@ -125,7 +127,16 @@ class _UploadGalleryViewPage extends State<UploadViewPage>
125127
}
126128

127129
Future<void> _addFiles() async {
130+
EasyLoading.show(
131+
status: appStrings.loadingHUD_label,
132+
indicator: CircularProgressIndicator(),
133+
maskType: EasyLoadingMaskType.black,
134+
dismissOnTap: true,
135+
);
136+
if (!EasyLoading.isShow) return;
137+
EasyLoading.dismiss();
128138
List<XFile>? images = await onPickImages();
139+
if (!mounted) return;
129140
if (images != null && images.isNotEmpty) {
130141
setState(() {
131142
_imageList.addAll(images);
@@ -136,6 +147,7 @@ class _UploadGalleryViewPage extends State<UploadViewPage>
136147

137148
Future<void> _takePhoto() async {
138149
XFile? image = await onTakePhoto(context);
150+
if (!mounted) return;
139151
if (image == null) return;
140152
setState(() {
141153
_imageList.add(image);
@@ -442,14 +454,13 @@ class _UploadGalleryViewPage extends State<UploadViewPage>
442454
double? cacheHeight = constraints.maxHeight.isInfinite
443455
? constraints.maxHeight
444456
: null;
445-
return Image.memory(
446-
file.readAsBytesSync(),
457+
return Image.file(
458+
file,
447459
fit: BoxFit.cover,
448460
cacheWidth: cacheWidth?.floor(),
449461
cacheHeight: cacheHeight?.floor(),
450462
width: cacheWidth,
451463
height: cacheHeight,
452-
gaplessPlayback: true,
453464
filterQuality: FilterQuality.low,
454465
errorBuilder: (context, object, stacktrace) => Center(
455466
child: Icon(Icons.image_not_supported),

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ dependencies:
3333
pull_to_refresh: ^2.0.0 # Top and bottom refresh gestures
3434
photo_view: ^0.14.0 # Zoom on fullscreen photos
3535
extended_text: ^11.0.0 # Text overflow on left side
36+
flutter_easyloading: ^3.0.5 # Show loading dialog
3637

3738
# Storage
3839
package_info_plus: ^3.1.2 # Get project info (version)

0 commit comments

Comments
 (0)