in perf/app/src/main/java/com/google/firebase/quickstart/perfmon/kotlin/MainActivity.kt [42:86]
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener {
// write 40 chars of random text to file
val contentFile = File(this.filesDir, CONTENT_FILE)
writeStringToFile(contentFile.absolutePath, "${getRandomString(40)}\n")
.addOnCompleteListener { task ->
if (!task.isSuccessful) {
Log.e(TAG, "Unable to write to file", task.exception)
return@addOnCompleteListener
}
loadFileFromDisk()
}
}
// Begin tracing app startup tasks.
trace = Firebase.performance.newTrace(STARTUP_TRACE_NAME)
Log.d(TAG, "Starting trace")
trace.start()
loadImageFromWeb()
// Increment the counter of number of requests sent in the trace.
Log.d(TAG, "Incrementing number of requests counter in trace")
trace.incrementMetric(REQUESTS_COUNTER_NAME, 1)
loadFileFromDisk()
// Wait for app startup tasks to complete asynchronously and stop the trace.
Thread(Runnable {
try {
numStartupTasks.await()
} catch (e: InterruptedException) {
Log.e(TAG, "Unable to wait for startup task completion.")
} finally {
Log.d(TAG, "Stopping trace")
trace.stop()
runOnUiThread {
Toast.makeText(this, "Trace completed",
Toast.LENGTH_SHORT).show()
}
}
}).start()
}