diff --git a/lib/features/dive_computer/data/services/dive_import_service.dart b/lib/features/dive_computer/data/services/dive_import_service.dart index 89ebd343e..fa5f49a46 100644 --- a/lib/features/dive_computer/data/services/dive_import_service.dart +++ b/lib/features/dive_computer/data/services/dive_import_service.dart @@ -485,6 +485,8 @@ class DiveImportService { entryLongitude: dive.entryLongitude, exitLatitude: dive.exitLatitude, exitLongitude: dive.exitLongitude, + minTemperature: dive.minTemperature, + maxTemperature: dive.maxTemperature, ); return diveId; @@ -563,6 +565,8 @@ class DiveImportService { entryLongitude: dive.entryLongitude, exitLatitude: dive.exitLatitude, exitLongitude: dive.exitLongitude, + minTemperature: dive.minTemperature, + maxTemperature: dive.maxTemperature, ); } diff --git a/lib/features/dive_computer/data/services/reparse_service.dart b/lib/features/dive_computer/data/services/reparse_service.dart index fcebff18a..7e5474dce 100644 --- a/lib/features/dive_computer/data/services/reparse_service.dart +++ b/lib/features/dive_computer/data/services/reparse_service.dart @@ -435,7 +435,10 @@ class ReparseService { await db.batch((batch) { for (final e in parsed.events) { - final eventType = _mapEventTypeString(e.type); + final eventType = _mapEventTypeString( + e.type, + flags: e.data != null ? int.tryParse(e.data!['flags'] ?? '') : null, + ); if (eventType == null) continue; batch.insert( @@ -696,7 +699,7 @@ class ReparseService { } /// Map libdivecomputer event type strings to ProfileEventType enum names. - static String? _mapEventTypeString(String type) { + static String? _mapEventTypeString(String type, {int? flags}) { switch (type) { case 'safetystop': case 'safetystop_voluntary': @@ -704,6 +707,7 @@ class ReparseService { return 'safetyStopStart'; case 'deco': case 'deepstop': + if (flags == 2) return 'decoStopEnd'; return 'decoStopStart'; case 'violation': return 'decoViolation'; diff --git a/lib/features/dive_log/data/repositories/dive_computer_repository_impl.dart b/lib/features/dive_log/data/repositories/dive_computer_repository_impl.dart index d3844dd0a..fa4ee908f 100644 --- a/lib/features/dive_log/data/repositories/dive_computer_repository_impl.dart +++ b/lib/features/dive_log/data/repositories/dive_computer_repository_impl.dart @@ -828,6 +828,8 @@ class DiveComputerRepository { double? entryLongitude, double? exitLatitude, double? exitLongitude, + double? minTemperature, + double? maxTemperature, }) async { try { _log.info('Importing profile from computer $computerId'); @@ -894,6 +896,7 @@ class DiveComputerRepository { entryLongitude: Value(entryLongitude), exitLatitude: Value(exitLatitude), exitLongitude: Value(exitLongitude), + waterTemp: Value(minTemperature), ), ); @@ -1149,7 +1152,10 @@ class DiveComputerRepository { if (events != null && events.isNotEmpty) { await _db.batch((batch) { for (final event in events) { - final eventType = _mapEventTypeString(event.type); + final eventType = _mapEventTypeString( + event.type, + flags: event.flags, + ); if (eventType == null) continue; // Find depth at event time from profile points @@ -1451,7 +1457,7 @@ class DiveComputerRepository { /// /// Only maps to values that exist in [ProfileEventType]. Returns null for /// unknown event types that should be skipped. - String? _mapEventTypeString(String type) { + String? _mapEventTypeString(String type, {int? flags}) { switch (type) { case 'safetystop': case 'safetystop_voluntary': @@ -1459,6 +1465,8 @@ class DiveComputerRepository { return 'safetyStopStart'; case 'deco': case 'deepstop': + // flags: 1=BEGIN, 2=END + if (flags == 2) return 'decoStopEnd'; return 'decoStopStart'; case 'violation': return 'decoViolation'; diff --git a/packages/libdivecomputer_plugin/android/src/main/kotlin/com/submersion/libdivecomputer/DiveComputerHostApiImpl.kt b/packages/libdivecomputer_plugin/android/src/main/kotlin/com/submersion/libdivecomputer/DiveComputerHostApiImpl.kt index 065bbb04e..4ca9c70d5 100644 --- a/packages/libdivecomputer_plugin/android/src/main/kotlin/com/submersion/libdivecomputer/DiveComputerHostApiImpl.kt +++ b/packages/libdivecomputer_plugin/android/src/main/kotlin/com/submersion/libdivecomputer/DiveComputerHostApiImpl.kt @@ -444,29 +444,30 @@ class DiveComputerHostApiImpl( private fun mapEventType(type: Int): String = when (type) { 0 -> "none" 1 -> "deco" - 2 -> "ascent" - 3 -> "ceiling" - 4 -> "workload" - 5 -> "transmitter" - 6 -> "violation" - 7 -> "bookmark" - 8 -> "surface" - 9 -> "safetystop" - 10 -> "gaschange" - 11 -> "safetystop_voluntary" - 12 -> "safetystop_mandatory" - 13 -> "deepstop" - 14 -> "ceiling_safetystop" - 15 -> "floor" - 16 -> "divetime" - 17 -> "maxdepth" - 18 -> "OLF" - 19 -> "PO2" - 20 -> "airtime" - 21 -> "rgbm" - 22 -> "heading" - 23 -> "tissuelevel" - 24 -> "gaschange2" + 2 -> "rbt" + 3 -> "ascent" + 4 -> "ceiling" + 5 -> "workload" + 6 -> "transmitter" + 7 -> "violation" + 8 -> "bookmark" + 9 -> "surface" + 10 -> "safetystop" + 11 -> "gaschange" + 12 -> "safetystop_voluntary" + 13 -> "safetystop_mandatory" + 14 -> "deepstop" + 15 -> "ceiling_safetystop" + 16 -> "floor" + 17 -> "divetime" + 18 -> "maxdepth" + 19 -> "OLF" + 20 -> "PO2" + 21 -> "airtime" + 22 -> "rgbm" + 23 -> "heading" + 24 -> "tissuelevel" + 25 -> "gaschange2" else -> "unknown_$type" } } diff --git a/packages/libdivecomputer_plugin/darwin/Sources/LibDCDarwin/DiveComputerHostApiImpl.swift b/packages/libdivecomputer_plugin/darwin/Sources/LibDCDarwin/DiveComputerHostApiImpl.swift index 89d1c12d9..862c85e03 100644 --- a/packages/libdivecomputer_plugin/darwin/Sources/LibDCDarwin/DiveComputerHostApiImpl.swift +++ b/packages/libdivecomputer_plugin/darwin/Sources/LibDCDarwin/DiveComputerHostApiImpl.swift @@ -583,29 +583,30 @@ class DiveComputerHostApiImpl: DiveComputerHostApi { switch type { case 0: return "none" case 1: return "deco" - case 2: return "ascent" - case 3: return "ceiling" - case 4: return "workload" - case 5: return "transmitter" - case 6: return "violation" - case 7: return "bookmark" - case 8: return "surface" - case 9: return "safetystop" - case 10: return "gaschange" - case 11: return "safetystop_voluntary" - case 12: return "safetystop_mandatory" - case 13: return "deepstop" - case 14: return "ceiling_safetystop" - case 15: return "floor" - case 16: return "divetime" - case 17: return "maxdepth" - case 18: return "OLF" - case 19: return "PO2" - case 20: return "airtime" - case 21: return "rgbm" - case 22: return "heading" - case 23: return "tissuelevel" - case 24: return "gaschange2" + case 2: return "rbt" + case 3: return "ascent" + case 4: return "ceiling" + case 5: return "workload" + case 6: return "transmitter" + case 7: return "violation" + case 8: return "bookmark" + case 9: return "surface" + case 10: return "safetystop" + case 11: return "gaschange" + case 12: return "safetystop_voluntary" + case 13: return "safetystop_mandatory" + case 14: return "deepstop" + case 15: return "ceiling_safetystop" + case 16: return "floor" + case 17: return "divetime" + case 18: return "maxdepth" + case 19: return "OLF" + case 20: return "PO2" + case 21: return "airtime" + case 22: return "rgbm" + case 23: return "heading" + case 24: return "tissuelevel" + case 25: return "gaschange2" default: return "unknown_\(type)" } } diff --git a/packages/libdivecomputer_plugin/linux/dive_converter.c b/packages/libdivecomputer_plugin/linux/dive_converter.c index 29f45b792..3d6502e42 100644 --- a/packages/libdivecomputer_plugin/linux/dive_converter.c +++ b/packages/libdivecomputer_plugin/linux/dive_converter.c @@ -10,29 +10,30 @@ const char* map_event_type(unsigned int type) { switch (type) { case 0: return "none"; case 1: return "deco"; - case 2: return "ascent"; - case 3: return "ceiling"; - case 4: return "workload"; - case 5: return "transmitter"; - case 6: return "violation"; - case 7: return "bookmark"; - case 8: return "surface"; - case 9: return "safetystop"; - case 10: return "gaschange"; - case 11: return "safetystop_voluntary"; - case 12: return "safetystop_mandatory"; - case 13: return "deepstop"; - case 14: return "ceiling_safetystop"; - case 15: return "floor"; - case 16: return "divetime"; - case 17: return "maxdepth"; - case 18: return "OLF"; - case 19: return "PO2"; - case 20: return "airtime"; - case 21: return "rgbm"; - case 22: return "heading"; - case 23: return "tissuelevel"; - case 24: return "gaschange2"; + case 2: return "rbt"; + case 3: return "ascent"; + case 4: return "ceiling"; + case 5: return "workload"; + case 6: return "transmitter"; + case 7: return "violation"; + case 8: return "bookmark"; + case 9: return "surface"; + case 10: return "safetystop"; + case 11: return "gaschange"; + case 12: return "safetystop_voluntary"; + case 13: return "safetystop_mandatory"; + case 14: return "deepstop"; + case 15: return "ceiling_safetystop"; + case 16: return "floor"; + case 17: return "divetime"; + case 18: return "maxdepth"; + case 19: return "OLF"; + case 20: return "PO2"; + case 21: return "airtime"; + case 22: return "rgbm"; + case 23: return "heading"; + case 24: return "tissuelevel"; + case 25: return "gaschange2"; default: return "unknown"; } } diff --git a/packages/libdivecomputer_plugin/patches/0002-cressi-leonardo-deco-and-ascent-fix.patch b/packages/libdivecomputer_plugin/patches/0002-cressi-leonardo-deco-and-ascent-fix.patch new file mode 100644 index 000000000..49470cb9c --- /dev/null +++ b/packages/libdivecomputer_plugin/patches/0002-cressi-leonardo-deco-and-ascent-fix.patch @@ -0,0 +1,59 @@ +diff --git a/src/cressi_leonardo_parser.c b/src/cressi_leonardo_parser.c +index df382c5..9f65434 100644 +--- a/src/cressi_leonardo_parser.c ++++ b/src/cressi_leonardo_parser.c +@@ -177,6 +177,8 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac + gasmix = gasmix_previous; + } + ++ unsigned int deco_previous = 0; ++ + unsigned int offset = SZ_HEADER; + while (offset + 2 <= size) { + dc_sample_value_t sample = {0}; +@@ -199,6 +201,7 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac + } else { + unsigned int value = array_uint16_le (data + offset); + unsigned int depth = value & 0x07FF; ++ unsigned int deco = (value & 0x0800) >> 11; + unsigned int ascent = (value & 0xC000) >> 14; + + // Time (seconds). +@@ -217,8 +220,35 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac + gasmix_previous = gasmix; + } + +- // Ascent rate +- if (ascent) { ++ // Deco obligation ++ if (deco) { ++ sample.deco.type = DC_DECO_DECOSTOP; ++ } else { ++ sample.deco.type = DC_DECO_NDL; ++ } ++ sample.deco.time = 0; ++ sample.deco.depth = 0.0; ++ sample.deco.tts = 0; ++ if (callback) callback (DC_SAMPLE_DECO, &sample, userdata); ++ ++ // Deco obligation start/end event ++ if (deco && !deco_previous) { ++ sample.event.type = SAMPLE_EVENT_DECOSTOP; ++ sample.event.time = 0; ++ sample.event.flags = SAMPLE_FLAGS_BEGIN; ++ sample.event.value = 0; ++ if (callback) callback (DC_SAMPLE_EVENT, &sample, userdata); ++ } else if (!deco && deco_previous) { ++ sample.event.type = SAMPLE_EVENT_DECOSTOP; ++ sample.event.time = 0; ++ sample.event.flags = SAMPLE_FLAGS_END; ++ sample.event.value = 0; ++ if (callback) callback (DC_SAMPLE_EVENT, &sample, userdata); ++ } ++ deco_previous = deco; ++ ++ // Ascent rate warning (only level 3 triggers audible alarm) ++ if (ascent == 3) { + sample.event.type = SAMPLE_EVENT_ASCENT; + sample.event.time = 0; + sample.event.flags = 0; diff --git a/packages/libdivecomputer_plugin/third_party/libdivecomputer b/packages/libdivecomputer_plugin/third_party/libdivecomputer index ed581d064..5ee8354a3 160000 --- a/packages/libdivecomputer_plugin/third_party/libdivecomputer +++ b/packages/libdivecomputer_plugin/third_party/libdivecomputer @@ -1 +1 @@ -Subproject commit ed581d0643ce03dafdafd9864695785ce236d917 +Subproject commit 5ee8354a32134d2be7d5c263bb8ab7e36fc7fa45 diff --git a/packages/libdivecomputer_plugin/windows/dive_converter.cc b/packages/libdivecomputer_plugin/windows/dive_converter.cc index aa1d0b0b7..469e3014b 100644 --- a/packages/libdivecomputer_plugin/windows/dive_converter.cc +++ b/packages/libdivecomputer_plugin/windows/dive_converter.cc @@ -15,29 +15,30 @@ std::string MapEventType(unsigned int type) { switch (type) { case 0: return "none"; case 1: return "deco"; - case 2: return "ascent"; - case 3: return "ceiling"; - case 4: return "workload"; - case 5: return "transmitter"; - case 6: return "violation"; - case 7: return "bookmark"; - case 8: return "surface"; - case 9: return "safetystop"; - case 10: return "gaschange"; - case 11: return "safetystop_voluntary"; - case 12: return "safetystop_mandatory"; - case 13: return "deepstop"; - case 14: return "ceiling_safetystop"; - case 15: return "floor"; - case 16: return "divetime"; - case 17: return "maxdepth"; - case 18: return "OLF"; - case 19: return "PO2"; - case 20: return "airtime"; - case 21: return "rgbm"; - case 22: return "heading"; - case 23: return "tissuelevel"; - case 24: return "gaschange2"; + case 2: return "rbt"; + case 3: return "ascent"; + case 4: return "ceiling"; + case 5: return "workload"; + case 6: return "transmitter"; + case 7: return "violation"; + case 8: return "bookmark"; + case 9: return "surface"; + case 10: return "safetystop"; + case 11: return "gaschange"; + case 12: return "safetystop_voluntary"; + case 13: return "safetystop_mandatory"; + case 14: return "deepstop"; + case 15: return "ceiling_safetystop"; + case 16: return "floor"; + case 17: return "divetime"; + case 18: return "maxdepth"; + case 19: return "OLF"; + case 20: return "PO2"; + case 21: return "airtime"; + case 22: return "rgbm"; + case 23: return "heading"; + case 24: return "tissuelevel"; + case 25: return "gaschange2"; default: return "unknown_" + std::to_string(type); } } diff --git a/test/features/dive_computer/data/services/dive_import_service_test.mocks.dart b/test/features/dive_computer/data/services/dive_import_service_test.mocks.dart index 437682511..6b3f5c130 100644 --- a/test/features/dive_computer/data/services/dive_import_service_test.mocks.dart +++ b/test/features/dive_computer/data/services/dive_import_service_test.mocks.dart @@ -343,6 +343,8 @@ class MockDiveComputerRepository extends _i1.Mock double? entryLongitude, double? exitLatitude, double? exitLongitude, + double? minTemperature, + double? maxTemperature, }) => (super.noSuchMethod( Invocation.method(#importProfile, [], { @@ -372,6 +374,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), returnValue: _i7.Future.value( _i10.dummyValue( @@ -403,6 +407,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), ), ), diff --git a/test/features/dive_computer/presentation/providers/download_notifier_fingerprint_test.mocks.dart b/test/features/dive_computer/presentation/providers/download_notifier_fingerprint_test.mocks.dart index fd41c3c9e..17f46c6f5 100644 --- a/test/features/dive_computer/presentation/providers/download_notifier_fingerprint_test.mocks.dart +++ b/test/features/dive_computer/presentation/providers/download_notifier_fingerprint_test.mocks.dart @@ -304,6 +304,8 @@ class MockDiveComputerRepository extends _i1.Mock double? entryLongitude, double? exitLatitude, double? exitLongitude, + double? minTemperature, + double? maxTemperature, }) => (super.noSuchMethod( Invocation.method(#importProfile, [], { @@ -333,6 +335,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), returnValue: _i4.Future.value( _i7.dummyValue( @@ -364,6 +368,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), ), ), diff --git a/test/features/dive_log/data/repositories/dive_computer_repository_impl_test.dart b/test/features/dive_log/data/repositories/dive_computer_repository_impl_test.dart index 68e4beabc..0010df465 100644 --- a/test/features/dive_log/data/repositories/dive_computer_repository_impl_test.dart +++ b/test/features/dive_log/data/repositories/dive_computer_repository_impl_test.dart @@ -536,5 +536,125 @@ void main() { expect(source.entryLatitude, 12.34567); expect(source.exitLongitude, 98.76489); }); + + test( + 'importProfile sets waterTemp from minTemperature parameter', + () async { + final computerId = await insertComputer(); + + final diveId = await repository.importProfile( + computerId: computerId, + profileStartTime: DateTime(2026, 5, 19, 10, 47), + points: [ + const ProfilePointData(timestamp: 0, depth: 0.0), + const ProfilePointData(timestamp: 60, depth: 15.0), + ], + durationSeconds: 61 * 60, + maxDepth: 17.7, + minTemperature: 29.0, + ); + + final row = await (db.select( + db.dives, + )..where((t) => t.id.equals(diveId))).getSingle(); + expect(row.waterTemp, equals(29.0)); + }, + ); + + test('importProfile maps ascent events as ascentRateWarning', () async { + final computerId = await insertComputer(); + + final diveId = await repository.importProfile( + computerId: computerId, + profileStartTime: DateTime(2026, 5, 19, 10, 47), + points: [ + const ProfilePointData(timestamp: 0, depth: 0.0), + const ProfilePointData(timestamp: 60, depth: 15.0), + ], + durationSeconds: 61 * 60, + maxDepth: 17.7, + events: [const EventData(timestamp: 3320, type: 'ascent', value: 3)], + ); + + final events = await (db.select( + db.diveProfileEvents, + )..where((t) => t.diveId.equals(diveId))).get(); + expect(events, hasLength(1)); + expect(events.first.eventType, equals('ascentRateWarning')); + expect(events.first.severity, equals('warning')); + }); + + test( + 'importProfile maps deco event with BEGIN flag as decoStopStart', + () async { + final computerId = await insertComputer(); + + final diveId = await repository.importProfile( + computerId: computerId, + profileStartTime: DateTime(2026, 5, 19, 10, 47), + points: [ + const ProfilePointData(timestamp: 0, depth: 0.0), + const ProfilePointData(timestamp: 60, depth: 15.0), + ], + durationSeconds: 61 * 60, + maxDepth: 17.7, + events: [const EventData(timestamp: 2460, type: 'deco', flags: 1)], + ); + + final events = await (db.select( + db.diveProfileEvents, + )..where((t) => t.diveId.equals(diveId))).get(); + expect(events, hasLength(1)); + expect(events.first.eventType, equals('decoStopStart')); + }, + ); + + test( + 'importProfile maps deco event with END flag as decoStopEnd', + () async { + final computerId = await insertComputer(); + + final diveId = await repository.importProfile( + computerId: computerId, + profileStartTime: DateTime(2026, 5, 19, 10, 47), + points: [ + const ProfilePointData(timestamp: 0, depth: 0.0), + const ProfilePointData(timestamp: 60, depth: 15.0), + ], + durationSeconds: 61 * 60, + maxDepth: 17.7, + events: [const EventData(timestamp: 3600, type: 'deco', flags: 2)], + ); + + final events = await (db.select( + db.diveProfileEvents, + )..where((t) => t.diveId.equals(diveId))).get(); + expect(events, hasLength(1)); + expect(events.first.eventType, equals('decoStopEnd')); + }, + ); + + test('importProfile maps ceiling event as decoViolation', () async { + final computerId = await insertComputer(); + + final diveId = await repository.importProfile( + computerId: computerId, + profileStartTime: DateTime(2026, 5, 19, 10, 47), + points: [ + const ProfilePointData(timestamp: 0, depth: 0.0), + const ProfilePointData(timestamp: 60, depth: 15.0), + ], + durationSeconds: 61 * 60, + maxDepth: 17.7, + events: [const EventData(timestamp: 2000, type: 'ceiling', value: 0)], + ); + + final events = await (db.select( + db.diveProfileEvents, + )..where((t) => t.diveId.equals(diveId))).get(); + expect(events, hasLength(1)); + expect(events.first.eventType, equals('decoViolation')); + expect(events.first.severity, equals('alert')); + }); }); } diff --git a/test/features/import_wizard/data/adapters/dive_computer_adapter_reimport_test.mocks.dart b/test/features/import_wizard/data/adapters/dive_computer_adapter_reimport_test.mocks.dart index ff3367bcd..d5312e26b 100644 --- a/test/features/import_wizard/data/adapters/dive_computer_adapter_reimport_test.mocks.dart +++ b/test/features/import_wizard/data/adapters/dive_computer_adapter_reimport_test.mocks.dart @@ -514,6 +514,8 @@ class MockDiveComputerRepository extends _i1.Mock double? entryLongitude, double? exitLatitude, double? exitLongitude, + double? minTemperature, + double? maxTemperature, }) => (super.noSuchMethod( Invocation.method(#importProfile, [], { @@ -543,6 +545,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), returnValue: _i7.Future.value( _i9.dummyValue( @@ -574,6 +578,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), ), ), diff --git a/test/features/import_wizard/data/adapters/dive_computer_adapter_test.mocks.dart b/test/features/import_wizard/data/adapters/dive_computer_adapter_test.mocks.dart index 565b90568..a62367231 100644 --- a/test/features/import_wizard/data/adapters/dive_computer_adapter_test.mocks.dart +++ b/test/features/import_wizard/data/adapters/dive_computer_adapter_test.mocks.dart @@ -582,6 +582,8 @@ class MockDiveComputerRepository extends _i1.Mock double? entryLongitude, double? exitLatitude, double? exitLongitude, + double? minTemperature, + double? maxTemperature, }) => (super.noSuchMethod( Invocation.method(#importProfile, [], { @@ -611,6 +613,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), returnValue: _i7.Future.value( _i9.dummyValue( @@ -642,6 +646,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), ), ), @@ -675,6 +681,8 @@ class MockDiveComputerRepository extends _i1.Mock #entryLongitude: entryLongitude, #exitLatitude: exitLatitude, #exitLongitude: exitLongitude, + #minTemperature: minTemperature, + #maxTemperature: maxTemperature, }), ), ),