use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_CMParts by LineageOS.
the class ButtonSettings method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.button_settings);
final Resources res = getResources();
final ContentResolver resolver = getActivity().getContentResolver();
final PreferenceScreen prefScreen = getPreferenceScreen();
final int deviceKeys = getResources().getInteger(com.android.internal.R.integer.config_deviceHardwareKeys);
final int deviceWakeKeys = getResources().getInteger(com.android.internal.R.integer.config_deviceHardwareWakeKeys);
final boolean hasPowerKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER);
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 hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0;
final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0;
final boolean hasCameraKey = (deviceKeys & KEY_MASK_CAMERA) != 0;
final boolean hasVolumeKeys = (deviceKeys & KEY_MASK_VOLUME) != 0;
final boolean showHomeWake = (deviceWakeKeys & KEY_MASK_HOME) != 0;
final boolean showBackWake = (deviceWakeKeys & KEY_MASK_BACK) != 0;
final boolean showMenuWake = (deviceWakeKeys & KEY_MASK_MENU) != 0;
final boolean showAssistWake = (deviceWakeKeys & KEY_MASK_ASSIST) != 0;
final boolean showAppSwitchWake = (deviceWakeKeys & KEY_MASK_APP_SWITCH) != 0;
final boolean showCameraWake = (deviceWakeKeys & KEY_MASK_CAMERA) != 0;
final boolean showVolumeWake = (deviceWakeKeys & KEY_MASK_VOLUME) != 0;
boolean hasAnyBindableKey = false;
final PreferenceCategory powerCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_POWER);
final PreferenceCategory homeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME);
final PreferenceCategory backCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_BACK);
final PreferenceCategory menuCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_MENU);
final PreferenceCategory assistCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_ASSIST);
final PreferenceCategory appSwitchCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_APPSWITCH);
final PreferenceCategory volumeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_VOLUME);
final PreferenceCategory cameraCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_CAMERA);
// Power button ends calls.
mPowerEndCall = (SwitchPreference) findPreference(KEY_POWER_END_CALL);
// Long press power while display is off to activate torchlight
mTorchLongPressPowerGesture = (SwitchPreference) findPreference(KEY_TORCH_LONG_PRESS_POWER_GESTURE);
final int torchLongPressPowerTimeout = CMSettings.System.getInt(resolver, CMSettings.System.TORCH_LONG_PRESS_POWER_TIMEOUT, 0);
mTorchLongPressPowerTimeout = initList(KEY_TORCH_LONG_PRESS_POWER_TIMEOUT, torchLongPressPowerTimeout);
// Home button answers calls.
mHomeAnswerCall = (SwitchPreference) findPreference(KEY_HOME_ANSWER_CALL);
mHandler = new Handler();
// Force Navigation bar related options
mDisableNavigationKeys = (SwitchPreference) findPreference(DISABLE_NAV_KEYS);
mNavigationPreferencesCat = (PreferenceCategory) findPreference(CATEGORY_NAVBAR);
// Navigation bar left
mNavigationBarLeftPref = (SwitchPreference) findPreference(KEY_NAVIGATION_BAR_LEFT);
Action defaultHomeLongPressAction = Action.fromIntSafe(res.getInteger(com.android.internal.R.integer.config_longPressOnHomeBehavior));
Action defaultHomeDoubleTapAction = Action.fromIntSafe(res.getInteger(com.android.internal.R.integer.config_doubleTapOnHomeBehavior));
Action homeLongPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_HOME_LONG_PRESS_ACTION, defaultHomeLongPressAction);
Action homeDoubleTapAction = Action.fromSettings(resolver, CMSettings.System.KEY_HOME_DOUBLE_TAP_ACTION, defaultHomeDoubleTapAction);
// Navigation bar home long press
mNavigationHomeLongPressAction = initList(KEY_NAVIGATION_HOME_LONG_PRESS, homeLongPressAction);
// Navigation bar home double tap
mNavigationHomeDoubleTapAction = initList(KEY_NAVIGATION_HOME_DOUBLE_TAP, homeDoubleTapAction);
// Navigation bar recents long press activity needs custom setup
mNavigationRecentsLongPressAction = initRecentsLongPressAction(KEY_NAVIGATION_RECENTS_LONG_PRESS);
final CMHardwareManager hardware = CMHardwareManager.getInstance(getActivity());
// Only visible on devices that does not have a navigation bar already,
// and don't even try unless the existing keys can be disabled
boolean needsNavigationBar = false;
if (hardware.isSupported(CMHardwareManager.FEATURE_KEY_DISABLE)) {
try {
IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
needsNavigationBar = wm.needsNavigationBar();
} catch (RemoteException e) {
}
if (needsNavigationBar) {
prefScreen.removePreference(mDisableNavigationKeys);
} else {
// Remove keys that can be provided by the navbar
updateDisableNavkeysOption();
mNavigationPreferencesCat.setEnabled(mDisableNavigationKeys.isChecked());
updateDisableNavkeysCategories(mDisableNavigationKeys.isChecked());
}
} else {
prefScreen.removePreference(mDisableNavigationKeys);
}
if (hasPowerKey) {
if (!TelephonyUtils.isVoiceCapable(getActivity())) {
powerCategory.removePreference(mPowerEndCall);
mPowerEndCall = null;
}
if (!QSUtils.deviceSupportsFlashLight(getActivity())) {
powerCategory.removePreference(mTorchLongPressPowerGesture);
powerCategory.removePreference(mTorchLongPressPowerTimeout);
}
} else {
prefScreen.removePreference(powerCategory);
}
if (hasHomeKey) {
if (!showHomeWake) {
homeCategory.removePreference(findPreference(CMSettings.System.HOME_WAKE_SCREEN));
}
if (!TelephonyUtils.isVoiceCapable(getActivity())) {
homeCategory.removePreference(mHomeAnswerCall);
mHomeAnswerCall = null;
}
mHomeLongPressAction = initList(KEY_HOME_LONG_PRESS, homeLongPressAction);
mHomeDoubleTapAction = initList(KEY_HOME_DOUBLE_TAP, homeDoubleTapAction);
if (mDisableNavigationKeys.isChecked()) {
mHomeLongPressAction.setEnabled(false);
mHomeDoubleTapAction.setEnabled(false);
}
hasAnyBindableKey = true;
} else {
prefScreen.removePreference(homeCategory);
}
if (hasBackKey) {
if (!showBackWake) {
backCategory.removePreference(findPreference(CMSettings.System.BACK_WAKE_SCREEN));
prefScreen.removePreference(backCategory);
}
} else {
prefScreen.removePreference(backCategory);
}
if (hasMenuKey) {
if (!showMenuWake) {
menuCategory.removePreference(findPreference(CMSettings.System.MENU_WAKE_SCREEN));
}
Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_MENU_ACTION, Action.MENU);
mMenuPressAction = initList(KEY_MENU_PRESS, pressAction);
Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_MENU_LONG_PRESS_ACTION, hasAssistKey ? Action.NOTHING : Action.SEARCH);
mMenuLongPressAction = initList(KEY_MENU_LONG_PRESS, longPressAction);
hasAnyBindableKey = true;
} else {
prefScreen.removePreference(menuCategory);
}
if (hasAssistKey) {
if (!showAssistWake) {
assistCategory.removePreference(findPreference(CMSettings.System.ASSIST_WAKE_SCREEN));
}
Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_ASSIST_ACTION, Action.SEARCH);
mAssistPressAction = initList(KEY_ASSIST_PRESS, pressAction);
Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_ASSIST_LONG_PRESS_ACTION, Action.VOICE_SEARCH);
mAssistLongPressAction = initList(KEY_ASSIST_LONG_PRESS, longPressAction);
hasAnyBindableKey = true;
} else {
prefScreen.removePreference(assistCategory);
}
if (hasAppSwitchKey) {
if (!showAppSwitchWake) {
appSwitchCategory.removePreference(findPreference(CMSettings.System.APP_SWITCH_WAKE_SCREEN));
}
Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_APP_SWITCH_ACTION, Action.APP_SWITCH);
mAppSwitchPressAction = initList(KEY_APP_SWITCH_PRESS, pressAction);
Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, Action.SPLIT_SCREEN);
mAppSwitchLongPressAction = initList(KEY_APP_SWITCH_LONG_PRESS, longPressAction);
hasAnyBindableKey = true;
} else {
prefScreen.removePreference(appSwitchCategory);
}
if (hasCameraKey) {
mCameraWakeScreen = (SwitchPreference) findPreference(CMSettings.System.CAMERA_WAKE_SCREEN);
mCameraSleepOnRelease = (SwitchPreference) findPreference(CMSettings.System.CAMERA_SLEEP_ON_RELEASE);
mCameraLaunch = (SwitchPreference) findPreference(CMSettings.System.CAMERA_LAUNCH);
if (!showCameraWake) {
prefScreen.removePreference(mCameraWakeScreen);
}
// Only show 'Camera sleep on release' if the device has a focus key
if (res.getBoolean(com.android.internal.R.bool.config_singleStageCameraKey)) {
prefScreen.removePreference(mCameraSleepOnRelease);
}
} else {
prefScreen.removePreference(cameraCategory);
}
if (DeviceUtils.hasVolumeRocker(getActivity())) {
if (!showVolumeWake) {
volumeCategory.removePreference(findPreference(CMSettings.System.VOLUME_WAKE_SCREEN));
}
if (!TelephonyUtils.isVoiceCapable(getActivity())) {
volumeCategory.removePreference(findPreference(CMSettings.System.VOLUME_ANSWER_CALL));
}
int cursorControlAction = Settings.System.getInt(resolver, Settings.System.VOLUME_KEY_CURSOR_CONTROL, 0);
mVolumeKeyCursorControl = initList(KEY_VOLUME_KEY_CURSOR_CONTROL, cursorControlAction);
int swapVolumeKeys = CMSettings.System.getInt(getContentResolver(), CMSettings.System.SWAP_VOLUME_KEYS_ON_ROTATION, 0);
mSwapVolumeButtons = (SwitchPreference) prefScreen.findPreference(KEY_SWAP_VOLUME_BUTTONS);
if (mSwapVolumeButtons != null) {
mSwapVolumeButtons.setChecked(swapVolumeKeys > 0);
}
} else {
prefScreen.removePreference(volumeCategory);
}
try {
// Only show the navigation bar category on devices that have a navigation bar
// unless we are forcing it via development settings
boolean forceNavbar = CMSettings.Global.getInt(getContentResolver(), CMSettings.Global.DEV_FORCE_SHOW_NAVBAR, 0) == 1;
boolean hasNavBar = WindowManagerGlobal.getWindowManagerService().hasNavigationBar() || forceNavbar;
if (!ScreenType.isPhone(getActivity())) {
mNavigationPreferencesCat.removePreference(mNavigationBarLeftPref);
}
if (!hasNavBar && (needsNavigationBar || !hardware.isSupported(CMHardwareManager.FEATURE_KEY_DISABLE))) {
// Hide navigation bar category
prefScreen.removePreference(mNavigationPreferencesCat);
}
} catch (RemoteException e) {
Log.e(TAG, "Error getting navigation bar status");
}
final ButtonBacklightBrightness backlight = (ButtonBacklightBrightness) findPreference(KEY_BUTTON_BACKLIGHT);
if (!backlight.isButtonSupported() && !backlight.isKeyboardSupported()) {
prefScreen.removePreference(backlight);
}
if (mCameraWakeScreen != null) {
if (mCameraSleepOnRelease != null && !getResources().getBoolean(com.android.internal.R.bool.config_singleStageCameraKey)) {
mCameraSleepOnRelease.setDependency(CMSettings.System.CAMERA_WAKE_SCREEN);
}
}
mVolumeWakeScreen = (SwitchPreference) findPreference(CMSettings.System.VOLUME_WAKE_SCREEN);
mVolumeMusicControls = (SwitchPreference) findPreference(KEY_VOLUME_MUSIC_CONTROLS);
if (mVolumeWakeScreen != null) {
if (mVolumeMusicControls != null) {
mVolumeMusicControls.setDependency(CMSettings.System.VOLUME_WAKE_SCREEN);
mVolumeWakeScreen.setDisableDependentsState(true);
}
}
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_CMParts by LineageOS.
the class WeatherServiceSettings method onActivityCreated.
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addPreferencesFromResource(R.xml.weather_settings);
final PreferenceScreen ps = getPreferenceScreen();
mGeneralSettingsCategory = (PreferenceCategory) ps.findPreference(PREFERENCE_GENERAL);
mProvidersCategory = (PreferenceCategory) ps.findPreference(PREFERENCE_PROVIDERS);
mTemperatureUnit = (ListPreference) ps.findPreference(PREFERENCE_TEMP_UNIT);
mTemperatureUnit.setOnPreferenceChangeListener(this);
watch(CMSettings.Secure.getUriFor(CMSettings.Secure.WEATHER_PROVIDER_SERVICE));
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class PowerUsageAdvancedTest method testPrefs_shouldNotBeSelectable.
@Test
public void testPrefs_shouldNotBeSelectable() {
PreferenceManager pm = new PreferenceManager(mShadowContext);
when(mPowerUsageAdvanced.getPreferenceManager()).thenReturn(pm);
PreferenceGroup prefGroup = spy(new PreferenceCategory(mShadowContext));
when(prefGroup.getPreferenceManager()).thenReturn(pm);
mPowerUsageAdvanced.refreshPowerUsageDataList(mBatteryStatsHelper, prefGroup);
assertThat(prefGroup.getPreferenceCount()).isAtLeast(1);
for (int i = 0, count = prefGroup.getPreferenceCount(); i < count; i++) {
PowerGaugePreference pref = (PowerGaugePreference) prefGroup.getPreference(i);
assertThat(pref.isSelectable()).isFalse();
}
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class PrivateVolumeSettings method addCategory.
private PreferenceCategory addCategory(PreferenceGroup group, CharSequence title) {
PreferenceCategory category;
if (mHeaderPoolIndex < mHeaderPreferencePool.size()) {
category = mHeaderPreferencePool.get(mHeaderPoolIndex);
} else {
category = new PreferenceCategory(getPrefContext());
mHeaderPreferencePool.add(category);
}
category.setTitle(title);
category.removeAll();
addPreference(group, category);
++mHeaderPoolIndex;
return category;
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_DU-Tweaks by DirtyUnicorns.
the class ActionFragment method onPreferenceScreenLoaded.
/**
* load our button lists and ActionPreferences map button action targets from preference keys
* and defaults config maps subclass is required to set desired Defaults interface int
* ActionContants
*/
protected void onPreferenceScreenLoaded(Defaults defaults) {
mDefaults = defaults;
final PreferenceScreen prefScreen = getPreferenceScreen();
for (int i = 0; i < prefScreen.getPreferenceCount(); i++) {
Preference pref = prefScreen.getPreference(i);
if (pref instanceof PreferenceCategory) {
PreferenceCategory cat = (PreferenceCategory) pref;
for (int j = 0; j < cat.getPreferenceCount(); j++) {
Preference child = cat.getPreference(j);
if (child instanceof ActionPreference) {
mPrefHolder.add((ActionPreference) child);
}
}
} else if (pref instanceof ActionPreference) {
mPrefHolder.add((ActionPreference) pref);
}
}
loadAndSetConfigs();
}
Aggregations