Navbar: Protect against SystemUI FC when toggling navbar too fast
i know this is the noobest hacky fix ever and you'd like to come here and kill me with napalm but meh, it works well till we find a more pro solution :P Change-Id: I1856fec4a07f01d9bd960da645e3e8cc44392d48 Signed-off-by: SagarMakhar <sagarmakhar@gmail.com> Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
committed by
Hưng Phan
parent
491f3db7ca
commit
00648d9331
@@ -28,6 +28,11 @@ import android.os.RemoteException;
|
||||
import android.os.PowerManager;
|
||||
import android.os.ServiceManager;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import android.os.SystemProperties;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -102,6 +107,10 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
private SwitchPreference mNavigationBar;
|
||||
private SystemSettingSwitchPreference mNavigationArrows;
|
||||
|
||||
private boolean mIsNavSwitchingMode = false;
|
||||
|
||||
private Handler mHandler;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
@@ -214,6 +223,9 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
mLayoutSettings = (Preference) findPreference(KEY_LAYOUT_SETTINGS);
|
||||
|
||||
mNavigationArrows = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_BAR_ARROWS);
|
||||
|
||||
mHandler = new Handler();
|
||||
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
@@ -233,8 +245,18 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
||||
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
|
||||
} else if (preference == mNavigationBar) {
|
||||
boolean value = (Boolean) newValue;
|
||||
if (mIsNavSwitchingMode) {
|
||||
return false;
|
||||
}
|
||||
mIsNavSwitchingMode = true;
|
||||
Settings.System.putInt(getActivity().getContentResolver(),
|
||||
Settings.System.FORCE_SHOW_NAVBAR, value ? 1 : 0);
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mIsNavSwitchingMode = false;
|
||||
}
|
||||
}, 1500);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user