From 76a1e955045b9ab0f6ff3d883403d08e1fcd2752 Mon Sep 17 00:00:00 2001
From: huangcm <1263938474@qq.com>
Date: Thu, 08 May 2025 06:32:42 +0000
Subject: [PATCH] fix(ir): fix ir lock err

---
 android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java |   75 ++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 31 deletions(-)

diff --git a/android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 03a4fa9..d0587a0 100644
--- a/android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -2644,8 +2644,33 @@
                     + repeatCount + " keyguardOn=" + keyguardOn + " canceled=" + canceled);
         }
 
-        if(down) {
-            pwd += String.valueOf(keyCode);
+    //-----------------------kickpi code--------------
+        if (down) {
+			pwd += String.valueOf(keyCode);
+
+            Log.d(TAG, "kickpi pwd = " + pwd);
+
+            if (pwd.contains("1412151297")) { //758520
+				String irConfig = SystemProperties.get("persist.sys.kickpi.irkeylock","0");
+				if("1".equals(irConfig)) {
+					SystemProperties.set("persist.sys.kickpi.irkeylock","0");
+					mHandler.removeMessages(MSG_SHOW_TOAST);
+					mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "Close IR Key Lock"));
+				} else {
+					SystemProperties.set("persist.sys.kickpi.irkeylock","1");
+					mHandler.removeMessages(MSG_SHOW_TOAST);
+					mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "Open IR Key Lock"));
+				}
+				pwd = "";
+			} 
+
+            String IRKeyProp = SystemProperties.get("persist.sys.kickpi.irkeylock");
+            if ("1".equals(IRKeyProp)) {
+                mHandler.removeMessages(MSG_SHOW_TOAST);
+                mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "IR Key Locking"));
+                Log.e(TAG, "IR POWER KEY LOCK");
+                return -1;
+            }
             if(pwd.contains("3822020")){            // home  menu 2down
                 try {
                     Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -2701,18 +2726,6 @@
                     e.printStackTrace();
                 }
                 pwd = "";
-            } else if(pwd.contains("1412151297")){ //758520
-                String irConfig = SystemProperties.get("vendor.kickpi.irkey.enable","0");
-                if("1".equals(irConfig)) {
-                    SystemProperties.set("vendor.kickpi.irkey.enable","0");
-                    mHandler.removeMessages(MSG_SHOW_TOAST);
-                    mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "Close IR Key"));
-                } else {
-                    SystemProperties.set("vendor.kickpi.irkey.enable","1");
-                    mHandler.removeMessages(MSG_SHOW_TOAST);
-                    mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "Open IR Key"));
-                }
-                pwd = "";
             } else if(pwd.contains("14121512910")){ // 8521  adb switch
                 String adbConfig = SystemProperties.get("persist.vendor.adb.enable","0");
                 if("1".equals(adbConfig)) {
@@ -2734,13 +2747,7 @@
                 pwd = "";
             }
         }
-
-        String IRKeyProp = SystemProperties.get("vendor.kickpi.irkey.enable");
-        if ("1".equals(IRKeyProp)) {
-                mHandler.removeMessages(MSG_SHOW_TOAST);
-                mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_TOAST, "Close IR Key"));
-                return -1;
-        }
+        //------------------------------------------------
 
         // If we think we might have a volume down & power key chord on the way
         // but we're not sure, then tell the dispatcher to wait a little while and
@@ -4004,17 +4011,23 @@
             }
 
             case KeyEvent.KEYCODE_POWER: {
-                EventLogTags.writeInterceptPower(
-                        KeyEvent.actionToString(event.getAction()),
-                        mPowerKeyHandled ? 1 : 0, mPowerKeyPressCounter);
-                // Any activity on the power button stops the accessibility shortcut
-                cancelPendingAccessibilityShortcutAction();
-                result &= ~ACTION_PASS_TO_USER;
-                isWakeKey = false; // wake-up will be handled separately
-                if (down) {
-                    interceptPowerKeyDown(event, interactive);
+                // kickpi when ir lock always return
+                String IRKeyProp = SystemProperties.get("persist.sys.kickpi.irkeylock");
+                if ("1".equals(IRKeyProp)) {
+                    Log.e(TAG, "IR POWER KEY LOCK");
                 } else {
-                    interceptPowerKeyUp(event, interactive, canceled);
+                    EventLogTags.writeInterceptPower(
+                            KeyEvent.actionToString(event.getAction()),
+                            mPowerKeyHandled ? 1 : 0, mPowerKeyPressCounter);
+                    // Any activity on the power button stops the accessibility shortcut
+                    cancelPendingAccessibilityShortcutAction();
+                    result &= ~ACTION_PASS_TO_USER;
+                    isWakeKey = false; // wake-up will be handled separately
+                    if (down) {
+                        interceptPowerKeyDown(event, interactive);
+                    } else {
+                        interceptPowerKeyUp(event, interactive, canceled);
+                    }                
                 }
                 break;
             }

--
Gitblit v1.6.2