From 04193229074ac2287dc526225fc8f9cdb0bebb8d Mon Sep 17 00:00:00 2001 From: razeeman Date: Sat, 15 Jul 2023 23:55:17 +0300 Subject: [PATCH] remove weekly monthly goals from main screen --- .../GetRunningRecordViewDataMediator.kt | 17 +--- .../mapper/RunningRecordViewDataMapper.kt | 57 ++++++------ .../domain/extension/GoalsExtensions.kt | 4 + .../RunningRecordAdapterDelegate.kt | 12 --- .../runningRecord/RunningRecordViewData.kt | 15 +--- .../view/ChangeRunningRecordFragment.kt | 9 -- .../NotificationTypeInteractorImpl.kt | 9 +- .../viewModel/RecordsViewModel.kt | 3 - .../viewModel/RecordsAllViewModel.kt | 3 - .../viewModel/RunningRecordsViewModel.kt | 3 - .../feature_views/RunningRecordView.kt | 45 ---------- .../res/layout/record_running_view_layout.xml | 87 +------------------ .../src/main/res/values/attrs.xml | 2 - .../screen/ChangeRunningRecordParams.kt | 3 - 14 files changed, 51 insertions(+), 218 deletions(-) diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/interactor/GetRunningRecordViewDataMediator.kt b/core/src/main/java/com/example/util/simpletimetracker/core/interactor/GetRunningRecordViewDataMediator.kt index d7640a57..148d1526 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/interactor/GetRunningRecordViewDataMediator.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/interactor/GetRunningRecordViewDataMediator.kt @@ -1,8 +1,7 @@ package com.example.util.simpletimetracker.core.interactor import com.example.util.simpletimetracker.core.mapper.RunningRecordViewDataMapper -import com.example.util.simpletimetracker.domain.extension.hasMonthlyDuration -import com.example.util.simpletimetracker.domain.extension.hasWeeklyDuration +import com.example.util.simpletimetracker.domain.extension.hasDailyDuration import com.example.util.simpletimetracker.domain.model.RecordTag import com.example.util.simpletimetracker.domain.model.RecordType import com.example.util.simpletimetracker.domain.model.RecordTypeGoal @@ -28,27 +27,15 @@ class GetRunningRecordViewDataMediator @Inject constructor( useProportionalMinutes: Boolean, showSeconds: Boolean, ): RunningRecordViewData { - val dailyCurrent = if (goalsVisible || totalDurationVisible) { + val dailyCurrent = if ((goals.hasDailyDuration() && goalsVisible) || totalDurationVisible) { getCurrentRecordsDurationInteractor.getDailyCurrent(record) } else { null } - val weeklyCurrent = if (goals.hasWeeklyDuration() && goalsVisible) { - getCurrentRecordsDurationInteractor.getWeeklyCurrent(record).duration - } else { - 0L - } - val monthlyCurrent = if (goals.hasMonthlyDuration() && goalsVisible) { - getCurrentRecordsDurationInteractor.getMonthlyCurrent(record).duration - } else { - 0L - } return runningRecordViewDataMapper.map( runningRecord = record, dailyCurrent = dailyCurrent, - weeklyCurrent = weeklyCurrent, - monthlyCurrent = monthlyCurrent, recordType = type, recordTags = tags, goals = goals, diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RunningRecordViewDataMapper.kt b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RunningRecordViewDataMapper.kt index be8ad8c8..0e8d0d9f 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RunningRecordViewDataMapper.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RunningRecordViewDataMapper.kt @@ -5,9 +5,8 @@ import com.example.util.simpletimetracker.core.interactor.GetCurrentRecordsDurat import com.example.util.simpletimetracker.core.repo.ResourceRepo import com.example.util.simpletimetracker.domain.extension.getDailyDuration import com.example.util.simpletimetracker.domain.extension.getFullName -import com.example.util.simpletimetracker.domain.extension.getMonthlyDuration import com.example.util.simpletimetracker.domain.extension.getSessionDuration -import com.example.util.simpletimetracker.domain.extension.getWeeklyDuration +import com.example.util.simpletimetracker.domain.extension.hasDailyDuration import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.domain.extension.value import com.example.util.simpletimetracker.domain.model.GoalTimeType @@ -15,6 +14,7 @@ import com.example.util.simpletimetracker.domain.model.RecordTag import com.example.util.simpletimetracker.domain.model.RecordType import com.example.util.simpletimetracker.domain.model.RecordTypeGoal import com.example.util.simpletimetracker.domain.model.RunningRecord +import com.example.util.simpletimetracker.feature_base_adapter.runningRecord.GoalTimeViewData import com.example.util.simpletimetracker.feature_base_adapter.runningRecord.RunningRecordViewData import javax.inject.Inject @@ -29,8 +29,6 @@ class RunningRecordViewDataMapper @Inject constructor( fun map( runningRecord: RunningRecord, dailyCurrent: GetCurrentRecordsDurationInteractor.Result?, - weeklyCurrent: Long, - monthlyCurrent: Long, recordType: RecordType, recordTags: List, goals: List, @@ -65,28 +63,10 @@ class RunningRecordViewDataMapper @Inject constructor( showSeconds = showSeconds, useProportionalMinutes = useProportionalMinutes, ), - goalTime = goalTimeMapper.map( - goalTime = goals.getSessionDuration().value, - current = currentDuration, - type = GoalTimeType.Session, - goalsVisible = goalsVisible, - ), - goalTime2 = goalTimeMapper.map( - goalTime = goals.getDailyDuration().value, - current = dailyCurrent?.duration.orZero(), - type = GoalTimeType.Day, - goalsVisible = goalsVisible, - ), - goalTime3 = goalTimeMapper.map( - goalTime = goals.getWeeklyDuration().value, - current = weeklyCurrent, - type = GoalTimeType.Week, - goalsVisible = goalsVisible, - ), - goalTime4 = goalTimeMapper.map( - goalTime = goals.getMonthlyDuration().value, - current = monthlyCurrent, - type = GoalTimeType.Month, + goalTime = mapGoalTime( + currentDuration = currentDuration, + goals = goals, + dailyCurrent = dailyCurrent, goalsVisible = goalsVisible, ), iconId = recordType.icon @@ -116,4 +96,29 @@ class RunningRecordViewDataMapper @Inject constructor( return "$hint $duration" } + + private fun mapGoalTime( + currentDuration: Long, + goals: List, + dailyCurrent: GetCurrentRecordsDurationInteractor.Result?, + goalsVisible: Boolean, + ): GoalTimeViewData { + fun getSessionGoal() = goalTimeMapper.map( + goalTime = goals.getSessionDuration().value, + current = currentDuration, + type = GoalTimeType.Session, + goalsVisible = goalsVisible, + ) + fun getDailyGoal() = goalTimeMapper.map( + goalTime = goals.getDailyDuration().value, + current = dailyCurrent?.duration.orZero(), + type = GoalTimeType.Day, + goalsVisible = goalsVisible, + ) + + return when { + goals.hasDailyDuration() -> getDailyGoal() + else -> getSessionGoal() + } + } } \ No newline at end of file diff --git a/domain/src/main/java/com/example/util/simpletimetracker/domain/extension/GoalsExtensions.kt b/domain/src/main/java/com/example/util/simpletimetracker/domain/extension/GoalsExtensions.kt index ab0cf177..9baa7dac 100644 --- a/domain/src/main/java/com/example/util/simpletimetracker/domain/extension/GoalsExtensions.kt +++ b/domain/src/main/java/com/example/util/simpletimetracker/domain/extension/GoalsExtensions.kt @@ -28,6 +28,10 @@ fun List.getMonthlyDuration(): RecordTypeGoal? { } } +fun List.hasSessionDuration(): Boolean { + return getSessionDuration() != null +} + fun List.hasDailyDuration(): Boolean { return getDailyDuration() != null } diff --git a/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordAdapterDelegate.kt b/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordAdapterDelegate.kt index 12a8e416..ec64d61d 100644 --- a/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordAdapterDelegate.kt +++ b/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordAdapterDelegate.kt @@ -42,18 +42,6 @@ fun createRunningRecordAdapterDelegate( itemGoalTime = item.goalTime.text itemGoalTimeComplete = item.goalTime.complete } - if (rebind || updates.contains(ViewData.UPDATE_GOAL_TIME2).orFalse()) { - itemGoalTime2 = item.goalTime2.text - itemGoalTime2Complete = item.goalTime2.complete - } - if (rebind || updates.contains(ViewData.UPDATE_GOAL_TIME3).orFalse()) { - itemGoalTime3 = item.goalTime3.text - itemGoalTime3Complete = item.goalTime3.complete - } - if (rebind || updates.contains(ViewData.UPDATE_GOAL_TIME4).orFalse()) { - itemGoalTime4 = item.goalTime4.text - itemGoalTime4Complete = item.goalTime4.complete - } if (rebind || updates.contains(ViewData.UPDATE_ICON).orFalse()) { itemIcon = item.iconId } diff --git a/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordViewData.kt b/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordViewData.kt index bb40ba25..6e4028eb 100644 --- a/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordViewData.kt +++ b/features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/runningRecord/RunningRecordViewData.kt @@ -12,9 +12,6 @@ data class RunningRecordViewData( val timer: String, val timerTotal: String, val goalTime: GoalTimeViewData, - val goalTime2: GoalTimeViewData, - val goalTime3: GoalTimeViewData, - val goalTime4: GoalTimeViewData, val iconId: RecordTypeIcon, @ColorInt val color: Int, val comment: String, @@ -36,9 +33,6 @@ data class RunningRecordViewData( if (this.iconId != other.iconId) updates.add(UPDATE_ICON) if (this.color != other.color) updates.add(UPDATE_COLOR) if (this.goalTime != other.goalTime) updates.add(UPDATE_GOAL_TIME) - if (this.goalTime2 != other.goalTime2) updates.add(UPDATE_GOAL_TIME2) - if (this.goalTime3 != other.goalTime3) updates.add(UPDATE_GOAL_TIME3) - if (this.goalTime4 != other.goalTime4) updates.add(UPDATE_GOAL_TIME4) if (this.comment != other.comment) updates.add(UPDATE_COMMENT) if (this.nowIconVisible != other.nowIconVisible) updates.add(UPDATE_NOW_ICON) @@ -53,11 +47,8 @@ data class RunningRecordViewData( const val UPDATE_ICON = 5 const val UPDATE_COLOR = 6 const val UPDATE_GOAL_TIME = 7 - const val UPDATE_GOAL_TIME2 = 8 - const val UPDATE_GOAL_TIME3 = 9 - const val UPDATE_GOAL_TIME4 = 10 - const val UPDATE_COMMENT = 11 - const val UPDATE_TAG_NAME = 12 - const val UPDATE_NOW_ICON = 13 + const val UPDATE_COMMENT = 8 + const val UPDATE_TAG_NAME = 9 + const val UPDATE_NOW_ICON = 10 } } \ No newline at end of file diff --git a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt index a8a7c9e0..0451b258 100644 --- a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt +++ b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt @@ -106,9 +106,6 @@ class ChangeRunningRecordFragment : timer = duration, timerTotal = durationTotal, goalTime = goalTime.toViewData(), - goalTime2 = goalTime2.toViewData(), - goalTime3 = goalTime3.toViewData(), - goalTime4 = goalTime4.toViewData(), iconId = iconId.toViewData(), color = color, comment = comment, @@ -132,12 +129,6 @@ class ChangeRunningRecordFragment : itemTimerTotal = item.recordPreview.timerTotal itemGoalTime = item.recordPreview.goalTime.text itemGoalTimeComplete = item.recordPreview.goalTime.complete - itemGoalTime2 = item.recordPreview.goalTime2.text - itemGoalTime2Complete = item.recordPreview.goalTime2.complete - itemGoalTime3 = item.recordPreview.goalTime3.text - itemGoalTime3Complete = item.recordPreview.goalTime3.complete - itemGoalTime4 = item.recordPreview.goalTime4.text - itemGoalTime4Complete = item.recordPreview.goalTime4.complete itemComment = item.recordPreview.comment itemNowIconVisible = item.recordPreview.nowIconVisible } diff --git a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt index c3c07dbf..f78ec452 100644 --- a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt +++ b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt @@ -5,8 +5,10 @@ import com.example.util.simpletimetracker.core.mapper.ColorMapper import com.example.util.simpletimetracker.core.mapper.IconMapper import com.example.util.simpletimetracker.core.mapper.TimeMapper import com.example.util.simpletimetracker.core.repo.ResourceRepo +import com.example.util.simpletimetracker.domain.extension.getDailyDuration import com.example.util.simpletimetracker.domain.extension.getFullName import com.example.util.simpletimetracker.domain.extension.getSessionDuration +import com.example.util.simpletimetracker.domain.extension.hasDailyDuration import com.example.util.simpletimetracker.domain.extension.value import com.example.util.simpletimetracker.domain.interactor.NotificationTypeInteractor import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor @@ -55,6 +57,11 @@ class NotificationTypeInteractorImpl @Inject constructor( val useMilitaryTime = prefsInteractor.getUseMilitaryTimeFormat() val showSeconds = prefsInteractor.getShowSeconds() val showControls = prefsInteractor.getShowNotificationsControls() + val goalTime = if (goals.hasDailyDuration()) { + goals.getDailyDuration() + } else { + goals.getSessionDuration() + } val viewedTags = if (selectedTypeId != 0L) { val typedTags = recordTags.filter { it.typeId == selectedTypeId } val generalTags = recordTags.filter { it.typeId == 0L } @@ -77,7 +84,7 @@ class NotificationTypeInteractorImpl @Inject constructor( show( recordType = recordType, - goalTime = goals.getSessionDuration(), + goalTime = goalTime, runningRecord = runningRecord ?: return, recordTags = recordTags.filter { it.id in runningRecord.tagIds }, dailyCurrent = getCurrentRecordsDurationInteractor.getDailyCurrent(runningRecord), diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt index 0edb8403..7e6d8b9f 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt @@ -70,9 +70,6 @@ class RecordsViewModel @Inject constructor( duration = item.timer, durationTotal = item.timerTotal, goalTime = item.goalTime.toParams(), - goalTime2 = item.goalTime2.toParams(), - goalTime3 = item.goalTime3.toParams(), - goalTime4 = item.goalTime4.toParams(), iconId = item.iconId.toParams(), color = item.color, comment = item.comment diff --git a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt index 4f4e6143..0b422ec9 100644 --- a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt +++ b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt @@ -69,9 +69,6 @@ class RecordsAllViewModel @Inject constructor( duration = item.timer, durationTotal = item.timerTotal, goalTime = item.goalTime.toParams(), - goalTime2 = item.goalTime2.toParams(), - goalTime3 = item.goalTime3.toParams(), - goalTime4 = item.goalTime4.toParams(), iconId = item.iconId.toParams(), color = item.color, comment = item.comment diff --git a/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt b/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt index d3697447..3c5dfa84 100644 --- a/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt +++ b/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt @@ -132,9 +132,6 @@ class RunningRecordsViewModel @Inject constructor( duration = item.timer, durationTotal = item.timerTotal, goalTime = item.goalTime.toParams(), - goalTime2 = item.goalTime2.toParams(), - goalTime3 = item.goalTime3.toParams(), - goalTime4 = item.goalTime4.toParams(), iconId = item.iconId.toParams(), color = item.color, comment = item.comment diff --git a/features/feature_views/src/main/java/com/example/util/simpletimetracker/feature_views/RunningRecordView.kt b/features/feature_views/src/main/java/com/example/util/simpletimetracker/feature_views/RunningRecordView.kt index 0864986a..d13acf91 100644 --- a/features/feature_views/src/main/java/com/example/util/simpletimetracker/feature_views/RunningRecordView.kt +++ b/features/feature_views/src/main/java/com/example/util/simpletimetracker/feature_views/RunningRecordView.kt @@ -93,45 +93,6 @@ class RunningRecordView @JvmOverloads constructor( field = value } - var itemGoalTime2: String = "" - set(value) { - binding.tvRunningRecordItemGoalTime2.text = value - binding.tvRunningRecordItemGoalTime2.visible = value.isNotEmpty() - field = value - } - - var itemGoalTime2Complete: Boolean = false - set(value) { - binding.ivRunningRecordItemGoalTimeCheck2.visible = value - field = value - } - - var itemGoalTime3: String = "" - set(value) { - binding.tvRunningRecordItemGoalTime3.text = value - binding.tvRunningRecordItemGoalTime3.visible = value.isNotEmpty() - field = value - } - - var itemGoalTime3Complete: Boolean = false - set(value) { - binding.ivRunningRecordItemGoalTimeCheck3.visible = value - field = value - } - - var itemGoalTime4: String = "" - set(value) { - binding.tvRunningRecordItemGoalTime4.text = value - binding.tvRunningRecordItemGoalTime4.visible = value.isNotEmpty() - field = value - } - - var itemGoalTime4Complete: Boolean = false - set(value) { - binding.ivRunningRecordItemGoalTimeCheck4.visible = value - field = value - } - var itemComment: String = "" set(value) { binding.tvRunningRecordItemComment.text = value @@ -198,12 +159,6 @@ class RunningRecordView @JvmOverloads constructor( if (hasValue(R.styleable.RunningRecordView_itemGoalTime)) itemGoalTime = getString(R.styleable.RunningRecordView_itemGoalTime).orEmpty() - if (hasValue(R.styleable.RunningRecordView_itemGoalTime2)) itemGoalTime2 = - getString(R.styleable.RunningRecordView_itemGoalTime2).orEmpty() - - if (hasValue(R.styleable.RunningRecordView_itemGoalTime3)) itemGoalTime3 = - getString(R.styleable.RunningRecordView_itemGoalTime3).orEmpty() - if (hasValue(R.styleable.RunningRecordView_itemComment)) itemComment = getString(R.styleable.RunningRecordView_itemComment).orEmpty() diff --git a/features/feature_views/src/main/res/layout/record_running_view_layout.xml b/features/feature_views/src/main/res/layout/record_running_view_layout.xml index 34602037..acb79676 100644 --- a/features/feature_views/src/main/res/layout/record_running_view_layout.xml +++ b/features/feature_views/src/main/res/layout/record_running_view_layout.xml @@ -137,11 +137,11 @@ android:textColor="?appLightTextColor" android:textSize="12sp" android:visibility="gone" - app:layout_constraintBottom_toTopOf="@+id/tvRunningRecordItemGoalTime2" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/ivRunningRecordItemGoalTimeCheck" app:layout_constraintTop_toBottomOf="@id/tvRunningRecordItemTimerTotal" app:layout_goneMarginEnd="8dp" - tools:text="session 30m 10s" + tools:text="goal 30m 10s" tools:visibility="visible" /> - - - - - - - - - - - - + app:constraint_referenced_ids="tvRunningRecordItemTimer, tvRunningRecordItemTimerTotal, tvRunningRecordItemGoalTime" /> - - diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt index 84a7fb30..175b8e96 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt @@ -20,9 +20,6 @@ data class ChangeRunningRecordParams( var duration: String, var durationTotal: String, var goalTime: GoalTimeParams, - var goalTime2: GoalTimeParams, - var goalTime3: GoalTimeParams, - var goalTime4: GoalTimeParams, val iconId: RecordTypeIconParams, @ColorInt val color: Int, val comment: String, -- 2.51.2