Cleanup: CustomContentProvider by inlining into UrlType.

This commit is contained in:
Dennis Guse
2026-07-24 20:54:16 +02:00
parent ea2127846d
commit 30ed8d8ba3
9 changed files with 36 additions and 57 deletions
@@ -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;
} }