diff --git a/MyTracks/res/layout/track_detail.xml b/MyTracks/res/layout/track_detail.xml
index 1226d9ec0..e5ec73c2e 100644
--- a/MyTracks/res/layout/track_detail.xml
+++ b/MyTracks/res/layout/track_detail.xml
@@ -16,17 +16,17 @@ limitations under the License.
-->
+ android:layout_height="fill_parent"
+ android:layout_width="fill_parent" >
+ android:layout_width="fill_parent" />
\ No newline at end of file
diff --git a/MyTracks/res/layout/track_list.xml b/MyTracks/res/layout/track_list.xml
index 0a22b38ff..508ea85a7 100644
--- a/MyTracks/res/layout/track_list.xml
+++ b/MyTracks/res/layout/track_list.xml
@@ -28,7 +28,9 @@ limitations under the License.
android:layout_width="fill_parent"
android:orientation="vertical" >
\ No newline at end of file
diff --git a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java
index e55e3a5f6..da5389411 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java
@@ -76,7 +76,7 @@ public class ChartView extends View {
/**
* Unscaled top border of the chart.
*/
- private static final int TOP_BORDER = 15;
+ private static final int TOP_BORDER = 16;
/**
* Device scaled top border of the chart.
@@ -86,7 +86,7 @@ public class ChartView extends View {
/**
* Unscaled bottom border of the chart.
*/
- private static final float BOTTOM_BORDER = 40;
+ private static final float BOTTOM_BORDER = 8;
/**
* Device scaled bottom border of the chart.
@@ -509,10 +509,16 @@ public class ChartView extends View {
return true;
}
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ updateEffectiveDimensionsIfChanged(
+ View.MeasureSpec.getSize(widthMeasureSpec), View.MeasureSpec.getSize(heightMeasureSpec));
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+
@Override
protected void onDraw(Canvas c) {
synchronized (data) {
- updateEffectiveDimensionsIfChanged(c);
// Keep original state.
c.save();
@@ -742,13 +748,16 @@ public class ChartView extends View {
/**
* Updates the effective dimensions where the graph will be drawn, only if the
- * dimensions of the given canvas have changed since the last call.
+ * dimensions have changed since the last call.
+ *
+ * @param newWidth the new width
+ * @param newHeight the new height
*/
- private void updateEffectiveDimensionsIfChanged(Canvas c) {
- if (w != c.getWidth() || h != c.getHeight()) {
+ private void updateEffectiveDimensionsIfChanged(int newWidth, int newHeight) {
+ if (w != newWidth || h != newHeight) {
// Dimensions have changed (for example due to orientation change).
- w = c.getWidth();
- h = c.getHeight();
+ w = newWidth;
+ h = newHeight;
updateEffectiveDimensions();
setUpPath();
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
index 4fdd09ea2..96d34bf96 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
@@ -237,14 +237,20 @@ public class TrackDetailActivity extends AbstractMyTracksActivity {
ChartFragment.CHART_FRAGMENT_TAG.equals(currentTabTag));
menu.findItem(R.id.track_detail_my_location)
.setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag));
-
- // Set map or satellite mode
- MapFragment mapFragment = (MapFragment) getSupportFragmentManager()
- .findFragmentByTag(MapFragment.MAP_FRAGMENT_TAG);
- boolean isSatelliteMode = mapFragment != null ? mapFragment.isSatelliteView() : false;
- menu.findItem(R.id.track_detail_satellite_mode)
- .setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag))
- .setTitle(isSatelliteMode ? R.string.menu_map_mode : R.string.menu_satellite_mode);
+ MenuItem satelliteMode = menu.findItem(R.id.track_detail_satellite_mode)
+ .setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag));
+
+ if (satelliteMode.isVisible()) {
+ MapFragment mapFragment = (MapFragment) getSupportFragmentManager()
+ .findFragmentByTag(MapFragment.MAP_FRAGMENT_TAG);
+ /*
+ * The current tag is mapFragment, thus safe to call its methods like
+ * isSatelliteView.
+ */
+ boolean isSatelliteMode = mapFragment != null ? mapFragment.isSatelliteView() : false;
+ menu.findItem(R.id.track_detail_satellite_mode).setTitle(
+ isSatelliteMode ? R.string.menu_map_mode : R.string.menu_satellite_mode);
+ }
return super.onPrepareOptionsMenu(menu);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
index 8c4e46e36..144bafe65 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
@@ -24,6 +24,7 @@ import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileForm
import com.google.android.apps.mytracks.services.ITrackRecordingService;
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
+import com.google.android.apps.mytracks.util.CheckUnitsUtils;
import com.google.android.apps.mytracks.util.EulaUtils;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.ListItemUtil;
@@ -262,8 +263,21 @@ public class TrackListActivity extends FragmentActivity {
getSupportFragmentManager(), EulaDialogFragment.EULA_DIALOG_TAG);
}
}
+ if (CheckUnitsUtils.getCheckUnitsValue(this)) {
+ enableEmptyView();
+ }
}
+ /**
+ * Enables the content of the empty view.
+ */
+ public void enableEmptyView() {
+ View emptyMessage = findViewById(R.id.track_list_empty_message);
+ emptyMessage.setVisibility(View.VISIBLE);
+ View recordButton = findViewById(R.id.track_list_record_button);
+ recordButton.setVisibility(View.VISIBLE);
+ }
+
@Override
protected void onResume() {
super.onResume();
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
index eef8ae371..50de47cd5 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
@@ -133,8 +133,9 @@ public class ChartFragment extends Fragment implements TrackDataListener {
public void onStart() {
super.onStart();
ViewGroup layout = (ViewGroup) getActivity().findViewById(R.id.chart_view_layout);
- LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT,
- LayoutParams.MATCH_PARENT);
+ @SuppressWarnings("deprecation")
+ LayoutParams layoutParams = new LayoutParams(
+ LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
layout.addView(chartView, layoutParams);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java
index 2370392d2..e6cfff5b3 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java
@@ -17,6 +17,7 @@
package com.google.android.apps.mytracks.fragments;
import com.google.android.apps.mytracks.Constants;
+import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.CheckUnitsUtils;
import com.google.android.maps.mytracks.R;
@@ -31,13 +32,13 @@ import android.support.v4.app.DialogFragment;
/**
* A DialogFragment to check preferred units.
- *
+ *
* @author Jimmy Shih
*/
public class CheckUnitsDialogFragment extends DialogFragment {
public static final String CHECK_UNITS_DIALOG_TAG = "checkUnitsDialog";
-
+
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -46,19 +47,18 @@ public class CheckUnitsDialogFragment extends DialogFragment {
.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
- CheckUnitsUtils.setCheckUnitsValue(getActivity());
+ handleButtonClicked();
}
})
.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- CheckUnitsUtils.setCheckUnitsValue(getActivity());
-
int position = ((AlertDialog) dialog).getListView().getSelectedItemPosition();
SharedPreferences sharedPreferences = getActivity()
.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(sharedPreferences.edit()
.putBoolean(getString(R.string.metric_units_key), position == 0));
+ handleButtonClicked();
}
})
.setSingleChoiceItems(new CharSequence[] { getString(R.string.preferred_units_metric),
@@ -66,4 +66,13 @@ public class CheckUnitsDialogFragment extends DialogFragment {
.setTitle(R.string.preferred_units_title)
.create();
}
+
+ /**
+ * Handles a button click.
+ */
+ private void handleButtonClicked() {
+ CheckUnitsUtils.setCheckUnitsValue(getActivity());
+ TrackListActivity trackListActivity = (TrackListActivity) getActivity();
+ trackListActivity.enableEmptyView();
+ }
}
\ No newline at end of file