private void addNewGeoTrack(GeoTrack geoTrack) { Log.d(TAG, String.format("Add New GeoTrack : %s", geoTrack)); // Add Point to Map boolean isNewOneIsTheLast = true; int geoTrackSize = geoTracks.size(); if (geoTrackSize > 0) { GeoTrack endList = geoTracks.last(); geoTracks.add(geoTrack); if (geoTrack.time < endList.time) { // For // NOT needded for set Collections.sort(geoTracks); isNewOneIsTheLast = false; } } else { geoTracks.add(geoTrack); } // Notify if (isNewOneIsTheLast && geotrackLastAddedListener != null) { geotrackLastAddedListener.addedLastGeoTrack(geoTrack); } // Invalidate Map invalidateMapFor(geoTrack); if (isNewOneIsTheLast) { animateToGeoTrack(geoTrack, true); } }
@Override public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { int resultCount = cursor.getCount(); Log.d(TAG, String.format("### Found %s Geotracks for %s", resultCount, person)); ArrayList<GeoTrack> points = new ArrayList<GeoTrack>(resultCount); if (cursor.moveToFirst()) { GeoTrackHelper helper = new GeoTrackHelper().initWrapper(cursor); geoTrackRangeTimeValueMin = Long.MAX_VALUE; geoTrackRangeTimeValueMax = Long.MIN_VALUE; boolean isRangeChange = false; GeoTrack geoTrack = null; do { geoTrack = helper.getEntity(cursor); // Log.d(TAG, String.format("Cursor : %s", geoTrack)); // Adding to list points.add(geoTrack); isRangeChange |= computeGeoTrackTimeRange(geoTrack.getTime(), false); Log.d(TAG, String.format("Add New GeoTrack : %s", geoTrack)); } while (cursor.moveToNext()); if (isRangeChange) { notifyChangeOnRangeGeoTrackValuesChangeListener(); } Log.d(TAG, "------------------------------------------"); Log.d(TAG, "------------------------------------------"); Log.d( TAG, "------- Added last Geopoint : " + geoTrack + " // with LastAddedListener " + (geotrackLastAddedListener != null)); Log.d(TAG, "------------------------------------------"); Log.d(TAG, "------------------------------------------"); if (geoTrack != null && geotrackLastAddedListener != null) { geotrackLastAddedListener.addedLastGeoTrack(geoTrack); } } geoTracks = new ConcurrentSkipListSet<GeoTrack>(points); }