/*
* Copyright (c) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.tvleanback.model;
import android.database.Cursor;
import android.support.v17.leanback.database.CursorMapper;
import com.example.android.tvleanback.data.VideoContract;
/**
* VideoCursorMapper maps a database Cursor to a Video object.
*/
public final class VideoCursorMapper extends CursorMapper {
private static int idIndex;
private static int nameIndex;
private static int descIndex;
private static int videoUrlIndex;
private static int bgImageUrlIndex;
private static int cardImageUrlIndex;
private static int studioIndex;
private static int categoryIndex;
@Override
protected void bindColumns(Cursor cursor) {
idIndex = cursor.getColumnIndex(VideoContract.VideoEntry._ID);
nameIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_NAME);
descIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_DESC);
videoUrlIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_VIDEO_URL);
bgImageUrlIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_BG_IMAGE_URL);
cardImageUrlIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_CARD_IMG);
studioIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_STUDIO);
categoryIndex = cursor.getColumnIndex(VideoContract.VideoEntry.COLUMN_CATEGORY);
}
@Override
protected Object bind(Cursor cursor) {
// Get the values of the video.
long id = cursor.getLong(idIndex);
String category = cursor.getString(categoryIndex);
String title = cursor.getString(nameIndex);
String desc = cursor.getString(descIndex);
String videoUrl = cursor.getString(videoUrlIndex);
String bgImageUrl = cursor.getString(bgImageUrlIndex);
String cardImageUrl = cursor.getString(cardImageUrlIndex);
String studio = cursor.getString(studioIndex);
// Build a Video object to be processed.
return new Video.VideoBuilder()
.id(id)
.title(title)
.category(category)
.description(desc)
.videoUrl(videoUrl)
.bgImageUrl(bgImageUrl)
.cardImageUrl(cardImageUrl)
.studio(studio)
.build();
}
}