-3.1 C
New York
Thursday, January 30, 2025

ios – Flutter Get random picture from gallery


I’m growing an app utilizing flutterflow and must randomly select a picture from the consumer’s gallery with out consumer motion (in each iOS and android). Clearly being a customized perform I used to be considering of writing it in dart.
I’ve already created this perform and it really works very properly in android, however not in iOS.
That is the code I wrote:

// Computerized FlutterFlow imports
import '/backend/backend.dart';
import '/backend/schema/structs/index.dart';
import '/backend/schema/enums/enums.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/actions/index.dart'; // Imports different customized actions
import '/flutter_flow/custom_functions.dart'; // Imports customized features
import 'package deal:flutter/materials.dart';
// Start customized motion code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!

import 'dart:io';
import 'dart:math';
import 'package deal:file_picker/file_picker.dart';

Future getRandomImagePath() async {
  ultimate directories = [
    Directory('/storage/emulated/0/DCIM'),
    Directory('/storage/emulated/0/Pictures'),
    Directory('/DCIM'),
    Directory('/Pictures'),
    Directory('/storage/emulated/0/DCIM/Camera'),
  ];

  Record imageFiles = [];
  Iterable newDirectories = [];

//search album inside folder
  for (var listing in directories) {
    if (await listing.exists()) {
      ultimate parts = await listing.checklist().toList();
      print(parts);
      newDirectories = parts.the place((dir) => dir is Listing);
    }
  }

  for (var listing in newDirectories) {
    if (await listing.exists() && listing is Listing) {
      directories.add(listing);
    }
  }

//search pictures inside folder
  for (var listing in directories) {
    if (await listing.exists()) {
      ultimate information = await listing.checklist().toList();
      print('In questa $listing io vedo questi $information');

      for (var file in information) {
        if (file is File &&
            (file.path.endsWith('.jpg') ||
                file.path.endsWith('.jpeg') ||
                file.path.endsWith('.png'))) {
          imageFiles.add(file);
        }
      }
    }
  }

  if (imageFiles.isNotEmpty) {
    ultimate random = Random();
    ultimate randomIndex = random.nextInt(imageFiles.size);
    return imageFiles.elementAt(randomIndex).path;
  }

  return ""; // No picture discovered
}

What I want is:

  • possibility 1: modify this to make it work for each iOS and Android
  • possibility 2: have one other perform to do the identical factor on iOS

I’ve tried numerous issues however haven’t been capable of finding a solution to make it work.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles