summaryrefslogtreecommitdiff
path: root/altosdroid
diff options
context:
space:
mode:
Diffstat (limited to 'altosdroid')
-rw-r--r--altosdroid/res/layout/map_preload.xml8
-rw-r--r--altosdroid/res/values/strings.xml2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java66
3 files changed, 65 insertions, 11 deletions
diff --git a/altosdroid/res/layout/map_preload.xml b/altosdroid/res/layout/map_preload.xml
index 1d1fca32..dc613bf2 100644
--- a/altosdroid/res/layout/map_preload.xml
+++ b/altosdroid/res/layout/map_preload.xml
@@ -103,15 +103,15 @@
android:prompt="@string/preload_max_zoom"
android:spinnerMode="dropdown"
/>
- <TextView android:id="@+id/preload_tile_radius_label"
+ <TextView android:id="@+id/preload_radius_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:text="@string/preload_tile_radius"
+ android:text="@string/preload_radius"
/>
- <Spinner android:id="@+id/preload_tile_radius"
+ <Spinner android:id="@+id/preload_radius"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:prompt="@string/preload_tile_radius"
+ android:prompt="@string/preload_radius"
android:spinnerMode="dropdown"
/>
<Button android:id="@+id/preload_load"
diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml
index 8c299a35..36b07bc2 100644
--- a/altosdroid/res/values/strings.xml
+++ b/altosdroid/res/values/strings.xml
@@ -106,7 +106,7 @@
<string name="preload_terrain">Terrain</string>
<string name="preload_min_zoom">Minimum Zoom</string>
<string name="preload_max_zoom">Maximum Zoom</string>
- <string name="preload_tile_radius">Tile Radius</string>
+ <string name="preload_radius">Radius</string>
<string name="preload_load">Load Map</string>
</resources>
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
index 1968edae..498b208e 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
@@ -61,7 +61,8 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
private Spinner known_sites_spinner;
private Spinner min_zoom;
private Spinner max_zoom;
- private Spinner tile_radius;
+ private TextView radius_label;
+ private Spinner radius;
private EditText latitude;
private EditText longitude;
@@ -227,8 +228,17 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
return value(max_zoom);
}
- private int radius() {
- return value(tile_radius);
+ private double value_distance(Spinner spinner) {
+ return (Double) spinner.getSelectedItem();
+ }
+
+ private double radius() {
+ double r = value_distance(radius);
+ if (AltosPreferences.imperial_units())
+ r = AltosConvert.distance.inverse(r);
+ else
+ r = r * 1000;
+ return r;
}
private int bit(CheckBox box, int value) {
@@ -250,11 +260,14 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
double lon = longitude();
int min = min_z();
int max = max_z();
- int r = radius();
+ double r = radius();
int t = types();
+ AltosDebug.debug("PreloadMap load %f %f %d %d %f %d\n",
+ lat, lon, min, max, r, t);
loader.load(lat, lon, min, max, r, t);
} catch (ParseException e) {
+ AltosDebug.debug("PreloadMap load raised exception %s", e.toString());
}
}
@@ -276,6 +289,37 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
spinner.setSelection(spinner_def);
}
+
+ private void add_distance(Spinner spinner, double[] distances_km, double def_km, double[] distances_mi, double def_mi) {
+
+ ArrayAdapter<Double> adapter = new ArrayAdapter<Double>(this, android.R.layout.simple_spinner_item);
+
+ int spinner_def = 0;
+ int pos = 0;
+
+ double[] distances;
+ double def;
+ if (AltosPreferences.imperial_units()) {
+ distances = distances_mi;
+ def = def_mi;
+ } else {
+ distances = distances_km;
+ def = def_km;
+ }
+
+ for (int i = 0; i < distances.length; i++) {
+ adapter.add(distances[i]);
+ if (distances[i] == def)
+ spinner_def = pos;
+ pos++;
+ }
+
+ spinner.setAdapter(adapter);
+ spinner.setSelection(spinner_def);
+ }
+
+
+
class SiteListListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
AltosLaunchSite site = (AltosLaunchSite) parent.getItemAtPosition(pos);
@@ -289,6 +333,11 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
}
}
+ double[] radius_mi = { 1, 2, 5, 10, 20 };
+ double radius_def_mi = 2;
+ double[] radius_km = { 1, 2, 5, 10, 20, 30 };
+ double radius_def_km = 2;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -326,8 +375,13 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
add_numbers(max_zoom,
AltosMap.min_zoom - AltosMap.default_zoom,
AltosMap.max_zoom - AltosMap.default_zoom, 2);
- tile_radius = (Spinner) findViewById(R.id.preload_tile_radius);
- add_numbers(tile_radius, 1, 5, 5);
+ radius_label = (TextView) findViewById(R.id.preload_radius_label);
+ radius = (Spinner) findViewById(R.id.preload_radius);
+ if (AltosPreferences.imperial_units())
+ radius_label.setText("Radius (miles)");
+ else
+ radius_label.setText("Radius (km)");
+ add_distance(radius, radius_km, radius_def_km, radius_mi, radius_def_mi);
progress = (ProgressBar) findViewById(R.id.preload_progress);