in perf/app/src/main/java/com/google/firebase/quickstart/perfmon/java/MainActivity.java [54:110]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// write 40 chars of random text to file
File contentFile = new File(MainActivity.this.getFilesDir(), CONTENT_FILE);
writeStringToFile(contentFile.getAbsolutePath(), getRandomString(40) + "\n")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (!task.isSuccessful()) {
Log.e(TAG, "Unable to write to file", task.getException());
return;
}
loadFileFromDisk();
}
});
}
});
// Begin tracing app startup tasks.
mTrace = FirebasePerformance.getInstance().newTrace(STARTUP_TRACE_NAME);
Log.d(TAG, "Starting trace");
mTrace.start();
loadImageFromWeb();
// Increment the counter of number of requests sent in the trace.
Log.d(TAG, "Incrementing number of requests counter in trace");
mTrace.incrementMetric(REQUESTS_COUNTER_NAME, 1);
loadFileFromDisk();
// Wait for app startup tasks to complete asynchronously and stop the trace.
new Thread(new Runnable() {
@Override
public void run() {
try {
mNumStartupTasks.await();
} catch (InterruptedException e) {
Log.e(TAG, "Unable to wait for startup task completion.");
} finally {
Log.d(TAG, "Stopping trace");
mTrace.stop();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Trace completed",
Toast.LENGTH_SHORT).show();
}
});
}
}
}).start();
}