package com.boardgamegeek.provider; import android.net.Uri; import android.text.TextUtils; import com.boardgamegeek.provider.BggContract.Plays; import com.boardgamegeek.provider.BggDatabase.Tables; import com.boardgamegeek.util.SelectionBuilder; public class PlaysProvider extends BasicProvider { @Override protected SelectionBuilder buildExpandedSelection(Uri uri) { SelectionBuilder builder = new SelectionBuilder(); if (BggContract.FRAGMENT_SIMPLE.equals(uri.getFragment())) { builder.table(Tables.PLAYS); } else { builder.table(Tables.PLAYS_JOIN_GAMES); } builder .mapToTable(Plays._ID, Tables.PLAYS) .mapToTable(Plays.PLAY_ID, Tables.PLAYS) .mapToTable(Plays.SYNC_TIMESTAMP, Tables.PLAYS) .mapAsSum(Plays.SUM_QUANTITY, Plays.QUANTITY) .mapAsMax(Plays.MAX_DATE, Plays.DATE); String groupBy = uri.getQueryParameter(BggContract.QUERY_KEY_GROUP_BY); if (!TextUtils.isEmpty(groupBy)) { builder.groupBy(groupBy); } return builder; } @Override protected String getDefaultSortOrder() { return Plays.DEFAULT_SORT; } @Override protected String getPath() { return BggContract.PATH_PLAYS; } @Override protected String getTable() { return Tables.PLAYS; } @Override protected String getType(Uri uri) { return Plays.CONTENT_TYPE; } }