Beispiel #1
0
  /**
   * Set summary for preference
   *
   * @param pref preference
   * @param init true if no recursive
   */
  private void setSummary(Preference pref, boolean init) {
    if (pref instanceof EditTextPreference) {
      EditTextPreference editPref = (EditTextPreference) pref;
      pref.setSummary(editPref.getText());

      if (editPref.getKey().equals("logfile") && !init) {
        editPref.setText(PrefStore.getLogFile(this));
        pref.setSummary(editPref.getText());
      }
    }

    if (pref instanceof ListPreference) {
      ListPreference listPref = (ListPreference) pref;
      pref.setSummary(listPref.getEntry());
    }

    if (pref instanceof CheckBoxPreference) {
      CheckBoxPreference checkPref = (CheckBoxPreference) pref;

      if (checkPref.getKey().equals("logger") && checkPref.isChecked() && init) {
        requestWritePermissions();
      }
    }
  }
  private void setSummary(Preference pref, boolean init) {
    if (pref instanceof EditTextPreference) {
      EditTextPreference editPref = (EditTextPreference) pref;
      pref.setSummary(editPref.getText());

      if (editPref.getKey().equals("serverdns") && editPref.getText().length() == 0) {
        pref.setSummary(getString(R.string.summary_serverdns_preference));
      }
      if (editPref.getKey().equals("disksize") && editPref.getText().equals("0")) {
        pref.setSummary(getString(R.string.summary_disksize_preference));
      }
      if (editPref.getKey().equals("diskimage") && !init) {
        editPref.setText(PrefStore.getTargetPath(this));
        pref.setSummary(editPref.getText());
      }
      if (editPref.getKey().equals("vncwidth") && editPref.getText().length() == 0) {
        editPref.setText(PrefStore.getScreenWidth(this).toString());
        pref.setSummary(editPref.getText());
      }
      if (editPref.getKey().equals("vncheight") && editPref.getText().length() == 0) {
        editPref.setText(PrefStore.getScreenHeight(this).toString());
        pref.setSummary(editPref.getText());
      }
    }

    if (pref instanceof ListPreference) {
      ListPreference listPref = (ListPreference) pref;
      pref.setSummary(listPref.getEntry());

      if (listPref.getKey().equals("distribution")) {
        ListPreference suite = (ListPreference) findPreference("suite");
        ListPreference architecture = (ListPreference) findPreference("architecture");
        EditTextPreference mirror = (EditTextPreference) findPreference("mirror");
        MultiSelectListPreferenceCompat components =
            (MultiSelectListPreferenceCompat) findPreference("xcomponents");

        String distributionStr = listPref.getValue();

        // suite
        int suiteValuesId =
            PrefStore.getResourceId(this, distributionStr + "_suite_values", "array");
        if (suiteValuesId != -1) {
          suite.setEntries(suiteValuesId);
          suite.setEntryValues(suiteValuesId);
        }
        if (init) {
          int suiteId = PrefStore.getResourceId(this, distributionStr + "_suite", "string");
          if (suiteId != -1) {
            String suiteStr = getString(suiteId);
            if (suiteStr.length() > 0) suite.setValue(suiteStr);
          }
        }
        suite.setSummary(suite.getEntry());
        suite.setEnabled(true);

        // architecture
        int architectureValuesId =
            PrefStore.getResourceId(this, distributionStr + "_architecture_values", "array");
        if (suiteValuesId != -1) {
          architecture.setEntries(architectureValuesId);
          architecture.setEntryValues(architectureValuesId);
        }
        if (init || architecture.getValue().length() == 0) {
          int architectureId =
              PrefStore.getResourceId(
                  this, PrefStore.getArch() + "_" + distributionStr + "_architecture", "string");
          if (architectureId != -1) {
            String architectureStr = getString(architectureId);
            if (architectureStr.length() > 0) architecture.setValue(architectureStr);
          }
        }
        architecture.setSummary(architecture.getEntry());
        architecture.setEnabled(true);

        // mirror
        if (init || mirror.getText().length() == 0) {
          int mirrorId =
              PrefStore.getResourceId(
                  this, PrefStore.getArch() + "_" + distributionStr + "_mirror", "string");
          if (mirrorId != -1) {
            mirror.setText(getString(mirrorId));
          }
        }
        mirror.setSummary(mirror.getText());
        mirror.setEnabled(true);

        // components
        int componentsEntriesId =
            PrefStore.getResourceId(this, distributionStr + "_components_entries", "array");
        int componentsValuesId =
            PrefStore.getResourceId(this, distributionStr + "_components_values", "array");
        if (componentsEntriesId != -1 && componentsValuesId != -1) {
          components.setEntries(componentsEntriesId);
          components.setEntryValues(componentsValuesId);
        }
        if (init) {
          components.setValues(
              new HashSet<String>(
                  Arrays.asList(getResources().getStringArray(R.array.default_components))));
        }
        components.setEnabled(true);

        // RootFS
        if (distributionStr.equals("rootfs")) {
          // suite
          suite.setEnabled(false);
          // architecture
          architecture.setEnabled(false);
          // mirror
          if (init) {
            String archiveFile = PrefStore.getStorage() + "/linux-rootfs.tar.gz";
            mirror.setText(archiveFile);
          }
          mirror.setSummary(mirror.getText());
          mirror.setEnabled(true);
          // components
          components.setEnabled(false);
        }
      }
      if (listPref.getKey().equals("architecture") && init) {
        ListPreference distribution = (ListPreference) findPreference("distribution");
        EditTextPreference mirror = (EditTextPreference) findPreference("mirror");

        String architectureStr = PrefStore.getArch(listPref.getValue());
        String distributionStr = distribution.getValue();

        int mirrorId =
            PrefStore.getResourceId(
                this, architectureStr + "_" + distributionStr + "_mirror", "string");
        if (mirrorId != -1) {
          mirror.setText(getString(mirrorId));
        }

        mirror.setSummary(mirror.getText());
      }
      if (listPref.getKey().equals("deploytype")) {
        EditTextPreference diskimage = (EditTextPreference) findPreference("diskimage");
        EditTextPreference disksize = (EditTextPreference) findPreference("disksize");
        ListPreference fstype = (ListPreference) findPreference("fstype");

        switch (listPref.getValue()) {
          case "file":
            if (init) {
              diskimage.setText(PrefStore.getValues(this, R.string.targetpath_file));
            }
            disksize.setEnabled(true);
            fstype.setEnabled(true);
            break;
          case "partition":
            if (init) {
              diskimage.setText(PrefStore.getValues(this, R.string.targetpath_partition));
            }
            disksize.setEnabled(false);
            fstype.setEnabled(true);
            break;
          case "ram":
            if (init) {
              diskimage.setText(PrefStore.getValues(this, R.string.targetpath_ram));
            }
            disksize.setEnabled(true);
            fstype.setEnabled(false);
            break;
          default:
            if (init) {
              diskimage.setText(PrefStore.getValues(this, R.string.targetpath_directory));
            }
            disksize.setEnabled(false);
            fstype.setEnabled(false);
        }
      }
    }
  }