Skip to content

Commit

Permalink
Refactor example (#137)
Browse files Browse the repository at this point in the history
  • Loading branch information
natsuk4ze committed Sep 2, 2023
1 parent e50450d commit 4ba91ab
Showing 1 changed file with 19 additions and 21 deletions.
40 changes: 19 additions & 21 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import 'package:flutter/services.dart';

import 'package:gal/gal.dart';

final navigatorKey = GlobalKey<NavigatorState>();

void main() => runApp(const App());

class App extends StatefulWidget {
Expand All @@ -21,10 +23,7 @@ class _AppState extends State<App> {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
useMaterial3: true,
colorSchemeSeed: Colors.green,
),
navigatorKey: navigatorKey,
home: Scaffold(
body: Builder(builder: (context) {
return Center(
Expand All @@ -43,26 +42,23 @@ class _AppState extends State<App> {
onPressed: () async {
final path = await getFilePath('assets/done.mp4');
await Gal.putVideo(path, album: album);
if (!context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(snackBar);
showSnackbar();
},
child: const Text('Save Video from file path'),
),
FilledButton(
onPressed: () async {
final path = await getFilePath('assets/done.jpg');
await Gal.putImage(path, album: album);
if (!context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(snackBar);
showSnackbar();
},
child: const Text('Save Image from file path'),
),
FilledButton(
onPressed: () async {
final bytes = await getBytesData('assets/done.jpg');
await Gal.putImageBytes(bytes, album: album);
if (!context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(snackBar);
showSnackbar();
},
child: const Text('Save Image from bytes'),
),
Expand All @@ -74,8 +70,7 @@ class _AppState extends State<App> {
path,
);
await Gal.putImage(path);
if (!context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(snackBar);
showSnackbar();
},
child: const Text('Download Image'),
),
Expand All @@ -87,8 +82,7 @@ class _AppState extends State<App> {
path,
);
await Gal.putVideo(path);
if (!context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(snackBar);
showSnackbar();
},
child: const Text('Download Video'),
),
Expand Down Expand Up @@ -118,13 +112,17 @@ class _AppState extends State<App> {

String? get album => toAlbum ? 'Album' : null;

SnackBar get snackBar => SnackBar(
content: const Text('Saved! ✅'),
action: SnackBarAction(
label: 'Gallery ->',
onPressed: () async => Gal.open(),
),
);
void showSnackbar() {
final context = navigatorKey.currentContext;
if (context == null || !context.mounted) return;
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: const Text('Saved! ✅'),
action: SnackBarAction(
label: 'Gallery ->',
onPressed: () async => Gal.open(),
),
));
}

Future<String> getFilePath(String path) async {
final byteData = await rootBundle.load(path);
Expand Down

0 comments on commit 4ba91ab

Please sign in to comment.