diff --git a/AndroidManifest.xml b/AndroidManifest.xml
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -85,6 +85,17 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".ActivityMain"/>
+
+
+
+
+
+
+
+
diff --git a/res/layout/activity_map.xml b/res/layout/activity_map.xml
new file mode 100644
--- /dev/null
+++ b/res/layout/activity_map.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/res/menu/main.xml b/res/menu/main.xml
--- a/res/menu/main.xml
+++ b/res/menu/main.xml
@@ -2,7 +2,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="it.reyboz.bustorino.ActivityMain">
-
+
- Fermata aggiunta ai preferiti
Impossibile aggiungere ai preferiti (memoria piena o database corrotto?)!
Preferiti
+ Mappa
Tocca il nome di una fermata per aggiungerla in questa lista
Rimuovi
Rinomina
diff --git a/res/values/strings.xml b/res/values/strings.xml
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -35,6 +35,7 @@
Bus stop removed from your favorites
Favorites
Favorites
+ Map
Press on a bus stop name to populate this list
Delete
Rename
diff --git a/res/values/theme.xml b/res/values/theme.xml
--- a/res/values/theme.xml
+++ b/res/values/theme.xml
@@ -13,6 +13,12 @@
- @color/blue_700
+
+
\ No newline at end of file
diff --git a/src/it/reyboz/bustorino/ActivityFavorites.java b/src/it/reyboz/bustorino/ActivityFavorites.java
--- a/src/it/reyboz/bustorino/ActivityFavorites.java
+++ b/src/it/reyboz/bustorino/ActivityFavorites.java
@@ -46,6 +46,8 @@
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
+import org.osmdroid.util.GeoPoint;
+
import java.util.List;
public class ActivityFavorites extends AppCompatActivity implements LoaderManager.LoaderCallbacks {
@@ -130,13 +132,15 @@
Toast.makeText(getApplicationContext(),R.string.cannot_show_on_map_no_position,Toast.LENGTH_SHORT).show();
return true;
}
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(theGeoUrl));
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- if(intent.resolveActivity(getPackageManager())!=null)
- startActivity(intent);
- else {
- Toast.makeText(getApplicationContext(),R.string.cannot_show_on_map_no_activity,Toast.LENGTH_SHORT).show();
- }
+ Intent intent = new Intent(ActivityFavorites.this, ActivityMap.class);
+ Bundle b1 = new Bundle();
+ b1.putDouble("lat", busStop.getLatitude());
+ intent.putExtras(b1);
+ Bundle b2 = new Bundle();
+ b2.putDouble("lon", busStop.getLongitude());
+ intent.putExtras(b2);
+
+ startActivity(intent);
return true;
default:
return super.onContextItemSelected(item);
diff --git a/src/it/reyboz/bustorino/ActivityMain.java b/src/it/reyboz/bustorino/ActivityMain.java
--- a/src/it/reyboz/bustorino/ActivityMain.java
+++ b/src/it/reyboz/bustorino/ActivityMain.java
@@ -385,6 +385,9 @@
case R.id.action_favorites:
startActivity(new Intent(ActivityMain.this, ActivityFavorites.class));
return true;
+ case R.id.action_map:
+ startActivity(new Intent(ActivityMain.this, ActivityMap.class));
+ return true;
case R.id.action_about:
startActivity(new Intent(ActivityMain.this, ActivityAbout.class));
return true;
diff --git a/src/it/reyboz/bustorino/ActivityMap.java b/src/it/reyboz/bustorino/ActivityMap.java
new file mode 100644
--- /dev/null
+++ b/src/it/reyboz/bustorino/ActivityMap.java
@@ -0,0 +1,93 @@
+package it.reyboz.bustorino;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.preference.PreferenceManager;
+
+import org.osmdroid.api.IMapController;
+import org.osmdroid.config.Configuration;
+import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
+import org.osmdroid.util.GeoPoint;
+import org.osmdroid.views.MapView;
+import org.osmdroid.views.overlay.Marker;
+
+public class ActivityMap extends AppCompatActivity {
+
+ private static MapView map = null;
+
+ @Override public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ //handle permissions first, before map is created. not depicted here
+
+ //load/initialize the osmdroid configuration, this can be done
+ Context ctx = getApplicationContext();
+ Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
+ //setting this before the layout is inflated is a good idea
+ //it 'should' ensure that the map has a writable location for the map cache, even without permissions
+ //if no tiles are displayed, you can try overriding the cache path using Configuration.getInstance().setCachePath
+ //see also StorageUtils
+ //note, the load method also sets the HTTP User Agent to your application's package name, abusing osm's tile servers will get you banned based on this string
+
+ //inflate and create the map
+ setContentView(R.layout.activity_map);
+
+ map = (MapView) findViewById(R.id.map);
+ map.setTileSource(TileSourceFactory.MAPNIK);
+
+ // add ability to zoom with 2 fingers
+ map.setMultiTouchControls(true);
+
+
+ Bundle b = getIntent().getExtras();
+ double lat = -1;
+ double lon = -1;
+ GeoPoint marker = null;
+ if(b != null) {
+ lat = b.getDouble("lat");
+ lon = b.getDouble("lon");
+ marker = new GeoPoint(lat, lon);
+ }
+ startMap(marker);
+ }
+
+ public static void startMap(GeoPoint marker) {
+ // move the map on the marker position or on a default view point: Turin, Piazza Castello
+ IMapController mapController = map.getController();
+ mapController.setZoom(18.0);
+ GeoPoint startPoint;
+ if (marker != null) {
+ startPoint = marker;
+ } else {
+ startPoint = new GeoPoint(45.0708, 7.6858);
+ }
+ mapController.setCenter(startPoint);
+
+ if (marker != null) {
+ // add a marker
+ Marker startMarker = new Marker(map);
+ startMarker.setPosition(marker);
+ startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
+ map.getOverlays().add(startMarker);
+ }
+ }
+
+ public void onResume(){
+ super.onResume();
+ //this will refresh the osmdroid configuration on resuming.
+ //if you make changes to the configuration, use
+ //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ //Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this));
+ map.onResume(); //needed for compass, my location overlays, v6.0.0 and up
+ }
+
+ public void onPause(){
+ super.onPause();
+ //this will refresh the osmdroid configuration on resuming.
+ //if you make changes to the configuration, use
+ //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ //Configuration.getInstance().save(this, prefs);
+ map.onPause(); //needed for compass, my location overlays, v6.0.0 and up
+ }
+}
\ No newline at end of file