Skip to content

Commit 8d06deb

Browse files
committed
refactor nekos location
1 parent 154c098 commit 8d06deb

File tree

18 files changed

+153
-101
lines changed

18 files changed

+153
-101
lines changed

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/common/ExtendCompose.kt

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,19 @@ fun PaddingValues.merge(other: PaddingValues): PaddingValues {
6464
)
6565
}
6666

67-
fun Modifier.localPadding(additional: PaddingValues = PaddingValues(0.dp)) = composed {
68-
this.padding(LocalPaddingValues.current?.plus(additional) ?: additional)
67+
@Composable
68+
fun Modifier.localPadding(additional: PaddingValues = PaddingValues(0.dp)): Modifier {
69+
return this.padding(LocalPaddingValues.current?.plus(additional) ?: additional)
6970
}
7071

71-
fun Modifier.localPadding(all: Dp) = composed {
72-
this.localPadding(PaddingValues(all))
72+
@Composable
73+
fun Modifier.localPadding(all: Dp): Modifier {
74+
return this.localPadding(PaddingValues(all))
7375
}
7476

75-
fun Modifier.localPadding(horizontal: Dp, vertical: Dp = 0.dp) = composed {
76-
this.localPadding(PaddingValues(horizontal = horizontal, vertical = vertical))
77+
@Composable
78+
fun Modifier.localPadding(horizontal: Dp, vertical: Dp = 0.dp): Modifier {
79+
return this.localPadding(PaddingValues(horizontal = horizontal, vertical = vertical))
7780
}
7881

7982
@Composable
@@ -100,12 +103,14 @@ fun LocalPadding(top: Dp = 0.dp, start: Dp = 0.dp, bottom: Dp = 0.dp, end: Dp =
100103
) ?: PaddingValues(top = top, start = start, bottom = bottom, end = end)
101104
}
102105

103-
fun Modifier.mergedLocalPadding(other: PaddingValues, additional: PaddingValues = PaddingValues(0.dp)) = composed {
104-
this.padding((LocalPaddingValues.current?.merge(other) ?: other).plus(additional))
106+
@Composable
107+
fun Modifier.mergedLocalPadding(other: PaddingValues, additional: PaddingValues = PaddingValues(0.dp)): Modifier {
108+
return this.padding((LocalPaddingValues.current?.merge(other) ?: other).plus(additional))
105109
}
106110

107-
fun Modifier.mergedLocalPadding(other: PaddingValues, additional: Dp) = composed {
108-
this.mergedLocalPadding(other, PaddingValues(additional))
111+
@Composable
112+
fun Modifier.mergedLocalPadding(other: PaddingValues, additional: Dp): Modifier {
113+
return this.mergedLocalPadding(other, PaddingValues(additional))
109114
}
110115

111116
@Composable

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/RootComponent.kt

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,20 @@
11
package dev.datlag.aniflow.ui.navigation
22

3-
import androidx.compose.animation.core.tween
4-
import androidx.compose.foundation.gestures.Orientation
53
import androidx.compose.runtime.Composable
6-
import androidx.compose.ui.Modifier
7-
import androidx.compose.ui.layout.layout
84
import com.arkivanov.decompose.ComponentContext
95
import com.arkivanov.decompose.ExperimentalDecomposeApi
106
import com.arkivanov.decompose.extensions.compose.stack.Children
117
import com.arkivanov.decompose.extensions.compose.stack.animation.fade
128
import com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.predictiveBackAnimation
13-
import com.arkivanov.decompose.extensions.compose.stack.animation.slide
149
import com.arkivanov.decompose.extensions.compose.stack.animation.stackAnimation
15-
import com.arkivanov.decompose.extensions.compose.stack.animation.stackAnimator
1610
import com.arkivanov.decompose.router.stack.*
1711
import dev.datlag.aniflow.common.onRender
18-
import dev.datlag.aniflow.model.ifValueOrNull
1912
import dev.datlag.aniflow.other.UserHelper
2013
import dev.datlag.aniflow.ui.navigation.screen.favorites.FavoritesScreenComponent
2114
import dev.datlag.aniflow.ui.navigation.screen.home.HomeScreenComponent
2215
import dev.datlag.aniflow.ui.navigation.screen.medium.MediumScreenComponent
23-
import dev.datlag.aniflow.ui.navigation.screen.settings.SettingsScreen
2416
import dev.datlag.aniflow.ui.navigation.screen.settings.SettingsScreenComponent
25-
import dev.datlag.aniflow.ui.navigation.screen.wallpaper.WallpaperScreenComponent
26-
import io.github.aakira.napier.Napier
17+
import dev.datlag.aniflow.ui.navigation.screen.nekos.NekosScreenComponent
2718
import org.kodein.di.DI
2819
import org.kodein.di.instance
2920

@@ -55,8 +46,8 @@ class RootComponent(
5546
onProfile = {
5647
navigation.push(RootConfig.Settings)
5748
},
58-
onWallpaper = {
59-
navigation.replaceCurrent(RootConfig.Wallpaper)
49+
onDiscover = {
50+
// navigation.replaceCurrent(RootConfig.Wallpaper)
6051
},
6152
onFavorites = {
6253
navigation.replaceCurrent(RootConfig.Favorites)
@@ -70,27 +61,25 @@ class RootComponent(
7061
)
7162
is RootConfig.Settings -> SettingsScreenComponent(
7263
componentContext = componentContext,
73-
di = di
64+
di = di,
65+
onNekos = {
66+
navigation.bringToFront(RootConfig.Nekos)
67+
}
7468
)
7569
is RootConfig.Favorites -> FavoritesScreenComponent(
7670
componentContext = componentContext,
7771
di = di,
78-
onWallpaper = {
79-
navigation.replaceCurrent(RootConfig.Wallpaper)
72+
onDiscover = {
73+
// navigation.replaceCurrent(RootConfig.Wallpaper)
8074
},
8175
onHome = {
8276
navigation.replaceCurrent(RootConfig.Home)
8377
}
8478
)
85-
is RootConfig.Wallpaper -> WallpaperScreenComponent(
79+
is RootConfig.Nekos -> NekosScreenComponent(
8680
componentContext = componentContext,
8781
di = di,
88-
onHome = {
89-
navigation.replaceCurrent(RootConfig.Home)
90-
},
91-
onFavorites = {
92-
navigation.replaceCurrent(RootConfig.Favorites)
93-
}
82+
onBack = navigation::pop
9483
)
9584
}
9685
}

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/RootConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ sealed class RootConfig {
2121
data object Favorites : RootConfig()
2222

2323
@Serializable
24-
data object Wallpaper : RootConfig()
24+
data object Nekos : RootConfig()
2525
}

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/component/HidingNavigationBar.kt

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import kotlinx.serialization.Transient
4040
fun HidingNavigationBar(
4141
visible: Boolean,
4242
selected: NavigationBarState,
43-
onWallpaper: () -> Unit,
43+
onDiscover: () -> Unit,
4444
onHome: () -> Unit,
4545
onFavorites: () -> Unit
4646
) {
@@ -73,8 +73,8 @@ fun HidingNavigationBar(
7373
containerColor = Color.Transparent,
7474
contentColor = MaterialTheme.colorScheme.contentColorFor(NavigationBarDefaults.containerColor)
7575
) {
76-
val isWallpaper = remember(selected) {
77-
selected is NavigationBarState.Wallpaper
76+
val isDiscover = remember(selected) {
77+
selected is NavigationBarState.Discover
7878
}
7979
val isHome = remember(selected) {
8080
selected is NavigationBarState.Home
@@ -85,27 +85,19 @@ fun HidingNavigationBar(
8585

8686
NavigationBarItem(
8787
onClick = {
88-
if (!isWallpaper) {
89-
onWallpaper()
88+
if (!isDiscover) {
89+
onDiscover()
9090
}
9191
},
92-
selected = isWallpaper,
92+
selected = isDiscover,
9393
icon = {
94-
Image(
95-
modifier = Modifier.size(24.dp),
96-
painter = painterResource(
97-
if (isWallpaper) {
98-
SharedRes.images.cat_filled
99-
} else {
100-
SharedRes.images.cat_rounded
101-
}
102-
),
103-
contentDescription = null,
104-
colorFilter = ColorFilter.tint(LocalContentColor.current)
94+
Icon(
95+
imageVector = selected.discoverIcon,
96+
contentDescription = null
10597
)
10698
},
10799
label = {
108-
Text(text = "Nekos")
100+
Text(text = "Discover")
109101
}
110102
)
111103
NavigationBarItem(
@@ -155,10 +147,10 @@ sealed interface NavigationBarState {
155147
val selectedIcon: ImageVector
156148
get() = unselectedIcon
157149

158-
val wallpaperIcon: ImageVector
150+
val discoverIcon: ImageVector
159151
get() = when (this) {
160-
is Wallpaper -> selectedIcon
161-
else -> Wallpaper.unselectedIcon
152+
is Discover -> selectedIcon
153+
else -> Discover.unselectedIcon
162154
}
163155

164156
val homeIcon: ImageVector
@@ -174,12 +166,9 @@ sealed interface NavigationBarState {
174166
}
175167

176168
@Serializable
177-
data object Wallpaper : NavigationBarState {
169+
data object Discover : NavigationBarState {
178170
override val unselectedIcon: ImageVector
179-
get() = Icons.Rounded.Wallpaper
180-
181-
override val selectedIcon: ImageVector
182-
get() = Icons.Rounded.Image
171+
get() = Icons.Rounded.Search
183172
}
184173

185174
@Serializable

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/favorites/FavoritesComponent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import dev.datlag.aniflow.ui.navigation.Component
44

55
interface FavoritesComponent : Component {
66

7-
fun viewWallpaper()
7+
fun viewDiscover()
88
fun viewHome()
99
}

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/favorites/FavoritesScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ fun FavoritesScreen(component: FavoritesComponent) {
1212
HidingNavigationBar(
1313
visible = true,
1414
selected = NavigationBarState.Favorite,
15-
onWallpaper = component::viewWallpaper,
15+
onDiscover = component::viewDiscover,
1616
onHome = component::viewHome,
1717
onFavorites = { }
1818
)

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/favorites/FavoritesScreenComponent.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.kodein.di.DI
1212
class FavoritesScreenComponent(
1313
componentContext: ComponentContext,
1414
override val di: DI,
15-
private val onWallpaper: () -> Unit,
15+
private val onDiscover: () -> Unit,
1616
private val onHome: () -> Unit,
1717
) : FavoritesComponent, ComponentContext by componentContext {
1818

@@ -29,8 +29,8 @@ class FavoritesScreenComponent(
2929
}
3030
}
3131

32-
override fun viewWallpaper() {
33-
onWallpaper()
32+
override fun viewDiscover() {
33+
onDiscover()
3434
}
3535

3636
override fun viewHome() {

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/HomeComponent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interface HomeComponent : Component {
2222
fun viewProfile()
2323
fun viewAnime()
2424
fun viewManga()
25-
fun viewWallpaper()
25+
fun viewDiscover()
2626
fun viewFavorites()
2727

2828
fun details(medium: Medium)

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/HomeScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ fun HomeScreen(component: HomeComponent) {
137137
HidingNavigationBar(
138138
visible = listState.isScrollingUp() && listState.canScrollForward,
139139
selected = NavigationBarState.Home,
140-
onWallpaper = component::viewWallpaper,
140+
onDiscover = component::viewDiscover,
141141
onHome = { },
142142
onFavorites = component::viewFavorites
143143
)

composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/HomeScreenComponent.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class HomeScreenComponent(
3131
override val di: DI,
3232
private val onMediumDetails: (Medium) -> Unit,
3333
private val onProfile: () -> Unit,
34-
private val onWallpaper: () -> Unit,
34+
private val onDiscover: () -> Unit,
3535
private val onFavorites: () -> Unit
3636
) : HomeComponent, ComponentContext by componentContext {
3737

@@ -124,8 +124,8 @@ class HomeScreenComponent(
124124
}
125125
}
126126

127-
override fun viewWallpaper() {
128-
onWallpaper()
127+
override fun viewDiscover() {
128+
onDiscover()
129129
}
130130

131131
override fun viewFavorites() {
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
package dev.datlag.aniflow.ui.navigation.screen.wallpaper
1+
package dev.datlag.aniflow.ui.navigation.screen.nekos
22

33
import dev.datlag.aniflow.nekos.NekosRepository
44
import dev.datlag.aniflow.nekos.model.Rating
55
import dev.datlag.aniflow.ui.navigation.Component
66
import kotlinx.coroutines.flow.Flow
77
import kotlinx.coroutines.flow.StateFlow
88

9-
interface WallpaperComponent : Component {
9+
interface NekosComponent : Component {
1010

1111
val adultContent: Flow<Boolean>
1212
val rating: StateFlow<Rating>
1313

1414
val state: Flow<NekosRepository.State>
1515

16-
fun viewHome()
17-
fun viewFavorites()
18-
16+
fun back()
1917
fun filter(rating: Rating)
2018
}

0 commit comments

Comments
 (0)