package org.edx.mobile.model; import org.edx.mobile.model.api.TranscriptModel; import org.edx.mobile.model.download.NativeDownloadModel; /** * Any video model should implement this interface. * Database model should also implement this interface. * @author rohan * * */ public interface VideoModel { String getUsername(); String getTitle(); String getVideoId(); long getSize(); long getDuration(); String getFilePath(); String getVideoUrl(); String getHighQualityVideoUrl(); String getLowQualityVideoUrl(); String getYoutubeVideoUrl(); int getWatchedStateOrdinal(); int getDownloadedStateOrdinal(); long getDmId(); String getEnrollmentId(); String getChapterName(); String getSectionName(); int getLastPlayedOffset(); String getLmsUrl(); boolean isCourseActive(); boolean isVideoForWebOnly(); long getDownloadedOn(); TranscriptModel getTranscripts(); //TODO: write all required method of the video model /** * Sets download information from the given download object. * @param download */ void setDownloadInfo(NativeDownloadModel download); /** * Sets download information from the given video object. * @param videoByUrl */ void setDownloadInfo(VideoModel videoByUrl); /** * Sets downloading information from the given download object. * @param download */ void setDownloadingInfo(NativeDownloadModel download); }