mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-22 13:45:42 +00:00
Add new column checkin type to checkin table
This commit is contained in:
+1
@@ -3,5 +3,6 @@ package com.sap.sailing.android.shared.data;
|
||||
public class CheckinUrlInfo {
|
||||
public String urlString;
|
||||
public String checkinDigest;
|
||||
public int type;
|
||||
public int rowId;
|
||||
}
|
||||
|
||||
+5
-4
@@ -30,15 +30,16 @@ public class AnalyticsContract {
|
||||
String EVENT_CHECKIN_DIGEST = "event_checkin_digest";
|
||||
}
|
||||
|
||||
interface MarkColums {
|
||||
interface markColums {
|
||||
String MARK_ID = "mark.id";
|
||||
String MARKNAME = "mark.name";
|
||||
String MARK_CHECKIN_DIGEST = "mark.checkin_digest";
|
||||
}
|
||||
|
||||
interface CheckinUriColumns {
|
||||
interface CheckinColumns {
|
||||
String CHECKIN_URI_VALUE = "uri_value";
|
||||
String CHECKIN_URI_CHECKIN_DIGEST = "uri_checkin_digest";
|
||||
String CHECKIN_TYPE = "checkin_type";
|
||||
}
|
||||
|
||||
public static final String CONTENT_AUTHORITY = "com.sap.sailing.android.tracking.app.provider.db";
|
||||
@@ -123,7 +124,7 @@ public class AnalyticsContract {
|
||||
}
|
||||
}
|
||||
|
||||
public static class CheckinUri implements CheckinUriColumns, BaseColumns {
|
||||
public static class Checkin implements CheckinColumns, BaseColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_CHECKIN_URI).build();
|
||||
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE
|
||||
@@ -141,7 +142,7 @@ public class AnalyticsContract {
|
||||
}
|
||||
}
|
||||
|
||||
public static class Mark implements MarkColums, BaseColumns {
|
||||
public static class mark implements markColums, BaseColumns {
|
||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_MARK).build();
|
||||
public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE
|
||||
+ "/vnd.sap_sailing_analytics.mark";
|
||||
|
||||
+8
-6
@@ -12,7 +12,7 @@ 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.Leaderboard;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.LeaderboardColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.CheckinUriColumns;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.CheckinColumns;
|
||||
|
||||
public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
|
||||
@@ -24,9 +24,9 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
private static final int CUR_DATABASE_VERSION = VER_2016_RELEASE_1;
|
||||
|
||||
private static final String createMarkTable = "CREATE TABLE " + Tables.MARKS + " (" +BaseColumns._ID
|
||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + AnalyticsContract.Mark.MARK_ID + " TEXT, "
|
||||
+ AnalyticsContract.Mark.MARKNAME + " TEXT, "
|
||||
+ AnalyticsContract.Mark.MARK_CHECKIN_DIGEST + " TEXT );" ;
|
||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + AnalyticsContract.mark.MARK_ID + " TEXT, "
|
||||
+ AnalyticsContract.mark.MARKNAME + " TEXT, "
|
||||
+ AnalyticsContract.mark.MARK_CHECKIN_DIGEST + " TEXT );" ;
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
@@ -60,8 +60,9 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
+ LeaderboardColumns.LEADERBOARD_NAME + " TEXT );");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.CHECKIN_URIS + " (" + BaseColumns._ID
|
||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CheckinUriColumns.CHECKIN_URI_CHECKIN_DIGEST + " TEXT, "
|
||||
+ CheckinUriColumns.CHECKIN_URI_VALUE + " TEXT );");
|
||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CheckinColumns.CHECKIN_URI_CHECKIN_DIGEST + " TEXT, "
|
||||
+ CheckinColumns.CHECKIN_URI_VALUE + " TEXT, "
|
||||
+ CheckinColumns.CHECKIN_TYPE + " INTEGER );");
|
||||
|
||||
db.execSQL("CREATE TABLE " + Tables.COMPETITORS + " (" + BaseColumns._ID
|
||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CompetitorColumns.COMPETITOR_ID + " TEXT, "
|
||||
@@ -84,6 +85,7 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
ExLog.i(mContext, TAG, "onUpgrade() from " + oldVersion + " to " + newVersion);
|
||||
if (oldVersion == 1 && newVersion == 2) {
|
||||
db.execSQL(createMarkTable);
|
||||
db.execSQL("ALTER TABLE " + Tables.CHECKIN_URIS + "ADD COLUMN " + AnalyticsContract.Checkin.CHECKIN_TYPE + " INTEGER DEFAULT 0");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-9
@@ -15,7 +15,7 @@ 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.CheckinUri;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Checkin;
|
||||
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.Leaderboard;
|
||||
@@ -159,13 +159,13 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
case LEADERBOARD_ID:
|
||||
return Leaderboard.CONTENT_ITEM_TYPE;
|
||||
case CHECKIN_URI:
|
||||
return CheckinUri.CONTENT_TYPE;
|
||||
return Checkin.CONTENT_TYPE;
|
||||
case CHECKIN_URI_ID:
|
||||
return CheckinUri.CONTENT_ITEM_TYPE;
|
||||
return Checkin.CONTENT_ITEM_TYPE;
|
||||
case MARK:
|
||||
return AnalyticsContract.Mark.CONTENT_TYPE;
|
||||
return AnalyticsContract.mark.CONTENT_TYPE;
|
||||
case MARK_ID:
|
||||
return AnalyticsContract.Mark.CONTENT_ITEM_TYPE;
|
||||
return AnalyticsContract.mark.CONTENT_ITEM_TYPE;
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown uri: " + uri);
|
||||
}
|
||||
@@ -199,12 +199,12 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
case CHECKIN_URI:
|
||||
long checkinUriID = db.insertOrThrow(Tables.CHECKIN_URIS, null, values);
|
||||
notifyChange(uri);
|
||||
return CheckinUri.builCheckInUri(String.valueOf(checkinUriID));
|
||||
return Checkin.builCheckInUri(String.valueOf(checkinUriID));
|
||||
|
||||
case MARK:
|
||||
long markUriID = db.insertOrThrow(Tables.MARKS, null, values);
|
||||
notifyChange(uri);
|
||||
return AnalyticsContract.Mark.buildMarkUri(String.valueOf(markUriID));
|
||||
return AnalyticsContract.mark.buildMarkUri(String.valueOf(markUriID));
|
||||
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown uri: " + uri);
|
||||
@@ -297,12 +297,12 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
case CHECKIN_URI:
|
||||
return builder.table(Tables.CHECKIN_URIS);
|
||||
case CHECKIN_URI_ID:
|
||||
final String checkinUriId = AnalyticsContract.CheckinUri.getCheckinUriId(uri);
|
||||
final String checkinUriId = Checkin.getCheckinUriId(uri);
|
||||
return builder.table(Tables.CHECKIN_URIS).where(BaseColumns._ID + " = ?", checkinUriId);
|
||||
case MARK:
|
||||
return builder.table(Tables.MARKS);
|
||||
case MARK_ID:
|
||||
final String mark_id = AnalyticsContract.Mark.getMarkId(uri);
|
||||
final String mark_id = AnalyticsContract.mark.getMarkId(uri);
|
||||
return builder.table(Tables.MARKS).where(BaseColumns._ID + " = ?", mark_id);
|
||||
|
||||
default:
|
||||
|
||||
+21
-15
@@ -1,5 +1,8 @@
|
||||
package com.sap.sailing.android.tracking.app.utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import android.content.ContentProviderOperation;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
@@ -9,22 +12,19 @@ import android.database.Cursor;
|
||||
import android.os.RemoteException;
|
||||
import android.provider.BaseColumns;
|
||||
|
||||
import com.sap.sailing.android.shared.data.CheckinUrlInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.tracking.app.BuildConfig;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Checkin;
|
||||
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.EventLeaderboardCompetitorJoined;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Leaderboard;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.CheckinUri;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsDatabase;
|
||||
import com.sap.sailing.android.tracking.app.valueobjects.CompetitorInfo;
|
||||
import com.sap.sailing.android.tracking.app.valueobjects.EventInfo;
|
||||
import com.sap.sailing.android.shared.data.CheckinUrlInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DatabaseHelper {
|
||||
|
||||
@@ -43,11 +43,11 @@ public class DatabaseHelper {
|
||||
public List<String> getCheckinUrls(Context context) {
|
||||
List<String> checkinUrls = new ArrayList<>();
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
Cursor cursor = cr.query(CheckinUri.CONTENT_URI, null, null, null, null);
|
||||
Cursor cursor = cr.query(Checkin.CONTENT_URI, null, null, null, null);
|
||||
if (cursor != null) {
|
||||
cursor.moveToFirst();
|
||||
while (!cursor.isAfterLast()) {
|
||||
String checkinUrl = cursor.getString(cursor.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
String checkinUrl = cursor.getString(cursor.getColumnIndex(Checkin.CHECKIN_URI_VALUE));
|
||||
if (!checkinUrls.contains(checkinUrl)) {
|
||||
checkinUrls.add(checkinUrl);
|
||||
}
|
||||
@@ -161,12 +161,13 @@ public class DatabaseHelper {
|
||||
CheckinUrlInfo checkinUrlInfo = new CheckinUrlInfo();
|
||||
checkinUrlInfo.checkinDigest = checkinDigest;
|
||||
|
||||
Cursor uc = context.getContentResolver().query(CheckinUri.CONTENT_URI, null,
|
||||
CheckinUri.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
Cursor uc = context.getContentResolver().query(Checkin.CONTENT_URI, null,
|
||||
Checkin.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (uc != null) {
|
||||
if (uc.moveToFirst()) {
|
||||
checkinUrlInfo.rowId = uc.getInt(uc.getColumnIndex(BaseColumns._ID));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(Checkin.CHECKIN_URI_VALUE));
|
||||
checkinUrlInfo.type = uc.getInt(uc.getColumnIndex(Checkin.CHECKIN_TYPE));
|
||||
}
|
||||
|
||||
uc.close();
|
||||
@@ -175,13 +176,15 @@ public class DatabaseHelper {
|
||||
return checkinUrlInfo;
|
||||
}
|
||||
|
||||
// TODO: Get Mark
|
||||
|
||||
public void deleteRegattaFromDatabase(Context context, String checkinDigest) {
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
|
||||
int d1 = cr.delete(Event.CONTENT_URI, Event.EVENT_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest });
|
||||
int d2 = cr.delete(Competitor.CONTENT_URI, Competitor.COMPETITOR_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest });
|
||||
int d3 = cr.delete(Leaderboard.CONTENT_URI, Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest });
|
||||
int d4 = cr.delete(CheckinUri.CONTENT_URI, CheckinUri.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest });
|
||||
int d4 = cr.delete(Checkin.CONTENT_URI, Checkin.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest });
|
||||
|
||||
if (BuildConfig.DEBUG) {
|
||||
ExLog.i(context, TAG, "Checkout, number of events deleted: " + d1);
|
||||
@@ -245,10 +248,11 @@ public class DatabaseHelper {
|
||||
|
||||
ContentValues ccuv = new ContentValues();
|
||||
|
||||
ccuv.put(CheckinUri.CHECKIN_URI_VALUE, checkinURL.urlString);
|
||||
ccuv.put(CheckinUri.CHECKIN_URI_CHECKIN_DIGEST, checkinURL.checkinDigest);
|
||||
ccuv.put(Checkin.CHECKIN_URI_VALUE, checkinURL.urlString);
|
||||
ccuv.put(Checkin.CHECKIN_URI_CHECKIN_DIGEST, checkinURL.checkinDigest);
|
||||
ccuv.put(Checkin.CHECKIN_TYPE, checkinURL.type);
|
||||
|
||||
opList.add(ContentProviderOperation.newInsert(CheckinUri.CONTENT_URI).withValues(ccuv).build());
|
||||
opList.add(ContentProviderOperation.newInsert(Checkin.CONTENT_URI).withValues(ccuv).build());
|
||||
|
||||
try {
|
||||
cr.applyBatch(AnalyticsContract.CONTENT_AUTHORITY, opList);
|
||||
@@ -259,6 +263,8 @@ public class DatabaseHelper {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Store mark
|
||||
|
||||
/**
|
||||
* Return true if the combination of event, leaderboard and competitor does not exist in the DB. (based on the
|
||||
* digest of the checkin- url obtained from the QR-code.)
|
||||
|
||||
Reference in New Issue
Block a user