From cb348f70f490b3b0657160e1a4fa23f6f55b4017 Mon Sep 17 00:00:00 2001 From: Erik Johansson Date: Sat, 22 Sep 2018 22:56:05 +0200 Subject: [PATCH] Simplify content provider URIs and remove the variant to get a single user only --- .../com/health/openscale/core/OpenScale.java | 7 +--- .../core/database/ScaleDatabaseProvider.java | 33 ++++++------------- .../core/database/ScaleMeasurementDAO.java | 2 +- .../openscale/core/database/ScaleUserDAO.java | 7 +--- 4 files changed, 13 insertions(+), 36 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 53a5f2cb..619d238b 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -612,13 +612,8 @@ public class OpenScale { return userDAO.selectAll(); } - // As getScaleUser(), but as a Cursor for export via a Content Provider. - public Cursor getScaleUserCursor(int userId) { - return userDAO.select(userId); - } - // As getScaleMeasurementList(), but as a Cursor for export via a Content Provider. - public Cursor getScaleMeasurementListCursor(int userId) { + public Cursor getScaleMeasurementListCursor(long userId) { return measurementDAO.selectAll(userId); } } diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java index 3087f676..c1baef8a 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java @@ -15,6 +15,7 @@ */ package com.health.openscale.core.database; +import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.UriMatcher; @@ -37,9 +38,7 @@ import com.health.openscale.core.OpenScale; * The following URIs are supported: * */ @@ -49,14 +48,12 @@ public class ScaleDatabaseProvider extends android.content.ContentProvider { private static final String AUTHORITY = BuildConfig.APPLICATION_ID + ".provider"; private static final int MATCH_TYPE_USER_LIST = 1; - private static final int MATCH_TYPE_USER_ENTRY = 2; - private static final int MATCH_TYPE_USER_MEASUREMENTS = 3; + private static final int MATCH_TYPE_MEASUREMENT_LIST = 2; static { - uriMatcher.addURI(AUTHORITY, "user", MATCH_TYPE_USER_LIST); - uriMatcher.addURI(AUTHORITY, "user/#", MATCH_TYPE_USER_ENTRY); - uriMatcher.addURI(AUTHORITY, "user/#/measurements", MATCH_TYPE_USER_MEASUREMENTS); + uriMatcher.addURI(AUTHORITY, "users", MATCH_TYPE_USER_LIST); + uriMatcher.addURI(AUTHORITY, "measurements/#", MATCH_TYPE_MEASUREMENT_LIST); } @Override @@ -65,15 +62,10 @@ public class ScaleDatabaseProvider extends android.content.ContentProvider { case MATCH_TYPE_USER_LIST: return "vnd.android.cursor.dir/vnd." + AUTHORITY + ".user"; - case MATCH_TYPE_USER_ENTRY: - return "vnd.android.cursor.item/vnd." + AUTHORITY + ".user"; - - case MATCH_TYPE_USER_MEASUREMENTS: - return "vnd.android.cursor.item/vnd." + AUTHORITY + ".measurement"; - - default: - return null; + case MATCH_TYPE_MEASUREMENT_LIST: + return "vnd.android.cursor.dir/vnd." + AUTHORITY + ".measurement"; } + return null; } @Override @@ -92,14 +84,9 @@ public class ScaleDatabaseProvider extends android.content.ContentProvider { cursor = OpenScale.getInstance().getScaleUserListCursor(); break; - case MATCH_TYPE_USER_ENTRY: - cursor = OpenScale.getInstance().getScaleUserCursor( - Integer.valueOf(uri.getPathSegments().get(1))); - break; - - case MATCH_TYPE_USER_MEASUREMENTS: + case MATCH_TYPE_MEASUREMENT_LIST: cursor = OpenScale.getInstance().getScaleMeasurementListCursor( - Integer.valueOf(uri.getPathSegments().get(1))); + ContentUris.parseId(uri)); break; default: diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java index cdb09027..431bec69 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java @@ -68,5 +68,5 @@ public interface ScaleMeasurementDAO { // selectAll() is equivalent to getAll(), but returns a Cursor, for exposing via a ContentProvider. @Query("SELECT id as _ID, datetime, weight, fat, water, muscle FROM scaleMeasurements WHERE userId = :userId AND enabled = 1 ORDER BY datetime DESC") - Cursor selectAll(int userId); + Cursor selectAll(long userId); } diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDAO.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDAO.java index 3898681d..479e1ac9 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDAO.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDAO.java @@ -47,12 +47,7 @@ public interface ScaleUserDAO { @Delete void delete(ScaleUser user); - // selectAll() and select() are equivalent to getall() and get(), but return a Cursor, - // for exposing via a ContentProvider. + // selectAll() is similar to getAll(), but return a Cursor, for exposing via a ContentProvider. @Query("SELECT id as _ID, username, birthday, bodyHeight, gender, activityLevel FROM scaleUsers") Cursor selectAll(); - - @Query("SELECT * FROM scaleUsers WHERE id = :id") - Cursor select(int id); - }