mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-23 22:19:13 +00:00
Null check for database cursors in Database helper
This commit is contained in:
+67
-53
@@ -43,13 +43,16 @@ public class DatabaseHelper {
|
||||
List<String> checkinUrls = new ArrayList<>();
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
Cursor cursor = cr.query(CheckinUri.CONTENT_URI, null, null, null, null);
|
||||
cursor.moveToFirst();
|
||||
while (!cursor.isAfterLast()) {
|
||||
String checkinUrl = cursor.getString(cursor.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
if (!checkinUrls.contains(checkinUrl)){
|
||||
checkinUrls.add(checkinUrl);
|
||||
if (cursor != null) {
|
||||
cursor.moveToFirst();
|
||||
while (!cursor.isAfterLast()) {
|
||||
String checkinUrl = cursor.getString(cursor.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
if (!checkinUrls.contains(checkinUrl)) {
|
||||
checkinUrls.add(checkinUrl);
|
||||
}
|
||||
cursor.moveToNext();
|
||||
}
|
||||
cursor.moveToNext();
|
||||
cursor.close();
|
||||
}
|
||||
return checkinUrls;
|
||||
}
|
||||
@@ -60,9 +63,11 @@ public class DatabaseHelper {
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
Cursor cursor = cr.query(Event.CONTENT_URI, null, Event.EVENT_CHECKIN_DIGEST + " = ?",
|
||||
new String[] { checkinDigest }, null);
|
||||
cursor.moveToFirst();
|
||||
result = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
cursor.close();
|
||||
if (cursor != null) {
|
||||
cursor.moveToFirst();
|
||||
result = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
cursor.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -73,16 +78,18 @@ public class DatabaseHelper {
|
||||
String projectionStr = "events._id ,leaderboards.leaderboard_name, events.event_id,"
|
||||
+ " events.event_name, competitors.competitor_id";
|
||||
String[] projection = projectionStr.split(",");
|
||||
Cursor cursor = cr.query(EventLeaderboardCompetitorJoined.CONTENT_URI, projection, "events."
|
||||
+ Event.EVENT_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (cursor.moveToFirst()) {
|
||||
result.name = cursor.getString(cursor.getColumnIndex("event_name"));
|
||||
result.leaderboardName = cursor.getString(cursor.getColumnIndex("leaderboard_name"));
|
||||
result.competitorId = cursor.getString(cursor.getColumnIndex("competitor_id"));
|
||||
result.id = cursor.getString(cursor.getColumnIndex("event_id"));
|
||||
}
|
||||
Cursor cursor = cr.query(EventLeaderboardCompetitorJoined.CONTENT_URI, projection,
|
||||
"events." + Event.EVENT_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (cursor != null) {
|
||||
if (cursor.moveToFirst()) {
|
||||
result.name = cursor.getString(cursor.getColumnIndex("event_name"));
|
||||
result.leaderboardName = cursor.getString(cursor.getColumnIndex("leaderboard_name"));
|
||||
result.competitorId = cursor.getString(cursor.getColumnIndex("competitor_id"));
|
||||
result.id = cursor.getString(cursor.getColumnIndex("event_id"));
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
cursor.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -92,18 +99,19 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor cursor = context.getContentResolver().query(Event.CONTENT_URI, null,
|
||||
Event.EVENT_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (cursor != null) {
|
||||
if (cursor.moveToFirst()) {
|
||||
event.name = cursor.getString(cursor.getColumnIndex(Event.EVENT_NAME));
|
||||
event.imageUrl = cursor.getString(cursor.getColumnIndex(Event.EVENT_IMAGE_URL));
|
||||
event.startMillis = cursor.getLong(cursor.getColumnIndex(Event.EVENT_DATE_START));
|
||||
event.endMillis = cursor.getLong(cursor.getColumnIndex(Event.EVENT_DATE_END));
|
||||
event.server = cursor.getString(cursor.getColumnIndex(Event.EVENT_SERVER));
|
||||
event.rowId = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
event.id = cursor.getString(cursor.getColumnIndex(Event.EVENT_ID));
|
||||
}
|
||||
|
||||
if (cursor.moveToFirst()) {
|
||||
event.name = cursor.getString(cursor.getColumnIndex(Event.EVENT_NAME));
|
||||
event.imageUrl = cursor.getString(cursor.getColumnIndex(Event.EVENT_IMAGE_URL));
|
||||
event.startMillis = cursor.getLong(cursor.getColumnIndex(Event.EVENT_DATE_START));
|
||||
event.endMillis = cursor.getLong(cursor.getColumnIndex(Event.EVENT_DATE_END));
|
||||
event.server = cursor.getString(cursor.getColumnIndex(Event.EVENT_SERVER));
|
||||
event.rowId = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
event.id = cursor.getString(cursor.getColumnIndex(Event.EVENT_ID));
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -113,15 +121,17 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor cursor = context.getContentResolver().query(Competitor.CONTENT_URI, null,
|
||||
Competitor.COMPETITOR_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (cursor.moveToFirst()) {
|
||||
competitor.name = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_DISPLAY_NAME));
|
||||
competitor.countryCode = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_COUNTRY_CODE));
|
||||
competitor.sailId = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_SAIL_ID));
|
||||
competitor.rowId = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
competitor.id = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_ID));
|
||||
}
|
||||
if (cursor != null) {
|
||||
if (cursor.moveToFirst()) {
|
||||
competitor.name = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_DISPLAY_NAME));
|
||||
competitor.countryCode = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_COUNTRY_CODE));
|
||||
competitor.sailId = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_SAIL_ID));
|
||||
competitor.rowId = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
|
||||
competitor.id = cursor.getString(cursor.getColumnIndex(Competitor.COMPETITOR_ID));
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
cursor.close();
|
||||
}
|
||||
return competitor;
|
||||
}
|
||||
|
||||
@@ -131,12 +141,14 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor lc = context.getContentResolver().query(Leaderboard.CONTENT_URI, null,
|
||||
Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (lc.moveToFirst()) {
|
||||
leaderboard.rowId = lc.getInt(lc.getColumnIndex(BaseColumns._ID));
|
||||
leaderboard.name = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_NAME));
|
||||
}
|
||||
if (lc != null) {
|
||||
if (lc.moveToFirst()) {
|
||||
leaderboard.rowId = lc.getInt(lc.getColumnIndex(BaseColumns._ID));
|
||||
leaderboard.name = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_NAME));
|
||||
}
|
||||
|
||||
lc.close();
|
||||
lc.close();
|
||||
}
|
||||
|
||||
return leaderboard;
|
||||
}
|
||||
@@ -147,12 +159,14 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor uc = context.getContentResolver().query(CheckinUri.CONTENT_URI, null,
|
||||
CheckinUri.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (uc.moveToFirst()) {
|
||||
checkinUrlInfo.rowId = uc.getInt(uc.getColumnIndex(BaseColumns._ID));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
}
|
||||
if (uc != null) {
|
||||
if (uc.moveToFirst()) {
|
||||
checkinUrlInfo.rowId = uc.getInt(uc.getColumnIndex(BaseColumns._ID));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
}
|
||||
|
||||
uc.close();
|
||||
uc.close();
|
||||
}
|
||||
|
||||
return checkinUrlInfo;
|
||||
}
|
||||
@@ -231,7 +245,6 @@ public class DatabaseHelper {
|
||||
|
||||
ccuv.put(CheckinUri.CHECKIN_URI_VALUE, checkinURL.urlString);
|
||||
ccuv.put(CheckinUri.CHECKIN_URI_CHECKIN_DIGEST, checkinURL.checkinDigest);
|
||||
cr.insert(CheckinUri.CONTENT_URI, ccuv);
|
||||
|
||||
opList.add(ContentProviderOperation.newInsert(CheckinUri.CONTENT_URI).withValues(ccuv).build());
|
||||
|
||||
@@ -250,17 +263,18 @@ public class DatabaseHelper {
|
||||
*
|
||||
* @param checkinDigest
|
||||
* SHA-256 digest of QR-code string
|
||||
* @param leaderboardName
|
||||
* @param competitorId
|
||||
* @return
|
||||
*/
|
||||
public boolean eventLeaderboardCompetitorCombnationAvailable(Context context, String checkinDigest) {
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
String sel = "leaderboards.leaderboard_checkin_digest = ? AND competitors.competitor_checkin_digest = ? AND events.event_checkin_digest = ?";
|
||||
Cursor cursor = cr.query(AnalyticsContract.EventLeaderboardCompetitorJoined.CONTENT_URI, null, sel,
|
||||
new String[] { checkinDigest, checkinDigest, checkinDigest }, null);
|
||||
int count = cursor.getCount();
|
||||
cursor.close();
|
||||
Cursor cursor = cr.query(AnalyticsContract.EventLeaderboardCompetitorJoined.CONTENT_URI, null, sel, new String[] { checkinDigest,
|
||||
checkinDigest, checkinDigest }, null);
|
||||
int count = 0;
|
||||
if (cursor != null) {
|
||||
count = cursor.getCount();
|
||||
cursor.close();
|
||||
}
|
||||
return count == 0;
|
||||
}
|
||||
|
||||
|
||||
+50
-40
@@ -47,13 +47,15 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor lc = context.getContentResolver().query(Leaderboard.CONTENT_URI, null,
|
||||
Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (lc.moveToFirst()) {
|
||||
leaderboard.rowId = lc.getInt(lc.getColumnIndex(BaseColumns._ID));
|
||||
leaderboard.name = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_NAME));
|
||||
leaderboard.serverUrl = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_SERVER_URL));
|
||||
}
|
||||
if (lc != null) {
|
||||
if (lc.moveToFirst()) {
|
||||
leaderboard.rowId = lc.getInt(lc.getColumnIndex(BaseColumns._ID));
|
||||
leaderboard.name = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_NAME));
|
||||
leaderboard.serverUrl = lc.getString(lc.getColumnIndex(Leaderboard.LEADERBOARD_SERVER_URL));
|
||||
}
|
||||
|
||||
lc.close();
|
||||
lc.close();
|
||||
}
|
||||
|
||||
return leaderboard;
|
||||
}
|
||||
@@ -64,51 +66,57 @@ public class DatabaseHelper {
|
||||
|
||||
Cursor uc = context.getContentResolver().query(CheckinUri.CONTENT_URI, null,
|
||||
CheckinUri.CHECKIN_URI_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
if (uc.moveToFirst()) {
|
||||
checkinUrlInfo.rowId = uc.getInt(uc.getColumnIndex(BaseColumns._ID));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
}
|
||||
if (uc != null) {
|
||||
if (uc.moveToFirst()) {
|
||||
checkinUrlInfo.rowId = uc.getInt(uc.getColumnIndex(BaseColumns._ID));
|
||||
checkinUrlInfo.urlString = uc.getString(uc.getColumnIndex(CheckinUri.CHECKIN_URI_VALUE));
|
||||
}
|
||||
|
||||
uc.close();
|
||||
uc.close();
|
||||
}
|
||||
|
||||
return checkinUrlInfo;
|
||||
}
|
||||
|
||||
public List<MarkInfo> getMarks(Context context, String checkinDigest) {
|
||||
List<MarkInfo> marks = new ArrayList<MarkInfo>();
|
||||
List<MarkInfo> marks = new ArrayList<>();
|
||||
Cursor mc = context.getContentResolver().query(Mark.CONTENT_URI, null,
|
||||
Mark.MARK_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
mc.moveToFirst();
|
||||
while (!mc.isAfterLast()) {
|
||||
MarkInfo markInfo = new MarkInfo();
|
||||
markInfo.setCheckinDigest(mc.getString((mc.getColumnIndex(Mark.MARK_CHECKIN_DIGEST))));
|
||||
markInfo.setId(mc.getString((mc.getColumnIndex(Mark.MARK_ID))));
|
||||
markInfo.setName(mc.getString((mc.getColumnIndex(Mark.MARK_NAME))));
|
||||
markInfo.setType(mc.getString((mc.getColumnIndex(Mark.MARK_TYPE))));
|
||||
markInfo.setClassName(mc.getString((mc.getColumnIndex(Mark.MARK_CLASS_NAME))));
|
||||
marks.add(markInfo);
|
||||
mc.moveToNext();
|
||||
if (mc != null) {
|
||||
mc.moveToFirst();
|
||||
while (!mc.isAfterLast()) {
|
||||
MarkInfo markInfo = new MarkInfo();
|
||||
markInfo.setCheckinDigest(mc.getString((mc.getColumnIndex(Mark.MARK_CHECKIN_DIGEST))));
|
||||
markInfo.setId(mc.getString((mc.getColumnIndex(Mark.MARK_ID))));
|
||||
markInfo.setName(mc.getString((mc.getColumnIndex(Mark.MARK_NAME))));
|
||||
markInfo.setType(mc.getString((mc.getColumnIndex(Mark.MARK_TYPE))));
|
||||
markInfo.setClassName(mc.getString((mc.getColumnIndex(Mark.MARK_CLASS_NAME))));
|
||||
marks.add(markInfo);
|
||||
mc.moveToNext();
|
||||
}
|
||||
mc.close();
|
||||
}
|
||||
mc.close();
|
||||
return marks;
|
||||
}
|
||||
|
||||
public List<MarkPingInfo> getMarkPings(Context context, String markID) {
|
||||
List<MarkPingInfo> marks = new ArrayList<MarkPingInfo>();
|
||||
List<MarkPingInfo> marks = new ArrayList<>();
|
||||
Cursor mpc = context.getContentResolver().query(MarkPing.CONTENT_URI, null,
|
||||
MarkPing.MARK_ID + " = ?", new String[] { markID }, MarkPing.MARK_PING_TIMESTAMP + " DESC");
|
||||
mpc.moveToFirst();
|
||||
while (!mpc.isAfterLast()) {
|
||||
MarkPingInfo markPingInfo = new MarkPingInfo();
|
||||
markPingInfo.setMarkId(markID);
|
||||
markPingInfo.setTimestamp(mpc.getInt((mpc.getColumnIndex(MarkPing.MARK_PING_TIMESTAMP))));
|
||||
markPingInfo.setLongitude(mpc.getString((mpc.getColumnIndex(MarkPing.MARK_PING_LONGITUDE))));
|
||||
markPingInfo.setLatitude(mpc.getString((mpc.getColumnIndex(MarkPing.MARK_PING_LATITUDE))));
|
||||
markPingInfo.setAccuracy(mpc.getDouble((mpc.getColumnIndex(MarkPing.MARK_PING_ACCURACY))));
|
||||
marks.add(markPingInfo);
|
||||
mpc.moveToNext();
|
||||
if (mpc != null) {
|
||||
mpc.moveToFirst();
|
||||
while (!mpc.isAfterLast()) {
|
||||
MarkPingInfo markPingInfo = new MarkPingInfo();
|
||||
markPingInfo.setMarkId(markID);
|
||||
markPingInfo.setTimestamp(mpc.getInt((mpc.getColumnIndex(MarkPing.MARK_PING_TIMESTAMP))));
|
||||
markPingInfo.setLongitude(mpc.getString((mpc.getColumnIndex(MarkPing.MARK_PING_LONGITUDE))));
|
||||
markPingInfo.setLatitude(mpc.getString((mpc.getColumnIndex(MarkPing.MARK_PING_LATITUDE))));
|
||||
markPingInfo.setAccuracy(mpc.getDouble((mpc.getColumnIndex(MarkPing.MARK_PING_ACCURACY))));
|
||||
marks.add(markPingInfo);
|
||||
mpc.moveToNext();
|
||||
}
|
||||
mpc.close();
|
||||
}
|
||||
mpc.close();
|
||||
return marks;
|
||||
}
|
||||
|
||||
@@ -212,7 +220,7 @@ public class DatabaseHelper {
|
||||
public void storeMarkPing(Context context, MarkPingInfo markPing) throws GeneralDatabaseHelperException {
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
deletePingsFromDataBase(context, markPing.getMarkId());
|
||||
ArrayList<ContentProviderOperation> opList = new ArrayList<ContentProviderOperation>();
|
||||
ArrayList<ContentProviderOperation> opList = new ArrayList<>();
|
||||
ContentValues mpcv = new ContentValues();
|
||||
mpcv.put(MarkPing.MARK_ID, markPing.getMarkId());
|
||||
mpcv.put(MarkPing.MARK_PING_LATITUDE, markPing.getLatitude());
|
||||
@@ -234,11 +242,13 @@ public class DatabaseHelper {
|
||||
public boolean markLeaderboardCombnationAvailable(Context context, String checkinDigest) {
|
||||
|
||||
Cursor lc = context.getContentResolver().query(Leaderboard.CONTENT_URI, null,
|
||||
Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " = ?", new String[] { checkinDigest }, null);
|
||||
int count = 0;
|
||||
if (lc != null) {
|
||||
count = lc.getCount();
|
||||
|
||||
int count = lc.getCount();
|
||||
|
||||
lc.close();
|
||||
lc.close();
|
||||
}
|
||||
return count == 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user