From 48cb23379c3f9767d3b00d012c0a42ac64f77c36 Mon Sep 17 00:00:00 2001 From: aitorarana Date: Fri, 20 Mar 2026 15:14:40 +0100 Subject: [PATCH] remote photo command --- .../functions_remote_datasource.dart | 7 --- .../pictures_remote_datasource.dart | 7 +++ ...t => pictures_remote_datasource_impl.dart} | 14 ++--- .../functions_repository_impl.dart | 21 -------- .../pictures_repository_impl.dart | 22 ++++++++ .../repositories/functions_repository.dart | 7 --- .../repositories/pictures_repository.dart | 7 +++ .../functions_remote_datasource_provider.dart | 9 ---- .../functions_repository_provider.dart | 9 ---- .../pictures_remote_datasource_provider.dart | 10 ++++ .../pictures_repository_provider.dart | 10 ++++ .../presentation/remote_camera_screen.dart | 37 ++++++------- .../state/remote_connection_view_model.dart | 52 +++++++++++-------- .../state/remote_connection_view_state.dart | 4 +- .../remote_connection_view_state.freezed.dart | 46 +++++++++------- .../models/send_command_request_model.dart | 2 + .../models/send_command_request_model.g.dart | 2 + .../antelop/antelop/maven-metadata.xml | 2 +- .../antelop/antelop/maven-metadata.xml.md5 | 2 +- .../antelop/antelop/maven-metadata.xml.sha1 | 2 +- packages/sf_localizations/assets/l10n/en.json | 3 +- packages/sf_localizations/assets/l10n/es.json | 3 +- .../lib/src/generated/i18n.dart | 1 + 23 files changed, 153 insertions(+), 126 deletions(-) delete mode 100644 modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource.dart create mode 100644 modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource.dart rename modules/legacy/modules/device_management/lib/src/core/data/datasources/{functions_remote_datasource_impl.dart => pictures_remote_datasource_impl.dart} (73%) delete mode 100644 modules/legacy/modules/device_management/lib/src/core/data/repositories/functions_repository_impl.dart create mode 100644 modules/legacy/modules/device_management/lib/src/core/data/repositories/pictures_repository_impl.dart delete mode 100644 modules/legacy/modules/device_management/lib/src/core/domain/repositories/functions_repository.dart create mode 100644 modules/legacy/modules/device_management/lib/src/core/domain/repositories/pictures_repository.dart delete mode 100644 modules/legacy/modules/device_management/lib/src/core/providers/functions_remote_datasource_provider.dart delete mode 100644 modules/legacy/modules/device_management/lib/src/core/providers/functions_repository_provider.dart create mode 100644 modules/legacy/modules/device_management/lib/src/core/providers/pictures_remote_datasource_provider.dart create mode 100644 modules/legacy/modules/device_management/lib/src/core/providers/pictures_repository_provider.dart diff --git a/modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource.dart b/modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource.dart deleted file mode 100644 index 56571161..00000000 --- a/modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; - -abstract class FunctionsRemoteDatasource { - Future> getPictures({required String userId}); - - Future takePicture({required String userId}); -} diff --git a/modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource.dart b/modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource.dart new file mode 100644 index 00000000..fba9c9ed --- /dev/null +++ b/modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource.dart @@ -0,0 +1,7 @@ +import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; + +abstract class PicturesRemoteDatasource { + Future> getPictures({required String deviceId}); + + Future takePicture({required String deviceId}); +} diff --git a/modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource_impl.dart b/modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource_impl.dart similarity index 73% rename from modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource_impl.dart rename to modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource_impl.dart index 12ae8fa8..939eda74 100644 --- a/modules/legacy/modules/device_management/lib/src/core/data/datasources/functions_remote_datasource_impl.dart +++ b/modules/legacy/modules/device_management/lib/src/core/data/datasources/pictures_remote_datasource_impl.dart @@ -1,17 +1,19 @@ -import 'package:device_management/src/core/data/datasources/functions_remote_datasource.dart'; +import 'package:device_management/src/core/data/datasources/pictures_remote_datasource.dart'; import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; +import 'package:dio/dio.dart'; +import 'package:legacy_shared/legacy_shared.dart'; import 'package:sf_infrastructure/sf_infrastructure.dart'; -class FunctionsRemoteDatasourceImpl implements FunctionsRemoteDatasource { - FunctionsRemoteDatasourceImpl(this._repository); +class PicturesRemoteDatasourceImpl implements PicturesRemoteDatasource { + PicturesRemoteDatasourceImpl(this._repository); final QuestiaRepository _repository; @override - Future> getPictures({required String userId}) async { + Future> getPictures({required String deviceId}) async { /*try { final response = await _repository.get>( - '', + '/devices/identificator/$deviceId/photos', ); final data = response.data; @@ -28,7 +30,7 @@ class FunctionsRemoteDatasourceImpl implements FunctionsRemoteDatasource { } @override - Future takePicture({required String userId}) async { + Future takePicture({required String deviceId}) async { /*try { final response = await _repository.get>( '', diff --git a/modules/legacy/modules/device_management/lib/src/core/data/repositories/functions_repository_impl.dart b/modules/legacy/modules/device_management/lib/src/core/data/repositories/functions_repository_impl.dart deleted file mode 100644 index 732466f5..00000000 --- a/modules/legacy/modules/device_management/lib/src/core/data/repositories/functions_repository_impl.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:device_management/src/core/data/datasources/functions_remote_datasource.dart'; -import 'package:device_management/src/core/domain/repositories/functions_repository.dart'; -import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; - -class FunctionsRepositoryImpl implements FunctionsRepository { - const FunctionsRepositoryImpl(this._remote); - - final FunctionsRemoteDatasource _remote; - - @override - Future> getPictures({required String userId}) async { - await Future.delayed(const Duration(milliseconds: 2000)); - return _remote.getPictures(userId: userId); - } - - @override - Future takePicture({required String userId}) async { - await Future.delayed(const Duration(milliseconds: 2000)); - return _remote.takePicture(userId: userId); - } -} diff --git a/modules/legacy/modules/device_management/lib/src/core/data/repositories/pictures_repository_impl.dart b/modules/legacy/modules/device_management/lib/src/core/data/repositories/pictures_repository_impl.dart new file mode 100644 index 00000000..c2ead0f2 --- /dev/null +++ b/modules/legacy/modules/device_management/lib/src/core/data/repositories/pictures_repository_impl.dart @@ -0,0 +1,22 @@ +import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; + +import '../../domain/repositories/pictures_repository.dart'; +import '../datasources/pictures_remote_datasource.dart'; + +class PicturesRepositoryImpl implements PicturesRepository { + const PicturesRepositoryImpl(this._remote); + + final PicturesRemoteDatasource _remote; + + @override + Future> getPictures({required String deviceId}) async { + await Future.delayed(const Duration(milliseconds: 2000)); + return _remote.getPictures(deviceId: deviceId); + } + + @override + Future takePicture({required String deviceId}) async { + await Future.delayed(const Duration(milliseconds: 2000)); + return _remote.takePicture(deviceId: deviceId); + } +} diff --git a/modules/legacy/modules/device_management/lib/src/core/domain/repositories/functions_repository.dart b/modules/legacy/modules/device_management/lib/src/core/domain/repositories/functions_repository.dart deleted file mode 100644 index 6aacd8c4..00000000 --- a/modules/legacy/modules/device_management/lib/src/core/domain/repositories/functions_repository.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; - -abstract class FunctionsRepository { - Future> getPictures({required String userId}); - - Future takePicture({required String userId}); -} diff --git a/modules/legacy/modules/device_management/lib/src/core/domain/repositories/pictures_repository.dart b/modules/legacy/modules/device_management/lib/src/core/domain/repositories/pictures_repository.dart new file mode 100644 index 00000000..08f6e899 --- /dev/null +++ b/modules/legacy/modules/device_management/lib/src/core/domain/repositories/pictures_repository.dart @@ -0,0 +1,7 @@ +import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; + +abstract class PicturesRepository { + Future> getPictures({required String deviceId}); + + Future takePicture({required String deviceId}); +} diff --git a/modules/legacy/modules/device_management/lib/src/core/providers/functions_remote_datasource_provider.dart b/modules/legacy/modules/device_management/lib/src/core/providers/functions_remote_datasource_provider.dart deleted file mode 100644 index 2fb67453..00000000 --- a/modules/legacy/modules/device_management/lib/src/core/providers/functions_remote_datasource_provider.dart +++ /dev/null @@ -1,9 +0,0 @@ -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:device_management/src/core/data/datasources/functions_remote_datasource.dart'; -import 'package:device_management/src/core/data/datasources/functions_remote_datasource_impl.dart'; -import 'package:sf_infrastructure/sf_infrastructure.dart'; - -final functionsRemoteDatasourceProvider = Provider((ref) { - final questiaRepository = getIt(); - return FunctionsRemoteDatasourceImpl(questiaRepository); -}); diff --git a/modules/legacy/modules/device_management/lib/src/core/providers/functions_repository_provider.dart b/modules/legacy/modules/device_management/lib/src/core/providers/functions_repository_provider.dart deleted file mode 100644 index 63dd98dc..00000000 --- a/modules/legacy/modules/device_management/lib/src/core/providers/functions_repository_provider.dart +++ /dev/null @@ -1,9 +0,0 @@ -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:device_management/src/core/providers/functions_remote_datasource_provider.dart'; -import 'package:device_management/src/core/data/repositories/functions_repository_impl.dart'; -import 'package:device_management/src/core/domain/repositories/functions_repository.dart'; - -final functionsRepositoryProvider = Provider((ref) { - final remote = ref.read(functionsRemoteDatasourceProvider); - return FunctionsRepositoryImpl(remote); -}); diff --git a/modules/legacy/modules/device_management/lib/src/core/providers/pictures_remote_datasource_provider.dart b/modules/legacy/modules/device_management/lib/src/core/providers/pictures_remote_datasource_provider.dart new file mode 100644 index 00000000..df7139ef --- /dev/null +++ b/modules/legacy/modules/device_management/lib/src/core/providers/pictures_remote_datasource_provider.dart @@ -0,0 +1,10 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:sf_infrastructure/sf_infrastructure.dart'; + +import '../data/datasources/pictures_remote_datasource.dart'; +import '../data/datasources/pictures_remote_datasource_impl.dart'; + +final picturesRemoteDatasourceProvider = Provider((ref) { + final questiaRepository = getIt(); + return PicturesRemoteDatasourceImpl(questiaRepository); +}); diff --git a/modules/legacy/modules/device_management/lib/src/core/providers/pictures_repository_provider.dart b/modules/legacy/modules/device_management/lib/src/core/providers/pictures_repository_provider.dart new file mode 100644 index 00000000..57fd9739 --- /dev/null +++ b/modules/legacy/modules/device_management/lib/src/core/providers/pictures_repository_provider.dart @@ -0,0 +1,10 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../data/repositories/pictures_repository_impl.dart'; +import '../domain/repositories/pictures_repository.dart'; +import 'pictures_remote_datasource_provider.dart'; + +final picturesRepositoryProvider = Provider((ref) { + final remote = ref.read(picturesRemoteDatasourceProvider); + return PicturesRepositoryImpl(remote); +}); diff --git a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/remote_camera_screen.dart b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/remote_camera_screen.dart index 96bbe230..75450e2f 100644 --- a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/remote_camera_screen.dart +++ b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/remote_camera_screen.dart @@ -15,16 +15,30 @@ class RemoteCameraScreen extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { + + ref.listen( + remoteConnectionViewModelProvider.select((s) => s.successMessage), + (_, successMessage) { + if (successMessage.isNotEmpty) { + showTopSnackbar(context, message: context.translate(successMessage), type: MessageType.success); + ref.read(remoteConnectionViewModelProvider.notifier).clearSuccess(); + } + }, + ); + final theme = ref.watch(themePortProvider); final isLoadingPictures = ref.watch( - remoteConnectionViewModelProvider.select((s)=>s.isLoadingPictures) + remoteConnectionViewModelProvider.select((s)=>s.isLoadingPictures) + ); + final isTakingPicture = ref.watch( + remoteConnectionViewModelProvider.select((s)=>s.isTakingPicture) ); return LegacyPageLayout( theme: theme, title: context.translate(I18n.remoteCamera), - body: Expanded(child: isLoadingPictures + body: Expanded(child: isLoadingPictures || isTakingPicture ? const Center(child: CircularProgressIndicator()) : const _GallerySection() ), @@ -103,24 +117,7 @@ class _TakePictureSection extends ConsumerWidget { big: EdgeInsets.symmetric(vertical: 10, horizontal: 25) ), child: PrimaryButton( - onPressed: () async { - showDialog(context: context, builder: (context)=>Dialog( - child: Container( - padding: SizeUtils.getByScreen( - small: EdgeInsets.symmetric(horizontal: 32, vertical: 30), - big: EdgeInsets.symmetric(horizontal: 30, vertical: 28) - ), - width: SizeUtils.getByScreen(small: 360, big: 350), - height: SizeUtils.getByScreen(small: 195, big: 185), - child: Center(child: Text(context.translate(I18n.loadingPhoto), - textAlign: TextAlign.center, - style: TextStyle(fontSize: SizeUtils.getByScreen(small: 26, big: 25)), - )), - ), - )); - await vm.takePicture(); - Navigator.pop(context); - }, + onPressed: vm.takePicture, text: context.translate(I18n.takePicture), color: theme.getColorFor(ThemeCode.legacyPrimary), height: SizeUtils.getByScreen(small: 36, big: 35), diff --git a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_model.dart b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_model.dart index 234fa38f..d196016e 100644 --- a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_model.dart +++ b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_model.dart @@ -1,9 +1,12 @@ +import 'package:device_management/src/core/providers/pictures_repository_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:device_management/src/features/remote_connection/domain/entities/picture_entity.dart'; import 'package:device_management/src/features/remote_connection/presentation/state/remote_connection_view_state.dart'; import 'package:legacy_shared/legacy_shared.dart'; -import 'package:sf_shared/sf_shared.dart'; +import 'package:sf_localizations/sf_localizations.dart'; + +import '../../../../core/domain/repositories/pictures_repository.dart'; final remoteConnectionViewModelProvider = NotifierProvider.autoDispose( @@ -14,12 +17,14 @@ class RemoteConnectionViewModel extends Notifier { late final TextEditingController phoneController; late final CommandsRepository _commandsRepository; + late final PicturesRepository _picturesRepository; static final RegExp _phoneRegex = RegExp(r'^\+?\d{6,15}$'); @override RemoteConnectionViewState build() { _commandsRepository = ref.read(commandsRepositoryProvider); + _picturesRepository = ref.read(picturesRepositoryProvider); phoneController = TextEditingController(); phoneController.addListener(_onPhoneChanged); @@ -32,13 +37,11 @@ class RemoteConnectionViewModel extends Notifier { } Future load() async { - final user = await ref.read(userInfoProvider.future); + final device = ref.read(selectedDeviceProvider); + if (device == null) return; - final pictures = await _getPicturesUseCase.getPictures(userId: user.id); - setImages(pictures); - } + final pictures = await _picturesRepository.getPictures(deviceId: device.identificator); - void setImages(List pictures) { state = state.copyWith( pictures: pictures, isLoadingPictures: false, @@ -78,18 +81,30 @@ class RemoteConnectionViewModel extends Notifier { ); } + void clearSuccess() { + state = state.copyWith( + successMessage: '', + ); + } + Future takePicture() async { try { - state = state.copyWith(isTakingPicture: true); + state = state.copyWith( + isTakingPicture: true, + successMessage: '', + ); + + final request = SendCommandRequestModel( + device: state.deviceId, + command: DeviceCommand.requestPhoto, + ); - await _takePictureUseCase.takePicture(userId: '') - .then((picture) { - List pictures = state.pictures; - pictures.add(picture); - state = state.copyWith( - isTakingPicture: true, - ); - }); + await _commandsRepository.send(request: request); + + state = state.copyWith( + isTakingPicture: false, + successMessage: I18n.photoTaken + ); } catch (e){ state = state.copyWith( isTakingPicture: false, @@ -110,11 +125,6 @@ class RemoteConnectionViewModel extends Notifier { return; } - final identificator = ref.read(selectedDeviceProvider)?.identificator; - if (identificator == null) { - return; - } - try { state = state.copyWith( isCalling: true, @@ -122,7 +132,7 @@ class RemoteConnectionViewModel extends Notifier { final fullPhone = dialCode + phone; final request = SendCommandRequestModel( - device: identificator, + device: state.deviceId, command: DeviceCommand.callCenter, data: { 'phone_number': fullPhone, diff --git a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.dart b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.dart index 6c7b2424..4d60b5c1 100644 --- a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.dart +++ b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.dart @@ -6,6 +6,7 @@ part 'remote_connection_view_state.freezed.dart'; @freezed abstract class RemoteConnectionViewState with _$RemoteConnectionViewState { const factory RemoteConnectionViewState({ + @Default('') String deviceId, @Default('+34') String dialCode, @Default('') String phone, @Default([]) List pictures, @@ -13,6 +14,7 @@ abstract class RemoteConnectionViewState with _$RemoteConnectionViewState { @Default(true) bool isLoadingPictures, @Default(false) bool isTakingPicture, @Default(false) bool isCalling, - @Default('') String errorMessage + @Default('') String errorMessage, + @Default('') String successMessage }) = _RemoteConnectionViewState; } diff --git a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.freezed.dart b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.freezed.dart index aa284843..3c3b7f02 100644 --- a/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.freezed.dart +++ b/modules/legacy/modules/device_management/lib/src/features/remote_connection/presentation/state/remote_connection_view_state.freezed.dart @@ -14,7 +14,7 @@ T _$identity(T value) => value; /// @nodoc mixin _$RemoteConnectionViewState { - String get dialCode; String get phone; List get pictures; int get pictureIndex; bool get isLoadingPictures; bool get isTakingPicture; bool get isCalling; String get errorMessage; + String get deviceId; String get dialCode; String get phone; List get pictures; int get pictureIndex; bool get isLoadingPictures; bool get isTakingPicture; bool get isCalling; String get errorMessage; String get successMessage; /// Create a copy of RemoteConnectionViewState /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -25,16 +25,16 @@ $RemoteConnectionViewStateCopyWith get copyWith => _$ @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is RemoteConnectionViewState&&(identical(other.dialCode, dialCode) || other.dialCode == dialCode)&&(identical(other.phone, phone) || other.phone == phone)&&const DeepCollectionEquality().equals(other.pictures, pictures)&&(identical(other.pictureIndex, pictureIndex) || other.pictureIndex == pictureIndex)&&(identical(other.isLoadingPictures, isLoadingPictures) || other.isLoadingPictures == isLoadingPictures)&&(identical(other.isTakingPicture, isTakingPicture) || other.isTakingPicture == isTakingPicture)&&(identical(other.isCalling, isCalling) || other.isCalling == isCalling)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is RemoteConnectionViewState&&(identical(other.deviceId, deviceId) || other.deviceId == deviceId)&&(identical(other.dialCode, dialCode) || other.dialCode == dialCode)&&(identical(other.phone, phone) || other.phone == phone)&&const DeepCollectionEquality().equals(other.pictures, pictures)&&(identical(other.pictureIndex, pictureIndex) || other.pictureIndex == pictureIndex)&&(identical(other.isLoadingPictures, isLoadingPictures) || other.isLoadingPictures == isLoadingPictures)&&(identical(other.isTakingPicture, isTakingPicture) || other.isTakingPicture == isTakingPicture)&&(identical(other.isCalling, isCalling) || other.isCalling == isCalling)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)&&(identical(other.successMessage, successMessage) || other.successMessage == successMessage)); } @override -int get hashCode => Object.hash(runtimeType,dialCode,phone,const DeepCollectionEquality().hash(pictures),pictureIndex,isLoadingPictures,isTakingPicture,isCalling,errorMessage); +int get hashCode => Object.hash(runtimeType,deviceId,dialCode,phone,const DeepCollectionEquality().hash(pictures),pictureIndex,isLoadingPictures,isTakingPicture,isCalling,errorMessage,successMessage); @override String toString() { - return 'RemoteConnectionViewState(dialCode: $dialCode, phone: $phone, pictures: $pictures, pictureIndex: $pictureIndex, isLoadingPictures: $isLoadingPictures, isTakingPicture: $isTakingPicture, isCalling: $isCalling, errorMessage: $errorMessage)'; + return 'RemoteConnectionViewState(deviceId: $deviceId, dialCode: $dialCode, phone: $phone, pictures: $pictures, pictureIndex: $pictureIndex, isLoadingPictures: $isLoadingPictures, isTakingPicture: $isTakingPicture, isCalling: $isCalling, errorMessage: $errorMessage, successMessage: $successMessage)'; } @@ -45,7 +45,7 @@ abstract mixin class $RemoteConnectionViewStateCopyWith<$Res> { factory $RemoteConnectionViewStateCopyWith(RemoteConnectionViewState value, $Res Function(RemoteConnectionViewState) _then) = _$RemoteConnectionViewStateCopyWithImpl; @useResult $Res call({ - String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage + String deviceId, String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage, String successMessage }); @@ -62,9 +62,10 @@ class _$RemoteConnectionViewStateCopyWithImpl<$Res> /// Create a copy of RemoteConnectionViewState /// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? dialCode = null,Object? phone = null,Object? pictures = null,Object? pictureIndex = null,Object? isLoadingPictures = null,Object? isTakingPicture = null,Object? isCalling = null,Object? errorMessage = null,}) { +@pragma('vm:prefer-inline') @override $Res call({Object? deviceId = null,Object? dialCode = null,Object? phone = null,Object? pictures = null,Object? pictureIndex = null,Object? isLoadingPictures = null,Object? isTakingPicture = null,Object? isCalling = null,Object? errorMessage = null,Object? successMessage = null,}) { return _then(_self.copyWith( -dialCode: null == dialCode ? _self.dialCode : dialCode // ignore: cast_nullable_to_non_nullable +deviceId: null == deviceId ? _self.deviceId : deviceId // ignore: cast_nullable_to_non_nullable +as String,dialCode: null == dialCode ? _self.dialCode : dialCode // ignore: cast_nullable_to_non_nullable as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable as String,pictures: null == pictures ? _self.pictures : pictures // ignore: cast_nullable_to_non_nullable as List,pictureIndex: null == pictureIndex ? _self.pictureIndex : pictureIndex // ignore: cast_nullable_to_non_nullable @@ -72,6 +73,7 @@ as int,isLoadingPictures: null == isLoadingPictures ? _self.isLoadingPictures : as bool,isTakingPicture: null == isTakingPicture ? _self.isTakingPicture : isTakingPicture // ignore: cast_nullable_to_non_nullable as bool,isCalling: null == isCalling ? _self.isCalling : isCalling // ignore: cast_nullable_to_non_nullable as bool,errorMessage: null == errorMessage ? _self.errorMessage : errorMessage // ignore: cast_nullable_to_non_nullable +as String,successMessage: null == successMessage ? _self.successMessage : successMessage // ignore: cast_nullable_to_non_nullable as String, )); } @@ -157,10 +159,10 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen(TResult Function( String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage)? $default,{required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen(TResult Function( String deviceId, String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage, String successMessage)? $default,{required TResult orElse(),}) {final _that = this; switch (_that) { case _RemoteConnectionViewState() when $default != null: -return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage);case _: +return $default(_that.deviceId,_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage,_that.successMessage);case _: return orElse(); } @@ -178,10 +180,10 @@ return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_th /// } /// ``` -@optionalTypeArgs TResult when(TResult Function( String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage) $default,) {final _that = this; +@optionalTypeArgs TResult when(TResult Function( String deviceId, String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage, String successMessage) $default,) {final _that = this; switch (_that) { case _RemoteConnectionViewState(): -return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage);case _: +return $default(_that.deviceId,_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage,_that.successMessage);case _: throw StateError('Unexpected subclass'); } @@ -198,10 +200,10 @@ return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_th /// } /// ``` -@optionalTypeArgs TResult? whenOrNull(TResult? Function( String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage)? $default,) {final _that = this; +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String deviceId, String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage, String successMessage)? $default,) {final _that = this; switch (_that) { case _RemoteConnectionViewState() when $default != null: -return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage);case _: +return $default(_that.deviceId,_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_that.isLoadingPictures,_that.isTakingPicture,_that.isCalling,_that.errorMessage,_that.successMessage);case _: return null; } @@ -213,9 +215,10 @@ return $default(_that.dialCode,_that.phone,_that.pictures,_that.pictureIndex,_th class _RemoteConnectionViewState implements RemoteConnectionViewState { - const _RemoteConnectionViewState({this.dialCode = '+34', this.phone = '', final List pictures = const [], this.pictureIndex = 0, this.isLoadingPictures = true, this.isTakingPicture = false, this.isCalling = false, this.errorMessage = ''}): _pictures = pictures; + const _RemoteConnectionViewState({this.deviceId = '', this.dialCode = '+34', this.phone = '', final List pictures = const [], this.pictureIndex = 0, this.isLoadingPictures = true, this.isTakingPicture = false, this.isCalling = false, this.errorMessage = '', this.successMessage = ''}): _pictures = pictures; +@override@JsonKey() final String deviceId; @override@JsonKey() final String dialCode; @override@JsonKey() final String phone; final List _pictures; @@ -230,6 +233,7 @@ class _RemoteConnectionViewState implements RemoteConnectionViewState { @override@JsonKey() final bool isTakingPicture; @override@JsonKey() final bool isCalling; @override@JsonKey() final String errorMessage; +@override@JsonKey() final String successMessage; /// Create a copy of RemoteConnectionViewState /// with the given fields replaced by the non-null parameter values. @@ -241,16 +245,16 @@ _$RemoteConnectionViewStateCopyWith<_RemoteConnectionViewState> get copyWith => @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _RemoteConnectionViewState&&(identical(other.dialCode, dialCode) || other.dialCode == dialCode)&&(identical(other.phone, phone) || other.phone == phone)&&const DeepCollectionEquality().equals(other._pictures, _pictures)&&(identical(other.pictureIndex, pictureIndex) || other.pictureIndex == pictureIndex)&&(identical(other.isLoadingPictures, isLoadingPictures) || other.isLoadingPictures == isLoadingPictures)&&(identical(other.isTakingPicture, isTakingPicture) || other.isTakingPicture == isTakingPicture)&&(identical(other.isCalling, isCalling) || other.isCalling == isCalling)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _RemoteConnectionViewState&&(identical(other.deviceId, deviceId) || other.deviceId == deviceId)&&(identical(other.dialCode, dialCode) || other.dialCode == dialCode)&&(identical(other.phone, phone) || other.phone == phone)&&const DeepCollectionEquality().equals(other._pictures, _pictures)&&(identical(other.pictureIndex, pictureIndex) || other.pictureIndex == pictureIndex)&&(identical(other.isLoadingPictures, isLoadingPictures) || other.isLoadingPictures == isLoadingPictures)&&(identical(other.isTakingPicture, isTakingPicture) || other.isTakingPicture == isTakingPicture)&&(identical(other.isCalling, isCalling) || other.isCalling == isCalling)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)&&(identical(other.successMessage, successMessage) || other.successMessage == successMessage)); } @override -int get hashCode => Object.hash(runtimeType,dialCode,phone,const DeepCollectionEquality().hash(_pictures),pictureIndex,isLoadingPictures,isTakingPicture,isCalling,errorMessage); +int get hashCode => Object.hash(runtimeType,deviceId,dialCode,phone,const DeepCollectionEquality().hash(_pictures),pictureIndex,isLoadingPictures,isTakingPicture,isCalling,errorMessage,successMessage); @override String toString() { - return 'RemoteConnectionViewState(dialCode: $dialCode, phone: $phone, pictures: $pictures, pictureIndex: $pictureIndex, isLoadingPictures: $isLoadingPictures, isTakingPicture: $isTakingPicture, isCalling: $isCalling, errorMessage: $errorMessage)'; + return 'RemoteConnectionViewState(deviceId: $deviceId, dialCode: $dialCode, phone: $phone, pictures: $pictures, pictureIndex: $pictureIndex, isLoadingPictures: $isLoadingPictures, isTakingPicture: $isTakingPicture, isCalling: $isCalling, errorMessage: $errorMessage, successMessage: $successMessage)'; } @@ -261,7 +265,7 @@ abstract mixin class _$RemoteConnectionViewStateCopyWith<$Res> implements $Remot factory _$RemoteConnectionViewStateCopyWith(_RemoteConnectionViewState value, $Res Function(_RemoteConnectionViewState) _then) = __$RemoteConnectionViewStateCopyWithImpl; @override @useResult $Res call({ - String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage + String deviceId, String dialCode, String phone, List pictures, int pictureIndex, bool isLoadingPictures, bool isTakingPicture, bool isCalling, String errorMessage, String successMessage }); @@ -278,9 +282,10 @@ class __$RemoteConnectionViewStateCopyWithImpl<$Res> /// Create a copy of RemoteConnectionViewState /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? dialCode = null,Object? phone = null,Object? pictures = null,Object? pictureIndex = null,Object? isLoadingPictures = null,Object? isTakingPicture = null,Object? isCalling = null,Object? errorMessage = null,}) { +@override @pragma('vm:prefer-inline') $Res call({Object? deviceId = null,Object? dialCode = null,Object? phone = null,Object? pictures = null,Object? pictureIndex = null,Object? isLoadingPictures = null,Object? isTakingPicture = null,Object? isCalling = null,Object? errorMessage = null,Object? successMessage = null,}) { return _then(_RemoteConnectionViewState( -dialCode: null == dialCode ? _self.dialCode : dialCode // ignore: cast_nullable_to_non_nullable +deviceId: null == deviceId ? _self.deviceId : deviceId // ignore: cast_nullable_to_non_nullable +as String,dialCode: null == dialCode ? _self.dialCode : dialCode // ignore: cast_nullable_to_non_nullable as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable as String,pictures: null == pictures ? _self._pictures : pictures // ignore: cast_nullable_to_non_nullable as List,pictureIndex: null == pictureIndex ? _self.pictureIndex : pictureIndex // ignore: cast_nullable_to_non_nullable @@ -288,6 +293,7 @@ as int,isLoadingPictures: null == isLoadingPictures ? _self.isLoadingPictures : as bool,isTakingPicture: null == isTakingPicture ? _self.isTakingPicture : isTakingPicture // ignore: cast_nullable_to_non_nullable as bool,isCalling: null == isCalling ? _self.isCalling : isCalling // ignore: cast_nullable_to_non_nullable as bool,errorMessage: null == errorMessage ? _self.errorMessage : errorMessage // ignore: cast_nullable_to_non_nullable +as String,successMessage: null == successMessage ? _self.successMessage : successMessage // ignore: cast_nullable_to_non_nullable as String, )); } diff --git a/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.dart b/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.dart index 15461164..4fb68f6f 100644 --- a/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.dart +++ b/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.dart @@ -10,6 +10,8 @@ enum DeviceCommand { factory, @JsonValue('FIND_DEVICE') findDevice, + @JsonValue('REQUEST_PHOTO') + requestPhoto, @JsonValue('RESTART') restart, @JsonValue('REWARDS') diff --git a/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.g.dart b/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.g.dart index 5b540211..713c1cf8 100644 --- a/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.g.dart +++ b/modules/legacy/packages/legacy_shared/lib/src/data/models/send_command_request_model.g.dart @@ -23,8 +23,10 @@ Map _$SendCommandRequestModelToJson( }; const _$DeviceCommandEnumMap = { + DeviceCommand.callCenter: 'CALL_CENTER', DeviceCommand.factory: 'FACTORY', DeviceCommand.findDevice: 'FIND_DEVICE', + DeviceCommand.requestPhoto: 'REQUEST_PHOTO', DeviceCommand.restart: 'RESTART', DeviceCommand.rewards: 'REWARDS', DeviceCommand.shutdown: 'SHUTDOWN', diff --git a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml index a264b49f..4cf4310c 100644 --- a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml +++ b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml @@ -7,6 +7,6 @@ 2.6.4 - 20260318000000 + 20260320000000 diff --git a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.md5 b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.md5 index 66e064a1..31b6c765 100644 --- a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.md5 +++ b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.md5 @@ -1 +1 @@ -f9e85f64806f37132f0c0cc4ef8a67ec \ No newline at end of file +20c099fa5d73eb3667d91872fabb23b6 \ No newline at end of file diff --git a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.sha1 b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.sha1 index d0a4a597..0b5ad7e2 100644 --- a/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.sha1 +++ b/packages/flutter_treezor_entrust_sdk_bridge/android/build/com/entrust/antelop/antelop/maven-metadata.xml.sha1 @@ -1 +1 @@ -b7a72907f1f917f7b7d0cd57cb170901965b4113 \ No newline at end of file +67c2ba6eea196d22403b194e8407fcca966416f6 \ No newline at end of file diff --git a/packages/sf_localizations/assets/l10n/en.json b/packages/sf_localizations/assets/l10n/en.json index bebf1b55..da33e1e5 100755 --- a/packages/sf_localizations/assets/l10n/en.json +++ b/packages/sf_localizations/assets/l10n/en.json @@ -706,5 +706,6 @@ "editChildProfile": "Edit profile", "editChildProfileSaveSuccess": "Child profile updated successfully", "editChildProfileTitle": "Edit child profile", - "activationCodeMessage": "An activation key has been sent to your email" + "activationCodeMessage": "An activation key has been sent to your email", + "photoTaken": "Photo taken successfully" } \ No newline at end of file diff --git a/packages/sf_localizations/assets/l10n/es.json b/packages/sf_localizations/assets/l10n/es.json index 42de9849..7d392c00 100644 --- a/packages/sf_localizations/assets/l10n/es.json +++ b/packages/sf_localizations/assets/l10n/es.json @@ -704,5 +704,6 @@ "editChildProfile": "Editar perfil", "editChildProfileTitle": "Editar perfil del niño", "editChildProfileSaveSuccess": "Perfil del niño actualizado correctamente", - "activationCodeMessage": "Se ha enviado un código de activación a tu correo electrónico" + "activationCodeMessage": "Se ha enviado un código de activación a tu correo electrónico", + "photoTaken": "Foto tomada exitosamente" } \ No newline at end of file diff --git a/packages/sf_localizations/lib/src/generated/i18n.dart b/packages/sf_localizations/lib/src/generated/i18n.dart index 495d9e03..0cb48d6d 100755 --- a/packages/sf_localizations/lib/src/generated/i18n.dart +++ b/packages/sf_localizations/lib/src/generated/i18n.dart @@ -830,4 +830,5 @@ class I18n { static const String editChildProfileTitle = 'editChildProfileTitle'; static const String editChildProfileSaveSuccess = 'editChildProfileSaveSuccess'; static const String activationCodeMessage = 'activationCodeMessage'; + static const String photoTaken = 'photoTaken'; }