Skip to content

Commit 0097e11

Browse files
committed
add more shortcut settings
1 parent 6e801f4 commit 0097e11

8 files changed

Lines changed: 81 additions & 6 deletions

File tree

app/src/androidTest/java/com/example/util/simpletimetracker/ShortcutsTest.kt

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,24 +159,67 @@ class ShortcutsTest : BaseUiTest() {
159159
@Test
160160
fun changeSetting() {
161161
val name = "name"
162-
val settingShortcutName = getString(coreR.string.settings_retroactive_tracking_mode)
162+
val multitaskingShortcutName = getString(coreR.string.settings_allow_multitasking)
163+
val retroactiveSettingShortcutName = getString(coreR.string.settings_retroactive_tracking_mode)
164+
val categoriesShortcutName = getString(coreR.string.categories_title)
165+
val archiveShortcutName = getString(coreR.string.settings_archive)
166+
val dataEditShortcutName = getString(coreR.string.settings_data_edit)
163167

164168
// Add data
169+
runBlocking {
170+
prefsInteractor.setAllowMultitasking(false)
171+
prefsInteractor.setRetroactiveMultitaskingHintWasHidden(true)
172+
}
165173
testUtils.addActivity(name)
174+
testUtils.addSettingShortcut(RecordShortcut.SettingAction.Multitasking)
166175
testUtils.addSettingShortcut(RecordShortcut.SettingAction.RetroactiveMode)
176+
testUtils.addSettingShortcut(RecordShortcut.SettingAction.Categories)
177+
testUtils.addSettingShortcut(RecordShortcut.SettingAction.Archive)
178+
testUtils.addSettingShortcut(RecordShortcut.SettingAction.DataEdit)
167179
Thread.sleep(1000)
168180

169181
// Check shortcuts
170182
tryAction {
171-
checkSettingShortcut(name = settingShortcutName, isEnabled = false)
183+
checkSettingShortcut(name = multitaskingShortcutName, isEnabled = false)
184+
checkSettingShortcut(name = retroactiveSettingShortcutName, isEnabled = false)
185+
checkSettingShortcut(name = categoriesShortcutName, isEnabled = false)
186+
checkSettingShortcut(name = archiveShortcutName, isEnabled = false)
187+
checkSettingShortcut(name = dataEditShortcutName, isEnabled = false)
172188
}
173189

174-
// Start
175-
clickOnViewWithText(settingShortcutName)
176-
checkSettingShortcut(name = settingShortcutName, isEnabled = true)
190+
// Multitasking
191+
clickOnView(allOf(withText(multitaskingShortcutName), isCompletelyDisplayed()))
192+
Thread.sleep(500) // Because of throttling
193+
checkSettingShortcut(name = multitaskingShortcutName, isEnabled = true)
194+
195+
// Retroactive
196+
clickOnView(allOf(withText(retroactiveSettingShortcutName), isCompletelyDisplayed()))
197+
Thread.sleep(500) // Because of throttling
198+
checkSettingShortcut(name = retroactiveSettingShortcutName, isEnabled = true)
177199
tryAction {
178200
checkViewIsDisplayed(withText(R.string.retroactive_tracking_mode_hint))
179201
}
202+
203+
// Categories
204+
clickOnView(allOf(withText(categoriesShortcutName), isCompletelyDisplayed()))
205+
tryAction {
206+
checkViewIsDisplayed(withText(coreR.string.categories_record_type_hint))
207+
}
208+
pressBack()
209+
210+
// Archive
211+
clickOnView(allOf(withText(archiveShortcutName), isCompletelyDisplayed()))
212+
tryAction {
213+
checkViewIsDisplayed(withText(coreR.string.archive_empty))
214+
}
215+
pressBack()
216+
217+
// Data edit
218+
clickOnView(allOf(withText(dataEditShortcutName), isCompletelyDisplayed()))
219+
tryAction {
220+
checkViewIsDisplayed(withText(coreR.string.data_edit_select_records))
221+
}
222+
pressBack()
180223
}
181224

182225
@Suppress("SameParameterValue")

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ class IsSettingShortcutEnabledInteractor @Inject constructor(
1818
RecordShortcut.SettingAction.RetroactiveMode -> {
1919
prefsInteractor.getRetroactiveTrackingMode()
2020
}
21+
RecordShortcut.SettingAction.Categories,
22+
RecordShortcut.SettingAction.Archive,
23+
RecordShortcut.SettingAction.DataEdit,
24+
-> false
2125
}
2226
}
2327
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteracto
55
import com.example.util.simpletimetracker.domain.record.interactor.RemoveRunningRecordMediator
66
import com.example.util.simpletimetracker.domain.record.interactor.RunningRecordInteractor
77
import com.example.util.simpletimetracker.domain.recordShortcut.model.RecordShortcut
8+
import com.example.util.simpletimetracker.navigation.Router
9+
import com.example.util.simpletimetracker.navigation.params.screen.ArchiveParams
10+
import com.example.util.simpletimetracker.navigation.params.screen.CategoriesParams
11+
import com.example.util.simpletimetracker.navigation.params.screen.DataEditParams
812
import javax.inject.Inject
913

