1d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko/* 2d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Copyright (C) 2016 The Android Open Source Project 3d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * 4d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 5d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * you may not use this file except in compliance with the License. 6d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * You may obtain a copy of the License at 7d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * 8d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 9d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * 10d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Unless required by applicable law or agreed to in writing, software 11d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 12d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * See the License for the specific language governing permissions and 14d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * limitations under the License 15d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko */ 16d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 17d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkopackage com.android.tv.dvr.ui.list; 18d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 19d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport android.content.Context; 20d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport com.android.tv.data.Program; 21633eb826b8c97731dfc5ef12c7bf78a63734275dNick Chalkoimport com.android.tv.dvr.data.ScheduledRecording; 22633eb826b8c97731dfc5ef12c7bf78a63734275dNick Chalkoimport com.android.tv.dvr.data.ScheduledRecording.Builder; 23633eb826b8c97731dfc5ef12c7bf78a63734275dNick Chalkoimport com.android.tv.dvr.ui.DvrUiHelper; 24d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 2595961816a768da387f0b5523cf4363ace2044089Nick Chalko/** A class for the episodic program. */ 26633eb826b8c97731dfc5ef12c7bf78a63734275dNick Chalkoclass EpisodicProgramRow extends ScheduleRow { 27d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko private final String mInputId; 28d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko private final Program mProgram; 29d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 3095961816a768da387f0b5523cf4363ace2044089Nick Chalko public EpisodicProgramRow( 3195961816a768da387f0b5523cf4363ace2044089Nick Chalko String inputId, 3295961816a768da387f0b5523cf4363ace2044089Nick Chalko Program program, 3395961816a768da387f0b5523cf4363ace2044089Nick Chalko ScheduledRecording recording, 34d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko SchedulesHeaderRow headerRow) { 35d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko super(recording, headerRow); 36d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko mInputId = inputId; 37d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko mProgram = program; 38d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 39d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 4095961816a768da387f0b5523cf4363ace2044089Nick Chalko /** Returns the program. */ 41d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public Program getProgram() { 42d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram; 43d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 44d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 45d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 46d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getChannelId() { 47d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getChannelId(); 48d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 49d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 50d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 51d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getStartTimeMs() { 52d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getStartTimeUtcMillis(); 53d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 54d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 55d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 56d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getEndTimeMs() { 57d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getEndTimeUtcMillis(); 58d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 59d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 60d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 61d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public Builder createNewScheduleBuilder() { 62d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return ScheduledRecording.builder(mInputId, mProgram); 63d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 64d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 65d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 66d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String getProgramTitleWithEpisodeNumber(Context context) { 67633eb826b8c97731dfc5ef12c7bf78a63734275dNick Chalko return DvrUiHelper.getStyledTitleWithEpisodeNumber(context, mProgram, 0).toString(); 68d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 69d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 70d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 71d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String getEpisodeDisplayTitle(Context context) { 72d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getEpisodeDisplayTitle(context); 73d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 74d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 75d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 76d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public boolean matchSchedule(ScheduledRecording schedule) { 77d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return schedule.getType() == ScheduledRecording.TYPE_PROGRAM 78d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko && mProgram.getId() == schedule.getProgramId(); 79d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 80d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 81d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 82d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String toString() { 8395961816a768da387f0b5523cf4363ace2044089Nick Chalko return super.toString() + "(inputId=" + mInputId + ",program=" + mProgram + ")"; 84d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 85d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko} 86