aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dvr/ui/list/ScheduleRow.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dvr/ui/list/ScheduleRow.java')
-rw-r--r--src/com/android/tv/dvr/ui/list/ScheduleRow.java111
1 files changed, 43 insertions, 68 deletions
diff --git a/src/com/android/tv/dvr/ui/list/ScheduleRow.java b/src/com/android/tv/dvr/ui/list/ScheduleRow.java
index 91ba393a..b739c18f 100644
--- a/src/com/android/tv/dvr/ui/list/ScheduleRow.java
+++ b/src/com/android/tv/dvr/ui/list/ScheduleRow.java
@@ -18,14 +18,11 @@ package com.android.tv.dvr.ui.list;
import android.content.Context;
import android.support.annotation.Nullable;
-
import com.android.tv.common.SoftPreconditions;
import com.android.tv.dvr.data.ScheduledRecording;
import com.android.tv.dvr.ui.DvrUiHelper;
-/**
- * A class for schedule recording row.
- */
+/** A class for schedule recording row. */
class ScheduleRow {
private final SchedulesHeaderRow mHeaderRow;
@Nullable private ScheduledRecording mSchedule;
@@ -37,113 +34,89 @@ class ScheduleRow {
mHeaderRow = headerRow;
}
- /**
- * Gets which {@link SchedulesHeaderRow} this schedule row belongs to.
- */
+ /** Gets which {@link SchedulesHeaderRow} this schedule row belongs to. */
public SchedulesHeaderRow getHeaderRow() {
return mHeaderRow;
}
- /**
- * Returns the recording schedule.
- */
+ /** Returns the recording schedule. */
@Nullable
public ScheduledRecording getSchedule() {
return mSchedule;
}
- /**
- * Checks if the stop recording has been requested or not.
- */
+ /** Checks if the stop recording has been requested or not. */
public boolean isStopRecordingRequested() {
return mStopRecordingRequested;
}
- /**
- * Sets the flag of stop recording request.
- */
+ /** Sets the flag of stop recording request. */
public void setStopRecordingRequested(boolean stopRecordingRequested) {
SoftPreconditions.checkState(!mStartRecordingRequested);
mStopRecordingRequested = stopRecordingRequested;
}
- /**
- * Checks if the start recording has been requested or not.
- */
+ /** Checks if the start recording has been requested or not. */
public boolean isStartRecordingRequested() {
return mStartRecordingRequested;
}
- /**
- * Sets the flag of start recording request.
- */
+ /** Sets the flag of start recording request. */
public void setStartRecordingRequested(boolean startRecordingRequested) {
SoftPreconditions.checkState(!mStopRecordingRequested);
mStartRecordingRequested = startRecordingRequested;
}
- /**
- * Sets the recording schedule.
- */
+ /** Sets the recording schedule. */
public void setSchedule(@Nullable ScheduledRecording schedule) {
mSchedule = schedule;
}
- /**
- * Returns the channel ID.
- */
+ /** Returns the channel ID. */
public long getChannelId() {
return mSchedule != null ? mSchedule.getChannelId() : -1;
}
- /**
- * Returns the start time.
- */
+ /** Returns the start time. */
public long getStartTimeMs() {
return mSchedule != null ? mSchedule.getStartTimeMs() : -1;
}
- /**
- * Returns the end time.
- */
+ /** Returns the end time. */
public long getEndTimeMs() {
return mSchedule != null ? mSchedule.getEndTimeMs() : -1;
}
- /**
- * Returns the duration.
- */
+ /** Returns the duration. */
public final long getDuration() {
return getEndTimeMs() - getStartTimeMs();
}
- /**
- * Checks if the program is on air.
- */
+ /** Checks if the program is on air. */
public final boolean isOnAir() {
long currentTimeMs = System.currentTimeMillis();
return getStartTimeMs() <= currentTimeMs && getEndTimeMs() > currentTimeMs;
}
- /**
- * Checks if the schedule is not started.
- */
+ /** Checks if the schedule is not started. */
public final boolean isRecordingNotStarted() {
return mSchedule != null
&& mSchedule.getState() == ScheduledRecording.STATE_RECORDING_NOT_STARTED;
}
- /**
- * Checks if the schedule is in progress.
- */
+ /** Checks if the schedule is in progress. */
public final boolean isRecordingInProgress() {
return mSchedule != null
&& mSchedule.getState() == ScheduledRecording.STATE_RECORDING_IN_PROGRESS;
}
- /**
- * Checks if the schedule has been canceled or not.
- */
+ /** Checks if the schedule is failed. */
+ public final boolean isRecordingFailed() {
+ return mSchedule != null
+ && mSchedule.getState() == ScheduledRecording.STATE_RECORDING_FAILED;
+ }
+
+ /** Checks if the schedule has been canceled or not. */
public final boolean isScheduleCanceled() {
return mSchedule != null
&& mSchedule.getState() == ScheduledRecording.STATE_RECORDING_CANCELED;
@@ -152,28 +125,29 @@ class ScheduleRow {
public boolean isRecordingFinished() {
return mSchedule != null
&& (mSchedule.getState() == ScheduledRecording.STATE_RECORDING_FAILED
- || mSchedule.getState() == ScheduledRecording.STATE_RECORDING_CLIPPED
- || mSchedule.getState() == ScheduledRecording.STATE_RECORDING_FINISHED);
+ || mSchedule.getState() == ScheduledRecording.STATE_RECORDING_CLIPPED
+ || mSchedule.getState() == ScheduledRecording.STATE_RECORDING_FINISHED);
}
- /**
- * Creates and returns the new schedule with the existing information.
- */
+ public boolean hasRecordedProgram() {
+ return mSchedule != null
+ && mSchedule.getRecordedProgramId() != null
+ && mSchedule.getState() == ScheduledRecording.STATE_RECORDING_FINISHED;
+ }
+
+ /** Creates and returns the new schedule with the existing information. */
public ScheduledRecording.Builder createNewScheduleBuilder() {
return mSchedule != null ? ScheduledRecording.buildFrom(mSchedule) : null;
}
- /**
- * Returns the program title with episode number.
- */
+ /** Returns the program title with episode number. */
public String getProgramTitleWithEpisodeNumber(Context context) {
- return mSchedule != null ? DvrUiHelper.getStyledTitleWithEpisodeNumber(context,
- mSchedule, 0).toString() : null;
+ return mSchedule != null
+ ? DvrUiHelper.getStyledTitleWithEpisodeNumber(context, mSchedule, 0).toString()
+ : null;
}
- /**
- * Returns the program title including the season/episode number.
- */
+ /** Returns the program title including the season/episode number. */
public String getEpisodeDisplayTitle(Context context) {
return mSchedule != null ? mSchedule.getEpisodeDisplayTitle(context) : null;
}
@@ -181,15 +155,16 @@ class ScheduleRow {
@Override
public String toString() {
return getClass().getSimpleName()
- + "(schedule=" + mSchedule
- + ",stopRecordingRequested=" + mStopRecordingRequested
- + ",startRecordingRequested=" + mStartRecordingRequested
+ + "(schedule="
+ + mSchedule
+ + ",stopRecordingRequested="
+ + mStopRecordingRequested
+ + ",startRecordingRequested="
+ + mStartRecordingRequested
+ ")";
}
- /**
- * Checks if the {@code schedule} is for the program or channel.
- */
+ /** Checks if the {@code schedule} is for the program or channel. */
public boolean matchSchedule(ScheduledRecording schedule) {
if (mSchedule == null) {
return false;