This commit is contained in:
Vadim 2023-11-01 21:10:27 +01:00
parent d26da843b3
commit 6507df2ad6
6 changed files with 13 additions and 14 deletions

View file

@ -54,9 +54,7 @@ class EquipmentProfileProviderState extends State<EquipmentProfileProvider> {
_defaultProfile, _defaultProfile,
if (IAPProducts.isPurchased(context, IAPProductType.paidFeatures)) ..._customProfiles, if (IAPProducts.isPurchased(context, IAPProductType.paidFeatures)) ..._customProfiles,
], ],
selected: IAPProducts.isPurchased(context, IAPProductType.paidFeatures) selected: IAPProducts.isPurchased(context, IAPProductType.paidFeatures) ? _selectedProfile : _defaultProfile,
? _selectedProfile
: _defaultProfile,
child: widget.child, child: widget.child,
); );
} }
@ -85,7 +83,7 @@ class EquipmentProfileProviderState extends State<EquipmentProfileProvider> {
_refreshSavedProfiles(); _refreshSavedProfiles();
} }
void updateProdile(EquipmentProfile data) { void updateProfile(EquipmentProfile data) {
final indexToUpdate = _customProfiles.indexWhere((element) => element.id == data.id); final indexToUpdate = _customProfiles.indexWhere((element) => element.id == data.id);
if (indexToUpdate >= 0) { if (indexToUpdate >= 0) {
_customProfiles[indexToUpdate] = data; _customProfiles[indexToUpdate] = data;
@ -118,13 +116,14 @@ class EquipmentProfiles extends SelectableInheritedModel<EquipmentProfile> {
/// [_defaultProfile] + profiles created by the user /// [_defaultProfile] + profiles created by the user
static List<EquipmentProfile> of(BuildContext context) { static List<EquipmentProfile> of(BuildContext context) {
return InheritedModel.inheritFrom<EquipmentProfiles>(context, aspect: SelectableAspect.list)! return InheritedModel.inheritFrom<EquipmentProfiles>(context, aspect: SelectableAspect.list)!.values;
.values;
} }
static EquipmentProfile selectedOf(BuildContext context) { static EquipmentProfile selectedOf(BuildContext context) {
return InheritedModel.inheritFrom<EquipmentProfiles>(context, return InheritedModel.inheritFrom<EquipmentProfiles>(
aspect: SelectableAspect.selected,)! context,
aspect: SelectableAspect.selected,
)!
.selected; .selected;
} }
} }

View file

@ -13,7 +13,7 @@ import 'package:lightmeter/screens/metering/components/camera_container/provider
import 'package:lightmeter/screens/metering/components/light_sensor_container/provider_container_light_sensor.dart'; import 'package:lightmeter/screens/metering/components/light_sensor_container/provider_container_light_sensor.dart';
import 'package:lightmeter/screens/metering/event_metering.dart'; import 'package:lightmeter/screens/metering/event_metering.dart';
import 'package:lightmeter/screens/metering/state_metering.dart'; import 'package:lightmeter/screens/metering/state_metering.dart';
import 'package:lightmeter/screens/metering/utils/listsner_equipment_profiles.dart'; import 'package:lightmeter/screens/metering/utils/listener_equipment_profiles.dart';
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
class MeteringScreen extends StatelessWidget { class MeteringScreen extends StatelessWidget {

View file

@ -90,7 +90,7 @@ class _EquipmentProfilesScreenState extends State<EquipmentProfilesScreen> {
} }
void _updateProfileAt(EquipmentProfile data) { void _updateProfileAt(EquipmentProfile data) {
EquipmentProfileProvider.of(context).updateProdile(data); EquipmentProfileProvider.of(context).updateProfile(data);
} }
void _removeProfileAt(EquipmentProfile data) { void _removeProfileAt(EquipmentProfile data) {

View file

@ -260,7 +260,7 @@ class _Application extends StatelessWidget {
ElevatedButton( ElevatedButton(
key: updateProfileButtonKey(profile.id), key: updateProfileButtonKey(profile.id),
onPressed: () { onPressed: () {
EquipmentProfileProvider.of(context).updateProdile( EquipmentProfileProvider.of(context).updateProfile(
profile.copyWith( profile.copyWith(
name: '${profile.name} updated', name: '${profile.name} updated',
isoValues: _customProfiles.first.isoValues, isoValues: _customProfiles.first.isoValues,

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:lightmeter/providers/equipment_profile_provider.dart'; import 'package:lightmeter/providers/equipment_profile_provider.dart';
import 'package:lightmeter/screens/metering/utils/listsner_equipment_profiles.dart'; import 'package:lightmeter/screens/metering/utils/listener_equipment_profiles.dart';
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart'; import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
import 'package:mocktail/mocktail.dart'; import 'package:mocktail/mocktail.dart';
@ -65,13 +65,13 @@ void main() {
/// Verify that updating the current profile triggers the callback /// Verify that updating the current profile triggers the callback
final updatedProfile1 = _customProfiles[0].copyWith(name: 'Test 1 updated'); final updatedProfile1 = _customProfiles[0].copyWith(name: 'Test 1 updated');
equipmentProfileProviderKey.currentState!.updateProdile(updatedProfile1); equipmentProfileProviderKey.currentState!.updateProfile(updatedProfile1);
await tester.pump(); await tester.pump();
verify(() => onDidChangeDependencies.onChanged(updatedProfile1)).called(1); verify(() => onDidChangeDependencies.onChanged(updatedProfile1)).called(1);
/// Verify that updating the not selected profile doesn't trigger the callback /// Verify that updating the not selected profile doesn't trigger the callback
final updatedProfile2 = _customProfiles[1].copyWith(name: 'Test 2 updated'); final updatedProfile2 = _customProfiles[1].copyWith(name: 'Test 2 updated');
equipmentProfileProviderKey.currentState!.updateProdile(updatedProfile2); equipmentProfileProviderKey.currentState!.updateProfile(updatedProfile2);
await tester.pump(); await tester.pump();
verifyNever(() => onDidChangeDependencies.onChanged(updatedProfile2)); verifyNever(() => onDidChangeDependencies.onChanged(updatedProfile2));
}, },