Loading packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +5 −2 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ import java.util.ArrayList; public abstract class BaseStatusBar extends SystemUI implements CommandQueue.Callbacks { static final String TAG = "StatusBar"; private static final boolean DEBUG = false; public static final String TAG = "StatusBar"; public static final boolean DEBUG = false; public static final boolean MULTIUSER_DEBUG = false; protected static final int MSG_TOGGLE_RECENTS_PANEL = 1020; Loading Loading @@ -162,6 +162,9 @@ public abstract class BaseStatusBar extends SystemUI implements private RemoteViews.OnClickHandler mOnClickHandler = new RemoteViews.OnClickHandler() { @Override public boolean onClickHandler(View view, PendingIntent pendingIntent, Intent fillInIntent) { if (DEBUG) { Slog.v(TAG, "Notification click handler invoked for intent: " + pendingIntent); } final boolean isActivity = pendingIntent.isActivity(); if (isActivity) { try { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +31 −15 Original line number Diff line number Diff line Loading @@ -10,22 +10,23 @@ import android.widget.FrameLayout; public class PanelBar extends FrameLayout { public static final boolean DEBUG = false; public static final String TAG = PanelView.class.getSimpleName(); public static final String TAG = PanelBar.class.getSimpleName(); public static final void LOG(String fmt, Object... args) { if (!DEBUG) return; Slog.v(TAG, String.format(fmt, args)); } public static final int STATE_CLOSED = 0; public static final int STATE_OPENING = 1; public static final int STATE_OPEN = 2; private PanelHolder mPanelHolder; private ArrayList<PanelView> mPanels = new ArrayList<PanelView>(); protected PanelView mTouchingPanel; private static final int STATE_CLOSED = 0; private static final int STATE_TRANSITIONING = 1; private static final int STATE_OPEN = 2; private int mState = STATE_CLOSED; private boolean mTracking; private void go(int state) { public void go(int state) { LOG("go state: %d -> %d", mState, state); mState = state; } Loading Loading @@ -80,18 +81,21 @@ public class PanelBar extends FrameLayout { // figure out which panel needs to be talked to here if (event.getAction() == MotionEvent.ACTION_DOWN) { mTouchingPanel = selectPanelForTouchX(event.getX()); mPanelHolder.setSelectedPanel(mTouchingPanel); LOG("PanelBar.onTouch: state=%d ACTION_DOWN: panel %s", mState, mTouchingPanel.getName()); if (mState == STATE_CLOSED || mState == STATE_OPEN) { go(STATE_TRANSITIONING); onPanelPeeked(); } final PanelView panel = selectPanelForTouchX(event.getX()); LOG("PanelBar.onTouch: state=%d ACTION_DOWN: panel %s", mState, panel); startOpeningPanel(panel); } final boolean result = mTouchingPanel.getHandle().dispatchTouchEvent(event); return result; } // called from PanelView when self-expanding, too public void startOpeningPanel(PanelView panel) { LOG("startOpeningPanel: " + panel); mTouchingPanel = panel; mPanelHolder.setSelectedPanel(mTouchingPanel); } public void panelExpansionChanged(PanelView panel, float frac) { boolean fullyClosed = true; PanelView fullyOpenedPanel = null; Loading @@ -99,6 +103,10 @@ public class PanelBar extends FrameLayout { for (PanelView pv : mPanels) { // adjust any other panels that may be partially visible if (pv.getExpandedHeight() > 0f) { if (mState == STATE_CLOSED) { go(STATE_OPENING); onPanelPeeked(); } fullyClosed = false; final float thisFrac = pv.getExpandedFraction(); LOG("panelExpansionChanged: -> %s: f=%.1f", pv.getName(), thisFrac); Loading @@ -112,7 +120,7 @@ public class PanelBar extends FrameLayout { if (fullyOpenedPanel != null && !mTracking) { go(STATE_OPEN); onPanelFullyOpened(fullyOpenedPanel); } else if (fullyClosed && !mTracking) { } else if (fullyClosed && !mTracking && mState != STATE_CLOSED) { go(STATE_CLOSED); onAllPanelsCollapsed(); } Loading @@ -122,13 +130,21 @@ public class PanelBar extends FrameLayout { } public void collapseAllPanels(boolean animate) { boolean waiting = false; for (PanelView pv : mPanels) { if (animate && pv == mTouchingPanel) { mTouchingPanel.collapse(); if (animate && !pv.isFullyCollapsed()) { pv.collapse(); waiting = true; } else { pv.setExpandedFraction(0); // just in case } } if (!waiting) { // it's possible that nothing animated, so we replicate the termination // conditions of panelExpansionChanged here go(STATE_CLOSED); onAllPanelsCollapsed(); } } public void onPanelPeeked() { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +26 −9 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import android.util.Slog; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import com.android.systemui.R; Loading @@ -18,7 +19,7 @@ import com.android.systemui.statusbar.policy.LocationController; import com.android.systemui.statusbar.policy.NetworkController; public class PanelView extends FrameLayout { public static final boolean DEBUG = false; public static final boolean DEBUG = PanelBar.DEBUG; public static final String TAG = PanelView.class.getSimpleName(); public final void LOG(String fmt, Object... args) { if (!DEBUG) return; Loading Loading @@ -298,11 +299,17 @@ public class PanelView extends FrameLayout { LOG("onMeasure(%d, %d) -> (%d, %d)", widthMeasureSpec, heightMeasureSpec, getMeasuredWidth(), getMeasuredHeight()); mFullHeight = getMeasuredHeight(); // if one of our children is getting smaller, we should track that if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted() && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) { // Did one of our children change size? int newHeight = getMeasuredHeight(); if (newHeight != mFullHeight) { mFullHeight = newHeight; // If the user isn't actively poking us, let's rubberband to the content if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted() && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) { mExpandedHeight = mFullHeight; } } heightMeasureSpec = MeasureSpec.makeMeasureSpec( (int) mExpandedHeight, MeasureSpec.AT_MOST); // MeasureSpec.getMode(heightMeasureSpec)); setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); Loading @@ -310,6 +317,7 @@ public class PanelView extends FrameLayout { public void setExpandedHeight(float height) { mTracking = mRubberbanding = false; post(mStopAnimator); setExpandedHeightInternal(height); } Loading @@ -326,21 +334,26 @@ public class PanelView extends FrameLayout { // Hmm, full height hasn't been computed yet } LOG("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f"); if (h < 0) h = 0; if (!(STRETCH_PAST_CONTENTS && (mTracking || mRubberbanding)) && h > fh) h = fh; mExpandedHeight = h; LOG("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f"); requestLayout(); // FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); // lp.height = (int) mExpandedHeight; // setLayoutParams(lp); mExpandedFraction = Math.min(1f, h / fh); mExpandedFraction = Math.min(1f, (fh == 0) ? 0 : h / fh); } private float getFullHeight() { if (mFullHeight <= 0) { LOG("Forcing measure() since fullHeight=" + mFullHeight); measure(MeasureSpec.makeMeasureSpec(LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY)); } return mFullHeight; } Loading Loading @@ -385,8 +398,12 @@ public class PanelView extends FrameLayout { } public void expand() { if (!isFullyExpanded()) { if (isFullyCollapsed()) { mBar.startOpeningPanel(this); LOG("expand: calling fling(%s, true)", mSelfExpandVelocityPx); fling (mSelfExpandVelocityPx, /*always=*/ true); } else if (DEBUG) { LOG("skipping expansion: is expanded"); } } } packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +3 −6 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ import java.util.ArrayList; public class PhoneStatusBar extends BaseStatusBar { static final String TAG = "PhoneStatusBar"; public static final boolean DEBUG = false; public static final boolean DEBUG = BaseStatusBar.DEBUG; public static final boolean SPEW = DEBUG; public static final boolean DUMPTRUCK = true; // extra dumpsys info Loading Loading @@ -285,9 +285,6 @@ public class PhoneStatusBar extends BaseStatusBar { mStatusBarWindow = (StatusBarWindowView) View.inflate(context, R.layout.super_status_bar, null); if (DEBUG) { mStatusBarWindow.setBackgroundColor(0x6000FF80); } mStatusBarWindow.mService = this; mStatusBarWindow.setOnTouchListener(new View.OnTouchListener() { @Override Loading Loading @@ -1203,7 +1200,7 @@ public class PhoneStatusBar extends BaseStatusBar { } // Ensure the panel is fully collapsed (just in case; bug 6765842) mStatusBarView.collapseAllPanels(/*animate=*/ false); // @@@ mStatusBarView.collapseAllPanels(/*animate=*/ false); mExpandedVisible = false; mPile.setLayoutTransitionsEnabled(false); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.graphics.Rect; import android.os.SystemClock; import android.util.AttributeSet; import android.util.Log; import android.util.Slog; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; Loading @@ -41,6 +42,8 @@ import com.android.systemui.statusbar.policy.FixedSizeDrawable; public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; private static final boolean DEBUG = PhoneStatusBar.DEBUG; PhoneStatusBar mBar; int mScrimColor; float mMinFlingGutter; Loading Loading @@ -152,6 +155,10 @@ public class PhoneStatusBarView extends PanelBar { public void panelExpansionChanged(PanelView pv, float frac) { super.panelExpansionChanged(pv, frac); if (DEBUG) { Slog.v(TAG, "panelExpansionChanged: f=" + frac); } if (mFadingPanel == pv && mScrimColor != 0 && ActivityManager.isHighEndGfx()) { // woo, special effects Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +5 −2 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ import java.util.ArrayList; public abstract class BaseStatusBar extends SystemUI implements CommandQueue.Callbacks { static final String TAG = "StatusBar"; private static final boolean DEBUG = false; public static final String TAG = "StatusBar"; public static final boolean DEBUG = false; public static final boolean MULTIUSER_DEBUG = false; protected static final int MSG_TOGGLE_RECENTS_PANEL = 1020; Loading Loading @@ -162,6 +162,9 @@ public abstract class BaseStatusBar extends SystemUI implements private RemoteViews.OnClickHandler mOnClickHandler = new RemoteViews.OnClickHandler() { @Override public boolean onClickHandler(View view, PendingIntent pendingIntent, Intent fillInIntent) { if (DEBUG) { Slog.v(TAG, "Notification click handler invoked for intent: " + pendingIntent); } final boolean isActivity = pendingIntent.isActivity(); if (isActivity) { try { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +31 −15 Original line number Diff line number Diff line Loading @@ -10,22 +10,23 @@ import android.widget.FrameLayout; public class PanelBar extends FrameLayout { public static final boolean DEBUG = false; public static final String TAG = PanelView.class.getSimpleName(); public static final String TAG = PanelBar.class.getSimpleName(); public static final void LOG(String fmt, Object... args) { if (!DEBUG) return; Slog.v(TAG, String.format(fmt, args)); } public static final int STATE_CLOSED = 0; public static final int STATE_OPENING = 1; public static final int STATE_OPEN = 2; private PanelHolder mPanelHolder; private ArrayList<PanelView> mPanels = new ArrayList<PanelView>(); protected PanelView mTouchingPanel; private static final int STATE_CLOSED = 0; private static final int STATE_TRANSITIONING = 1; private static final int STATE_OPEN = 2; private int mState = STATE_CLOSED; private boolean mTracking; private void go(int state) { public void go(int state) { LOG("go state: %d -> %d", mState, state); mState = state; } Loading Loading @@ -80,18 +81,21 @@ public class PanelBar extends FrameLayout { // figure out which panel needs to be talked to here if (event.getAction() == MotionEvent.ACTION_DOWN) { mTouchingPanel = selectPanelForTouchX(event.getX()); mPanelHolder.setSelectedPanel(mTouchingPanel); LOG("PanelBar.onTouch: state=%d ACTION_DOWN: panel %s", mState, mTouchingPanel.getName()); if (mState == STATE_CLOSED || mState == STATE_OPEN) { go(STATE_TRANSITIONING); onPanelPeeked(); } final PanelView panel = selectPanelForTouchX(event.getX()); LOG("PanelBar.onTouch: state=%d ACTION_DOWN: panel %s", mState, panel); startOpeningPanel(panel); } final boolean result = mTouchingPanel.getHandle().dispatchTouchEvent(event); return result; } // called from PanelView when self-expanding, too public void startOpeningPanel(PanelView panel) { LOG("startOpeningPanel: " + panel); mTouchingPanel = panel; mPanelHolder.setSelectedPanel(mTouchingPanel); } public void panelExpansionChanged(PanelView panel, float frac) { boolean fullyClosed = true; PanelView fullyOpenedPanel = null; Loading @@ -99,6 +103,10 @@ public class PanelBar extends FrameLayout { for (PanelView pv : mPanels) { // adjust any other panels that may be partially visible if (pv.getExpandedHeight() > 0f) { if (mState == STATE_CLOSED) { go(STATE_OPENING); onPanelPeeked(); } fullyClosed = false; final float thisFrac = pv.getExpandedFraction(); LOG("panelExpansionChanged: -> %s: f=%.1f", pv.getName(), thisFrac); Loading @@ -112,7 +120,7 @@ public class PanelBar extends FrameLayout { if (fullyOpenedPanel != null && !mTracking) { go(STATE_OPEN); onPanelFullyOpened(fullyOpenedPanel); } else if (fullyClosed && !mTracking) { } else if (fullyClosed && !mTracking && mState != STATE_CLOSED) { go(STATE_CLOSED); onAllPanelsCollapsed(); } Loading @@ -122,13 +130,21 @@ public class PanelBar extends FrameLayout { } public void collapseAllPanels(boolean animate) { boolean waiting = false; for (PanelView pv : mPanels) { if (animate && pv == mTouchingPanel) { mTouchingPanel.collapse(); if (animate && !pv.isFullyCollapsed()) { pv.collapse(); waiting = true; } else { pv.setExpandedFraction(0); // just in case } } if (!waiting) { // it's possible that nothing animated, so we replicate the termination // conditions of panelExpansionChanged here go(STATE_CLOSED); onAllPanelsCollapsed(); } } public void onPanelPeeked() { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +26 −9 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import android.util.Slog; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import com.android.systemui.R; Loading @@ -18,7 +19,7 @@ import com.android.systemui.statusbar.policy.LocationController; import com.android.systemui.statusbar.policy.NetworkController; public class PanelView extends FrameLayout { public static final boolean DEBUG = false; public static final boolean DEBUG = PanelBar.DEBUG; public static final String TAG = PanelView.class.getSimpleName(); public final void LOG(String fmt, Object... args) { if (!DEBUG) return; Loading Loading @@ -298,11 +299,17 @@ public class PanelView extends FrameLayout { LOG("onMeasure(%d, %d) -> (%d, %d)", widthMeasureSpec, heightMeasureSpec, getMeasuredWidth(), getMeasuredHeight()); mFullHeight = getMeasuredHeight(); // if one of our children is getting smaller, we should track that if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted() && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) { // Did one of our children change size? int newHeight = getMeasuredHeight(); if (newHeight != mFullHeight) { mFullHeight = newHeight; // If the user isn't actively poking us, let's rubberband to the content if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted() && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) { mExpandedHeight = mFullHeight; } } heightMeasureSpec = MeasureSpec.makeMeasureSpec( (int) mExpandedHeight, MeasureSpec.AT_MOST); // MeasureSpec.getMode(heightMeasureSpec)); setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); Loading @@ -310,6 +317,7 @@ public class PanelView extends FrameLayout { public void setExpandedHeight(float height) { mTracking = mRubberbanding = false; post(mStopAnimator); setExpandedHeightInternal(height); } Loading @@ -326,21 +334,26 @@ public class PanelView extends FrameLayout { // Hmm, full height hasn't been computed yet } LOG("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f"); if (h < 0) h = 0; if (!(STRETCH_PAST_CONTENTS && (mTracking || mRubberbanding)) && h > fh) h = fh; mExpandedHeight = h; LOG("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f"); requestLayout(); // FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); // lp.height = (int) mExpandedHeight; // setLayoutParams(lp); mExpandedFraction = Math.min(1f, h / fh); mExpandedFraction = Math.min(1f, (fh == 0) ? 0 : h / fh); } private float getFullHeight() { if (mFullHeight <= 0) { LOG("Forcing measure() since fullHeight=" + mFullHeight); measure(MeasureSpec.makeMeasureSpec(LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY)); } return mFullHeight; } Loading Loading @@ -385,8 +398,12 @@ public class PanelView extends FrameLayout { } public void expand() { if (!isFullyExpanded()) { if (isFullyCollapsed()) { mBar.startOpeningPanel(this); LOG("expand: calling fling(%s, true)", mSelfExpandVelocityPx); fling (mSelfExpandVelocityPx, /*always=*/ true); } else if (DEBUG) { LOG("skipping expansion: is expanded"); } } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +3 −6 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ import java.util.ArrayList; public class PhoneStatusBar extends BaseStatusBar { static final String TAG = "PhoneStatusBar"; public static final boolean DEBUG = false; public static final boolean DEBUG = BaseStatusBar.DEBUG; public static final boolean SPEW = DEBUG; public static final boolean DUMPTRUCK = true; // extra dumpsys info Loading Loading @@ -285,9 +285,6 @@ public class PhoneStatusBar extends BaseStatusBar { mStatusBarWindow = (StatusBarWindowView) View.inflate(context, R.layout.super_status_bar, null); if (DEBUG) { mStatusBarWindow.setBackgroundColor(0x6000FF80); } mStatusBarWindow.mService = this; mStatusBarWindow.setOnTouchListener(new View.OnTouchListener() { @Override Loading Loading @@ -1203,7 +1200,7 @@ public class PhoneStatusBar extends BaseStatusBar { } // Ensure the panel is fully collapsed (just in case; bug 6765842) mStatusBarView.collapseAllPanels(/*animate=*/ false); // @@@ mStatusBarView.collapseAllPanels(/*animate=*/ false); mExpandedVisible = false; mPile.setLayoutTransitionsEnabled(false); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.graphics.Rect; import android.os.SystemClock; import android.util.AttributeSet; import android.util.Log; import android.util.Slog; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; Loading @@ -41,6 +42,8 @@ import com.android.systemui.statusbar.policy.FixedSizeDrawable; public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; private static final boolean DEBUG = PhoneStatusBar.DEBUG; PhoneStatusBar mBar; int mScrimColor; float mMinFlingGutter; Loading Loading @@ -152,6 +155,10 @@ public class PhoneStatusBarView extends PanelBar { public void panelExpansionChanged(PanelView pv, float frac) { super.panelExpansionChanged(pv, frac); if (DEBUG) { Slog.v(TAG, "panelExpansionChanged: f=" + frac); } if (mFadingPanel == pv && mScrimColor != 0 && ActivityManager.isHighEndGfx()) { // woo, special effects Loading