forked from upstream-mirrors/OpenTracks
Cleanup: CustomContentProvider by inlining into UrlType.
This commit is contained in:
+3
-3
@@ -227,13 +227,13 @@ public class CustomContentProviderUtilsTest {
|
|||||||
|
|
||||||
private void assertCount(int trackCount, int trackPointCount, int markerCount) {
|
private void assertCount(int trackCount, int trackPointCount, int markerCount) {
|
||||||
ContentResolver contentResolver = context.getContentResolver();
|
ContentResolver contentResolver = context.getContentResolver();
|
||||||
try (Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID)) {
|
try (Cursor tracksCursor = contentResolver.query(CustomContentProvider.UrlType.TRACKS.getUri(), null, null, null, TracksColumns._ID)) {
|
||||||
assertEquals(trackCount, tracksCursor.getCount());
|
assertEquals(trackCount, tracksCursor.getCount());
|
||||||
}
|
}
|
||||||
try (Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID)) {
|
try (Cursor tracksPointsCursor = contentResolver.query(CustomContentProvider.UrlType.TRACKPOINTS_BY_ID.getUri(), null, null, null, TrackPointsColumns._ID)) {
|
||||||
assertEquals(trackPointCount, tracksPointsCursor.getCount());
|
assertEquals(trackPointCount, tracksPointsCursor.getCount());
|
||||||
}
|
}
|
||||||
try (Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID)) {
|
try (Cursor markerCursor = contentResolver.query(CustomContentProvider.UrlType.MARKERS.getUri(), null, null, null, MarkerColumns._ID)) {
|
||||||
assertEquals(markerCount, markerCursor.getCount());
|
assertEquals(markerCount, markerCursor.getCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import android.content.ContentValues;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.provider.BaseColumns;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -131,7 +132,7 @@ public class ContentProviderUtils {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void deleteAllTracks(Context context) {
|
public void deleteAllTracks(Context context) {
|
||||||
// Delete tracks last since it triggers a database vacuum call
|
// Delete tracks last since it triggers a database vacuum call
|
||||||
contentResolver.delete(TracksColumns.CONTENT_URI, null, null);
|
contentResolver.delete(CustomContentProvider.UrlType.TRACKS.getUri(), null, null);
|
||||||
|
|
||||||
File dir = FileUtils.getPhotoDir(context);
|
File dir = FileUtils.getPhotoDir(context);
|
||||||
FileUtils.deleteDirectoryRecurse(dir);
|
FileUtils.deleteDirectoryRecurse(dir);
|
||||||
@@ -144,13 +145,13 @@ public class ContentProviderUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String whereClause = String.format(TracksColumns._ID + " IN (%s)", TextUtils.join(",", Collections.nCopies(trackIds.size(), "?")));
|
String whereClause = String.format(TracksColumns._ID + " IN (%s)", TextUtils.join(",", Collections.nCopies(trackIds.size(), "?")));
|
||||||
contentResolver.delete(TracksColumns.CONTENT_URI, whereClause, trackIds.stream().map(trackId -> Long.toString(trackId.id())).toArray(String[]::new));
|
contentResolver.delete(CustomContentProvider.UrlType.TRACKS.getUri(), whereClause, trackIds.stream().map(trackId -> Long.toString(trackId.id())).toArray(String[]::new));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteTrack(Context context, @NonNull Track.Id trackId) {
|
public void deleteTrack(Context context, @NonNull Track.Id trackId) {
|
||||||
// Delete track folder resources.
|
// Delete track folder resources.
|
||||||
FileUtils.deleteDirectoryRecurse(FileUtils.getPhotoDir(context, trackId));
|
FileUtils.deleteDirectoryRecurse(FileUtils.getPhotoDir(context, trackId));
|
||||||
contentResolver.delete(TracksColumns.CONTENT_URI, TracksColumns._ID + "=?", new String[]{Long.toString(trackId.id())});
|
contentResolver.delete(CustomContentProvider.UrlType.TRACKS.getUri(), TracksColumns._ID + "=?", new String[]{Long.toString(trackId.id())});
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Only use for tests; also move to tests.
|
//TODO Only use for tests; also move to tests.
|
||||||
@@ -194,7 +195,7 @@ public class ContentProviderUtils {
|
|||||||
selectionArgs = new String[]{"%" + searchQuery + "%", "%" + searchQuery + "%", "%" + searchQuery + "%"};
|
selectionArgs = new String[]{"%" + searchQuery + "%", "%" + searchQuery + "%", "%" + searchQuery + "%"};
|
||||||
}
|
}
|
||||||
|
|
||||||
return new TrackListIterator(contentResolver.query(TracksColumns.CONTENT_URI, PROJECTION, selection, selectionArgs, sortOrder));
|
return new TrackListIterator(contentResolver.query(CustomContentProvider.UrlType.TRACKS.getUri(), PROJECTION, selection, selectionArgs, sortOrder));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Track getTrack(@NonNull Track.Id trackId) {
|
public Track getTrack(@NonNull Track.Id trackId) {
|
||||||
@@ -225,7 +226,7 @@ public class ContentProviderUtils {
|
|||||||
* @param sortOrder the sort order. Can be null
|
* @param sortOrder the sort order. Can be null
|
||||||
*/
|
*/
|
||||||
Cursor getTrackCursor(String selection, String[] selectionArgs, String sortOrder) {
|
Cursor getTrackCursor(String selection, String[] selectionArgs, String sortOrder) {
|
||||||
return contentResolver.query(TracksColumns.CONTENT_URI, null, selection, selectionArgs, sortOrder);
|
return contentResolver.query(CustomContentProvider.UrlType.TRACKS.getUri(), null, selection, selectionArgs, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -237,7 +238,7 @@ public class ContentProviderUtils {
|
|||||||
*/
|
*/
|
||||||
public Track.Id insertTrack(Track track) {
|
public Track.Id insertTrack(Track track) {
|
||||||
//TODO Unset trackId
|
//TODO Unset trackId
|
||||||
Uri uri = contentResolver.insert(TracksColumns.CONTENT_URI, createContentValues(track));
|
Uri uri = contentResolver.insert(CustomContentProvider.UrlType.TRACKS.getUri(), createContentValues(track));
|
||||||
return new Track.Id(ContentUris.parseId(uri));
|
return new Track.Id(ContentUris.parseId(uri));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,7 +249,7 @@ public class ContentProviderUtils {
|
|||||||
* @param track the track
|
* @param track the track
|
||||||
*/
|
*/
|
||||||
public void updateTrack(Track track) {
|
public void updateTrack(Track track) {
|
||||||
contentResolver.update(TracksColumns.CONTENT_URI, createContentValues(track), TracksColumns._ID + "=?", new String[]{Long.toString(track.id().id())});
|
contentResolver.update(CustomContentProvider.UrlType.TRACKS.getUri(), createContentValues(track), TracksColumns._ID + "=?", new String[]{Long.toString(track.id().id())});
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContentValues createContentValues(Track track) {
|
private ContentValues createContentValues(Track track) {
|
||||||
@@ -270,7 +271,7 @@ public class ContentProviderUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateTrackStatistics(@NonNull Track.Id trackId, @NonNull Statistics trackStatistics) {
|
public void updateTrackStatistics(@NonNull Track.Id trackId, @NonNull Statistics trackStatistics) {
|
||||||
contentResolver.update(TracksColumns.CONTENT_URI, createContentValues(trackStatistics), TracksColumns._ID + "=?", new String[]{Long.toString(trackId.id())});
|
contentResolver.update(CustomContentProvider.UrlType.TRACKS.getUri(), createContentValues(trackStatistics), TracksColumns._ID + "=?", new String[]{Long.toString(trackId.id())});
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContentValues createContentValues(Statistics trackStatistics) {
|
private ContentValues createContentValues(Statistics trackStatistics) {
|
||||||
@@ -362,7 +363,7 @@ public class ContentProviderUtils {
|
|||||||
public void deleteMarker(Context context, Marker.Id markerId) {
|
public void deleteMarker(Context context, Marker.Id markerId) {
|
||||||
final Marker marker = getMarker(markerId);
|
final Marker marker = getMarker(markerId);
|
||||||
deleteMarkerPhoto(context, marker);
|
deleteMarkerPhoto(context, marker);
|
||||||
contentResolver.delete(MarkerColumns.CONTENT_URI, MarkerColumns._ID + "=?", new String[]{Long.toString(markerId.id())});
|
contentResolver.delete(CustomContentProvider.UrlType.MARKERS.getUri(), MarkerColumns._ID + "=?", new String[]{Long.toString(markerId.id())});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -422,7 +423,7 @@ public class ContentProviderUtils {
|
|||||||
if (updateMarker.photoUrl() == null) {
|
if (updateMarker.photoUrl() == null) {
|
||||||
deleteMarkerPhoto(context, savedMarker);
|
deleteMarkerPhoto(context, savedMarker);
|
||||||
}
|
}
|
||||||
int rows = contentResolver.update(MarkerColumns.CONTENT_URI, createContentValues(updateMarker, updateMarker.trackId()), MarkerColumns._ID + "=?", new String[]{Long.toString(updateMarker.id().id())});
|
int rows = contentResolver.update(CustomContentProvider.UrlType.MARKERS.getUri(), createContentValues(updateMarker, updateMarker.trackId()), MarkerColumns._ID + "=?", new String[]{Long.toString(updateMarker.id().id())});
|
||||||
return rows == 1;
|
return rows == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,7 +431,7 @@ public class ContentProviderUtils {
|
|||||||
assert marker.id() == null;
|
assert marker.id() == null;
|
||||||
assert marker.trackId() != null;
|
assert marker.trackId() != null;
|
||||||
|
|
||||||
Uri uri = contentResolver.insert(MarkerColumns.CONTENT_URI, createContentValues(marker, marker.trackId()));
|
Uri uri = contentResolver.insert(CustomContentProvider.UrlType.MARKERS.getUri(), createContentValues(marker, marker.trackId()));
|
||||||
return new Marker.Id(ContentUris.parseId(uri));
|
return new Marker.Id(ContentUris.parseId(uri));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -491,7 +492,7 @@ public class ContentProviderUtils {
|
|||||||
if (maxCount >= 0) {
|
if (maxCount >= 0) {
|
||||||
sortOrder += " LIMIT " + maxCount;
|
sortOrder += " LIMIT " + maxCount;
|
||||||
}
|
}
|
||||||
return contentResolver.query(MarkerColumns.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
|
return contentResolver.query(CustomContentProvider.UrlType.MARKERS.getUri(), projection, selection, selectionArgs, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MarkerIterator searchMarkers(Track.Id trackId, String query) {
|
public MarkerIterator searchMarkers(Track.Id trackId, String query) {
|
||||||
@@ -509,7 +510,7 @@ public class ContentProviderUtils {
|
|||||||
MarkerColumns.DESCRIPTION + " LIKE ? OR " +
|
MarkerColumns.DESCRIPTION + " LIKE ? OR " +
|
||||||
MarkerColumns.TYPE_LOCALIZED + " LIKE ?";
|
MarkerColumns.TYPE_LOCALIZED + " LIKE ?";
|
||||||
selectionArgs = new String[]{"%" + query + "%", "%" + query + "%", "%" + query + "%"};
|
selectionArgs = new String[]{"%" + query + "%", "%" + query + "%", "%" + query + "%"};
|
||||||
sortOrder = MarkerColumns.DEFAULT_SORT_ORDER + " DESC";
|
sortOrder = BaseColumns._ID + " DESC";
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MarkerIterator(this, getMarkerCursor(null, selection, selectionArgs, sortOrder, -1));
|
return new MarkerIterator(this, getMarkerCursor(null, selection, selectionArgs, sortOrder, -1));
|
||||||
@@ -567,7 +568,7 @@ public class ContentProviderUtils {
|
|||||||
for (int i = 0; i < trackPoints.size(); i++) {
|
for (int i = 0; i < trackPoints.size(); i++) {
|
||||||
values[i] = createContentValues(trackPoints.get(i), trackId);
|
values[i] = createContentValues(trackPoints.get(i), trackId);
|
||||||
}
|
}
|
||||||
return contentResolver.bulkInsert(TrackPointsColumns.CONTENT_URI_BY_ID, values);
|
return contentResolver.bulkInsert(CustomContentProvider.UrlType.TRACKPOINTS_BY_ID.getUri(), values);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Set trackId in this method.
|
//TODO Set trackId in this method.
|
||||||
@@ -576,7 +577,7 @@ public class ContentProviderUtils {
|
|||||||
for (int i = 0; i < markers.size(); i++) {
|
for (int i = 0; i < markers.size(); i++) {
|
||||||
values[i] = createContentValues(markers.get(i), trackId);
|
values[i] = createContentValues(markers.get(i), trackId);
|
||||||
}
|
}
|
||||||
return contentResolver.bulkInsert(MarkerColumns.CONTENT_URI, values);
|
return contentResolver.bulkInsert(CustomContentProvider.UrlType.MARKERS.getUri(), values);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -597,7 +598,7 @@ public class ContentProviderUtils {
|
|||||||
selectionArgs = new String[]{Long.toString(trackId.id())};
|
selectionArgs = new String[]{Long.toString(trackId.id())};
|
||||||
}
|
}
|
||||||
|
|
||||||
return getTrackPointCursor(null, selection, selectionArgs, TrackPointsColumns.DEFAULT_SORT_ORDER);
|
return getTrackPointCursor(null, selection, selectionArgs, BaseColumns._ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -608,7 +609,7 @@ public class ContentProviderUtils {
|
|||||||
* @return the content provider URI of the inserted trackPoint
|
* @return the content provider URI of the inserted trackPoint
|
||||||
*/
|
*/
|
||||||
public Uri insertTrackPoint(TrackPoint trackPoint, Track.Id trackId) {
|
public Uri insertTrackPoint(TrackPoint trackPoint, Track.Id trackId) {
|
||||||
return contentResolver.insert(TrackPointsColumns.CONTENT_URI_BY_ID, createContentValues(trackPoint, trackId));
|
return contentResolver.insert(CustomContentProvider.UrlType.TRACKPOINTS_BY_ID.getUri(), createContentValues(trackPoint, trackId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -683,7 +684,7 @@ public class ContentProviderUtils {
|
|||||||
* @param sortOrder the sort order
|
* @param sortOrder the sort order
|
||||||
*/
|
*/
|
||||||
private Cursor getTrackPointCursor(String[] projection, String selection, String[] selectionArgs, String sortOrder) {
|
private Cursor getTrackPointCursor(String[] projection, String selection, String[] selectionArgs, String sortOrder) {
|
||||||
return contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, projection, selection, selectionArgs, sortOrder);
|
return contentResolver.query(CustomContentProvider.UrlType.TRACKPOINTS_BY_ID.getUri(), projection, selection, selectionArgs, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String formatIdListForUri(Track.Id... trackIds) {
|
public static String formatIdListForUri(Track.Id... trackIds) {
|
||||||
@@ -718,7 +719,7 @@ public class ContentProviderUtils {
|
|||||||
|
|
||||||
public SensorStatistics getSensorStats(@NonNull Track.Id trackId) {
|
public SensorStatistics getSensorStats(@NonNull Track.Id trackId) {
|
||||||
SensorStatistics sensorStatistics = null;
|
SensorStatistics sensorStatistics = null;
|
||||||
try (Cursor cursor = contentResolver.query(ContentUris.withAppendedId(TracksColumns.CONTENT_URI_SENSOR_STATS, trackId.id()), null, null, null, null)) {
|
try (Cursor cursor = contentResolver.query(ContentUris.withAppendedId(CustomContentProvider.UrlType.TRACKS_SENSOR_STATS.getUri(), trackId.id()), null, null, null, null)) {
|
||||||
if (cursor != null && cursor.moveToFirst()) {
|
if (cursor != null && cursor.moveToFirst()) {
|
||||||
final int MAX_HR_INDEX = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALIAS_MAX_HR);
|
final int MAX_HR_INDEX = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALIAS_MAX_HR);
|
||||||
final int AVG_HR_INDEX = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALIAS_AVG_HR);
|
final int AVG_HR_INDEX = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALIAS_AVG_HR);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import android.database.sqlite.SQLiteException;
|
|||||||
import android.database.sqlite.SQLiteQueryBuilder;
|
import android.database.sqlite.SQLiteQueryBuilder;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.provider.BaseColumns;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -223,7 +224,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
switch (getUrlType(url)) {
|
switch (getUrlType(url)) {
|
||||||
case TRACKPOINTS -> {
|
case TRACKPOINTS -> {
|
||||||
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
|
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
|
||||||
sortOrder = sort != null ? sort : TrackPointsColumns.DEFAULT_SORT_ORDER;
|
sortOrder = sort != null ? sort : BaseColumns._ID;
|
||||||
}
|
}
|
||||||
case TRACKPOINTS_BY_ID -> {
|
case TRACKPOINTS_BY_ID -> {
|
||||||
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
|
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
|
||||||
@@ -244,7 +245,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
} else {
|
} else {
|
||||||
queryBuilder.setTables(TracksColumns.TABLE_NAME);
|
queryBuilder.setTables(TracksColumns.TABLE_NAME);
|
||||||
}
|
}
|
||||||
sortOrder = sort != null ? sort : TracksColumns.DEFAULT_SORT_ORDER;
|
sortOrder = sort != null ? sort : BaseColumns._ID;
|
||||||
}
|
}
|
||||||
case TRACKS_BY_ID -> {
|
case TRACKS_BY_ID -> {
|
||||||
queryBuilder.setTables(TracksColumns.TABLE_NAME);
|
queryBuilder.setTables(TracksColumns.TABLE_NAME);
|
||||||
@@ -275,7 +276,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
}
|
}
|
||||||
case MARKERS -> {
|
case MARKERS -> {
|
||||||
queryBuilder.setTables(MarkerColumns.TABLE_NAME);
|
queryBuilder.setTables(MarkerColumns.TABLE_NAME);
|
||||||
sortOrder = sort != null ? sort : MarkerColumns.DEFAULT_SORT_ORDER;
|
sortOrder = sort != null ? sort : BaseColumns._ID;
|
||||||
}
|
}
|
||||||
case MARKERS_BY_ID -> {
|
case MARKERS_BY_ID -> {
|
||||||
queryBuilder.setTables(MarkerColumns.TABLE_NAME);
|
queryBuilder.setTables(MarkerColumns.TABLE_NAME);
|
||||||
@@ -386,7 +387,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
}
|
}
|
||||||
long rowId = db.insert(TrackPointsColumns.TABLE_NAME, TrackPointsColumns._ID, values);
|
long rowId = db.insert(TrackPointsColumns.TABLE_NAME, TrackPointsColumns._ID, values);
|
||||||
if (rowId >= 0) {
|
if (rowId >= 0) {
|
||||||
return ContentUris.appendId(TrackPointsColumns.CONTENT_URI_BY_ID.buildUpon(), rowId).build();
|
return ContentUris.appendId(UrlType.TRACKPOINTS_BY_ID.getUri().buildUpon(), rowId).build();
|
||||||
}
|
}
|
||||||
throw new SQLiteException("Failed to insert a track point " + url);
|
throw new SQLiteException("Failed to insert a track point " + url);
|
||||||
}
|
}
|
||||||
@@ -394,7 +395,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
private Uri insertTrack(Uri url, ContentValues contentValues) {
|
private Uri insertTrack(Uri url, ContentValues contentValues) {
|
||||||
long rowId = db.insert(TracksColumns.TABLE_NAME, TracksColumns._ID, contentValues);
|
long rowId = db.insert(TracksColumns.TABLE_NAME, TracksColumns._ID, contentValues);
|
||||||
if (rowId >= 0) {
|
if (rowId >= 0) {
|
||||||
return ContentUris.appendId(TracksColumns.CONTENT_URI.buildUpon(), rowId).build();
|
return ContentUris.appendId(UrlType.TRACKS.getUri().buildUpon(), rowId).build();
|
||||||
}
|
}
|
||||||
throw new SQLException("Failed to insert a track " + url);
|
throw new SQLException("Failed to insert a track " + url);
|
||||||
}
|
}
|
||||||
@@ -402,7 +403,7 @@ public class CustomContentProvider extends ContentProvider {
|
|||||||
private Uri insertMarker(Uri url, ContentValues contentValues) {
|
private Uri insertMarker(Uri url, ContentValues contentValues) {
|
||||||
long rowId = db.insert(MarkerColumns.TABLE_NAME, MarkerColumns._ID, contentValues);
|
long rowId = db.insert(MarkerColumns.TABLE_NAME, MarkerColumns._ID, contentValues);
|
||||||
if (rowId >= 0) {
|
if (rowId >= 0) {
|
||||||
return ContentUris.appendId(MarkerColumns.CONTENT_URI.buildUpon(), rowId).build();
|
return ContentUris.appendId(UrlType.MARKERS.getUri().buildUpon(), rowId).build();
|
||||||
}
|
}
|
||||||
throw new SQLException("Failed to insert a marker " + url);
|
throw new SQLException("Failed to insert a marker " + url);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class ShareContentProvider extends CustomContentProvider {
|
|||||||
}
|
}
|
||||||
trackIdBuilder.deleteCharAt(trackIdBuilder.lastIndexOf(TRACKID_DELIMITER));
|
trackIdBuilder.deleteCharAt(trackIdBuilder.lastIndexOf(TRACKID_DELIMITER));
|
||||||
|
|
||||||
Uri uri = Uri.parse(TracksColumns.CONTENT_URI + "/" + trackFileFormat.getPreferenceId() + "/" + trackIdBuilder + "/" + Uri.encode(filename));
|
Uri uri = Uri.parse(UrlType.TRACKS.getUri() + "/" + trackFileFormat.getPreferenceId() + "/" + trackIdBuilder + "/" + Uri.encode(filename));
|
||||||
|
|
||||||
Log.d(TAG, "Created uri " + uri + " with MIME " + trackFileFormat.getMimeType());
|
Log.d(TAG, "Created uri " + uri + " with MIME " + trackFileFormat.getMimeType());
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ public class ShareContentProvider extends CustomContentProvider {
|
|||||||
String[] trackIdsString = trackIds.stream().map(id -> String.valueOf(id.id())).toArray(String[]::new);
|
String[] trackIdsString = trackIds.stream().map(id -> String.valueOf(id.id())).toArray(String[]::new);
|
||||||
String whereClause = String.format(TracksColumns._ID + " IN (%s)", TextUtils.join(",", Collections.nCopies(trackIds.size(), "?")));
|
String whereClause = String.format(TracksColumns._ID + " IN (%s)", TextUtils.join(",", Collections.nCopies(trackIds.size(), "?")));
|
||||||
|
|
||||||
try (Cursor cursor = super.query(TracksColumns.CONTENT_URI, null, whereClause, trackIdsString, TracksColumns._ID)) {
|
try (Cursor cursor = super.query(UrlType.TRACKS.getUri(), null, whereClause, trackIdsString, TracksColumns._ID)) {
|
||||||
while (cursor.moveToNext()) {
|
while (cursor.moveToNext()) {
|
||||||
tracks.add(ContentProviderUtils.createTrack(cursor));
|
tracks.add(ContentProviderUtils.createTrack(cursor));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ import de.dennisguse.opentracks.data.models.Statistics;
|
|||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
import de.dennisguse.opentracks.data.statistics.TrackStatisticsUpdater;
|
import de.dennisguse.opentracks.data.statistics.TrackStatisticsUpdater;
|
||||||
import de.dennisguse.opentracks.data.tables.TrackPointsColumns;
|
|
||||||
import de.dennisguse.opentracks.data.tables.TracksColumns;
|
|
||||||
import de.dennisguse.opentracks.services.RecordingStatus;
|
import de.dennisguse.opentracks.services.RecordingStatus;
|
||||||
import de.dennisguse.opentracks.services.TrackRecordingService;
|
import de.dennisguse.opentracks.services.TrackRecordingService;
|
||||||
import de.dennisguse.opentracks.services.handlers.AltitudeCorrectionManager;
|
import de.dennisguse.opentracks.services.handlers.AltitudeCorrectionManager;
|
||||||
@@ -120,7 +118,7 @@ public class TrackDataHub {
|
|||||||
notifyTracksTableUpdate(listeners);
|
notifyTracksTableUpdate(listeners);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
contentResolver.registerContentObserver(TracksColumns.CONTENT_URI, false, tracksTableObserver);
|
contentResolver.registerContentObserver(CustomContentProvider.UrlType.TRACKS.getUri(), false, tracksTableObserver);
|
||||||
|
|
||||||
trackPointsTableObserver = new ContentObserver(handler) {
|
trackPointsTableObserver = new ContentObserver(handler) {
|
||||||
@Override
|
@Override
|
||||||
@@ -128,7 +126,7 @@ public class TrackDataHub {
|
|||||||
notifyTrackPointsTableUpdate(true, listeners);
|
notifyTrackPointsTableUpdate(true, listeners);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
contentResolver.registerContentObserver(TrackPointsColumns.CONTENT_URI_BY_ID, false, trackPointsTableObserver);
|
contentResolver.registerContentObserver(CustomContentProvider.UrlType.TRACKPOINTS_BY_ID.getUri(), false, trackPointsTableObserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stop() {
|
public void stop() {
|
||||||
|
|||||||
@@ -17,12 +17,10 @@
|
|||||||
package de.dennisguse.opentracks.data.tables;
|
package de.dennisguse.opentracks.data.tables;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.data.CustomContentProvider;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants for markers table.
|
* Constants for markers table.
|
||||||
@@ -32,9 +30,6 @@ import de.dennisguse.opentracks.data.CustomContentProvider;
|
|||||||
public interface MarkerColumns extends BaseColumns {
|
public interface MarkerColumns extends BaseColumns {
|
||||||
|
|
||||||
String TABLE_NAME = "markers";
|
String TABLE_NAME = "markers";
|
||||||
@Deprecated
|
|
||||||
Uri CONTENT_URI = Uri.parse(CustomContentProvider.CONTENT_BASE_URI + "/" + TABLE_NAME);
|
|
||||||
String DEFAULT_SORT_ORDER = _ID;
|
|
||||||
|
|
||||||
// Columns
|
// Columns
|
||||||
String NAME = "name";
|
String NAME = "name";
|
||||||
|
|||||||
@@ -16,11 +16,8 @@
|
|||||||
|
|
||||||
package de.dennisguse.opentracks.data.tables;
|
package de.dennisguse.opentracks.data.tables;
|
||||||
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.CustomContentProvider;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants for the track points table.
|
* Constants for the track points table.
|
||||||
*
|
*
|
||||||
@@ -29,11 +26,6 @@ import de.dennisguse.opentracks.data.CustomContentProvider;
|
|||||||
public interface TrackPointsColumns extends BaseColumns {
|
public interface TrackPointsColumns extends BaseColumns {
|
||||||
|
|
||||||
String TABLE_NAME = "trackpoints";
|
String TABLE_NAME = "trackpoints";
|
||||||
@Deprecated
|
|
||||||
Uri CONTENT_URI_BY_ID = Uri.parse(CustomContentProvider.CONTENT_BASE_URI + "/" + TABLE_NAME);
|
|
||||||
@Deprecated
|
|
||||||
Uri CONTENT_URI_BY_TRACKID = Uri.parse(CustomContentProvider.CONTENT_BASE_URI + "/" + TABLE_NAME + "/trackid");
|
|
||||||
String DEFAULT_SORT_ORDER = _ID;
|
|
||||||
|
|
||||||
// Columns
|
// Columns
|
||||||
String TRACKID = "trackid";
|
String TRACKID = "trackid";
|
||||||
|
|||||||
@@ -16,11 +16,8 @@
|
|||||||
|
|
||||||
package de.dennisguse.opentracks.data.tables;
|
package de.dennisguse.opentracks.data.tables;
|
||||||
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.CustomContentProvider;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants for the tracks table.
|
* Constants for the tracks table.
|
||||||
*
|
*
|
||||||
@@ -29,11 +26,6 @@ import de.dennisguse.opentracks.data.CustomContentProvider;
|
|||||||
public interface TracksColumns extends BaseColumns {
|
public interface TracksColumns extends BaseColumns {
|
||||||
|
|
||||||
String TABLE_NAME = "tracks";
|
String TABLE_NAME = "tracks";
|
||||||
@Deprecated
|
|
||||||
Uri CONTENT_URI = Uri.parse(CustomContentProvider.CONTENT_BASE_URI + "/" + TABLE_NAME);
|
|
||||||
@Deprecated
|
|
||||||
Uri CONTENT_URI_SENSOR_STATS = Uri.parse(CustomContentProvider.CONTENT_BASE_URI + "/" + TABLE_NAME + "/sensorstats");
|
|
||||||
String DEFAULT_SORT_ORDER = _ID;
|
|
||||||
|
|
||||||
// Columns
|
// Columns
|
||||||
String UUID = "uuid"; // identifier to make tracks globally unique (prevent re-import)
|
String UUID = "uuid"; // identifier to make tracks globally unique (prevent re-import)
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ import java.util.concurrent.Executor;
|
|||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||||
|
import de.dennisguse.opentracks.data.CustomContentProvider;
|
||||||
import de.dennisguse.opentracks.data.TrackPointIterator;
|
import de.dennisguse.opentracks.data.TrackPointIterator;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.Statistics;
|
import de.dennisguse.opentracks.data.models.Statistics;
|
||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
import de.dennisguse.opentracks.data.tables.TrackPointsColumns;
|
|
||||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -85,7 +85,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
|
|||||||
loadIntervalStatistics(trackId);
|
loadIntervalStatistics(trackId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
contentResolver.registerContentObserver(TrackPointsColumns.CONTENT_URI_BY_TRACKID, false, trackPointsTableObserver);
|
contentResolver.registerContentObserver(CustomContentProvider.UrlType.TRACKPOINTS_BY_TRACKID.getUri(), false, trackPointsTableObserver);
|
||||||
|
|
||||||
return intervalsLiveData;
|
return intervalsLiveData;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user