diff --git a/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt b/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt index 853412e403..8dc0bf0e0e 100644 --- a/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt +++ b/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt @@ -57,6 +57,7 @@ class TracingInitializer : Initializer { ) } bugReporter.cleanLogDirectoryIfNeeded() + bugReporter.setCurrentTracingFilter(tracingConfiguration.filterConfiguration.filter) tracingService.setupTracing(tracingConfiguration) // Also set env variable for rust back trace Os.setenv("RUST_BACKTRACE", "1", true) diff --git a/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/reporter/BugReporter.kt b/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/reporter/BugReporter.kt index 38992f25f5..d50ce28778 100644 --- a/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/reporter/BugReporter.kt +++ b/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/reporter/BugReporter.kt @@ -47,4 +47,9 @@ interface BugReporter { * Provide the log directory. */ fun logDirectory(): File + + /** + * Set the current tracing filter. + */ + fun setCurrentTracingFilter(tracingFilter: String) } diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt index 3bd7405f52..da4f9ee705 100755 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt @@ -82,11 +82,11 @@ class DefaultBugReporter @Inject constructor( private const val LOG_CAT_FILENAME = "logcat.log" private const val LOG_DIRECTORY_NAME = "logs" private const val BUFFER_SIZE = 1024 * 1024 * 50 + var currentTracingFilter: String? = null } // the pending bug report call private var bugReportCall: Call? = null - // boolean to cancel the bug report private val isCancelled = false private val logcatCommandDebug = arrayOf("logcat", "-d", "-v", "threadtime", "*:*") @@ -153,6 +153,9 @@ class DefaultBugReporter @Inject constructor( .addFormDataPart("device_id", deviceId) .addFormDataPart("device", Build.MODEL.trim()) .addFormDataPart("locale", Locale.getDefault().toString()) + currentTracingFilter?.let { + builder.addFormDataPart("tracing_filter", it) + } // add the gzipped files, don't cancel the whole upload if only some file failed to upload var uploadedSomeLogs = false @@ -323,6 +326,10 @@ class DefaultBugReporter @Inject constructor( } } + override fun setCurrentTracingFilter(tracingFilter: String) { + currentTracingFilter = tracingFilter + } + /** * @return the files on the log directory. */ diff --git a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/FakeBugReporter.kt b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/FakeBugReporter.kt index 00343f8f6e..2cd9e61398 100644 --- a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/FakeBugReporter.kt +++ b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/FakeBugReporter.kt @@ -59,6 +59,10 @@ class FakeBugReporter(val mode: FakeBugReporterMode = FakeBugReporterMode.Succes override fun logDirectory(): File { return File("fake") } + + override fun setCurrentTracingFilter(tracingFilter: String) { + // No op + } } enum class FakeBugReporterMode {