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.PowerManager;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import androidx.preference.PreferenceCategory;
|
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.ListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -102,6 +107,10 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
private SwitchPreference mNavigationBar;
|
private SwitchPreference mNavigationBar;
|
||||||
private SystemSettingSwitchPreference mNavigationArrows;
|
private SystemSettingSwitchPreference mNavigationArrows;
|
||||||
|
|
||||||
|
private boolean mIsNavSwitchingMode = false;
|
||||||
|
|
||||||
|
private Handler mHandler;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
@@ -214,6 +223,9 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
mLayoutSettings = (Preference) findPreference(KEY_LAYOUT_SETTINGS);
|
mLayoutSettings = (Preference) findPreference(KEY_LAYOUT_SETTINGS);
|
||||||
|
|
||||||
mNavigationArrows = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_BAR_ARROWS);
|
mNavigationArrows = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_BAR_ARROWS);
|
||||||
|
|
||||||
|
mHandler = new Handler();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
@@ -233,8 +245,18 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
|
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
|
||||||
} else if (preference == mNavigationBar) {
|
} else if (preference == mNavigationBar) {
|
||||||
boolean value = (Boolean) newValue;
|
boolean value = (Boolean) newValue;
|
||||||
|
if (mIsNavSwitchingMode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
mIsNavSwitchingMode = true;
|
||||||
Settings.System.putInt(getActivity().getContentResolver(),
|
Settings.System.putInt(getActivity().getContentResolver(),
|
||||||
Settings.System.FORCE_SHOW_NAVBAR, value ? 1 : 0);
|
Settings.System.FORCE_SHOW_NAVBAR, value ? 1 : 0);
|
||||||
|
mHandler.postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
mIsNavSwitchingMode = false;
|
||||||
|
}
|
||||||
|
}, 1500);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user