Add internal setting to log prekey ids.

This commit is contained in:
Cody Henthorne 2023-10-17 16:16:13 -04:00
parent 92f2ac67d5
commit 45f1f419e1

View file

@ -14,6 +14,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.signal.core.util.AppUtil import org.signal.core.util.AppUtil
import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.concurrent.SimpleTask import org.signal.core.util.concurrent.SimpleTask
import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.requireLong
import org.signal.core.util.requireString
import org.signal.ringrtc.CallManager import org.signal.ringrtc.CallManager
import org.thoughtcrime.securesms.BuildConfig import org.thoughtcrime.securesms.BuildConfig
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
@ -24,6 +28,7 @@ import org.thoughtcrime.securesms.components.settings.configure
import org.thoughtcrime.securesms.database.LocalMetricsDatabase import org.thoughtcrime.securesms.database.LocalMetricsDatabase
import org.thoughtcrime.securesms.database.LogDatabase import org.thoughtcrime.securesms.database.LogDatabase
import org.thoughtcrime.securesms.database.MegaphoneDatabase import org.thoughtcrime.securesms.database.MegaphoneDatabase
import org.thoughtcrime.securesms.database.OneTimePreKeyTable
import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.jobmanager.JobTracker import org.thoughtcrime.securesms.jobmanager.JobTracker
@ -53,6 +58,10 @@ import kotlin.time.Duration.Companion.seconds
class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__internal_preferences) { class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__internal_preferences) {
companion object {
private val TAG = Log.tag(InternalSettingsFragment::class.java)
}
private lateinit var viewModel: InternalSettingsViewModel private lateinit var viewModel: InternalSettingsViewModel
private var scrollToPosition: Int = 0 private var scrollToPosition: Int = 0
@ -168,6 +177,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
} }
) )
clickPref(
title = DSLSettingsText.from("Log dump PreKey ServiceId-KeyIds"),
onClick = {
logPreKeyIds()
}
)
dividerPref() dividerPref()
sectionHeaderPref(DSLSettingsText.from("Payments")) sectionHeaderPref(DSLSettingsText.from("Payments"))
@ -773,4 +789,19 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
Toast.makeText(requireContext(), "Cleared keep longer logs", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "Cleared keep longer logs", Toast.LENGTH_SHORT).show()
} }
} }
private fun logPreKeyIds() {
SimpleTask.run({
val oneTimePreKeys = SignalDatabase.rawDatabase
.query("SELECT * FROM ${OneTimePreKeyTable.TABLE_NAME}")
.readToList { c ->
c.requireString(OneTimePreKeyTable.ACCOUNT_ID) to c.requireLong(OneTimePreKeyTable.KEY_ID)
}
.joinToString()
Log.i(TAG, "One-Time Prekeys\n$oneTimePreKeys")
}) {
Toast.makeText(requireContext(), "Dumped to logs", Toast.LENGTH_SHORT).show()
}
}
} }