Skip to content

Commit 7fb6d25

Browse files
committed
add time started calculation from previous record if adding record on today
1 parent 9c4848d commit 7fb6d25

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class ChangeRecordViewModel @Inject constructor(
106106
timeStarted = newTimeStarted,
107107
timeEnded = newTimeEnded,
108108
comment = newComment,
109-
tagIds = newCategoryIds
109+
tagIds = newCategoryIds,
110110
).let {
111111
addRecordMediator.add(it)
112112
if (newTypeId != originalTypeId) {
@@ -143,7 +143,7 @@ class ChangeRecordViewModel @Inject constructor(
143143
timeStarted = newTimeStarted,
144144
timeEnded = newTimeEnded,
145145
comment = newComment,
146-
tagIds = newCategoryIds
146+
tagIds = newCategoryIds,
147147
).let {
148148
addRecordMediator.add(it)
149149
}
@@ -166,10 +166,23 @@ class ChangeRecordViewModel @Inject constructor(
166166
super.onTimeStartedChanged()
167167
}
168168

169-
private fun getInitialDate(daysFromToday: Int): Long {
169+
private fun getInitialTimeEnded(daysFromToday: Int): Long {
170170
return timeMapper.toTimestampShifted(daysFromToday, RangeLength.Day)
171171
}
172172

173+
private suspend fun getInitialTimeStarted(daysFromToday: Int): Long {
174+
val default = newTimeEnded - ONE_HOUR
175+
176+
return if (daysFromToday == 0) {
177+
recordInteractor.getPrev(newTimeEnded, limit = 1)
178+
.firstOrNull()
179+
?.timeEnded
180+
?: default
181+
} else {
182+
default
183+
}
184+
}
185+
173186
override suspend fun updatePreview() {
174187
(record as MutableLiveData).value = loadPreviewViewData()
175188
}
@@ -190,8 +203,9 @@ class ChangeRecordViewModel @Inject constructor(
190203
newTimeEnded = (extra as ChangeRecordParams.Untracked).timeEnded
191204
}
192205
is ChangeRecordParams.New -> {
193-
newTimeEnded = getInitialDate((extra as ChangeRecordParams.New).daysFromToday)
194-
newTimeStarted = newTimeEnded - ONE_HOUR
206+
val daysFromToday = (extra as ChangeRecordParams.New).daysFromToday
207+
newTimeEnded = getInitialTimeEnded(daysFromToday)
208+
newTimeStarted = getInitialTimeStarted(daysFromToday)
195209
}
196210
}
197211
newTimeSplit = newTimeStarted
@@ -207,7 +221,7 @@ class ChangeRecordViewModel @Inject constructor(
207221
timeStarted = newTimeStarted,
208222
timeEnded = newTimeEnded,
209223
comment = newComment,
210-
tagIds = newCategoryIds
224+
tagIds = newCategoryIds,
211225
)
212226

213227
return changeRecordViewDataInteractor.getPreviewViewData(record)

features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ package com.example.util.simpletimetracker.feature_change_record_type.view
22

33
import android.os.Bundle
44
import android.view.LayoutInflater
5-
import android.view.View
65
import android.view.ViewGroup
7-
import androidx.cardview.widget.CardView
86
import androidx.core.view.isVisible
97
import androidx.core.view.updatePadding
108
import androidx.core.widget.doAfterTextChanged
@@ -21,7 +19,6 @@ import com.example.util.simpletimetracker.core.extension.showKeyboard
2119
import com.example.util.simpletimetracker.core.extension.toViewData
2220
import com.example.util.simpletimetracker.core.repo.DeviceRepo
2321
import com.example.util.simpletimetracker.core.utils.fragmentArgumentDelegate
24-
import com.example.util.simpletimetracker.core.utils.setChooserColor
2522
import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData
2623
import com.example.util.simpletimetracker.domain.model.IconEmojiType
2724
import com.example.util.simpletimetracker.domain.model.IconType
@@ -57,8 +54,6 @@ import com.example.util.simpletimetracker.feature_change_record_type.viewModel.C
5754
import com.example.util.simpletimetracker.feature_views.extension.addOnScrollListenerAdapter
5855
import com.example.util.simpletimetracker.feature_views.extension.dpToPx
5956
import com.example.util.simpletimetracker.feature_views.extension.pxToDp
60-
import com.example.util.simpletimetracker.feature_views.extension.rotateDown
61-
import com.example.util.simpletimetracker.feature_views.extension.rotateUp
6257
import com.example.util.simpletimetracker.feature_views.extension.setOnClick
6358
import com.example.util.simpletimetracker.feature_views.extension.setSpanSizeLookup
6459
import com.example.util.simpletimetracker.feature_views.extension.visible

features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewData/ChangeRecordTypeChooserState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ data class ChangeRecordTypeChooserState(
1111
object Icon : State
1212
object Category : State
1313
object GoalTime : State
14-
object Type: State
14+
object Type : State
1515
}
1616
}

0 commit comments

Comments
 (0)