using Dashy.Interfaces;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Threading.Tasks;
namespace Dashy.ViewModels
{
public partial class MainViewModel : BaseViewModel
{
private readonly ICameraService _cameraService;
[ObservableProperty]
private string _recordButtonText = "Start Recording";
[ObservableProperty]
private bool _isRecording;
[ObservableProperty]
private string _recordingStatus = "Idle";
public MainViewModel(ICameraService cameraService)
{
_cameraService = cameraService;
}
[RelayCommand]
private async Task ToggleRecordingAsync()
{
if (IsRecording)
{
RecordingStatus = "Stopping...";
await _cameraService.StopRecordingAsync();
IsRecording = false;
RecordingStatus = "Idle";
}
else
{
RecordingStatus = "Starting...";
await _cameraService.StartRecordingAsync();
IsRecording = true;
RecordingStatus = "Recording...";
}
RecordButtonText = IsRecording ? "Stop Recording" : "Start Recording";
}
public async Task InitializeCameraAsync()
{
await _cameraService.StartPreviewAsync();
}
}
}