Verified Commit 7f131c0c authored by Marvin W.'s avatar Marvin W. 🐿
Browse files

ENUI: Make date to dot position based on DateFormat

Should fix #1444
parent f5cd584a
...@@ -16,6 +16,7 @@ import android.view.MotionEvent ...@@ -16,6 +16,7 @@ import android.view.MotionEvent
import android.view.View import android.view.View
import org.microg.gms.nearby.exposurenotification.ExposureScanSummary import org.microg.gms.nearby.exposurenotification.ExposureScanSummary
import org.microg.gms.ui.resolveColor import org.microg.gms.ui.resolveColor
import java.text.SimpleDateFormat
import java.util.* import java.util.*
import kotlin.math.max import kotlin.math.max
import kotlin.math.min import kotlin.math.min
...@@ -37,18 +38,24 @@ class DotChartView : View { ...@@ -37,18 +38,24 @@ class DotChartView : View {
val min = now - 14 * 24 * 60 * 60 * 1000L val min = now - 14 * 24 * 60 * 60 * 1000L
val date = Date(min) val date = Date(min)
val dateFormat = DateFormat.getMediumDateFormat(context) val dateFormat = DateFormat.getMediumDateFormat(context)
val hourFormat = SimpleDateFormat("H")
val lowest = dateFormat.parse(dateFormat.format(date))?.time ?: date.time val lowest = dateFormat.parse(dateFormat.format(date))?.time ?: date.time
for (day in 0 until 15) { for (day in 0 until 15) {
date.time = now - (14 - day) * 24 * 60 * 60 * 1000L date.time = now - (14 - day) * 24 * 60 * 60 * 1000L
displayData[day] = dateFormat.format(date) to hashMapOf() displayData[day] = dateFormat.format(date) to hashMapOf()
} }
fun dayByDate(date: Date) : Int? {
val dateString = dateFormat.format(date)
return displayData.entries.firstOrNull { it.value.first == dateString }?.key
}
if (value != null) { if (value != null) {
for (summary in value) { for (summary in value) {
val off = summary.time - lowest val off = summary.time - lowest
if (off < 0) continue if (off < 0) continue
val totalHours = (off / 1000 / 60 / 60).toInt() val totalHours = (off / 1000 / 60 / 60).toInt()
val day = totalHours / 24 date.time = summary.time
val hour = totalHours % 24 val day = dayByDate(date) ?: (totalHours / 24)
val hour = hourFormat.format(date).toIntOrNull() ?: (totalHours % 24)
displayData[day]?.second?.set(hour, (displayData[day]?.second?.get(hour) ?: 0) + summary.rpis) displayData[day]?.second?.set(hour, (displayData[day]?.second?.get(hour) ?: 0) + summary.rpis)
} }
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment