Updated on 2026-08-14

This commit is contained in:
Tangem 2024-03-18 22:00:59 +08:00
parent 8d16f06c08
commit 7d9f1f0cf4
10 changed files with 105 additions and 20 deletions

View file

@ -59,9 +59,10 @@ internal class DefaultFeedbackRepository(
override suspend fun getAppLogs(): List<AppLogModel> {
return appPreferencesStore.getObjectMap<String>(key = PreferencesKeys.APP_LOGS_KEY)
.map { AppLogModel(timestamp = it.key.toLong(), message = it.value) }
.sortedBy(AppLogModel::timestamp)
}
override suspend fun createLogFile(logs: List<String>): File? {
override suspend fun createLogFile(logs: String): File? {
return try {
val file = File(context.filesDir, LOGS_FILE)
file.delete()
@ -69,7 +70,7 @@ internal class DefaultFeedbackRepository(
val stringWriter = StringWriter()
logs.forEach(stringWriter::append)
stringWriter.append(logs)
val fileWriter = FileWriter(file)
fileWriter.write(stringWriter.toString())

View file

@ -44,22 +44,21 @@ internal class DefaultSettingsRepository(
}
}
override suspend fun deleteDeprecatedLogs() {
val threeDaysAgo = getThreeDaysAgoTimestamp()
override suspend fun deleteDeprecatedLogs(maxSize: Int) {
appPreferencesStore.editData { preferences ->
val savedLogs = preferences.getObjectMap<String>(PreferencesKeys.APP_LOGS_KEY)
var sum = 0
preferences.setObjectMap(
key = PreferencesKeys.APP_LOGS_KEY,
value = savedLogs.filterKeys { it.toLong() > threeDaysAgo },
value = savedLogs.entries
.sortedBy(Map.Entry<String, String>::key)
.takeLastWhile {
sum += it.value.length
sum < maxSize
}
.associate { it.key to it.value },
)
}
}
private fun getThreeDaysAgoTimestamp(): Long = DateTime.now().minusDays(THREE_DAYS).millis
private companion object {
const val THREE_DAYS = 3
}
}