Skip to content

Commit 4a32bc6

Browse files
authored
Merge pull request #310 from mbakgun/feature/offline-mode-improvements
feature/offline-mode-improvements
2 parents aa0e878 + e6c389e commit 4a32bc6

File tree

7 files changed

+17
-35
lines changed

7 files changed

+17
-35
lines changed

shared/detekt-baseline.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
<ID>MagicNumber:MjImagesApp.kt$24f</ID>
4040
<ID>MagicNumber:String0.commonMain.kt$10</ID>
4141
<ID>MagicNumber:String0.commonMain.kt$109</ID>
42-
<ID>MagicNumber:String0.commonMain.kt$84</ID>
43-
<ID>MagicNumber:String0.commonMain.kt$95</ID>
42+
<ID>MagicNumber:String0.commonMain.kt$120</ID>
43+
<ID>MagicNumber:String0.commonMain.kt$131</ID>
4444
<ID>UnusedPrivateProperty:build.gradle.kts$val androidInstrumentedTest by getting { dependencies { implementation(libs.androidxUiTestJunit4) implementation(libs.androidxUiTestManifest) } }</ID>
4545
<ID>UnusedPrivateProperty:build.gradle.kts$val jsMain by getting { dependencies { implementation(compose.runtime) implementation(compose.foundation) implementation(project(":shared")) } }</ID>
4646
<ID>UnusedPrivateProperty:build.gradle.kts$val jvmMain by getting { dependencies { implementation(project(":shared")) implementation(compose.desktop.currentOs) } }</ID>

shared/src/androidInstrumentedTest/kotlin/ui/MjImagesScreenTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class MjImagesScreenTest {
6363
}
6464

6565
composeTestRule
66-
.onNodeWithText("offline", substring = true)
66+
.onNodeWithText("offline", substring = true, ignoreCase = true)
6767
.assertIsDisplayed()
6868
}
6969

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<resources>
22
<string name="snack_message">1) Click image to open in browser\n2) Long click to preview image</string>
3-
<string name="failed_fetch_message">Failed to fetch images, using offline mode</string>
3+
<string name="failed_fetch_message">Offline mode is being utilised as latest photos cannot be collected..</string>
44
</resources>

shared/src/commonMain/kotlin/domain/model/MjImage.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package domain.model
22

3-
data class MjImage(
3+
import kotlin.uuid.ExperimentalUuidApi
4+
import kotlin.uuid.Uuid
5+
6+
data class MjImage @OptIn(ExperimentalUuidApi::class) constructor(
7+
val id: String = Uuid.random().toString(),
48
val date: String,
59
val imageUrl: String,
610
val hqImageUrl: String,

shared/src/commonMain/kotlin/domain/model/MjImages.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ data class MjImages(
1111

1212
fun isEmpty() = images.isEmpty()
1313

14-
operator fun plus(images: MjImages): MjImages =
14+
operator fun plus(other: MjImages): MjImages =
1515
MjImages(
16-
currentPage = images.currentPage,
17-
images = (this.images + images.images).distinct(),
18-
totalPages = images.totalPages
16+
currentPage = other.currentPage,
17+
images = (this.images + other.images).distinctBy(MjImage::imageUrl),
18+
totalPages = other.totalPages
1919
)
2020
}

shared/src/commonMain/kotlin/ui/MjImagesApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ fun MjImagesList(
219219
) {
220220
items(
221221
items = images.images,
222-
key = MjImage::imageUrl
222+
key = MjImage::id,
223223
) { image ->
224224
MjImageItem(
225225
image = image,

shared/src/commonTest/kotlin/domain/mapper/MjImagesMapperTest.kt

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package domain.mapper
22

33
import data.source.remote.model.MjImageResponse
44
import data.source.remote.model.MjImagesResponse
5-
import domain.model.MjImage
65
import kotlin.test.BeforeTest
76
import kotlin.test.Test
87
import kotlin.test.assertEquals
@@ -133,15 +132,8 @@ class MjImagesMapperTest {
133132

134133
// then
135134
assertEquals(
136-
listOf(
137-
MjImage(
138-
date = "2023-21-04",
139-
imageUrl = "https://mj.akgns.com",
140-
ratio = 1.0,
141-
hqImageUrl = "https://mj.akgns.com/hq",
142-
)
143-
),
144-
result.images
135+
1,
136+
result.images.size
145137
)
146138
}
147139

@@ -169,21 +161,7 @@ class MjImagesMapperTest {
169161

170162
// then
171163
assertEquals(
172-
listOf(
173-
MjImage(
174-
date = "2024-21-04",
175-
imageUrl = "https://mj.akgns.com",
176-
ratio = 1.0,
177-
hqImageUrl = "https://mj.akgns.com/hq",
178-
),
179-
MjImage(
180-
date = "2023-21-04",
181-
imageUrl = "https://mj.akgns.com/images",
182-
hqImageUrl = "https://mj.akgns.com/hq",
183-
ratio = 1.0
184-
)
185-
),
186-
result.images
164+
result.images.size, 2
187165
)
188166
}
189167

0 commit comments

Comments
 (0)