Skip to content

Commit 823e199

Browse files
committed
add record span to detailed statistics
1 parent bc2542a commit 823e199

29 files changed

Lines changed: 61 additions & 13 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1479,7 +1479,7 @@ class StatisticsDetailTest : BaseUiTest() {
14791479
),
14801480
)
14811481

1482-
scrollStatDetailRecyclerToTag(StatisticsDetailBlock.Average)
1482+
scrollStatDetailRecyclerToTag(StatisticsDetailBlock.Dates)
14831483
checkCard(coreR.string.statistics_detail_first_record, "-")
14841484
checkCard(coreR.string.statistics_detail_last_record, "-")
14851485

app/src/androidTest/java/com/example/util/simpletimetracker/utils/BaseUiTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ open class BaseUiTest {
115115
.get(iconEmojiMapper.getAvailableEmojiCategories(hasFavourites = false).last())
116116
?.last()?.emojiCode.orEmpty()
117117

118+
val dayString: String by lazy { getString(R.string.time_day) }
118119
val hourString: String by lazy { getString(R.string.time_hour) }
119120
val minuteString: String by lazy { getString(R.string.time_minute) }
120121
val secondString: String by lazy { getString(R.string.time_second) }

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailStatsInteractor.kt

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@ class StatisticsDetailStatsInteractor @Inject constructor(
117117

118118
val firstRecordData = recordsSorted.firstOrNull()?.timeStarted
119119
val lastRecordData = recordsSorted.lastOrNull()?.timeEnded
120+
val compareFirstRecordData = compareRecordsSorted.firstOrNull()?.timeStarted
121+
val compareLastRecordData = compareRecordsSorted.lastOrNull()?.timeEnded
122+
val recordSpanData = if (firstRecordData != null && lastRecordData != null) {
123+
lastRecordData - firstRecordData
124+
} else {
125+
null
126+
}
120127

121128
val emptyValue by lazy {
122129
resourceRepo.getString(R.string.statistics_detail_empty)
@@ -173,16 +180,12 @@ class StatisticsDetailStatsInteractor @Inject constructor(
173180
return result.toString()
174181
}
175182

176-
fun getTimeSinceMessage(timestamp: Long): String {
183+
fun getTimeSinceMessage(timestamp: Long, span: Long?): String {
177184
val result = StringBuilder()
178185
result.append(resourceRepo.getString(R.string.statistics_detail_time_since))
179186
result.append("\n")
180187
val interval = System.currentTimeMillis() - timestamp
181-
val timeSince = timeMapper.formatInterval(
182-
interval = interval,
183-
forceSeconds = showSeconds,
184-
durationFormat = durationFormat,
185-
)
188+
val timeSince = formatInterval(interval)
186189
val timeSinceInDays = timeMapper.formatInterval(
187190
interval = interval,
188191
forceSeconds = showSeconds,
@@ -193,6 +196,22 @@ class StatisticsDetailStatsInteractor @Inject constructor(
193196
result.append("\n")
194197
result.append("($timeSinceInDays)")
195198
}
199+
if (span != null) {
200+
result.append("\n\n")
201+
result.append(resourceRepo.getString(R.string.statistics_detail_record_span))
202+
result.append("\n")
203+
val spanData = formatInterval(span)
204+
val spanDataInDays = timeMapper.formatInterval(
205+
interval = span,
206+
forceSeconds = showSeconds,
207+
durationFormat = DurationFormat.DAYS,
208+
)
209+
result.append(spanData)
210+
if (spanData != spanDataInDays) {
211+
result.append("\n")
212+
result.append("($spanDataInDays)")
213+
}
214+
}
196215

197216
return result.toString()
198217
}
@@ -228,18 +247,20 @@ class StatisticsDetailStatsInteractor @Inject constructor(
228247
?.let(::processLengthHint),
229248
firstRecord = firstRecordData
230249
.let(::formatDateTimeYear),
231-
compareFirstRecord = compareRecordsSorted.firstOrNull()?.timeStarted
250+
compareFirstRecord = compareFirstRecordData
232251
.let(::formatDateTimeYear)
233252
.let(::processComparisonString),
234253
lastRecord = lastRecordData
235254
.let(::formatDateTimeYear),
236-
compareLastRecord = compareRecordsSorted.lastOrNull()?.timeEnded
255+
compareLastRecord = compareLastRecordData
237256
.let(::formatDateTimeYear)
238257
.let(::processComparisonString),
239-
firstRecordClickMessage = firstRecordData
240-
?.let(::getTimeSinceMessage),
241-
lastRecordClickMessage = lastRecordData
242-
?.let(::getTimeSinceMessage),
258+
firstRecordClickMessage = firstRecordData?.let {
259+
getTimeSinceMessage(it, recordSpanData)
260+
},
261+
lastRecordClickMessage = lastRecordData?.let {
262+
getTimeSinceMessage(it, recordSpanData)
263+
},
243264
)
244265
}
245266

resources/src/main/res/values-ar/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@
532532
<string name="statistics_detail_record_time">وقت التتبع</string>
533533
<string name="statistics_detail_first_record">أول</string>
534534
<string name="statistics_detail_last_record">آخر</string>
535+
<string name="statistics_detail_record_span">المدة</string>
535536
<string name="statistics_detail_time_since">منذ</string>
536537
<string name="statistics_detail_streaks">السللة</string>
537538
<string name="statistics_detail_streaks_longest">أطول</string>

resources/src/main/res/values-ca/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ Exemple:<br/>
532532
<string name="statistics_detail_record_time">Hora d\'enregistrament</string>
533533
<string name="statistics_detail_first_record">Primer</string>
534534
<string name="statistics_detail_last_record">Últim</string>
535+
<string name="statistics_detail_record_span">Període</string>
535536
<string name="statistics_detail_time_since">Temps transcorregut</string>
536537
<string name="statistics_detail_streaks">Sèrie</string>
537538
<string name="statistics_detail_streaks_longest">Més llarga</string>

resources/src/main/res/values-de/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ Beispiel:<br/>
532532
<string name="statistics_detail_record_time">Rekordzeit</string>
533533
<string name="statistics_detail_first_record">Erste</string>
534534
<string name="statistics_detail_last_record">Letzte</string>
535+
<string name="statistics_detail_record_span">Zeitraum</string>
535536
<string name="statistics_detail_time_since">Zeit seit</string>
536537
<string name="statistics_detail_streaks">Serie</string>
537538
<string name="statistics_detail_streaks_longest">Längste</string>

resources/src/main/res/values-es/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ Ejemplo:<br/>
532532
<string name="statistics_detail_record_time">Hora de registro</string>
533533
<string name="statistics_detail_first_record">Primero</string>
534534
<string name="statistics_detail_last_record">Último</string>
535+
<string name="statistics_detail_record_span">Período</string>
535536
<string name="statistics_detail_time_since">Tiempo transcurrido</string>
536537
<string name="statistics_detail_streaks">Serie</string>
537538
<string name="statistics_detail_streaks_longest">Más largo</string>

resources/src/main/res/values-fa/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@
532532
<string name="statistics_detail_record_time">طول تاریخچه</string>
533533
<string name="statistics_detail_first_record">اولین</string>
534534
<string name="statistics_detail_last_record">آخرین</string>
535+
<string name="statistics_detail_record_span">بازه</string>
535536
<string name="statistics_detail_time_since">از زمان</string>
536537
<string name="statistics_detail_streaks">ردیفی</string>
537538
<string name="statistics_detail_streaks_longest">طولانی ترین</string>

resources/src/main/res/values-fr/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ Exemple :<br/>
532532
<string name="statistics_detail_record_time">Horaires des enregistrements</string>
533533
<string name="statistics_detail_first_record">Premier</string>
534534
<string name="statistics_detail_last_record">Dernier</string>
535+
<string name="statistics_detail_record_span">Période</string>
535536
<string name="statistics_detail_time_since">Il y a</string>
536537
<string name="statistics_detail_streaks">Séries</string>
537538
<string name="statistics_detail_streaks_longest">La plus longue</string>

resources/src/main/res/values-hi/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ csv फ़ाइल में कॉमा से अलग किए गए य
532532
<string name="statistics_detail_record_time">रिकॉर्ड समय</string>
533533
<string name="statistics_detail_first_record">प्रथम</string>
534534
<string name="statistics_detail_last_record">अंतिम</string>
535+
<string name="statistics_detail_record_span">अवधि</string>
535536
<string name="statistics_detail_time_since">बीता समय</string>
536537
<string name="statistics_detail_streaks">श्रृंखला</string>
537538
<string name="statistics_detail_streaks_longest">सबसे लंबे समय तक</string>

0 commit comments

Comments
 (0)