@Override public void onDestroy() { PreferenceGroup prefGroup = getPreferenceScreen(); for (int i = 0; i < prefGroup.getPreferenceCount(); i++) { Preference pref = prefGroup.getPreference(i); if (pref instanceof CheckBoxPreference) { CheckBoxPreference checkBoxPref = (CheckBoxPreference) pref; SettingsManager.setPreferenceBoolean(checkBoxPref.getKey(), checkBoxPref.isChecked()); } } super.onDestroy(); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings_emu_fragment); PreferenceGroup prefGroup = getPreferenceScreen(); for (int i = 0; i < prefGroup.getPreferenceCount(); i++) { Preference pref = prefGroup.getPreference(i); if (pref instanceof CheckBoxPreference) { CheckBoxPreference checkBoxPref = (CheckBoxPreference) pref; checkBoxPref.setChecked(SettingsManager.getPreferenceBoolean(checkBoxPref.getKey())); } } }
private void bind(PreferenceGroup group) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); for (int i = 0; i < group.getPreferenceCount(); i++) { Preference p = group.getPreference(i); if (p instanceof PreferenceGroup) { bind((PreferenceGroup) p); } else { if (p instanceof CheckBoxPreference) {; } else { Object val = sp.getAll().get(p.getKey()); p.setSummary(val == null ? "" : ("" + val)); p.setOnPreferenceChangeListener(this); } } } }
private Category(PreferenceScreen screen, ZLResource root, String resourceKey) { if (resourceKey != null) { Resource = root.getResource(resourceKey); myGroup = new PreferenceCategory(ZLPreferenceActivity.this); myGroup.setTitle(Resource.getValue()); screen.addPreference(myGroup); } else { Resource = root; myGroup = screen; } }
private @NonNull PreferenceGroup onMergeRoots( PreferenceGroup givenRoot, @NonNull PreferenceGroup xmlRoot) { // If we were given a Preferences, use it as the root (ignoring the root // Preferences from the XML file). if (givenRoot == null) { xmlRoot.onAttachedToHierarchy(mPreferenceManager); return xmlRoot; } else { return givenRoot; } }
private void flattenPreferenceGroup(List<Preference> preferences, PreferenceGroup group) { group.sortPreferences(); final int groupSize = group.getPreferenceCount(); for (int i = 0; i < groupSize; i++) { final Preference preference = group.getPreference(i); preferences.add(preference); addPreferenceClassName(preference); if (preference instanceof PreferenceGroup) { final PreferenceGroup preferenceAsGroup = (PreferenceGroup) preference; if (preferenceAsGroup.isOnSameScreenAsChildren()) { flattenPreferenceGroup(preferences, preferenceAsGroup); } } preference.setOnPreferenceChangeInternalListener(this); } }
private void initGroups(PreferenceGroup preferences) { final int count = preferences.getPreferenceCount(); for (int i = 0; i < count; i++) { Preference pref = preferences.getPreference(i); if (pref instanceof PreferenceGroup) initGroups((PreferenceGroup) pref); else { pref.setOnPreferenceChangeListener(this); // Some Preference UI elements are not actually preferences, // but they require a key to work correctly. For example, // "Clear private data" requires a key for its state to be // saved when the orientation changes. It uses the // "android.not_a_preference.privacy.clear" key - which doesn't // exist in Gecko - to satisfy this requirement. String key = pref.getKey(); if (key != null && !key.startsWith(NON_PREF_PREFIX)) { mPreferencesList.add(pref.getKey()); } } } }
public PreferenceGroupAdapter(PreferenceGroup preferenceGroup) { mPreferenceGroup = preferenceGroup; // If this group gets or loses any children, let us know mPreferenceGroup.setOnPreferenceChangeInternalListener(this); mPreferenceList = new ArrayList<>(); mPreferenceListInternal = new ArrayList<>(); mPreferenceLayouts = new ArrayList<>(); setHasStableIds(true); syncMyPreferences(); }
/** * Recursive method used to descend down the xml hierarchy and instantiate items, instantiate * their children, and then call onFinishInflate(). */ private void rInflate(XmlPullParser parser, Preference parent, final AttributeSet attrs) throws XmlPullParserException, IOException { final int depth = parser.getDepth(); int type; while (((type = parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) { if (type != XmlPullParser.START_TAG) { continue; } final String name = parser.getName(); if (INTENT_TAG_NAME.equals(name)) { final Intent intent; try { intent = Intent.parseIntent(getContext().getResources(), parser, attrs); } catch (IOException e) { XmlPullParserException ex = new XmlPullParserException("Error parsing preference"); ex.initCause(e); throw ex; } parent.setIntent(intent); } else if (EXTRA_TAG_NAME.equals(name)) { getContext().getResources().parseBundleExtra(EXTRA_TAG_NAME, attrs, parent.getExtras()); try { skipCurrentTag(parser); } catch (IOException e) { XmlPullParserException ex = new XmlPullParserException("Error parsing preference"); ex.initCause(e); throw ex; } } else { final Preference item = createItemFromTag(name, attrs); ((PreferenceGroup) parent).addItemFromInflater(item); rInflate(parser, item, attrs); } } }
void addOption(ZLBooleanOption option, String resourceKey) { ZLBooleanPreference preference = new ZLBooleanPreference(ZLPreferenceActivity.this, option, Resource, resourceKey); myGroup.addPreference(preference); myPreferences.add(preference); }
void addPreference(ZLPreference preference) { myGroup.addPreference((Preference) preference); myPreferences.add(preference); }
Screen createPreferenceScreen(String resourceKey) { Screen screen = new Screen(Resource, resourceKey); myGroup.addPreference(screen.myScreen); return screen; }
public void reloadPreferences() { mPreferenceGroup.reloadValue(); for (IconListPreference pref : mPreferences) { reloadPreference(pref); } }
protected void setCameraId(int cameraId) { ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID); pref.setValue("" + cameraId); }
public void initialize(PreferenceGroup group) { super.initialize(group); mPopup = null; PieItem item = null; final Resources res = mActivity.getResources(); Locale locale = res.getConfiguration().locale; // The order is from left to right in the menu. // HDR+ (GCam). if (group.findPreference(CameraSettings.KEY_CAMERA_HDR_PLUS) != null) { item = makeSwitchItem(CameraSettings.KEY_CAMERA_HDR_PLUS, true); mRenderer.addItem(item); } // HDR. if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) { item = makeSwitchItem(CameraSettings.KEY_CAMERA_HDR, true); mRenderer.addItem(item); } // Exposure compensation. if (group.findPreference(CameraSettings.KEY_EXPOSURE) != null) { item = makeItem(CameraSettings.KEY_EXPOSURE); item.setLabel(res.getString(R.string.pref_exposure_label)); mRenderer.addItem(item); } // More settings. PieItem more = makeItem(R.drawable.ic_settings_holo_light); more.setLabel(res.getString(R.string.camera_menu_more_label)); mRenderer.addItem(more); // Flash. if (group.findPreference(CameraSettings.KEY_FLASH_MODE) != null) { item = makeItem(CameraSettings.KEY_FLASH_MODE); item.setLabel(res.getString(R.string.pref_camera_flashmode_label)); mRenderer.addItem(item); } // Camera switcher. if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) { item = makeSwitchItem(CameraSettings.KEY_CAMERA_ID, false); final PieItem fitem = item; item.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { // Find the index of next camera. ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID); if (pref != null) { int index = pref.findIndexOfValue(pref.getValue()); CharSequence[] values = pref.getEntryValues(); index = (index + 1) % values.length; pref.setValueIndex(index); mListener.onCameraPickerClicked(index); } updateItem(fitem, CameraSettings.KEY_CAMERA_ID); } }); mRenderer.addItem(item); } // Location. if (group.findPreference(CameraSettings.KEY_RECORD_LOCATION) != null) { item = makeSwitchItem(CameraSettings.KEY_RECORD_LOCATION, true); more.addItem(item); if (mActivity.isSecureCamera()) { // Prevent location preference from getting changed in secure camera mode item.setEnabled(false); } } // Countdown timer. final ListPreference ctpref = group.findPreference(CameraSettings.KEY_TIMER); final ListPreference beeppref = group.findPreference(CameraSettings.KEY_TIMER_SOUND_EFFECTS); item = makeItem(R.drawable.ic_timer); item.setLabel(res.getString(R.string.pref_camera_timer_title).toUpperCase(locale)); item.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { CountdownTimerPopup timerPopup = (CountdownTimerPopup) mActivity .getLayoutInflater() .inflate(R.layout.countdown_setting_popup, null, false); timerPopup.initialize(ctpref, beeppref); timerPopup.setSettingChangedListener(PhotoMenu.this); mUI.dismissPopup(); mPopup = timerPopup; mUI.showPopup(mPopup); } }); more.addItem(item); // Image size. item = makeItem(R.drawable.ic_imagesize); final ListPreference sizePref = group.findPreference(CameraSettings.KEY_PICTURE_SIZE); item.setLabel(res.getString(R.string.pref_camera_picturesize_title).toUpperCase(locale)); item.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { ListPrefSettingPopup popup = (ListPrefSettingPopup) mActivity .getLayoutInflater() .inflate(R.layout.list_pref_setting_popup, null, false); popup.initialize(sizePref); popup.setSettingChangedListener(PhotoMenu.this); mUI.dismissPopup(); mPopup = popup; mUI.showPopup(mPopup); } }); more.addItem(item); // White balance. if (group.findPreference(CameraSettings.KEY_WHITE_BALANCE) != null) { item = makeItem(CameraSettings.KEY_WHITE_BALANCE); item.setLabel(res.getString(R.string.pref_camera_whitebalance_label)); more.addItem(item); } // Scene mode. if (group.findPreference(CameraSettings.KEY_SCENE_MODE) != null) { IconListPreference pref = (IconListPreference) group.findPreference(CameraSettings.KEY_SCENE_MODE); pref.setUseSingleIcon(true); item = makeItem(CameraSettings.KEY_SCENE_MODE); more.addItem(item); } }
public void initialize(PreferenceGroup group) { super.initialize(group); mPopup = null; mSecondPopup = null; float sweep = FLOAT_PI_DIVIDED_BY_TWO / 2; addItem(CameraSettings.KEY_FLASH_MODE, FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); addItem(CameraSettings.KEY_EXPOSURE, 3 * FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); addItem(CameraSettings.KEY_WHITE_BALANCE, 3 * FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) { PieItem item = makeItem(R.drawable.ic_switch_photo_facing_holo_light); item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); item.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { // Find the index of next camera. ListPreference camPref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID); if (camPref != null) { int index = camPref.findIndexOfValue(camPref.getValue()); CharSequence[] values = camPref.getEntryValues(); index = (index + 1) % values.length; int newCameraId = Integer.parseInt((String) values[index]); mListener.onCameraPickerClicked(newCameraId); } } }); mRenderer.addItem(item); } if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) { PieItem hdr = makeItem(R.drawable.ic_hdr); hdr.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO, sweep); hdr.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { // Find the index of next camera. ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_HDR); if (pref != null) { // toggle hdr value int index = (pref.findIndexOfValue(pref.getValue()) + 1) % 2; pref.setValueIndex(index); onSettingChanged(pref); } } }); mRenderer.addItem(hdr); } mOtherKeys = new String[] { CameraSettings.KEY_SCENE_MODE, CameraSettings.KEY_RECORD_LOCATION, CameraSettings.KEY_POWER_SHUTTER, CameraSettings.KEY_PICTURE_SIZE, CameraSettings.KEY_FOCUS_MODE, CameraSettings.KEY_FOCUS_TIME, CameraSettings.KEY_ISO_MODE, CameraSettings.KEY_JPEG, CameraSettings.KEY_COLOR_EFFECT, CameraSettings.KEY_BURST_MODE }; PieItem item = makeItem(R.drawable.ic_settings_holo_light); item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO * 3, sweep); item.setOnClickListener( new OnClickListener() { @Override public void onClick(PieItem item) { if (mPopup == null) { initializePopup(); } mModule.showPopup(mPopup); } }); mRenderer.addItem(item); }