Android Open Source - EnklawaPlayer Episode Media Source






From Project

Back to project page EnklawaPlayer.

License

The source code is released under:

GNU General Public License

If you think the Android project EnklawaPlayer listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package macbury.pod.managers.player.sources;
//from   w  w  w  . j  a v  a 2  s .c o  m
import android.net.Uri;

import macbury.pod.db.models.EnqueueEpisode;
import macbury.pod.db.models.Episode;
import macbury.pod.managers.App;
import macbury.pod.managers.DatabaseManager;
import macbury.pod.managers.player.PlaybackStatus;

/**
 * Created by macbury on 25.09.14.
 */
public class EpisodeMediaSource extends AbstractMediaSource {
  private final EnqueueEpisode enqueueEpisode;

  public EpisodeMediaSource(EnqueueEpisode enqueueEpisode) {
    this.enqueueEpisode = enqueueEpisode;
    this.status         = enqueueEpisode.status;
  }

  @Override
  public String getTitle() {
    return enqueueEpisode.episode.name;
  }

  @Override
  public String getSummary() {
    return enqueueEpisode.episode.program.name;
  }

  @Override
  public Uri getMediaUri() {
    return App.current().storage.getEpisodeUri(enqueueEpisode.episode);
  }

  @Override
  public Uri getPreviewArtUri() {
    return Uri.parse(enqueueEpisode.episode.image);
  }

  @Override
  public boolean isLiveStream() {
    return false;
  }

  @Override
  public void onPlay() {
    setStatus(PlaybackStatus.Playing);
    DatabaseManager db            = App.current().db;
    enqueueEpisode.episode.played = true;
    db.episodes.update(enqueueEpisode.episode);
  }

  @Override
  public void onPause() {
    setStatus(PlaybackStatus.Paused);
  }

  @Override
  public void setPosition(int duration) {
    enqueueEpisode.time = duration;
    App.current().db.queue.update(enqueueEpisode);
  }

  @Override
  public int getDuration() {
    return enqueueEpisode.episode.getDuration();
  }

  @Override
  public void onFinishPlayback() {
    DatabaseManager db            = App.current().db;
    setStatus(PlaybackStatus.Finished);
    enqueueEpisode.episode.played = true;
    db.episodes.update(enqueueEpisode.episode);
    db.queue.destroy(enqueueEpisode);
  }

  @Override
  public int getPosition() {
    return enqueueEpisode.time;
  }

  public EnqueueEpisode getEnqueueEpisode() {
    return enqueueEpisode;
  }

  @Override
  public boolean equals(Object o) {
    if (EnqueueEpisode.class.isInstance(o)) {
      EnqueueEpisode ee = (EnqueueEpisode)o;
      return ee.id == enqueueEpisode.id;
    } else if (EpisodeMediaSource.class.isInstance(o)) {
      EpisodeMediaSource ems = (EpisodeMediaSource)o;
      return (ems.getEnqueueEpisode().id == enqueueEpisode.id);
    } else {
      return super.equals(o);
    }
  }

  public Episode getEpisode() {
    return enqueueEpisode.episode;
  }

  @Override
  public void setStatus(PlaybackStatus status) {
    super.setStatus(status);
    enqueueEpisode.status = status;
    App.current().db.queue.update(enqueueEpisode);
  }
}




Java Source Code List

