Skip to content

Commit

Permalink
add content provider for categories
Browse files Browse the repository at this point in the history
  • Loading branch information
mpao committed May 31, 2018
1 parent 42d791e commit f9c7e93
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import android.net.Uri;
import android.support.annotation.NonNull;
import io.github.mpao.florencearchitectures.R;
import static io.github.mpao.florencearchitectures.models.databases.AppContract.AppContractElement.CATEGORY;
import static io.github.mpao.florencearchitectures.models.databases.AppContract.AppContractElement.CONTENT_URI;
import static io.github.mpao.florencearchitectures.models.databases.AppContract.AppContractElement.BUILDINGS_TABLE;

Expand All @@ -19,14 +20,16 @@ public class AppContentProvider extends ContentProvider {
DbHelper dbHelper;
Context context;
// use always the conventional mode: 100,200... for directories, and 101,102... for items in that direcotry
public static final int BUILDINGS = 100;
public static final int ELEMENT = 101;
public static final int BUILDINGS = 100;
public static final int ELEMENT = 101;
public static final int CATEGORIES = 200;
public static final UriMatcher URI_MATCHER = buildUriMatcher();
public static UriMatcher buildUriMatcher(){

UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(AppContract.AUTHORITY, AppContract.PATH, BUILDINGS);
uriMatcher.addURI(AppContract.AUTHORITY, AppContract.PATH + "/#", ELEMENT);
uriMatcher.addURI(AppContract.AUTHORITY, AppContract.ALL_BUILDINGS, BUILDINGS);
uriMatcher.addURI(AppContract.AUTHORITY, AppContract.CATEGORIES, CATEGORIES);
uriMatcher.addURI(AppContract.AUTHORITY, AppContract.ALL_BUILDINGS + "/#", ELEMENT);
return uriMatcher;

}
Expand Down Expand Up @@ -90,6 +93,18 @@ public Cursor query(@NonNull Uri uri, String[] projection, String selection, Str
null,
"id="+uri.getPathSegments().get(1),
sortOrder);
break;
case CATEGORIES:
cursor = db.query(
BUILDINGS_TABLE,
new String[] {CATEGORY,"count(*) AS count"},
selection,
selectionArgs,
CATEGORY,
null,
CATEGORY
);
break;
default:
throw new UnsupportedOperationException(context.getString(R.string.network_error));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ public class AppContract {
*/
public static final String AUTHORITY = "io.github.mpao.florencearchitectures";
public static final Uri BASE_CONTENT_URI = Uri.parse("content://" + AUTHORITY);
public static final String PATH = "buildings";
public static final String ALL_BUILDINGS = "buildings";
public static final String CATEGORIES = "categories";

private AppContract(){}

Expand All @@ -20,7 +21,8 @@ public static class AppContractElement {

// define the content uri for the table
// for a single element, append che # to identify the building's ID
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH).build();
public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(ALL_BUILDINGS).build();
public static final Uri CATEGORY_URI = BASE_CONTENT_URI.buildUpon().appendPath(CATEGORIES).build();

public static final String BUILDINGS_TABLE = "buildings";
public static final String ID = "id";
Expand Down

0 comments on commit f9c7e93

Please sign in to comment.