1014
class OnSettingsShortcutClickInteractor @Inject constructor(
15+
private val router: Router,
1116
private val prefsInteractor: PrefsInteractor,
1217
private val runningRecordInteractor: RunningRecordInteractor,
1318
private val removeRunningRecordMediator: RemoveRunningRecordMediator,
@@ -26,6 +31,15 @@ class OnSettingsShortcutClickInteractor @Inject constructor(
2631
prefsInteractor.setRetroactiveTrackingMode(newValue)
2732
onRetroactiveTrackingModeChange()
2833
}
34+
RecordShortcut.SettingAction.Categories -> {
35+
router.navigate(CategoriesParams)
36+
}
37+
RecordShortcut.SettingAction.Archive -> {
38+
router.navigate(ArchiveParams)
39+
}
40+
RecordShortcut.SettingAction.DataEdit -> {
41+
router.navigate(DataEditParams)
42+
}
2943
}
3044
}
3145

core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordShortcutViewDataMapper.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ class RecordShortcutViewDataMapper @Inject constructor(
5353
return when (action) {
5454
RecordShortcut.SettingAction.Multitasking -> R.string.settings_allow_multitasking
5555
RecordShortcut.SettingAction.RetroactiveMode -> R.string.settings_retroactive_tracking_mode
56+
RecordShortcut.SettingAction.Categories -> R.string.categories_title
57+
RecordShortcut.SettingAction.Archive -> R.string.settings_archive
58+
RecordShortcut.SettingAction.DataEdit -> R.string.settings_data_edit
5659
}.let(resourceRepo::getString)
5760
}
5861

data_local/src/main/java/com/example/util/simpletimetracker/data_local/recordShortcut/RecordShortcutDataLocalMapper.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ class RecordShortcutDataLocalMapper @Inject constructor() {
5757
return when (dbo) {
5858
0L -> RecordShortcut.SettingAction.Multitasking
5959
1L -> RecordShortcut.SettingAction.RetroactiveMode
60+
2L -> RecordShortcut.SettingAction.Categories
61+
3L -> RecordShortcut.SettingAction.Archive
62+
4L -> RecordShortcut.SettingAction.DataEdit
6063
else -> RecordShortcut.SettingAction.Multitasking
6164
}
6265
}
@@ -65,6 +68,9 @@ class RecordShortcutDataLocalMapper @Inject constructor() {
6568
return when (domain) {
6669
RecordShortcut.SettingAction.Multitasking -> 0L
6770
RecordShortcut.SettingAction.RetroactiveMode -> 1L
71+
RecordShortcut.SettingAction.Categories -> 2L
72+
RecordShortcut.SettingAction.Archive -> 3L
73+
RecordShortcut.SettingAction.DataEdit -> 4L
6874
}
6975
}
7076
}

domain/src/main/java/com/example/util/simpletimetracker/domain/recordShortcut/interactor/RecordShortcutInteractor.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ class RecordShortcutInteractor @Inject constructor(
5151
return listOf(
5252
RecordShortcut.SettingAction.Multitasking,
5353
RecordShortcut.SettingAction.RetroactiveMode,
54+
RecordShortcut.SettingAction.Categories,
55+
RecordShortcut.SettingAction.Archive,
56+
RecordShortcut.SettingAction.DataEdit,
5457
)
5558
}
5659

domain/src/main/java/com/example/util/simpletimetracker/domain/recordShortcut/model/RecordShortcut.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@ data class RecordShortcut(
3333
enum class SettingAction {
3434
Multitasking,
3535
RetroactiveMode,
36+
Categories,
37+
Archive,
38+
DataEdit,
3639
}
3740
}

features/feature_change_shortcut/src/main/java/com/example/util/simpletimetracker/feature_change_shortcut/viewModel/ChangeShortcutViewModel.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ class ChangeShortcutViewModel @Inject constructor(
200200

201201
// TODO move tag to delegates
202202
// TODO add ShortcutView and replace preview with it, so hint would be visible
203-
// TODO add more settings
204203
fun onSaveClick() {
205204
val target = buildTarget() ?: return
206205
saveButtonEnabled.set(false)

0 commit comments

Comments
 (0)