summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSelim Cinek <cinek@google.com>2015-06-04 13:50:10 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-04 13:50:12 +0000
commit18d669dc597dc4997ee8d96f38cf138ae31a0cdf (patch)
treec9f74cf868ea8f1c93b1554e5937b197d2886426
parent6ef21fa1c22aa750c484f8841056cdc002f7c55f (diff)
parent6a1bd2b3dbc993e63632f12819d77ae5fa872a06 (diff)
downloadframeworks_base-18d669dc597dc4997ee8d96f38cf138ae31a0cdf.zip
frameworks_base-18d669dc597dc4997ee8d96f38cf138ae31a0cdf.tar.gz
frameworks_base-18d669dc597dc4997ee8d96f38cf138ae31a0cdf.tar.bz2
Merge "Added logging to debug empty keyguard state" into mnc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java58
4 files changed, 84 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 6d35ff0..9d4997c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -777,6 +777,15 @@ public abstract class PanelView extends FrameLayout {
public void setExpandedFraction(float 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() {
@@ -808,6 +817,11 @@ public abstract class PanelView extends FrameLayout {
}
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 (mPeekPending || mPeekAnimator != null) {
mCollapseAfterPeek = true;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index def95aa..7c7bec9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -185,6 +185,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
HeadsUpManager.OnHeadsUpChangedListener {
static final String TAG = "PhoneStatusBar";
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 DUMPTRUCK = true; // extra dumpsys info
public static final boolean DEBUG_GESTURES = false;
@@ -2003,6 +2004,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mStatusBarWindowManager.setPanelExpanded(isExpanded);
}
+ public void endWindowManagerLogging() {
+ mStatusBarWindowManager.setLogState(false);
+ }
+
/**
* 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.
makeExpandedVisible(true);
mNotificationPanel.instantExpand();
+ if (DEBUG_EMPTY_KEYGUARD) {
+ mStatusBarWindowManager.setLogState(true);
+ }
}
private void instantCollapseNotificationPanel() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index aa499ad..b7e675d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -20,12 +20,14 @@ import android.content.Context;
import android.content.res.Resources;
import android.util.AttributeSet;
import android.util.EventLog;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import com.android.systemui.EventLogTags;
import com.android.systemui.R;
+import com.android.systemui.statusbar.StatusBarState;
public class PhoneStatusBarView extends PanelBar {
private static final String TAG = "PhoneStatusBarView";
@@ -108,7 +110,11 @@ public class PhoneStatusBarView extends PanelBar {
@Override
public void 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.
postOnAnimation(new Runnable() {
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
index de42643..58017d0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
@@ -21,6 +21,7 @@ import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.graphics.PixelFormat;
import android.os.SystemProperties;
+import android.util.Log;
import android.view.Gravity;
import android.view.View;
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.StatusBarState;
+import java.lang.reflect.Field;
+
/**
* Encapsulates all logic for the status bar window state management.
*/
@@ -45,6 +48,7 @@ public class StatusBarWindowManager {
private final boolean mKeyguardScreenRotation;
private final State mCurrentState = new State();
+ private boolean mLogState;
public StatusBarWindowManager(Context context) {
mContext = context;
@@ -129,9 +133,7 @@ public class StatusBarWindowManager {
}
private void applyHeight(State state) {
- boolean expanded = !state.forceCollapsed && (state.isKeyguardShowingAndNotOccluded()
- || state.panelVisible || state.keyguardFadingAway || state.bouncerShowing
- || state.headsUpShowing);
+ boolean expanded = isExpanded(state);
if (expanded) {
mLpChanged.height = ViewGroup.LayoutParams.MATCH_PARENT;
} 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) {
mStatusBarView.setFitsSystemWindows(!state.isKeyguardShowingAndNotOccluded());
}
@@ -176,6 +184,9 @@ public class StatusBarWindowManager {
applyFitsSystemWindows(state);
applyModalFlag(state);
if (mLp.copyFrom(mLpChanged) != 0) {
+ if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD && mLogState) {
+ logCurrentState();
+ }
mWindowManager.updateViewLayout(mStatusBarView, mLp);
}
}
@@ -272,6 +283,21 @@ public class StatusBarWindowManager {
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 {
boolean keyguardShowing;
boolean keyguardOccluded;
@@ -294,5 +320,31 @@ public class StatusBarWindowManager {
private boolean isKeyguardShowingAndNotOccluded() {
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();
+ }
}
}