From 09df3b78769378eec628427e9ceeb37f6361be15 Mon Sep 17 00:00:00 2001
From: Dhina17 <dhinalogu@gmail.com>
Date: Fri, 17 May 2024 13:13:14 +0530
Subject: [PATCH] SystemUI: tuner: Add switch to force nav bar menu key

Change-Id: I85907967dbb662965fde5b6f05ad409723508fd4
---
 packages/SystemUI/res/values/lmodroid_strings.xml           | 2 ++
 packages/SystemUI/res/xml/nav_bar_tuner.xml                 | 6 ++++++
 services/core/java/com/android/server/wm/DisplayPolicy.java | 3 ++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/packages/SystemUI/res/values/lmodroid_strings.xml b/packages/SystemUI/res/values/lmodroid_strings.xml
index b2025c80be49..fb6d780375fd 100644
--- a/packages/SystemUI/res/values/lmodroid_strings.xml
+++ b/packages/SystemUI/res/values/lmodroid_strings.xml
@@ -118,6 +118,8 @@
     <string name="navbar_editor_summary">Configure navigaton bar</string>
     <!-- SysUI Tuner: Adjust button width dialog title [CHAR LIMIT=60] -->
     <string name="adjust_button_width">Adjust button width</string>
+    <string name="navbar_force_menu_key_title">Force menu key</string>
+    <string name="navbar_force_menu_key_summary">Always show the menu key regardless of the context</string>
 
     <!-- WiFi standard numbering on statusbar -->
     <string name="status_bar_wifi_standard">Wi-Fi standard number</string>
diff --git a/packages/SystemUI/res/xml/nav_bar_tuner.xml b/packages/SystemUI/res/xml/nav_bar_tuner.xml
index 5864c29c9145..be94a8c88487 100644
--- a/packages/SystemUI/res/xml/nav_bar_tuner.xml
+++ b/packages/SystemUI/res/xml/nav_bar_tuner.xml
@@ -32,4 +32,10 @@
         android:summary="@string/navbar_editor_summary"
         android:fragment="com.android.systemui.tuner.NavBarEditor" />
 
+    <com.android.systemui.tuner.TunerSwitch
+        android:key="nav_bar_force_menu_key"
+        android:title="@string/navbar_force_menu_key_title"
+        android:summary="@string/navbar_force_menu_key_summary"
+        sysui:defValue="false" />
+
 </PreferenceScreen>
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 0f7d9e898ced..b5f1eb66e56d 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -2335,7 +2335,8 @@ public class DisplayPolicy {
             // the intermediate state to system UI. Otherwise, it might trigger redundant effects.
             return;
         }
-        final boolean forceMenu = false; // TODO user setting?
+        final boolean forceMenu = Settings.Secure.getInt(
+                mContext.getContentResolver(), LMOSettings.Secure.NAV_BAR_FORCE_MENU_KEY, 0) != 0;
         final WindowState navColorWin = chooseNavigationColorWindowLw(mNavBarColorWindowCandidate,
                 mDisplayContent.mInputMethodWindow, mNavigationBarPosition);
         final boolean isNavbarColorManagedByIme =
-- 
GitLab