Adding more logging of the state to the bug report.
Bug: 28009206 Change-Id: I0efc513bb6fc5ea4c9724b0a411ca5d60a71f27e
This commit is contained in:
@@ -78,6 +78,9 @@ import com.android.systemui.recents.views.RecentsView;
|
||||
import com.android.systemui.recents.views.SystemBarScrimViews;
|
||||
import com.android.systemui.statusbar.BaseStatusBar;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
/**
|
||||
* The main Recents activity that is started from AlternateRecentsComponent.
|
||||
*/
|
||||
@@ -733,4 +736,20 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
|
||||
super.dump(prefix, fd, writer, args);
|
||||
String id = Integer.toHexString(System.identityHashCode(this));
|
||||
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.print(" visible="); writer.print(mIsVisible ? "Y" : "N");
|
||||
writer.print(" [0x"); writer.print(id); writer.print("]");
|
||||
writer.println();
|
||||
|
||||
if (mRecentsView != null) {
|
||||
mRecentsView.dump(prefix, writer);
|
||||
}
|
||||
EventBus.getDefault().dump(prefix, writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import android.util.MutableBoolean;
|
||||
|
||||
import com.android.systemui.recents.misc.ReferenceCountedTrigger;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@@ -652,19 +653,43 @@ public class EventBus extends BroadcastReceiver {
|
||||
/**
|
||||
* @return a dump of the current state of the EventBus
|
||||
*/
|
||||
public String dump() {
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
writer.println(dumpInternal(prefix));
|
||||
}
|
||||
|
||||
public String dumpInternal(String prefix) {
|
||||
String innerPrefix = prefix + " ";
|
||||
String innerInnerPrefix = innerPrefix + " ";
|
||||
StringBuilder output = new StringBuilder();
|
||||
output.append(prefix);
|
||||
output.append("Registered class types:");
|
||||
output.append("\n");
|
||||
for (Class<?> clz : mSubscriberTypeMap.keySet()) {
|
||||
output.append("\t");
|
||||
ArrayList<Class<?>> subsciberTypes = new ArrayList<>(mSubscriberTypeMap.keySet());
|
||||
Collections.sort(subsciberTypes, new Comparator<Class<?>>() {
|
||||
@Override
|
||||
public int compare(Class<?> o1, Class<?> o2) {
|
||||
return o1.getSimpleName().compareTo(o2.getSimpleName());
|
||||
}
|
||||
});
|
||||
for (int i = 0; i < subsciberTypes.size(); i++) {
|
||||
Class<?> clz = subsciberTypes.get(i);
|
||||
output.append(innerPrefix);
|
||||
output.append(clz.getSimpleName());
|
||||
output.append("\n");
|
||||
}
|
||||
output.append(prefix);
|
||||
output.append("Event map:");
|
||||
output.append("\n");
|
||||
for (Class<?> clz : mEventTypeMap.keySet()) {
|
||||
output.append("\t");
|
||||
ArrayList<Class<?>> classes = new ArrayList<>(mEventTypeMap.keySet());
|
||||
Collections.sort(classes, new Comparator<Class<?>>() {
|
||||
@Override
|
||||
public int compare(Class<?> o1, Class<?> o2) {
|
||||
return o1.getSimpleName().compareTo(o2.getSimpleName());
|
||||
}
|
||||
});
|
||||
for (int i = 0; i < classes.size(); i++) {
|
||||
Class<?> clz = classes.get(i);
|
||||
output.append(innerPrefix);
|
||||
output.append(clz.getSimpleName());
|
||||
output.append(" -> ");
|
||||
output.append("\n");
|
||||
@@ -673,7 +698,7 @@ public class EventBus extends BroadcastReceiver {
|
||||
Object subscriber = handler.subscriber.getReference();
|
||||
if (subscriber != null) {
|
||||
String id = Integer.toHexString(System.identityHashCode(subscriber));
|
||||
output.append("\t\t");
|
||||
output.append(innerInnerPrefix);
|
||||
output.append(subscriber.getClass().getSimpleName());
|
||||
output.append(" [0x" + id + ", #" + handler.priority + "]");
|
||||
output.append("\n");
|
||||
|
||||
@@ -243,4 +243,14 @@ public class Utilities {
|
||||
public static float dpToPx(Resources res, float dp) {
|
||||
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, res.getDisplayMetrics());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a lightweight dump of a rect.
|
||||
*/
|
||||
public static String dumpRect(Rect r) {
|
||||
if (r == null) {
|
||||
return "N:0,0-0,0";
|
||||
}
|
||||
return r.left + "," + r.top + "-" + r.right + "," + r.bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.recents.misc.SystemServicesProxy;
|
||||
import com.android.systemui.recents.misc.Utilities;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -37,6 +38,9 @@ import java.util.Objects;
|
||||
* A task represents the top most task in the system's task stack.
|
||||
*/
|
||||
public class Task {
|
||||
|
||||
public static final String TAG = "Task";
|
||||
|
||||
/* Task callbacks */
|
||||
public interface TaskCallbacks {
|
||||
/* Notifies when a task has been bound */
|
||||
@@ -100,7 +104,8 @@ public class Task {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "t" + id + ", s" + stackId + ", u" + userId;
|
||||
return "id=" + id + " stackId=" + stackId + " user=" + userId + " lastActiveTime=" +
|
||||
lastActiveTime;
|
||||
}
|
||||
|
||||
private void updateHashCode() {
|
||||
@@ -306,4 +311,13 @@ public class Task {
|
||||
public String toString() {
|
||||
return "[" + key.toString() + "] " + title;
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
writer.print(prefix); writer.print(key);
|
||||
if (affiliationTaskId != key.id) {
|
||||
writer.print(" "); writer.print("affTaskId=" + affiliationTaskId);
|
||||
}
|
||||
writer.print(" "); writer.print(title);
|
||||
writer.println();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ import com.android.systemui.recents.views.AnimationProps;
|
||||
import com.android.systemui.recents.views.DropTarget;
|
||||
import com.android.systemui.recents.views.TaskStackLayoutAlgorithm;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@@ -208,6 +209,8 @@ class FilteredTaskList {
|
||||
*/
|
||||
public class TaskStack {
|
||||
|
||||
private static final String TAG = "TaskStack";
|
||||
|
||||
/** Task stack callbacks */
|
||||
public interface TaskStackCallbacks {
|
||||
/**
|
||||
@@ -725,7 +728,9 @@ public class TaskStack {
|
||||
/** Finds the task with the specified task id. */
|
||||
public Task findTaskWithId(int taskId) {
|
||||
ArrayList<Task> tasks = computeAllTasksList();
|
||||
for (Task task : tasks) {
|
||||
int taskCount = tasks.size();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
Task task = tasks.get(i);
|
||||
if (task.key.id == taskId) {
|
||||
return task;
|
||||
}
|
||||
@@ -880,7 +885,10 @@ public class TaskStack {
|
||||
ArraySet<ComponentName> existingComponents = new ArraySet<>();
|
||||
ArraySet<ComponentName> removedComponents = new ArraySet<>();
|
||||
ArrayList<Task.TaskKey> taskKeys = getTaskKeys();
|
||||
for (Task.TaskKey t : taskKeys) {
|
||||
int taskKeyCount = taskKeys.size();
|
||||
for (int i = 0; i < taskKeyCount; i++) {
|
||||
Task.TaskKey t = taskKeys.get(i);
|
||||
|
||||
// Skip if this doesn't apply to the current user
|
||||
if (t.userId != userId) continue;
|
||||
|
||||
@@ -903,8 +911,10 @@ public class TaskStack {
|
||||
@Override
|
||||
public String toString() {
|
||||
String str = "Stack Tasks (" + mStackTaskList.size() + "):\n";
|
||||
for (Task t : mStackTaskList.getTasks()) {
|
||||
str += " " + t.toString() + "\n";
|
||||
ArrayList<Task> tasks = mStackTaskList.getTasks();
|
||||
int taskCount = tasks.size();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
str += " " + tasks.get(i).toString() + "\n";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
@@ -921,4 +931,17 @@ public class TaskStack {
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
String innerPrefix = prefix + " ";
|
||||
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.print(" numStackTasks="); writer.print(mStackTaskList.size());
|
||||
writer.println();
|
||||
ArrayList<Task> tasks = mStackTaskList.getTasks();
|
||||
int taskCount = tasks.size();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
tasks.get(i).dump(innerPrefix, writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,8 @@ import com.android.systemui.recents.views.RecentsTransitionHelper.AnimationSpecC
|
||||
import com.android.systemui.stackdivider.WindowManagerProxy;
|
||||
import com.android.systemui.statusbar.FlingAnimationUtils;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -83,6 +85,8 @@ import java.util.List;
|
||||
*/
|
||||
public class RecentsView extends FrameLayout {
|
||||
|
||||
private static final String TAG = "RecentsView";
|
||||
|
||||
private static final int DOCK_AREA_OVERLAY_TRANSITION_DURATION = 135;
|
||||
private static final int DEFAULT_UPDATE_SCRIM_DURATION = 200;
|
||||
private static final float DEFAULT_SCRIM_ALPHA = 0.33f;
|
||||
@@ -758,4 +762,22 @@ public class RecentsView extends FrameLayout {
|
||||
top + mStackActionButton.getMeasuredHeight());
|
||||
return actionButtonRect;
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
String innerPrefix = prefix + " ";
|
||||
String id = Integer.toHexString(System.identityHashCode(this));
|
||||
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.print(" awaitingFirstLayout="); writer.print(mAwaitingFirstLayout ? "Y" : "N");
|
||||
writer.print(" insets="); writer.print(Utilities.dumpRect(mSystemInsets));
|
||||
writer.print(" [0x"); writer.print(id); writer.print("]");
|
||||
writer.println();
|
||||
|
||||
if (mStack != null) {
|
||||
mStack.dump(innerPrefix, writer);
|
||||
}
|
||||
if (mTaskStackView != null) {
|
||||
mTaskStackView.dump(innerPrefix, writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.android.systemui.recents.misc.Utilities;
|
||||
import com.android.systemui.recents.model.Task;
|
||||
import com.android.systemui.recents.model.TaskStack;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -109,6 +110,8 @@ class Range {
|
||||
*/
|
||||
public class TaskStackLayoutAlgorithm {
|
||||
|
||||
private static final String TAG = "TaskStackLayoutAlgorithm";
|
||||
|
||||
// The distribution of view bounds alpha
|
||||
// XXX: This is a hack because you can currently set the max alpha to be > 1f
|
||||
public static final float OUTLINE_ALPHA_MIN_VALUE = 0f;
|
||||
@@ -684,7 +687,6 @@ public class TaskStackLayoutAlgorithm {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Returns the current stack state.
|
||||
*/
|
||||
public StackState getStackState() {
|
||||
@@ -1157,4 +1159,44 @@ public class TaskStackLayoutAlgorithm {
|
||||
mBackOfStackTransform.visible = true;
|
||||
mFrontOfStackTransform.visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
String innerPrefix = prefix + " ";
|
||||
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.write(" numStackTasks="); writer.write(mNumStackTasks);
|
||||
writer.println();
|
||||
|
||||
writer.print(innerPrefix);
|
||||
writer.print("insets="); writer.print(Utilities.dumpRect(mSystemInsets));
|
||||
writer.print(" stack="); writer.print(Utilities.dumpRect(mStackRect));
|
||||
writer.print(" task="); writer.print(Utilities.dumpRect(mTaskRect));
|
||||
writer.print(" freeform="); writer.print(Utilities.dumpRect(mFreeformRect));
|
||||
writer.print(" actionButton="); writer.print(Utilities.dumpRect(mStackActionButtonRect));
|
||||
writer.println();
|
||||
|
||||
writer.print(innerPrefix);
|
||||
writer.print("minScroll="); writer.print(mMinScrollP);
|
||||
writer.print(" maxScroll="); writer.print(mMaxScrollP);
|
||||
writer.print(" initialScroll="); writer.print(mInitialScrollP);
|
||||
writer.println();
|
||||
|
||||
writer.print(innerPrefix);
|
||||
writer.print("focusState="); writer.print(mFocusState);
|
||||
writer.println();
|
||||
|
||||
if (mTaskIndexOverrideMap.size() > 0) {
|
||||
for (int i = mTaskIndexOverrideMap.size() - 1; i >= 0; i--) {
|
||||
int taskId = mTaskIndexOverrideMap.keyAt(i);
|
||||
float x = mTaskIndexMap.get(taskId);
|
||||
float overrideX = mTaskIndexOverrideMap.get(taskId, 0f);
|
||||
|
||||
writer.print(innerPrefix);
|
||||
writer.print("taskId= "); writer.print(taskId);
|
||||
writer.print(" x= "); writer.print(x);
|
||||
writer.print(" overrideX= "); writer.print(overrideX);
|
||||
writer.println();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,6 +90,7 @@ import com.android.systemui.recents.misc.Utilities;
|
||||
import com.android.systemui.recents.model.Task;
|
||||
import com.android.systemui.recents.model.TaskStack;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -102,6 +103,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
|
||||
TaskStackLayoutAlgorithm.TaskStackLayoutAlgorithmCallbacks,
|
||||
ViewPool.ViewPoolConsumer<TaskView, Task> {
|
||||
|
||||
private static final String TAG = "TaskStackView";
|
||||
|
||||
private final static String KEY_SAVED_STATE_SUPER = "saved_instance_state_super";
|
||||
private final static String KEY_SAVED_STATE_LAYOUT_FOCUSED_STATE =
|
||||
"saved_instance_state_layout_focused_state";
|
||||
@@ -2067,4 +2070,37 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
|
||||
mScreenPinningEnabled = ssp.getSystemSetting(getContext(),
|
||||
Settings.System.LOCK_TO_APP_ENABLED) != 0;
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
String innerPrefix = prefix + " ";
|
||||
String id = Integer.toHexString(System.identityHashCode(this));
|
||||
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.print(" hasDefRelayout=");
|
||||
writer.print(mDeferredTaskViewLayoutAnimation != null ? "Y" : "N");
|
||||
writer.print(" clipDirty="); writer.print(mTaskViewsClipDirty ? "Y" : "N");
|
||||
writer.print(" awaitingFirstLayout="); writer.print(mAwaitingFirstLayout ? "Y" : "N");
|
||||
writer.print(" initialState="); writer.print(mInitialState);
|
||||
writer.print(" inMeasureLayout="); writer.print(mInMeasureLayout ? "Y" : "N");
|
||||
writer.print(" enterAnimCompleted="); writer.print(mEnterAnimationComplete ? "Y" : "N");
|
||||
writer.print(" touchExplorationOn="); writer.print(mTouchExplorationEnabled ? "Y" : "N");
|
||||
writer.print(" screenPinningOn="); writer.print(mScreenPinningEnabled ? "Y" : "N");
|
||||
writer.print(" numIgnoreTasks="); writer.print(mIgnoreTasks.size());
|
||||
writer.print(" numViewPool="); writer.print(mViewPool.getViews().size());
|
||||
writer.print(" stableStackBounds="); writer.print(Utilities.dumpRect(mStableStackBounds));
|
||||
writer.print(" stackBounds="); writer.print(Utilities.dumpRect(mStackBounds));
|
||||
writer.print(" stableWindow="); writer.print(Utilities.dumpRect(mStableWindowRect));
|
||||
writer.print(" window="); writer.print(Utilities.dumpRect(mWindowRect));
|
||||
writer.print(" [0x"); writer.print(id); writer.print("]");
|
||||
writer.println();
|
||||
|
||||
if (mFocusedTask != null) {
|
||||
writer.print(innerPrefix);
|
||||
writer.print("Focused task: ");
|
||||
mFocusedTask.dump(innerPrefix, writer);
|
||||
}
|
||||
|
||||
mLayoutAlgorithm.dump(innerPrefix, writer);
|
||||
mStackScroller.dump(innerPrefix, writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ import com.android.systemui.Interpolators;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.recents.misc.Utilities;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
/* The scrolling logic for a TaskStackView */
|
||||
public class TaskStackViewScroller {
|
||||
|
||||
@@ -246,4 +248,10 @@ public class TaskStackViewScroller {
|
||||
mScroller.abortAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
public void dump(String prefix, PrintWriter writer) {
|
||||
writer.print(prefix); writer.print(TAG);
|
||||
writer.print(" stackScroll:"); writer.print(mStackScrollP);
|
||||
writer.println();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user