macbury.pod.ApplicationTest.java
macbury.pod.activities.DonateActivity.java
macbury.pod.activities.ProgramEpisodesActivity.java
macbury.pod.activities.SettingsActivity.java
macbury.pod.activities.ext.AccentFragmentActivity.java
macbury.pod.activities.main.MainActivityActionBarToggle.java
macbury.pod.activities.main.MainActivity.java
macbury.pod.activities.main.NavigationController.java
macbury.pod.activities.main.NavigationListener.java
macbury.pod.activities.player.PlayerActivity.java
macbury.pod.activities.player.RadioActivity.java
macbury.pod.adapters.EpisodesAdapterListener.java
macbury.pod.adapters.EpisodesAdapter.java
macbury.pod.adapters.ProgramsAdapter.java
macbury.pod.api.APICategory.java
macbury.pod.api.APIEpisode.java
macbury.pod.api.APIProgram.java
macbury.pod.api.APIResponse.java
macbury.pod.api.APIThread.java
macbury.pod.db.DatabaseCRUDListener.java
macbury.pod.db.models.EnqueueEpisode.java
macbury.pod.db.models.EpisodeFile.java
macbury.pod.db.models.Episode.java
macbury.pod.db.models.ForumThread.java
macbury.pod.db.models.Program.java
macbury.pod.db.scopes.AbstractScope.java
macbury.pod.db.scopes.EnqueueEpisodeScope.java
macbury.pod.db.scopes.EpisodeFilesScope.java
macbury.pod.db.scopes.EpisodesScope.java
macbury.pod.db.scopes.ProgramsScope.java
macbury.pod.db.scopes.ThreadScope.java
macbury.pod.dialogs.EpisodeAboutDialog.java
macbury.pod.dialogs.ProgramAboutDialog.java
macbury.pod.extensions.Converter.java
macbury.pod.extensions.DateDeserializer.java
macbury.pod.extensions.SleepTimer.java
macbury.pod.fragments.SettingsFragment.java
macbury.pod.fragments.main.AbstractEpisodesFragment.java
macbury.pod.fragments.main.AllProgramsFragment.java
macbury.pod.fragments.main.EnklawaBaseAbstractListFragment.java
macbury.pod.fragments.main.episodes.DownloadedEpisodesFragment.java
macbury.pod.fragments.main.episodes.NewestEpisodesFragment.java
macbury.pod.fragments.main.episodes.PlaylistFragment.java
macbury.pod.fragments.main.episodes.ProgramEpisodesFragment.java
macbury.pod.fragments.player.ExternalPlayerFragment.java
macbury.pod.fragments.player.PlayerArtworkAndInfoFragment.java
macbury.pod.fragments.player.PlayerControllerFragment.java
macbury.pod.managers.AlarmsManager.java
macbury.pod.managers.App.java
macbury.pod.managers.BroadcastsManager.java
macbury.pod.managers.DatabaseManager.java
macbury.pod.managers.IntentManager.java
macbury.pod.managers.NotificationsManager.java
macbury.pod.managers.ServiceManager.java
macbury.pod.managers.SettingsManager.java
macbury.pod.managers.StorageManager.java
macbury.pod.managers.download.DownloadEpisode.java
macbury.pod.managers.download.DownloadManagerListener.java
macbury.pod.managers.download.DownloadManager.java
macbury.pod.managers.player.PlaybackStatus.java
macbury.pod.managers.player.PlayerManagerListener.java
macbury.pod.managers.player.PlayerManager.java
macbury.pod.managers.player.sources.AbstractMediaSource.java
macbury.pod.managers.player.sources.EpisodeMediaSource.java
macbury.pod.managers.player.sources.RadioMediaSource.java
macbury.pod.navigation_drawer.NavAdapter.java
macbury.pod.navigation_drawer.NavBaseItem.java
macbury.pod.navigation_drawer.NavDivider.java
macbury.pod.navigation_drawer.items.AllProgramsNavItem.java
macbury.pod.navigation_drawer.items.DownloadedEpisodesNavItem.java
macbury.pod.navigation_drawer.items.FavoriteProgramNavItem.java
macbury.pod.navigation_drawer.items.ForumNavItem.java
macbury.pod.navigation_drawer.items.NavItemFragment.java
macbury.pod.navigation_drawer.items.NewestEpisodesNavItem.java
macbury.pod.navigation_drawer.items.PlayQueueNavItem.java
macbury.pod.receivers.BootReceiver.java
macbury.pod.receivers.MediaButtonReceiver.java
macbury.pod.services.DownloadService.java
macbury.pod.services.PlayerService.java
macbury.pod.services.SyncPodService.java
macbury.pod.tutorial.MainActivityTutorial.java
macbury.pod.views.TappableFrameLayout.java