Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
y9vad9 committed Dec 25, 2023
1 parent bea0c13 commit 036587a
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import org.koin.core.annotation.Singleton
class TimerCreationModule {

@Singleton
fun timerCreationMiddleware(): TimerCreationModule = TimerCreationModule()
fun timerCreationMiddleware(): TimerCreationMiddleware = TimerCreationMiddleware()

@Factory
fun timerCreationUseCase(
Expand Down
2 changes: 2 additions & 0 deletions feature/timers/presentation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,7 @@ dependencies {

commonMainImplementation(libs.moko.resources.compose)
commonMainImplementation(libs.moko.resources)

commonMainImplementation(libs.kotlinx.datetime)
}

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.timemates.app.style.system.item
package io.timemates.app.timers.ui

import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.infiniteRepeatable
Expand Down Expand Up @@ -33,7 +33,7 @@ import androidx.compose.ui.unit.dp
import io.timemates.app.style.system.theme.AppTheme

@Composable
fun ShimmerTimerItem(){
fun PlaceholderTimerItem(){
OutlinedCard(
modifier = Modifier.fillMaxWidth(),
border = BorderStroke(1.dp, AppTheme.colors.secondary),
Expand Down Expand Up @@ -74,7 +74,7 @@ fun ShimmerTimerItem(){
}
}

fun Modifier.shimmerEffect(): Modifier = composed {
private fun Modifier.shimmerEffect(): Modifier = composed {
var size by remember {
mutableStateOf(IntSize.Zero)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.timemates.app.style.system.item
package io.timemates.app.timers.ui

import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
Expand Down Expand Up @@ -95,7 +95,7 @@ fun TimerItem(

@Stable
@Composable
fun timerItemSubtext(timer: Timer): String {
private fun timerItemSubtext(timer: Timer): String {
return when(timer.state) {
is Running, is Rest -> LocalStrings.current.runningTimerDescription(timer.membersCount.int)
is Paused, is Inactive -> LocalStrings.current.inactiveTimerDescription(daysSinceInactive(timer.state.publishTime))
Expand All @@ -104,13 +104,13 @@ fun timerItemSubtext(timer: Timer): String {
}

@Stable
fun daysSinceInactive(pausedInstant: Instant): Int {
private fun daysSinceInactive(pausedInstant: Instant): Int {
val currentInstant = Clock.System.now()
return (currentInstant.toLocalDateTime(TimeZone.UTC).date.minus(pausedInstant.toLocalDateTime(TimeZone.UTC).date)).days
}

@Composable
fun OnlineIndicator(
private fun OnlineIndicator(
modifier: Modifier = Modifier,
isOnline: Boolean,
indicatorSize: Dp = 6.dp,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ fun TimerSettingsScreen(
is Effect.Failure ->
snackbarData.showSnackbar(message = strings.unknownFailure)

Effect.Success -> saveChanges()
Effect.NavigateToTimersScreen -> navigateToTimersScreen()
Effect.NavigateToTimersScreen, Effect.Success -> navigateToTimersScreen()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@ import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import dev.icerock.moko.resources.compose.painterResource
import io.github.skeptick.libres.compose.painterResource
import io.timemates.app.foundation.mvi.StateMachine
import io.timemates.app.localization.compose.LocalStrings
import io.timemates.app.style.system.Resources
import io.timemates.app.style.system.appbar.AppBar
import io.timemates.app.style.system.item.ShimmerTimerItem
import io.timemates.app.style.system.item.TimerItem
import io.timemates.app.timers.ui.PlaceholderTimerItem
import io.timemates.app.timers.ui.TimerItem
import io.timemates.app.style.system.theme.AppTheme
import io.timemates.app.timers.ui.timers_list.mvi.TimersListStateMachine.Effect
import io.timemates.app.timers.ui.timers_list.mvi.TimersListStateMachine.Event
Expand All @@ -56,7 +57,7 @@ fun TimersListScreen(
val snackbarData = remember { SnackbarHostState() }
val timersListState = rememberLazyListState()

val painter: Painter = painterResource(Resources.images.empty_list_image)
val painter: Painter = Resources.image.empty_list_image.painterResource()

val strings = LocalStrings.current

Expand Down Expand Up @@ -147,7 +148,7 @@ fun TimersListScreen(

if (state.isLoading) {
item {
ShimmerTimerItem()
PlaceholderTimerItem()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@ import com.arkivanov.essenty.parcelable.Parcelize

sealed class Screen : Parcelable {
@Parcelize
object InitialAuthorizationScreen : Screen()
data object InitialAuthorizationScreen : Screen() {
private fun readResolve(): Any = InitialAuthorizationScreen
}

@Parcelize
object StartAuthorization : Screen()
data object StartAuthorization : Screen() {
private fun readResolve(): Any = StartAuthorization
}

@Parcelize
data class AfterStart(val verificationHash: String) : Screen()
Expand All @@ -23,11 +27,17 @@ sealed class Screen : Parcelable {
data class NewAccount(val verificationHash: String) : Screen()

@Parcelize
data class TimersList(val verificationHash: String) : Screen()
data object TimersList : Screen() {
private fun readResolve(): Any = TimersList
}

@Parcelize
data class TimerCreation(val verificationHash: String) : Screen()
data object TimerCreation : Screen() {
private fun readResolve(): Any = TimerCreation
}

@Parcelize
data class TimerSettings(val verificationHash: String) : Screen()
data object TimerSettings : Screen() {
private fun readResolve(): Any = TimerSettings
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ import io.timemates.app.authorization.ui.start.mvi.StartAuthorizationStateMachin
import io.timemates.app.mvi.compose.stateMachine
import io.timemates.app.style.system.theme.AppTheme
import io.timemates.app.timers.ui.settings.TimerSettingsScreen
import io.timemates.app.timers.ui.settings.mvi.TimerSettingsStateMachine
import io.timemates.app.timers.ui.timer_creation.TimerCreationScreen
import io.timemates.app.timers.ui.timer_creation.mvi.TimerCreationStateMachine
import io.timemates.app.timers.ui.timers_list.mvi.TimersListStateMachine
import io.timemates.sdk.authorization.email.types.value.VerificationHash
import io.timemates.sdk.common.constructor.createOrThrow
import kotlinx.coroutines.channels.ReceiveChannel
Expand Down Expand Up @@ -64,7 +67,7 @@ fun TimeMatesAppEntry(
navigation.replaceAll(Screen.StartAuthorization, Screen.NewAccountInfo(it))
},
navigateToHome = {
// TODO when home is ready
navigation.push(Screen.TimersList)
},
)

Expand Down Expand Up @@ -114,40 +117,34 @@ fun TimeMatesAppEntry(
navigation.popTo(0)
},
navigateToHome = {
navigation.push(Screen.TimersList(screen.verificationHash))
navigation.push(Screen.TimersList)
},
)

is Screen.TimersList -> TimersListScreen(
stateMachine = stateMachine {
parametersOf(VerificationHash.createOrThrow(screen.verificationHash))
},
stateMachine = stateMachine<TimersListStateMachine>(),
navigateToSetting = {
navigation.push(Screen.TimerSettings(screen.verificationHash))
navigation.push(Screen.TimerSettings)
},
navigateToTimerCreationScreen = {
navigation.push(Screen.TimerCreation(screen.verificationHash))
navigation.push(Screen.TimerCreation)
},
navigateToTimer = {
//TODO when timer screen will be ready
},
)

is Screen.TimerCreation -> TimerCreationScreen(
stateMachine = stateMachine {
parametersOf(VerificationHash.createOrThrow(screen.verificationHash))
},
stateMachine = stateMachine<TimerCreationStateMachine>(),
navigateToTimersScreen = {
navigation.push(Screen.TimersList(screen.verificationHash))
navigation.push(Screen.TimersList)
},
)

is Screen.TimerSettings -> TimerSettingsScreen(
stateMachine = stateMachine {
parametersOf(VerificationHash.createOrThrow(screen.verificationHash))
},
stateMachine = stateMachine<TimerSettingsStateMachine>(),
navigateToTimersScreen = {
navigation.push(Screen.TimersList(screen.verificationHash))
// TODO when timer screen is ready
},
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ import io.timemates.app.authorization.dependencies.screens.StartAuthorizationMod
import io.timemates.app.core.handler.OnAuthorizationFailedHandler
import io.timemates.app.foundation.time.SystemUTCTimeProvider
import io.timemates.app.foundation.time.TimeProvider
import io.timemates.app.timers.dependencies.screens.TimerCreationModule
import io.timemates.app.timers.dependencies.screens.TimerSettingsModule
import io.timemates.app.timers.dependencies.screens.TimersListModule
import io.timemates.app.users.data.database.TimeMatesUsers
import io.timemates.data.database.TimeMatesAuthorizations
import io.timemates.sdk.common.engine.TimeMatesRequestsEngine
Expand All @@ -27,17 +30,6 @@ import org.koin.core.context.startKoin
import org.koin.core.qualifier.qualifier
import org.koin.dsl.module
import org.koin.ksp.generated.module
import androidx.multidex.MultiDexApplication
import androidx.multidex.MultiDex
import android.content.Context
import io.timemates.app.authorization.dependencies.screens.InitialAuthorizationModule
import io.timemates.app.foundation.time.SystemUTCTimeProvider
import io.timemates.app.foundation.time.TimeProvider
import io.timemates.app.timers.dependencies.TimersDataModule
import io.timemates.app.timers.dependencies.screens.TimerCreationModule
import io.timemates.app.timers.dependencies.screens.TimerSettingsModule
import io.timemates.app.timers.dependencies.screens.TimersListModule
import io.timemates.app.users.data.database.TimeMatesUsers

class TimeMatesApplication : MultiDexApplication() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import io.timemates.app.style.system.item.ShimmerTimerItem
import io.timemates.app.timers.ui.PlaceholderTimerItem
import io.timemates.app.style.system.theme.AppTheme

@Preview
Expand Down Expand Up @@ -83,7 +83,7 @@ private fun Test() {

Spacer(modifier = Modifier.padding(16.dp))

ShimmerTimerItem()
PlaceholderTimerItem()
}
}
}
Expand Down

0 comments on commit 036587a

Please sign in to comment.