aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java')
-rw-r--r--src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java234
1 files changed, 0 insertions, 234 deletions
diff --git a/src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java b/src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java
deleted file mode 100644
index c2c0f596..00000000
--- a/src/com/android/tv/dvr/ui/SeriesRecordingPresenter.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * 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.android.tv.dvr.ui;
-
-import android.app.Activity;
-import android.content.Context;
-import android.media.tv.TvContract;
-import android.media.tv.TvInputManager;
-import android.text.TextUtils;
-import android.view.ViewGroup;
-
-import com.android.tv.ApplicationSingletons;
-import com.android.tv.R;
-import com.android.tv.TvApplication;
-import com.android.tv.data.Channel;
-import com.android.tv.data.ChannelDataManager;
-import com.android.tv.dvr.DvrDataManager;
-import com.android.tv.dvr.DvrDataManager.RecordedProgramListener;
-import com.android.tv.dvr.DvrDataManager.ScheduledRecordingListener;
-import com.android.tv.dvr.DvrManager;
-import com.android.tv.dvr.DvrWatchedPositionManager;
-import com.android.tv.dvr.DvrWatchedPositionManager.WatchedPositionChangedListener;
-import com.android.tv.dvr.RecordedProgram;
-import com.android.tv.dvr.ScheduledRecording;
-import com.android.tv.dvr.SeriesRecording;
-
-import java.util.List;
-
-/**
- * Presents a {@link SeriesRecording} in {@link DvrBrowseFragment}.
- */
-public class SeriesRecordingPresenter extends DvrItemPresenter {
- private final ChannelDataManager mChannelDataManager;
- private final DvrDataManager mDvrDataManager;
- private final DvrManager mDvrManager;
- private final DvrWatchedPositionManager mWatchedPositionManager;
-
- private static final class SeriesRecordingViewHolder extends ViewHolder implements
- WatchedPositionChangedListener, ScheduledRecordingListener, RecordedProgramListener {
- private SeriesRecording mSeriesRecording;
- private RecordingCardView mCardView;
- private DvrDataManager mDvrDataManager;
- private DvrManager mDvrManager;
- private DvrWatchedPositionManager mWatchedPositionManager;
-
- SeriesRecordingViewHolder(RecordingCardView view, DvrDataManager dvrDataManager,
- DvrManager dvrManager, DvrWatchedPositionManager watchedPositionManager) {
- super(view);
- mCardView = view;
- mDvrDataManager = dvrDataManager;
- mDvrManager = dvrManager;
- mWatchedPositionManager = watchedPositionManager;
- }
-
- @Override
- public void onWatchedPositionChanged(long recordedProgramId, long positionMs) {
- if (positionMs != TvInputManager.TIME_SHIFT_INVALID_TIME) {
- mWatchedPositionManager.removeListener(this, recordedProgramId);
- updateCardViewContent();
- }
- }
-
- @Override
- public void onScheduledRecordingAdded(ScheduledRecording... scheduledRecordings) {
- for (ScheduledRecording scheduledRecording : scheduledRecordings) {
- if (scheduledRecording.getSeriesRecordingId() == mSeriesRecording.getId()) {
- updateCardViewContent();
- return;
- }
- }
- }
-
- @Override
- public void onScheduledRecordingRemoved(ScheduledRecording... scheduledRecordings) {
- for (ScheduledRecording scheduledRecording : scheduledRecordings) {
- if (scheduledRecording.getSeriesRecordingId() == mSeriesRecording.getId()) {
- updateCardViewContent();
- return;
- }
- }
- }
-
- @Override
- public void onRecordedProgramsAdded(RecordedProgram... recordedPrograms) {
- boolean needToUpdateCardView = false;
- for (RecordedProgram recordedProgram : recordedPrograms) {
- if (TextUtils.equals(recordedProgram.getSeriesId(),
- mSeriesRecording.getSeriesId())) {
- mDvrDataManager.removeScheduledRecordingListener(this);
- mWatchedPositionManager.addListener(this, recordedProgram.getId());
- needToUpdateCardView = true;
- }
- }
- if (needToUpdateCardView) {
- updateCardViewContent();
- }
- }
-
- @Override
- public void onRecordedProgramsRemoved(RecordedProgram... recordedPrograms) {
- boolean needToUpdateCardView = false;
- for (RecordedProgram recordedProgram : recordedPrograms) {
- if (TextUtils.equals(recordedProgram.getSeriesId(),
- mSeriesRecording.getSeriesId())) {
- if (mWatchedPositionManager.getWatchedPosition(recordedProgram.getId())
- == TvInputManager.TIME_SHIFT_INVALID_TIME) {
- mWatchedPositionManager.removeListener(this, recordedProgram.getId());
- }
- needToUpdateCardView = true;
- }
- }
- if (needToUpdateCardView) {
- updateCardViewContent();
- }
- }
-
- @Override
- public void onRecordedProgramsChanged(RecordedProgram... recordedPrograms) {
- // Do nothing
- }
-
- @Override
- public void onScheduledRecordingStatusChanged(ScheduledRecording... scheduledRecordings) {
- // Do nothing
- }
-
- public void onBound(SeriesRecording seriesRecording) {
- mSeriesRecording = seriesRecording;
- mDvrDataManager.addScheduledRecordingListener(this);
- mDvrDataManager.addRecordedProgramListener(this);
- for (RecordedProgram recordedProgram :
- mDvrDataManager.getRecordedPrograms(mSeriesRecording.getId())) {
- if (mWatchedPositionManager.getWatchedPosition(recordedProgram.getId())
- == TvInputManager.TIME_SHIFT_INVALID_TIME) {
- mWatchedPositionManager.addListener(this, recordedProgram.getId());
- }
- }
- updateCardViewContent();
- }
-
- public void onUnbound() {
- mDvrDataManager.removeScheduledRecordingListener(this);
- mDvrDataManager.removeRecordedProgramListener(this);
- mWatchedPositionManager.removeListener(this);
- }
-
- private void updateCardViewContent() {
- int count = 0;
- int quantityStringID;
- List<RecordedProgram> recordedPrograms =
- mDvrDataManager.getRecordedPrograms(mSeriesRecording.getId());
- if (recordedPrograms.size() == 0) {
- count = mDvrManager.getAvailableScheduledRecording(mSeriesRecording.getId()).size();
- quantityStringID = R.plurals.dvr_count_scheduled_recordings;
- } else {
- for (RecordedProgram recordedProgram : recordedPrograms) {
- if (mWatchedPositionManager.getWatchedPosition(recordedProgram.getId())
- == TvInputManager.TIME_SHIFT_INVALID_TIME) {
- count++;
- }
- }
- if (count == 0) {
- count = recordedPrograms.size();
- quantityStringID = R.plurals.dvr_count_recordings;
- } else {
- quantityStringID = R.plurals.dvr_count_new_recordings;
- }
- }
- mCardView.setContent(mCardView.getResources()
- .getQuantityString(quantityStringID, count, count), null);
- }
- }
-
- public SeriesRecordingPresenter(Context context) {
- ApplicationSingletons singletons = TvApplication.getSingletons(context);
- mChannelDataManager = singletons.getChannelDataManager();
- mDvrDataManager = singletons.getDvrDataManager();
- mDvrManager = singletons.getDvrManager();
- mWatchedPositionManager = singletons.getDvrWatchedPositionManager();
- }
-
- @Override
- public ViewHolder onCreateViewHolder(ViewGroup parent) {
- Context context = parent.getContext();
- RecordingCardView view = new RecordingCardView(context);
- return new SeriesRecordingViewHolder(view, mDvrDataManager, mDvrManager,
- mWatchedPositionManager);
- }
-
- @Override
- public void onBindViewHolder(ViewHolder baseHolder, Object o) {
- final SeriesRecordingViewHolder viewHolder = (SeriesRecordingViewHolder) baseHolder;
- final SeriesRecording seriesRecording = (SeriesRecording) o;
- final RecordingCardView cardView = (RecordingCardView) viewHolder.view;
- viewHolder.onBound(seriesRecording);
- setTitleAndImage(cardView, seriesRecording);
- super.onBindViewHolder(baseHolder, o);
- }
-
- @Override
- public void onUnbindViewHolder(ViewHolder viewHolder) {
- ((RecordingCardView) viewHolder.view).reset();
- ((SeriesRecordingViewHolder) viewHolder).onUnbound();
- super.onUnbindViewHolder(viewHolder);
- }
-
- private void setTitleAndImage(RecordingCardView cardView, SeriesRecording recording) {
- cardView.setTitle(recording.getTitle());
- if (recording.getPosterUri() != null) {
- cardView.setImageUri(recording.getPosterUri(), false);
- } else {
- Channel channel = mChannelDataManager.getChannel(recording.getChannelId());
- String imageUri = null;
- if (channel != null) {
- imageUri = TvContract.buildChannelLogoUri(channel.getId()).toString();
- }
- cardView.setImageUri(imageUri, true);
- }
- }
-}