@@ -212,7 +212,6 @@ private void recordFirstDrawDone() {
212
212
}
213
213
Timer start = getStartTimer ();
214
214
this .firstDrawDone = clock .getTime ();
215
- int subtraceCount = this .experimentTtid .getSubtracesCount ();
216
215
this .experimentTtid
217
216
.setClientStartTimeUs (start .getMicros ())
218
217
.setDurationUs (start .getDurationMicros (this .firstDrawDone ));
@@ -234,7 +233,7 @@ private void recordFirstDrawDone() {
234
233
235
234
this .experimentTtid .addPerfSessions (this .startSession .build ());
236
235
237
- if (subtraceCount > 0 ) {
236
+ if (isExperimentTraceDone () ) {
238
237
executorService .execute (() -> this .logExperimentTtid (this .experimentTtid ));
239
238
240
239
if (isRegisteredForLifecycleCallbacks ) {
@@ -250,7 +249,6 @@ private void recordFirstDrawDonePreDraw() {
250
249
}
251
250
Timer start = getStartTimer ();
252
251
this .preDraw = clock .getTime ();
253
- int subtraceCount = this .experimentTtid .getSubtracesCount ();
254
252
TraceMetric .Builder subtrace =
255
253
TraceMetric .newBuilder ()
256
254
.setName ("_experiment_preDraw" )
@@ -265,7 +263,7 @@ private void recordFirstDrawDonePreDraw() {
265
263
.setDurationUs (start .getDurationUptimeMicros (this .preDraw ));
266
264
this .experimentTtid .addSubtraces (subtrace .build ());
267
265
268
- if (subtraceCount > 0 ) {
266
+ if (isExperimentTraceDone () ) {
269
267
executorService .execute (() -> this .logExperimentTtid (this .experimentTtid ));
270
268
271
269
if (isRegisteredForLifecycleCallbacks ) {
@@ -275,6 +273,10 @@ private void recordFirstDrawDonePreDraw() {
275
273
}
276
274
}
277
275
276
+ private boolean isExperimentTraceDone () {
277
+ return this .preDraw != null && this .firstDrawDone != null ;
278
+ }
279
+
278
280
@ Override
279
281
public synchronized void onActivityCreated (Activity activity , Bundle savedInstanceState ) {
280
282
if (isStartedFromBackground || onCreateTime != null // An activity already called onCreate()
@@ -385,7 +387,8 @@ public void onActivityPaused(Activity activity) {
385
387
return ;
386
388
}
387
389
Timer onPauseTime = clock .getTime ();
388
- TraceMetric .Builder subtrace = TraceMetric .newBuilder ()
390
+ TraceMetric .Builder subtrace =
391
+ TraceMetric .newBuilder ()
389
392
.setName ("_experiment_onPause" )
390
393
.setClientStartTimeUs (onPauseTime .getMicros ())
391
394
.setDurationUs (getStartTimer ().getDurationMicros (onPauseTime ));
@@ -398,7 +401,8 @@ public void onActivityStopped(Activity activity) {
398
401
return ;
399
402
}
400
403
Timer onStopTime = clock .getTime ();
401
- TraceMetric .Builder subtrace = TraceMetric .newBuilder ()
404
+ TraceMetric .Builder subtrace =
405
+ TraceMetric .newBuilder ()
402
406
.setName ("_experiment_onStop" )
403
407
.setClientStartTimeUs (onStopTime .getMicros ())
404
408
.setDurationUs (getStartTimer ().getDurationMicros (onStopTime ));
0 commit comments