A fork of Simple Time Tracker with WearOS support. (Now integrated upstream)
0

Configure Feed

Select the types of activity you want to include in your feed.

remove unused cache implementation

razeeman (Jun 19, 2022, 1:36 PM +0300) a15c8f8a d8cf08bf

+3 -133
-7
core/src/main/java/com/example/util/simpletimetracker/core/mapper/CategoryViewDataMapper.kt
··· 59 59 ).let(::listOf) 60 60 } 61 61 62 - // TODO remove? 63 - fun mapToTypeNotSelected(): List<ViewHolderType> { 64 - return EmptyViewData( 65 - message = resourceRepo.getString(R.string.change_record_activity_not_selected) 66 - ).let(::listOf) 67 - } 68 - 69 62 fun mapSelectedCategoriesHint(isEmpty: Boolean): ViewHolderType { 70 63 return InfoViewData( 71 64 text = if (isEmpty) {
-12
data_local/src/main/java/com/example/util/simpletimetracker/data_local/di/DataLocalModuleBinds.kt
··· 2 2 3 3 import com.example.util.simpletimetracker.data_local.repo.CategoryRepoImpl 4 4 import com.example.util.simpletimetracker.data_local.repo.PrefsRepoImpl 5 - import com.example.util.simpletimetracker.data_local.repo.RecordCacheRepoImpl 6 5 import com.example.util.simpletimetracker.data_local.repo.RecordRepoImpl 7 6 import com.example.util.simpletimetracker.data_local.repo.RecordTagRepoImpl 8 7 import com.example.util.simpletimetracker.data_local.repo.RecordToRecordTagRepoImpl 9 - import com.example.util.simpletimetracker.data_local.repo.RecordTypeCacheRepoImpl 10 8 import com.example.util.simpletimetracker.data_local.repo.RecordTypeCategoryRepoImpl 11 9 import com.example.util.simpletimetracker.data_local.repo.RecordTypeRepoImpl 12 10 import com.example.util.simpletimetracker.data_local.repo.RunningRecordRepoImpl ··· 15 13 import com.example.util.simpletimetracker.data_local.resolver.CsvRepoImpl 16 14 import com.example.util.simpletimetracker.domain.repo.CategoryRepo 17 15 import com.example.util.simpletimetracker.domain.repo.PrefsRepo 18 - import com.example.util.simpletimetracker.domain.repo.RecordCacheRepo 19 16 import com.example.util.simpletimetracker.domain.repo.RecordRepo 20 17 import com.example.util.simpletimetracker.domain.repo.RecordTagRepo 21 18 import com.example.util.simpletimetracker.domain.repo.RecordToRecordTagRepo 22 - import com.example.util.simpletimetracker.domain.repo.RecordTypeCacheRepo 23 19 import com.example.util.simpletimetracker.domain.repo.RecordTypeCategoryRepo 24 20 import com.example.util.simpletimetracker.domain.repo.RecordTypeRepo 25 21 import com.example.util.simpletimetracker.domain.repo.RunningRecordRepo ··· 42 38 43 39 @Binds 44 40 @Singleton 45 - fun RecordCacheRepoImpl.bindRecordCacheRepo(): RecordCacheRepo 46 - 47 - @Binds 48 - @Singleton 49 41 fun RecordTypeRepoImpl.bindRecordTypeRepo(): RecordTypeRepo 50 - 51 - @Binds 52 - @Singleton 53 - fun RecordTypeCacheRepoImpl.bindRecordTypeCacheRepo(): RecordTypeCacheRepo 54 42 55 43 @Binds 56 44 @Singleton
-31
data_local/src/main/java/com/example/util/simpletimetracker/data_local/repo/RecordCacheRepoImpl.kt
··· 1 - package com.example.util.simpletimetracker.data_local.repo 2 - 3 - import com.example.util.simpletimetracker.domain.model.Record 4 - import com.example.util.simpletimetracker.domain.repo.RecordCacheRepo 5 - import timber.log.Timber 6 - import javax.inject.Inject 7 - import javax.inject.Singleton 8 - 9 - @Singleton 10 - class RecordCacheRepoImpl @Inject constructor() : RecordCacheRepo { 11 - 12 - private val recordsByRange: MutableMap<Pair<Long, Long>, MutableList<Record>> = 13 - mutableMapOf() 14 - 15 - override fun getFromRange(start: Long, end: Long): List<Record>? { 16 - Timber.d("getFromRange") 17 - // TODO cache is disabled to avoid synchronization issues, especially in tests 18 - return null 19 - return recordsByRange[start to end] 20 - } 21 - 22 - override fun putWithRange(start: Long, end: Long, records: List<Record>) { 23 - Timber.d("putWithRange") 24 - recordsByRange[start to end] = records.toMutableList() 25 - } 26 - 27 - override fun clear() { 28 - Timber.d("clear") 29 - recordsByRange.clear() 30 - } 31 - }
-30
data_local/src/main/java/com/example/util/simpletimetracker/data_local/repo/RecordTypeCacheRepoImpl.kt
··· 1 - package com.example.util.simpletimetracker.data_local.repo 2 - 3 - import com.example.util.simpletimetracker.domain.model.RecordType 4 - import com.example.util.simpletimetracker.domain.repo.RecordTypeCacheRepo 5 - import timber.log.Timber 6 - import javax.inject.Inject 7 - import javax.inject.Singleton 8 - 9 - @Singleton 10 - class RecordTypeCacheRepoImpl @Inject constructor() : RecordTypeCacheRepo { 11 - 12 - private var recordTypes: List<RecordType> = emptyList() 13 - 14 - override fun getAll(): List<RecordType> { 15 - Timber.d("getAll") 16 - // TODO cache is disabled to avoid synchronization issues, especially in tests 17 - return emptyList() 18 - return recordTypes 19 - } 20 - 21 - override fun addAll(recordTypes: List<RecordType>) { 22 - Timber.d("addAll") 23 - this.recordTypes = recordTypes 24 - } 25 - 26 - override fun clear() { 27 - Timber.d("clear") 28 - recordTypes = emptyList() 29 - } 30 - }
-6
data_local/src/main/java/com/example/util/simpletimetracker/data_local/resolver/BackupRepoImpl.kt
··· 12 12 import com.example.util.simpletimetracker.domain.model.RecordType 13 13 import com.example.util.simpletimetracker.domain.model.RecordTypeCategory 14 14 import com.example.util.simpletimetracker.domain.repo.CategoryRepo 15 - import com.example.util.simpletimetracker.domain.repo.RecordCacheRepo 16 15 import com.example.util.simpletimetracker.domain.repo.RecordRepo 17 16 import com.example.util.simpletimetracker.domain.repo.RecordTagRepo 18 17 import com.example.util.simpletimetracker.domain.repo.RecordToRecordTagRepo 19 - import com.example.util.simpletimetracker.domain.repo.RecordTypeCacheRepo 20 18 import com.example.util.simpletimetracker.domain.repo.RecordTypeCategoryRepo 21 19 import com.example.util.simpletimetracker.domain.repo.RecordTypeRepo 22 20 import com.example.util.simpletimetracker.domain.resolver.BackupRepo ··· 39 37 class BackupRepoImpl @Inject constructor( 40 38 private val contentResolver: ContentResolver, 41 39 private val recordTypeRepo: RecordTypeRepo, 42 - private val recordTypeCacheRepo: RecordTypeCacheRepo, 43 40 private val recordRepo: RecordRepo, 44 - private val recordCacheRepo: RecordCacheRepo, 45 41 private val categoryRepo: CategoryRepo, 46 42 private val recordTypeCategoryRepo: RecordTypeCategoryRepo, 47 43 private val recordToRecordTagRepo: RecordToRecordTagRepo, ··· 128 124 if (line != BACKUP_IDENTIFICATION) return@withContext BackupRepo.ResultCode.ERROR 129 125 130 126 recordTypeRepo.clear() 131 - recordTypeCacheRepo.clear() 132 127 recordRepo.clear() 133 - recordCacheRepo.clear() 134 128 categoryRepo.clear() 135 129 recordTypeCategoryRepo.clear() 136 130 recordTagRepo.clear()
+1 -8
domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordInteractor.kt
··· 2 2 3 3 import com.example.util.simpletimetracker.domain.mapper.UntrackedRecordMapper 4 4 import com.example.util.simpletimetracker.domain.model.Record 5 - import com.example.util.simpletimetracker.domain.repo.RecordCacheRepo 6 5 import com.example.util.simpletimetracker.domain.repo.RecordRepo 7 6 import com.example.util.simpletimetracker.domain.repo.RecordToRecordTagRepo 8 7 import javax.inject.Inject ··· 10 9 class RecordInteractor @Inject constructor( 11 10 private val recordRepo: RecordRepo, 12 11 private val recordToRecordTagRepo: RecordToRecordTagRepo, 13 - private val recordCacheRepo: RecordCacheRepo, 14 12 private val untrackedRecordMapper: UntrackedRecordMapper, 15 13 ) { 16 14 ··· 35 33 } 36 34 37 35 suspend fun getFromRange(start: Long, end: Long): List<Record> { 38 - return recordCacheRepo.getFromRange(start, end) 39 - ?: recordRepo.getFromRange(start, end) 40 - .also { recordCacheRepo.putWithRange(start, end, it) } 36 + return recordRepo.getFromRange(start, end) 41 37 } 42 38 43 39 suspend fun getUntrackedFromRange(start: Long, end: Long): List<Record> { ··· 66 62 val recordId = recordRepo.add(record) 67 63 recordToRecordTagRepo.removeAllByRecordId(recordId) 68 64 recordToRecordTagRepo.addRecordTags(recordId, record.tagIds) 69 - recordCacheRepo.clear() 70 65 } 71 66 72 67 suspend fun remove(id: Long) { 73 68 recordToRecordTagRepo.removeAllByRecordId(id) 74 69 recordRepo.remove(id) 75 - recordCacheRepo.clear() 76 70 } 77 71 78 72 suspend fun clear() { 79 73 recordRepo.clear() 80 - recordCacheRepo.clear() 81 74 } 82 75 }
+2 -15
domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordTypeInteractor.kt
··· 7 7 import com.example.util.simpletimetracker.domain.repo.RecordRepo 8 8 import com.example.util.simpletimetracker.domain.repo.RecordTagRepo 9 9 import com.example.util.simpletimetracker.domain.repo.RecordToRecordTagRepo 10 - import com.example.util.simpletimetracker.domain.repo.RecordTypeCacheRepo 11 10 import com.example.util.simpletimetracker.domain.repo.RecordTypeCategoryRepo 12 11 import com.example.util.simpletimetracker.domain.repo.RecordTypeRepo 13 12 import java.util.Locale ··· 20 19 private val recordToRecordTagRepo: RecordToRecordTagRepo, 21 20 private val recordTypeCategoryRepo: RecordTypeCategoryRepo, 22 21 private val recordTagRepo: RecordTagRepo, 23 - private val recordTypeCacheRepo: RecordTypeCacheRepo, 24 22 private val prefsInteractor: PrefsInteractor, 25 23 private val appColorMapper: AppColorMapper, 26 24 ) { 27 25 28 26 suspend fun getAll(cardOrder: CardOrder? = null): List<RecordType> { 29 - return ( 30 - recordTypeCacheRepo.getAll() 31 - .takeIf(List<RecordType>::isNotEmpty) 32 - ?: recordTypeRepo.getAll().also(recordTypeCacheRepo::addAll) 33 - ).let { sort(cardOrder, it) } 27 + return sort(cardOrder, recordTypeRepo.getAll()) 34 28 } 35 29 36 30 suspend fun get(id: Long): RecordType? { ··· 46 40 newRecord = recordType.copy(id = saved.id) 47 41 } 48 42 49 - val addedId = recordTypeRepo.add(newRecord) 50 - recordTypeCacheRepo.clear() 51 - return addedId 43 + return recordTypeRepo.add(newRecord) 52 44 } 53 45 54 46 suspend fun archive(id: Long) { 55 47 recordTypeRepo.archive(id) 56 - recordTypeCacheRepo.clear() 57 48 } 58 49 59 50 suspend fun restore(id: Long) { 60 51 recordTypeRepo.restore(id) 61 - recordTypeCacheRepo.clear() 62 52 } 63 53 64 54 suspend fun remove(id: Long) { ··· 75 65 recordTypeCategoryRepo.removeAllByType(id) 76 66 recordTagRepo.removeByType(id) 77 67 recordTypeRepo.remove(id) 78 - 79 - recordTypeCacheRepo.clear() 80 68 } 81 69 82 70 suspend fun clear() { 83 71 recordTypeRepo.clear() 84 - recordTypeCacheRepo.clear() 85 72 } 86 73 87 74 private suspend fun sort(
-12
domain/src/main/java/com/example/util/simpletimetracker/domain/repo/RecordCacheRepo.kt
··· 1 - package com.example.util.simpletimetracker.domain.repo 2 - 3 - import com.example.util.simpletimetracker.domain.model.Record 4 - 5 - interface RecordCacheRepo { 6 - 7 - fun getFromRange(start: Long, end: Long): List<Record>? 8 - 9 - fun putWithRange(start: Long, end: Long, records: List<Record>) 10 - 11 - fun clear() 12 - }
-12
domain/src/main/java/com/example/util/simpletimetracker/domain/repo/RecordTypeCacheRepo.kt
··· 1 - package com.example.util.simpletimetracker.domain.repo 2 - 3 - import com.example.util.simpletimetracker.domain.model.RecordType 4 - 5 - interface RecordTypeCacheRepo { 6 - 7 - fun getAll(): List<RecordType> 8 - 9 - fun addAll(recordTypes: List<RecordType>) 10 - 11 - fun clear() 12 - }