private ContentValues createContentValues(Track track) { ContentValues values = new ContentValues(); TripStatistics tripStatistics = track.getTripStatistics(); // Value < 0 indicates no id is available if (track.getId() >= 0) { values.put(TracksColumns._ID, track.getId()); } values.put(TracksColumns.NAME, track.getName()); values.put(TracksColumns.DESCRIPTION, track.getDescription()); values.put(TracksColumns.CATEGORY, track.getCategory()); values.put(TracksColumns.STARTID, track.getStartId()); values.put(TracksColumns.STOPID, track.getStopId()); values.put(TracksColumns.STARTTIME, tripStatistics.getStartTime()); values.put(TracksColumns.STOPTIME, tripStatistics.getStopTime()); values.put(TracksColumns.NUMPOINTS, track.getNumberOfPoints()); values.put(TracksColumns.TOTALDISTANCE, tripStatistics.getTotalDistance()); values.put(TracksColumns.TOTALTIME, tripStatistics.getTotalTime()); values.put(TracksColumns.MOVINGTIME, tripStatistics.getMovingTime()); values.put(TracksColumns.MINLAT, tripStatistics.getBottom()); values.put(TracksColumns.MAXLAT, tripStatistics.getTop()); values.put(TracksColumns.MINLON, tripStatistics.getLeft()); values.put(TracksColumns.MAXLON, tripStatistics.getRight()); values.put(TracksColumns.AVGSPEED, tripStatistics.getAverageSpeed()); values.put(TracksColumns.AVGMOVINGSPEED, tripStatistics.getAverageMovingSpeed()); values.put(TracksColumns.MAXSPEED, tripStatistics.getMaxSpeed()); values.put(TracksColumns.MINELEVATION, tripStatistics.getMinElevation()); values.put(TracksColumns.MAXELEVATION, tripStatistics.getMaxElevation()); values.put(TracksColumns.ELEVATIONGAIN, tripStatistics.getTotalElevationGain()); values.put(TracksColumns.MINGRADE, tripStatistics.getMinGrade()); values.put(TracksColumns.MAXGRADE, tripStatistics.getMaxGrade()); values.put(TracksColumns.MAPID, track.getMapId()); values.put(TracksColumns.TABLEID, track.getTableId()); values.put(TracksColumns.ICON, track.getIcon()); return values; }
@Override public Track createTrack(Cursor cursor) { int idIndex = cursor.getColumnIndexOrThrow(TracksColumns._ID); int nameIndex = cursor.getColumnIndexOrThrow(TracksColumns.NAME); int descriptionIndex = cursor.getColumnIndexOrThrow(TracksColumns.DESCRIPTION); int categoryIndex = cursor.getColumnIndexOrThrow(TracksColumns.CATEGORY); int startIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTID); int stopIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPID); int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME); int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME); int numPointsIndex = cursor.getColumnIndexOrThrow(TracksColumns.NUMPOINTS); int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE); int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME); int movingTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MOVINGTIME); int minLatIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINLAT); int maxLatIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXLAT); int minLonIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINLON); int maxLonIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXLON); int maxSpeedIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXSPEED); int minElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINELEVATION); int maxElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXELEVATION); int elevationGainIndex = cursor.getColumnIndexOrThrow(TracksColumns.ELEVATIONGAIN); int minGradeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINGRADE); int maxGradeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXGRADE); int mapIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAPID); int tableIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.TABLEID); int iconIndex = cursor.getColumnIndexOrThrow(TracksColumns.ICON); Track track = new Track(); TripStatistics tripStatistics = track.getTripStatistics(); if (!cursor.isNull(idIndex)) { track.setId(cursor.getLong(idIndex)); } if (!cursor.isNull(nameIndex)) { track.setName(cursor.getString(nameIndex)); } if (!cursor.isNull(descriptionIndex)) { track.setDescription(cursor.getString(descriptionIndex)); } if (!cursor.isNull(categoryIndex)) { track.setCategory(cursor.getString(categoryIndex)); } if (!cursor.isNull(startIdIndex)) { track.setStartId(cursor.getLong(startIdIndex)); } if (!cursor.isNull(stopIdIndex)) { track.setStopId(cursor.getLong(stopIdIndex)); } if (!cursor.isNull(startTimeIndex)) { tripStatistics.setStartTime(cursor.getLong(startTimeIndex)); } if (!cursor.isNull(stopTimeIndex)) { tripStatistics.setStopTime(cursor.getLong(stopTimeIndex)); } if (!cursor.isNull(numPointsIndex)) { track.setNumberOfPoints(cursor.getInt(numPointsIndex)); } if (!cursor.isNull(totalDistanceIndex)) { tripStatistics.setTotalDistance(cursor.getFloat(totalDistanceIndex)); } if (!cursor.isNull(totalTimeIndex)) { tripStatistics.setTotalTime(cursor.getLong(totalTimeIndex)); } if (!cursor.isNull(movingTimeIndex)) { tripStatistics.setMovingTime(cursor.getLong(movingTimeIndex)); } if (!cursor.isNull(minLatIndex) && !cursor.isNull(maxLatIndex) && !cursor.isNull(minLonIndex) && !cursor.isNull(maxLonIndex)) { int bottom = cursor.getInt(minLatIndex); int top = cursor.getInt(maxLatIndex); int left = cursor.getInt(minLonIndex); int right = cursor.getInt(maxLonIndex); tripStatistics.setBounds(left, top, right, bottom); } if (!cursor.isNull(maxSpeedIndex)) { tripStatistics.setMaxSpeed(cursor.getFloat(maxSpeedIndex)); } if (!cursor.isNull(minElevationIndex)) { tripStatistics.setMinElevation(cursor.getFloat(minElevationIndex)); } if (!cursor.isNull(maxElevationIndex)) { tripStatistics.setMaxElevation(cursor.getFloat(maxElevationIndex)); } if (!cursor.isNull(elevationGainIndex)) { tripStatistics.setTotalElevationGain(cursor.getFloat(elevationGainIndex)); } if (!cursor.isNull(minGradeIndex)) { tripStatistics.setMinGrade(cursor.getFloat(minGradeIndex)); } if (!cursor.isNull(maxGradeIndex)) { tripStatistics.setMaxGrade(cursor.getFloat(maxGradeIndex)); } if (!cursor.isNull(mapIdIndex)) { track.setMapId(cursor.getString(mapIdIndex)); } if (!cursor.isNull(tableIdIndex)) { track.setTableId(cursor.getString(tableIdIndex)); } if (!cursor.isNull(iconIndex)) { track.setIcon(cursor.getString(iconIndex)); } return track; }