/** 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; } }); }