@@ -56,6 +56,7 @@ class _MyHomePageState extends State<MyHomePage> {
5656 final TextEditingController maxWidthController = TextEditingController ();
5757 final TextEditingController maxHeightController = TextEditingController ();
5858 final TextEditingController qualityController = TextEditingController ();
59+ final TextEditingController limitController = TextEditingController ();
5960
6061 Future <void > _playVideo (XFile ? file) async {
6162 if (file != null && mounted) {
@@ -96,19 +97,21 @@ class _MyHomePageState extends State<MyHomePage> {
9697 source: source, maxDuration: const Duration (seconds: 10 ));
9798 await _playVideo (file);
9899 } else if (isMultiImage) {
99- await _displayPickImageDialog (context,
100- ( double ? maxWidth, double ? maxHeight , int ? quality ) async {
100+ await _displayPickImageDialog (context, true , ( double ? maxWidth,
101+ double ? maxHeight, int ? quality , int ? limit ) async {
101102 try {
102103 final List <XFile > pickedFileList = isMedia
103104 ? await _picker.pickMultipleMedia (
104105 maxWidth: maxWidth,
105106 maxHeight: maxHeight,
106107 imageQuality: quality,
108+ limit: limit,
107109 )
108110 : await _picker.pickMultiImage (
109111 maxWidth: maxWidth,
110112 maxHeight: maxHeight,
111113 imageQuality: quality,
114+ limit: limit,
112115 );
113116 setState (() {
114117 _mediaFileList = pickedFileList;
@@ -120,8 +123,8 @@ class _MyHomePageState extends State<MyHomePage> {
120123 }
121124 });
122125 } else if (isMedia) {
123- await _displayPickImageDialog (context,
124- ( double ? maxWidth, double ? maxHeight , int ? quality ) async {
126+ await _displayPickImageDialog (context, false , ( double ? maxWidth,
127+ double ? maxHeight, int ? quality , int ? limit ) async {
125128 try {
126129 final List <XFile > pickedFileList = < XFile > [];
127130 final XFile ? media = await _picker.pickMedia (
@@ -142,8 +145,8 @@ class _MyHomePageState extends State<MyHomePage> {
142145 }
143146 });
144147 } else {
145- await _displayPickImageDialog (context,
146- ( double ? maxWidth, double ? maxHeight , int ? quality ) async {
148+ await _displayPickImageDialog (context, false , ( double ? maxWidth,
149+ double ? maxHeight, int ? quality , int ? limit ) async {
147150 try {
148151 final XFile ? pickedFile = await _picker.pickImage (
149152 source: source,
@@ -454,7 +457,7 @@ class _MyHomePageState extends State<MyHomePage> {
454457 }
455458
456459 Future <void > _displayPickImageDialog (
457- BuildContext context, OnPickImageCallback onPick) async {
460+ BuildContext context, bool isMulti, OnPickImageCallback onPick) async {
458461 return showDialog (
459462 context: context,
460463 builder: (BuildContext context) {
@@ -483,6 +486,13 @@ class _MyHomePageState extends State<MyHomePage> {
483486 decoration: const InputDecoration (
484487 hintText: 'Enter quality if desired' ),
485488 ),
489+ if (isMulti)
490+ TextField (
491+ controller: limitController,
492+ keyboardType: TextInputType .number,
493+ decoration: const InputDecoration (
494+ hintText: 'Enter limit if desired' ),
495+ ),
486496 ],
487497 ),
488498 actions: < Widget > [
@@ -504,7 +514,10 @@ class _MyHomePageState extends State<MyHomePage> {
504514 final int ? quality = qualityController.text.isNotEmpty
505515 ? int .parse (qualityController.text)
506516 : null ;
507- onPick (width, height, quality);
517+ final int ? limit = limitController.text.isNotEmpty
518+ ? int .parse (limitController.text)
519+ : null ;
520+ onPick (width, height, quality, limit);
508521 Navigator .of (context).pop ();
509522 }),
510523 ],
@@ -514,7 +527,7 @@ class _MyHomePageState extends State<MyHomePage> {
514527}
515528
516529typedef OnPickImageCallback = void Function (
517- double ? maxWidth, double ? maxHeight, int ? quality);
530+ double ? maxWidth, double ? maxHeight, int ? quality, int ? limit );
518531
519532class AspectRatioVideo extends StatefulWidget {
520533 const AspectRatioVideo (this .controller, {super .key});
0 commit comments