123456789101112131415161718192021222324252627282930313233343536373839 |
- using Avalonia;
- using Avalonia.Android;
- using Avalonia.Platform;
- using InABox.Avalonia.Platform.Barcodes;
- using InABox.Core;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Reactive;
- namespace InABox.Avalonia.Platform.Android.Barcodes;
- public class Android_CameraViewControl : ICameraViewControl
- {
- public Logger? Logger { get; set; }
- public IPlatformHandle CreateControl(CameraView view, IPlatformHandle parent)
- {
- var parentContext = (parent as AndroidViewControlHandle)?.View.Context
- ?? global::Android.App.Application.Context;
- var cameraManager = new CameraManager(view, parentContext);
- view.GetPropertyChangedObservable(CameraView.CameraEnabledProperty).Subscribe(args => cameraManager.UpdateCameraEnabled());
- view.GetPropertyChangedObservable(CameraView.PauseScanningProperty).Subscribe(args => cameraManager._pauseScanning = args.GetNewValue<bool>());
- view.GetPropertyChangedObservable(CameraView.ForceInvertedProperty).Subscribe(args => cameraManager._forceInverted = args.GetNewValue<bool>());
- view.GetPropertyChangedObservable(CameraView.ForceFrameCaptureProperty).Subscribe(args => cameraManager._forceFrameCapture = args.GetNewValue<bool>());
- view.GetPropertyChangedObservable(CameraView.CaptureNextFrameProperty).Subscribe(args => cameraManager._captureNextFrame = args.GetNewValue<bool>());
- view.GetPropertyChangedObservable(CameraView.AimModeProperty).Subscribe(args => cameraManager._aimMode = args.GetNewValue<bool>());
- view.GetPropertyChangedObservable(CameraView.ViewfinderModeProperty).Subscribe(args => cameraManager._viewFinderMode = args.GetNewValue<bool>());
- if (view.CameraEnabled)
- {
- cameraManager.UpdateCameraEnabled();
- }
- return new AndroidViewControlHandle(cameraManager.BarcodeView);
- }
- }
|