Search in sources :

Example 61 with PreferenceCategory

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);
        }
    }
}
Also used : PreferenceScreen(android.support.v7.preference.PreferenceScreen) PreferenceCategory(android.support.v7.preference.PreferenceCategory) IWindowManager(android.view.IWindowManager) Handler(android.os.Handler) Resources(android.content.res.Resources) RemoteException(android.os.RemoteException) CMHardwareManager(cyanogenmod.hardware.CMHardwareManager) ContentResolver(android.content.ContentResolver)

Example 62 with PreferenceCategory

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));
}
Also used : PreferenceScreen(android.support.v7.preference.PreferenceScreen)

Example 63 with PreferenceCategory

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();
    }
}
Also used : PreferenceCategory(android.support.v7.preference.PreferenceCategory) PreferenceGroup(android.support.v7.preference.PreferenceGroup) PreferenceManager(android.support.v7.preference.PreferenceManager) Test(org.junit.Test)

Example 64 with PreferenceCategory

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;
}
Also used : PreferenceCategory(android.support.v7.preference.PreferenceCategory)

Example 65 with PreferenceCategory

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();
}
Also used : PreferenceScreen(android.support.v7.preference.PreferenceScreen) ActionPreference(com.dirtyunicorns.tweaks.preferences.ActionPreference) Preference(android.support.v7.preference.Preference) PreferenceCategory(android.support.v7.preference.PreferenceCategory) ActionPreference(com.dirtyunicorns.tweaks.preferences.ActionPreference)

Aggregations

PreferenceCategory (android.support.v7.preference.PreferenceCategory)166 Preference (android.support.v7.preference.Preference)105 PreferenceScreen (android.support.v7.preference.PreferenceScreen)75 Intent (android.content.Intent)35 Context (android.content.Context)34 SwitchPreference (android.support.v14.preference.SwitchPreference)31 RestrictedSwitchPreference (com.android.settingslib.RestrictedSwitchPreference)27 ArrayList (java.util.ArrayList)24 ComponentName (android.content.ComponentName)22 ListPreference (android.support.v7.preference.ListPreference)18 Bundle (android.os.Bundle)16 PreferenceGroup (android.support.v7.preference.PreferenceGroup)14 DimmableIconPreference (com.android.settings.DimmableIconPreference)14 ContentResolver (android.content.ContentResolver)13 LayoutPreference (com.android.settings.applications.LayoutPreference)13 PreferenceManager (android.support.v7.preference.PreferenceManager)12 MasterSwitchPreference (com.android.settings.widget.MasterSwitchPreference)12 FooterPreference (com.android.settingslib.widget.FooterPreference)12 Test (org.junit.Test)12 Activity (android.app.Activity)9