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.