add cameraedit

This commit is contained in:
2024-12-14 21:30:32 +01:00
parent 49a108905c
commit 578107c83c
3 changed files with 216 additions and 30 deletions

View File

@@ -1,3 +1,4 @@
import 'package:covas_mobile/pages/CameraEdit.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:http/http.dart' as http;
@@ -10,6 +11,9 @@ import 'dart:io';
import '../classes/events.dart';
import 'ItemMenu.dart';
import 'CameraEdit.dart';
import 'package:camera/camera.dart';
import '../classes/alert.dart';
import '../classes/eventAdded.dart';
@@ -26,15 +30,21 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: EditEvent(events: events),
home: EditEvent(
events: events,
imgPath: "",
),
);
}
}
class EditEvent extends StatefulWidget {
const EditEvent({Key? key, required this.events}) : super(key: key);
const EditEvent({Key? key, required this.events, required this.imgPath})
: super(key: key);
final Events? events;
final String imgPath;
@override
_EditEventState createState() => _EditEventState();
}
@@ -411,6 +421,14 @@ class _EditEventState extends State<EditEvent>
);
}
Future<void> popCamera() async {
await availableCameras().then((value) => Navigator.push(
context,
MaterialPageRoute(
builder: (_) =>
CameraEdit(camera: value.first, events: widget.events))));
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -425,37 +443,47 @@ class _EditEventState extends State<EditEvent>
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Padding(
if (widget.imgPath.isNotEmpty)
Padding(
padding: const EdgeInsets.only(top: 60.0),
child: Image.network(
imgUrl,
width: MediaQuery.of(context).size.width *
0.5, // 50% of screen width
height: MediaQuery.of(context).size.height * 0.5,
loadingBuilder: (BuildContext context, Widget child,
ImageChunkEvent? loadingProgress) {
if (loadingProgress == null) {
return child; // The image has finished loading
}
return Center(
child: CircularProgressIndicator(),
);
},
errorBuilder: (BuildContext context, Object error,
StackTrace? stackTrace) {
return Center(
child: Icon(Icons.error,
size: MediaQuery.of(context).size.width * 0.1),
);
},
)),
child: Center(
child: Container(
width: 200,
height: 150,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100.0)),
child: Image.file(File(widget.imgPath))),
),
),
if (widget.imgPath.isEmpty)
Padding(
padding: const EdgeInsets.only(top: 60.0),
child: Image.network(
imgUrl,
width: MediaQuery.of(context).size.width *
0.5, // 50% of screen width
height: MediaQuery.of(context).size.height * 0.5,
loadingBuilder: (BuildContext context, Widget child,
ImageChunkEvent? loadingProgress) {
if (loadingProgress == null) {
return child; // The image has finished loading
}
return Center(
child: CircularProgressIndicator(),
);
},
errorBuilder: (BuildContext context, Object error,
StackTrace? stackTrace) {
return Center(
child: Icon(Icons.error,
size: MediaQuery.of(context).size.width * 0.1),
);
},
)),
Padding(
padding: EdgeInsets.symmetric(horizontal: 15),
child: ElevatedButton.icon(
onPressed: () {
// Define your action here
print("Edit Image button pressed");
},
onPressed: popCamera,
icon: Icon(Icons.edit, size: 16), // Edit icon
label: Text("Edit Image"), // Button text
style: ElevatedButton.styleFrom(