Skip to content

Commit 3ad949c

Browse files
committed
Improvements and fix
1 parent ec12530 commit 3ad949c

File tree

1 file changed

+20
-13
lines changed
  • composeApp/src/androidMain/kotlin/it/fast4x/riplay/extensions/listenerlevel

1 file changed

+20
-13
lines changed

composeApp/src/androidMain/kotlin/it/fast4x/riplay/extensions/listenerlevel/ListenerLevel.kt

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ import androidx.compose.foundation.verticalScroll
1919
import androidx.compose.material3.LinearProgressIndicator
2020
import androidx.compose.material3.Text
2121
import androidx.compose.runtime.Composable
22+
import androidx.compose.runtime.LaunchedEffect
2223
import androidx.compose.runtime.collectAsState
2324
import androidx.compose.runtime.getValue
25+
import androidx.compose.runtime.mutableLongStateOf
2426
import androidx.compose.runtime.mutableStateOf
2527
import androidx.compose.runtime.remember
2628
import androidx.compose.runtime.setValue
@@ -41,6 +43,8 @@ import it.fast4x.riplay.ui.styling.bold
4143
import it.fast4x.riplay.utils.colorPalette
4244
import it.fast4x.riplay.utils.typography
4345
import kotlinx.coroutines.Dispatchers
46+
import kotlinx.coroutines.flow.first
47+
import kotlinx.coroutines.flow.flowOn
4448
import timber.log.Timber
4549
import java.util.Calendar
4650

@@ -50,15 +54,16 @@ fun monthlyListenerLevel(
5054
m: Int = Calendar.getInstance().get(Calendar.MONTH)
5155
): Triple<MonthlyListenerLevel, MonthlyListenerLevel, Float> {
5256

53-
val minutes = remember {
54-
Database.minutesListenedByYearMonth(y, m+1)
55-
}.collectAsState(initial = 0, context = Dispatchers.IO)
57+
var minutes by remember { mutableLongStateOf(0L) }
58+
LaunchedEffect(Unit) {
59+
minutes = Database.minutesListenedByYearMonth(y, m+1).first()
60+
}
5661

57-
val level = MonthlyListenerLevel.getLevelByMinutes(minutes.value.toInt())
62+
val level = MonthlyListenerLevel.getLevelByMinutes(minutes.toInt())
5863
val nextLevel = MonthlyListenerLevel.getNextLevel(level)
5964

60-
val progress = minutes.value.toFloat() / MonthlyListenerLevel.getRangeLevel(level).second.toFloat()
61-
Timber.d("monthlyListenerLevel year $y month $m minutes ${minutes.value} level ${level.name} nextLevel ${nextLevel.name} progress $progress rangeLevel = ${MonthlyListenerLevel.getRangeLevel(level)}")
65+
val progress = minutes.toFloat() / MonthlyListenerLevel.getRangeLevel(level).second.toFloat()
66+
Timber.d("monthlyListenerLevel year $y month $m minutes ${minutes} level ${level.name} nextLevel ${nextLevel.name} progress $progress rangeLevel = ${MonthlyListenerLevel.getRangeLevel(level)}")
6267

6368
return Triple(
6469
level,
@@ -73,16 +78,18 @@ fun annualListenerLevel(
7378
y: Int = Calendar.getInstance().get(Calendar.YEAR)
7479
): Triple<AnnualListenerLevel, AnnualListenerLevel, Float> {
7580

76-
val minutes = remember {
77-
Database.minutesListenedByYear(y)
78-
}.collectAsState(initial = 0, context = Dispatchers.IO)
81+
var minutes by remember { mutableLongStateOf(0L) }
82+
LaunchedEffect(Unit) {
83+
minutes = Database.minutesListenedByYear(y).first()
84+
}
85+
7986

80-
Timber.d("annuallyListenerLevel minutes ${minutes.value}")
81-
val level = AnnualListenerLevel.getLevelByMinutes(minutes.value.toInt())
87+
Timber.d("annuallyListenerLevel minutes ${minutes}")
88+
val level = AnnualListenerLevel.getLevelByMinutes(minutes.toInt())
8289
val nextLevel = AnnualListenerLevel.getNextLevel(level)
8390

84-
val progress = minutes.value.toFloat() / AnnualListenerLevel.getRangeLevel(level).second.toFloat()
85-
Timber.d("annualListenerLevel year $y minutes ${minutes.value} level ${level.name} nextLevel ${nextLevel.name} progress $progress rangeLevel = ${AnnualListenerLevel.getRangeLevel(level)}")
91+
val progress = minutes.toFloat() / AnnualListenerLevel.getRangeLevel(level).second.toFloat()
92+
Timber.d("annualListenerLevel year $y minutes ${minutes} level ${level.name} nextLevel ${nextLevel.name} progress $progress rangeLevel = ${AnnualListenerLevel.getRangeLevel(level)}")
8693

8794
return Triple(
8895
level,

0 commit comments

Comments
 (0)