choice between camera and gallery

CHOICE_PHOTO_LDE
Lucas Delanier 2 years ago
parent e97ee2d25d
commit a6346c34ed

@ -4,6 +4,7 @@ import 'package:animated_appear/animated_appear.dart';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:circular_reveal_animation/circular_reveal_animation.dart'; import 'package:circular_reveal_animation/circular_reveal_animation.dart';
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
@ -52,9 +53,9 @@ class _EditablePostComponentState extends State<EditablePostComponent>
super.initState(); super.initState();
} }
Future pickImage() async { Future pickImage(ImageSource source) async {
try { try {
final image = await ImagePicker().pickImage(source: ImageSource.gallery); final image = await ImagePicker().pickImage(source: source);
if (image == null) return; if (image == null) return;
final imageTemp = File(image.path); final imageTemp = File(image.path);
setState(() { setState(() {
@ -321,7 +322,7 @@ class _EditablePostComponentState extends State<EditablePostComponent>
image = null; image = null;
}); });
} else { } else {
pickImage(); _showActionSheet(context);
} }
} }
@ -334,4 +335,43 @@ class _EditablePostComponentState extends State<EditablePostComponent>
searchLocation(); searchLocation();
} }
} }
void _showActionSheet(BuildContext context) {
showCupertinoModalPopup<void>(
context: context,
barrierColor: Colors.black.withOpacity(0.5),
builder: (BuildContext context) => Container(
color: Colors.black,
child: CupertinoActionSheet(
title: Text(
'Ajouter une photo',
style: GoogleFonts.plusJakartaSans(fontWeight: FontWeight.bold),
),
actions: <CupertinoActionSheetAction>[
CupertinoActionSheetAction(
onPressed: () {
pickImage(ImageSource.gallery);
Navigator.pop(context);
},
child: const Text('Gallerie'),
),
CupertinoActionSheetAction(
onPressed: () {
pickImage(ImageSource.camera);
Navigator.pop(context);
},
child: const Text('Prendre un selfie'),
),
],
cancelButton: CupertinoActionSheetAction(
isDestructiveAction: true,
onPressed: () {
Navigator.pop(context);
},
child: const Text('Annuler'),
),
),
),
);
}
} }

@ -1,6 +1,7 @@
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:flutter/cupertino.dart';
import '../components/city_list_component.dart'; import '../components/city_list_component.dart';
import '../services/GeoApi.dart'; import '../services/GeoApi.dart';
@ -71,7 +72,8 @@ class _SearchCityScreenState extends State<SearchCityScreen> {
}); });
} else { } else {
return Center( return Center(
child: CircularProgressIndicator( child: CupertinoActivityIndicator(
radius: 15,
color: grayColor, color: grayColor,
), ),
); );

Loading…
Cancel
Save