package de.luhmer.owncloudnewsreader.services.podcast; import android.content.Context; import de.luhmer.owncloudnewsreader.model.MediaItem; /** * Created by david on 31.01.17. */ public abstract class PlaybackService { public interface PodcastStatusListener { void podcastStatusUpdated(); void podcastCompleted(); } public enum Status { NOT_INITIALIZED, FAILED, PREPARING, PLAYING, PAUSED, STOPPED }; public enum VideoType { None, Video, VideoType, YouTube } private Status mStatus = Status.NOT_INITIALIZED; private PodcastStatusListener podcastStatusListener; private MediaItem mediaItem; public PlaybackService(Context context, PodcastStatusListener podcastStatusListener, MediaItem mediaItem) { this.podcastStatusListener = podcastStatusListener; this.mediaItem = mediaItem; } public abstract void destroy(); public abstract void play(); public abstract void pause(); public void seekTo(double percent) { } public int getCurrentDuration() { return 0; } public int getTotalDuration() { return 0; } public VideoType getVideoType() { return VideoType.None; } public MediaItem getMediaItem() { return mediaItem; } public Status getStatus() { return mStatus; } protected void setStatus(Status status) { this.mStatus = status; podcastStatusListener.podcastStatusUpdated(); } protected void podcastCompleted() { podcastStatusListener.podcastCompleted(); } public boolean isMediaLoaded() { return getStatus() != Status.NOT_INITIALIZED && getStatus() != Status.PREPARING && getStatus() != Status.FAILED; } }