JB/KK
滑动锁屏状态下状态栏可以下拉是google 4.0 默认的设计。如果要禁止此功能,请修改
请修改KeyguardViewMediator.java的adjustStatusBarLocked()方法,将
if ( isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND) {
// showing secure lockscreen; disable expanding.
flags |= StatusBarManager.DISABLE_EXPAND;
}
修改为:
if ( isSecure() || ENABLE_INSECURE_STATUS_BAR_EXPAND) {
// showing secure lockscreen; disable expanding.
flags |= StatusBarManager.DISABLE_EXPAND;
}
L上
L上锁屏界面状态栏要禁止下拉请按如下方案修改:
NotificationPanelView.java(alps/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone)中的两个方法。
(1)
private void setQsExpanded(boolean expanded) {
//begin 添加下面四行
if(mKeyguardShowing)
{
return;
}
//end
boolean changed = mQsExpanded != expanded;
if (changed) {
mQsExpanded = expanded;
updateQsState();
requestPanelHeightUpdate();
mNotificationStackScroller.setInterceptDelegateEnabled(expanded);
mStatusBar.setQsExpanded(expanded);
}
}
(2)
private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
if (!mQsExpansionEnabled) {
return false;
}
//begin 将下面第一行替换成第二行
View header = mKeyguardShowing ? mKeyguardStatusBar : mHeader;
View header = mHeader;
//end
boolean onHeader = x >= header.getLeft() && x <= header.getRight()
&& y >= header.getTop() && y <= header.getBottom();
if (mQsExpanded) {
return onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0) && isInQsArea(x, y);
} else {
return onHeader;
}
}
(3) private boolean onTouchEvent()
{
...
if (!mTwoFingerQsExpand && mQsTracking) {
//begin 添加下面红色的两行
if(!mKeyguardShowing){
onQsTouch(event);
if (!mConflictingQsExpansionGesture) {
return true;
}
}
//end
}
...
}
N上的修改:
在N上验证过的修改。
1. PhoneStatusBar.java
4445 public boolean onDraggedDown(View startingChild, int dragLengthY) {
4446 if ( /*hasActiveNotifications()*/false) {
2. NotificationPanelView.java
修改点一:handleQsTouch函数中如下代码:
779 if ( !mKeyguardShowing && !mQsExpandImmediate && mQsTracking) {
780 onQsTouch(event);
781 if (!mConflictingQsExpansionGesture) {
782 return true;
783 }
784 }
修改点二:
981 private void setQsExpanded(boolean expanded) {
//add begin
if(mKeyguardShowing) return;
//add eng
982 boolean changed = mQsExpanded != expanded;
修改点三:
1351 private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
1352 if (!mQsExpansionEnabled || mCollapsedOnDown) {
1353 return false;
1354 }
1355 View header = /*mKeyguardShowing ? mKeyguardStatusBar : mtk annotation*/mQsContainer.getHeader();
滑动锁屏状态下状态栏可以下拉是google 4.0 默认的设计。如果要禁止此功能,请修改
请修改KeyguardViewMediator.java的adjustStatusBarLocked()方法,将
if ( isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND) {
// showing secure lockscreen; disable expanding.
flags |= StatusBarManager.DISABLE_EXPAND;
}
修改为:
if ( isSecure() || ENABLE_INSECURE_STATUS_BAR_EXPAND) {
// showing secure lockscreen; disable expanding.
flags |= StatusBarManager.DISABLE_EXPAND;
}
L上
L上锁屏界面状态栏要禁止下拉请按如下方案修改:
NotificationPanelView.java(alps/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone)中的两个方法。
(1)
private void setQsExpanded(boolean expanded) {
//begin 添加下面四行
if(mKeyguardShowing)
{
return;
}
//end
boolean changed = mQsExpanded != expanded;
if (changed) {
mQsExpanded = expanded;
updateQsState();
requestPanelHeightUpdate();
mNotificationStackScroller.setInterceptDelegateEnabled(expanded);
mStatusBar.setQsExpanded(expanded);
}
}
(2)
private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
if (!mQsExpansionEnabled) {
return false;
}
//begin 将下面第一行替换成第二行
View header = mKeyguardShowing ? mKeyguardStatusBar : mHeader;
View header = mHeader;
//end
boolean onHeader = x >= header.getLeft() && x <= header.getRight()
&& y >= header.getTop() && y <= header.getBottom();
if (mQsExpanded) {
return onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0) && isInQsArea(x, y);
} else {
return onHeader;
}
}
(3) private boolean onTouchEvent()
{
...
if (!mTwoFingerQsExpand && mQsTracking) {
//begin 添加下面红色的两行
if(!mKeyguardShowing){
onQsTouch(event);
if (!mConflictingQsExpansionGesture) {
return true;
}
}
//end
}
...
}
N上的修改:
在N上验证过的修改。
1. PhoneStatusBar.java
4445 public boolean onDraggedDown(View startingChild, int dragLengthY) {
4446 if ( /*hasActiveNotifications()*/false) {
2. NotificationPanelView.java
修改点一:handleQsTouch函数中如下代码:
779 if ( !mKeyguardShowing && !mQsExpandImmediate && mQsTracking) {
780 onQsTouch(event);
781 if (!mConflictingQsExpansionGesture) {
782 return true;
783 }
784 }
修改点二:
981 private void setQsExpanded(boolean expanded) {
//add begin
if(mKeyguardShowing) return;
//add eng
982 boolean changed = mQsExpanded != expanded;
修改点三:
1351 private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
1352 if (!mQsExpansionEnabled || mCollapsedOnDown) {
1353 return false;
1354 }
1355 View header = /*mKeyguardShowing ? mKeyguardStatusBar : mtk annotation*/mQsContainer.getHeader();