Skip to content

Commit

Permalink
[#20] Apply code review changes
Browse files Browse the repository at this point in the history
  • Loading branch information
hoangnguyen92dn committed Oct 13, 2022
1 parent 5fdda72 commit 4312446
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,7 @@ private fun DetailScreenContent(
start.linkTo(parent.start)
end.linkTo(parent.end)
},
onIntervalChanged = { timeIntervals ->
onTimeIntervalsChanged.invoke(timeIntervals)
}
onIntervalChanged = onTimeIntervalsChanged::invoke
)

CoinInfo(
Expand All @@ -221,20 +219,6 @@ private fun DetailScreenContent(
sellBuyLayoutHeight = sellBuyLayoutHeight.value,
coinDetailUiModel = coinDetailUiModel
)

if (showLoading) {
CircularProgressIndicator(
modifier = Modifier
.constrainAs(progressIndicator) {
linkTo(
start = parent.start,
end = parent.end,
top = parent.top,
bottom = parent.bottom
)
},
)
}
}

if (showLoading) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import co.nimblehq.compose.crypto.ui.base.BaseInput
import co.nimblehq.compose.crypto.ui.base.BaseOutput
import co.nimblehq.compose.crypto.ui.base.BaseViewModel
import co.nimblehq.compose.crypto.ui.components.chartintervals.TimeIntervals
import co.nimblehq.compose.crypto.ui.screens.home.FIAT_CURRENCY
import co.nimblehq.compose.crypto.ui.uimodel.CoinDetailUiModel
import co.nimblehq.compose.crypto.ui.uimodel.toUiModel
import co.nimblehq.compose.crypto.util.DispatchersProvider
Expand All @@ -18,8 +19,6 @@ import kotlinx.coroutines.flow.filterNot
import java.util.*
import javax.inject.Inject

private const val COIN_PRICES_CURRENCY = "usd"

interface Input : BaseInput {

fun getCoinId(coinId: String)
Expand Down Expand Up @@ -58,11 +57,9 @@ class DetailViewModel @Inject constructor(
showLoading()
getCoinDetailUseCase.execute(coinId = coinId)
.catch { e ->
hideLoading()
_error.emit(e)
}
.collect { coinDetail ->
hideLoading()
_coinDetailUiModel.emit(coinDetail.toUiModel())
}
hideLoading()
Expand All @@ -71,41 +68,31 @@ class DetailViewModel @Inject constructor(
@Suppress("MagicNumber")
fun getCoinPrices(coinId: String, timeIntervals: TimeIntervals = TimeIntervals.ONE_DAY) =
execute {
val calendar = Calendar.getInstance()
val fromTimestamp = when (timeIntervals) {
TimeIntervals.ONE_DAY -> calendar.apply {
add(Calendar.DAY_OF_YEAR, -1)
}
TimeIntervals.ONE_WEEK -> calendar.apply {
add(Calendar.DAY_OF_YEAR, -7)
}
TimeIntervals.ONE_MONTH -> calendar.apply {
add(Calendar.MONTH, -1)
}
TimeIntervals.ONE_YEAR -> calendar.apply {
add(Calendar.YEAR, -1)
}
TimeIntervals.FIVE_YEAR -> calendar.apply {
add(Calendar.YEAR, -5)
val fromTimestamp = Calendar.getInstance().apply {
when (timeIntervals) {
TimeIntervals.ONE_DAY -> add(Calendar.DAY_OF_YEAR, -1)
TimeIntervals.ONE_WEEK -> add(Calendar.DAY_OF_YEAR, -7)
TimeIntervals.ONE_MONTH -> add(Calendar.MONTH, -1)
TimeIntervals.ONE_YEAR -> add(Calendar.YEAR, -1)
TimeIntervals.FIVE_YEAR -> add(Calendar.YEAR, -5)
}
}

showLoading()
getCoinPricesUseCase.execute(
GetCoinPricesUseCase.Input(
coinId = coinId,
currency = COIN_PRICES_CURRENCY,
currency = FIAT_CURRENCY,
fromTimestamp = fromTimestamp.timeInMillis.div(1000),
toTimestamp = Calendar.getInstance().timeInMillis.div(1000)
)
).catch { e ->
hideLoading()
_error.emit(e)
}.filterNot {
it.isEmpty()
}.collect { coinPrices ->
hideLoading()
_coinPrices.emit(coinPrices)
}
hideLoading()
}
}

0 comments on commit 4312446

Please sign in to comment.