From 56ad23f76db5e818685a268087f39d8b47de8373 Mon Sep 17 00:00:00 2001 From: Dhina17 <dhinalogu@gmail.com> Date: Tue, 21 May 2024 13:41:10 +0530 Subject: [PATCH] SystemUI: NavBarTuner: Disable unsupported preferences on gesture nav - 'Navbar format' has no use when gesture nav is enabled - 'Editor' has no use when gesture nav is enabled and ime can render gesture nav buttons. To disable ime to render gesture nav buttons: adb shell setprop persist.sys.ime.can_render_gestural_nav_buttons false Change-Id: I7ceef63dcce16bf3e8f8ee07c1d6323930f66699 --- .../android/systemui/tuner/NavBarTuner.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java index b45f22c68f9f..f95e221c5184 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java @@ -14,6 +14,8 @@ package com.android.systemui.tuner; +import static android.inputmethodservice.InputMethodService.canImeRenderGesturalNavButtons; +import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static com.android.systemui.navigationbar.NavigationBarInflaterView.KEY; import static com.android.systemui.navigationbar.NavigationBarInflaterView.KEY_CODE_END; import static com.android.systemui.navigationbar.NavigationBarInflaterView.KEY_CODE_START; @@ -29,6 +31,7 @@ import static com.android.systemui.navigationbar.NavigationBarInflaterView.extra import android.annotation.Nullable; import android.app.AlertDialog; +import android.content.Context; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; @@ -57,6 +60,7 @@ import java.util.ArrayList; public class NavBarTuner extends PreferenceFragment { private static final String LAYOUT = "layout"; + private static final String NAVBAR_EDITOR = "navbar_editor"; private final ArrayList<Tunable> mTunables = new ArrayList<>(); private Handler mHandler; @@ -79,7 +83,14 @@ public class NavBarTuner extends PreferenceFragment { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.nav_bar_tuner); - bindLayout((ListPreference) findPreference(LAYOUT)); + ListPreference mLayoutPref = (ListPreference) findPreference(LAYOUT); + Preference mNavBarEditorPref = findPreference(NAVBAR_EDITOR); + if (isGestureNavigationEnabled(getContext())) { + mLayoutPref.setEnabled(false); + mNavBarEditorPref.setEnabled(!canImeRenderGesturalNavButtons()); + } else { + bindLayout(mLayoutPref); + } } @Override @@ -110,4 +121,9 @@ public class NavBarTuner extends PreferenceFragment { return true; }); } + + private boolean isGestureNavigationEnabled(Context context) { + return NAV_BAR_MODE_GESTURAL == context.getResources().getInteger( + com.android.internal.R.integer.config_navBarInteractionMode); + } } -- GitLab