Welcome to mirror list, hosted at ThFree Co, Russian Federation.

PlaybackService.java « podcast « services « owncloudnewsreader « luhmer « de « java « main « src « News-Android-App - github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 48d2b67c2f29e63b3acb5a3310e30e41af74da34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package de.luhmer.owncloudnewsreader.services.podcast;

import android.support.v4.media.session.PlaybackStateCompat;

import de.luhmer.owncloudnewsreader.model.MediaItem;

/**
 * Created by david on 31.01.17.
 */

public abstract class PlaybackService {

    public enum VideoType { None, Video, VideoType, YouTube }

    private @PlaybackStateCompat.State int mStatus = PlaybackStateCompat.STATE_NONE;
    private PodcastStatusListener podcastStatusListener;
    private MediaItem mediaItem;

    public interface PodcastStatusListener {
        void podcastStatusUpdated();
        void podcastCompleted();
    }

    public PlaybackService(PodcastStatusListener podcastStatusListener, MediaItem mediaItem) {
        this.podcastStatusListener = podcastStatusListener;
        this.mediaItem = mediaItem;
    }

    public abstract void destroy();
    public abstract void play();
    public abstract void pause();
    public abstract void playbackSpeedChanged(float currentPlaybackSpeed);


    public void seekTo(int position) { }
    public int getCurrentPosition() { return 0; }
    public int getTotalDuration() { return 0; }
    public VideoType getVideoType() { return VideoType.None; }

    public MediaItem getMediaItem() {
        return mediaItem;
    }

    public @PlaybackStateCompat.State int getStatus() {
        return mStatus;
    }

    protected void setStatus(@PlaybackStateCompat.State int status) {
        this.mStatus = status;
        podcastStatusListener.podcastStatusUpdated();
    }

    protected void podcastCompleted() {
        podcastStatusListener.podcastCompleted();
    }

    public boolean isMediaLoaded() {
        return     getStatus() != PlaybackStateCompat.STATE_NONE
                && getStatus() != PlaybackStateCompat.STATE_CONNECTING
                && getStatus() != PlaybackStateCompat.STATE_ERROR;
    }
}