From 45a0418f853fabf96de926401329e6614dca68b3 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 25 Jun 2025 15:39:43 +0200 Subject: [PATCH 01/12] Implement enum for FareClass and OccupancyLevel --- .../opentransportdata/ojp/domain/model/FareClass.kt | 10 ++++++++++ .../ojp/domain/model/OccupancyLevel.kt | 12 ++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/domain/model/FareClass.kt create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/FareClass.kt b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/FareClass.kt new file mode 100644 index 0000000..3ff1f7c --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/FareClass.kt @@ -0,0 +1,10 @@ +package ch.opentransportdata.ojp.domain.model + +/** + * Created by Deniz Kalem on 25.06.2025 + */ +enum class FareClass { + UNKNOWN, + FIRST_CLASS, + SECOND_CLASS +} \ No newline at end of file diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt new file mode 100644 index 0000000..ed19c95 --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt @@ -0,0 +1,12 @@ +package ch.opentransportdata.ojp.domain.model + +/** + * Created by Deniz Kalem on 25.06.2025 + */ +enum class OccupancyLevel { + UNKNOWN, + MANY_SEATS_AVAILABLE, + FEW_SEATS_AVAILABLE, + STANDING_ROOM_ONLY, + FULL +} \ No newline at end of file From 40401373f5364cd111bd3c50636b8d7b872704e8 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 25 Jun 2025 15:40:03 +0200 Subject: [PATCH 02/12] Implement TypeConverter for FareClass and OccupancyLevel --- .../data/dto/converter/FareClassConverter.kt | 28 ++++++++++++++++ .../dto/converter/OccupancyLevelConverter.kt | 32 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt new file mode 100644 index 0000000..8325735 --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt @@ -0,0 +1,28 @@ +package ch.opentransportdata.ojp.data.dto.converter + +import ch.opentransportdata.ojp.domain.model.FareClass +import com.tickaroo.tikxml.TypeConverter + + +/** + * Created by Deniz Kalem on 13.08.2024 + */ +internal class FareClassConverter : TypeConverter { + + override fun read(ojpValue: String): FareClass { + return when (ojpValue) { + "unknown" -> FareClass.UNKNOWN + "firstClass" -> FareClass.FIRST_CLASS + "secondClass" -> FareClass.SECOND_CLASS + else -> FareClass.UNKNOWN + } + } + + override fun write(type: FareClass): String { + return when (type) { + FareClass.UNKNOWN -> "unknown" + FareClass.FIRST_CLASS -> "firstClass" + FareClass.SECOND_CLASS -> "secondClass" + } + } +} diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt new file mode 100644 index 0000000..d508eb4 --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt @@ -0,0 +1,32 @@ +package ch.opentransportdata.ojp.data.dto.converter + +import ch.opentransportdata.ojp.domain.model.OccupancyLevel +import com.tickaroo.tikxml.TypeConverter + + +/** + * Created by Deniz Kalem on 13.08.2024 + */ +internal class OccupancyLevelConverter : TypeConverter { + + override fun read(ojpValue: String): OccupancyLevel { + return when (ojpValue) { + "unknown" -> OccupancyLevel.UNKNOWN + "manySeatsAvailable" -> OccupancyLevel.MANY_SEATS_AVAILABLE + "fewSeatsAvailable" -> OccupancyLevel.FEW_SEATS_AVAILABLE + "standingRoomOnly" -> OccupancyLevel.STANDING_ROOM_ONLY + "full" -> OccupancyLevel.FULL + else -> OccupancyLevel.UNKNOWN + } + } + + override fun write(type: OccupancyLevel): String { + return when (type) { + OccupancyLevel.UNKNOWN -> "unknown" + OccupancyLevel.MANY_SEATS_AVAILABLE -> "manySeatsAvailable" + OccupancyLevel.FEW_SEATS_AVAILABLE -> "fewSeatsAvailable" + OccupancyLevel.STANDING_ROOM_ONLY -> "standingRoomOnly" + OccupancyLevel.FULL -> "full" + } + } +} \ No newline at end of file From 41697c9b89a0f57308dd99e3835e71ff73680959 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 25 Jun 2025 15:40:18 +0200 Subject: [PATCH 03/12] Implement ExpectedDepartureOccupancyDto --- .../tir/leg/ExpectedDepartureOccupancyDto.kt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ExpectedDepartureOccupancyDto.kt diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ExpectedDepartureOccupancyDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ExpectedDepartureOccupancyDto.kt new file mode 100644 index 0000000..772a70c --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ExpectedDepartureOccupancyDto.kt @@ -0,0 +1,20 @@ +package ch.opentransportdata.ojp.data.dto.response.tir.leg + +import android.os.Parcelable +import ch.opentransportdata.ojp.domain.model.FareClass +import ch.opentransportdata.ojp.domain.model.OccupancyLevel +import com.tickaroo.tikxml.annotation.PropertyElement +import com.tickaroo.tikxml.annotation.Xml +import kotlinx.parcelize.Parcelize + +/** + * Created by Deniz Kalem on 25.06.2025 + */ +@Parcelize +@Xml(name = "siri:ExpectedDepartureOccupancy") +data class ExpectedDepartureOccupancyDto( + @PropertyElement(name = "siri:FareClass") + val fareClass: FareClass, + @PropertyElement(name = "siri:OccupancyLevel") + val occupancyLevel: OccupancyLevel +) : Parcelable \ No newline at end of file From 0a333115ffb04f221af7dcdab16c3273ff6dc0fc Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 25 Jun 2025 15:40:53 +0200 Subject: [PATCH 04/12] Use TypeConverter for TikXml --- .../opentransportdata/ojp/di/NetworkModule.kt | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/di/NetworkModule.kt b/sdk/src/main/java/ch/opentransportdata/ojp/di/NetworkModule.kt index 879ce96..9a8d0f4 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/di/NetworkModule.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/di/NetworkModule.kt @@ -1,10 +1,26 @@ package ch.opentransportdata.ojp.di import ch.opentransportdata.ojp.BuildConfig -import ch.opentransportdata.ojp.data.dto.converter.* +import ch.opentransportdata.ojp.data.dto.converter.ConventionalModesOfOperationConverter +import ch.opentransportdata.ojp.data.dto.converter.DurationTypeConverter +import ch.opentransportdata.ojp.data.dto.converter.FareClassConverter +import ch.opentransportdata.ojp.data.dto.converter.LocalDateTimeTypeConverter +import ch.opentransportdata.ojp.data.dto.converter.OccupancyLevelConverter +import ch.opentransportdata.ojp.data.dto.converter.PlaceTypeRestrictionConverter +import ch.opentransportdata.ojp.data.dto.converter.PtModeTypeConverter +import ch.opentransportdata.ojp.data.dto.converter.RealTimeDataConverter +import ch.opentransportdata.ojp.data.dto.converter.ScopeTypeConverter +import ch.opentransportdata.ojp.data.dto.converter.TransferTypeConverter import ch.opentransportdata.ojp.data.remote.OjpService import ch.opentransportdata.ojp.di.interceptor.TokenInterceptor -import ch.opentransportdata.ojp.domain.model.* +import ch.opentransportdata.ojp.domain.model.ConventionalModesOfOperation +import ch.opentransportdata.ojp.domain.model.FareClass +import ch.opentransportdata.ojp.domain.model.OccupancyLevel +import ch.opentransportdata.ojp.domain.model.PlaceTypeRestriction +import ch.opentransportdata.ojp.domain.model.PtMode +import ch.opentransportdata.ojp.domain.model.RealtimeData +import ch.opentransportdata.ojp.domain.model.ScopeType +import ch.opentransportdata.ojp.domain.model.TransferType import ch.opentransportdata.ojp.domain.usecase.Initializer import com.tickaroo.tikxml.TikXml import com.tickaroo.tikxml.converter.htmlescape.HtmlEscapeStringConverter @@ -69,6 +85,8 @@ internal fun provideTikXml(initializer: Initializer): TikXml { .addTypeConverter(ConventionalModesOfOperation::class.java, ConventionalModesOfOperationConverter()) .addTypeConverter(RealtimeData::class.java, RealTimeDataConverter()) .addTypeConverter(ScopeType::class.java, ScopeTypeConverter()) + .addTypeConverter(FareClass::class.java, FareClassConverter()) + .addTypeConverter(OccupancyLevel::class.java, OccupancyLevelConverter()) .exceptionOnUnreadXml(false) .build() } From 7b69d004a7293b76fa155660c0d562279a7823a1 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 25 Jun 2025 15:41:27 +0200 Subject: [PATCH 05/12] Add ExpectedDepartureOccupancy for LegBoardDto and LegIntermediateDto --- .../ch/opentransportdata/presentation/tir/PreviewData.kt | 6 ++++-- .../ojp/data/dto/response/tir/leg/LegBoardDto.kt | 3 +++ .../ojp/data/dto/response/tir/leg/LegIntermediateDto.kt | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt b/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt index ad0cba3..4f7c955 100644 --- a/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt +++ b/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt @@ -143,7 +143,8 @@ object PreviewData { unplannedStop = null, notServicedStop = null, noBoardingAtStop = null, - noAlightingAtStop = null + noAlightingAtStop = null, + expectedDepartureOccupancy = null ), legIntermediate = null, legAlight = LegAlightDto( @@ -227,7 +228,8 @@ object PreviewData { unplannedStop = null, notServicedStop = true, noBoardingAtStop = null, - noAlightingAtStop = null + noAlightingAtStop = null, + expectedDepartureOccupancy = null ), legIntermediate = null, legAlight = LegAlightDto( diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt index f8b3691..a6bfa62 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt @@ -40,6 +40,8 @@ data class LegBoardDto( val noBoardingAtStop: Boolean?, @PropertyElement(name = "NoAlightingAtStop") val noAlightingAtStop: Boolean?, + @Element(name = "siri:ExpectedDepartureOccupancy") + val expectedDepartureOccupancy: List? ) : Parcelable { val isPlatformChanged: Boolean @@ -64,6 +66,7 @@ fun LegBoardDto.minimalCopy(): LegBoardDto { notServicedStop = null, noBoardingAtStop = null, noAlightingAtStop = null, + expectedDepartureOccupancy = null ) } diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt index 1127bd8..710d3b9 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt @@ -40,6 +40,8 @@ data class LegIntermediateDto( val noBoardingAtStop: Boolean?, @PropertyElement(name = "NoAlightingAtStop") val noAlightingAtStop: Boolean?, + @Element(name = "siri:ExpectedDepartureOccupancy") + val expectedDepartureOccupancy: List? ) : Parcelable { val isPlatformChanged: Boolean @@ -70,7 +72,8 @@ fun LegIntermediateDto.minimalCopy(): LegIntermediateDto { unplannedStop = null, notServicedStop = null, noBoardingAtStop = null, - noAlightingAtStop = null + noAlightingAtStop = null, + expectedDepartureOccupancy = emptyList() ) } From 4b55be043fe6ee1a3a42f36b5d4dd04ebc2df825 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 2 Jul 2025 13:45:24 +0200 Subject: [PATCH 06/12] Use trim function for FareClassConverter for correct mapping --- .../ojp/data/dto/converter/FareClassConverter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt index 8325735..82e16e0 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt @@ -10,7 +10,7 @@ import com.tickaroo.tikxml.TypeConverter internal class FareClassConverter : TypeConverter { override fun read(ojpValue: String): FareClass { - return when (ojpValue) { + return when (ojpValue.trim()) { "unknown" -> FareClass.UNKNOWN "firstClass" -> FareClass.FIRST_CLASS "secondClass" -> FareClass.SECOND_CLASS @@ -25,4 +25,4 @@ internal class FareClassConverter : TypeConverter { FareClass.SECOND_CLASS -> "secondClass" } } -} +} \ No newline at end of file From 425041f88e67ce3e96b9bf3685d67e768a316c72 Mon Sep 17 00:00:00 2001 From: deka91 Date: Wed, 2 Jul 2025 13:46:01 +0200 Subject: [PATCH 07/12] Fix xml name for LegAlightDto and LegIntermediateDto --- .../java/ch/opentransportdata/presentation/tir/PreviewData.kt | 4 ++-- .../ojp/data/dto/response/tir/leg/LegAlightDto.kt | 2 +- .../ojp/data/dto/response/tir/leg/LegBoardDto.kt | 4 ++-- .../ojp/data/dto/response/tir/leg/LegIntermediateDto.kt | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt b/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt index 4f7c955..76d9fbb 100644 --- a/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt +++ b/app/src/main/java/ch/opentransportdata/presentation/tir/PreviewData.kt @@ -144,7 +144,7 @@ object PreviewData { notServicedStop = null, noBoardingAtStop = null, noAlightingAtStop = null, - expectedDepartureOccupancy = null + expectedDepartureOccupancy = emptyList() ), legIntermediate = null, legAlight = LegAlightDto( @@ -229,7 +229,7 @@ object PreviewData { notServicedStop = true, noBoardingAtStop = null, noAlightingAtStop = null, - expectedDepartureOccupancy = null + expectedDepartureOccupancy = emptyList() ), legIntermediate = null, legAlight = LegAlightDto( diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegAlightDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegAlightDto.kt index 3efb933..4ee3807 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegAlightDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegAlightDto.kt @@ -12,7 +12,7 @@ import kotlinx.parcelize.Parcelize * Created by Michael Ruppen on 28.06.2024 */ @Parcelize -@Xml(name = "LegBoard") +@Xml(name = "LegAlight") data class LegAlightDto( @PropertyElement(name = "siri:StopPointRef") val stopPointRef: String, diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt index a6bfa62..6910795 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegBoardDto.kt @@ -41,7 +41,7 @@ data class LegBoardDto( @PropertyElement(name = "NoAlightingAtStop") val noAlightingAtStop: Boolean?, @Element(name = "siri:ExpectedDepartureOccupancy") - val expectedDepartureOccupancy: List? + val expectedDepartureOccupancy: List? = null ) : Parcelable { val isPlatformChanged: Boolean @@ -66,7 +66,7 @@ fun LegBoardDto.minimalCopy(): LegBoardDto { notServicedStop = null, noBoardingAtStop = null, noAlightingAtStop = null, - expectedDepartureOccupancy = null + expectedDepartureOccupancy = emptyList() ) } diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt index 710d3b9..d1bc6a5 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/LegIntermediateDto.kt @@ -12,7 +12,7 @@ import kotlinx.parcelize.Parcelize * Created by Michael Ruppen on 28.06.2024 */ @Parcelize -@Xml(name = "LegBoard") +@Xml(name = "LegIntermediate") data class LegIntermediateDto( @PropertyElement(name = "siri:StopPointRef") val stopPointRef: String, @@ -41,7 +41,7 @@ data class LegIntermediateDto( @PropertyElement(name = "NoAlightingAtStop") val noAlightingAtStop: Boolean?, @Element(name = "siri:ExpectedDepartureOccupancy") - val expectedDepartureOccupancy: List? + val expectedDepartureOccupancy: List? = null ) : Parcelable { val isPlatformChanged: Boolean From a739e8964b47b300fe44f87e0782fe49c206fb21 Mon Sep 17 00:00:00 2001 From: nicoti8m Date: Wed, 2 Jul 2025 17:00:10 +0200 Subject: [PATCH 08/12] Add personal service dto --- .../dto/response/tir/leg/ContinuousLegDto.kt | 5 ++-- .../tir/leg/ContinuousServiceStructure.kt | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousServiceStructure.kt diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt index 3c2121c..2b62bbb 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt @@ -17,8 +17,8 @@ data class ContinuousLegDto( val legStart: LegStartEndDto, @Element(name = "LegEnd") val legEnd: LegStartEndDto, -// @Element(name = "Service") -// val service: ServiceDto,//Todo: create separate ContinuousService + @Element(name = "Service") + val service: ContinuousServiceTypeChoiceDto,//Todo: create separate ContinuousService @PropertyElement(name = "Duration") val duration: Duration ) : AbstractLegType(), Parcelable @@ -28,5 +28,6 @@ fun ContinuousLegDto.minimalCopy(): ContinuousLegDto { legStart = legStart, legEnd = legEnd, duration = duration, + service = service ) } \ No newline at end of file diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousServiceStructure.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousServiceStructure.kt new file mode 100644 index 0000000..74a40f9 --- /dev/null +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousServiceStructure.kt @@ -0,0 +1,26 @@ +package ch.opentransportdata.ojp.data.dto.response.tir.leg + +import android.os.Parcelable +import com.tickaroo.tikxml.annotation.Element +import com.tickaroo.tikxml.annotation.Xml +import kotlinx.parcelize.Parcelize + +/** + * Created by Nico Brandenberger on 02.07.2025 + */ + +@Parcelize +@Xml(name = "ContinuousServiceTypeChoice") +data class ContinuousServiceTypeChoiceDto( + @Element(name = "PersonalService") + val personalService: PersonalServiceDto?, + @Element(name = "DatedJourney") + val datedJourneyDto: DatedJourneyDto? +) : Parcelable + +@Parcelize +@Xml(name = "PersonalService") +data class PersonalServiceDto( + @Element(name = "PersonalMode") + val personalMode: String, +) : Parcelable \ No newline at end of file From 34f263de033d84506e9f528f4e3a81af8850ae63 Mon Sep 17 00:00:00 2001 From: nicoti8m Date: Thu, 3 Jul 2025 09:43:31 +0200 Subject: [PATCH 09/12] Remove TODO --- .../ojp/data/dto/response/tir/leg/ContinuousLegDto.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt index 2b62bbb..d2928ff 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/tir/leg/ContinuousLegDto.kt @@ -18,7 +18,7 @@ data class ContinuousLegDto( @Element(name = "LegEnd") val legEnd: LegStartEndDto, @Element(name = "Service") - val service: ContinuousServiceTypeChoiceDto,//Todo: create separate ContinuousService + val service: ContinuousServiceTypeChoiceDto, @PropertyElement(name = "Duration") val duration: Duration ) : AbstractLegType(), Parcelable From c31744461be5373775f6acb0a12b078f47d92fc6 Mon Sep 17 00:00:00 2001 From: deka91 Date: Thu, 3 Jul 2025 11:54:45 +0200 Subject: [PATCH 10/12] Add remaining Occupancy Levels --- .../ojp/data/dto/converter/FareClassConverter.kt | 2 +- .../ojp/data/dto/converter/OccupancyLevelConverter.kt | 10 +++++++++- .../ojp/domain/model/OccupancyLevel.kt | 4 ++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt index 82e16e0..76ac778 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/FareClassConverter.kt @@ -5,7 +5,7 @@ import com.tickaroo.tikxml.TypeConverter /** - * Created by Deniz Kalem on 13.08.2024 + * Created by Deniz Kalem on 02.07.2025 */ internal class FareClassConverter : TypeConverter { diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt index d508eb4..8aa4cd1 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/converter/OccupancyLevelConverter.kt @@ -5,16 +5,20 @@ import com.tickaroo.tikxml.TypeConverter /** - * Created by Deniz Kalem on 13.08.2024 + * Created by Deniz Kalem on 02.07.2025 */ internal class OccupancyLevelConverter : TypeConverter { override fun read(ojpValue: String): OccupancyLevel { return when (ojpValue) { "unknown" -> OccupancyLevel.UNKNOWN + "empty" -> OccupancyLevel.UNKNOWN + "undefined" -> OccupancyLevel.UNDEFINED "manySeatsAvailable" -> OccupancyLevel.MANY_SEATS_AVAILABLE "fewSeatsAvailable" -> OccupancyLevel.FEW_SEATS_AVAILABLE "standingRoomOnly" -> OccupancyLevel.STANDING_ROOM_ONLY + "crushedStandingRoomOnly" -> OccupancyLevel.CRUSHED_STANDING_ROOM_ONLY + "notAcceptingPassengers" -> OccupancyLevel.NOT_ACCEPTING_PASSENGERS "full" -> OccupancyLevel.FULL else -> OccupancyLevel.UNKNOWN } @@ -23,9 +27,13 @@ internal class OccupancyLevelConverter : TypeConverter { override fun write(type: OccupancyLevel): String { return when (type) { OccupancyLevel.UNKNOWN -> "unknown" + OccupancyLevel.EMPTY -> "empty" + OccupancyLevel.UNDEFINED -> "undefined" OccupancyLevel.MANY_SEATS_AVAILABLE -> "manySeatsAvailable" OccupancyLevel.FEW_SEATS_AVAILABLE -> "fewSeatsAvailable" OccupancyLevel.STANDING_ROOM_ONLY -> "standingRoomOnly" + OccupancyLevel.CRUSHED_STANDING_ROOM_ONLY -> "crushedStandingRoomOnly" + OccupancyLevel.NOT_ACCEPTING_PASSENGERS -> "notAcceptingPassengers" OccupancyLevel.FULL -> "full" } } diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt index ed19c95..768fe5e 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/domain/model/OccupancyLevel.kt @@ -5,8 +5,12 @@ package ch.opentransportdata.ojp.domain.model */ enum class OccupancyLevel { UNKNOWN, + EMPTY, + UNDEFINED, MANY_SEATS_AVAILABLE, FEW_SEATS_AVAILABLE, STANDING_ROOM_ONLY, + CRUSHED_STANDING_ROOM_ONLY, + NOT_ACCEPTING_PASSENGERS, FULL } \ No newline at end of file From 044ae0ae6f334dd182b08b230dea6540170c73ac Mon Sep 17 00:00:00 2001 From: nicoti8m Date: Thu, 3 Jul 2025 13:27:02 +0200 Subject: [PATCH 11/12] Fix name dto for place reference and stop place --- .../ojp/data/dto/request/tir/PlaceReferenceDto.kt | 2 +- .../ojp/data/dto/response/place/StopPlaceDto.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/request/tir/PlaceReferenceDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/request/tir/PlaceReferenceDto.kt index 5df35f0..ae821a4 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/request/tir/PlaceReferenceDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/request/tir/PlaceReferenceDto.kt @@ -20,7 +20,7 @@ data class PlaceReferenceDto( //If more types needed, create custom typeAdapter and parse only necessary @PropertyElement(name = "StopPlaceRef") val ref: String? = null, - @Element(name = "StopPlaceName") + @Element(name = "Name") val stationName: NameDto?, @Element(name = "GeoPosition") //todo: check if schema is correct (when working on backend), think of solution where only send this if is Address val position: GeoPositionDto? = null diff --git a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/place/StopPlaceDto.kt b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/place/StopPlaceDto.kt index c99e34e..d0abf09 100644 --- a/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/place/StopPlaceDto.kt +++ b/sdk/src/main/java/ch/opentransportdata/ojp/data/dto/response/place/StopPlaceDto.kt @@ -21,7 +21,7 @@ data class StopPlaceDto( override val privateCodes: List? = emptyList(), @PropertyElement(name = "StopPlaceRef") val stopPlaceRef: String, - @Element(name = "StopPlaceName") + @Element(name = "Name") val name: NameDto?, @Element(name = "NameSuffix") val nameSuffix: NameDto?, From 96734cc75d570ba9c55d00914074f36d9dd60fcb Mon Sep 17 00:00:00 2001 From: deka91 Date: Thu, 3 Jul 2025 13:39:17 +0200 Subject: [PATCH 12/12] Fix unit test --- sdk/src/test/resources/adapter/place/stop_place.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/src/test/resources/adapter/place/stop_place.xml b/sdk/src/test/resources/adapter/place/stop_place.xml index 137da7d..fac9276 100644 --- a/sdk/src/test/resources/adapter/place/stop_place.xml +++ b/sdk/src/test/resources/adapter/place/stop_place.xml @@ -1,9 +1,9 @@ 8501120 - + Lausanne - + EFA 107099