From a0fa1f40805c474c5fc05a04ce1370d9a418c4a9 Mon Sep 17 00:00:00 2001 From: meiron03 Date: Fri, 14 Apr 2023 17:45:09 -0400 Subject: [PATCH] Use aggregate data for bar chart and add rescaling. --- .../pennapps/labs/pennmobile/adapters/FitnessAdapter.kt | 9 ++++++--- .../com/pennapps/labs/pennmobile/api/StudentLife.java | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/FitnessAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/FitnessAdapter.kt index 10096ef4..f97d9f07 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/FitnessAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/FitnessAdapter.kt @@ -72,7 +72,7 @@ class FitnessAdapter(private val fitnessRooms: List) : room: FitnessRoom ) { if (hasExtraData) return - room.roomId?.let { studentLife.getFitnessRoomUsage(it).subscribe( + room.roomId?.let { studentLife.getFitnessRoomUsage(it, 3, "week").subscribe( { roomUsage -> createBarChart(context, roomUsage) activity.runOnUiThread { @@ -95,9 +95,11 @@ class FitnessAdapter(private val fitnessRooms: List) : val timeData = roomData.roomUsage val curHour = LocalDateTime.now().hour + var mxUsage = 0f // assume that we start at 6am and end at 11 pm for (i in 6..23) { val v = if (timeData == null) 0f else timeData[i.toString()] ?: 0f + mxUsage = maxOf(mxUsage, v) entries.add(BarEntry((i - 6).toFloat(), v)) colors.add(if (i == curHour) darkBlue else blue) labels.add(if (i > 12) "${i - 12}pm" else "${i}am") @@ -120,8 +122,9 @@ class FitnessAdapter(private val fitnessRooms: List) : leftAxis.setDrawGridLines(false) leftAxis.setDrawAxisLine(false) leftAxis.setDrawLabels(false); - leftAxis.axisMinimum = -5.0f - leftAxis.axisMaximum = 100.0f + + leftAxis.axisMinimum = -0.05f * mxUsage + leftAxis.axisMaximum = mxUsage val rightAxis: YAxis = barChart.axisRight rightAxis.setDrawGridLines(false) diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/StudentLife.java b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/StudentLife.java index a2516cfa..2f5cb292 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/StudentLife.java +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/StudentLife.java @@ -203,5 +203,7 @@ void createPollVote( @GET("/penndata/fitness/usage/{id}") Observable getFitnessRoomUsage( - @Path("id") int id); + @Path("id") int id, + @Query("num_samples") int samples, + @Query("group_by") String groupBy); }