refactoring and checkpoint

This commit is contained in:
DahoudG
2024-09-24 00:32:20 +00:00
parent dc73ba7dcc
commit 6b12cfeb41
159 changed files with 8119 additions and 1535 deletions

View File

@@ -0,0 +1,79 @@
import 'dart:io';
import 'package:camerawesome/camerawesome_plugin.dart';
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import 'package:path_provider/path_provider.dart';
import '../../core/constants/colors.dart';
class CreateStoryPage extends StatefulWidget {
const CreateStoryPage({super.key});
@override
_CreateStoryPageState createState() => _CreateStoryPageState();
}
class _CreateStoryPageState extends State<CreateStoryPage> {
final Logger logger = Logger();
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true, // Permet à l'AppBar de passer en mode transparent
appBar: AppBar(
title: const Text('Créer une nouvelle story'),
backgroundColor: Colors.transparent, // Transparence
elevation: 0, // Pas d'ombre pour l'en-tête
leading: IconButton(
icon: Icon(Icons.arrow_back, color: AppColors.onPrimary), // Couleur adaptative
onPressed: () {
Navigator.of(context).pop(); // Bouton retour
},
),
),
body: Stack(
children: [
CameraAwesomeBuilder.awesome(
saveConfig: SaveConfig.photoAndVideo(
photoPathBuilder: (sensors) async {
final sensor = sensors.first; // Utilisation du premier capteur
final Directory extDir = await getTemporaryDirectory();
final Directory testDir = await Directory('${extDir.path}/camerawesome').create(recursive: true);
final String filePath = '${testDir.path}/${DateTime.now().millisecondsSinceEpoch}.jpg';
return SingleCaptureRequest(filePath, sensor); // CaptureRequest pour la photo
},
videoPathBuilder: (sensors) async {
final sensor = sensors.first; // Utilisation du premier capteur
final Directory extDir = await getTemporaryDirectory();
final Directory testDir = await Directory('${extDir.path}/camerawesome').create(recursive: true);
final String filePath = '${testDir.path}/${DateTime.now().millisecondsSinceEpoch}.mp4';
return SingleCaptureRequest(filePath, sensor); // CaptureRequest pour la vidéo
},
),
sensorConfig: SensorConfig.single(
sensor: Sensor.position(SensorPosition.back), // Configuration correcte du capteur
),
onMediaTap: (mediaCapture) async {
final captureRequest = mediaCapture.captureRequest;
if (captureRequest is SingleCaptureRequest) {
final filePath = captureRequest.path; // Accès au chemin de fichier
if (filePath != null) {
logger.i('Média capturé : $filePath');
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text('Média sauvegardé à $filePath'),
backgroundColor: AppColors.accentColor, // Couleur adaptative du snack bar
));
} else {
logger.e('Erreur : Aucun fichier capturé.');
}
} else {
logger.e('Erreur : Capture non reconnue.');
}
},
),
],
),
);
}
}