@@ -21,6 +21,7 @@ import com.example.util.simpletimetracker.core.viewData.EmojiViewData
2121import com.example.util.simpletimetracker.core.viewData.RecordTypeViewData
2222import com.example.util.simpletimetracker.domain.extension.flip
2323import com.example.util.simpletimetracker.domain.extension.orTrue
24+ import com.example.util.simpletimetracker.domain.extension.orZero
2425import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor
2526import com.example.util.simpletimetracker.domain.interactor.RecordInteractor
2627import com.example.util.simpletimetracker.domain.interactor.RecordTypeCategoryInteractor
@@ -117,10 +118,11 @@ class ChangeRecordTypeViewModel @Inject constructor(
117118 val flipCategoryChooser: LiveData <Boolean > = MutableLiveData ()
118119 val deleteButtonEnabled: LiveData <Boolean > = MutableLiveData (true )
119120 val saveButtonEnabled: LiveData <Boolean > = MutableLiveData (true )
120- val deleteIconVisibility: LiveData <Boolean > by lazy { MutableLiveData (extra.id != 0L ) }
121- val keyboardVisibility: LiveData <Boolean > by lazy { MutableLiveData (extra.id == 0L ) }
121+ val deleteIconVisibility: LiveData <Boolean > by lazy { MutableLiveData (recordTypeId != 0L ) }
122+ val keyboardVisibility: LiveData <Boolean > by lazy { MutableLiveData (recordTypeId == 0L ) }
122123 val iconsScrollPosition: LiveData <ChangeRecordTypeScrollViewData > = MutableLiveData ()
123124
125+ private val recordTypeId: Long get() = (extra as ? ChangeRecordTypeParams .Change )?.id.orZero()
124126 private var iconType: IconType = IconType .IMAGE
125127 private var initialCategories: List <Long > = emptyList()
126128 private var newName: String = " "
@@ -277,16 +279,16 @@ class ChangeRecordTypeViewModel @Inject constructor(
277279 fun onDeleteClick () {
278280 (deleteButtonEnabled as MutableLiveData ).value = false
279281 viewModelScope.launch {
280- if (extra.id != 0L ) {
281- recordTypeInteractor.archive(extra.id )
282- runningRecordInteractor.get(extra.id )?.let { runningRecord ->
282+ if (recordTypeId != 0L ) {
283+ recordTypeInteractor.archive(recordTypeId )
284+ runningRecordInteractor.get(recordTypeId )?.let { runningRecord ->
283285 recordInteractor.add(
284286 typeId = runningRecord.id,
285287 timeStarted = runningRecord.timeStarted,
286288 comment = runningRecord.comment,
287289 tagId = runningRecord.tagId
288290 )
289- removeRunningRecordMediator.remove(extra.id )
291+ removeRunningRecordMediator.remove(recordTypeId )
290292 }
291293 showMessage(R .string.change_record_type_archived)
292294 (keyboardVisibility as MutableLiveData ).value = false
@@ -304,8 +306,8 @@ class ChangeRecordTypeViewModel @Inject constructor(
304306 viewModelScope.launch {
305307 val addedId = saveRecordType()
306308 saveCategories(addedId)
307- notificationTypeInteractor.checkAndShow(extra.id )
308- notificationGoalTimeInteractor.checkAndReschedule(extra.id )
309+ notificationTypeInteractor.checkAndShow(recordTypeId )
310+ notificationGoalTimeInteractor.checkAndReschedule(recordTypeId )
309311 widgetInteractor.updateWidgets()
310312 (keyboardVisibility as MutableLiveData ).value = false
311313 router.back()
@@ -330,7 +332,7 @@ class ChangeRecordTypeViewModel @Inject constructor(
330332
331333 private suspend fun saveRecordType (): Long {
332334 val recordType = RecordType (
333- id = extra.id ,
335+ id = recordTypeId ,
334336 name = newName,
335337 icon = newIconName,
336338 color = newColorId,
@@ -349,7 +351,7 @@ class ChangeRecordTypeViewModel @Inject constructor(
349351 }
350352
351353 private suspend fun initializeRecordTypeData () {
352- recordTypeInteractor.get(extra.id )
354+ recordTypeInteractor.get(recordTypeId )
353355 ?.let {
354356 newName = it.name
355357 newIconName = it.icon
@@ -361,7 +363,7 @@ class ChangeRecordTypeViewModel @Inject constructor(
361363 }
362364
363365 private suspend fun initializeSelectedCategories () {
364- recordTypeCategoryInteractor.getCategories(extra.id )
366+ recordTypeCategoryInteractor.getCategories(recordTypeId )
365367 .let {
366368 newCategories = it.toMutableList()
367369 initialCategories = it
0 commit comments