mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-13 15:58:55 +03:30
2.2.0
This commit is contained in:
Regular → Executable
+38
-11
@@ -1,10 +1,14 @@
|
||||
import 'package:cssd/config/routes.dart';
|
||||
// ignore_for_file: invalid_use_of_visible_for_testing_member, deprecated_member_use
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:cssd/providers/items.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class UploaderImage extends StatelessWidget {
|
||||
class UploaderImage extends StatefulWidget {
|
||||
final double deviceBlockSize;
|
||||
final ItemProvider providerObject;
|
||||
const UploaderImage({
|
||||
@@ -13,6 +17,11 @@ class UploaderImage extends StatelessWidget {
|
||||
required this.providerObject,
|
||||
});
|
||||
|
||||
@override
|
||||
State<UploaderImage> createState() => _UploaderImageState();
|
||||
}
|
||||
|
||||
class _UploaderImageState extends State<UploaderImage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
@@ -24,18 +33,18 @@ class UploaderImage extends StatelessWidget {
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 20),
|
||||
height: providerObject.catchImages.length != 0 ? 60 : 0,
|
||||
height: widget.providerObject.catchImages.length != 0 ? 60 : 0,
|
||||
child: ImageBox(
|
||||
deviceBlockSize: deviceBlockSize,
|
||||
itemProvider: providerObject,
|
||||
deviceBlockSize: widget.deviceBlockSize,
|
||||
itemProvider: widget.providerObject,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: providerObject.catchImages.length != 0 ? 10 : 0,
|
||||
height: widget.providerObject.catchImages.length != 0 ? 10 : 0,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
await loadAssets(context);
|
||||
await loadAssetsFromFilePicker(context);
|
||||
},
|
||||
child: Container(
|
||||
width: MediaQuery.of(context).size.width - 40,
|
||||
@@ -57,9 +66,7 @@ class UploaderImage extends StatelessWidget {
|
||||
),
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
await Navigator.of(context)
|
||||
.pushNamed(Routes.captureImageScreen);
|
||||
// await captureImage(context);
|
||||
await loadAssetsFromCamera(context);
|
||||
},
|
||||
child: Container(
|
||||
width: MediaQuery.of(context).size.width - 40,
|
||||
@@ -82,7 +89,7 @@ class UploaderImage extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> loadAssets(BuildContext context) async {
|
||||
Future<void> loadAssetsFromFilePicker(BuildContext context) async {
|
||||
var providerObject = Provider.of<ItemProvider>(context, listen: false);
|
||||
List<PlatformFile> files = providerObject.catchImages;
|
||||
try {
|
||||
@@ -98,6 +105,26 @@ class UploaderImage extends StatelessWidget {
|
||||
providerObject.setCatchImages(files);
|
||||
providerObject.setImages();
|
||||
}
|
||||
|
||||
Future<void> loadAssetsFromCamera(BuildContext context) async {
|
||||
var providerObject = Provider.of<ItemProvider>(context, listen: false);
|
||||
List<PlatformFile> _catchImages = [];
|
||||
var image = await ImagePicker.platform.pickImage(
|
||||
source: ImageSource.camera,
|
||||
);
|
||||
if (image != null) {
|
||||
_catchImages.add(
|
||||
PlatformFile(
|
||||
path: image.path,
|
||||
name: "item_image",
|
||||
bytes: File(image.path).readAsBytesSync(),
|
||||
size: File(image.path).lengthSync(),
|
||||
),
|
||||
);
|
||||
providerObject.setCatchImages(_catchImages);
|
||||
providerObject.setImages();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ImageBox extends StatelessWidget {
|
||||
|
||||
Reference in New Issue
Block a user