Beispiel #1
0
    @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();
    }
Beispiel #2
0
    @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()));
        }
      }
    }
Beispiel #3
0
 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);
 }
Beispiel #15
0
  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);
 }