NavigationBar visible from DUI: Initial checkin for Oreo
included Protect against SystemUI FC when toggling navbar too fast by ezio84 Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
@@ -767,4 +767,6 @@
|
||||
<string name="navigation_bar_invert_layout_title">Đảo ngược bố cục</string>
|
||||
<string name="navigation_bar_invert_layout_summary">Đảo ngược bố cục của thanh điều hướng và các mục khác, chẳng hạn như trình chuyển đổi IME</string>
|
||||
<string name="unsupported_gestures">Bật điều hướng hai nút hoặc ba nút để sử dụng tính năng này</string>
|
||||
<string name="navbar_visibility">Thanh điều hướng</string>
|
||||
<string name="navbar_vis_summary">Bật-tắt thanh điều hướng</string>
|
||||
</resources>
|
||||
|
||||
@@ -875,5 +875,8 @@
|
||||
<string name="navigation_bar_invert_layout_title">Invert layout</string>
|
||||
<string name="navigation_bar_invert_layout_summary">Inverts the layout of the navigation bar and other items, such as the IME switcher</string>
|
||||
<string name="unsupported_gestures">Enable two button or three button navigation to use this feature</string>
|
||||
|
||||
<string name="navbar_visibility">Nav Bar</string>
|
||||
<string name="navbar_vis_summary">Enable-disable navigation bar</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
android:title="@string/navigation_bar_invert_layout_title"
|
||||
android:summary="@string/navigation_bar_invert_layout_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="navigation_bar_show_new"
|
||||
android:title="@string/navbar_visibility"
|
||||
android:summary="@string/navbar_vis_summary" />
|
||||
|
||||
<com.cherish.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="pixel_nav_animation"
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
|
||||
import android.content.res.Resources;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.UserHandle;
|
||||
import android.os.Vibrator;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
@@ -50,6 +51,7 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
private static final String HWKEY_DISABLE = "hardware_keys_disable";
|
||||
private static final String PIXEL_ANIMATION_NAVIGATION = "pixel_nav_animation";
|
||||
private static final String INVERT_NAVIGATION = "sysui_nav_bar_inverse";
|
||||
private static final String NAVBAR_VISIBILITY = "navigation_bar_show_new";
|
||||
|
||||
// category keys
|
||||
private static final String CATEGORY_HWKEY = "hardware_keys";
|
||||
@@ -77,6 +79,9 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
private SwitchPreference mHwKeyDisable;
|
||||
private SystemSettingSwitchPreference mPixelAnimationNavigation;
|
||||
private SecureSettingSwitchPreference mInvertNavigation;
|
||||
private SwitchPreference mNavbarVisibility;
|
||||
private boolean mIsNavSwitchingMode = false;
|
||||
private Handler mHandler;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
@@ -87,6 +92,16 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
final ContentResolver resolver = getActivity().getContentResolver();
|
||||
final PreferenceScreen prefScreen = getPreferenceScreen();
|
||||
|
||||
mNavbarVisibility = (SwitchPreference) findPreference(NAVBAR_VISIBILITY);
|
||||
|
||||
boolean showing = Settings.System.getInt(getContentResolver(),
|
||||
Settings.System.FORCE_SHOW_NAVBAR,
|
||||
ActionUtils.hasNavbarByDefault(getActivity()) ? 1 : 0) != 0;
|
||||
updateBarVisibleAndUpdatePrefs(showing);
|
||||
mNavbarVisibility.setOnPreferenceChangeListener(this);
|
||||
|
||||
mHandler = new Handler();
|
||||
|
||||
mPixelAnimationNavigation = findPreference(PIXEL_ANIMATION_NAVIGATION);
|
||||
mInvertNavigation = findPreference(INVERT_NAVIGATION);
|
||||
// On three button nav
|
||||
@@ -241,9 +256,29 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
value ? 1 : 0);
|
||||
setActionPreferencesEnabled(!value);
|
||||
return true;
|
||||
} else if (preference.equals(mNavbarVisibility)) {
|
||||
if (mIsNavSwitchingMode) {
|
||||
return false;
|
||||
}
|
||||
mIsNavSwitchingMode = true;
|
||||
boolean showing = ((Boolean)newValue);
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.FORCE_SHOW_NAVBAR,
|
||||
showing ? 1 : 0);
|
||||
updateBarVisibleAndUpdatePrefs(showing);
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mIsNavSwitchingMode = false;
|
||||
}
|
||||
}, 1500);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void updateBarVisibleAndUpdatePrefs(boolean showing) {
|
||||
mNavbarVisibility.setChecked(showing);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean usesExtendedActionsList() {
|
||||
|
||||
Reference in New Issue
Block a user