package com.geeksville.info; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import android.content.Intent; import android.os.Bundle; public class FlightSummary { private static String EXTRA_STARTTIME = "com.geeksville.gaggle.STARTTIME"; private static String EXTRA_ENDTIME = "com.geeksville.gaggle.ENDTIME"; private static String EXTRA_STARTALTITUDE = "com.geeksville.gaggle.STARTALTITUDE"; private static String EXTRA_MAXALTITUDEAFTERLAUNCH = "com.geeksville.gaggle.MAXALTITUDEAFTERLAUNCH"; private static String EXTRA_MAXGROUNDSPEED = "com.geeksville.gaggle.MAXGROUNDSPEED"; private static String EXTRA_AVERAGEGROUNDSPEED = "com.geeksville.gaggle.AVERAGEGROUNDSPEED"; private static String EXTRA_TOTALGROUNDDISTANCE = "com.geeksville.gaggle.TOTALGROUNDDISTANCE"; private static String EXTRA_TOTALVERTICALDISTANCE = "com.geeksville.gaggle.TOTALVERTICALDISTANCE"; private static String EXTRA_MAXDISTANCEFROMLAUNCH = "com.geeksville.gaggle.MAXDISTANCEFROMLAUNCH"; private long startTime; private long endTime; private float startAltitude; private float maxAltitudeAfterLaunch; private float maxGroundSpeed; private float averageGroundSpeed; private double totalGroundDistance; private float totalVerticalDistance; private double maxDistanceFromLaunch; private Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT")); public FlightSummary() { } public FlightSummary(Bundle data) { setStartTime(data.getLong(EXTRA_STARTTIME)); setEndTime(data.getLong(EXTRA_ENDTIME)); setStartAltitude(data.getFloat(EXTRA_STARTALTITUDE)); setMaxAltitudeAfterLaunch(data.getFloat(EXTRA_MAXALTITUDEAFTERLAUNCH)); setMaxGroundSpeed(data.getFloat(EXTRA_MAXGROUNDSPEED)); setAverageGroundSpeed(data.getFloat(EXTRA_AVERAGEGROUNDSPEED)); setTotalGroundDistance(data.getDouble(EXTRA_TOTALGROUNDDISTANCE)); setTotalVerticalDistance(data.getFloat(EXTRA_TOTALVERTICALDISTANCE)); setMaxDistanceFromLaunch(data.getDouble(EXTRA_MAXDISTANCEFROMLAUNCH)); } public void addDataToIntent(Intent i) { i.putExtra(EXTRA_STARTTIME, getStartTime()); i.putExtra(EXTRA_ENDTIME, getEndTime()); i.putExtra(EXTRA_STARTALTITUDE, getStartAltitude()); i.putExtra(EXTRA_MAXALTITUDEAFTERLAUNCH, getMaxAltitudeAfterLaunch()); i.putExtra(EXTRA_MAXGROUNDSPEED, getMaxGroundSpeed()); i.putExtra(EXTRA_AVERAGEGROUNDSPEED, getAverageGroundSpeed()); i.putExtra(EXTRA_TOTALGROUNDDISTANCE, getTotalGroundDistance()); i.putExtra(EXTRA_TOTALVERTICALDISTANCE, getTotalVerticalDistance()); i.putExtra(EXTRA_MAXDISTANCEFROMLAUNCH, getMaxDistanceFromLaunch()); } public void setStartTime(long startTime) { this.startTime = startTime; } public long getStartTime() { return this.startTime; } public void setEndTime(long endTime) { this.endTime = endTime; } public long getEndTime() { return this.endTime; } public float getStartAltitude() { return this.startAltitude; } public void setStartAltitude(float startAltitude) { this.startAltitude = startAltitude; } public float getMaxAltitudeAfterLaunch() { return this.maxAltitudeAfterLaunch; } public void setMaxAltitudeAfterLaunch(float altitude) { this.maxAltitudeAfterLaunch = altitude; } public float getMaxGroundSpeed() { return this.maxGroundSpeed; } public void setMaxGroundSpeed(float maxGroundSpeed) { this.maxGroundSpeed = maxGroundSpeed; } public float getAverageGroundSpeed() { return this.averageGroundSpeed; } public void setAverageGroundSpeed(float averageGroundSpeed) { this.averageGroundSpeed = averageGroundSpeed; } public double getTotalGroundDistance() { return this.totalGroundDistance; } public void setTotalGroundDistance(double totalGroundDistance) { this.totalGroundDistance = totalGroundDistance; } public float getTotalVerticalDistance() { return this.totalVerticalDistance; } public void setTotalVerticalDistance(float totalVerticalDistance) { this.totalVerticalDistance = totalVerticalDistance; } public double getMaxDistanceFromLaunch() { return this.maxDistanceFromLaunch; } public void setMaxDistanceFromLaunch(double maxDistanceFromLaunch) { this.maxDistanceFromLaunch = maxDistanceFromLaunch; } public Date getStartDate() { return getDate(this.startTime); } public Date getEndDate() { return getDate(this.endTime); } private Date getDate(long millis) { cal.setTimeInMillis(millis); return cal.getTime(); } }