am 18d669dc: Merge "Added logging to debug empty keyguard state" into mnc-dev
* commit '18d669dc597dc4997ee8d96f38cf138ae31a0cdf': Added logging to debug empty keyguard state
This commit is contained in:
@@ -777,6 +777,15 @@ public abstract class PanelView extends FrameLayout {
|
|||||||
|
|
||||||
public void setExpandedFraction(float frac) {
|
public void setExpandedFraction(float frac) {
|
||||||
setExpandedHeight(getMaxPanelHeight() * frac);
|
setExpandedHeight(getMaxPanelHeight() * frac);
|
||||||
|
if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD
|
||||||
|
&& mStatusBar.getBarState() == StatusBarState.KEYGUARD) {
|
||||||
|
if (frac == 0.0f) {
|
||||||
|
Log.i(PhoneStatusBar.TAG, "Panel collapsed! Stacktrace: "
|
||||||
|
+ Log.getStackTraceString(new Throwable()));
|
||||||
|
} else if (frac == 1.0f) {
|
||||||
|
mStatusBar.endWindowManagerLogging();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getExpandedHeight() {
|
public float getExpandedHeight() {
|
||||||
@@ -808,6 +817,11 @@ public abstract class PanelView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void collapse(boolean delayed, float speedUpFactor) {
|
public void collapse(boolean delayed, float speedUpFactor) {
|
||||||
|
if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD
|
||||||
|
&& mStatusBar.getBarState() == StatusBarState.KEYGUARD) {
|
||||||
|
Log.i(PhoneStatusBar.TAG, "Panel collapsed! Stacktrace: "
|
||||||
|
+ Log.getStackTraceString(new Throwable()));
|
||||||
|
}
|
||||||
if (DEBUG) logf("collapse: " + this);
|
if (DEBUG) logf("collapse: " + this);
|
||||||
if (mPeekPending || mPeekAnimator != null) {
|
if (mPeekPending || mPeekAnimator != null) {
|
||||||
mCollapseAfterPeek = true;
|
mCollapseAfterPeek = true;
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
|||||||
HeadsUpManager.OnHeadsUpChangedListener {
|
HeadsUpManager.OnHeadsUpChangedListener {
|
||||||
static final String TAG = "PhoneStatusBar";
|
static final String TAG = "PhoneStatusBar";
|
||||||
public static final boolean DEBUG = BaseStatusBar.DEBUG;
|
public static final boolean DEBUG = BaseStatusBar.DEBUG;
|
||||||
|
public static final boolean DEBUG_EMPTY_KEYGUARD = true;
|
||||||
public static final boolean SPEW = false;
|
public static final boolean SPEW = false;
|
||||||
public static final boolean DUMPTRUCK = true; // extra dumpsys info
|
public static final boolean DUMPTRUCK = true; // extra dumpsys info
|
||||||
public static final boolean DEBUG_GESTURES = false;
|
public static final boolean DEBUG_GESTURES = false;
|
||||||
@@ -2003,6 +2004,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
|||||||
mStatusBarWindowManager.setPanelExpanded(isExpanded);
|
mStatusBarWindowManager.setPanelExpanded(isExpanded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void endWindowManagerLogging() {
|
||||||
|
mStatusBarWindowManager.setLogState(false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All changes to the status bar and notifications funnel through here and are batched.
|
* All changes to the status bar and notifications funnel through here and are batched.
|
||||||
*/
|
*/
|
||||||
@@ -3547,6 +3552,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
|||||||
// Make our window larger and the panel expanded.
|
// Make our window larger and the panel expanded.
|
||||||
makeExpandedVisible(true);
|
makeExpandedVisible(true);
|
||||||
mNotificationPanel.instantExpand();
|
mNotificationPanel.instantExpand();
|
||||||
|
if (DEBUG_EMPTY_KEYGUARD) {
|
||||||
|
mStatusBarWindowManager.setLogState(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void instantCollapseNotificationPanel() {
|
private void instantCollapseNotificationPanel() {
|
||||||
|
|||||||
@@ -20,12 +20,14 @@ import android.content.Context;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.EventLog;
|
import android.util.EventLog;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
|
|
||||||
import com.android.systemui.EventLogTags;
|
import com.android.systemui.EventLogTags;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
|
|
||||||
public class PhoneStatusBarView extends PanelBar {
|
public class PhoneStatusBarView extends PanelBar {
|
||||||
private static final String TAG = "PhoneStatusBarView";
|
private static final String TAG = "PhoneStatusBarView";
|
||||||
@@ -108,7 +110,11 @@ public class PhoneStatusBarView extends PanelBar {
|
|||||||
@Override
|
@Override
|
||||||
public void onAllPanelsCollapsed() {
|
public void onAllPanelsCollapsed() {
|
||||||
super.onAllPanelsCollapsed();
|
super.onAllPanelsCollapsed();
|
||||||
|
if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD
|
||||||
|
&& mBar.getBarState() == StatusBarState.KEYGUARD) {
|
||||||
|
Log.i(PhoneStatusBar.TAG, "Panel collapsed! Stacktrace: "
|
||||||
|
+ Log.getStackTraceString(new Throwable()));
|
||||||
|
}
|
||||||
// Close the status bar in the next frame so we can show the end of the animation.
|
// Close the status bar in the next frame so we can show the end of the animation.
|
||||||
postOnAnimation(new Runnable() {
|
postOnAnimation(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.pm.ActivityInfo;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -31,6 +32,8 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
|
|||||||
import com.android.systemui.statusbar.BaseStatusBar;
|
import com.android.systemui.statusbar.BaseStatusBar;
|
||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encapsulates all logic for the status bar window state management.
|
* Encapsulates all logic for the status bar window state management.
|
||||||
*/
|
*/
|
||||||
@@ -45,6 +48,7 @@ public class StatusBarWindowManager {
|
|||||||
private final boolean mKeyguardScreenRotation;
|
private final boolean mKeyguardScreenRotation;
|
||||||
|
|
||||||
private final State mCurrentState = new State();
|
private final State mCurrentState = new State();
|
||||||
|
private boolean mLogState;
|
||||||
|
|
||||||
public StatusBarWindowManager(Context context) {
|
public StatusBarWindowManager(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@@ -129,9 +133,7 @@ public class StatusBarWindowManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void applyHeight(State state) {
|
private void applyHeight(State state) {
|
||||||
boolean expanded = !state.forceCollapsed && (state.isKeyguardShowingAndNotOccluded()
|
boolean expanded = isExpanded(state);
|
||||||
|| state.panelVisible || state.keyguardFadingAway || state.bouncerShowing
|
|
||||||
|| state.headsUpShowing);
|
|
||||||
if (expanded) {
|
if (expanded) {
|
||||||
mLpChanged.height = ViewGroup.LayoutParams.MATCH_PARENT;
|
mLpChanged.height = ViewGroup.LayoutParams.MATCH_PARENT;
|
||||||
} else {
|
} else {
|
||||||
@@ -139,6 +141,12 @@ public class StatusBarWindowManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isExpanded(State state) {
|
||||||
|
return !state.forceCollapsed && (state.isKeyguardShowingAndNotOccluded()
|
||||||
|
|| state.panelVisible || state.keyguardFadingAway || state.bouncerShowing
|
||||||
|
|| state.headsUpShowing);
|
||||||
|
}
|
||||||
|
|
||||||
private void applyFitsSystemWindows(State state) {
|
private void applyFitsSystemWindows(State state) {
|
||||||
mStatusBarView.setFitsSystemWindows(!state.isKeyguardShowingAndNotOccluded());
|
mStatusBarView.setFitsSystemWindows(!state.isKeyguardShowingAndNotOccluded());
|
||||||
}
|
}
|
||||||
@@ -176,6 +184,9 @@ public class StatusBarWindowManager {
|
|||||||
applyFitsSystemWindows(state);
|
applyFitsSystemWindows(state);
|
||||||
applyModalFlag(state);
|
applyModalFlag(state);
|
||||||
if (mLp.copyFrom(mLpChanged) != 0) {
|
if (mLp.copyFrom(mLpChanged) != 0) {
|
||||||
|
if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD && mLogState) {
|
||||||
|
logCurrentState();
|
||||||
|
}
|
||||||
mWindowManager.updateViewLayout(mStatusBarView, mLp);
|
mWindowManager.updateViewLayout(mStatusBarView, mLp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,6 +283,21 @@ public class StatusBarWindowManager {
|
|||||||
apply(mCurrentState);
|
apply(mCurrentState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLogState(boolean logState) {
|
||||||
|
mLogState = logState;
|
||||||
|
if (logState) {
|
||||||
|
Log.w(PhoneStatusBar.TAG, "===== Started logging WM state changes =====");
|
||||||
|
logCurrentState();
|
||||||
|
} else {
|
||||||
|
Log.w(PhoneStatusBar.TAG, "===== Finished logging WM state changes =====");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void logCurrentState() {
|
||||||
|
Log.i(PhoneStatusBar.TAG, mCurrentState.toString()
|
||||||
|
+ "\n Expanded: " + isExpanded(mCurrentState));
|
||||||
|
}
|
||||||
|
|
||||||
private static class State {
|
private static class State {
|
||||||
boolean keyguardShowing;
|
boolean keyguardShowing;
|
||||||
boolean keyguardOccluded;
|
boolean keyguardOccluded;
|
||||||
@@ -294,5 +320,31 @@ public class StatusBarWindowManager {
|
|||||||
private boolean isKeyguardShowingAndNotOccluded() {
|
private boolean isKeyguardShowingAndNotOccluded() {
|
||||||
return keyguardShowing && !keyguardOccluded;
|
return keyguardShowing && !keyguardOccluded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
String newLine = "\n";
|
||||||
|
result.append("Window State {");
|
||||||
|
result.append(newLine);
|
||||||
|
|
||||||
|
Field[] fields = this.getClass().getDeclaredFields();
|
||||||
|
|
||||||
|
// Print field names paired with their values
|
||||||
|
for (Field field : fields) {
|
||||||
|
result.append(" ");
|
||||||
|
try {
|
||||||
|
result.append(field.getName());
|
||||||
|
result.append(": ");
|
||||||
|
//requires access to private field:
|
||||||
|
result.append(field.get(this));
|
||||||
|
} catch (IllegalAccessException ex) {
|
||||||
|
}
|
||||||
|
result.append(newLine);
|
||||||
|
}
|
||||||
|
result.append("}");
|
||||||
|
|
||||||
|
return result.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user