Add debug logs to ActivityTracker
Flag: N/A
Bug: 274280837
Test: checked logs during gestures and 3-button, and dumped Launcher logs
Change-Id: Icbb1edb0e59fa9cce9364e39823a664cda4ebf1b
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index e7d2843..269603c 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -2651,6 +2651,7 @@
mModel.dumpState(prefix, fd, writer, args);
mOverlayManager.dump(prefix, writer);
+ ACTIVITY_TRACKER.dump(prefix, writer);
}
/**
diff --git a/src/com/android/launcher3/dragndrop/AddItemActivity.java b/src/com/android/launcher3/dragndrop/AddItemActivity.java
index 213c458..29aa216 100644
--- a/src/com/android/launcher3/dragndrop/AddItemActivity.java
+++ b/src/com/android/launcher3/dragndrop/AddItemActivity.java
@@ -258,7 +258,7 @@
.addCategory(Intent.CATEGORY_HOME)
.setPackage(getPackageName())
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- Launcher.ACTIVITY_TRACKER.registerCallback(listener);
+ Launcher.ACTIVITY_TRACKER.registerCallback(listener, "AddItemActivity.onLongClick");
startActivity(homeIntent, ApiWrapper.createFadeOutAnimOptions(this).toBundle());
logCommand(LAUNCHER_ADD_EXTERNAL_ITEM_DRAGGED);
mFinishOnPause = true;
diff --git a/src/com/android/launcher3/util/ActivityTracker.java b/src/com/android/launcher3/util/ActivityTracker.java
index 405d2bb..95a0511 100644
--- a/src/com/android/launcher3/util/ActivityTracker.java
+++ b/src/com/android/launcher3/util/ActivityTracker.java
@@ -18,10 +18,13 @@
import static com.android.launcher3.testing.shared.TestProtocol.GET_FROM_RECENTS_FAILURE;
import static com.android.launcher3.testing.shared.TestProtocol.testLogD;
+import android.util.Log;
+
import androidx.annotation.Nullable;
import com.android.launcher3.BaseActivity;
+import java.io.PrintWriter;
import java.lang.ref.WeakReference;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -31,6 +34,8 @@
*/
public final class ActivityTracker<T extends BaseActivity> {
+ private static final String TAG = "ActivityTracker";
+
private WeakReference<T> mCurrentActivity = new WeakReference<>(null);
private CopyOnWriteArrayList<SchedulerCallback<T>> mCallbacks = new CopyOnWriteArrayList<>();
@@ -57,12 +62,13 @@
*
* @param callback The callback to call init() on when the activity is ready.
*/
- public void registerCallback(SchedulerCallback<T> callback) {
+ public void registerCallback(SchedulerCallback<T> callback, String reasonString) {
+ Log.d(TAG, "Registering callback: " + callback + ", reason=" + reasonString);
T activity = mCurrentActivity.get();
mCallbacks.add(callback);
if (activity != null) {
if (!callback.init(activity, activity.isStarted())) {
- unregisterCallback(callback);
+ unregisterCallback(callback, "ActivityTracker.registerCallback: Intent handled");
}
}
}
@@ -70,7 +76,8 @@
/**
* Unregisters a registered callback.
*/
- public void unregisterCallback(SchedulerCallback<T> callback) {
+ public void unregisterCallback(SchedulerCallback<T> callback, String reasonString) {
+ Log.d(TAG, "Unregistering callback: " + callback + ", reason=" + reasonString);
mCallbacks.remove(callback);
}
@@ -87,16 +94,25 @@
private boolean handleIntent(T activity, boolean alreadyOnHome) {
boolean handled = false;
+ if (!mCallbacks.isEmpty()) {
+ Log.d(TAG, "handleIntent: mCallbacks=" + mCallbacks);
+ }
for (SchedulerCallback<T> cb : mCallbacks) {
if (!cb.init(activity, alreadyOnHome)) {
// Callback doesn't want any more updates
- unregisterCallback(cb);
+ unregisterCallback(cb, "ActivityTracker.handleIntent: Intent handled");
}
handled = true;
}
return handled;
}
+ public void dump(String prefix, PrintWriter writer) {
+ writer.println(prefix + "ActivityTracker:");
+ writer.println(prefix + "\tmCurrentActivity=" + mCurrentActivity.get());
+ writer.println(prefix + "\tmCallbacks=" + mCallbacks);
+ }
+
public interface SchedulerCallback<T extends BaseActivity> {
/**