KasemJaffer / media_picker_builder

A Flutter plugin that returns multimedia picker data such as folders and its content path list to build your own custom flutter picker
Apache License 2.0
24 stars 29 forks source link

unable to open my custom widget picker #6

Closed jpainam closed 4 years ago

jpainam commented 4 years ago

Hi, i'm not able to open my custom widget using the api your provider PickerWidget. The example you gave uses a modalBottomSheet. What if i want to use a widget that takes the whole screen? Using this code. nothing is opened:

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:maraka/screens/publish/picker/picker_widget.dart';
import 'package:media_picker_builder/data/media_file.dart';
import 'package:media_picker_builder/media_picker_builder.dart';
import 'package:permission_handler/permission_handler.dart';

class PickImageScreen extends StatefulWidget {
  @override
  _PickImageScreenState createState() => _PickImageScreenState();
}

class _PickImageScreenState extends State<PickImageScreen> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Picker Demo'),
        ),
        body: Center(
          child: RaisedButton(
            child: const Text("Albums"),
            onPressed: () {
              _checkPermission().then((granted) {
                if (!granted) return;

                // To build your own custom picker use this api

                PickerWidget(
                  withImages: true,
                  withVideos: true,
                  onDone: (Set<MediaFile> selectedFiles) {
                    print(selectedFiles);
                    Navigator.pop(context);
                  },
                  onCancel: () {
                    print("Cancelled");
                    //Navigator.pop(context);
                  },
                );

                // If you are happy with the example picker then you use this!
                //_buildPicker();
              });
            },
          ),
        ),
    );
  }

  Future<bool> _checkPermission() async {
    final permissionStorageGroup =
    Platform.isIOS ? PermissionGroup.photos : PermissionGroup.storage;
    Map<PermissionGroup, PermissionStatus> res =
    await PermissionHandler().requestPermissions([
      permissionStorageGroup,
    ]);
    return res[permissionStorageGroup] == PermissionStatus.granted;
  }
}