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_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="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="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>
|
</resources>
|
||||||
|
|||||||
@@ -876,4 +876,7 @@
|
|||||||
<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="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="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>
|
</resources>
|
||||||
|
|||||||
@@ -35,6 +35,11 @@
|
|||||||
android:summary="@string/navigation_bar_invert_layout_summary"
|
android:summary="@string/navigation_bar_invert_layout_summary"
|
||||||
android:defaultValue="false" />
|
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
|
<com.cherish.settings.preferences.SystemSettingSwitchPreference
|
||||||
android:key="pixel_nav_animation"
|
android:key="pixel_nav_animation"
|
||||||
android:title="@string/pixel_navbar_anim_title"
|
android:title="@string/pixel_navbar_anim_title"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import androidx.preference.PreferenceCategory;
|
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 HWKEY_DISABLE = "hardware_keys_disable";
|
||||||
private static final String PIXEL_ANIMATION_NAVIGATION = "pixel_nav_animation";
|
private static final String PIXEL_ANIMATION_NAVIGATION = "pixel_nav_animation";
|
||||||
private static final String INVERT_NAVIGATION = "sysui_nav_bar_inverse";
|
private static final String INVERT_NAVIGATION = "sysui_nav_bar_inverse";
|
||||||
|
private static final String NAVBAR_VISIBILITY = "navigation_bar_show_new";
|
||||||
|
|
||||||
// category keys
|
// category keys
|
||||||
private static final String CATEGORY_HWKEY = "hardware_keys";
|
private static final String CATEGORY_HWKEY = "hardware_keys";
|
||||||
@@ -77,6 +79,9 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
private SwitchPreference mHwKeyDisable;
|
private SwitchPreference mHwKeyDisable;
|
||||||
private SystemSettingSwitchPreference mPixelAnimationNavigation;
|
private SystemSettingSwitchPreference mPixelAnimationNavigation;
|
||||||
private SecureSettingSwitchPreference mInvertNavigation;
|
private SecureSettingSwitchPreference mInvertNavigation;
|
||||||
|
private SwitchPreference mNavbarVisibility;
|
||||||
|
private boolean mIsNavSwitchingMode = false;
|
||||||
|
private Handler mHandler;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
@@ -87,6 +92,16 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
final ContentResolver resolver = getActivity().getContentResolver();
|
final ContentResolver resolver = getActivity().getContentResolver();
|
||||||
final PreferenceScreen prefScreen = getPreferenceScreen();
|
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);
|
mPixelAnimationNavigation = findPreference(PIXEL_ANIMATION_NAVIGATION);
|
||||||
mInvertNavigation = findPreference(INVERT_NAVIGATION);
|
mInvertNavigation = findPreference(INVERT_NAVIGATION);
|
||||||
// On three button nav
|
// On three button nav
|
||||||
@@ -241,10 +256,30 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
value ? 1 : 0);
|
value ? 1 : 0);
|
||||||
setActionPreferencesEnabled(!value);
|
setActionPreferencesEnabled(!value);
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateBarVisibleAndUpdatePrefs(boolean showing) {
|
||||||
|
mNavbarVisibility.setChecked(showing);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean usesExtendedActionsList() {
|
protected boolean usesExtendedActionsList() {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user