From 7c246534f0976f553f10cc8437c91c1d713c7c98 Mon Sep 17 00:00:00 2001 From: Matthew Robertson Date: Thu, 5 Jun 2025 16:30:20 -0400 Subject: [PATCH 1/4] Add more trace buttons to sessions test app --- .../testing/sessions/FirstFragment.kt | 27 ++++++++++++++++++- .../src/main/res/layout/fragment_first.xml | 19 ++++++++++++- .../test-app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/firebase-sessions/test-app/src/main/kotlin/com/google/firebase/testing/sessions/FirstFragment.kt b/firebase-sessions/test-app/src/main/kotlin/com/google/firebase/testing/sessions/FirstFragment.kt index f5a965da7d4..c151b56a68f 100644 --- a/firebase-sessions/test-app/src/main/kotlin/com/google/firebase/testing/sessions/FirstFragment.kt +++ b/firebase-sessions/test-app/src/main/kotlin/com/google/firebase/testing/sessions/FirstFragment.kt @@ -30,7 +30,10 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import com.google.firebase.crashlytics.FirebaseCrashlytics import com.google.firebase.perf.FirebasePerformance +import com.google.firebase.perf.trace import com.google.firebase.testing.sessions.databinding.FragmentFirstBinding +import java.net.HttpURLConnection +import java.net.URL import java.util.Date import java.util.Locale import kotlinx.coroutines.Dispatchers @@ -52,7 +55,7 @@ class FirstFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + savedInstanceState: Bundle?, ): View? { _binding = FragmentFirstBinding.inflate(inflater, container, false) @@ -79,6 +82,28 @@ class FirstFragment : Fragment() { performanceTrace.stop() } } + binding.createTrace2.setOnClickListener { + lifecycleScope.launch(Dispatchers.IO) { + val performanceTrace = performance.newTrace("test_trace_2") + performanceTrace.start() + delay(1200) + performanceTrace.stop() + } + } + binding.createNetworkTrace.setOnClickListener { + lifecycleScope.launch(Dispatchers.IO) { + val url = URL("https://www.google.com") + val metric = + performance.newHttpMetric("https://www.google.com", FirebasePerformance.HttpMethod.GET) + metric.trace { + val conn = url.openConnection() as HttpURLConnection + val content = conn.inputStream.bufferedReader().use { it.readText() } + setHttpResponseCode(conn.responseCode) + setResponsePayloadSize(content.length.toLong()) + conn.disconnect() + } + } + } binding.buttonForegroundProcess.setOnClickListener { if (binding.buttonForegroundProcess.getText().startsWith("Start")) { ForegroundService.startService(requireContext(), "Starting service at ${getDateText()}") diff --git a/firebase-sessions/test-app/src/main/res/layout/fragment_first.xml b/firebase-sessions/test-app/src/main/res/layout/fragment_first.xml index af08e7e317e..b40bee65a09 100644 --- a/firebase-sessions/test-app/src/main/res/layout/fragment_first.xml +++ b/firebase-sessions/test-app/src/main/res/layout/fragment_first.xml @@ -55,13 +55,30 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/button_anr" /> +