描述:只需要在PhoneStatusBarView的onTouchEvent攔截事件傳遞即可
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean barConsumedEvent = mBar.interceptTouchEvent(event);
if (DEBUG_GESTURES) {
if (event.getActionMasked() != MotionEvent.ACTION_MOVE) {
EventLog.writeEvent(EventLogTags.SYSUI_PANELBAR_TOUCH,
event.getActionMasked(), (int) event.getX(), (int) event.getY(),
barConsumedEvent ? 1 : 0);
}
}
return false;
}
鎖屏界面禁止狀態欄下拉
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -759,7 +759,7 @@ public class NotificationPanelView extends PanelView implements
if (!isFullyCollapsed()) {
handleQsDown(event);
}
- if (!mQsExpandImmediate && mQsTracking) {
+ if (!mKeyguardShowing && !mQsExpandImmediate && mQsTracking) {
onQsTouch(event);
if (!mConflictingQsExpansionGesture) {
return true;
@@ -974,6 +974,7 @@ public class NotificationPanelView extends PanelView implements
}
private void setQsExpanded(boolean expanded) {
+ if(mKeyguardShowing) return;
boolean changed = mQsExpanded != expanded;
if (changed) {
mQsExpanded = expanded;
@@ -1466,7 +1467,7 @@ public class NotificationPanelView extends PanelView implements
if (!mQsExpansionEnabled || mCollapsedOnDown) {
return false;
}
- View header = mKeyguardShowing ? mKeyguardStatusBar : mHeader;
+ View header = mHeader;
boolean onHeader = x >= header.getX() && x <= header.getX() + header.getWidth()
&& y >= header.getTop() && y <= header.getBottom();
if (mQsExpanded) {
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -3943,7 +3943,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
@Override
public boolean onDraggedDown(View startingChild, int dragLengthY) {
- if (hasActiveNotifications()) {
+ if (false) {
EventLogTags.writeSysuiLockscreenGesture(
EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_SWIPE_DOWN_FULL_SHADE,