Skip to content

Commit d29a9dc

Browse files
committed
add value tags
1 parent a4f5524 commit d29a9dc

File tree

165 files changed

+1464
-314
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+1464
-314
lines changed

app/src/main/java/com/example/util/simpletimetracker/di/NavigationDialogMapModule.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.example.util.simpletimetracker.feature_dialogs.helpDialog.HelpDialogF
1515
import com.example.util.simpletimetracker.feature_dialogs.optionsDialog.OptionsListDialogFragment
1616
import com.example.util.simpletimetracker.feature_dialogs.recordQuickActions.view.RecordQuickActionsDialogFragment
1717
import com.example.util.simpletimetracker.feature_dialogs.recordTagSelection.RecordTagSelectionDialogFragment
18+
import com.example.util.simpletimetracker.feature_dialogs.recordTagValueSelection.view.RecordTagValueSelectionDialogFragment
1819
import com.example.util.simpletimetracker.feature_dialogs.typesSelection.view.TypesSelectionDialogFragment
1920
import com.example.util.simpletimetracker.feature_dialogs.standard.StandardDialogFragment
2021
import com.example.util.simpletimetracker.feature_records_filter.view.RecordsFilterFragment
@@ -44,6 +45,7 @@ import com.example.util.simpletimetracker.navigation.params.screen.PomodoroSetti
4445
import com.example.util.simpletimetracker.navigation.params.screen.RecordQuickActionsParams
4546
import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams
4647
import com.example.util.simpletimetracker.navigation.params.screen.OptionsListParams
48+
import com.example.util.simpletimetracker.navigation.params.screen.RecordTagValueSelectionParams
4749
import com.example.util.simpletimetracker.navigation.params.screen.TypesSelectionDialogParams
4850
import com.example.util.simpletimetracker.navigation.params.screen.RecordsFilterParams
4951
import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams
@@ -197,6 +199,16 @@ class NavigationDialogMapModule {
197199
)
198200
}
199201

202+
@IntoMap
203+
@Provides
204+
@ScreenKey(RecordTagValueSelectionParams::class)
205+
fun recordTagValueSelectionDialog(): NavigationData {
206+
return NavigationData(
207+
R.id.recordTagValueSelectionDialogFragment,
208+
bundleCreatorDelegate(RecordTagValueSelectionDialogFragment::createBundle),
209+
)
210+
}
211+
200212
@IntoMap
201213
@Provides
202214
@ScreenKey(DataExportSettingDialogParams::class)

app/src/main/res/navigation/nav_graph.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,11 @@
304304
android:name="com.example.util.simpletimetracker.feature_dialogs.recordTagSelection.RecordTagSelectionDialogFragment"
305305
android:label="RecordTagSelectionDialogFragment"
306306
tools:layout="@layout/record_tag_selection_dialog_fragment" />
307+
<dialog
308+
android:id="@+id/recordTagValueSelectionDialogFragment"
309+
android:name="com.example.util.simpletimetracker.feature_dialogs.recordTagValueSelection.view.RecordTagValueSelectionDialogFragment"
310+
android:label="RecordTagValueSelectionDialogFragment"
311+
tools:layout="@layout/record_tag_value_selection_dialog_fragment" />
307312
<dialog
308313
android:id="@+id/csvExportSettingsDialogFragment"
309314
android:name="com.example.util.simpletimetracker.feature_dialogs.csvExportSettings.view.CsvExportSettingsDialogFragment"

core/src/main/java/com/example/util/simpletimetracker/core/delegates/iconSelection/viewData/IconSelectionSwitchViewData.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.example.util.simpletimetracker.core.delegates.iconSelection.viewData
22

3-
import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData
3+
import com.example.util.simpletimetracker.feature_base_adapter.buttonsRow.view.ButtonsRowViewData
44
import com.example.util.simpletimetracker.domain.icon.IconType
55

