Fixed when CarLauncher calls reportFullyDrawn().
Fixes: 135195601
Test: manual - build and deploy, verify "Fully drawn" appears in logs.
Change-Id: Iddeca0ff8a2616c8322bc3f26f56b7f2499ced12
(cherry picked from commit 3a34a562eaf9125c4baf66077c9429e4c5739043)
diff --git a/src/com/android/car/carlauncher/CarLauncher.java b/src/com/android/car/carlauncher/CarLauncher.java
index 4cedf6f..5108215 100644
--- a/src/com/android/car/carlauncher/CarLauncher.java
+++ b/src/com/android/car/carlauncher/CarLauncher.java
@@ -55,18 +55,20 @@
*/
public class CarLauncher extends FragmentActivity {
private static final String TAG = "CarLauncher";
+ private static final boolean DEBUG = false;
private ActivityView mActivityView;
- private boolean mActivityViewReady = false;
- private boolean mIsStarted = false;
+ private boolean mActivityViewReady;
+ private boolean mIsStarted;
/** Set to {@code true} once we've logged that the Activity is fully drawn. */
- private boolean mIsReadyLogged = false;
+ private boolean mIsReadyLogged;
private final ActivityView.StateCallback mActivityViewCallback =
new ActivityView.StateCallback() {
@Override
public void onActivityViewReady(ActivityView view) {
+ if (DEBUG) Log.d(TAG, "onActivityViewReady(" + getUserId() + ")");
mActivityViewReady = true;
startMapsInActivityView();
maybeLogReady();
@@ -74,11 +76,16 @@
@Override
public void onActivityViewDestroyed(ActivityView view) {
+ if (DEBUG) Log.d(TAG, "onActivityViewDestroyed(" + getUserId() + ")");
mActivityViewReady = false;
}
@Override
public void onTaskMovedToFront(int taskId) {
+ if (DEBUG) {
+ Log.d(TAG, "onTaskMovedToFront(" + getUserId() + "): started="
+ + mIsStarted);
+ }
try {
if (mIsStarted) {
ActivityManager am =
@@ -193,9 +200,21 @@
/** Logs that the Activity is ready. Used for startup time diagnostics. */
private void maybeLogReady() {
- if (mActivityViewReady && !mIsReadyLogged) {
+ if (DEBUG) {
+ Log.d(TAG, "maybeLogReady(" + getUserId() + "): activityReady=" + mActivityViewReady
+ + ", started=" + mIsStarted + ", alreadyLogged: " + mIsReadyLogged);
+ }
+ if (mActivityViewReady && mIsStarted) {
+ // We should report everytime - the Android framework will take care of logging just
+ // when it's effectivelly drawn for the first time, but....
reportFullyDrawn();
- mIsReadyLogged = true;
+ if (!mIsReadyLogged) {
+ // ... we want to manually check that the Log.i below (which is useful to show
+ // the user id) is only logged once (otherwise it would be logged everytime the user
+ // taps Home)
+ Log.i(TAG, "Launcher for user " + getUserId() + " is ready");
+ mIsReadyLogged = true;
+ }
}
}
}