android 8.1 修改禁止状态栏下拉
16lz
2021-01-23
提供接口给三方,三方发一个广播,就需要禁止下拉状态,下面是自测通过的代码修改。
Index: src/com/android/systemui/statusbar/phone/NotificationPanelView.java===================================================================--- src/com/android/systemui/statusbar/phone/NotificationPanelView.java(revision 147)+++ src/com/android/systemui/statusbar/phone/NotificationPanelView.java(working copy)@@ -70,6 +70,13 @@ import java.util.List; +/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+import android.content.Intent;+import android.content.IntentFilter;+import android.content.BroadcastReceiver;+import android.util.Log;+import android.util.Slog;+/*[FEATURE]-Add-END by ssss*/ public class NotificationPanelView extends PanelView implements ExpandableView.OnHeightChangedListener, View.OnClickListener, NotificationStackScrollLayout.OnOverscrollTopChangedListener,@@ -109,7 +116,9 @@ private int mTrackingPointer; private VelocityTracker mVelocityTracker; private boolean mQsTracking;-+/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+private static boolean mPanelState = true;+/*[FEATURE]-Add-END by ssss*/ /** * If set, the ongoing touch gesture might both trigger the expansion in {@link PanelView} and * the expansion for quick settings.@@ -214,6 +223,14 @@ super(context, attrs); setWillNotDraw(!DEBUG); mFalsingManager = FalsingManager.getInstance(context);++/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+IntentFilter filter = new IntentFilter();+filter = new IntentFilter();+filter.addAction("android.intent.action.PANEL_ENABLE");+ filter.addAction("android.intent.action.PANEL_DISABLED");+ context.registerReceiver(mPanelReceiver, filter);+/*[FEATURE]-Add-END by ssss*/ } public void setStatusBar(PhoneStatusBar bar) {@@ -307,7 +324,19 @@ mNotificationStackScroller.setLayoutParams(lp); } }-+/*[FEATURE]-Add-BEGIN by ssss, 17/06/2017, Home change state */+BroadcastReceiver mPanelReceiver = new BroadcastReceiver() {+ @Override+ public void onReceive(Context context, Intent intent) { + if ("android.intent.action.PANEL_ENABLE".equals(intent.getAction())) {+ mPanelState = true;+ } else if ("android.intent.action.PANEL_DISABLED".equals(intent.getAction())) {+ mPanelState = false;+ }+Slog.d(TAG, "mPanelReceiver..........mPanelState="+mPanelState);+ }+ };+/*[FEATURE]-Add-END by ssss*/ @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom);@@ -575,7 +604,9 @@ @Override public boolean onInterceptTouchEvent(MotionEvent event) {- if (mBlockTouches || mQsContainer.isCustomizing()) {+Log.i("ssssssssss","onInterceptTouchEvent"); + + if (mBlockTouches || mQsContainer.isCustomizing()) { return false; } initDownStates(event);@@ -764,6 +795,7 @@ return true; } + private boolean handleQsTouch(MotionEvent event) { final int action = event.getActionMasked(); if (action == MotionEvent.ACTION_DOWN && getExpandedFraction() == 1f@@ -781,7 +813,9 @@ if (!isFullyCollapsed()) { handleQsDown(event); }- if (!mQsExpandImmediate && mQsTracking) {+ // if (!mKeyguardShowing&&!mQsExpandImmediate && mQsTracking) {//sssssss+ if (mPanelState && !mQsExpandImmediate && mQsTracking) {//sssssss+ onQsTouch(event); if (!mConflictingQsExpansionGesture) { return true;@@ -984,6 +1018,8 @@ } private void setQsExpanded(boolean expanded) {+if(!mPanelState) return ;//ssssssss+ boolean changed = mQsExpanded != expanded; if (changed) { mQsExpanded = expanded;@@ -1359,6 +1395,7 @@ return false; } View header = mKeyguardShowing ? mKeyguardStatusBar : mQsContainer.getHeader();+if(!mPanelState) {header =mQsContainer.getHeader();} boolean onHeader = x >= mQsAutoReinflateContainer.getX() && x <= mQsAutoReinflateContainer.getX() + mQsAutoReinflateContainer.getWidth() && y >= header.getTop() && y <= header.getBottom();Index: src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java===================================================================--- src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java(revision 147)+++ src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java(working copy)@@ -28,6 +28,14 @@ import com.android.systemui.EventLogTags; import com.android.systemui.R; +/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+import android.content.Intent;+import android.content.IntentFilter;+import android.content.BroadcastReceiver;+import android.util.Log;+import android.util.Slog;+/*[FEATURE]-Add-END by ssss*/ + public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; private static final boolean DEBUG = PhoneStatusBar.DEBUG;@@ -39,6 +47,13 @@ private final PhoneStatusBarTransitions mBarTransitions; private ScrimController mScrimController; private float mMinFraction;+/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+private static boolean mPanelState = true;+/*[FEATURE]-Add-END by ssss*/++//czb add for shield/enabled status bar+private Context mContext;+ //czb add end private float mPanelFraction; private Runnable mHideExpandedRunnable = new Runnable() { @Override@@ -53,6 +68,13 @@ super(context, attrs); mBarTransitions = new PhoneStatusBarTransitions(this);+/*[FEATURE]-Add-BEGIN by ssss, 27/07/2017, Status change state */+IntentFilter filter = new IntentFilter();+filter = new IntentFilter();+filter.addAction("android.intent.action.PANEL_ENABLE");+ filter.addAction("android.intent.action.PANEL_DISABLED");+ context.registerReceiver(mPanelReceiver, filter);+/*[FEATURE]-Add-END by ssss*/ } public BarTransitions getBarTransitions() {@@ -74,6 +96,7 @@ @Override public boolean panelEnabled() {+//return false; return mBar.panelsEnabled(); } @@ -118,11 +141,28 @@ } mIsFullyOpenedPanel = true; }-+/*[FEATURE]-Add-BEGIN by ssss, 17/06/2017, Home change state */+BroadcastReceiver mPanelReceiver = new BroadcastReceiver() {+ @Override+ public void onReceive(Context context, Intent intent) { + if ("android.intent.action.PANEL_ENABLE".equals(intent.getAction())) {+ mPanelState = true;+ } else if ("android.intent.action.PANEL_DISABLED".equals(intent.getAction())) {+ mPanelState = false;+ }+Slog.d(TAG, "mPanelReceiver..........mPanelState="+mPanelState);+ }+ };+/*[FEATURE]-Add-END by ssss*/ @Override public boolean onTouchEvent(MotionEvent event) {- boolean barConsumedEvent = mBar.interceptTouchEvent(event);+boolean barConsumedEvent = mBar.interceptTouchEvent(event); +if(!mPanelState){+return true;+} +Slog.d(TAG, "2 onTouchEvent mPanelReceiver..........mPanelState="+mPanelState);+ if (DEBUG_GESTURES) { if (event.getActionMasked() != MotionEvent.ACTION_MOVE) { EventLog.writeEvent(EventLogTags.SYSUI_PANELBAR_TOUCH,@@ -132,8 +172,10 @@ } return barConsumedEvent || super.onTouchEvent(event);+ } + @Override public void onTrackingStarted() { super.onTrackingStarted();
更多相关文章
- Android判断当前的android设备是否处于联网状态
- android selector 中的几个关键状态
- Unity3D 调用Android的提供的接口
- android状态栏工具类
- android检查手机网络状态