From c3759f665189925b3cac18e5368e06b35fa78d12 Mon Sep 17 00:00:00 2001 From: Jonas Lochmann Date: Mon, 26 Oct 2020 01:00:00 +0100 Subject: [PATCH] Show the category names in the usage history --- .../java/io/timelimit/android/data/dao/UsedTimeDao.kt | 4 ++-- .../io/timelimit/android/data/model/UsedTimeListItem.kt | 2 ++ .../manage/category/usagehistory/UsageHistoryAdapter.kt | 9 +++++++-- .../manage/category/usagehistory/UsageHistoryFragment.kt | 2 ++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/timelimit/android/data/dao/UsedTimeDao.kt b/app/src/main/java/io/timelimit/android/data/dao/UsedTimeDao.kt index 62ea519..da3ab45 100644 --- a/app/src/main/java/io/timelimit/android/data/dao/UsedTimeDao.kt +++ b/app/src/main/java/io/timelimit/android/data/dao/UsedTimeDao.kt @@ -64,10 +64,10 @@ abstract class UsedTimeDao { abstract fun getAllUsedTimeItemsSync(): List // breaking it into multiple lines causes issues during compilation ... - @Query("SELECT 2 AS type, start_time_of_day AS startMinuteOfDay, end_time_of_day AS endMinuteOfDay, used_time AS duration, day_of_epoch AS day, NULL AS lastUsage, NULL AS maxSessionDuration, NULL AS pauseDuration FROM used_time WHERE category_id = :categoryId UNION ALL SELECT 1 AS type, start_minute_of_day AS startMinuteOfDay, end_minute_of_day AS endMinuteOfDay, last_session_duration AS duration, NULL AS day, last_usage AS lastUsage, max_session_duration AS maxSessionDuration, session_pause_duration AS pauseDuration FROM session_duration WHERE category_id = :categoryId ORDER BY type, day DESC, lastUsage DESC, startMinuteOfDay, endMinuteOfDay") + @Query("SELECT 2 AS type, start_time_of_day AS startMinuteOfDay, end_time_of_day AS endMinuteOfDay, used_time AS duration, day_of_epoch AS day, NULL AS lastUsage, NULL AS maxSessionDuration, NULL AS pauseDuration, category.id AS categoryId, category.title AS categoryTitle FROM used_time JOIN category ON (used_time.category_id = category.id) WHERE category.id = :categoryId UNION ALL SELECT 1 AS type, start_minute_of_day AS startMinuteOfDay, end_minute_of_day AS endMinuteOfDay, last_session_duration AS duration, NULL AS day, last_usage AS lastUsage, max_session_duration AS maxSessionDuration, session_pause_duration AS pauseDuration, category.id AS categoryId, category.title AS categoryTitle FROM session_duration JOIN category ON (session_duration.category_id = category.id) WHERE category.id = :categoryId ORDER BY type, day DESC, lastUsage DESC, startMinuteOfDay, endMinuteOfDay, categoryId") abstract fun getUsedTimeListItemsByCategoryId(categoryId: String): DataSource.Factory // breaking it into multiple lines causes issues during compilation ... - @Query("SELECT 2 AS type, start_time_of_day AS startMinuteOfDay, end_time_of_day AS endMinuteOfDay, used_time AS duration, day_of_epoch AS day, NULL AS lastUsage, NULL AS maxSessionDuration, NULL AS pauseDuration FROM used_time WHERE category_id IN (SELECT category_id FROM category WHERE child_id = :userId) UNION ALL SELECT 1 AS type, start_minute_of_day AS startMinuteOfDay, end_minute_of_day AS endMinuteOfDay, last_session_duration AS duration, NULL AS day, last_usage AS lastUsage, max_session_duration AS maxSessionDuration, session_pause_duration AS pauseDuration FROM session_duration WHERE category_id IN (SELECT category_id FROM category WHERE child_id = :userId) ORDER BY type, day DESC, lastUsage DESC, startMinuteOfDay, endMinuteOfDay") + @Query("SELECT 2 AS type, start_time_of_day AS startMinuteOfDay, end_time_of_day AS endMinuteOfDay, used_time AS duration, day_of_epoch AS day, NULL AS lastUsage, NULL AS maxSessionDuration, NULL AS pauseDuration, category.id AS categoryId, category.title AS categoryTitle FROM used_time JOIN category ON (used_time.category_id = category.id) WHERE category.child_id = :userId UNION ALL SELECT 1 AS type, start_minute_of_day AS startMinuteOfDay, end_minute_of_day AS endMinuteOfDay, last_session_duration AS duration, NULL AS day, last_usage AS lastUsage, max_session_duration AS maxSessionDuration, session_pause_duration AS pauseDuration, category.id AS categoryId, category.title AS categoryTitle FROM session_duration JOIN category ON (session_duration.category_id = category.id) WHERE category.child_id = :userId ORDER BY type, day DESC, lastUsage DESC, startMinuteOfDay, endMinuteOfDay, categoryId") abstract fun getUsedTimeListItemsByUserId(userId: String): DataSource.Factory } diff --git a/app/src/main/java/io/timelimit/android/data/model/UsedTimeListItem.kt b/app/src/main/java/io/timelimit/android/data/model/UsedTimeListItem.kt index 87526f2..ab5892c 100644 --- a/app/src/main/java/io/timelimit/android/data/model/UsedTimeListItem.kt +++ b/app/src/main/java/io/timelimit/android/data/model/UsedTimeListItem.kt @@ -17,6 +17,8 @@ package io.timelimit.android.data.model data class UsedTimeListItem( + val categoryId: String, + val categoryTitle: String, val startMinuteOfDay: Int, val endMinuteOfDay: Int, val duration: Long, diff --git a/app/src/main/java/io/timelimit/android/ui/manage/category/usagehistory/UsageHistoryAdapter.kt b/app/src/main/java/io/timelimit/android/ui/manage/category/usagehistory/UsageHistoryAdapter.kt index 0e9d75c..a74f18a 100644 --- a/app/src/main/java/io/timelimit/android/ui/manage/category/usagehistory/UsageHistoryAdapter.kt +++ b/app/src/main/java/io/timelimit/android/ui/manage/category/usagehistory/UsageHistoryAdapter.kt @@ -30,6 +30,7 @@ import io.timelimit.android.util.TimeTextUtil import org.threeten.bp.LocalDate import org.threeten.bp.ZoneOffset import java.util.* +import kotlin.properties.Delegates class UsageHistoryAdapter: PagedListAdapter(diffCallback) { companion object { @@ -41,6 +42,8 @@ class UsageHistoryAdapter: PagedListAdapter notifyDataSetChanged() } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = UsageHistoryViewHolder( FragmentUsageHistoryItemBinding.inflate( LayoutInflater.from(parent.context), @@ -59,17 +62,19 @@ class UsageHistoryAdapter: PagedListAdapter