named_media_picker 0.0.1 copy "named_media_picker: ^0.0.1" to clipboard
named_media_picker: ^0.0.1 copied to clipboard

Flutter gallery media picker for Android and iOS that returns upload-ready files with real display names — not temporary image_picker cache filenames.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:named_media_picker/named_media_picker.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Named Media Picker Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFF2E7D32)),
        useMaterial3: true,
      ),
      home: const ExampleHomePage(),
    );
  }
}

class ExampleHomePage extends StatefulWidget {
  const ExampleHomePage({super.key});

  @override
  State<ExampleHomePage> createState() => _ExampleHomePageState();
}

class _ExampleHomePageState extends State<ExampleHomePage> {
  List<NamedMedia> _selected = const [];

  Future<void> _pick() async {
    final files = await NamedMediaPicker.pick(
      context,
      config: const NamedMediaPickerConfig(
        maxCount: 10,
        filter: NamedMediaFilter.all,
        theme: NamedMediaPickerTheme(
          appBarBackgroundColor: Color(0xFF2E7D32),
          selectedCheckBackgroundColor: Color(0xFF2E7D32),
        ),
      ),
    );

    if (!mounted) return;
    setState(() => _selected = files);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Named Media Picker')),
      body: _selected.isEmpty
          ? const Center(
              child: Text('No files selected yet.'),
            )
          : ListView.separated(
              padding: const EdgeInsets.all(16),
              itemCount: _selected.length,
              separatorBuilder: (_, _) => const Divider(height: 24),
              itemBuilder: (context, index) {
                final file = _selected[index];
                return Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(
                      file.displayName,
                      style: const TextStyle(
                        fontWeight: FontWeight.w600,
                        fontSize: 16,
                      ),
                    ),
                    const SizedBox(height: 6),
                    Text('Type: ${file.type.name}'),
                    Text('Upload as: ${file.uploadFilename}'),
                    if (file.hasLocation)
                      Text(
                        'Location: ${file.latitude}, ${file.longitude}',
                      ),
                    Text(
                      'Path: ${file.path}',
                      style: const TextStyle(fontSize: 12),
                    ),
                  ],
                );
              },
            ),
      floatingActionButton: FloatingActionButton.extended(
        onPressed: _pick,
        icon: const Icon(Icons.photo_library_outlined),
        label: const Text('Pick media'),
      ),
    );
  }
}
0
likes
160
points
32
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter gallery media picker for Android and iOS that returns upload-ready files with real display names — not temporary image_picker cache filenames.

Repository (GitHub)
View/report issues

Topics

#media #picker #gallery #image #upload

License

MIT (license)

Dependencies

flutter, photo_manager

More

Packages that depend on named_media_picker