Enable calorie in AggregatedStats and MarkerDetail page

This commit is contained in:
Jimmy Shih
2013-11-18 18:05:13 -08:00
parent f5d8ca8dd2
commit ca290bf664
5 changed files with 27 additions and 9 deletions
@@ -19,6 +19,7 @@ package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils; import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.stats.TripStatistics; import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.CalorieUtils.ActivityType;
import com.google.android.apps.mytracks.util.StatsUtils; import com.google.android.apps.mytracks.util.StatsUtils;
import com.google.android.maps.mytracks.R; import com.google.android.maps.mytracks.R;
@@ -36,7 +37,8 @@ public class AggregatedStatsActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
StatsUtils.setTripStatisticsValues(this, this, null, getTripStatistics(), null); StatsUtils.setTripStatisticsValues(
this, this, null, getTripStatistics(), ActivityType.WALKING, null);
StatsUtils.setLocationValues(this, this, null, null, false); StatsUtils.setLocationValues(this, this, null, null, false);
} }
@@ -22,6 +22,8 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.content.Waypoint.WaypointType; import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
import com.google.android.apps.mytracks.util.CalorieUtils;
import com.google.android.apps.mytracks.util.CalorieUtils.ActivityType;
import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.PhotoUtils; import com.google.android.apps.mytracks.util.PhotoUtils;
import com.google.android.apps.mytracks.util.StatsUtils; import com.google.android.apps.mytracks.util.StatsUtils;
@@ -279,8 +281,12 @@ public class MarkerDetailFragment extends Fragment {
TextView name = (TextView) getView().findViewById(R.id.marker_detail_statistics_name); TextView name = (TextView) getView().findViewById(R.id.marker_detail_statistics_name);
setTextView(name, waypoint.getName()); setTextView(name, waypoint.getName());
Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId());
ActivityType activityType = track != null ? CalorieUtils.getActivityType(
getActivity(), track.getCategory())
: ActivityType.INVALID;
StatsUtils.setTripStatisticsValues( StatsUtils.setTripStatisticsValues(
getActivity(), null, getView(), waypoint.getTripStatistics(), null); getActivity(), null, getView(), waypoint.getTripStatistics(), activityType, null);
StatsUtils.setLocationValues(getActivity(), null, getView(), waypoint.getLocation(), false); StatsUtils.setLocationValues(getActivity(), null, getView(), waypoint.getLocation(), false);
} }
} }
@@ -23,6 +23,8 @@ import com.google.android.apps.mytracks.content.TrackDataListener;
import com.google.android.apps.mytracks.content.TrackDataType; import com.google.android.apps.mytracks.content.TrackDataType;
import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.stats.TripStatistics; import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.CalorieUtils;
import com.google.android.apps.mytracks.util.CalorieUtils.ActivityType;
import com.google.android.apps.mytracks.util.LocationUtils; import com.google.android.apps.mytracks.util.LocationUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.apps.mytracks.util.StatsUtils; import com.google.android.apps.mytracks.util.StatsUtils;
@@ -289,7 +291,10 @@ public class StatsFragment extends Fragment implements TrackDataListener {
* Updates the UI. * Updates the UI.
*/ */
private void updateUi(FragmentActivity activity) { private void updateUi(FragmentActivity activity) {
StatsUtils.setTripStatisticsValues(activity, activity, null, lastTripStatistics, category); ActivityType activityType = CalorieUtils.getActivityType(activity, category);
String trackIconValue = TrackIconUtils.getIconValue(activity, category);
StatsUtils.setTripStatisticsValues(
activity, activity, null, lastTripStatistics, activityType, trackIconValue);
StatsUtils.setLocationValues( StatsUtils.setLocationValues(
activity, activity, null, lastLocation, isSelectedTrackRecording()); activity, activity, null, lastLocation, isSelectedTrackRecording());
} }
@@ -126,9 +126,12 @@ public class StatsUtils {
* @param view the containing view for finding views. If null, the activity * @param view the containing view for finding views. If null, the activity
* cannot be null * cannot be null
* @param tripStatistics the trip statistics * @param tripStatistics the trip statistics
* @param activityType the activity type
* @param trackIconValue the track icon value or null to hide the track icon
* spinner
*/ */
public static void setTripStatisticsValues( public static void setTripStatisticsValues(Context context, Activity activity, View view,
Context context, Activity activity, View view, TripStatistics tripStatistics, String category) { TripStatistics tripStatistics, ActivityType activityType, String trackIconValue) {
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.isMetricUnits(context);
boolean reportSpeed = PreferencesUtils.isReportSpeed(context); boolean reportSpeed = PreferencesUtils.isReportSpeed(context);
@@ -138,15 +141,14 @@ public class StatsUtils {
context, getView(activity, view, R.id.stats_distance), totalDistance, metricUnits); context, getView(activity, view, R.id.stats_distance), totalDistance, metricUnits);
// Set calorie // Set calorie
ActivityType activityType = CalorieUtils.getActivityType(context, category);
double calorie = tripStatistics == null || activityType == ActivityType.INVALID ? Double.NaN double calorie = tripStatistics == null || activityType == ActivityType.INVALID ? Double.NaN
: tripStatistics.getCalorie(); : tripStatistics.getCalorie();
setCalorie(context, getView(activity, view, R.id.stats_calorie), calorie); setCalorie(context, getView(activity, view, R.id.stats_calorie), calorie);
Spinner spinner = (Spinner) getView(activity, view, R.id.stats_activity_type_icon); Spinner spinner = (Spinner) getView(activity, view, R.id.stats_activity_type_icon);
spinner.setVisibility(category != null ? View.VISIBLE : View.GONE); spinner.setVisibility(trackIconValue != null ? View.VISIBLE : View.GONE);
if (category != null) { if (trackIconValue != null) {
TrackIconUtils.setIconSpinner(spinner, TrackIconUtils.getIconValue(context, category)); TrackIconUtils.setIconSpinner(spinner, trackIconValue);
} }
// Set total time // Set total time
@@ -142,6 +142,9 @@ public class TrackIconUtils {
* @param activityType the activity type * @param activityType the activity type
*/ */
public static String getIconValue(Context context, String activityType) { public static String getIconValue(Context context, String activityType) {
if (activityType == null || activityType.equals("")) {
return "";
}
if (inList(context, activityType, airplane)) { if (inList(context, activityType, airplane)) {
return AIRPLANE; return AIRPLANE;
} }