diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml
--- a/core/src/main/res/values-ar/strings.xml
+++ b/core/src/main/res/values-ar/strings.xml
@@ -235,6 +235,7 @@
ممكن
لغة
استخدام تنسيق 24 ساعة
+ استخدم تنسيق تاريخ الشهر / اليوم
استخدم صيغة الدقيقة النسبية
إظهار الثواني
أبق الشاشة قيد التشغيل
diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml
--- a/core/src/main/res/values-ca/strings.xml
+++ b/core/src/main/res/values-ca/strings.xml
@@ -235,6 +235,7 @@
Habilitat
Llenguatge
Utilitza el format 24-hores
+ Utilitzeu el format de data de mes/dia
Utilitza formar de minut proporcional
Mostra segons
Mantingues la pantalla encesa
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -235,6 +235,7 @@
Ermöglicht
Sprache
24-Stunden-Format benutzen
+ Verwenden Sie das Datumsformat Monat/Tag
Proportionales Minutenformat verwenden
Sekunden anzeigen
Bildschirm anlassen
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -235,6 +235,7 @@
Activado
Idioma
Usar el formato 24-horas
+ Usar formato de fecha Mes/Día
Usar el formato de minuto proporcional
Mostrar segundos
Mantener la pantalla encendida
diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml
--- a/core/src/main/res/values-fa/strings.xml
+++ b/core/src/main/res/values-fa/strings.xml
@@ -235,6 +235,7 @@
فعال شد
زبان
استفاده از فرمت 24 ساعته
+ از قالب تاریخ ماه/روز استفاده کنید
از زمان دقایق نسبی استفاده کن
نمایش ثانیه ها
صفحه را روشن نگه دار
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -235,6 +235,7 @@
Activé
Langue
Utiliser le format 24 heures
+ Utiliser le format de date Mois/Jour
Utiliser le format décimal
Afficher les secondes
Garder l\'écran allumé
diff --git a/core/src/main/res/values-hi/strings.xml b/core/src/main/res/values-hi/strings.xml
--- a/core/src/main/res/values-hi/strings.xml
+++ b/core/src/main/res/values-hi/strings.xml
@@ -235,6 +235,7 @@
सक्रिय
भाषा
24-घंटे के प्रारूप का उपयोग करें
+ माह/दिन दिनांक प्रारूप का उपयोग करें
आनुपातिक मिनट प्रारूप का उपयोग करें
सेकंड दिखाएँ
स्क्रीन को चालू रखें
diff --git a/core/src/main/res/values-in/strings.xml b/core/src/main/res/values-in/strings.xml
--- a/core/src/main/res/values-in/strings.xml
+++ b/core/src/main/res/values-in/strings.xml
@@ -235,6 +235,7 @@
Diaktifkan
Bahasa
Pakai format 24-jam
+ Gunakan format tanggal Bulan/Hari
Gunakan format minit berkadar
Tampilkan detik
Biarkan layarnya menyala
diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml
--- a/core/src/main/res/values-it/strings.xml
+++ b/core/src/main/res/values-it/strings.xml
@@ -235,6 +235,7 @@
Abilitato
Lingua
Use il formato a 24 ore
+ Usa il formato data Mese/Giorno
Usa il formato a minuti proporzionali
Mostra secondi
Tieni lo schermo acceso
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -235,6 +235,7 @@
有効
言語
24時間制で表示
+ 月/日の日付形式を使用する
時間表示の変更
秒を表示
画面表示の維持
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -235,6 +235,7 @@
Ingeschakeld
Taal
Gebruik 24-uurs formaat
+ Gebruik de datumnotatie Maand/Dag
Gebruik proportioneel minutenformaat
Toon seconden
Scherm aan houden
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -235,6 +235,7 @@
Habilitado
Linguagem
Usar formato de 24 horas
+ Use o formato de data Mês/Dia
Usar o formato de minuto proporcional
Mostrar segundos
Mantenha a tela ligada
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -235,6 +235,7 @@
Вкл.
Язык
24-часовой формат
+ Использовать формат даты месяц/день
Использовать пропорциональный минутный формат
Показать секунды
Держать экран включенным
diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml
--- a/core/src/main/res/values-sv/strings.xml
+++ b/core/src/main/res/values-sv/strings.xml
@@ -235,6 +235,7 @@
Aktiverad
Språk
Använd 24-timmarsklocka
+ Använd datumformatet månad/dag
Använd decimaltal för tid
Visa sekunder
Håll skärmen på
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -235,6 +235,7 @@
Etkinleştirilmiş
Dil
24-saat formatını kullan
+ Ay/Gün tarih biçimini kullan
Oransal dakika formatını kullan
Saniye göster
Ekranı açık tut
diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml
--- a/core/src/main/res/values-uk/strings.xml
+++ b/core/src/main/res/values-uk/strings.xml
@@ -235,6 +235,7 @@
Увімкнено
Мова
Використовувати 24-годинний формат
+ Використовуйте формат дати місяць/день
Використовуйте пропорційний хвилинний формат
Показати секунди
Тримайте екран увімкненим
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -235,6 +235,7 @@
啟用
語言
使用 24 小時格式
+ 使用月/日日期格式
使用比例分鐘格式
顯示秒數
保持螢幕長開
diff --git a/core/src/main/res/values-zh/strings.xml b/core/src/main/res/values-zh/strings.xml
--- a/core/src/main/res/values-zh/strings.xml
+++ b/core/src/main/res/values-zh/strings.xml
@@ -235,6 +235,7 @@
启用
语言
使用24小时格式
+ 使用月/日日期格式
使用比例分钟格式
显示秒数
保持屏幕开启
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/AddDefaultRecordTypeTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/AddDefaultRecordTypeTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/AddDefaultRecordTypeTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/AddDefaultRecordTypeTest.kt
@@ -31,7 +31,17 @@
val name2 = "Work"
val color2 = ColorMapper.getAvailableColors()[10]
- tryAction { checkViewIsDisplayed(withText(coreR.string.running_records_types_empty)) }
+ tryAction {
+ checkViewIsDisplayed(
+ withText(
+ getString(
+ coreR.string.running_records_types_empty,
+ getString(coreR.string.running_records_add_type),
+ getString(coreR.string.running_records_add_default),
+ ),
+ ),
+ )
+ }
checkViewIsDisplayed(withText(coreR.string.running_records_add_type))
checkViewIsDisplayed(withText(coreR.string.running_records_add_default))
@@ -92,8 +102,8 @@
allOf(
withId(baseR.id.viewRecordTypeItem),
withCardColor(color),
- hasDescendant(withText(name))
- )
+ hasDescendant(withText(name)),
+ ),
)
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTest.kt
@@ -206,7 +206,7 @@
// Open tag chooser
clickOnViewWithId(changeRecordR.id.fieldChangeRecordCategory)
- checkViewIsDisplayed(withText(coreR.string.change_record_categories_empty))
+ checkViewIsDisplayed(withText(coreR.string.categories_record_hint))
}
@Test
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTypeTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTypeTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTypeTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/AddRecordTypeTest.kt
@@ -4,9 +4,10 @@
import androidx.test.espresso.Espresso.closeSoftKeyboard
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.Espresso.pressBack
-import androidx.test.espresso.assertion.PositionAssertions.isCompletelyAbove
import androidx.test.espresso.assertion.PositionAssertions.isCompletelyBelow
+import androidx.test.espresso.assertion.PositionAssertions.isTopAlignedWith
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
+import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withParent
import androidx.test.espresso.matcher.ViewMatchers.withText
@@ -17,6 +18,7 @@
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
+import com.example.util.simpletimetracker.utils.clickOnView
import com.example.util.simpletimetracker.utils.clickOnViewWithId
import com.example.util.simpletimetracker.utils.clickOnViewWithText
import com.example.util.simpletimetracker.utils.collapseToolbar
@@ -78,7 +80,7 @@
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeColor, withCardColor(firstColor))
checkPreviewUpdated(withCardColor(firstColor))
checkViewIsDisplayed(
- allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(firstColor)))
+ allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(firstColor))),
)
// Selecting color
@@ -86,7 +88,7 @@
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeColor, withCardColor(lastColor))
checkPreviewUpdated(withCardColor(lastColor))
checkViewIsDisplayed(
- allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(lastColor)))
+ allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(lastColor))),
)
// Open icon chooser
@@ -113,36 +115,38 @@
checkViewIsDisplayed(withText(categoryName1))
checkViewIsDisplayed(withText(categoryName2))
checkViewIsDisplayed(withText(coreR.string.nothing_selected))
- checkViewIsDisplayed(withId(changeRecordTypeR.id.viewDividerItem))
- onView(withText(categoryName1)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.nothing_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(coreR.string.nothing_selected)))
+ onView(withText(categoryName2)).check(isTopAlignedWith(withText(categoryName1)))
// Selecting category
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName1))
checkViewIsDisplayed(withText(coreR.string.something_selected))
- checkViewIsDisplayed(withId(changeRecordTypeR.id.viewDividerItem))
- onView(withText(categoryName1)).check(isCompletelyAbove(withId(changeRecordTypeR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(categoryName1)))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName2))
checkViewIsDisplayed(withText(coreR.string.something_selected))
- checkViewIsDisplayed(withId(changeRecordTypeR.id.viewDividerItem))
- checkViewIsDisplayed(withText(categoryName1))
- checkViewIsDisplayed(withText(categoryName2))
+ onView(withText(categoryName2)).check(isTopAlignedWith(withText(categoryName1)))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName1))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName2))
checkViewIsDisplayed(withText(coreR.string.nothing_selected))
- checkViewIsDisplayed(withId(changeRecordTypeR.id.viewDividerItem))
- onView(withText(categoryName1)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.nothing_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(coreR.string.nothing_selected)))
+ onView(withText(categoryName2)).check(isTopAlignedWith(withText(categoryName1)))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName1))
clickOnViewWithText(coreR.string.category_hint)
// Selecting goal time
clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
- clickOnViewWithId(changeRecordTypeR.id.groupChangeRecordTypeSessionGoalTime)
+ clickOnView(
+ allOf(
+ isDescendantOfA(withId(changeRecordTypeR.id.layoutChangeRecordTypeGoalSession)),
+ withId(changeRecordTypeR.id.fieldChangeRecordTypeGoalDuration),
+ ),
+ )
clickOnViewWithId(dialogsR.id.tvNumberKeyboard1)
clickOnViewWithId(dialogsR.id.tvNumberKeyboard0)
clickOnViewWithId(dialogsR.id.tvNumberKeyboard0)
@@ -163,9 +167,8 @@
longClickOnView(withText(name))
clickOnViewWithText(coreR.string.category_hint)
checkViewIsDisplayed(withText(coreR.string.something_selected))
- checkViewIsDisplayed(withId(changeRecordTypeR.id.viewDividerItem))
- onView(withText(categoryName1)).check(isCompletelyAbove(withId(changeRecordTypeR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(changeRecordTypeR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(categoryName1)))
}
@Test
@@ -176,15 +179,16 @@
clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
checkViewIsDisplayed(
allOf(
- withId(changeRecordTypeR.id.tvChangeRecordTypeSessionGoalTime),
- withText(coreR.string.change_record_type_goal_time_disabled)
- )
+ isDescendantOfA(withId(changeRecordTypeR.id.layoutChangeRecordTypeGoalSession)),
+ withId(changeRecordTypeR.id.tvChangeRecordTypeGoalDurationValue),
+ withText(coreR.string.change_record_type_goal_time_disabled),
+ ),
)
clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
// Open category chooser
clickOnViewWithText(coreR.string.category_hint)
- checkViewIsDisplayed(withText(coreR.string.change_record_type_categories_empty))
+ checkViewIsDisplayed(withText(coreR.string.categories_record_type_hint))
}
private fun checkPreviewUpdated(matcher: Matcher) =
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRecordTypeTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRecordTypeTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRecordTypeTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRecordTypeTest.kt
@@ -65,13 +65,13 @@
clickOnViewWithText(coreR.string.change_record_type_color_hint)
checkViewIsDisplayed(
- allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(firstColor)))
+ allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(firstColor))),
)
scrollRecyclerToView(changeRecordTypeR.id.rvChangeRecordTypeColor, withCardColor(lastColor))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeColor, withCardColor(lastColor))
checkPreviewUpdated(withCardColor(lastColor))
checkViewIsDisplayed(
- allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(lastColor)))
+ allOf(withId(changeRecordTypeR.id.viewColorItemSelected), withParent(withCardColor(lastColor))),
)
clickOnViewWithText(coreR.string.change_record_type_color_hint)
@@ -94,8 +94,8 @@
clickOnView(
allOf(
isDescendantOfA(withId(changeRecordTypeR.id.btnChangeRecordTypeIconSwitch)),
- withText(coreR.string.change_record_type_icon_emoji_hint)
- )
+ withText(coreR.string.change_record_type_icon_emoji_hint),
+ ),
)
clickOnViewWithText(firstEmoji)
@@ -123,14 +123,14 @@
withId(changeRecordTypeR.id.viewRunningRecordItem),
withCardColor(firstColor),
hasDescendant(withText(name)),
- hasDescendant(withTag(firstIcon))
- )
+ hasDescendant(withTag(firstIcon)),
+ ),
)
checkViewDoesNotExist(withSubstring(getString(coreR.string.change_record_type_session_goal_time).lowercase()))
// Change activity
longClickOnView(
- allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRecordTypeItem)), withText(name))
+ allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRecordTypeItem)), withText(name)),
)
typeTextIntoView(changeRecordTypeR.id.etChangeRecordTypeName, newName)
@@ -147,7 +147,12 @@
clickOnViewWithId(changeRecordTypeR.id.fieldChangeRecordTypeIcon)
clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
- clickOnViewWithId(changeRecordTypeR.id.groupChangeRecordTypeSessionGoalTime)
+ clickOnView(
+ allOf(
+ isDescendantOfA(withId(changeRecordTypeR.id.layoutChangeRecordTypeGoalSession)),
+ withId(changeRecordTypeR.id.fieldChangeRecordTypeGoalDuration),
+ ),
+ )
clickOnViewWithId(dialogsR.id.tvNumberKeyboard1)
clickOnViewWithId(dialogsR.id.tvNumberKeyboard0)
clickOnViewWithId(dialogsR.id.tvNumberKeyboard0)
@@ -161,14 +166,14 @@
// Record running record updated
tryAction {
checkViewIsDisplayed(
- allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRunningRecordItem)), withText(newName))
+ allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRunningRecordItem)), withText(newName)),
)
}
checkViewIsDisplayed(
- allOf(withId(changeRecordTypeR.id.viewRunningRecordItem), withCardColor(lastColor))
+ allOf(withId(changeRecordTypeR.id.viewRunningRecordItem), withCardColor(lastColor)),
)
checkViewIsDisplayed(
- allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRunningRecordItem)), withTag(lastIcon))
+ allOf(isDescendantOfA(withId(changeRecordTypeR.id.viewRunningRecordItem)), withTag(lastIcon)),
)
checkViewIsDisplayed(withSubstring(getString(coreR.string.change_record_type_session_goal_time).lowercase()))
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRunningRecordTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRunningRecordTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRunningRecordTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/ChangeRunningRecordTest.kt
@@ -16,6 +16,7 @@
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.example.util.simpletimetracker.core.extension.setToStartOfDay
+import com.example.util.simpletimetracker.domain.model.RecordTypeGoal
import com.example.util.simpletimetracker.feature_dialogs.dateTime.CustomTimePicker
import com.example.util.simpletimetracker.utils.BaseUiTest
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
@@ -59,7 +60,18 @@
val fullName2 = "$name2 - $tag2"
// Add activities
- testUtils.addActivity(name = name1, color = firstColor, icon = firstIcon, goalTime = firstGoalTime)
+ testUtils.addActivity(
+ name = name1,
+ color = firstColor,
+ icon = firstIcon,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Session,
+ type = RecordTypeGoal.Type.Duration(firstGoalTime),
+ ),
+ ),
+ )
testUtils.addActivity(name = name2, color = lastColor, text = lastEmoji)
testUtils.addRecordTag(tag2, name2)
@@ -68,7 +80,7 @@
val currentTime = System.currentTimeMillis()
var timeStartedTimestamp = currentTime
var timeStarted = timeMapper.formatDateTime(
- time = timeStartedTimestamp, useMilitaryTime = true, showSeconds = false
+ time = timeStartedTimestamp, useMilitaryTime = true, showSeconds = false,
)
var timeStartedPreview = timeStartedTimestamp
.let { timeMapper.formatTime(time = it, useMilitaryTime = true, showSeconds = false) }
@@ -80,7 +92,7 @@
icon = firstIcon,
timeStarted = timeStartedPreview,
goalTime = goalString,
- comment = ""
+ comment = "",
)
// Open edit view
@@ -151,8 +163,8 @@
checkViewIsNotDisplayed(
allOf(
isDescendantOfA(withId(changeRunningRecordR.id.previewChangeRunningRecord)),
- withId(changeRecordR.id.tvRunningRecordItemGoalTime)
- )
+ withId(changeRecordR.id.tvRunningRecordItemGoalTime),
+ ),
)
// Save
@@ -161,7 +173,7 @@
// Record updated
tryAction {
checkViewDoesNotExist(
- allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(name1))
+ allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(name1)),
)
}
checkRunningRecordDisplayed(
@@ -169,7 +181,7 @@
color = lastColor,
text = lastEmoji,
timeStarted = timeStartedPreview,
- comment = comment
+ comment = comment,
)
}
@@ -279,11 +291,11 @@
checkAfterTimeAdjustment(timeStarted = "23:30")
clickOnViewWithText(coreR.string.time_now)
checkPreviewUpdated(
- hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimer), withText("0$secondString")))
+ hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimer), withText("0$secondString"))),
)
clickOnViewWithText("+30")
checkPreviewUpdated(
- hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimer), withText("0$secondString")))
+ hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimer), withText("0$secondString"))),
)
}
@@ -309,7 +321,7 @@
// No last comments
tryAction { clickOnViewWithText(nameNoComments) }
longClickOnView(
- allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(nameNoComments))
+ allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(nameNoComments)),
)
clickOnViewWithText(coreR.string.change_record_comment_field)
@@ -405,14 +417,13 @@
tryAction {
scrollRecyclerToView(
runningRecordsR.id.rvRunningRecordsList,
- allOf(withId(changeRecordR.id.viewRunningRecordItem), hasDescendant(withText(typeName)))
+ allOf(withId(changeRecordR.id.viewRunningRecordItem), hasDescendant(withText(typeName))),
)
}
}
val sessionGoal = getString(coreR.string.change_record_type_session_goal_time).lowercase()
val dailyGoal = getString(coreR.string.change_record_type_daily_goal_time).lowercase()
- val weeklyGoal = getString(coreR.string.change_record_type_weekly_goal_time).lowercase()
val currentTime = Calendar.getInstance().timeInMillis
val noGoals = "noGoals"
@@ -420,29 +431,52 @@
val sessionGoalFinished = "sessionGoalFinished"
val dailyGoalNotFinished = "dailyGoalNotFinished"
val dailyGoalFinished = "dailyGoalFinished"
- val weeklyGoalNotFinished = "weeklyGoalNotFinished"
- val weeklyGoalFinished = "weeklyGoalFinished"
- val allGoalsNotFinished = "allGoalsNotFinished"
- val allGoalsFinished = "allGoalsFinished"
- val allGoalsSessionFinished = "allGoalsSessionFinished"
- val allGoalsDailyFinished = "allGoalsDailyFinished"
- val allGoalsWeeklyFinished = "allGoalsWeeklyFinished"
+ val weeklyGoalPresent = "weeklyGoalPresent"
+ val monthlyGoalPresent = "monthlyGoalPresent"
+ val allGoalsPresent = "allGoalsPresent"
// Add data
testUtils.addActivity(noGoals)
testUtils.addRunningRecord(noGoals)
- testUtils.addActivity(sessionGoalNotFinished, goalTime = TimeUnit.MINUTES.toSeconds(10))
+ testUtils.addActivity(
+ sessionGoalNotFinished,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Session,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
testUtils.addRecord(sessionGoalNotFinished)
testUtils.addRunningRecord(sessionGoalNotFinished)
- testUtils.addActivity(sessionGoalFinished, goalTime = TimeUnit.MINUTES.toSeconds(10))
+ testUtils.addActivity(
+ sessionGoalFinished,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Session,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
testUtils.addRunningRecord(
typeName = sessionGoalFinished,
timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
)
- testUtils.addActivity(dailyGoalNotFinished, dailyGoalTime = TimeUnit.MINUTES.toSeconds(10))
+ testUtils.addActivity(
+ dailyGoalNotFinished,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Daily,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
testUtils.addRecord(
typeName = dailyGoalNotFinished,
timeStarted = currentTime - TimeUnit.MINUTES.toMillis(5),
@@ -450,7 +484,16 @@
)
testUtils.addRunningRecord(dailyGoalNotFinished)
- testUtils.addActivity(dailyGoalFinished, dailyGoalTime = TimeUnit.MINUTES.toSeconds(10))
+ testUtils.addActivity(
+ dailyGoalFinished,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Daily,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
testUtils.addRecord(
typeName = dailyGoalFinished,
timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
@@ -458,224 +501,108 @@
)
testUtils.addRunningRecord(dailyGoalFinished)
- testUtils.addActivity(weeklyGoalNotFinished, weeklyGoalTime = TimeUnit.MINUTES.toSeconds(10))
+ testUtils.addActivity(
+ weeklyGoalPresent,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Weekly,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
+ testUtils.addRunningRecord(weeklyGoalPresent)
+
+ testUtils.addActivity(
+ monthlyGoalPresent,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Monthly,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ ),
+ )
+ testUtils.addRunningRecord(monthlyGoalPresent)
+
+ testUtils.addActivity(
+ name = allGoalsPresent,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Session,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(10)),
+ ),
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Daily,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(20)),
+ ),
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Weekly,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(30)),
+ ),
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Monthly,
+ type = RecordTypeGoal.Type.Duration(TimeUnit.MINUTES.toSeconds(40)),
+ ),
+ ),
+ )
testUtils.addRecord(
- typeName = weeklyGoalNotFinished,
+ typeName = allGoalsPresent,
timeStarted = currentTime - TimeUnit.MINUTES.toMillis(5),
timeEnded = currentTime,
)
- testUtils.addRunningRecord(weeklyGoalNotFinished)
-
- testUtils.addActivity(weeklyGoalFinished, weeklyGoalTime = TimeUnit.MINUTES.toSeconds(10))
- testUtils.addRecord(
- typeName = weeklyGoalFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- timeEnded = currentTime,
- )
- testUtils.addRunningRecord(weeklyGoalFinished)
-
- testUtils.addActivity(
- name = allGoalsNotFinished,
- goalTime = TimeUnit.MINUTES.toSeconds(10),
- dailyGoalTime = TimeUnit.MINUTES.toSeconds(20),
- weeklyGoalTime = TimeUnit.MINUTES.toSeconds(30),
- )
- testUtils.addRecord(
- typeName = allGoalsNotFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(5),
- timeEnded = currentTime,
- )
- testUtils.addRunningRecord(allGoalsNotFinished)
-
- testUtils.addActivity(
- name = allGoalsFinished,
- goalTime = TimeUnit.MINUTES.toSeconds(10),
- dailyGoalTime = TimeUnit.MINUTES.toSeconds(10),
- weeklyGoalTime = TimeUnit.MINUTES.toSeconds(10),
- )
- testUtils.addRecord(
- typeName = allGoalsFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- timeEnded = currentTime,
- )
- testUtils.addRunningRecord(
- typeName = allGoalsFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- )
-
- testUtils.addActivity(
- name = allGoalsSessionFinished,
- goalTime = TimeUnit.MINUTES.toSeconds(10),
- dailyGoalTime = TimeUnit.MINUTES.toSeconds(20),
- weeklyGoalTime = TimeUnit.MINUTES.toSeconds(30),
- )
- testUtils.addRunningRecord(
- typeName = allGoalsSessionFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- )
-
- testUtils.addActivity(
- name = allGoalsDailyFinished,
- goalTime = TimeUnit.MINUTES.toSeconds(20),
- dailyGoalTime = TimeUnit.MINUTES.toSeconds(10),
- weeklyGoalTime = TimeUnit.MINUTES.toSeconds(30),
- )
- testUtils.addRunningRecord(
- typeName = allGoalsDailyFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- )
-
- testUtils.addActivity(
- name = allGoalsWeeklyFinished,
- goalTime = TimeUnit.MINUTES.toSeconds(20),
- dailyGoalTime = TimeUnit.MINUTES.toSeconds(30),
- weeklyGoalTime = TimeUnit.MINUTES.toSeconds(10),
- )
- testUtils.addRunningRecord(
- typeName = allGoalsWeeklyFinished,
- timeStarted = currentTime - TimeUnit.MINUTES.toMillis(10),
- )
+ testUtils.addRunningRecord(allGoalsPresent)
// No goals
Thread.sleep(1000)
scrollTo(noGoals)
checkNoGoal(noGoals, changeRecordR.id.tvRunningRecordItemGoalTime)
checkGoalMark(noGoals, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkNoGoal(noGoals, changeRecordR.id.tvRunningRecordItemGoalTime2)
- checkGoalMark(noGoals, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkNoGoal(noGoals, changeRecordR.id.tvRunningRecordItemGoalTime3)
- checkGoalMark(noGoals, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
// Session goal not finished
scrollTo(sessionGoalNotFinished)
checkGoal(
- sessionGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$sessionGoal 9$minuteString"
+ sessionGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$sessionGoal 9$minuteString",
)
checkGoalMark(sessionGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkNoGoal(sessionGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime2)
- checkGoalMark(sessionGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkNoGoal(sessionGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime3)
- checkGoalMark(sessionGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
// Session goal finished
scrollTo(sessionGoalFinished)
checkGoal(sessionGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime, sessionGoal)
checkGoalMark(sessionGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = true)
- checkNoGoal(sessionGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime2)
- checkGoalMark(sessionGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkNoGoal(sessionGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime3)
- checkGoalMark(sessionGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
// Daily goal not finished
scrollTo(dailyGoalNotFinished)
- checkNoGoal(dailyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime)
- checkGoalMark(dailyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
checkGoal(
- dailyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, "$dailyGoal 4$minuteString"
+ dailyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$dailyGoal 4$minuteString",
)
- checkGoalMark(dailyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkNoGoal(dailyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime3)
- checkGoalMark(dailyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
+ checkGoalMark(dailyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
// Daily goal finished
scrollTo(dailyGoalFinished)
- checkNoGoal(dailyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime)
- checkGoalMark(dailyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkGoal(dailyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, dailyGoal)
- checkGoalMark(dailyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = true)
- checkNoGoal(dailyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime3)
- checkGoalMark(dailyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
+ checkGoal(dailyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime, dailyGoal)
+ checkGoalMark(dailyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = true)
- // Weekly goal not finished
- scrollTo(weeklyGoalNotFinished)
- checkNoGoal(weeklyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime)
- checkGoalMark(weeklyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkNoGoal(weeklyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime2)
- checkGoalMark(weeklyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkGoal(
- weeklyGoalNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, "$weeklyGoal 4$minuteString"
- )
- checkGoalMark(weeklyGoalNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
+ // Weekly goal present
+ scrollTo(weeklyGoalPresent)
+ checkNoGoal(weeklyGoalPresent, changeRecordR.id.tvRunningRecordItemGoalTime)
+ checkGoalMark(weeklyGoalPresent, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- // Weekly goal finished
- scrollTo(weeklyGoalFinished)
- checkNoGoal(weeklyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime)
- checkGoalMark(weeklyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkNoGoal(weeklyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime2)
- checkGoalMark(weeklyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkGoal(weeklyGoalFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, weeklyGoal)
- checkGoalMark(weeklyGoalFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = true)
+ // Monthly goal present
+ scrollTo(monthlyGoalPresent)
+ checkNoGoal(monthlyGoalPresent, changeRecordR.id.tvRunningRecordItemGoalTime)
+ checkGoalMark(monthlyGoalPresent, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
// All goals, all not finished
- scrollTo(allGoalsNotFinished)
+ scrollTo(allGoalsPresent)
checkGoal(
- allGoalsNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$sessionGoal 9$minuteString"
+ allGoalsPresent, changeRecordR.id.tvRunningRecordItemGoalTime, "$dailyGoal 14$minuteString",
)
- checkGoalMark(allGoalsNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkGoal(
- allGoalsNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, "$dailyGoal 14$minuteString"
- )
- checkGoalMark(allGoalsNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkGoal(
- allGoalsNotFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, "$weeklyGoal 24$minuteString"
- )
- checkGoalMark(allGoalsNotFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
-
- // All goals, all finished
- scrollTo(allGoalsFinished)
- checkGoal(allGoalsFinished, changeRecordR.id.tvRunningRecordItemGoalTime, sessionGoal)
- checkGoalMark(allGoalsFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = true)
- checkGoal(allGoalsFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, dailyGoal)
- checkGoalMark(allGoalsFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = true)
- checkGoal(allGoalsFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, weeklyGoal)
- checkGoalMark(allGoalsFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = true)
-
- // All goals, session finished
- scrollTo(allGoalsSessionFinished)
- checkGoal(allGoalsSessionFinished, changeRecordR.id.tvRunningRecordItemGoalTime, sessionGoal)
- checkGoalMark(allGoalsSessionFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = true)
- checkGoal(
- allGoalsSessionFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, "$dailyGoal 9$minuteString"
- )
- checkGoalMark(
- allGoalsSessionFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false
- )
- checkGoal(
- allGoalsSessionFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, "$weeklyGoal 19$minuteString"
- )
- checkGoalMark(
- allGoalsSessionFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false
- )
-
- // All goals, daily finished
- scrollTo(allGoalsDailyFinished)
- checkGoal(
- allGoalsDailyFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$sessionGoal 9$minuteString"
- )
- checkGoalMark(allGoalsDailyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkGoal(
- allGoalsDailyFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, dailyGoal
- )
- checkGoalMark(allGoalsDailyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = true)
- checkGoal(
- allGoalsDailyFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, "$weeklyGoal 19$minuteString"
- )
- checkGoalMark(allGoalsDailyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = false)
-
- // All goals, weekly finished
- scrollTo(allGoalsWeeklyFinished)
- checkGoal(
- allGoalsWeeklyFinished, changeRecordR.id.tvRunningRecordItemGoalTime, "$sessionGoal 9$minuteString"
- )
- checkGoalMark(allGoalsWeeklyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
- checkGoal(
- allGoalsWeeklyFinished, changeRecordR.id.tvRunningRecordItemGoalTime2, "$dailyGoal 19$minuteString"
- )
- checkGoalMark(allGoalsWeeklyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck2, isVisible = false)
- checkGoal(
- allGoalsWeeklyFinished, changeRecordR.id.tvRunningRecordItemGoalTime3, weeklyGoal
- )
- checkGoalMark(allGoalsWeeklyFinished, changeRecordR.id.ivRunningRecordItemGoalTimeCheck3, isVisible = true)
+ checkGoalMark(allGoalsPresent, changeRecordR.id.ivRunningRecordItemGoalTimeCheck, isVisible = false)
}
@Test
@@ -709,7 +636,7 @@
withId(changeRecordR.id.viewRunningRecordItem),
hasDescendant(withText(name1)),
hasDescendant(withText(dayTotal)),
- )
+ ),
)
}
@@ -719,7 +646,7 @@
allOf(
withId(changeRecordR.id.viewRunningRecordItem),
hasDescendant(withText(name2)),
- )
+ ),
)
}
tryAction {
@@ -728,14 +655,14 @@
withId(changeRecordR.id.viewRunningRecordItem),
hasDescendant(withText(name2)),
hasDescendant(withSubstring(day)),
- )
+ ),
)
}
}
private fun checkAfterTimeAdjustment(timeStarted: String) {
checkPreviewUpdated(
- hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimeStarted), withText(timeStarted)))
+ hasDescendant(allOf(withId(changeRecordR.id.tvRunningRecordItemTimeStarted), withText(timeStarted))),
)
checkViewIsDisplayed(allOf(withId(changeRecordR.id.tvChangeRecordTimeStarted), withSubstring(timeStarted)))
}
@@ -759,17 +686,17 @@
}
if (icon != null) {
checkViewIsDisplayed(
- allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withTag(icon))
+ allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withTag(icon)),
)
}
if (text != null) {
checkViewIsDisplayed(
- allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(text))
+ allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(text)),
)
}
if (timeStarted != null) {
checkViewIsDisplayed(
- allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(timeStarted))
+ allOf(isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)), withText(timeStarted)),
)
}
if (!goalTime.isNullOrEmpty()) {
@@ -777,22 +704,22 @@
allOf(
isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)),
withSubstring(goalTime),
- )
+ ),
)
} else {
checkViewIsNotDisplayed(
allOf(
isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)),
- withId(changeRecordR.id.tvRunningRecordItemGoalTime)
- )
+ withId(changeRecordR.id.tvRunningRecordItemGoalTime),
+ ),
)
}
if (!comment.isNullOrEmpty()) {
checkViewIsDisplayed(
allOf(
isDescendantOfA(withId(changeRecordR.id.viewRunningRecordItem)),
- withText(comment)
- )
+ withText(comment),
+ ),
)
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/MainScreenEmptyTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/MainScreenEmptyTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/MainScreenEmptyTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/MainScreenEmptyTest.kt
@@ -40,7 +40,17 @@
fun mainScreenEmpty() {
val name = "Test"
- tryAction { checkViewIsDisplayed(withText(coreR.string.running_records_types_empty)) }
+ tryAction {
+ checkViewIsDisplayed(
+ withText(
+ getString(
+ coreR.string.running_records_types_empty,
+ getString(coreR.string.running_records_add_type),
+ getString(coreR.string.running_records_add_default),
+ ),
+ ),
+ )
+ }
checkViewDoesNotExist(withText(coreR.string.running_records_empty))
// Add activity
@@ -73,8 +83,8 @@
allOf(
withId(baseR.id.viewRecordItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
checkViewIsDisplayed(allOf(withText(coreR.string.records_hint), isCompletelyDisplayed()))
clickOnViewWithId(recordsR.id.btnRecordsContainerPrevious)
@@ -83,13 +93,13 @@
withId(baseR.id.viewRecordItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
hasDescendant(withSubstring("24$hourString 0$minuteString")),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
checkViewIsDisplayed(allOf(withText(coreR.string.records_hint), isCompletelyDisplayed()))
clickOnViewWithId(recordsR.id.btnRecordsContainerNext)
clickOnViewWithId(recordsR.id.btnRecordsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.records_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(coreR.string.records_hint), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
}
@@ -127,8 +137,8 @@
withId(baseR.id.viewStatisticsItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
hasDescendant(withSubstring("100%")),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
// Back to day range
@@ -170,8 +180,8 @@
withId(baseR.id.viewStatisticsItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
hasDescendant(withSubstring("100%")),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
// Back to day range
@@ -213,8 +223,8 @@
withId(baseR.id.viewStatisticsItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
hasDescendant(withSubstring("100%")),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
// Back to day range
@@ -229,10 +239,10 @@
withId(baseR.id.viewStatisticsItem),
hasDescendant(withText(coreR.string.untracked_time_name)),
hasDescendant(withSubstring("100%")),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordTypeCategoryTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordTypeCategoryTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordTypeCategoryTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordTypeCategoryTest.kt
@@ -2,9 +2,7 @@
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.Espresso.pressBack
-import androidx.test.espresso.assertion.PositionAssertions.isCompletelyAbove
import androidx.test.espresso.assertion.PositionAssertions.isCompletelyBelow
-import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.example.util.simpletimetracker.utils.BaseUiTest
@@ -16,7 +14,6 @@
import org.junit.Test
import org.junit.runner.RunWith
import com.example.util.simpletimetracker.core.R as coreR
-import com.example.util.simpletimetracker.feature_base_adapter.R as baseR
import com.example.util.simpletimetracker.feature_change_category.R as changeCategoryR
import com.example.util.simpletimetracker.feature_change_record_type.R as changeRecordTypeR
@@ -49,25 +46,25 @@
longClickOnView(withText(categoryName1))
clickOnViewWithText(coreR.string.change_category_types_hint)
- onView(withText(typeName1)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(typeName1)))
clickOnRecyclerItem(changeCategoryR.id.rvChangeCategoryType, withText(typeName1))
clickOnRecyclerItem(changeCategoryR.id.rvChangeCategoryType, withText(typeName2))
- onView(withText(typeName1)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(typeName2)))
clickOnViewWithText(coreR.string.change_category_save)
// Check second category
longClickOnView(withText(categoryName2))
clickOnViewWithText(coreR.string.change_category_types_hint)
- onView(withText(typeName1)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(typeName2)))
clickOnRecyclerItem(changeCategoryR.id.rvChangeCategoryType, withText(typeName1))
clickOnRecyclerItem(changeCategoryR.id.rvChangeCategoryType, withText(typeName2))
- onView(withText(typeName1)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(typeName1)))
clickOnViewWithText(coreR.string.change_category_save)
pressBack()
@@ -76,26 +73,26 @@
NavUtils.openRunningRecordsScreen()
longClickOnView(withText(typeName1))
clickOnViewWithText(coreR.string.category_hint)
- onView(withText(categoryName1)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(categoryName2)))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName1))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName2))
- onView(withText(categoryName1)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(categoryName1)))
clickOnViewWithText(coreR.string.change_record_type_save)
// Check second activity
longClickOnView(withText(typeName2))
clickOnViewWithText(coreR.string.category_hint)
- onView(withText(categoryName1)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(categoryName1)))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName1))
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName2))
- onView(withText(categoryName1)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
- onView(withText(categoryName2)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
+ onView(withText(categoryName2)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(categoryName1)).check(isCompletelyBelow(withText(categoryName2)))
clickOnViewWithText(coreR.string.change_record_type_save)
@@ -105,15 +102,15 @@
longClickOnView(withText(categoryName1))
clickOnViewWithText(coreR.string.change_category_types_hint)
- onView(withText(typeName1)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(typeName1)))
pressBack()
// Check second category
longClickOnView(withText(categoryName2))
clickOnViewWithText(coreR.string.change_category_types_hint)
- onView(withText(typeName1)).check(isCompletelyBelow(withId(baseR.id.viewDividerItem)))
- onView(withText(typeName2)).check(isCompletelyAbove(withId(baseR.id.viewDividerItem)))
+ onView(withText(typeName2)).check(isCompletelyBelow(withText(coreR.string.something_selected)))
+ onView(withText(typeName1)).check(isCompletelyBelow(withText(typeName2)))
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsAllTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsAllTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsAllTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsAllTest.kt
@@ -358,6 +358,6 @@
checkViewDoesNotExist(record1)
checkViewDoesNotExist(record2)
checkViewDoesNotExist(record3)
- checkViewIsDisplayed(withText(coreR.string.records_empty))
+ checkViewIsDisplayed(withText(coreR.string.no_data))
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsRangesTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsRangesTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsRangesTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/RecordsRangesTest.kt
@@ -76,9 +76,9 @@
checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
clickOnViewWithId(recordsR.id.btnRecordsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.records_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
clickOnViewWithId(recordsR.id.btnRecordsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.records_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
}
@Test
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
@@ -62,7 +62,7 @@
class SettingsTest : BaseUiTest() {
@Test
- fun showUntrackedSetting() {
+ fun showUntrackedInRecords() {
val name = "Test"
val color = firstColor
val icon = firstIcon
@@ -72,41 +72,92 @@
val before = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)
testUtils.addRecord(name, timeStarted = before, timeEnded = before)
- // Untracked is not shown
- NavUtils.openRecordsScreen()
- checkViewDoesNotExist(
- allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()),
- )
-
- // Change setting
- NavUtils.openSettingsScreen()
- NavUtils.openSettingsDisplay()
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).perform(nestedScrollTo())
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).check(matches(isNotChecked()))
- unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntracked))
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).check(matches(isChecked()))
-
// Untracked is shown
NavUtils.openRecordsScreen()
checkViewIsDisplayed(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
- // Add record
- NavUtils.addRecord(name)
- checkViewIsDisplayed(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
-
// Change setting
NavUtils.openSettingsScreen()
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).perform(nestedScrollTo())
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).check(matches(isChecked()))
- unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntracked))
- onView(withId(settingsR.id.checkboxSettingsShowUntracked)).check(matches(isNotChecked()))
+ NavUtils.openSettingsDisplay()
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).perform(nestedScrollTo())
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).check(matches(isChecked()))
+ unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords))
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).check(matches(isNotChecked()))
// Untracked is not shown
NavUtils.openRecordsScreen()
checkViewDoesNotExist(
allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()),
)
+
+ // Add record
+ NavUtils.addRecord(name)
+ checkViewDoesNotExist(
+ allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()),
+ )
+ checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
+
+ // Change setting
+ NavUtils.openSettingsScreen()
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).perform(nestedScrollTo())
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).check(matches(isNotChecked()))
+ unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords))
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInRecords)).check(matches(isChecked()))
+
+ // Untracked is shown
+ NavUtils.openRecordsScreen()
+ checkViewIsDisplayed(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
+ }
+
+ @Test
+ fun showUntrackedInStatistics() {
+ val name = "Test"
+ val color = firstColor
+ val icon = firstIcon
+
+ // Add activity
+ testUtils.addActivity(name = name, color = color, icon = icon)
+ val before = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)
+ testUtils.addRecord(name, timeStarted = before, timeEnded = before)
+
+ // Untracked is shown
+ NavUtils.openStatisticsScreen()
+ checkViewIsDisplayed(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
+
+ // Change setting
+ NavUtils.openSettingsScreen()
+ NavUtils.openSettingsDisplay()
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).perform(nestedScrollTo())
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).check(matches(isChecked()))
+ unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics))
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).check(matches(isNotChecked()))
+
+ // Untracked is not shown
+ NavUtils.openStatisticsScreen()
+ checkViewDoesNotExist(
+ allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()),
+ )
+
+ // Add record
+ NavUtils.openRecordsScreen()
+ NavUtils.addRecord(name)
+ NavUtils.openStatisticsScreen()
+ checkViewDoesNotExist(
+ allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()),
+ )
+ checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
+
+ // Change setting
+ NavUtils.openSettingsScreen()
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).perform(nestedScrollTo())
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).check(matches(isNotChecked()))
+ unconstrainedClickOnView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics))
+ onView(withId(settingsR.id.checkboxSettingsShowUntrackedInStatistics)).check(matches(isChecked()))
+
+ // Untracked is shown
+ NavUtils.openStatisticsScreen()
+ checkViewIsDisplayed(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
checkViewIsDisplayed(allOf(withText(name), isCompletelyDisplayed()))
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/StartRecordTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/StartRecordTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/StartRecordTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/StartRecordTest.kt
@@ -7,6 +7,7 @@
import androidx.test.espresso.matcher.ViewMatchers.withSubstring
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.example.util.simpletimetracker.domain.model.RecordTypeGoal
import com.example.util.simpletimetracker.utils.BaseUiTest
import com.example.util.simpletimetracker.utils.NavUtils
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
@@ -39,7 +40,18 @@
val firstGoalTime = TimeUnit.MINUTES.toSeconds(10)
// Add activities
- testUtils.addActivity(name = name, color = firstColor, icon = firstIcon, goalTime = firstGoalTime)
+ testUtils.addActivity(
+ name = name,
+ color = firstColor,
+ icon = firstIcon,
+ goals = listOf(
+ RecordTypeGoal(
+ typeId = 0,
+ range = RecordTypeGoal.Range.Session,
+ type = RecordTypeGoal.Type.Duration(firstGoalTime),
+ ),
+ ),
+ )
testUtils.addActivity(name = newName, color = lastColor, icon = lastIcon)
Thread.sleep(1000)
@@ -56,8 +68,8 @@
hasDescendant(withText(name)),
hasDescendant(withTag(firstIcon)),
hasDescendant(withText(timeStarted)),
- hasDescendant(withSubstring(goalString))
- )
+ hasDescendant(withSubstring(goalString)),
+ ),
)
// Start timer
@@ -70,57 +82,57 @@
withCardColor(lastColor),
hasDescendant(withText(newName)),
hasDescendant(withTag(lastIcon)),
- hasDescendant(withText(timeStarted))
- )
+ hasDescendant(withText(timeStarted)),
+ ),
)
checkViewDoesNotExist(
allOf(
withId(baseR.id.viewRunningRecordItem),
hasDescendant(withText(newName)),
- hasDescendant(withSubstring(getString(coreR.string.change_record_type_session_goal_time)))
- )
+ hasDescendant(withSubstring(getString(coreR.string.change_record_type_session_goal_time))),
+ ),
)
// Stop timer by clicking on running record
NavUtils.openRunningRecordsScreen()
clickOnView(
allOf(
- isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(name), isCompletelyDisplayed()
- )
+ isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(name), isCompletelyDisplayed(),
+ ),
)
checkViewDoesNotExist(
allOf(
- isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(name), isCompletelyDisplayed()
- )
+ isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(name), isCompletelyDisplayed(),
+ ),
)
// Record is added
NavUtils.openRecordsScreen()
checkViewIsDisplayed(
allOf(
- withText(name), isDescendantOfA(withId(baseR.id.viewRecordItem)), isCompletelyDisplayed()
- )
+ withText(name), isDescendantOfA(withId(baseR.id.viewRecordItem)), isCompletelyDisplayed(),
+ ),
)
// Stop timer by clicking on record type
NavUtils.openRunningRecordsScreen()
clickOnView(
allOf(
- isDescendantOfA(withId(baseR.id.viewRecordTypeItem)), withText(newName), isCompletelyDisplayed()
- )
+ isDescendantOfA(withId(baseR.id.viewRecordTypeItem)), withText(newName), isCompletelyDisplayed(),
+ ),
)
checkViewDoesNotExist(
allOf(
- isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(newName), isCompletelyDisplayed()
- )
+ isDescendantOfA(withId(baseR.id.viewRunningRecordItem)), withText(newName), isCompletelyDisplayed(),
+ ),
)
// Record is added
NavUtils.openRecordsScreen()
checkViewIsDisplayed(
allOf(
- withText(newName), isDescendantOfA(withId(baseR.id.viewRecordItem)), isCompletelyDisplayed()
- )
+ withText(newName), isDescendantOfA(withId(baseR.id.viewRecordItem)), isCompletelyDisplayed(),
+ ),
)
}
@@ -152,8 +164,8 @@
withId(baseR.id.viewRecordItem),
hasDescendant(withText(name)),
hasDescendant(withText(comment)),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
clickOnView(allOf(withText(name), isCompletelyDisplayed()))
clickOnViewWithText(coreR.string.change_record_comment_field)
@@ -192,8 +204,8 @@
allOf(
withId(baseR.id.viewRecordItem),
hasDescendant(withText(fullName)),
- isCompletelyDisplayed()
- )
+ isCompletelyDisplayed(),
+ ),
)
clickOnView(allOf(withText(fullName), isCompletelyDisplayed()))
checkViewIsDisplayed(allOf(withId(changeRecordR.id.previewChangeRecord), hasDescendant(withText(fullName))))
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsFilterTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsFilterTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsFilterTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsFilterTest.kt
@@ -85,7 +85,7 @@
checkViewDoesNotExist(allOf(withText(name1), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(name2), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Show all
clickOnViewWithIdOnPager(statisticsR.id.btnStatisticsEmptyFilter)
@@ -106,7 +106,7 @@
checkViewDoesNotExist(allOf(withText(name1), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(name2), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
}
@Test
@@ -202,7 +202,7 @@
tryAction { checkViewDoesNotExist(allOf(withText(tag1), isCompletelyDisplayed())) }
checkViewDoesNotExist(allOf(withText(tag2), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Show all
clickOnViewWithIdOnPager(statisticsR.id.btnStatisticsEmptyFilter)
@@ -225,7 +225,7 @@
checkViewDoesNotExist(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(coreR.string.uncategorized_time_name), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
}
@Test
@@ -321,7 +321,7 @@
tryAction { checkViewDoesNotExist(allOf(withText(tag1), isCompletelyDisplayed())) }
checkViewDoesNotExist(allOf(withText(tag2), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Show all
clickOnViewWithIdOnPager(statisticsR.id.btnStatisticsEmptyFilter)
@@ -344,6 +344,6 @@
checkViewDoesNotExist(allOf(withText(coreR.string.untracked_time_name), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withText(coreR.string.change_record_untagged), isCompletelyDisplayed()))
checkViewDoesNotExist(allOf(withId(statisticsR.id.tvStatisticsInfoText), isCompletelyDisplayed()))
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
}
}
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsRangesTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsRangesTest.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsRangesTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/StatisticsRangesTest.kt
@@ -62,9 +62,9 @@
clickOnViewWithId(statisticsR.id.btnStatisticsContainerPrevious)
longClickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Switch to week range
clickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
@@ -75,9 +75,9 @@
clickOnViewWithId(statisticsR.id.btnStatisticsContainerPrevious)
longClickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Switch to month range
clickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
@@ -88,9 +88,9 @@
clickOnViewWithId(statisticsR.id.btnStatisticsContainerPrevious)
longClickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Switch to year range
clickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
@@ -101,9 +101,9 @@
clickOnViewWithId(statisticsR.id.btnStatisticsContainerPrevious)
longClickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
clickOnViewWithId(statisticsR.id.btnStatisticsContainerNext)
- checkViewIsDisplayed(allOf(withText(coreR.string.statistics_empty), isCompletelyDisplayed()))
+ checkViewIsDisplayed(allOf(withText(coreR.string.no_data), isCompletelyDisplayed()))
// Switch to overall range
clickOnViewWithId(statisticsR.id.btnStatisticsContainerToday)
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
@@ -84,7 +84,6 @@
icon: Int? = null,
text: String? = null,
categories: List = emptyList(),
- goalTime: String? = null,
) {
tryAction { clickOnViewWithText(coreR.string.running_records_add_type) }
@@ -123,17 +122,6 @@
clickOnRecyclerItem(changeRecordTypeR.id.rvChangeRecordTypeCategories, withText(categoryName))
}
clickOnViewWithText(coreR.string.category_hint)
- }
-
- // Goal time
- if (!goalTime.isNullOrEmpty()) {
- clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
- clickOnViewWithId(changeRecordTypeR.id.groupChangeRecordTypeSessionGoalTime)
- goalTime.forEach { char ->
- clickOnViewWithText(char.toString())
- }
- clickOnViewWithText(coreR.string.duration_dialog_save)
- clickOnViewWithText(coreR.string.change_record_type_goal_time_hint)
}
closeSoftKeyboard()
diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/utils/TestUtils.kt b/core/src/main/java/com/example/util/simpletimetracker/core/utils/TestUtils.kt
--- a/core/src/main/java/com/example/util/simpletimetracker/core/utils/TestUtils.kt
+++ b/core/src/main/java/com/example/util/simpletimetracker/core/utils/TestUtils.kt
@@ -58,8 +58,7 @@
colorInt: Int? = null,
icon: Int? = null,
text: String? = null,
- goalTime: Long? = null,
- goalRange: RecordTypeGoal.Range? = null,
+ goals: List = emptyList(),
archived: Boolean = false,
categories: List = emptyList(),
) = runBlocking {
@@ -95,14 +94,8 @@
recordTypeCategoryInteractor.addCategories(typeId, categoryIds)
}
- if (goalTime != null && goalRange != null) {
- RecordTypeGoal(
- typeId = typeId,
- range = goalRange,
- type = RecordTypeGoal.Type.Duration(goalTime),
- ).let {
- recordTypeGoalInteractor.add(it)
- }
+ goals.forEach {
+ recordTypeGoalInteractor.add(it.copy(typeId = typeId))
}
}
diff --git a/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperGetRangeStartAndEndTest.kt b/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperGetRangeStartAndEndTest.kt
--- a/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperGetRangeStartAndEndTest.kt
+++ b/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperGetRangeStartAndEndTest.kt
@@ -44,7 +44,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[4] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -132,7 +132,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[4] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -304,7 +304,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[4] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -446,7 +446,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[4] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -588,7 +588,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[4] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
diff --git a/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperTitleTest.kt b/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperTitleTest.kt
--- a/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperTitleTest.kt
+++ b/core/src/test/java/com/example/util/simpletimetracker/core/mapper/TimeMapperTitleTest.kt
@@ -51,7 +51,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[2] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -127,7 +127,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[3] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -260,7 +260,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[2] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
@@ -354,7 +354,7 @@
`when`(currentTimestampProvider.get()).thenReturn(input[2] as Long)
`when`(localeProvider.get()).thenReturn(Locale.getDefault())
- val subject = TimeMapper(resourceRepo, localeProvider, currentTimestampProvider)
+ val subject = TimeMapper(localeProvider, resourceRepo, currentTimestampProvider)
assertEquals(
"Test failed for params $input",
diff --git a/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/interactor/GoalsViewDataInteractor.kt b/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/interactor/GoalsViewDataInteractor.kt
--- a/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/interactor/GoalsViewDataInteractor.kt
+++ b/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/interactor/GoalsViewDataInteractor.kt
@@ -76,7 +76,6 @@
}
.toList()
-
return@withContext items
.takeUnless { it.isEmpty() }
?.flatten()
diff --git a/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/view/GoalsFragment.kt b/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/view/GoalsFragment.kt
--- a/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/view/GoalsFragment.kt
+++ b/features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/view/GoalsFragment.kt
@@ -77,7 +77,6 @@
viewModel.onHidden()
}
-
companion object {
fun newInstance(): GoalsFragment = GoalsFragment()
}
diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/mapper/RecordsViewDataMapper.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/mapper/RecordsViewDataMapper.kt
--- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/mapper/RecordsViewDataMapper.kt
+++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/mapper/RecordsViewDataMapper.kt
@@ -8,7 +8,6 @@
import com.example.util.simpletimetracker.domain.model.RecordTag
import com.example.util.simpletimetracker.domain.model.RecordType
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
-import com.example.util.simpletimetracker.feature_base_adapter.empty.EmptyViewData
import com.example.util.simpletimetracker.feature_base_adapter.hint.HintViewData
import com.example.util.simpletimetracker.feature_base_adapter.record.RecordViewData
import com.example.util.simpletimetracker.feature_records.R
diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
--- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
+++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
@@ -18,9 +18,6 @@
import com.example.util.simpletimetracker.feature_settings.viewModel.delegate.SettingsRatingViewModelDelegate
import com.example.util.simpletimetracker.feature_settings.viewModel.delegate.SettingsTranslatorsViewModelDelegate
import com.example.util.simpletimetracker.navigation.Router
-import com.example.util.simpletimetracker.navigation.params.screen.ArchiveParams
-import com.example.util.simpletimetracker.navigation.params.screen.CategoriesParams
-import com.example.util.simpletimetracker.navigation.params.screen.DataEditParams
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType
import dagger.hilt.android.lifecycle.HiltViewModel
diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/delegate/SettingsAdditionalViewModelDelegate.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/delegate/SettingsAdditionalViewModelDelegate.kt
--- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/delegate/SettingsAdditionalViewModelDelegate.kt
+++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/delegate/SettingsAdditionalViewModelDelegate.kt
@@ -119,7 +119,6 @@
}
}
-
fun onShowRecordTagSelectionClicked() {
delegateScope.launch {
val newValue = !prefsInteractor.getShowRecordTagSelection()