Cherish:Add support for runtime toggle of navbar[2/2]

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
Bruno Martins
2022-11-14 02:59:07 +07:00
committed by Hưng Phan
parent 064a312c8c
commit 124b13fc02
3 changed files with 35 additions and 4 deletions

View File

@@ -366,6 +366,7 @@
<string name="navigation_bar_compact_layout_title">Compact layout</string> <string name="navigation_bar_compact_layout_title">Compact layout</string>
<string name="navigation_bar_compact_layout_summary">Use a compact layout in the navigation bar</string> <string name="navigation_bar_compact_layout_summary">Use a compact layout in the navigation bar</string>
<string name="system_navigation_summary">Choose which system navigation style to use</string> <string name="system_navigation_summary">Choose which system navigation style to use</string>
<string name="navbar_layout_category_title">Layout</string>
<!-- Volume rocker wake --> <!-- Volume rocker wake -->
<string name="volume_rocker_wake_title">Volume rocker wake</string> <string name="volume_rocker_wake_title">Volume rocker wake</string>

View File

@@ -18,14 +18,15 @@
android:title="@string/button_title" android:title="@string/button_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- SwitchPreference <SwitchPreference
android:key="navbar_visibility" android:key="navbar_visibility"
android:title="@string/navigation_bar_title" android:title="@string/navigation_bar_title"
android:summary="@string/navigation_bar_summary" />--> android:summary="@string/navigation_bar_summary" />
<PreferenceCategory <PreferenceCategory
android:key="navigation_keys" android:key="navbar_layout_category"
android:title="@string/navigation_bar_category"> android:title="@string/navbar_layout_category_title"
android:dependency="navbar_visibility">
<Preference <Preference
android:key="gesture_system_navigation_input_summary" android:key="gesture_system_navigation_input_summary"

View File

@@ -58,6 +58,7 @@ public class ButtonSettings extends ActionFragment implements
Preference.OnPreferenceChangeListener { Preference.OnPreferenceChangeListener {
private static final String HWKEY_DISABLE = "hardware_keys_disable"; private static final String HWKEY_DISABLE = "hardware_keys_disable";
private static final String NAVBAR_VISIBILITY = "navbar_visibility";
private static final String KEY_NAVBAR_INVERSE = "navigation_bar_inverse"; private static final String KEY_NAVBAR_INVERSE = "navigation_bar_inverse";
private static final String KEY_NAVIGATION_COMPACT_LAYOUT = "navigation_bar_compact_layout"; private static final String KEY_NAVIGATION_COMPACT_LAYOUT = "navigation_bar_compact_layout";
private static final String KEY_SWAP_CAPACITIVE_KEYS = "swap_capacitive_keys"; private static final String KEY_SWAP_CAPACITIVE_KEYS = "swap_capacitive_keys";
@@ -86,8 +87,12 @@ public class ButtonSettings extends ActionFragment implements
private PreferenceCategory mHwKeyCategory; private PreferenceCategory mHwKeyCategory;
private SecureSettingSwitchPreference mSwapCapacitiveKeys; private SecureSettingSwitchPreference mSwapCapacitiveKeys;
private SwitchPreference mHwKeyDisable; private SwitchPreference mHwKeyDisable;
private SwitchPreference mNavbarVisibility;
private SystemSettingSwitchPreference mNavbarInverse; private SystemSettingSwitchPreference mNavbarInverse;
private SystemSettingSwitchPreference mNavigationCompactLayout; private SystemSettingSwitchPreference mNavigationCompactLayout;
private boolean mIsNavSwitchingMode = false;
private Handler mHandler;
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
@@ -171,6 +176,14 @@ public class ButtonSettings extends ActionFragment implements
mNavbarInverse.setEnabled(isThreeButtonNavbarEnabled); mNavbarInverse.setEnabled(isThreeButtonNavbarEnabled);
mNavigationCompactLayout = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_COMPACT_LAYOUT); mNavigationCompactLayout = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_COMPACT_LAYOUT);
mNavigationCompactLayout.setEnabled(isThreeButtonNavbarEnabled); mNavigationCompactLayout.setEnabled(isThreeButtonNavbarEnabled);
mNavbarVisibility = (SwitchPreference) findPreference(NAVBAR_VISIBILITY);
boolean showing = Settings.System.getIntForUser(resolver,
Settings.System.FORCE_SHOW_NAVBAR,
ActionUtils.hasNavbarByDefault(getActivity()) ? 1 : 0, UserHandle.USER_CURRENT) != 0;
mNavbarVisibility.setChecked(showing);
mNavbarVisibility.setOnPreferenceChangeListener(this);
} }
private static boolean isKeyDisablerSupported(Context context) { private static boolean isKeyDisablerSupported(Context context) {
@@ -191,6 +204,22 @@ public class ButtonSettings extends ActionFragment implements
Settings.System.putInt(getContentResolver(), Settings.System.HARDWARE_KEYS_DISABLE, Settings.System.putInt(getContentResolver(), Settings.System.HARDWARE_KEYS_DISABLE,
value ? 1 : 0); value ? 1 : 0);
setActionPreferencesEnabled(!value); setActionPreferencesEnabled(!value);
return true;
} else if (preference == mNavbarVisibility) {
if (mIsNavSwitchingMode) {
return false;
}
mIsNavSwitchingMode = true;
boolean showing = ((Boolean)newValue);
Settings.System.putIntForUser(resolver, Settings.System.FORCE_SHOW_NAVBAR,
showing ? 1 : 0, UserHandle.USER_CURRENT);
mNavbarVisibility.setChecked(showing);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mIsNavSwitchingMode = false;
}
}, 1500);
return true; return true;
} }
return false; return false;