diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
index c224228c2..ed48a59fd 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
@@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
import org.thoughtcrime.securesms.components.settings.configure
import org.thoughtcrime.securesms.database.LocalMetricsDatabase
+import org.thoughtcrime.securesms.database.LogDatabase
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.jobmanager.JobTracker
@@ -112,6 +113,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
}
)
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_clear_keep_longer_logs),
+ onClick = {
+ clearKeepLongerLogs()
+ }
+ )
+
dividerPref()
sectionHeaderPref(R.string.preferences__internal_payments)
@@ -590,4 +598,12 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
}
.show()
}
+
+ private fun clearKeepLongerLogs() {
+ SimpleTask.run({
+ LogDatabase.getInstance(requireActivity().application).clearKeepLonger()
+ }) {
+ Toast.makeText(requireContext(), "Cleared keep longer logs", Toast.LENGTH_SHORT).show()
+ }
+ }
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt
index 5645f4bdc..d6217fe05 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt
@@ -8,6 +8,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
import org.signal.core.util.CursorUtil
import org.signal.core.util.SqlUtil
+import org.signal.core.util.delete
import org.signal.core.util.getTableRowCount
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.crypto.DatabaseSecret
@@ -218,6 +219,12 @@ class LogDatabase private constructor(
}
}
+ fun clearKeepLonger() {
+ writableDatabase.delete(TABLE_NAME)
+ .where("$KEEP_LONGER = ?", 1)
+ .run()
+ }
+
private fun buildValues(log: LogEntry): ContentValues {
return ContentValues().apply {
put(CREATED_AT, log.createdAt)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2e678ddb0..fe1359fdc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2659,6 +2659,7 @@
Show a button in conversation settings that lets you see more information about a user.
Shake to Report
Shake your phone to easily submit and share a debug log.
+ Clear keep longer logs
Storage service
Disable syncing
Prevent syncing any data to/from storage service.