Skip to content

Commit 29973ae

Browse files
committed
fixing infinite loader
1 parent 1b1e8bb commit 29973ae

File tree

6 files changed

+22
-40
lines changed
  • features
    • feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel
    • feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/viewModel
    • feature_pomodoro/src/main/java/com/example/util/simpletimetracker/feature_pomodoro/timer/viewModel
    • feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel
    • feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel
    • feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel

6 files changed

+22
-40
lines changed

features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import com.example.util.simpletimetracker.navigation.params.screen.ChangeRunning
4141
import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData
4242
import dagger.hilt.android.lifecycle.HiltViewModel
4343
import kotlinx.coroutines.Job
44-
import kotlinx.coroutines.cancelAndJoin
4544
import kotlinx.coroutines.delay
4645
import kotlinx.coroutines.isActive
4746
import kotlinx.coroutines.launch
@@ -248,8 +247,8 @@ class ChangeRunningRecordViewModel @Inject constructor(
248247
}
249248

250249
private fun startUpdate() {
250+
timerJob?.cancel()
251251
timerJob = viewModelScope.launch {
252-
timerJob?.cancelAndJoin()
253252
while (isActive) {
254253
updatePreview()
255254
// Update split preview only if it is visible
@@ -262,9 +261,7 @@ class ChangeRunningRecordViewModel @Inject constructor(
262261
}
263262

264263
private fun stopUpdate() {
265-
viewModelScope.launch {
266-
timerJob?.cancelAndJoin()
267-
}
264+
timerJob?.cancel()
268265
}
269266

270267
companion object {

features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/viewModel/GoalsViewModel.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialo
2525
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType
2626
import dagger.hilt.android.lifecycle.HiltViewModel
2727
import kotlinx.coroutines.Job
28-
import kotlinx.coroutines.cancelAndJoin
2928
import kotlinx.coroutines.delay
3029
import kotlinx.coroutines.isActive
3130
import kotlinx.coroutines.launch
@@ -140,8 +139,8 @@ class GoalsViewModel @Inject constructor(
140139
}
141140

142141
private fun startUpdate() {
142+
timerJob?.cancel()
143143
timerJob = viewModelScope.launch {
144-
timerJob?.cancelAndJoin()
145144
while (isActive) {
146145
updateStatistics()
147146
delay(TIMER_UPDATE)
@@ -150,9 +149,7 @@ class GoalsViewModel @Inject constructor(
150149
}
151150

152151
private fun stopUpdate() {
153-
viewModelScope.launch {
154-
timerJob?.cancelAndJoin()
155-
}
152+
timerJob?.cancel()
156153
}
157154

158155
private fun updatePosition(newPosition: Int) {

features/feature_pomodoro/src/main/java/com/example/util/simpletimetracker/feature_pomodoro/timer/viewModel/PomodoroViewModel.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import com.example.util.simpletimetracker.navigation.Router
2020
import com.example.util.simpletimetracker.navigation.params.screen.PomodoroSettingsParams
2121
import dagger.hilt.android.lifecycle.HiltViewModel
2222
import kotlinx.coroutines.Job
23-
import kotlinx.coroutines.cancelAndJoin
2423
import kotlinx.coroutines.delay
2524
import kotlinx.coroutines.isActive
2625
import kotlinx.coroutines.launch
@@ -96,8 +95,8 @@ class PomodoroViewModel @Inject constructor(
9695
}
9796

9897
private fun startUpdate() {
98+
timerJob?.cancel()
9999
timerJob = viewModelScope.launch {
100-
timerJob?.cancelAndJoin()
101100
while (isActive) {
102101
updateButtonState()
103102
updateTimerState()
@@ -107,9 +106,7 @@ class PomodoroViewModel @Inject constructor(
107106
}
108107

109108
private fun stopUpdate() {
110-
viewModelScope.launch {
111-
timerJob?.cancelAndJoin()
112-
}
109+
timerJob?.cancel()
113110
}
114111

115112
private suspend fun updateButtonState() {

features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import com.example.util.simpletimetracker.navigation.params.screen.ChangeRunning
3838
import com.example.util.simpletimetracker.navigation.params.screen.RecordQuickActionsParams
3939
import dagger.hilt.android.lifecycle.HiltViewModel
4040
import kotlinx.coroutines.Job
41-
import kotlinx.coroutines.cancelAndJoin
4241
import kotlinx.coroutines.delay
4342
import kotlinx.coroutines.isActive
4443
import kotlinx.coroutines.launch
@@ -221,11 +220,7 @@ class RecordsViewModel @Inject constructor(
221220

222221
fun onVisible() {
223222
isVisible = true
224-
if (shift == 0) {
225-
startUpdate()
226-
} else {
227-
updateRecords()
228-
}
223+
startUpdate()
229224
}
230225

231226
fun onHidden() {
@@ -349,8 +344,12 @@ class RecordsViewModel @Inject constructor(
349344
}
350345

351346
private fun startUpdate() {
347+
timerJob?.cancel()
348+
if (shift != 0) {
349+
updateRecords()
350+
return
351+
}
352352
timerJob = viewModelScope.launch {
353-
timerJob?.cancelAndJoin()
354353
while (isActive) {
355354
updateRecords()
356355
delay(TIMER_UPDATE)
@@ -359,9 +358,7 @@ class RecordsViewModel @Inject constructor(
359358
}
360359

361360
private fun stopUpdate() {
362-
viewModelScope.launch {
363-
timerJob?.cancelAndJoin()
364-
}
361+
timerJob?.cancel()
365362
}
366363

367364
companion object {

features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSele
5252
import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams
5353
import dagger.hilt.android.lifecycle.HiltViewModel
5454
import kotlinx.coroutines.Job
55-
import kotlinx.coroutines.cancelAndJoin
5655
import kotlinx.coroutines.delay
5756
import kotlinx.coroutines.isActive
5857
import kotlinx.coroutines.launch
@@ -545,8 +544,8 @@ class RunningRecordsViewModel @Inject constructor(
545544
}
546545

547546
private fun startUpdate() {
547+
timerJob?.cancel()
548548
timerJob = viewModelScope.launch {
549-
timerJob?.cancelAndJoin()
550549
delayLoad()
551550
while (isActive) {
552551
updateRunningRecords()
@@ -556,9 +555,7 @@ class RunningRecordsViewModel @Inject constructor(
556555
}
557556

558557
private fun stopUpdate() {
559-
viewModelScope.launch {
560-
timerJob?.cancelAndJoin()
561-
}
558+
timerJob?.cancel()
562559
}
563560

564561
@Parcelize

features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import com.example.util.simpletimetracker.navigation.Router
2525
import com.example.util.simpletimetracker.navigation.params.screen.ChartFilterDialogParams
2626
import dagger.hilt.android.lifecycle.HiltViewModel
2727
import kotlinx.coroutines.Job
28-
import kotlinx.coroutines.cancelAndJoin
2928
import kotlinx.coroutines.delay
3029
import kotlinx.coroutines.isActive
3130
import kotlinx.coroutines.launch
@@ -66,11 +65,7 @@ class StatisticsViewModel @Inject constructor(
6665

6766
fun onVisible() {
6867
isVisible = true
69-
if (shift == 0) {
70-
startUpdate()
71-
} else {
72-
updateStatistics()
73-
}
68+
startUpdate()
7469
updateAnimateChartParticles()
7570
}
7671

@@ -221,8 +216,12 @@ class StatisticsViewModel @Inject constructor(
221216
}
222217

223218
private fun startUpdate() {
219+
timerJob?.cancel()
220+
if (shift != 0) {
221+
updateStatistics()
222+
return
223+
}
224224
timerJob = viewModelScope.launch {
225-
timerJob?.cancelAndJoin()
226225
while (isActive) {
227226
updateStatistics()
228227
delay(TIMER_UPDATE)
@@ -231,9 +230,7 @@ class StatisticsViewModel @Inject constructor(
231230
}
232231

233232
private fun stopUpdate() {
234-
viewModelScope.launch {
235-
timerJob?.cancelAndJoin()
236-
}
233+
timerJob?.cancel()
237234
}
238235

239236
companion object {

0 commit comments

Comments
 (0)