/** Perform initialization of the advanced preference buttons (API/Presets) */
  private void fixUpPrefs() {
    Preferences prefs = new Preferences(this);

    // remove any problematic imagery URLs
    OpenStreetMapTileServer.applyBlacklist(
        prefs.getServer().getCachedCapabilities().imageryBlacklist);

    ListPreference mapbgpref = (ListPreference) getPreferenceScreen().findPreference(KEY_MAPBG);
    String[] ids = OpenStreetMapTileServer.getIds(true);
    mapbgpref.setEntries(OpenStreetMapTileServer.getNames(ids));
    mapbgpref.setEntryValues(ids);
    OnPreferenceChangeListener l =
        new OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(Preference preference, Object newValue) {
            Log.d("PrefEditor", "onPreferenceChange");
            String id = (String) newValue;
            String[] ids =
                OpenStreetMapTileServer.getIds(false); // r.getStringArray(R.array.renderer_ids);
            String[] names =
                OpenStreetMapTileServer.getNames(ids); // r.getStringArray(R.array.renderer_names);
            for (int i = 0; i < ids.length; i++) {
              if (ids[i].equals(id)) {
                preference.setSummary(names[i]);
                break;
              }
            }
            return true;
          }
        };
    mapbgpref.setOnPreferenceChangeListener(l);
    l.onPreferenceChange(mapbgpref, prefs.backgroundLayer());

    ListPreference mapolpref = (ListPreference) getPreferenceScreen().findPreference(KEY_MAPOL);
    String[] overlayIds = OpenStreetMapTileServer.getOverlayIds(true);
    mapolpref.setEntries(OpenStreetMapTileServer.getOverlayNames(overlayIds));
    mapolpref.setEntryValues(overlayIds);
    OnPreferenceChangeListener ol =
        new OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(Preference preference, Object newValue) {
            Log.d("PrefEditor", "onPreferenceChange");
            String id = (String) newValue;
            String[] ids =
                OpenStreetMapTileServer.getOverlayIds(
                    false); // r.getStringArray(R.array.renderer_ids);
            String[] names =
                OpenStreetMapTileServer.getOverlayNames(
                    ids); // r.getStringArray(R.array.renderer_names);
            for (int i = 0; i < ids.length; i++) {
              if (ids[i].equals(id)) {
                preference.setSummary(names[i]);
                break;
              }
            }
            return true;
          }
        };
    mapolpref.setOnPreferenceChangeListener(ol);
    ol.onPreferenceChange(mapolpref, prefs.overlayLayer());

    ListPreference mapProfilePref =
        (ListPreference) getPreferenceScreen().findPreference(KEY_MAPPROFILE);
    String[] profileList = Profile.getProfileList();
    mapProfilePref.setEntries(profileList);
    mapProfilePref.setEntryValues(profileList);
    OnPreferenceChangeListener p =
        new OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(Preference preference, Object newValue) {
            Log.d("PrefEditor", "onPreferenceChange mapProfile");
            String id = (String) newValue;
            String[] profileList = Profile.getProfileList();
            String[] ids = profileList;
            String[] names = profileList;
            for (int i = 0; i < ids.length; i++) {
              if (ids[i].equals(id)) {
                preference.setSummary(names[i]);
                break;
              }
            }
            return true;
          }
        };
    mapProfilePref.setOnPreferenceChangeListener(p);
    p.onPreferenceChange(mapProfilePref, prefs.getMapProfile());

    Preference advprefs = getPreferenceScreen().findPreference(KEY_ADVPREFS);
    advprefs.setOnPreferenceClickListener(
        new Preference.OnPreferenceClickListener() {

          @Override
          public boolean onPreferenceClick(Preference preference) {
            Log.d("PrefEditor", "onPreferenceClick");
            startActivity(new Intent(PrefEditor.this, AdvancedPrefEditor.class));
            return true;
          }
        });

    CheckBoxPreference iconspref =
        (CheckBoxPreference) getPreferenceScreen().findPreference(KEY_PREFICONS);
    iconspref.setOnPreferenceChangeListener(
        new OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(Preference preference, Object newValue) {
            Log.d("PrefEditor", "onPreferenceChange 2");
            AdvancedPrefDatabase db = new AdvancedPrefDatabase(PrefEditor.this);
            db.setCurrentAPIShowIcons((Boolean) newValue);
            return true;
          }
        });

    Preference licensepref = getPreferenceScreen().findPreference(KEY_LICENSE);
    licensepref.setOnPreferenceClickListener(
        new Preference.OnPreferenceClickListener() {
          @Override
          public boolean onPreferenceClick(Preference preference) {
            Log.d("PrefEditor", "onPreferenceClick 2");
            startActivity(new Intent(PrefEditor.this, LicenseViewer.class));
            return true;
          }
        });
  }