initPlatformState method
Future<void>
initPlatformState(
)
Implementation
Future<void> initPlatformState() async {
// wait user accept permissions to init widget completely on android
if (Platform.isAndroid) {
_permissionStreamSub =
CamerawesomePlugin.listenPermissionResult()!.listen((res) {
if (res) {
initPlatformState();
}
if (widget.onPermissionsResult != null) {
widget.onPermissionsResult!(res);
}
});
}
hasPermissions = await CamerawesomePlugin.checkAndRequestPermissions();
if (widget.onPermissionsResult != null) {
widget.onPermissionsResult!(hasPermissions);
}
if (!hasPermissions!) {
return;
}
// Init orientation stream
if (widget.onOrientationChanged != null) {
_orientationStreamSub = CamerawesomePlugin.getNativeOrientation()
.listen(widget.onOrientationChanged);
}
// All events sink need to be done before camera init
if (Platform.isIOS) {
_initImageStream();
}
// init camera --
await CamerawesomePlugin.init(
widget.sensor.value,
widget.imagesStreamBuilder != null,
captureMode: widget.captureMode.value,
);
if (Platform.isAndroid) {
_initImageStream();
}
_initAndroidPhotoSize();
_initPhotoSize();
camerasAvailableSizes = await CamerawesomePlugin.getSizes();
if (widget.selectDefaultSize != null) {
widget.photoSize.value = widget.selectDefaultSize!(camerasAvailableSizes);
} else {
widget.photoSize.value = camerasAvailableSizes[0];
}
// start camera --
try {
started = await CamerawesomePlugin.start();
} catch (e) {
await _retryStartCamera(3);
}
if (widget.onCameraStarted != null) {
widget.onCameraStarted!();
}
_initFlashModeSwitcher();
_initZoom();
_initSensor();
_initCaptureMode();
_initAudioMode();
_initManualBrightness();
_initBrightnessStream();
if (mounted) setState(() {});
}