mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 14:27:15 +00:00
database refactoring
This commit is contained in:
1 parent
3456da7e35
commit
e0dc338a92
4 files changed
+87
-168
No files matched your search
+2
-2
@@ -19,8 +19,8 @@ public class RegattaAdapter extends ResourceCursorAdapter {
|
||||
public void bindView(View view, Context context, Cursor cursor) {
|
||||
TextView name = (TextView) view.findViewById(R.id.regattaName);
|
||||
if (name != null) {
|
||||
String text = cursor.getString(cursor.getColumnIndex(AnalyticsContract.Event.EVENT_TITLE));
|
||||
text += " (" + cursor.getString(cursor.getColumnIndex(AnalyticsContract.Competitor.COMPETITOR_NAME)) + ")";
|
||||
String text = cursor.getString(cursor.getColumnIndex(AnalyticsContract.Event.EVENT_NAME));
|
||||
text += " (" + cursor.getString(cursor.getColumnIndex(AnalyticsContract.Competitor.COMPETITOR_DISPLAY_NAME)) + ")";
|
||||
name.setText(text);
|
||||
}
|
||||
}
|
||||
|
||||
+40
-44
@@ -7,17 +7,27 @@ import android.provider.BaseColumns;
|
||||
public class AnalyticsContract {
|
||||
|
||||
interface CompetitorColumns {
|
||||
String COMPETITOR_ID = "competitor_id";
|
||||
String COMPETITOR_NAME = "competitor_name";
|
||||
String COMPETITOR_PROFILE_IMAGE_URL = "profile_image_url";
|
||||
String COMPETITOR_ID = "id";
|
||||
String COMPETITOR_DISPLAY_NAME = "display_name";
|
||||
String COMPETITOR_COUNTRY_CODE = "country_code";
|
||||
String COMPETITOR_NATIONALITY = "nationality";
|
||||
String COMPETITOR_SAIL_ID = "saild_id";
|
||||
String COMPETITOR_LEADERBOARD_FK = "leaderboard_id";
|
||||
}
|
||||
|
||||
interface LeaderboardColumns {
|
||||
String LEADERBOARD_ID = "id";
|
||||
String LEADERBOARD_NAME = "name";
|
||||
}
|
||||
|
||||
interface EventColumns {
|
||||
String EVENT_ID = "event_id";
|
||||
String EVENT_DATE_END = "event_date_end";
|
||||
String EVENT_DATE_START = "event_date_start";
|
||||
String EVENT_SERVER = "event_server";
|
||||
String EVENT_TITLE = "event_title";
|
||||
String EVENT_ID = "id";
|
||||
String EVENT_DATE_END = "date_end";
|
||||
String EVENT_DATE_START = "date_start";
|
||||
String EVENT_SERVER = "server";
|
||||
String EVENT_IMAGE_URL = "image_url";
|
||||
String EVENT_NAME = "name";
|
||||
String COMPETITOR_LEADERBOARD_FK = "leaderboard_id";
|
||||
}
|
||||
|
||||
interface SensorGpsColumns {
|
||||
@@ -32,13 +42,7 @@ public class AnalyticsContract {
|
||||
String GPS_SYNCED = "gps_synced";
|
||||
String GPS_SPEED = "gps_speed";
|
||||
String GPS_TIME = "gps_time";
|
||||
}
|
||||
|
||||
interface MessageColumns {
|
||||
String MESSAGE_URL = "message_url";
|
||||
String MESSAGE_CALLBACK_PAYLOAD = "message_callback_payload";
|
||||
String MESSAGE_PAYLOAD = "message_payload";
|
||||
String MESSAGE_CALLBACK_CLASS_STRING = "message_callback_class_string";
|
||||
String GPS_EVENT_FK = "event_id";
|
||||
}
|
||||
|
||||
public static final String CONTENT_AUTHORITY = "com.sap.sailing.android.tracking.app.provider.db";
|
||||
@@ -47,7 +51,7 @@ public class AnalyticsContract {
|
||||
|
||||
private static final String PATH_COMPETITOR = "competitors";
|
||||
private static final String PATH_EVENT = "events";
|
||||
private static final String PATH_MESSAGE = "messages";
|
||||
private static final String PATH_LEADERBOARD = "leaderboards";
|
||||
private static final String PATH_SENSOR_GPS = "sensor_gps";
|
||||
|
||||
public static class Competitor implements CompetitorColumns, BaseColumns {
|
||||
@@ -55,8 +59,7 @@ public class AnalyticsContract {
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.competitor";
|
||||
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.sap_sailing_analytics.competitor";
|
||||
|
||||
public static final String DEFAULT_SORT = CompetitorColumns.COMPETITOR_NAME + " COLLATE NOCASE ASC";
|
||||
public static final String DEFAULT_SORT = CompetitorColumns.COMPETITOR_ID + " COLLATE NOCASE ASC";
|
||||
|
||||
public static Uri buildCompetitorUri(String competitorId) {
|
||||
return CONTENT_URI.buildUpon().appendPath(competitorId).build();
|
||||
@@ -76,8 +79,7 @@ public class AnalyticsContract {
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.event";
|
||||
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.sap_sailing_analytics.event";
|
||||
|
||||
public static final String DEFAULT_SORT = EventColumns.EVENT_TITLE + " COLLATE NOCASE ASC ";
|
||||
public static final String DEFAULT_SORT = EventColumns.EVENT_NAME + " COLLATE NOCASE ASC ";
|
||||
|
||||
public static Uri buildEventUri(String eventId) {
|
||||
return CONTENT_URI.buildUpon().appendPath(eventId).build();
|
||||
@@ -92,35 +94,11 @@ public class AnalyticsContract {
|
||||
}
|
||||
}
|
||||
|
||||
public static class EventCompetitor implements EventColumns, CompetitorColumns, BaseColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_EVENT).appendPath(PATH_COMPETITOR).build();
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.event.competitor";
|
||||
}
|
||||
|
||||
public static class Message implements MessageColumns, BaseColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_MESSAGE).build();
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.message";
|
||||
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.sap_sailing_analytics.message";
|
||||
|
||||
public static final String DEFAULT_SORT = BaseColumns._ID + " ASC ";
|
||||
|
||||
public static Uri buildMessageUri(String messageId) {
|
||||
return CONTENT_URI.buildUpon().appendPath(messageId).build();
|
||||
}
|
||||
|
||||
public static String getMessageId(Uri uri) {
|
||||
return uri.getPathSegments().get(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SensorGps implements SensorGpsColumns, BaseColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_SENSOR_GPS).build();
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.sensor.gps";
|
||||
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.sap_sailing_analytics.sensor.gps";
|
||||
|
||||
public static final String DEFAULT_SORT = BaseColumns._ID + " ASC ";
|
||||
|
||||
public static Uri buildSensorGpsUri(String gpsId) {
|
||||
@@ -132,6 +110,24 @@ public class AnalyticsContract {
|
||||
}
|
||||
}
|
||||
|
||||
public static class Leaderboard implements LeaderboardColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_LEADERBOARD).build();
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.sap_sailing_analytics.leaderboard";
|
||||
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.sap_sailing_analytics.leaderboard";
|
||||
public static final String DEFAULT_SORT = BaseColumns._ID + " ASC ";
|
||||
|
||||
public static Uri buildLeaderboardUri(String leaderboardId)
|
||||
{
|
||||
return CONTENT_URI.buildUpon().appendPath(leaderboardId).build();
|
||||
}
|
||||
|
||||
public static String getLeaderboardId(Uri uri) {
|
||||
return uri.getPathSegments().get(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private AnalyticsContract() {
|
||||
|
||||
}
|
||||
|
||||
+17
-73
@@ -6,11 +6,9 @@ import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.provider.BaseColumns;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Competitor;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.CompetitorColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Event;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.EventColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.MessageColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.LeaderboardColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.SensorGpsColumns;
|
||||
|
||||
public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
@@ -29,88 +27,37 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
String EVENTS = "events";
|
||||
String EVENTS_COMPETITORS = "events_competitors";
|
||||
String SENSOR_GPS = "sensor_gps";
|
||||
String MESSAGES = "messages";
|
||||
|
||||
String EVENTS_JOIN_COMPETITOR = "events_competitors "
|
||||
+ "LEFT OUTER JOIN competitors ON events_competitors.competitor_id = competitors.competitor_id "
|
||||
+ "LEFT OUTER JOIN events ON events_competitors.event_id = events.event_id ";
|
||||
}
|
||||
|
||||
private interface Triggers {
|
||||
String COMPETITORS_DELETE_00 = "competitors_delete_00";
|
||||
String EVENTS_DELETE_00 = "events_delete_00";
|
||||
}
|
||||
|
||||
public interface EventCompetitor {
|
||||
String EVENT_ID = EventColumns.EVENT_ID;
|
||||
String COMPETITOR_ID = CompetitorColumns.COMPETITOR_ID;
|
||||
}
|
||||
|
||||
public interface Qualified {
|
||||
String EVENT_COMPETITOR_EVENT_ID = Tables.EVENTS_COMPETITORS + "." + EventCompetitor.EVENT_ID;
|
||||
String EVENT_COMPETITOR_COMPETITOR_ID = Tables.EVENTS_COMPETITORS + "." + EventCompetitor.COMPETITOR_ID;
|
||||
}
|
||||
public interface References {
|
||||
String COMPETITOR_ID = "REFERENCES " + Tables.COMPETITORS + "." + Competitor.COMPETITOR_ID;
|
||||
String EVENT_ID = "REFERENCES " + Tables.EVENTS + "." + Event.EVENT_ID;
|
||||
String LEADERBOARDS = "leaderboards";
|
||||
}
|
||||
|
||||
public AnalyticsDatabase(Context context) {
|
||||
super(context, DATABASE_NAME, null, CUR_DATABASE_VERSION);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpen(SQLiteDatabase db) {
|
||||
super.onOpen(db);
|
||||
|
||||
if (!db.isReadOnly()) {
|
||||
db.execSQL("PRAGMA recursive_triggers = true");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
db.execSQL("CREATE TABLE " + Tables.COMPETITORS + " ("
|
||||
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ CompetitorColumns.COMPETITOR_ID + " TEXT NOT NULL, "
|
||||
+ CompetitorColumns.COMPETITOR_NAME + " TEXT NOT NULL, "
|
||||
+ CompetitorColumns.COMPETITOR_PROFILE_IMAGE_URL + " TEXT, "
|
||||
+ "UNIQUE (" + CompetitorColumns.COMPETITOR_ID + ") ON CONFLICT REPLACE)");
|
||||
+ CompetitorColumns.COMPETITOR_DISPLAY_NAME + " TEXT NOT NULL, "
|
||||
+ CompetitorColumns.COMPETITOR_COUNTRY_CODE + " TEXT, "
|
||||
+ CompetitorColumns.COMPETITOR_NATIONALITY + " TEXT, "
|
||||
+ CompetitorColumns.COMPETITOR_SAIL_ID + " TEXT, "
|
||||
+ "FOREIGN KEY (" + CompetitorColumns.COMPETITOR_LEADERBOARD_FK + ") "
|
||||
+ "REFERENCES " + Tables.LEADERBOARDS + "( " + LeaderboardColumns.LEADERBOARD_ID + " ))");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.EVENTS + " ( "
|
||||
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ EventColumns.EVENT_ID + " TEXT NOT NULL, "
|
||||
+ EventColumns.EVENT_TITLE + " TEXT NOT NULL, "
|
||||
+ EventColumns.EVENT_NAME + " TEXT NOT NULL, "
|
||||
+ EventColumns.EVENT_DATE_START + " INTEGER, "
|
||||
+ EventColumns.EVENT_DATE_END + " INTEGER, "
|
||||
+ EventColumns.EVENT_SERVER + " STRING, "
|
||||
+ "UNIQUE (" + EventColumns.EVENT_ID + ") ON CONFLICT REPLACE)");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.EVENTS_COMPETITORS + " ( "
|
||||
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ EventColumns.EVENT_ID + " TEXT NOT NULL, "
|
||||
+ CompetitorColumns.COMPETITOR_ID + " TEXT NOT NULL "
|
||||
+ ")");
|
||||
|
||||
db.execSQL("CREATE TRIGGER " + Triggers.COMPETITORS_DELETE_00 + " BEFORE DELETE ON "
|
||||
+ Tables.COMPETITORS + " BEGIN DELETE FROM " + Tables.EVENTS_COMPETITORS + " "
|
||||
+ " WHERE " + Qualified.EVENT_COMPETITOR_COMPETITOR_ID + " = old." + CompetitorColumns.COMPETITOR_ID
|
||||
+ ";" + " END;");
|
||||
|
||||
db.execSQL("CREATE TRIGGER " + Triggers.EVENTS_DELETE_00 + " BEFORE DELETE ON "
|
||||
+ Tables.EVENTS + " BEGIN DELETE FROM " + Tables.EVENTS_COMPETITORS + " "
|
||||
+ " WHERE " + Qualified.EVENT_COMPETITOR_EVENT_ID + " = old." + EventColumns.EVENT_ID
|
||||
+ ";" + " END;");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.MESSAGES + " ( "
|
||||
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ MessageColumns.MESSAGE_URL + " TEXT NOT NULL, "
|
||||
+ MessageColumns.MESSAGE_PAYLOAD + " TEXT, "
|
||||
+ MessageColumns.MESSAGE_CALLBACK_CLASS_STRING + " TEXT, "
|
||||
+ MessageColumns.MESSAGE_CALLBACK_PAYLOAD + " TEXT "
|
||||
+ ")");
|
||||
|
||||
+ EventColumns.EVENT_SERVER + " TEXT, "
|
||||
+ EventColumns.EVENT_IMAGE_URL + " TEXT, "
|
||||
+ "FOREIGN KEY (" + EventColumns.COMPETITOR_LEADERBOARD_FK + ") "
|
||||
+ "REFERENCES " + Tables.LEADERBOARDS + "( " + LeaderboardColumns.LEADERBOARD_ID + " ))");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.SENSOR_GPS + " ( "
|
||||
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ SensorGpsColumns.GPS_ACCURACY + " TEXT, "
|
||||
@@ -124,7 +71,8 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
+ SensorGpsColumns.GPS_SPEED + " TEXT, "
|
||||
+ SensorGpsColumns.GPS_SYNCED + " INTEGER DEFAULT 0, "
|
||||
+ SensorGpsColumns.GPS_TIME + " TEXT "
|
||||
+ ")");
|
||||
+ "FOREIGN KEY (" + SensorGpsColumns.GPS_EVENT_FK + ") "
|
||||
+ "REFERENCES " + Tables.EVENTS + "( " + EventColumns.EVENT_ID + " ))");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,14 +84,10 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
if (version != CUR_DATABASE_VERSION) {
|
||||
ExLog.i(mContext, TAG, "Upgrade unsuccessful - destroying old data during upgrade");
|
||||
|
||||
db.execSQL("DROP TRIGGER IF EXISTS " + Triggers.COMPETITORS_DELETE_00);
|
||||
db.execSQL("DROP TRIGGER IF EXISTS " + Triggers.EVENTS_DELETE_00);
|
||||
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.COMPETITORS);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.EVENTS);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.EVENTS_COMPETITORS);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.MESSAGES);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.SENSOR_GPS);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.LEADERBOARDS);
|
||||
|
||||
onCreate(db);
|
||||
version = CUR_DATABASE_VERSION;
|
||||
|
||||
+28
-49
@@ -9,14 +9,13 @@ import android.content.UriMatcher;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.net.Uri;
|
||||
import android.provider.BaseColumns;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.util.SelectionBuilder;
|
||||
import com.sap.sailing.android.tracking.app.BuildConfig;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Competitor;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Event;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Message;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Leaderboard;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.SensorGps;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsDatabase.Tables;
|
||||
|
||||
@@ -33,9 +32,9 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
|
||||
private static final int EVENT = 200;
|
||||
private static final int EVENT_ID = 201;
|
||||
private static final int EVENT_ID_COMPETITOR = 202;
|
||||
|
||||
private static final int EVENT_COMPETITOR = 300;
|
||||
private static final int LEADERBOARD = 300;
|
||||
private static final int LEADERBOARD_ID = 301;
|
||||
|
||||
private static final int MESSAGE = 400;
|
||||
private static final int MESSAGE_ID = 401;
|
||||
@@ -50,11 +49,11 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
matcher.addURI(authority, "competitors", COMPETITOR);
|
||||
matcher.addURI(authority, "competitors/*", COMPETITOR_ID);
|
||||
|
||||
matcher.addURI(authority, "events/competitors", EVENT_COMPETITOR);
|
||||
matcher.addURI(authority, "leaderboards", LEADERBOARD);
|
||||
matcher.addURI(authority, "leaderboards/*", LEADERBOARD_ID);
|
||||
|
||||
matcher.addURI(authority, "events", EVENT);
|
||||
matcher.addURI(authority, "events/*", EVENT_ID);
|
||||
matcher.addURI(authority, "events/*/competitors", EVENT_ID_COMPETITOR);
|
||||
|
||||
matcher.addURI(authority, "messages", MESSAGE);
|
||||
matcher.addURI(authority, "messages/#", MESSAGE_ID);
|
||||
@@ -71,12 +70,12 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void deleteDatabase() {
|
||||
Context context = getContext();
|
||||
mOpenHelper.close();
|
||||
AnalyticsDatabase.deleteDatabase(context);
|
||||
mOpenHelper = new AnalyticsDatabase(context);
|
||||
}
|
||||
// private void deleteDatabase() {
|
||||
// Context context = getContext();
|
||||
// mOpenHelper.close();
|
||||
// AnalyticsDatabase.deleteDatabase(context);
|
||||
// mOpenHelper = new AnalyticsDatabase(context);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
|
||||
@@ -119,17 +118,11 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
case EVENT_ID:
|
||||
return Event.CONTENT_ITEM_TYPE;
|
||||
|
||||
case EVENT_ID_COMPETITOR:
|
||||
return Event.CONTENT_ITEM_TYPE;
|
||||
|
||||
case EVENT_COMPETITOR:
|
||||
return AnalyticsContract.EventCompetitor.CONTENT_TYPE;
|
||||
|
||||
case MESSAGE:
|
||||
return Message.CONTENT_TYPE;
|
||||
|
||||
case MESSAGE_ID:
|
||||
return Message.CONTENT_ITEM_TYPE;
|
||||
case LEADERBOARD:
|
||||
return Leaderboard.CONTENT_TYPE;
|
||||
|
||||
case LEADERBOARD_ID:
|
||||
return Leaderboard.CONTENT_ITEM_TYPE;
|
||||
|
||||
case SENSOR_GPS:
|
||||
return SensorGps.CONTENT_TYPE;
|
||||
@@ -162,15 +155,10 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
notifyChange(uri);
|
||||
return Event.buildEventUri(values.getAsString(Event.EVENT_ID));
|
||||
|
||||
case EVENT_ID_COMPETITOR:
|
||||
db.insertOrThrow(Tables.EVENTS_COMPETITORS, null, values);
|
||||
notifyChange(uri);
|
||||
return Event.buildCompetitorsDirUri(values.getAsString(Event.EVENT_ID));
|
||||
|
||||
case MESSAGE:
|
||||
db.insertOrThrow(Tables.MESSAGES, null, values);
|
||||
notifyChange(uri);
|
||||
return Message.buildMessageUri("XX");
|
||||
case LEADERBOARD:
|
||||
db.insertOrThrow(Tables.LEADERBOARDS, null, values);
|
||||
notifyChange(uri);
|
||||
return Leaderboard.buildLeaderboardUri(values.getAsString(Leaderboard.LEADERBOARD_ID));
|
||||
|
||||
case SENSOR_GPS:
|
||||
db.insertOrThrow(Tables.SENSOR_GPS, null, values);
|
||||
@@ -247,6 +235,14 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
return builder.table(Tables.COMPETITORS)
|
||||
.where(Competitor.COMPETITOR_ID + " = ?", competitor_id);
|
||||
|
||||
case LEADERBOARD:
|
||||
return builder.table(Tables.LEADERBOARDS);
|
||||
|
||||
case LEADERBOARD_ID:
|
||||
final String leaderboard_id = Leaderboard.getLeaderboardId(uri);
|
||||
return builder.table(Tables.LEADERBOARDS)
|
||||
.where(Leaderboard.LEADERBOARD_ID + " = ?", leaderboard_id);
|
||||
|
||||
case EVENT:
|
||||
return builder.table(Tables.EVENTS);
|
||||
|
||||
@@ -255,23 +251,6 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
return builder.table(Tables.EVENTS)
|
||||
.where(Event.EVENT_ID + " = ?", event_id);
|
||||
|
||||
case EVENT_ID_COMPETITOR:
|
||||
final String event_competitor_id = Event.getEventId(uri);
|
||||
return builder.table(Tables.EVENTS_JOIN_COMPETITOR)
|
||||
.mapToTable(BaseColumns._ID, Tables.EVENTS_COMPETITORS)
|
||||
.mapToTable(Competitor.COMPETITOR_ID, Tables.COMPETITORS)
|
||||
.mapToTable(Event.EVENT_ID, Tables.EVENTS)
|
||||
.where(Event.EVENT_ID + " = ?", event_competitor_id);
|
||||
|
||||
case EVENT_COMPETITOR:
|
||||
return builder.table(Tables.EVENTS_JOIN_COMPETITOR)
|
||||
.mapToTable(BaseColumns._ID, Tables.EVENTS_COMPETITORS)
|
||||
.mapToTable(Competitor.COMPETITOR_ID, Tables.COMPETITORS)
|
||||
.mapToTable(Event.EVENT_ID, Tables.EVENTS);
|
||||
|
||||
case MESSAGE:
|
||||
return builder.table(Tables.MESSAGES);
|
||||
|
||||
case SENSOR_GPS:
|
||||
return builder.table(Tables.SENSOR_GPS);
|
||||
|
||||
|
||||
Reference in new issue
Block a user