fix comment for 3e985a497047

This commit is contained in:
Jimmy Shih
2012-04-19 10:40:10 -07:00
parent 172aed44ab
commit 352137c440
4 changed files with 197 additions and 144 deletions
@@ -21,8 +21,7 @@ import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.UnitConversions;
import com.google.android.apps.mytracks.util.StatsUtils;
import com.google.android.maps.mytracks.R;
import android.content.Context;
@@ -93,43 +92,44 @@ public class MarkerDetailActivity extends FragmentActivity {
boolean metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
boolean reportSpeed = preferences.getBoolean(getString(R.string.report_speed_key), true);
TextView maxSpeedLabel = (TextView) findViewById(R.id.marker_detail_max_speed_label);
maxSpeedLabel.setText(reportSpeed ? R.string.stat_max_speed : R.string.stat_fastest_pace);
TextView averageSpeedLabel = (TextView) findViewById(R.id.marker_detail_average_speed_label);
averageSpeedLabel.setText(reportSpeed ? R.string.stat_average_speed
: R.string.stat_average_pace);
TextView averageMovingSpeedLabel = (TextView) findViewById(
R.id.marker_detail_average_moving_speed_label);
averageMovingSpeedLabel.setText(reportSpeed ? R.string.stat_average_moving_speed
: R.string.stat_average_moving_pace);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_max_speed_label, R.string.stat_max_speed,
R.string.stat_fastest_pace, reportSpeed);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_average_speed_label,
R.string.stat_average_speed, R.string.stat_average_pace, reportSpeed);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_average_moving_speed_label,
R.string.stat_average_moving_speed, R.string.stat_average_moving_pace, reportSpeed);
TripStatistics tripStatistics = waypoint.getStatistics();
setDistance(
R.id.marker_detail_total_distance_value, tripStatistics.getTotalDistance(), metricUnits);
setSpeed(R.id.marker_detail_max_speed_value, tripStatistics.getMaxSpeed(), reportSpeed,
metricUnits);
StatsUtils.setDistanceValue(this, R.id.marker_detail_total_distance_value,
tripStatistics.getTotalDistance(), metricUnits);
StatsUtils.setSpeedValue(this, R.id.marker_detail_max_speed_value,
tripStatistics.getMaxSpeed(), reportSpeed, metricUnits);
setTime(R.id.marker_detail_total_time_value, tripStatistics.getTotalTime());
setSpeed(R.id.marker_detail_average_speed_value, tripStatistics.getAverageSpeed(),
reportSpeed, metricUnits);
StatsUtils.setTimeValue(
this, R.id.marker_detail_total_time_value, tripStatistics.getTotalTime());
StatsUtils.setSpeedValue(this, R.id.marker_detail_average_speed_value,
tripStatistics.getAverageSpeed(), reportSpeed, metricUnits);
setTime(R.id.marker_detail_moving_time_value, tripStatistics.getMovingTime());
setSpeed(R.id.marker_detail_average_moving_speed_value,
StatsUtils.setTimeValue(
this, R.id.marker_detail_moving_time_value, tripStatistics.getMovingTime());
StatsUtils.setSpeedValue(this, R.id.marker_detail_average_moving_speed_value,
tripStatistics.getAverageMovingSpeed(), reportSpeed, metricUnits);
setAltitude(
R.id.marker_detail_elevation_value, waypoint.getLocation().getAltitude(), metricUnits);
setAltitude(R.id.marker_detail_elevation_gain_value, tripStatistics.getTotalElevationGain(),
metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_elevation_value,
waypoint.getLocation().getAltitude(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_elevation_gain_value,
tripStatistics.getTotalElevationGain(), metricUnits);
setAltitude(
R.id.marker_detail_min_elevation_value, tripStatistics.getMinElevation(), metricUnits);
setAltitude(
R.id.marker_detail_max_elevation_value, tripStatistics.getMaxElevation(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_min_elevation_value,
tripStatistics.getMinElevation(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_max_elevation_value,
tripStatistics.getMaxElevation(), metricUnits);
setGrade(R.id.marker_detail_min_grade_value, tripStatistics.getMinGrade());
setGrade(R.id.marker_detail_max_grade_value, tripStatistics.getMaxGrade());
StatsUtils.setGradeValue(
this, R.id.marker_detail_min_grade_value, tripStatistics.getMinGrade());
StatsUtils.setGradeValue(
this, R.id.marker_detail_max_grade_value, tripStatistics.getMaxGrade());
}
}
@@ -163,108 +163,4 @@ public class MarkerDetailActivity extends FragmentActivity {
return super.onOptionsItemSelected(item);
}
}
/**
* Sets distance.
*
* @param id resource id
* @param distance distance in meters
* @param metricUnits true to display in metric units
*/
private void setDistance(int id, double distance, boolean metricUnits) {
TextView textView = (TextView) findViewById(id);
distance *= UnitConversions.M_TO_KM;
String value;
if (metricUnits) {
value = getString(R.string.value_float_kilometer, distance);
} else {
distance *= UnitConversions.KM_TO_MI;
value = getString(R.string.value_float_mile, distance);
}
textView.setText(value);
}
/**
* Sets time.
*
* @param id resource id
* @param time time
*/
private void setTime(int id, long time) {
TextView textView = (TextView) findViewById(id);
textView.setText(StringUtils.formatElapsedTime(time));
}
/**
* Sets speed.
*
* @param id resource id
* @param speed speed in meters per second
* @param reportSpeed true to report speed
* @param metricUnits true to display in metric units
*/
private void setSpeed(int id, double speed, boolean reportSpeed, boolean metricUnits) {
TextView textView = (TextView) findViewById(id);
speed *= UnitConversions.MS_TO_KMH;
String value;
if (metricUnits) {
if (reportSpeed) {
value = getString(R.string.value_float_kilometer_hour, speed);
} else {
double pace = speed == 0 ? 0.0 : 60.0 / speed; // convert from hours to
// minutes
value = getString(R.string.value_float_minute_kilometer, pace);
}
} else {
speed *= UnitConversions.KM_TO_MI;
if (reportSpeed) {
value = getString(R.string.value_float_mile_hour, speed);
} else {
double pace = speed == 0 ? 0.0 : 60.0 / speed; // convert from hours to
// minutes
value = getString(R.string.value_float_minute_mile, pace);
}
}
textView.setText(value);
}
/**
* Sets the altitude.
*
* @param id resource id
* @param altitude altitude in meters
* @param metricUnits true to display in metric units
*/
private void setAltitude(int id, double altitude, boolean metricUnits) {
TextView textView = (TextView) findViewById(id);
String value;
if (Double.isNaN(altitude) || Double.isInfinite(altitude)) {
value = getString(R.string.value_unknown);
} else {
if (metricUnits) {
value = getString(R.string.value_float_meter, altitude);
} else {
altitude *= UnitConversions.M_TO_FT;
value = getString(R.string.value_float_feet, altitude);
}
}
textView.setText(value);
}
/**
* Sets the grade.
*
* @param id resource id
* @param grade grade in fraction between 0 and 1
*/
private void setGrade(int id, double grade) {
TextView textView = (TextView) findViewById(id);
String value;
if (Double.isNaN(grade) || Double.isInfinite(grade)) {
value = getString(R.string.value_unknown);
} else {
value = getString(R.string.value_integer_percent, Math.round(grade * 100));
}
textView.setText(value);
}
}
@@ -20,7 +20,6 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.content.WaypointCreationRequest;
import com.google.android.apps.mytracks.content.WaypointCreationRequest.WaypointType;
import com.google.android.apps.mytracks.content.WaypointsColumns;
import com.google.android.apps.mytracks.services.ITrackRecordingService;
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
@@ -28,7 +27,6 @@ import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtil
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.content.ContentValues;
import android.os.Bundle;
import android.os.RemoteException;
import android.speech.tts.TextToSpeech;
@@ -218,14 +216,11 @@ public class MarkerEditActivity extends Activity {
* Saves a marker.
*/
private void saveMarker() {
ContentValues values = new ContentValues();
values.put(WaypointsColumns.NAME, name.getText().toString());
if (waypoint != null && waypoint.getType() == Waypoint.TYPE_WAYPOINT) {
values.put(WaypointsColumns.CATEGORY, markerType.getText().toString());
values.put(WaypointsColumns.DESCRIPTION, description.getText().toString());
waypoint.setName(name.getText().toString());
if (waypoint.getType() == Waypoint.TYPE_WAYPOINT) {
waypoint.setCategory(markerType.getText().toString());
waypoint.setDescription(description.getText().toString());
}
getContentResolver().update(WaypointsColumns.CONTENT_URI, values, "_id=?",
new String[] { String.valueOf(markerId) });
MyTracksProviderUtils.Factory.get(this).updateWaypoint(waypoint);
}
}
@@ -16,6 +16,7 @@
package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.StatsUtils;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.UnitConversions;
import com.google.android.maps.mytracks.R;
@@ -29,6 +30,8 @@ import java.text.NumberFormat;
/**
* Various utility functions for views that display statistics information.
*
* @deprecated use {@link StatsUtils}.
*
* @author Sandor Dornbush
*/
public class StatsUtilities {
@@ -0,0 +1,159 @@
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.android.apps.mytracks.util;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.widget.TextView;
/**
* Utilities for updating the statistics UI labels and values.
*
* @author Jimmy Shih
*/
public class StatsUtils {
private StatsUtils() {}
/**
* Sets a speed label.
*
* @param activity the activity
* @param id the speed label resource id
* @param speedId the speed string id
* @param paceId the pace string id
* @param reportSpeed true to report speed
*/
public static void setSpeedLabel(
Activity activity, int id, int speedId, int paceId, boolean reportSpeed) {
TextView textView = (TextView) activity.findViewById(id);
textView.setText(reportSpeed ? speedId : paceId);
}
/**
* Sets a speed value.
*
* @param activity the activity
* @param id the speed value resource id
* @param speed the speed in meters per second
* @param reportSpeed true to report speed
* @param metricUnits true to display in metric units
*/
public static void setSpeedValue(
Activity activity, int id, double speed, boolean reportSpeed, boolean metricUnits) {
TextView textView = (TextView) activity.findViewById(id);
speed *= UnitConversions.MS_TO_KMH;
String value;
if (metricUnits) {
if (reportSpeed) {
value = activity.getString(R.string.value_float_kilometer_hour, speed);
} else {
// convert from hours to minutes
double pace = speed == 0 ? 0.0 : 60.0 / speed;
value = activity.getString(R.string.value_float_minute_kilometer, pace);
}
} else {
speed *= UnitConversions.KM_TO_MI;
if (reportSpeed) {
value = activity.getString(R.string.value_float_mile_hour, speed);
} else {
// convert from hours to minutes
double pace = speed == 0 ? 0.0 : 60.0 / speed;
value = activity.getString(R.string.value_float_minute_mile, pace);
}
}
textView.setText(value);
}
/**
* Sets a distance value.
*
* @param activity the activity
* @param id the distance value resource id
* @param distance the distance in meters
* @param metricUnits true to display in metric units
*/
public static void setDistanceValue(
Activity activity, int id, double distance, boolean metricUnits) {
TextView textView = (TextView) activity.findViewById(id);
distance *= UnitConversions.M_TO_KM;
String value;
if (metricUnits) {
value = activity.getString(R.string.value_float_kilometer, distance);
} else {
distance *= UnitConversions.KM_TO_MI;
value = activity.getString(R.string.value_float_mile, distance);
}
textView.setText(value);
}
/**
* Sets a time value.
*
* @param activity the activity
* @param id the time value resource id
* @param time the time
*/
public static void setTimeValue(Activity activity, int id, long time) {
TextView textView = (TextView) activity.findViewById(id);
textView.setText(StringUtils.formatElapsedTime(time));
}
/**
* Sets an altitude value.
*
* @param activity the activity
* @param id the altitude value resource id
* @param altitude the altitude in meters
* @param metricUnits true to display in metric units
*/
public static void setAltitudeValue(
Activity activity, int id, double altitude, boolean metricUnits) {
TextView textView = (TextView) activity.findViewById(id);
String value;
if (Double.isNaN(altitude) || Double.isInfinite(altitude)) {
value = activity.getString(R.string.value_unknown);
} else {
if (metricUnits) {
value = activity.getString(R.string.value_float_meter, altitude);
} else {
altitude *= UnitConversions.M_TO_FT;
value = activity.getString(R.string.value_float_feet, altitude);
}
}
textView.setText(value);
}
/**
* Sets a grade value.
*
* @param activity the activity
* @param id the grade value resource id
* @param grade the grade in fraction between 0 and 1
*/
public static void setGradeValue(Activity activity, int id, double grade) {
TextView textView = (TextView) activity.findViewById(id);
String value;
if (Double.isNaN(grade) || Double.isInfinite(grade)) {
value = activity.getString(R.string.value_unknown);
} else {
value = activity.getString(R.string.value_integer_percent, Math.round(grade * 100));
}
textView.setText(value);
}
}