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 Chalko 21d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport com.android.tv.data.Program; 226ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport com.android.tv.dvr.data.ScheduledRecording; 236ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport com.android.tv.dvr.data.ScheduledRecording.Builder; 246ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport com.android.tv.dvr.ui.DvrUiHelper; 25d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 26d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko/** 27d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * A class for the episodic program. 28d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko */ 296ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoclass EpisodicProgramRow extends ScheduleRow { 30d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko private final String mInputId; 31d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko private final Program mProgram; 32d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 33d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public EpisodicProgramRow(String inputId, Program program, ScheduledRecording recording, 34d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko SchedulesHeaderRow headerRow) { 35d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko super(recording, headerRow); 36d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko mInputId = inputId; 37d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko mProgram = program; 38d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 39d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 40d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko /** 41d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Returns the program. 42d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko */ 43d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public Program getProgram() { 44d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram; 45d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 46d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 47d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 48d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getChannelId() { 49d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getChannelId(); 50d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 51d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 52d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 53d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getStartTimeMs() { 54d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getStartTimeUtcMillis(); 55d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 56d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 57d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 58d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public long getEndTimeMs() { 59d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getEndTimeUtcMillis(); 60d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 61d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 62d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 63d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public Builder createNewScheduleBuilder() { 64d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return ScheduledRecording.builder(mInputId, mProgram); 65d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 66d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 67d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 68d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String getProgramTitleWithEpisodeNumber(Context context) { 696ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko return DvrUiHelper.getStyledTitleWithEpisodeNumber(context, mProgram, 0).toString(); 70d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 71d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 72d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 73d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String getEpisodeDisplayTitle(Context context) { 74d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return mProgram.getEpisodeDisplayTitle(context); 75d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 76d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 77d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 78d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public boolean matchSchedule(ScheduledRecording schedule) { 79d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return schedule.getType() == ScheduledRecording.TYPE_PROGRAM 80d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko && mProgram.getId() == schedule.getProgramId(); 81d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 82d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko 83d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko @Override 84d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko public String toString() { 85d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko return super.toString() 86d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko + "(inputId=" + mInputId 87d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko + ",program=" + mProgram 88d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko + ")"; 89d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko } 90d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko} 91