package com.boardgamegeek.provider; import android.content.ContentValues; import android.content.Context; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.text.TextUtils; import com.boardgamegeek.provider.BggContract.PlayerColors; import com.boardgamegeek.provider.BggDatabase.Tables; import com.boardgamegeek.util.SelectionBuilder; public class PlayersNameColorsProvider extends BaseProvider { @Override protected SelectionBuilder buildSimpleSelection(Uri uri) { String playerName = PlayerColors.getPlayerName(uri); return new SelectionBuilder().table(Tables.PLAYER_COLORS) .where(PlayerColors.PLAYER_TYPE + "=?", String.valueOf(PlayerColors.TYPE_PLAYER)) .where(PlayerColors.PLAYER_NAME + "=?", playerName); } @Override protected String getPath() { return BggContract.PATH_PLAYERS + "/*/" + BggContract.PATH_COLORS; } @Override protected String getDefaultSortOrder() { return PlayerColors.DEFAULT_SORT; } @Override protected String getType(Uri uri) { return PlayerColors.CONTENT_TYPE; } @Override protected Uri insert(Context context, SQLiteDatabase db, Uri uri, ContentValues values) { String playerName = PlayerColors.getPlayerName(uri); if (TextUtils.isEmpty(playerName)) { throw new SQLException("Missing player name."); } values.put(PlayerColors.PLAYER_TYPE, PlayerColors.TYPE_PLAYER); values.put(PlayerColors.PLAYER_NAME, playerName); db.insertOrThrow(Tables.PLAYER_COLORS, null, values); return PlayerColors.buildUserUri(playerName, values.getAsInteger(PlayerColors.PLAYER_COLOR_SORT_ORDER)); } }