Refactor camera handling to remove image quality setting and streamline processing logic

This commit is contained in:
2026-05-09 11:24:08 +02:00
parent 1ee2758756
commit 0171ee6141
2 changed files with 9 additions and 21 deletions

View File

@@ -48,7 +48,6 @@ class QrUploadDialog extends StatelessWidget {
style: TextStyle(fontSize: 14, color: Colors.grey),
),
const SizedBox(height: 24),
// IL CUORE DELLA MAGIA
Container(
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(

View File

@@ -275,25 +275,15 @@ class _SharedMobileUploadScreenState extends State<SharedMobileUploadScreen> {
// --- LOGICA FOTOCAMERA E LIBRERIA ---
Future<void> _handleCamera() async {
final picker = ImagePicker();
// Apriamo la fotocamera. Qui NON mettiamo il loader perché
// l'utente sta guardando l'app nativa del telefono.
final photo = await picker.pickImage(
source: ImageSource.camera,
imageQuality: 80,
);
if (photo != null) {
// 1. Accendiamo l'overlay "Elaborazione foto..."
setState(() => _isProcessingLocal = true);
// 2. TRUCCO NINJA: Lasciamo "respirare" Flutter per 50ms
// in modo che faccia in tempo a disegnare l'overlay grigio sullo schermo
// prima che readAsBytes() blocchi il processore!
await Future.delayed(const Duration(milliseconds: 50));
await Future.delayed(const Duration(milliseconds: 100));
try {
// 3. Ora facciamo il lavoro pesante
final picker = ImagePicker();
// NIENTE PIÙ IMAGE QUALITY!
final photo = await picker.pickImage(source: ImageSource.camera);
if (photo != null) {
final photoBytes = await photo.readAsBytes();
final photoSize = await photo.length();
@@ -307,10 +297,9 @@ class _SharedMobileUploadScreenState extends State<SharedMobileUploadScreen> {
setState(() {
_stagedFiles.add(platformFile);
});
} finally {
// 4. Spegniamo l'overlay, sia che vada a buon fine, sia che ci sia un errore
setState(() => _isProcessingLocal = false);
}
} finally {
setState(() => _isProcessingLocal = false);
}
}