mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 14:27:15 +00:00
bugfix for batch-insert in HomeFragment.java, addeed development helper class SqlDebugHelper.java
This commit is contained in:
1 parent
119a8f1664
commit
075054e3b1
3 files changed
+111
-11
No files matched your search
+4
@@ -13,6 +13,7 @@ import android.view.MenuItem;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.tracking.app.R;
|
||||
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
|
||||
import com.sap.sailing.android.tracking.app.utils.SqlDebugHelper;
|
||||
|
||||
public class BaseActivity extends ActionBarActivity {
|
||||
private static final String TAG = SendingServiceAwareActivity.class.getName();
|
||||
@@ -22,6 +23,9 @@ public class BaseActivity extends ActionBarActivity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
prefs = new AppPreferences(this);
|
||||
|
||||
// TODO: Remove debug string
|
||||
SqlDebugHelper.dumpAllTablesToConsole(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+31
-11
@@ -53,6 +53,7 @@ import com.sap.sailing.android.tracking.app.provider.AnalyticsContract;
|
||||
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;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsProvider;
|
||||
import com.sap.sailing.android.tracking.app.ui.activities.RegattaActivity;
|
||||
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
|
||||
import com.sap.sailing.android.tracking.app.utils.CheckinQRCodeHelper;
|
||||
@@ -424,17 +425,31 @@ public class HomeFragment extends BaseFragment implements
|
||||
private void checkInWithAPIAndDisplayTrackingActivity(CheckinData checkinData) {
|
||||
if (eventLeaderboardCompetitorCombnationAvailable(checkinData.eventId,
|
||||
checkinData.leaderboardName, checkinData.competitorId)) {
|
||||
ContentResolver cr = getActivity().getContentResolver();
|
||||
|
||||
ArrayList<ContentProviderOperation> opList = new
|
||||
ArrayList<ContentProviderOperation>();
|
||||
// inserting leaderboard first in order to get the ID.
|
||||
// This should be atomic, but couldn't get withValueBackReference to work yet.
|
||||
|
||||
ContentResolver cr = getActivity().getContentResolver();
|
||||
|
||||
ContentValues clv = new ContentValues();
|
||||
clv.put(Leaderboard.LEADERBOARD_NAME, checkinData.leaderboardName);
|
||||
clv.put(BaseColumns._ID, 0);
|
||||
cr.insert(Leaderboard.CONTENT_URI, clv);
|
||||
|
||||
opList.add(ContentProviderOperation.
|
||||
newInsert(Leaderboard.CONTENT_URI).withValues(clv).build());
|
||||
Cursor cur = cr.query(Leaderboard.CONTENT_URI, null, null, null, null);
|
||||
long lastLeaderboardId = 0;
|
||||
|
||||
if (cur.moveToLast())
|
||||
{
|
||||
lastLeaderboardId = cur.getLong(cur.getColumnIndex(BaseColumns._ID));
|
||||
}
|
||||
|
||||
cur.close();
|
||||
|
||||
// now, with the leaderboard id, insert event and competitor
|
||||
// todo: fix this so its atomic.
|
||||
|
||||
ArrayList<ContentProviderOperation> opList = new
|
||||
ArrayList<ContentProviderOperation>();
|
||||
|
||||
ContentValues cev = new ContentValues();
|
||||
cev.put(Event.EVENT_ID, checkinData.eventId);
|
||||
@@ -443,10 +458,10 @@ public class HomeFragment extends BaseFragment implements
|
||||
cev.put(Event.EVENT_DATE_END, Long.parseLong(checkinData.eventEndDateStr));
|
||||
cev.put(Event.EVENT_SERVER, checkinData.eventServerUrl);
|
||||
cev.put(Event.EVENT_IMAGE_URL, checkinData.eventFirstImageUrl);
|
||||
cev.put(Event.EVENT_LEADERBOARD_FK, 0);
|
||||
|
||||
cev.put(Event.EVENT_LEADERBOARD_FK, lastLeaderboardId);
|
||||
|
||||
opList.add(ContentProviderOperation.
|
||||
newInsert(Event.CONTENT_URI).withValues(cev).withValueBackReference(Event.EVENT_LEADERBOARD_FK, 0).build());
|
||||
newInsert(Event.CONTENT_URI).withValues(cev).build());
|
||||
|
||||
ContentValues ccv = new ContentValues();
|
||||
|
||||
@@ -455,12 +470,17 @@ public class HomeFragment extends BaseFragment implements
|
||||
ccv.put(Competitor.COMPETITOR_ID, checkinData.competitorId);
|
||||
ccv.put(Competitor.COMPETITOR_NATIONALITY, checkinData.competitorNationality);
|
||||
ccv.put(Competitor.COMPETITOR_SAIL_ID, checkinData.competitorSailId);
|
||||
ccv.put(Competitor.COMPETITOR_LEADERBOARD_FK, 0);
|
||||
ccv.put(Competitor.COMPETITOR_LEADERBOARD_FK, lastLeaderboardId);
|
||||
|
||||
opList.add(ContentProviderOperation.
|
||||
newInsert(Competitor.CONTENT_URI).withValues(ccv).withValueBackReference(Competitor.COMPETITOR_LEADERBOARD_FK, 0).build());
|
||||
newInsert(Competitor.CONTENT_URI).withValues(ccv).build());
|
||||
|
||||
try {
|
||||
for (ContentProviderOperation op: opList)
|
||||
{
|
||||
System.out.println("** INSERT: " + op);
|
||||
}
|
||||
|
||||
cr.applyBatch(AnalyticsContract.CONTENT_AUTHORITY, opList);
|
||||
} catch (RemoteException e1) {
|
||||
ExLog.e(getActivity(), TAG, "Batch insert failed: " + e1.getMessage());
|
||||
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
package com.sap.sailing.android.tracking.app.utils;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
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.Event;
|
||||
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Leaderboard;
|
||||
|
||||
public class SqlDebugHelper {
|
||||
|
||||
static final public String TAG = SqlDebugHelper.class.getName();
|
||||
|
||||
public static void dumpAllTablesToConsole(Context context)
|
||||
{
|
||||
ExLog.w(context, TAG, "--- PRINT ALL SQL" );
|
||||
ExLog.w(context, TAG, "+++ LEADERBOARDS +++");
|
||||
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
Cursor c1 = cr.query(Leaderboard.CONTENT_URI, null, null, null, null);
|
||||
|
||||
while (c1.moveToNext())
|
||||
{
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("_ID: " + c1.getString(c1.getColumnIndex(BaseColumns._ID)) + ", ");
|
||||
sb.append("NAME: " + c1.getString(c1.getColumnIndex(Leaderboard.LEADERBOARD_NAME)) + "\n");
|
||||
ExLog.w(context, TAG, "Leaderboard: " + sb.toString());
|
||||
}
|
||||
|
||||
ExLog.w(context, TAG, "+++ EVENTS +++");
|
||||
|
||||
c1.close();
|
||||
|
||||
Cursor c2 = cr.query(Event.CONTENT_URI, null, null, null, null);
|
||||
|
||||
while (c2.moveToNext())
|
||||
{
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("_ID: " + c2.getString(c2.getColumnIndex(BaseColumns._ID)) + ", ");
|
||||
sb.append("ID: " + c2.getString(c2.getColumnIndex(Event.EVENT_ID)) + ", ");
|
||||
sb.append("NAME: " + c2.getString(c2.getColumnIndex(Event.EVENT_NAME)) + ", ");
|
||||
sb.append("DATE START: " + c2.getString(c2.getColumnIndex(Event.EVENT_DATE_START)) + ", ");
|
||||
sb.append("DATE END: " + c2.getString(c2.getColumnIndex(Event.EVENT_DATE_END)) + ", ");
|
||||
sb.append("IMAGE-URL: " + c2.getString(c2.getColumnIndex(Event.EVENT_IMAGE_URL)) + ", ");
|
||||
sb.append("SERVER: " + c2.getString(c2.getColumnIndex(Event.EVENT_SERVER)) + "\n");
|
||||
|
||||
ExLog.w(context, TAG, "Event: " + sb.toString());
|
||||
}
|
||||
|
||||
ExLog.w(context, TAG, "+++ COMPETITORS +++");
|
||||
|
||||
c2.close();
|
||||
|
||||
Cursor c3 = cr.query(Competitor.CONTENT_URI, null, null, null, null);
|
||||
|
||||
while (c3.moveToNext())
|
||||
{
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("_ID: " + c3.getString(c3.getColumnIndex(BaseColumns._ID)) + ", ");
|
||||
sb.append("ID: " + c3.getString(c3.getColumnIndex(Competitor.COMPETITOR_ID)) + ", ");
|
||||
sb.append("DISPLAY NAME: " + c3.getString(c3.getColumnIndex(Competitor.COMPETITOR_DISPLAY_NAME)) + ", ");
|
||||
sb.append("NATIONALITY: " + c3.getString(c3.getColumnIndex(Competitor.COMPETITOR_NATIONALITY)) + ", ");
|
||||
sb.append("COUNTRY CODE: " + c3.getString(c3.getColumnIndex(Competitor.COMPETITOR_COUNTRY_CODE)) + ", ");
|
||||
sb.append("SAIL-ID: " + c3.getString(c3.getColumnIndex(Competitor.COMPETITOR_SAIL_ID)) + "\n");
|
||||
|
||||
ExLog.w(context, TAG, "Competitor: " + sb.toString());
|
||||
}
|
||||
|
||||
c3.close();
|
||||
|
||||
ExLog.w(context, TAG, "--- END OF SQL PRINTOUT" );
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user