aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/SettingsActivity.java
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2012-11-04 15:34:03 +0100
committerBananeweizen <Bananeweizen@gmx.de>2012-11-04 15:34:03 +0100
commit26954590cf375f0a0e968cd5197758a617cf3bb9 (patch)
treefdbc0e5450fc1daad8b7dbf8265aee403fb8eb74 /main/src/cgeo/geocaching/SettingsActivity.java
parent1b7141301c350e1e328978bb4a1496cb4889dd3b (diff)
downloadcgeo-26954590cf375f0a0e968cd5197758a617cf3bb9.zip
cgeo-26954590cf375f0a0e968cd5197758a617cf3bb9.tar.gz
cgeo-26954590cf375f0a0e968cd5197758a617cf3bb9.tar.bz2
fix #1940: Quicker change of OSM offline maps
Diffstat (limited to 'main/src/cgeo/geocaching/SettingsActivity.java')
-rw-r--r--main/src/cgeo/geocaching/SettingsActivity.java59
1 files changed, 32 insertions, 27 deletions
diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java
index e86ab56..80bdf69 100644
--- a/main/src/cgeo/geocaching/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/SettingsActivity.java
@@ -61,7 +61,6 @@ public class SettingsActivity extends AbstractActivity {
private final static int SELECT_GPX_IMPORT_REQUEST = 3;
private final static int SELECT_THEMEFOLDER_REQUEST = 4;
-
private ProgressDialog loginDialog = null;
private ProgressDialog webDialog = null;
private boolean enableTemplatesMenu = false;
@@ -558,22 +557,10 @@ public class SettingsActivity extends AbstractActivity {
webAuth.setOnClickListener(new webAuth());
// Map source settings
- Collection<String> mapSourceNames = new ArrayList<String>();
- for (MapSource mapSource : MapProviderFactory.getMapSources().values()) {
- mapSourceNames.add(mapSource.getName());
- }
- Spinner mapSourceSelector = (Spinner) findViewById(R.id.mapsource);
- ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, mapSourceNames.toArray(new String[mapSourceNames.size()]));
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mapSourceSelector.setAdapter(adapter);
- int mapsource = Settings.getMapSource();
- mapSourceSelector.setSelection(MapProviderFactory.getSourceOrdinalFromId(mapsource));
- mapSourceSelector.setOnItemSelectedListener(new cgeoChangeMapSource());
+ updateMapSourceMenu();
- initMapfileEdittext(false);
-
- Button selectMapfile = (Button) findViewById(R.id.select_mapfile);
- selectMapfile.setOnClickListener(new View.OnClickListener() {
+ Button selectMapDirectory = (Button) findViewById(R.id.select_map_directory);
+ selectMapDirectory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -750,11 +737,27 @@ public class SettingsActivity extends AbstractActivity {
});
}
- private void initMapfileEdittext(boolean setFocus) {
- EditText mfmapFileEdit = (EditText) findViewById(R.id.mapfile);
- mfmapFileEdit.setText(Settings.getMapFile());
+ private void updateMapSourceMenu() {
+ Collection<String> mapSourceNames = new ArrayList<String>();
+ for (MapSource mapSource : MapProviderFactory.getMapSources()) {
+ mapSourceNames.add(mapSource.getName());
+ }
+ Spinner mapSourceSelector = (Spinner) findViewById(R.id.mapsource);
+ ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, mapSourceNames.toArray(new String[mapSourceNames.size()]));
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ mapSourceSelector.setAdapter(adapter);
+ final int index = MapProviderFactory.getMapSources().indexOf(Settings.getMapSource());
+ mapSourceSelector.setSelection(index);
+ mapSourceSelector.setOnItemSelectedListener(new cgeoChangeMapSource());
+
+ initMapDirectoryEdittext(false);
+ }
+
+ private void initMapDirectoryEdittext(boolean setFocus) {
+ final EditText mapDirectoryEdit = (EditText) findViewById(R.id.map_directory);
+ mapDirectoryEdit.setText(Settings.getMapFileDirectory());
if (setFocus) {
- mfmapFileEdit.requestFocus();
+ mapDirectoryEdit.requestFocus();
}
}
@@ -824,7 +827,7 @@ public class SettingsActivity extends AbstractActivity {
String passvoteNew = StringUtils.trimToEmpty(((EditText) findViewById(R.id.passvote)).getText().toString());
// don't trim signature, user may want to have whitespace at the beginning
String signatureNew = ((EditText) findViewById(R.id.signature)).getText().toString();
- String mapFileNew = StringUtils.trimToEmpty(((EditText) findViewById(R.id.mapfile)).getText().toString());
+ String mapDirectoryNew = StringUtils.trimToEmpty(((EditText) findViewById(R.id.map_directory)).getText().toString());
String altitudeNew = StringUtils.trimToNull(((EditText) findViewById(R.id.altitude)).getText().toString());
int altitudeNewInt = parseNumber(altitudeNew, 0);
@@ -836,7 +839,7 @@ public class SettingsActivity extends AbstractActivity {
final boolean status2 = Settings.setGCvoteLogin(passvoteNew);
final boolean status3 = Settings.setSignature(signatureNew);
final boolean status4 = Settings.setAltCorrection(altitudeNewInt);
- final boolean status5 = Settings.setMapFile(mapFileNew);
+ final boolean status5 = Settings.setMapFileDirectory(mapDirectoryNew);
Settings.setShowWaypointsThreshold(waypointThreshold);
String importNew = StringUtils.trimToEmpty(((EditText) findViewById(R.id.gpx_importdir)).getText().toString());
@@ -868,14 +871,14 @@ public class SettingsActivity extends AbstractActivity {
private static class cgeoChangeMapSource implements OnItemSelectedListener {
@Override
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
+ public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
long arg3) {
- Settings.setMapSource(MapProviderFactory.getSourceIdFromOrdinal(arg2));
+ Settings.setMapSource(MapProviderFactory.getMapSources().get(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
- arg0.setSelection(MapProviderFactory.getSourceIdFromOrdinal(Settings.getMapSource()));
+ arg0.setSelection(MapProviderFactory.getMapSources().indexOf(Settings.getMapSource()));
}
}
@@ -965,13 +968,15 @@ public class SettingsActivity extends AbstractActivity {
if (requestCode == SELECT_MAPFILE_REQUEST) {
if (resultCode == RESULT_OK) {
if (data.hasExtra("mapfile")) {
- Settings.setMapFile(data.getStringExtra("mapfile"));
+ final String mapFile = data.getStringExtra("mapfile");
+ Settings.setMapFile(mapFile);
if (!Settings.isValidMapFile(Settings.getMapFile())) {
showToast(res.getString(R.string.warn_invalid_mapfile));
}
}
}
- initMapfileEdittext(true);
+ updateMapSourceMenu();
+ initMapDirectoryEdittext(true);
}
if (requestCode == SELECT_GPX_EXPORT_REQUEST) {
checkDirectory(resultCode, data, R.id.gpx_exportdir, new RunnableWithArgument<String>() {