1- import 'package:file_picker/file_picker.dart' ;
21import 'package:flutter/material.dart' ;
32import 'package:flutter/rendering.dart' ;
43import 'package:flutter/widgets.dart' ;
5- import 'package:flutter_speed_dial/flutter_speed_dial.dart' ;
6- import 'package:image_picker/image_picker.dart' ;
74
85import 'package:piwigo_ng/api/ImageAPI.dart' ;
96import 'package:piwigo_ng/constants/SettingsConstants.dart' ;
10- import 'package:piwigo_ng/services/UploadStatusProvider.dart' ;
117import 'package:piwigo_ng/views/ImageViewPage.dart' ;
128import 'package:piwigo_ng/views/components/content_grid.dart' ;
13- import 'package:piwigo_ng/views/components/snackbars.dart' ;
149
15- import 'package:piwigo_ng/views/UploadGalleryViewPage.dart' ;
1610import 'package:piwigo_ng/views/components/dialogs/dialogs.dart' ;
17- import 'package:provider/provider.dart' ;
1811
1912
2013class TagViewPage extends StatefulWidget {
@@ -67,12 +60,11 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
6760 }
6861
6962 void _onEditSelection () async {
70- // Navigator.of(context).push(
71- // MaterialPageRoute(builder: (_) => EditImagesPage(
72- // catId: int.parse(widget.category),
73- // images: _selectedItems.values.toList(),
74- // ))
75- // );
63+ Navigator .of (context).push (
64+ MaterialPageRoute (builder: (_) => EditImagesPage (
65+ images: _selectedItems.values.toList (),
66+ ))
67+ );
7668 }
7769 void _onDownloadSelection () async {
7870 if (await confirmDownloadDialog (context,
@@ -102,73 +94,6 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
10294 await downloadImages (selection);
10395 }
10496 }
105- void _onMoveCopySelection () async {
106- int choice = await chooseMoveCopyImage (context,
107- content: appStrings (context).moveOrCopyImage_title (_selectedItems.length)
108- );
109-
110- switch (choice) {
111- case 0 : showDialog (context: context,
112- builder: (context) {
113- return MoveOrCopyDialog (
114- title: appStrings (context).moveImage_title,
115- subtitle: appStrings (context).moveImage_selectAlbum (_selectedItems.length, '' ),
116- catName: appStrings (context).categoryDiscoverFavorites_title,
117- isImage: true ,
118- onSelected: (item) async {
119- if ( await confirmMoveDialog (context,
120- content: appStrings (context).moveImage_message (_selectedItems.length, "" , item.name),
121- )) {
122- int nbMoved = await moveImages (context,
123- _selectedItems.values.toList (),
124- int .parse (item.id)
125- );
126- ScaffoldMessenger .of (context).showSnackBar (imagesMovedSnackBar (context, nbMoved));
127- Navigator .of (context).pop ();
128- }
129- },
130- );
131- }
132- ).whenComplete (() {
133- setState (() {
134- _selectedItems.clear ();
135- _isEditMode = false ;
136- });
137- _getData ();
138- });
139- break ;
140- case 1 : showDialog (context: context,
141- builder: (context) {
142- return MoveOrCopyDialog (
143- title: appStrings (context).copyImage_title,
144- subtitle: appStrings (context).copyImage_selectAlbum (_selectedItems.length, '' ),
145- // catName: widget.title,
146- isImage: true ,
147- onSelected: (item) async {
148- if ( await confirmAssignDialog (context,
149- content: appStrings (context).copyImage_message (_selectedItems.length, "" , item.name),
150- )) {
151- int nbCopied = await assignImages (context,
152- _selectedItems.values.toList (),
153- int .parse (item.id)
154- );
155- ScaffoldMessenger .of (context).showSnackBar (imagesAssignedSnackBar (context, nbCopied));
156- Navigator .of (context).pop ();
157- }
158- },
159- );
160- }
161- ).whenComplete (() {
162- setState (() {
163- _selectedItems.clear ();
164- _isEditMode = false ;
165- });
166- _getData ();
167- });
168- break ;
169- default : break ;
170- }
171- }
17297 void _onDeleteSelection () async {
17398 int choice = await confirmRemoveImagesFromAlbumDialog (context,
17499 content: appStrings (context).deleteImage_message (_selectedItems.length),
@@ -232,7 +157,7 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
232157 isEditMode: _isEditMode || false ,
233158 selectedItems: _selectedItems,
234159 loadMoreImages: (int page) {
235- print ('Loading page $page of tag ${widget .tag } images ' );
160+ print ('Loading page $page of tag ${widget .tag }' );
236161 return fetchTagImages (widget.tag, page);
237162 },
238163 setEditMode: (bool isEditMode, {image}) => {
@@ -270,8 +195,6 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
270195 ),
271196 ),
272197 ),
273- // floatingActionButton: _isEditMode ?
274- // Center() : createFloatingActionButton(),
275198 bottomNavigationBar: _isEditMode ?
276199 createBottomBar () : Container (height: 0 ),
277200 );
@@ -327,118 +250,6 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
327250 );
328251 }
329252
330- // Widget createUploadActionButton() {
331- // ThemeData _theme = Theme.of(context);
332- // return SpeedDial(
333- // spaceBetweenChildren: 10,
334- // childMargin: EdgeInsets.only(bottom: 17, right: 10),
335- // animatedIcon: AnimatedIcons.menu_close,
336- // animatedIconTheme: IconThemeData(size: 22.0),
337- // closeManually: false,
338- // curve: Curves.bounceIn,
339- // backgroundColor: _theme.floatingActionButtonTheme.backgroundColor,
340- // foregroundColor: _theme.floatingActionButtonTheme.foregroundColor,
341- // overlayColor: Colors.black,
342- // elevation: 5.0,
343- // overlayOpacity: 0.5,
344- // shape: CircleBorder(),
345- // children: [
346- // SpeedDialChild(
347- // elevation: 5,
348- // labelWidget: Text(appStrings(context).createNewAlbum_title, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: Colors.white)),
349- // child: Icon(Icons.create_new_folder),
350- // backgroundColor: _theme.floatingActionButtonTheme.backgroundColor,
351- // foregroundColor: _theme.floatingActionButtonTheme.foregroundColor,
352- // onTap: () async {
353- // showDialog(
354- // context: context,
355- // builder: (BuildContext context) {
356- // return CreateCategoryDialog(catId: widget.category);
357- // }
358- // ).whenComplete(() {
359- // _getData();
360- // });
361- // },
362- // ),
363- // SpeedDialChild(
364- // elevation: 5,
365- // labelWidget: Text(appStrings(context).categoryUpload_images, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: Colors.white)),
366- // child: Icon(Icons.add_to_photos),
367- // backgroundColor: _theme.floatingActionButtonTheme.backgroundColor,
368- // foregroundColor: _theme.floatingActionButtonTheme.foregroundColor,
369- // onTap: () async {
370- // try {
371- // ScaffoldMessenger.of(context).removeCurrentSnackBar();
372- // ScaffoldMessenger.of(context).showSnackBar(SnackBar(
373- // content: Row(
374- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
375- // mainAxisSize: MainAxisSize.min,
376- // children: [
377- // Text(appStrings(context).loadingHUD_label),
378- // CircularProgressIndicator(),
379- // ],
380- // ),
381- // duration: Duration(days: 365),
382- // ));
383- // final List<XFile> images = ((await FilePicker.platform.pickFiles(
384- // type: FileType.media,
385- // allowMultiple: true,
386- // )) ?.files ?? []).map<XFile>((e) => XFile(e.path, name: e.name, bytes: e.bytes)).toList();
387- // ScaffoldMessenger.of(context).removeCurrentSnackBar();
388- // if(images.isNotEmpty) {
389- // Navigator.push(context, MaterialPageRoute(
390- // builder: (context) => UploadGalleryViewPage(imageData: images, category: widget.category)
391- // )).whenComplete(() {
392- // setState(() {
393- // print('After upload'); // refresh
394- // });
395- // });
396- // }
397- // } catch (e) {
398- // print('${e.toString()}');
399- // }
400- // }
401- // ),
402- // SpeedDialChild(
403- // elevation: 5,
404- // labelWidget: Text(appStrings(context).categoryUpload_take, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: Colors.white)),
405- // child: Icon(Icons.photo_camera_rounded),
406- // backgroundColor: _theme.floatingActionButtonTheme.backgroundColor,
407- // foregroundColor: _theme.floatingActionButtonTheme.foregroundColor,
408- // onTap: () async {
409- // try {
410- // ScaffoldMessenger.of(context).removeCurrentSnackBar();
411- // ScaffoldMessenger.of(context).showSnackBar(SnackBar(
412- // content: Row(
413- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
414- // mainAxisSize: MainAxisSize.min,
415- // children: [
416- // Text(appStrings(context).loadingHUD_label),
417- // CircularProgressIndicator(),
418- // ],
419- // ),
420- // duration: Duration(days: 365),
421- // ));
422- // final XFile image = await ImagePicker().pickImage(source: ImageSource.camera);
423- // ScaffoldMessenger.of(context).removeCurrentSnackBar();
424- // if(image != null) {
425- // Navigator.push(context, MaterialPageRoute(
426- // builder: (context) => UploadGalleryViewPage(imageData: [image], category: widget.category)
427- // )).whenComplete(() {
428- // setState(() {
429- // print('After upload'); // refresh
430- // });
431- // });
432- // }
433- // } catch (e) {
434- // print('Dio error ${e.toString()}');
435- // }
436- // }
437- // ),
438- // ],
439- // );
440- // }
441-
442253 Widget createBottomBar () {
443254 ThemeData _theme = Theme .of (context);
444255 return BottomNavigationBar (
@@ -451,9 +262,6 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
451262 case 1 :
452263 _onDownloadSelection ();
453264 break ;
454- case 2 :
455- _onMoveCopySelection ();
456- break ;
457265 case 3 :
458266 _onDeleteSelection ();
459267 break ;
@@ -471,10 +279,6 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
471279 icon: Icon (Icons .download_rounded, color: _theme.iconTheme.color),
472280 label: appStrings (context).imageOptions_download,
473281 ),
474- BottomNavigationBarItem (
475- icon: Icon (Icons .reply_outlined, color: _theme.iconTheme.color),
476- label: appStrings (context).moveImage_title,
477- ),
478282 BottomNavigationBarItem (
479283 icon: Icon (Icons .delete_outline, color: _theme.errorColor),
480284 label: appStrings (context).deleteImage_delete,
@@ -489,45 +293,4 @@ class _TagViewPageState extends State<TagViewPage> with SingleTickerProviderStat
489293 currentIndex: 0 ,
490294 );
491295 }
492-
493- // Widget createFloatingActionButton() {
494- // final uploadStatusProvider = Provider.of<UploadStatusNotifier>(context);
495- // return Padding(
496- // padding: const EdgeInsets.all(8.0),
497- // child: Stack(
498- // children: <Widget>[
499- // Align(
500- // alignment: Alignment.bottomRight,
501- // child: Container(
502- // margin: EdgeInsets.only(bottom: 0, right: widget.isAdmin? 70 : 0),
503- // child: FloatingActionButton(
504- // backgroundColor: Color(0xff868686),
505- // onPressed: () {
506- // Navigator.of(context).popUntil((route) => route.isFirst);
507- // },
508- // child: uploadStatusProvider.status ?
509- // Stack(
510- // alignment: Alignment.center,
511- // children: [
512- // SizedBox(
513- // height: 55,
514- // width: 55,
515- // child: CircularProgressIndicator(
516- // strokeWidth: 5,
517- // value: uploadStatusProvider.progress,
518- // ),
519- // ),
520- // Text("${uploadStatusProvider.getRemaining()}",
521- // style: TextStyle(fontSize: 16),
522- // ),
523- // ],
524- // ) :
525- // Icon(Icons.home, color: Colors.grey.shade200, size: 30),
526- // ),
527- // ),
528- // ),
529- // ],
530- // ),
531- // );
532- // }
533296}
0 commit comments