default_path_provider 0.1.0 copy "default_path_provider: ^0.1.0" to clipboard
default_path_provider: ^0.1.0 copied to clipboard

discontinued

A plugin that provide path to the default android directories like Downloads, Pictures, etc.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';

import 'package:dio/dio.dart';
import 'package:default_path_provider/default_path_provider.dart';
import 'package:permission_handler/permission_handler.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _imageURL =
      "https://images.unsplash.com/photo-1497250681960-ef046c08a56e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=334&q=80";

  int _progress = 0;
  bool _isDownloading = false;

  ///Checking for storage permissions
  _checkPermission() async {
    PermissionStatus permission = await PermissionHandler()
        .checkPermissionStatus(PermissionGroup.storage);
    if (permission != PermissionStatus.granted) {
      Map<PermissionGroup, PermissionStatus> permissions =
          await PermissionHandler()
              .requestPermissions([PermissionGroup.storage]);
      if (permissions[PermissionGroup.storage] != PermissionStatus.granted) {
        exit(1);
      }
    }
  }

  ///starting download after getting path
  _startDownload(dir) async {
    Dio dio = Dio();
    try {
      await dio.download(_imageURL, "$dir/myimage.jpeg",
          onReceiveProgress: (rec, total) {
        setState(() {
          _progress = ((rec / total) * 100).toInt();
          if (_progress == 100) {
            if (this.mounted) {
              _isDownloading = false;
            }
          }
        });
      });
    } catch (e) {
      print(e);
      if (this.mounted) {
        setState(() {
          _isDownloading = false;
        });
      }
    }
  }

  ///Save the image to downloads directory
  _saveToDownloads() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getDownloadDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to pictures directory
  _saveToPictures() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getPicturesDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to DCIM directory
  _saveToDCIM() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getDCIMDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to Notification directory
  _saveToNotifications() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getNotificationsDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to Movies directory
  _saveToMovies() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getMoviesDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to Alarm directory
  _saveToAlarms() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getAlarmsDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to Music directory
  _saveToMusic() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getMusicDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to documents directory
  _saveToDocuments() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getDocumentsDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to ringtone directory
  _saveToRingtone() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getRingtonesDirectoryPath;
    _startDownload(dir);
  }

  ///Save the image to podcast directory
  _saveToPodcast() async {
    if (this.mounted) {
      setState(() {
        _isDownloading = true;
      });
    }
    var dir = await DefaultPathProvider.getPodcastDirectoryPath;
    _startDownload(dir);
  }

  @override
  void initState() {
    super.initState();
    _checkPermission();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          body: SafeArea(
        child: _isDownloading
            ? Container(
                child: Center(
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      CircularProgressIndicator(),
                      SizedBox(
                        height: 10.0,
                      ),
                      Text("Downloading..."),
                    ],
                  ),
                ),
              )
            : Container(
                padding: EdgeInsets.all(10.0),
                width: double.infinity,
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    Stack(
                      alignment: Alignment.center,
                      children: <Widget>[
                        CircularProgressIndicator(),
                        Padding(
                          padding: EdgeInsets.all(10.0),
                          child: ClipRRect(
                            child: Image.network(
                              _imageURL,
                              height: 200,
                              width: double.infinity,
                              fit: BoxFit.cover,
                            ),
                            borderRadius: BorderRadius.circular(10.0),
                          ),
                        ),
                      ],
                    ),
                    SizedBox(
                      height: 10.0,
                    ),
                    Expanded(
                      child: ListView(
                        children: <Widget>[
                          RaisedButton.icon(
                            onPressed: () => _saveToDownloads(),
                            label: Text("Save in Downloads"),
                            icon: Icon(Icons.file_download),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.camera_alt),
                            onPressed: () => _saveToDCIM(),
                            label: Text("Save in DCIM"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.notifications),
                            onPressed: () => _saveToNotifications(),
                            label: Text("Save in Notification"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.movie),
                            onPressed: () => _saveToMovies(),
                            label: Text("Save in Movies"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.image),
                            onPressed: () => _saveToPictures(),
                            label: Text("Save in Pictures"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.alarm),
                            onPressed: () => _saveToAlarms(),
                            label: Text("Save in Alarm"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.library_music),
                            onPressed: () => _saveToMusic(),
                            label: Text("Save in Music"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.assessment),
                            onPressed: () => _saveToDocuments(),
                            label: Text("Save in Document"),
                          ),
                          RaisedButton.icon(
                            icon: Icon(Icons.music_note),
                            onPressed: () => _saveToRingtone(),
                            label: Text("Save in Ringtone"),
                          ),
                          RaisedButton(
                            onPressed: () => _saveToPodcast(),
                            child: Text("Save in Podcast"),
                          ),
                        ],
                      ),
                    ),
                  ],
                ),
              ),
      )),
    );
  }
}
2
likes
25
pub points
3%
popularity

Publisher

unverified uploader

A plugin that provide path to the default android directories like Downloads, Pictures, etc.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on default_path_provider