|
|
|
@ -21,6 +21,7 @@ import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.Hashtable;
|
|
|
|
|
import java.util.Locale;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class GoogleMapsInfoBubble implements GoogleMap.InfoWindowAdapter {
|
|
|
|
@ -90,28 +91,38 @@ public class GoogleMapsInfoBubble implements GoogleMap.InfoWindowAdapter {
|
|
|
|
|
|
|
|
|
|
boolean isMilitaryTime = false;
|
|
|
|
|
Date positionTime;
|
|
|
|
|
long timeGMT = 0;
|
|
|
|
|
String speed, address, gpsLocation, name = "";
|
|
|
|
|
if (isLiveTab) {
|
|
|
|
|
SuperVehicle vehicle = superVehHash.get(key);
|
|
|
|
|
positionTime = new Date((new Date()).getTime() - vehicle.timeGMT);
|
|
|
|
|
|
|
|
|
|
//positionTime = new Date((new Date()).getTime() - vehicle.timeGMT);
|
|
|
|
|
|
|
|
|
|
timeGMT = vehicle.timeGMT;
|
|
|
|
|
address = vehicle.Address != null ? vehicle.Address : "";
|
|
|
|
|
name = vehicle.name;
|
|
|
|
|
speed = String.format(context.getResources().getString(R.string.speedMph), vehicle.speed);
|
|
|
|
|
gpsLocation = "[" + String.format("%.4f", vehicle.lat) + "," + String.format("%.4f",vehicle.lng) + "]";
|
|
|
|
|
} else {
|
|
|
|
|
HistPos histPos = histPosList.get(position);
|
|
|
|
|
positionTime = new Date((new Date()).getTime() - histPos.timeGMT);
|
|
|
|
|
|
|
|
|
|
//positionTime = new Date((new Date()).getTime() - histPos.timeGMT);
|
|
|
|
|
timeGMT = histPos.timeGMT;
|
|
|
|
|
address = histPos.Address != null ? histPos.Address : "";
|
|
|
|
|
speed = String.format(context.getResources().getString(R.string.speedMph), histPos.speed);
|
|
|
|
|
gpsLocation = "[" + String.format("%.4f", histPos.lat) + "," + String.format("%.4f",histPos.lng) + "]";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String timeFormat = isMilitaryTime
|
|
|
|
|
? "HH:mm:ss dd.MMM.yyyy"
|
|
|
|
|
: "hh:mm:ss a dd.MMM.yyy";
|
|
|
|
|
//String timeFormat = isMilitaryTime
|
|
|
|
|
// ? "HH:mm:ss dd.MMM.yyyy"
|
|
|
|
|
// : "hh:mm:ss a dd.MMM.yyy";
|
|
|
|
|
|
|
|
|
|
//DateFormat format = new SimpleDateFormat(timeFormat, Locale.ENGLISH);
|
|
|
|
|
//tvTimeAgo.setText(format.format(positionTime));
|
|
|
|
|
|
|
|
|
|
DateFormat format = new SimpleDateFormat("hh:mm:ss", Locale.ENGLISH);
|
|
|
|
|
tvTimeAgo.setText( getDateTimeAgo(timeGMT * 1000) + " [" + format.format(new Date(timeGMT*1000) ) + "]");
|
|
|
|
|
|
|
|
|
|
DateFormat format = new SimpleDateFormat(timeFormat, Locale.ENGLISH);
|
|
|
|
|
tvTimeAgo.setText(format.format(positionTime));
|
|
|
|
|
tvStreetView.setText(address);
|
|
|
|
|
streetView.setVisibility(address.length() > 0 ? View.VISIBLE : View.GONE);
|
|
|
|
|
tvStreetView.setVisibility(address.length() > 0 ? View.VISIBLE : View.GONE);
|
|
|
|
@ -123,5 +134,38 @@ public class GoogleMapsInfoBubble implements GoogleMap.InfoWindowAdapter {
|
|
|
|
|
tvSpeed.setText(speed);
|
|
|
|
|
tvGPSLocation.setText(gpsLocation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get a text representation for the date time representing
|
|
|
|
|
/// the difference in minutes/hours/days from now
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="utcTime">DateTime value which needs to be converted</param>
|
|
|
|
|
/// <returns>String 'Ago' representation fot he date</returns>
|
|
|
|
|
public static String getDateTimeAgo(long time)
|
|
|
|
|
{
|
|
|
|
|
String timeValue = "";
|
|
|
|
|
|
|
|
|
|
long diffInMs = (new Date().getTime() - time);
|
|
|
|
|
|
|
|
|
|
long secondsDifference = TimeUnit.MILLISECONDS.toSeconds(diffInMs);;
|
|
|
|
|
|
|
|
|
|
if (secondsDifference < 60)
|
|
|
|
|
timeValue = "less than 1 minute";
|
|
|
|
|
else if (secondsDifference < 3600)
|
|
|
|
|
timeValue = (secondsDifference / 60) + " minute" + ((secondsDifference / 60) > 1 ? "s" : "") + " ago";
|
|
|
|
|
else if (secondsDifference < 7200)
|
|
|
|
|
timeValue = "1 hour ago";
|
|
|
|
|
else if (secondsDifference < 86400)
|
|
|
|
|
{
|
|
|
|
|
timeValue = (secondsDifference / 3600) + " hours ago";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
timeValue = (secondsDifference / 86400) + " days ago";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return timeValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|