66
data class IconSelectionSwitchViewData(

core/src/main/java/com/example/util/simpletimetracker/core/delegates/iconSelection/viewDelegate/IconSelectionViewDelegate.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import com.example.util.simpletimetracker.core.delegates.iconSelection.viewData.
1919
import com.example.util.simpletimetracker.core.delegates.iconSelection.viewData.IconSelectionSwitchViewData
2020
import com.example.util.simpletimetracker.core.delegates.iconSelection.viewModelDelegate.IconSelectionViewModelDelegate
2121
import com.example.util.simpletimetracker.core.repo.DeviceRepo
22-
import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData
22+
import com.example.util.simpletimetracker.feature_base_adapter.buttonsRow.view.ButtonsRowViewData
2323
import com.example.util.simpletimetracker.domain.icon.IconEmojiType
2424
import com.example.util.simpletimetracker.domain.icon.IconImageState
2525
import com.example.util.simpletimetracker.domain.icon.IconType
@@ -62,7 +62,7 @@ object IconSelectionViewDelegate {
6262
}
6363

6464
rvIconSelectionCategory.apply {
65-
layoutManager = GridLayoutManager(context, IconEmojiType.values().size)
65+
layoutManager = GridLayoutManager(context, IconEmojiType.entries.size)
6666
adapter = iconCategoriesAdapter
6767
itemAnimator = null
6868
}

core/src/main/java/com/example/util/simpletimetracker/core/delegates/iconSelection/viewModelDelegate/IconSelectionViewModelDelegate.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import com.example.util.simpletimetracker.core.delegates.iconSelection.viewData.
1414
import com.example.util.simpletimetracker.core.delegates.iconSelection.viewData.IconSelectionScrollViewData
1515
import com.example.util.simpletimetracker.core.extension.set
1616
import com.example.util.simpletimetracker.core.mapper.IconEmojiMapper
17-
import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData
17+
import com.example.util.simpletimetracker.feature_base_adapter.buttonsRow.view.ButtonsRowViewData
1818
import com.example.util.simpletimetracker.domain.extension.orZero
1919
import com.example.util.simpletimetracker.domain.favourite.interactor.FavouriteIconInteractor
2020
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.example.util.simpletimetracker.core.dialog
2+
3+
import com.example.util.simpletimetracker.navigation.params.screen.RecordTagValueSelectionParams
4+
5+
interface OnTagValueSelectedListener {
6+
7+
fun onTagValueSelected(
8+
params: RecordTagValueSelectionParams,
9+
data: Double,
10+
)
11+
}
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
package com.example.util.simpletimetracker.core.dialog
22

3+
import com.example.util.simpletimetracker.domain.record.model.RecordBase
4+
35
interface TypesSelectionDialogListener {
46

5-
fun onDataSelected(dataIds: List<Long>, tag: String?)
7+
fun onDataSelected(
8+
tag: String?,
9+
dataIds: List<Long>,
10+
tagValues: List<RecordBase.Tag>,
11+
)
612
}

core/src/main/java/com/example/util/simpletimetracker/core/interactor/GetUntrackedRecordsInteractorImpl.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class GetUntrackedRecordsInteractorImpl @Inject constructor(
5050
timeStarted = it.timeStarted,
5151
timeEnded = it.timeEnded,
5252
comment = "",
53+
tags = emptyList(),
5354
)
5455
}.let {
5556
processTimeOfDayRange(it)

core/src/main/java/com/example/util/simpletimetracker/core/interactor/RecordRepeatInteractor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class RecordRepeatInteractor @Inject constructor(
7272

7373
addRunningRecordMediator.startTimer(
7474
typeId = prevRecord.typeId,
75-
tagIds = prevRecord.tagIds,
75+
tags = prevRecord.tags,
7676
comment = prevRecord.comment,
7777
)
7878
return ActionResult.Started

core/src/main/java/com/example/util/simpletimetracker/core/interactor/RecordTagViewDataInteractor.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.example.util.simpletimetracker.core.mapper.CommonViewDataMapper
66
import com.example.util.simpletimetracker.core.repo.ResourceRepo
77
import com.example.util.simpletimetracker.domain.extension.plusAssign
88
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
9+
import com.example.util.simpletimetracker.domain.record.model.RecordBase
910
import com.example.util.simpletimetracker.domain.recordTag.interactor.GetSelectableTagsInteractor
1011
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
1112
import com.example.util.simpletimetracker.domain.recordTag.model.RecordTag
@@ -28,7 +29,7 @@ class RecordTagViewDataInteractor @Inject constructor(
2829

2930
// typeId == null - show all tags.
3031
suspend fun getViewData(
31-
selectedTags: List<Long>,
32+
selectedTags: List<RecordBase.Tag>,
3233
typeId: Long?,
3334
showAllTags: Boolean,
3435
multipleChoiceAvailable: Boolean,
@@ -54,10 +55,12 @@ class RecordTagViewDataInteractor @Inject constructor(
5455
val types = recordTypeInteractor.getAll().associateBy { it.id }
5556

5657
return if (allTags.isNotEmpty()) {
57-
val selected = allTags.filter { it.id in selectedTags }
58-
val available = recordTags.filter { it.id !in selectedTags }
58+
val selectedTagsMap = selectedTags.associateBy { it.tagId }
59+
val selectedTagIds = selectedTagsMap.keys
60+
val selected = allTags.filter { it.id in selectedTagIds }
61+
val available = recordTags.filter { it.id !in selectedTagIds }
5962
val availableFromOtherActivities = if (showAllTags) {
60-
tagsFromOtherActivities.filter { it.id !in selectedTags }
63+
tagsFromOtherActivities.filter { it.id !in selectedTagIds }
6164
} else {
6265
emptyList()
6366
}
@@ -79,8 +82,9 @@ class RecordTagViewDataInteractor @Inject constructor(
7982
}
8083

8184
viewData += selected.map {
82-
categoryViewDataMapper.mapRecordTag(
85+
categoryViewDataMapper.mapRecordTagWithValue(
8386
tag = it,
87+
tagData = selectedTagsMap[it.id],
8488
type = types[it.iconColorSource],
8589
isDarkTheme = isDarkTheme,
8690
)

0 commit comments

Comments
 (0)