From c54be0884502c8cc4fdba1721199653210d6bb1a Mon Sep 17 00:00:00 2001 From: hismaeel Date: Wed, 21 Feb 2018 13:39:26 -0500 Subject: [PATCH 1/2] Fixed Hard Coded Column issue. #1119 --- .../nrw/commons/category/CategoryDao.java | 8 ++-- .../contributions/ContributionDao.java | 40 +++++++++++-------- .../modifications/ModifierSequenceDao.java | 6 +-- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java index e63b04c26..7d8504e61 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java @@ -108,10 +108,10 @@ public class CategoryDao { Category fromCursor(Cursor cursor) { // Hardcoding column positions! return new Category( - CategoryContentProvider.uriForId(cursor.getInt(0)), - cursor.getString(1), - new Date(cursor.getLong(2)), - cursor.getInt(3) + CategoryContentProvider.uriForId(cursor.getInt(cursor.getColumnIndex(Table.COLUMN_ID))), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_NAME)), + new Date(cursor.getLong(cursor.getColumnIndex(Table.COLUMN_LAST_USED))), + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_TIMES_USED)) ); } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionDao.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionDao.java index 9d3038e03..079cf6477 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionDao.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionDao.java @@ -8,6 +8,7 @@ import android.net.Uri; import android.os.RemoteException; import android.support.annotation.Nullable; import android.text.TextUtils; +import android.util.Log; import java.util.Date; @@ -115,23 +116,30 @@ public class ContributionDao { // Hardcoding column positions! //Check that cursor has a value to avoid CursorIndexOutOfBoundsException if (cursor.getCount() > 0) { + int index; + if (cursor.getColumnIndex(Table.COLUMN_LICENSE) == -1){ + index = 15; + } else { + index = cursor.getColumnIndex(Table.COLUMN_LICENSE); + } return new Contribution( - uriForId(cursor.getInt(0)), - cursor.getString(1), - parseUri(cursor.getString(2)), - cursor.getString(3), - parseTimestamp(cursor.getLong(4)), - cursor.getInt(5), - cursor.getLong(6), - parseTimestamp(cursor.getLong(7)), - cursor.getLong(8), - cursor.getString(9), - cursor.getString(10), - cursor.getString(11), - cursor.getInt(12) == 1, - cursor.getInt(13), - cursor.getInt(14), - cursor.getString(15)); + uriForId(cursor.getInt(cursor.getColumnIndex(Table.COLUMN_ID))), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_FILENAME)), + parseUri(cursor.getString(cursor.getColumnIndex(Table.COLUMN_LOCAL_URI))), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_IMAGE_URL)), + parseTimestamp(cursor.getLong(cursor.getColumnIndex(Table.COLUMN_TIMESTAMP))), + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_STATE)), + cursor.getLong(cursor.getColumnIndex(Table.COLUMN_LENGTH)), + parseTimestamp(cursor.getLong(cursor.getColumnIndex(Table.COLUMN_UPLOADED))), + cursor.getLong(cursor.getColumnIndex(Table.COLUMN_TRANSFERRED)), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_SOURCE)), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_DESCRIPTION)), + cursor.getString(cursor.getColumnIndex(Table.COLUMN_CREATOR)), + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_MULTIPLE)) == 1, + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_WIDTH)), + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_HEIGHT)), + cursor.getString(index) + ); } return null; diff --git a/app/src/main/java/fr/free/nrw/commons/modifications/ModifierSequenceDao.java b/app/src/main/java/fr/free/nrw/commons/modifications/ModifierSequenceDao.java index a23079b5e..957656a24 100644 --- a/app/src/main/java/fr/free/nrw/commons/modifications/ModifierSequenceDao.java +++ b/app/src/main/java/fr/free/nrw/commons/modifications/ModifierSequenceDao.java @@ -54,12 +54,12 @@ public class ModifierSequenceDao { // Hardcoding column positions! ModifierSequence ms; try { - ms = new ModifierSequence(Uri.parse(cursor.getString(1)), - new JSONObject(cursor.getString(2))); + ms = new ModifierSequence(Uri.parse(cursor.getString(cursor.getColumnIndex(Table.COLUMN_MEDIA_URI))), + new JSONObject(cursor.getString(cursor.getColumnIndex(Table.COLUMN_DATA)))); } catch (JSONException e) { throw new RuntimeException(e); } - ms.setContentUri( ModificationsContentProvider.uriForId(cursor.getInt(0))); + ms.setContentUri( ModificationsContentProvider.uriForId(cursor.getInt(cursor.getColumnIndex(Table.COLUMN_ID)))); return ms; } From 3e0e533882dcab99459b82d7f5db5f27fb9318ca Mon Sep 17 00:00:00 2001 From: Hassan Date: Wed, 21 Feb 2018 14:46:24 -0500 Subject: [PATCH 2/2] White Spacing --- .../main/java/fr/free/nrw/commons/category/CategoryDao.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java index 7d8504e61..a5202046b 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java @@ -109,9 +109,9 @@ public class CategoryDao { // Hardcoding column positions! return new Category( CategoryContentProvider.uriForId(cursor.getInt(cursor.getColumnIndex(Table.COLUMN_ID))), - cursor.getString(cursor.getColumnIndex(Table.COLUMN_NAME)), - new Date(cursor.getLong(cursor.getColumnIndex(Table.COLUMN_LAST_USED))), - cursor.getInt(cursor.getColumnIndex(Table.COLUMN_TIMES_USED)) + cursor.getString(cursor.getColumnIndex(Table.COLUMN_NAME)), + new Date(cursor.getLong(cursor.getColumnIndex(Table.COLUMN_LAST_USED))), + cursor.getInt(cursor.getColumnIndex(Table.COLUMN_TIMES_USED)) ); }