7.1 锁屏添加向右滑动解锁条,向右滑动解锁

去掉向上滑动解锁功能,添加向右滑动解锁条,向右滑动解锁条解锁;实现简单功能,特效的话需要再优化;如图
在这里插入图片描述

滑动解锁条SlideUnlockView
vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/keyguard_bottom_area.xml
+    <com.android.systemui.statusbar.SlideUnlockView
+        android:id="@+id/slideUnlockView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+		android:layout_gravity="bottom|center_horizontal"
+        slideUnlockBackgroundResource="@drawable/jiesuo_bg"
+		android:layout_marginBottom="30dp"
+        slideUnlockBlockResource="@drawable/jiesuo_button" />

需要自定义滑动解锁条样式
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/SlideUnlockView.java
不详细介绍,有相关patch下载

初始化slide
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
mSlideUnlockView 滑动事件
mSlideUnlockView = (SlideUnlockView)findViewById(R.id.slideUnlockView);
+		mSlideUnlockView.setOnUnLockListener(new OnUnLockListener() {
+			@Override
+			public void setUnLocked(boolean unLock) {
+				// 濡傛灉鏄痶rue锛岃瘉鏄庤В閿?+				if (unLock) {
+					mStatusBar.makeExpandedInvisible();//makeExpandedInvisible是解锁的主要方法
+				}
+				mSlideUnlockView.reset();
+			}
+		});
+    }
+ 
+

屏蔽上滑解锁
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
     public boolean onTouchEvent(MotionEvent event) {
+
+		KeyguardManager mKeyguardManager = (KeyguardManager) mContext.getSystemService (Context.KEYGUARD_SERVICE);
+		boolean flag = mKeyguardManager.inKeyguardRestrictedInputMode();
+		if(flag){
+			return false;
+		}
只屏蔽这里的话后期测试发现一个问题,滑动解锁条时向上滑动,旋转屏幕时,notification会显示不全或者会遮挡住时间的显示,应该是虽然屏蔽掉上滑解锁,但是其它地方还是会有调用上滑屏幕动画的地方,并且没有释放。
还需要屏蔽下面
             case MotionEvent.ACTION_MOVE:
                 /*final float h = y - mInitialTouchY;
                trackMovement(event);
                 if (scrolledToBottom || mTouchStartedInEmptyArea || mAnimatingOnDown) {
                     float hAbs = Math.abs(h);
                     if ((h < -mTouchSlop || (mAnimatingOnDown && hAbs > mTouchSlop))
                             && hAbs > Math.abs(x - mInitialTouchX)) {
                       cancelHeightAnimator();
                      startExpandMotion(x, y, true /* startTracking */, mExpandedHeight);*/
                         return true;
                     }

.makeExpandedInvisible()解锁的方法也需要做简单处理
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java                     
-        if (!mExpandedVisible || mStatusBarWindow == null) {
+        /*if (!mExpandedVisible || mStatusBarWindow == null) {
             return;
-        }
+        }*/
 
         // Ensure the panel is fully collapsed (just in case; bug 6765842, 7260868)
         mStatusBarView.collapsePanel(/*animate=*/ false, false /* delayed*/,
@@ -3240,13 +3240,13 @@ public class StatusBar extends SystemUI implements DemoMode,
         runPostCollapseRunnables();
         setInteracting(StatusBarManager.WINDOW_STATUS_BAR, false);
         showBouncerIfKeyguard();
-        recomputeDisableFlags(mNotificationPanel.hideStatusBarIconsWhenExpanded() /* animate */);
+        recomputeDisableFlags(true /* animate */);
 
         // Trimming will happen later if Keyguard is showing - doing it here might cause a jank in
         // the bouncer appear animation.
-        if (!mStatusBarKeyguardViewManager.isShowing()) {
+        //if (!mStatusBarKeyguardViewManager.isShowing()) {
             WindowManagerGlobal.getInstance().trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN);
-        }
+        //}

下载链接patch
https://download.csdn.net/my

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心有纤纤结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值