Skip to content

Commit ae88328

Browse files
committed
Create ScreenRender Types
1 parent 38982b1 commit ae88328

File tree

9 files changed

+82
-54
lines changed

9 files changed

+82
-54
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/* Copyright © 2023 HornsApp. All rights reserved. */
22
package com.yesferal.hornsapp.core.data.abstraction.remote
33

4+
import com.yesferal.hornsapp.core.domain.entity.render.ScreenRender
45
import com.yesferal.hornsapp.core.domain.entity.render.ViewRender
56
import kotlinx.coroutines.flow.Flow
67

78
interface RenderRemoteDataSource {
8-
val homeRender: Flow<List<ViewRender>>
9-
val newestRender: Flow<List<ViewRender>>
9+
val homeRender: Flow<List<ScreenRender>>
1010
val categoryRender: Flow<List<ViewRender>>
1111
}

src/commonMain/kotlin/com/yesferal/hornsapp/core/data/repository/RenderRepositoryImpl.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,16 @@ package com.yesferal.hornsapp.core.data.repository
33

44
import com.yesferal.hornsapp.core.data.abstraction.remote.RenderRemoteDataSource
55
import com.yesferal.hornsapp.core.domain.abstraction.RenderRepository
6+
import com.yesferal.hornsapp.core.domain.entity.render.ScreenRender
67
import com.yesferal.hornsapp.core.domain.entity.render.ViewRender
78
import kotlinx.coroutines.flow.Flow
89

