1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.tv.dvr.data; 18 19 import android.text.TextUtils; 20 21 import java.util.Objects; 22 23 /** 24 * A plain java object which includes the season/episode number for the series recording. 25 */ 26 public class SeasonEpisodeNumber { 27 public final long seriesRecordingId; 28 public final String seasonNumber; 29 public final String episodeNumber; 30 31 /** 32 * Creates a new Builder with the values set from an existing {@link ScheduledRecording}. 33 */ SeasonEpisodeNumber(ScheduledRecording r)34 public SeasonEpisodeNumber(ScheduledRecording r) { 35 this(r.getSeriesRecordingId(), r.getSeasonNumber(), r.getEpisodeNumber()); 36 } 37 SeasonEpisodeNumber(long seriesRecordingId, String seasonNumber, String episodeNumber)38 public SeasonEpisodeNumber(long seriesRecordingId, String seasonNumber, String episodeNumber) { 39 this.seriesRecordingId = seriesRecordingId; 40 this.seasonNumber = seasonNumber; 41 this.episodeNumber = episodeNumber; 42 } 43 44 @Override equals(Object o)45 public boolean equals(Object o) { 46 if (this == o) { 47 return true; 48 } 49 if (!(o instanceof SeasonEpisodeNumber) 50 || TextUtils.isEmpty(seasonNumber) || TextUtils.isEmpty(episodeNumber)) { 51 return false; 52 } 53 SeasonEpisodeNumber that = (SeasonEpisodeNumber) o; 54 return seriesRecordingId == that.seriesRecordingId 55 && Objects.equals(seasonNumber, that.seasonNumber) 56 && Objects.equals(episodeNumber, that.episodeNumber); 57 } 58 59 @Override hashCode()60 public int hashCode() { 61 return Objects.hash(seriesRecordingId, seasonNumber, episodeNumber); 62 } 63 64 @Override toString()65 public String toString() { 66 return "SeasonEpisodeNumber{" + 67 "seriesRecordingId=" + seriesRecordingId + 68 ", seasonNumber='" + seasonNumber + 69 ", episodeNumber=" + episodeNumber + 70 '}'; 71 } 72 }