GameMode: remove hwkeys toggle on non-hwkeys devices

Change-Id: I730ccd05c4fd2e00966201ba3ab0dfb07ede1a1b
Signed-off-by: DennySPB <dennyspb@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
Lup Gabriel
2019-06-30 12:13:29 +03:00
committed by Hưng Phan
parent c1e9a0df45
commit 7a5e86f2e5

View File

@@ -75,6 +75,11 @@ public class GamingMode extends SettingsPreferenceFragment
private Map<String, Package> mGamingPackages;
private Context mContext;
private static final int KEY_MASK_HOME = 0x01;
private static final int KEY_MASK_BACK = 0x02;
private static final int KEY_MASK_MENU = 0x04;
private static final int KEY_MASK_APP_SWITCH = 0x10;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -87,6 +92,10 @@ public class GamingMode extends SettingsPreferenceFragment
mHardwareKeysDisable = (SwitchPreference) findPreference(GAMING_MODE_HW_KEYS);
if (!haveHWkeys()) {
prefScreen.removePreference(mHardwareKeysDisable);
}
mPackageManager = getPackageManager();
mPackageAdapter = new PackageListAdapter(getActivity());
@@ -339,4 +348,17 @@ public class GamingMode extends SettingsPreferenceFragment
Settings.System.putString(getContentResolver(),
setting, value);
}
private boolean haveHWkeys() {
final int deviceKeys = getContext().getResources().getInteger(
com.android.internal.R.integer.config_deviceHardwareKeys);
// read bits for present hardware keys
final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0;
final boolean hasBackKey = (deviceKeys & KEY_MASK_BACK) != 0;
final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0;
final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0;
return (hasHomeKey || hasBackKey || hasMenuKey || hasAppSwitchKey);
}
}