diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..4bec4ea
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/LICENCE.md b/LICENCE.md
index c453195..3d54c8d 100644
--- a/LICENCE.md
+++ b/LICENCE.md
@@ -2,6 +2,8 @@
Copyright © 2022 Ryanair Labs
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-documentation files ( the "Software" ), to deal in the Software only with the scope of recruitment process, with
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+associated
+documentation files ( the "Software" ), to deal in the Software only with the scope of recruitment
+process, with
limitation the rights to publish, distribute, sublicense, and/or sell copies of the Software.
\ No newline at end of file
diff --git a/README.md b/README.md
index ccc9ada..2ae505e 100644
--- a/README.md
+++ b/README.md
@@ -4,8 +4,10 @@
We would like you to build an app to search for flights.
-You are provided with a codebase containing a bit of code so that you can start working on the task faster. It
-includes some parts of the UI, basic network layer implementation with DTOs & DI setup. Feel free to modify any file
+You are provided with a codebase containing a bit of code so that you can start working on the task
+faster. It
+includes some parts of the UI, basic network layer implementation with DTOs & DI setup. Feel free to
+modify any file
you find in the repo – this is only there to help you out.
Please develop an Android app with the following requirements:
@@ -29,11 +31,12 @@ Please develop an Android app with the following requirements:
* User can use search field to filter the airports list
* Screen works with 2 configurations
* Origin selection – all stations are available for selection
- * Destination selection – only stations to which we can travel from origin selection are available for selection
+ * Destination selection – only stations to which we can travel from origin selection are
+ available for selection
### Results screen
-* A list of results for the specified search criteria is shown
+* A list of results for the specified search criteria is shown
* Show only the crucial information about the trip
* Make sure to handle network errors and empty results
@@ -44,7 +47,7 @@ ___
* for `AirportService` and `RoutesService`:
* for `FlightService`:
-*Tip: For test purposes try DUB (Dublin) – STN (London Stansted) route – it has flights every day.*
+*Tip: For test purposes try DUB (Dublin) – STN (London Stansted) route – it has flights every day.*
---
@@ -60,11 +63,14 @@ ___
### Questions for you
Please submit the answers to the following questions in the README.md file
+
* How long did you spend on the task?
-* Rate from 0-10, how would you assess the complexity of the task? _0 - very trivial_, _10 - extremely complex_
+* Rate from 0-10, how would you assess the complexity of the task? _0 - very trivial_, _10 -
+ extremely complex_
* If you had more time (or if you were doing it in production) what would you have changed/improved?
* Which parts of the code would you like to highlight?
-* In your opinion, which Google library was the best addition to the Android Dev world in the last years?
+* In your opinion, which Google library was the best addition to the Android Dev world in the last
+ years?
> If you have the need to comment the provided task, we would love to hear that from you 🙂
> ...
@@ -72,13 +78,17 @@ Please submit the answers to the following questions in the README.md file
### Time frame
-You have __4 days__ to submit your solution. There is no need to spend more than 12 hours on the task as we don't seek perfection.
+You have __4 days__ to submit your solution. There is no need to spend more than 12 hours on the
+task as we don't seek perfection.
Focus on the key areas of Android development
---
-#### Please fork this repository. After finishing a task, create pull request to the parent repository ``main`` branch.
+#### Please fork this repository. After finishing a task, create pull request to the parent repository
-You are allowed to use AI tools to assist with this programming task. However, you will be asked to explain your solutions in detail.
+``main`` branch.
+
+You are allowed to use AI tools to assist with this programming task. However, you will be asked to
+explain your solutions in detail.
---
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 39af1db..3ae9c0a 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,3 @@
-import java.io.FileInputStream
-import java.util.Properties
-
plugins {
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.flights.android.application.compose)
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml
index 3acbfa8..c579314 100644
--- a/app/lint-baseline.xml
+++ b/app/lint-baseline.xml
@@ -82,14 +82,14 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index c4a603d..00f9eaa 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index c4a603d..00f9eaa 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 55344e5..a6b3dae 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,3 +1,2 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationConvention.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationConvention.kt
index 5beb40f..a16643d 100644
--- a/build-logic/convention/src/main/kotlin/AndroidApplicationConvention.kt
+++ b/build-logic/convention/src/main/kotlin/AndroidApplicationConvention.kt
@@ -17,7 +17,6 @@
import com.android.build.api.dsl.ApplicationExtension
import dev.adriankuta.flights.configureAndroidLint
import dev.adriankuta.flights.configureDetektDependencies
-import dev.adriankuta.flights.configureFlavors
import dev.adriankuta.flights.configureKotlinAndroid
import dev.adriankuta.flights.configureUnitTests
import org.gradle.api.Plugin
diff --git a/core/util/lint-baseline.xml b/core/util/lint-baseline.xml
index 5e74404..7c6c706 100644
--- a/core/util/lint-baseline.xml
+++ b/core/util/lint-baseline.xml
@@ -5,7 +5,7 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/core/util/src/main/kotlin/dev/adriankuta/flights/core/util/Result.kt b/core/util/src/main/kotlin/dev/adriankuta/flights/core/util/Result.kt
index aa63ebf..18f456d 100644
--- a/core/util/src/main/kotlin/dev/adriankuta/flights/core/util/Result.kt
+++ b/core/util/src/main/kotlin/dev/adriankuta/flights/core/util/Result.kt
@@ -13,4 +13,4 @@ sealed interface Result {
fun Flow.asResult(): Flow> = map> { Result.Success(it) }
.onStart { emit(Result.Loading) }
- .catch { emit(Result.Error(it)) }
\ No newline at end of file
+ .catch { emit(Result.Error(it)) }
diff --git a/domain/search/lint-baseline.xml b/domain/search/lint-baseline.xml
new file mode 100644
index 0000000..7c6c706
--- /dev/null
+++ b/domain/search/lint-baseline.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/domain/search/src/main/kotlin/dev/adriankuta/flights/domain/search/ObserveAirportsUseCase.kt b/domain/search/src/main/kotlin/dev/adriankuta/flights/domain/search/ObserveAirportsUseCase.kt
index 0149cfd..ee87544 100644
--- a/domain/search/src/main/kotlin/dev/adriankuta/flights/domain/search/ObserveAirportsUseCase.kt
+++ b/domain/search/src/main/kotlin/dev/adriankuta/flights/domain/search/ObserveAirportsUseCase.kt
@@ -5,4 +5,4 @@ import kotlinx.coroutines.flow.Flow
fun interface ObserveAirportsUseCase {
operator fun invoke(): Flow?>
-}
\ No newline at end of file
+}
diff --git a/domain/types/lint-baseline.xml b/domain/types/lint-baseline.xml
index 5e74404..7c6c706 100644
--- a/domain/types/lint-baseline.xml
+++ b/domain/types/lint-baseline.xml
@@ -5,7 +5,7 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Airport.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Airport.kt
index f8245a9..96037e3 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Airport.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Airport.kt
@@ -8,18 +8,18 @@ sealed interface Airport {
data class Departure(
override val code: String,
override val name: String,
- override val macCity: MacCity?
+ override val macCity: MacCity?,
) : Airport
data class Arrival(
override val code: String,
override val name: String,
- override val macCity: MacCity?
+ override val macCity: MacCity?,
) : Airport
data class Connecting(
override val code: String,
override val name: String,
- override val macCity: MacCity?
+ override val macCity: MacCity?,
) : Airport
-}
\ No newline at end of file
+}
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/AirportInfo.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/AirportInfo.kt
index 0838e3f..b81bf2e 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/AirportInfo.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/AirportInfo.kt
@@ -10,5 +10,5 @@ data class AirportInfo(
val macCity: MacCity,
val region: Region,
val country: Country,
- val coordinates: Coordinates
-)
\ No newline at end of file
+ val coordinates: Coordinates,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/City.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/City.kt
index a214595..5881c4b 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/City.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/City.kt
@@ -2,5 +2,5 @@ package dev.adriankuta.flights.domain.types
data class City(
val code: String,
- val name: String
-)
\ No newline at end of file
+ val name: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Coordinates.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Coordinates.kt
index eacfa6b..4be1a69 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Coordinates.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Coordinates.kt
@@ -2,5 +2,5 @@ package dev.adriankuta.flights.domain.types
data class Coordinates(
val latitude: Double,
- val longitude: Double
-)
\ No newline at end of file
+ val longitude: Double,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Country.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Country.kt
index ee8c476..f4d0272 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Country.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Country.kt
@@ -3,5 +3,5 @@ package dev.adriankuta.flights.domain.types
data class Country(
val code: String,
val name: String,
- val currencyCode: String
-)
\ No newline at end of file
+ val currencyCode: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Flight.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Flight.kt
index 9462f89..d8e2b71 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Flight.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Flight.kt
@@ -3,5 +3,5 @@ package dev.adriankuta.flights.domain.types
data class Flight(
val currency: String,
val currPrecision: Int,
- val trips: List
+ val trips: List,
)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/MacCity.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/MacCity.kt
index b686b0e..aad5a16 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/MacCity.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/MacCity.kt
@@ -1,5 +1,5 @@
package dev.adriankuta.flights.domain.types
data class MacCity(
- val macCode: String
-)
\ No newline at end of file
+ val macCode: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Region.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Region.kt
index c5653b7..3da0bdc 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Region.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Region.kt
@@ -2,5 +2,5 @@ package dev.adriankuta.flights.domain.types
data class Region(
val code: String,
- val name: String
-)
\ No newline at end of file
+ val name: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/RegularFare.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/RegularFare.kt
index d7df162..7c2d5a2 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/RegularFare.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/RegularFare.kt
@@ -1,5 +1,5 @@
package dev.adriankuta.flights.domain.types
data class RegularFare(
- val fares: List
-)
\ No newline at end of file
+ val fares: List,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Route.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Route.kt
index e645ab8..7a6d20f 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Route.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Route.kt
@@ -3,5 +3,5 @@ package dev.adriankuta.flights.domain.types
data class Route(
val departureAirport: Airport.Departure,
val arrivalAirport: Airport.Arrival,
- val connectingAirport: Airport.Connecting?
-)
\ No newline at end of file
+ val connectingAirport: Airport.Connecting?,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Segment.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Segment.kt
index eaef042..4497ee9 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Segment.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Segment.kt
@@ -5,5 +5,5 @@ data class Segment(
val destination: String,
val flightNumber: String,
val dateTimes: List,
- val duration: String
-)
\ No newline at end of file
+ val duration: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Trip.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Trip.kt
index 01a76a5..5687b81 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Trip.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/Trip.kt
@@ -3,5 +3,5 @@ package dev.adriankuta.flights.domain.types
data class Trip(
val dates: List,
val origin: String,
- val destination: String
-)
\ No newline at end of file
+ val destination: String,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripDate.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripDate.kt
index 5f50b74..56935d1 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripDate.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripDate.kt
@@ -2,5 +2,5 @@ package dev.adriankuta.flights.domain.types
data class TripDate(
val dateOut: String,
- val flights: List
-)
\ No newline at end of file
+ val flights: List,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFare.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFare.kt
index d965734..75fb4b7 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFare.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFare.kt
@@ -3,5 +3,5 @@ package dev.adriankuta.flights.domain.types
data class TripFare(
val type: String,
val amount: Double,
- val count: Int
-)
\ No newline at end of file
+ val count: Int,
+)
diff --git a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFlight.kt b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFlight.kt
index fac4f11..5eded02 100644
--- a/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFlight.kt
+++ b/domain/types/src/main/kotlin/dev/adriankuta/flights/domain/types/TripFlight.kt
@@ -7,5 +7,5 @@ data class TripFlight(
val dateTimes: List,
val duration: String,
val segments: List,
- val operatedBy: String
-)
\ No newline at end of file
+ val operatedBy: String,
+)
diff --git a/model/data/api/lint-baseline.xml b/model/data/api/lint-baseline.xml
new file mode 100644
index 0000000..7c6c706
--- /dev/null
+++ b/model/data/api/lint-baseline.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/AirportService.kt b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/AirportService.kt
index e3d4140..163e871 100644
--- a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/AirportService.kt
+++ b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/AirportService.kt
@@ -8,5 +8,4 @@ interface AirportService {
@GET("/views/locate/5/airports/{language}/active")
suspend fun getAirports(@Path("language") languageCode: String): List
-
}
diff --git a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/FlightService.kt b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/FlightService.kt
index 99b5e39..50b483e 100644
--- a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/FlightService.kt
+++ b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/FlightService.kt
@@ -10,9 +10,10 @@ interface FlightService {
// example query: v4/en-gb/Availability?dateout=2025-09-17&origin=WRO&destination=DUB&adt=1&ToUs=AGREED
@Headers(
"client: android",
- "client-version: 3.300.0"
+ "client-version: 3.300.0",
)
@GET("v4/en-gb/Availability")
+ @Suppress("LongParameterList")
suspend fun getFlights(
@Query("dateout") date: String,
@Query("origin") origin: String,
@@ -21,6 +22,6 @@ interface FlightService {
@Query("teen") teen: Int,
@Query("chd") child: Int,
@Query("inf") inf: Int = 0,
- @Query("ToUs") toUs: String = "AGREED"
+ @Query("ToUs") toUs: String = "AGREED",
): FlightResponse
}
diff --git a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/AirportResponse.kt b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/AirportResponse.kt
index 7b8f30e..0df8de4 100644
--- a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/AirportResponse.kt
+++ b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/AirportResponse.kt
@@ -14,38 +14,38 @@ data class AirportResponse(
@Json(name = "macCity") val macCity: MacCity?,
@Json(name = "region") val region: Region?,
@Json(name = "country") val country: Country?,
- @Json(name = "coordinates") val coordinates: Coordinates?
+ @Json(name = "coordinates") val coordinates: Coordinates?,
) {
@JsonClass(generateAdapter = true)
data class City(
@Json(name = "code") val code: String?,
- @Json(name = "name") val name: String?
+ @Json(name = "name") val name: String?,
)
@JsonClass(generateAdapter = true)
data class MacCity(
@Json(name = "code") val code: String?,
@Json(name = "macCode") val macCode: String?,
- @Json(name = "name") val name: String?
+ @Json(name = "name") val name: String?,
)
@JsonClass(generateAdapter = true)
data class Region(
@Json(name = "code") val code: String?,
- @Json(name = "name") val name: String?
+ @Json(name = "name") val name: String?,
)
@JsonClass(generateAdapter = true)
data class Country(
@Json(name = "code") val code: String?,
@Json(name = "name") val name: String?,
- @Json(name = "currency") val currencyCode: String?
+ @Json(name = "currency") val currencyCode: String?,
)
@JsonClass(generateAdapter = true)
data class Coordinates(
@Json(name = "latitude") val latitude: Double?,
- @Json(name = "longitude") val longitude: Double?
+ @Json(name = "longitude") val longitude: Double?,
)
}
diff --git a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/FlightResponse.kt b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/FlightResponse.kt
index 1a9369b..1deb550 100644
--- a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/FlightResponse.kt
+++ b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/FlightResponse.kt
@@ -1,6 +1,5 @@
package dev.adriankuta.model.data.api.entities
-
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@@ -8,20 +7,20 @@ import com.squareup.moshi.JsonClass
data class FlightResponse(
@Json(name = "currency") val currency: String?,
@Json(name = "currPrecision") val currPrecision: Int?,
- @Json(name = "trips") val trips: List?
+ @Json(name = "trips") val trips: List?,
)
@JsonClass(generateAdapter = true)
data class Trip(
@Json(name = "dates") val dates: List?,
@Json(name = "origin") val origin: String?,
- @Json(name = "destination") val destination: String?
+ @Json(name = "destination") val destination: String?,
)
@JsonClass(generateAdapter = true)
data class TripDate(
@Json(name = "dateOut") val dateOut: String?,
- @Json(name = "flights") val flights: List?
+ @Json(name = "flights") val flights: List?,
)
@JsonClass(generateAdapter = true)
@@ -37,14 +36,14 @@ data class TripFlight(
@JsonClass(generateAdapter = true)
data class RegularFare(
- @Json(name = "fares") val fares: List?
+ @Json(name = "fares") val fares: List?,
)
@JsonClass(generateAdapter = true)
data class TripFare(
@Json(name = "type") val type: String?,
@Json(name = "amount") val amount: Double?,
- @Json(name = "count") val count: Int?
+ @Json(name = "count") val count: Int?,
)
@JsonClass(generateAdapter = true)
@@ -53,5 +52,5 @@ data class Segment(
@Json(name = "destination") val destination: String?,
@Json(name = "flightNumber") val flightNumber: String?,
@Json(name = "time") val dateTimes: List?,
- @Json(name = "duration") val duration: String?
-)
\ No newline at end of file
+ @Json(name = "duration") val duration: String?,
+)
diff --git a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/RouteResponse.kt b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/RouteResponse.kt
index 3d20b88..af61581 100644
--- a/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/RouteResponse.kt
+++ b/model/data/api/src/main/kotlin/dev/adriankuta/model/data/api/entities/RouteResponse.kt
@@ -7,7 +7,7 @@ import com.squareup.moshi.JsonClass
data class RouteResponse(
@Json(name = "departureAirport") val departureAirport: Airport.Departure?,
@Json(name = "arrivalAirport") val arrivalAirport: Airport.Arrival?,
- @Json(name = "connectingAirport") val connectingAirport: Airport.Connecting?
+ @Json(name = "connectingAirport") val connectingAirport: Airport.Connecting?,
) {
sealed interface Airport {
@@ -32,19 +32,19 @@ data class RouteResponse(
data class Arrival(
override val code: String?,
override val name: String?,
- override val macCity: MacCity?
+ override val macCity: MacCity?,
) : Airport
@JsonClass(generateAdapter = true)
data class Connecting(
override val code: String?,
override val name: String?,
- override val macCity: MacCity?
+ override val macCity: MacCity?,
) : Airport
@JsonClass(generateAdapter = true)
data class MacCity(
- @Json(name = "macCode") val macCode: String?
+ @Json(name = "macCode") val macCode: String?,
)
}
}
diff --git a/model/data/room/lint-baseline.xml b/model/data/room/lint-baseline.xml
index 5e74404..7c6c706 100644
--- a/model/data/room/lint-baseline.xml
+++ b/model/data/room/lint-baseline.xml
@@ -5,7 +5,7 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/model/data/shared/lint-baseline.xml b/model/data/shared/lint-baseline.xml
new file mode 100644
index 0000000..7c6c706
--- /dev/null
+++ b/model/data/shared/lint-baseline.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/model/data/shared/src/main/kotlin/dev/adriankuta/flights/model/data/shared/CacheImpl.kt b/model/data/shared/src/main/kotlin/dev/adriankuta/flights/model/data/shared/CacheImpl.kt
index 6254b92..6b49967 100644
--- a/model/data/shared/src/main/kotlin/dev/adriankuta/flights/model/data/shared/CacheImpl.kt
+++ b/model/data/shared/src/main/kotlin/dev/adriankuta/flights/model/data/shared/CacheImpl.kt
@@ -2,13 +2,13 @@ package dev.adriankuta.flights.model.data.shared
import dev.adriankuta.flights.model.datasource.shared.Cache
-public data class CacheImpl(override val cacheKey: String?, override val data: T?) :
+data class CacheImpl(override val cacheKey: String?, override val data: T?) :
Cache {
- public companion object {
- public inline fun emptyCache(): CacheImpl =
+ companion object {
+ inline fun emptyCache(): CacheImpl =
CacheImpl(null, null)
- public inline fun Cache?.orEmpty(): Cache =
+ inline fun Cache?.orEmpty(): Cache =
this ?: emptyCache()
}
-}
\ No newline at end of file
+}
diff --git a/model/data/simple/lint-baseline.xml b/model/data/simple/lint-baseline.xml
index 5e74404..7c6c706 100644
--- a/model/data/simple/lint-baseline.xml
+++ b/model/data/simple/lint-baseline.xml
@@ -5,7 +5,7 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/model/data/simple/src/main/assets/characters.json b/model/data/simple/src/main/assets/characters.json
index 0da9f6b..c9eb8cf 100644
--- a/model/data/simple/src/main/assets/characters.json
+++ b/model/data/simple/src/main/assets/characters.json
@@ -2,56 +2,77 @@
"data": [
{
"name": "Adam Małysz"
- }, {
+ },
+ {
"name": "Harry Potter"
- }, {
+ },
+ {
"name": "SpongeBob"
- }, {
+ },
+ {
"name": "Miś uszatek"
- }, {
+ },
+ {
"name": "Brzydkie kaczątko"
- }, {
+ },
+ {
"name": "Papa Smerf"
- }, {
+ },
+ {
"name": "Smerfetka"
- }, {
+ },
+ {
"name": "Gargamel",
"category": "Smerfy"
- }, {
+ },
+ {
"name": "Ważniak",
"category": "Smerfy"
- }, {
+ },
+ {
"name": "Roszpunka"
- }, {
+ },
+ {
"name": "Myszka Miki"
- }, {
+ },
+ {
"name": "Król Lew"
- }, {
+ },
+ {
"name": "Elsa",
"category": "Kraina lodu"
- }, {
+ },
+ {
"name": "Olaf",
"category": "Kraina lodu"
- }, {
+ },
+ {
"name": "Mała syrenka"
- }, {
+ },
+ {
"name": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Prosiaczek",
"category": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Kłapouchy",
"category": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Królik",
"category": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Maleństwo",
"category": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Pan Sowa",
"category": "Kubuś Puchatek"
- }, {
+ },
+ {
"name": "Krzyś",
"category": "Kubuś Puchatek"
}
diff --git a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/AirportsDatasourceImpl.kt b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/AirportsDatasourceImpl.kt
index 6573603..0797ac8 100644
--- a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/AirportsDatasourceImpl.kt
+++ b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/AirportsDatasourceImpl.kt
@@ -18,11 +18,11 @@ internal class AirportsDatasourceImpl : AirportsDatasource {
override suspend fun setAirportsInfo(
airports: List,
- cacheKey: String
+ cacheKey: String,
) {
_airports.value = CacheImpl(
cacheKey = cacheKey,
- data = airports.map { it.toModel() }
+ data = airports.map { it.toModel() },
)
}
}
diff --git a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/di/AirportsDatasourceModule.kt b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/di/AirportsDatasourceModule.kt
index 02846fc..c9c6599 100644
--- a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/di/AirportsDatasourceModule.kt
+++ b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/di/AirportsDatasourceModule.kt
@@ -27,4 +27,4 @@ internal class AirportsDatasourceImplModule {
@Provides
@Singleton
fun provide(): AirportsDatasourceImpl = AirportsDatasourceImpl()
-}
\ No newline at end of file
+}
diff --git a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/mappers/AirportInfoModelMapper.kt b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/mappers/AirportInfoModelMapper.kt
index 9466059..d331b6a 100644
--- a/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/mappers/AirportInfoModelMapper.kt
+++ b/model/data/simple/src/main/kotlin/dev/adriankuta/flights/model/data/simple/mappers/AirportInfoModelMapper.kt
@@ -19,7 +19,7 @@ internal fun AirportResponse.toModel(): AirportInfoModel {
countryName = country?.name.orEmpty(),
countryCurrencyCode = country?.currencyCode.orEmpty(),
latitude = coordinates?.latitude ?: 0.0,
- longitude = coordinates?.longitude ?: 0.0
+ longitude = coordinates?.longitude ?: 0.0,
)
}
@@ -38,5 +38,5 @@ private data class AirportInfoModelImpl(
override val countryName: String,
override val countryCurrencyCode: String,
override val latitude: Double,
- override val longitude: Double
+ override val longitude: Double,
) : AirportInfoModel
diff --git a/model/datasource/airports/lint-baseline.xml b/model/datasource/airports/lint-baseline.xml
new file mode 100644
index 0000000..7c6c706
--- /dev/null
+++ b/model/datasource/airports/lint-baseline.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/model/datasource/shared/lint-baseline.xml b/model/datasource/shared/lint-baseline.xml
new file mode 100644
index 0000000..7c6c706
--- /dev/null
+++ b/model/datasource/shared/lint-baseline.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/model/datasource/shared/src/main/kotlin/dev/adriankuta/flights/model/datasource/shared/Cache.kt b/model/datasource/shared/src/main/kotlin/dev/adriankuta/flights/model/datasource/shared/Cache.kt
index dae808e..3adb23d 100644
--- a/model/datasource/shared/src/main/kotlin/dev/adriankuta/flights/model/datasource/shared/Cache.kt
+++ b/model/datasource/shared/src/main/kotlin/dev/adriankuta/flights/model/datasource/shared/Cache.kt
@@ -1,6 +1,6 @@
-package dev.adriankuta.flights.model.datasource.shared;
+package dev.adriankuta.flights.model.datasource.shared
-public interface Cache {
- public val cacheKey: String?
- public val data: T?
-}
\ No newline at end of file
+interface Cache {
+ val cacheKey: String?
+ val data: T?
+}
diff --git a/model/repository/lint-baseline.xml b/model/repository/lint-baseline.xml
index 5e74404..7c6c706 100644
--- a/model/repository/lint-baseline.xml
+++ b/model/repository/lint-baseline.xml
@@ -5,7 +5,7 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/di/ObserveAirportsUseCaseModule.kt b/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/di/ObserveAirportsUseCaseModule.kt
index 1d692bf..5c355f9 100644
--- a/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/di/ObserveAirportsUseCaseModule.kt
+++ b/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/di/ObserveAirportsUseCaseModule.kt
@@ -14,6 +14,6 @@ internal abstract class ObserveAirportsUseCaseModule {
@Binds
abstract fun bind(
- observeAirportsUseCaseImpl: ObserveAirportsUseCaseImpl
+ observeAirportsUseCaseImpl: ObserveAirportsUseCaseImpl,
): ObserveAirportsUseCase
}
diff --git a/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/mappers/AirportInfoDomainMapper.kt b/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/mappers/AirportInfoDomainMapper.kt
index 6a84520..1f5c9d5 100644
--- a/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/mappers/AirportInfoDomainMapper.kt
+++ b/model/repository/src/main/kotlin/dev/adriankuta/flights/model/repository/mappers/AirportInfoDomainMapper.kt
@@ -17,23 +17,23 @@ internal fun AirportInfoModel.toDomain(): AirportInfo {
timeZone = timeZone,
city = City(
code = cityCode,
- name = cityName
+ name = cityName,
),
macCity = MacCity(
- macCode = macCode
+ macCode = macCode,
),
region = Region(
code = regionCode,
- name = regionName
+ name = regionName,
),
country = Country(
code = countryCode,
name = countryName,
- currencyCode = countryCurrencyCode
+ currencyCode = countryCurrencyCode,
),
coordinates = Coordinates(
latitude = latitude,
- longitude = longitude
- )
+ longitude = longitude,
+ ),
)
}
diff --git a/ui/designsystem/lint-baseline.xml b/ui/designsystem/lint-baseline.xml
index cb01929..839274d 100644
--- a/ui/designsystem/lint-baseline.xml
+++ b/ui/designsystem/lint-baseline.xml
@@ -5,14 +5,14 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
diff --git a/ui/home/src/main/kotlin/dev/adriankuta/flights/ui/home/HomeScreenViewModel.kt b/ui/home/src/main/kotlin/dev/adriankuta/flights/ui/home/HomeScreenViewModel.kt
index 4cdead2..e8b9748 100644
--- a/ui/home/src/main/kotlin/dev/adriankuta/flights/ui/home/HomeScreenViewModel.kt
+++ b/ui/home/src/main/kotlin/dev/adriankuta/flights/ui/home/HomeScreenViewModel.kt
@@ -15,11 +15,11 @@ import javax.inject.Inject
@HiltViewModel
class HomeScreenViewModel @Inject constructor(
- private val observeAirportsUseCase: ObserveAirportsUseCase
+ private val observeAirportsUseCase: ObserveAirportsUseCase,
) : ViewModel() {
internal val uiState = homeUiState(
- useCase = observeAirportsUseCase
+ useCase = observeAirportsUseCase,
)
.stateIn(
scope = viewModelScope,
@@ -29,9 +29,8 @@ class HomeScreenViewModel @Inject constructor(
}
private fun homeUiState(
- useCase: ObserveAirportsUseCase
+ useCase: ObserveAirportsUseCase,
): Flow {
-
return useCase()
.asResult()
.map { result ->
diff --git a/ui/sharedui/lint-baseline.xml b/ui/sharedui/lint-baseline.xml
index 16c6906..1d4a503 100644
--- a/ui/sharedui/lint-baseline.xml
+++ b/ui/sharedui/lint-baseline.xml
@@ -5,14 +5,14 @@
id="Aligned16KB"
message="The native library `arm64-v8a/libmockkjvmtiagent.so` (from `io.mockk:mockk-agent-android:1.14.2`) is not 16 KB aligned">
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>
+ file="$GRADLE_USER_HOME/caches/8.11.1/transforms/78a476c196dc0b141a854b3fe010ce3f/transformed/mockk-agent-android-1.14.2/jni/arm64-v8a/libmockkjvmtiagent.so"/>