diff --git a/MyTracks/res/drawable-hdpi/menu_my_location.png b/MyTracks/res/drawable-hdpi/menu_my_location.png
deleted file mode 100644
index d7fae7e98..000000000
Binary files a/MyTracks/res/drawable-hdpi/menu_my_location.png and /dev/null differ
diff --git a/MyTracks/res/drawable-hdpi/my_location_normal.png b/MyTracks/res/drawable-hdpi/my_location_normal.png
new file mode 100644
index 000000000..742c0e04e
Binary files /dev/null and b/MyTracks/res/drawable-hdpi/my_location_normal.png differ
diff --git a/MyTracks/res/drawable-hdpi/my_location_pressed.png b/MyTracks/res/drawable-hdpi/my_location_pressed.png
new file mode 100644
index 000000000..b03dd0d66
Binary files /dev/null and b/MyTracks/res/drawable-hdpi/my_location_pressed.png differ
diff --git a/MyTracks/res/drawable-mdpi/menu_my_location.png b/MyTracks/res/drawable-mdpi/menu_my_location.png
deleted file mode 100644
index 9d1f4403a..000000000
Binary files a/MyTracks/res/drawable-mdpi/menu_my_location.png and /dev/null differ
diff --git a/MyTracks/res/drawable-mdpi/my_location_normal.png b/MyTracks/res/drawable-mdpi/my_location_normal.png
new file mode 100644
index 000000000..60daac9bf
Binary files /dev/null and b/MyTracks/res/drawable-mdpi/my_location_normal.png differ
diff --git a/MyTracks/res/drawable-mdpi/my_location_pressed.png b/MyTracks/res/drawable-mdpi/my_location_pressed.png
new file mode 100644
index 000000000..f4ea7f804
Binary files /dev/null and b/MyTracks/res/drawable-mdpi/my_location_pressed.png differ
diff --git a/MyTracks/res/drawable-xhdpi/menu_my_location.png b/MyTracks/res/drawable-xhdpi/menu_my_location.png
deleted file mode 100644
index 52ca8ab7f..000000000
Binary files a/MyTracks/res/drawable-xhdpi/menu_my_location.png and /dev/null differ
diff --git a/MyTracks/res/drawable-xhdpi/my_location_normal.png b/MyTracks/res/drawable-xhdpi/my_location_normal.png
new file mode 100644
index 000000000..f1b6eb960
Binary files /dev/null and b/MyTracks/res/drawable-xhdpi/my_location_normal.png differ
diff --git a/MyTracks/res/drawable-xhdpi/my_location_pressed.png b/MyTracks/res/drawable-xhdpi/my_location_pressed.png
new file mode 100644
index 000000000..c49415222
Binary files /dev/null and b/MyTracks/res/drawable-xhdpi/my_location_pressed.png differ
diff --git a/MyTracks/res/drawable/my_location.xml b/MyTracks/res/drawable/my_location.xml
new file mode 100644
index 000000000..7caede76c
--- /dev/null
+++ b/MyTracks/res/drawable/my_location.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/MyTracks/res/layout/map.xml b/MyTracks/res/layout/map.xml
index f2e3b14bc..95f808304 100644
--- a/MyTracks/res/layout/map.xml
+++ b/MyTracks/res/layout/map.xml
@@ -26,6 +26,16 @@ limitations under the License.
android:id="@+id/map_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
+
-
-
Markers
-
- My location
-
Play
@@ -1155,6 +1151,11 @@ limitations under the License.
+
+ My Location
+
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
index 5fe11f822..54ecbdf7e 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
@@ -237,9 +237,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity
menu.findItem(R.id.track_detail_chart_settings).setVisible(
ChartFragment.CHART_FRAGMENT_TAG.equals(currentTabTag));
menu.findItem(R.id.track_detail_stats_settings).setVisible(
- StatsFragment.STATS_FRAGMENT_TAG.equals(currentTabTag));
- menu.findItem(R.id.track_detail_my_location)
- .setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag));
+ StatsFragment.STATS_FRAGMENT_TAG.equals(currentTabTag));
MenuItem satelliteMode = menu.findItem(R.id.track_detail_satellite_mode)
.setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag));
@@ -343,13 +341,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity
DeleteOneTrackDialogFragment.newInstance(trackId).show(
getSupportFragmentManager(), DeleteOneTrackDialogFragment.DELETE_ONE_TRACK_DIALOG_TAG);
return true;
- case R.id.track_detail_my_location:
- mapFragment = (MapFragment) getSupportFragmentManager()
- .findFragmentByTag(MapFragment.MAP_FRAGMENT_TAG);
- if (mapFragment != null) {
- mapFragment.showMyLocation();
- }
- return true;
case R.id.track_detail_satellite_mode:
mapFragment = (MapFragment) getSupportFragmentManager()
.findFragmentByTag(MapFragment.MAP_FRAGMENT_TAG);
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java
index ef43990fa..03163f496 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java
@@ -43,6 +43,7 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@@ -86,6 +87,7 @@ public class MapFragment extends Fragment
private View mapViewContainer;
private MapOverlay mapOverlay;
private MapView mapView;
+ private ImageButton myLocationImageButton;
private TextView messageTextView;
@Override
@@ -100,6 +102,13 @@ public class MapFragment extends Fragment
mapView.setOnTouchListener(this);
mapView.setBuiltInZoomControls(true);
mapView.getOverlays().add(mapOverlay);
+ myLocationImageButton = (ImageButton) mapViewContainer.findViewById(R.id.map_my_location);
+ myLocationImageButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ showMyLocation();
+ }
+ });
messageTextView = (TextView) mapViewContainer.findViewById(R.id.map_message);
return mapViewContainer;
@@ -150,7 +159,7 @@ public class MapFragment extends Fragment
/**
* Shows my location.
*/
- public void showMyLocation() {
+ private void showMyLocation() {
updateTrackDataHub();
keepMyLocationVisible = true;
zoomToMyLocation = true;