step 18 : add dropdown seting camera
This commit is contained in:
@@ -78,6 +78,13 @@ class Constant {
|
||||
);
|
||||
}
|
||||
|
||||
static TextStyle titlePosisiHP({required BuildContext context}) {
|
||||
return TextStyle(
|
||||
fontSize: Constant.getActualYPhone(context: context, y: 18),
|
||||
fontWeight: FontWeight.normal,
|
||||
);
|
||||
}
|
||||
|
||||
static TextStyle titleInputan600({required BuildContext context}) {
|
||||
return TextStyle(
|
||||
fontSize: Constant.getActualYPhone(context: context, y: 16),
|
||||
|
||||
@@ -31,15 +31,17 @@ class ScanScreen extends HookConsumerWidget {
|
||||
final currentUser = ref.watch(currentUserProvider);
|
||||
final host = currentUser?.host ?? "";
|
||||
final userId = currentUser?.model.userId ?? "";
|
||||
final selectedResolution =
|
||||
useState<ResolutionPreset>(ResolutionPreset.medium);
|
||||
|
||||
useEffect(() {
|
||||
Future<void> initializeCamera() async {
|
||||
final cameras = await availableCameras();
|
||||
cameraController.value = CameraController(
|
||||
cameras[0],
|
||||
// ResolutionPreset.max,
|
||||
ResolutionPreset.medium,
|
||||
);
|
||||
cameras[0],
|
||||
// ResolutionPreset.max,
|
||||
// ResolutionPreset.medium,
|
||||
selectedResolution.value);
|
||||
initializeControllerFuture.value = cameraController.value!.initialize();
|
||||
await initializeControllerFuture.value;
|
||||
await cameraController.value!.setFlashMode(FlashMode.off);
|
||||
@@ -49,6 +51,18 @@ class ScanScreen extends HookConsumerWidget {
|
||||
return null;
|
||||
}, []);
|
||||
|
||||
Future<void> initializeCameraAfterChangeResolution() async {
|
||||
final cameras = await availableCameras();
|
||||
cameraController.value = CameraController(
|
||||
cameras[0],
|
||||
// ResolutionPreset.max,
|
||||
// ResolutionPreset.medium,
|
||||
selectedResolution.value);
|
||||
initializeControllerFuture.value = cameraController.value!.initialize();
|
||||
await initializeControllerFuture.value;
|
||||
await cameraController.value!.setFlashMode(FlashMode.off);
|
||||
}
|
||||
|
||||
Future<File> rotateAndCropImage(File imageFile) async {
|
||||
Uint8List imageBytes = await imageFile.readAsBytes();
|
||||
img.Image? original = img.decodeImage(imageBytes);
|
||||
@@ -188,8 +202,29 @@ class ScanScreen extends HookConsumerWidget {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Posisi Foto Landscape'),
|
||||
title: Text(
|
||||
'Posisi Foto Landscape',
|
||||
style: Constant.titlePosisiHP(context: context),
|
||||
),
|
||||
automaticallyImplyLeading: false,
|
||||
actions: [
|
||||
DropdownButton<ResolutionPreset>(
|
||||
value: selectedResolution.value,
|
||||
onChanged: (ResolutionPreset? newValue) {
|
||||
if (newValue != null) {
|
||||
selectedResolution.value = newValue;
|
||||
initializeCameraAfterChangeResolution();
|
||||
}
|
||||
},
|
||||
items: ResolutionPreset.values.map((ResolutionPreset value) {
|
||||
return DropdownMenuItem<ResolutionPreset>(
|
||||
value: value,
|
||||
child: Text(value.toString().split('.').last),
|
||||
);
|
||||
}).toList(),
|
||||
underline: SizedBox.shrink(),
|
||||
),
|
||||
],
|
||||
),
|
||||
backgroundColor: Colors.black.withOpacity(0.5),
|
||||
body: Stack(
|
||||
|
||||
Reference in New Issue
Block a user