diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java
index 9e2403d..228ce5c 100644
--- a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java
+++ b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java
@@ -15,7 +15,9 @@ import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Surface;
+import android.view.View;
import android.view.WindowManager;
+import android.widget.ImageButton;
import android.widget.Toast;
import org.osmdroid.api.IMapController;
@@ -23,6 +25,7 @@ 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.compass.CompassOverlay;
import org.osmdroid.views.overlay.compass.IOrientationConsumer;
import org.osmdroid.views.overlay.compass.IOrientationProvider;
import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider;
@@ -40,11 +43,13 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
public static final String TAG = "MainActivity";
private MyLocationNewOverlay mLocationOverlay;
+ private CompassOverlay mCompassOverlay;
private IOrientationProvider compass = null;
private IServiceGps serviceGps = null;
private Context ctx = null;
private MapView map = null;
+ private ImageButton btFollowMe;
private Float trueNorth = 0f;
private int deviceOrientation = 0;
@@ -104,6 +109,11 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
GeoPoint startPoint = new GeoPoint(45.0000, 5.0000);
mapController.setCenter(startPoint);
+ // Compass
+ this.mCompassOverlay = new CompassOverlay(ctx, new InternalCompassOrientationProvider(ctx), map);
+ map.getOverlays().add(this.mCompassOverlay);
+ this.mCompassOverlay.enableCompass();
+
// Current position on the map
this.mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(ctx), map);
map.getOverlays().add(this.mLocationOverlay);
@@ -111,6 +121,21 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
mLocationOverlay.enableFollowLocation();
mLocationOverlay.setOptionsMenuEnabled(true);
+ // Follow me
+ btFollowMe = (ImageButton) findViewById(R.id.ic_follow_me);
+ btFollowMe.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (!mLocationOverlay.isFollowLocationEnabled()) {
+ mLocationOverlay.enableFollowLocation();
+ btFollowMe.setImageResource(R.drawable.osm_ic_follow_me_on);
+ } else {
+ mLocationOverlay.disableFollowLocation();
+ btFollowMe.setImageResource(R.drawable.osm_ic_follow_me);
+ }
+ }
+ });
+
if (serviceGps == null) {
serviceGps = new ServiceGps();
((Observable) serviceGps).addObserver(this);
@@ -172,6 +197,9 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
private void pause() {
+ if (mCompassOverlay != null) {
+ mCompassOverlay.disableCompass();
+ }
if (compass != null) {
compass.stopOrientationProvider();
compass.destroy();
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
index efe8f62..53f5345 100644
--- a/app/src/main/res/layout/main.xml
+++ b/app/src/main/res/layout/main.xml
@@ -1,9 +1,22 @@
-
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2241eff..dcda8dc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,5 @@
MyTrackingDog
Settings
+ Follow me