910
class RenderRepositoryImpl(private val renderRemoteDataSource: RenderRemoteDataSource): RenderRepository {
1011

11-
override fun getHomeRender(): Flow<List<ViewRender>> {
12+
override fun getHomeRender(): Flow<List<ScreenRender>> {
1213
return renderRemoteDataSource.homeRender
1314
}
1415

15-
override fun getNewestRender(): Flow<List<ViewRender>> {
16-
return renderRemoteDataSource.newestRender
17-
}
18-
1916
override fun getCategoryRender(): Flow<List<ViewRender>> {
2017
return renderRemoteDataSource.categoryRender
2118
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/* Copyright © 2023 HornsApp. All rights reserved. */
22
package com.yesferal.hornsapp.core.domain.abstraction
33

4+
import com.yesferal.hornsapp.core.domain.entity.render.ScreenRender
45
import com.yesferal.hornsapp.core.domain.entity.render.ViewRender
56
import kotlinx.coroutines.flow.Flow
67

78
interface RenderRepository {
8-
fun getHomeRender(): Flow<List<ViewRender>>
9-
fun getNewestRender(): Flow<List<ViewRender>>
9+
fun getHomeRender(): Flow<List<ScreenRender>>
1010
fun getCategoryRender(): Flow<List<ViewRender>>
1111
}

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/entity/render/AppRender.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ data class AppRender(
55
val platform: String?,
66
val docVersion: Long?,
77
val appVersion: Long?,
8-
val screens: List<ViewRender>?,
9-
val views: List<ViewRender>?,
8+
val screens: List<ScreenRender>?,
109
val categories: List<ViewRender>?
1110
)

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/entity/render/DataRender.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package com.yesferal.hornsapp.core.domain.entity.render
44
import com.yesferal.hornsapp.core.domain.entity.util.LocalizedString
55

66
class DataRender(
7+
val key: String,
78
val title: LocalizedString?,
89
val subtitle: LocalizedString?,
910
val description: LocalizedString?,

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/entity/render/ScreenRender.kt

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,69 @@
22
package com.yesferal.hornsapp.core.domain.entity.render
33

44
data class ScreenRender(
5-
val views: List<ViewRender>?
6-
)
5+
private val key: String?,
6+
val data: DataRender?,
7+
val id: String?,
8+
val views: List<ViewRender>?,
9+
val visibility: Boolean?,
10+
) {
11+
enum class Type {
12+
SPLASH_SCREEN,
13+
ON_BOARDING_SCREEN,
14+
HOME_SCREEN,
15+
NEWEST_SCREEN,
16+
UPCOMING_SCREEN,
17+
FAVORITE_SCREEN,
18+
CONCERT_DETAIL_SCREEN,
19+
BAND_DETAIL_SCREEN,
20+
SETTING_SCREEN,
21+
PROFILE_SCREEN,
22+
MAP_SCREEN,
23+
VIDEO_SCREEN,
24+
FAN_PAGE_SCREEN,
25+
WEB_VIEW_SCREEN,
26+
CALENDAR_SCREEN,
27+
MESSAGE_SCREEN,
28+
SCREEN_RENDER_SCREEN,
29+
LINEUP_SCREEN,
30+
STAGE_LINEUP_SCREEN,
31+
32+
VISIBILITY_GONE_SCREEN,
33+
UNDETERMINED_SCREEN
34+
}
35+
36+
val type: Type
37+
get() {
38+
if (!shouldRender()) {
39+
return Type.VISIBILITY_GONE_SCREEN
40+
}
41+
42+
return when (key) {
43+
Type.SPLASH_SCREEN.name -> Type.SPLASH_SCREEN
44+
Type.ON_BOARDING_SCREEN.name -> Type.ON_BOARDING_SCREEN
45+
Type.HOME_SCREEN.name -> Type.HOME_SCREEN
46+
Type.NEWEST_SCREEN.name -> Type.NEWEST_SCREEN
47+
Type.UPCOMING_SCREEN.name -> Type.UPCOMING_SCREEN
48+
Type.FAVORITE_SCREEN.name -> Type.FAVORITE_SCREEN
49+
Type.CONCERT_DETAIL_SCREEN.name -> Type.CONCERT_DETAIL_SCREEN
50+
Type.BAND_DETAIL_SCREEN.name -> Type.BAND_DETAIL_SCREEN
51+
Type.SETTING_SCREEN.name -> Type.SETTING_SCREEN
52+
Type.PROFILE_SCREEN.name -> Type.PROFILE_SCREEN
53+
Type.MAP_SCREEN.name -> Type.MAP_SCREEN
54+
Type.VIDEO_SCREEN.name -> Type.VIDEO_SCREEN
55+
Type.FAN_PAGE_SCREEN.name -> Type.FAN_PAGE_SCREEN
56+
Type.WEB_VIEW_SCREEN.name -> Type.WEB_VIEW_SCREEN
57+
Type.CALENDAR_SCREEN.name -> Type.CALENDAR_SCREEN
58+
Type.MESSAGE_SCREEN.name -> Type.MESSAGE_SCREEN
59+
Type.SCREEN_RENDER_SCREEN.name -> Type.SCREEN_RENDER_SCREEN
60+
Type.LINEUP_SCREEN.name -> Type.LINEUP_SCREEN
61+
Type.STAGE_LINEUP_SCREEN.name -> Type.STAGE_LINEUP_SCREEN
62+
63+
else -> Type.UNDETERMINED_SCREEN
64+
}
65+
}
66+
67+
private fun shouldRender(): Boolean {
68+
return visibility != false
69+
}
70+
}

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/entity/render/ViewRender.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ data class ViewRender(
1010
val navigation: Parameters?,
1111
) {
1212
enum class Type {
13-
// Fragments
14-
NEWEST_FRAGMENT,
15-
UPCOMING_FRAGMENT,
16-
FAVORITE_FRAGMENT,
17-
SCREEN_RENDER_FRAGMENT,
18-
STAGE_LINEUP_FRAGMENT,
19-
2013
// Views
2114
ROW_VIEW,
2215
COLUMN_VIEW,
@@ -43,12 +36,6 @@ data class ViewRender(
4336
}
4437

4538
return when (key) {
46-
Type.NEWEST_FRAGMENT.name -> Type.NEWEST_FRAGMENT
47-
Type.UPCOMING_FRAGMENT.name -> Type.UPCOMING_FRAGMENT
48-
Type.FAVORITE_FRAGMENT.name -> Type.FAVORITE_FRAGMENT
49-
Type.SCREEN_RENDER_FRAGMENT.name -> Type.SCREEN_RENDER_FRAGMENT
50-
Type.STAGE_LINEUP_FRAGMENT.name -> Type.STAGE_LINEUP_FRAGMENT
51-
5239
Type.ROW_VIEW.name -> Type.ROW_VIEW
5340
Type.COLUMN_VIEW.name -> Type.COLUMN_VIEW
5441
Type.CARD_VIEW.name -> Type.CARD_VIEW
@@ -61,6 +48,7 @@ data class ViewRender(
6148
Type.DESCRIPTION_REVIEW_CARD_VIEW.name -> Type.DESCRIPTION_REVIEW_CARD_VIEW
6249
Type.IMAGE_REVIEW_CARD_VIEW.name -> Type.IMAGE_REVIEW_CARD_VIEW
6350
Type.BUTTON_CARD_VIEW.name -> Type.BUTTON_CARD_VIEW
51+
6452
else -> Type.UNDETERMINED
6553
}
6654
}

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/navigator/Navigator.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
/* Copyright © 2022 HornsApp. All rights reserved. */
22
package com.yesferal.hornsapp.core.domain.navigator
33

4+
import com.yesferal.hornsapp.core.domain.entity.render.ScreenRender
5+
46
class Navigator private constructor(
5-
val to: ScreenType,
7+
val to: ScreenRender.Type,
68
val popBackStackId: Int?,
79
val parameters: Parameters?,
810
) {
911
class Builder {
10-
private var to: ScreenType = ScreenType.NONE
12+
private var to: ScreenRender.Type = ScreenRender.Type.UNDETERMINED_SCREEN
1113
private var popBackStackId: Int? = null
1214
private var parameters: Parameters? = null
1315

14-
fun to(to: ScreenType): Builder {
16+
fun to(to: ScreenRender.Type): Builder {
1517
this.to = to
1618

1719
return this
1820
}
1921

2022
fun to(to: String): Builder {
2123
try {
22-
this.to = ScreenType.valueOf(to)
24+
this.to = ScreenRender.Type.valueOf(to)
2325
} catch (e: Exception) {
24-
this.to = ScreenType.NONE
26+
this.to = ScreenRender.Type.UNDETERMINED_SCREEN
2527
}
2628

2729
return this

src/commonMain/kotlin/com/yesferal/hornsapp/core/domain/navigator/ScreenType.kt

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)