Android Open Source - EnklawaPlayer Abstract Episodes Fragment






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.fragments.main;
//  w w w . j a  v a2s  .  c o  m
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;

import java.util.List;

import macbury.pod.adapters.EpisodesAdapter;
import macbury.pod.adapters.EpisodesAdapterListener;
import macbury.pod.db.models.Episode;
import macbury.pod.db.models.EpisodeFile;
import macbury.pod.dialogs.EpisodeAboutDialog;

/**
 * Created by macbury on 14.09.14.
 */
public abstract class AbstractEpisodesFragment extends EnklawaBaseAbstractListFragment implements EpisodesAdapterListener, DialogInterface.OnDismissListener {
  protected static final String TAG     = "AbstractEpisodesFragment";
  protected List<Episode> episodesArray;
  protected EpisodesAdapter episodeAdapter;
  private EpisodeAboutDialog dialog;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.episodeAdapter = new EpisodesAdapter(getActivity());
    this.episodeAdapter.setListener(this);
    this.setListAdapter(episodeAdapter);
  }

  @Override
  public void onSyncPodUpdate() {
    updateEpisodes();
  }

  public void updateEpisodes() {
    this.episodesArray = getEpisodes();
    this.episodeAdapter.set(episodesArray);
    episodeAdapter.notifyDataSetChanged();
  }

  public abstract List<Episode> getEpisodes();

  @Override
  protected void onDownloadUpdate(int progress, EpisodeFile file) {
    episodeAdapter.notifyDataSetChanged();
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Episode episode           = episodeAdapter.getItem(position);
    if (dialog != null) {
      dialog.hide();
      dialog = null;
    }
    this.dialog               = new EpisodeAboutDialog(getActivity(), episode);
    dialog.setOnDismissListener(this);
    dialog.show();
  }

  @Override
  public void onPause() {
    super.onPause();
    if (dialog != null) {
      dialog.hide();
      dialog = null;
    }
  }

  @Override
  public void onDownloadEpisodeButtonClick(Episode episode) {
    Log.v(TAG, "Clicked download episode: " + episode.name);
    app.db.episodeFiles.createFromEpisode(episode);
    app.services.downloadPendingEpisodes();
  }

  @Override
  public void onCancelEpisodeDownloadButtonClick(Episode episode) {
    Log.v(TAG, "Clicked cancel download episode: " + episode.name);
    getActivity().startService(app.intents.cancelEpisodeDownloadService(episode));
  }

  @Override
  public void onPauseEpisodeDownloadButtonClick(Episode episode) {
    app.services.pausePlayer();
  }

  @Override
  public void onRemoveEpisodeButtonClick(Episode episode) {

  }

  @Override
  public void onPlayEpisodeDownloadButtonClick(Episode episode) {
    Log.v(TAG, "Clicked play download episode: " + episode.name);
    getActivity().startActivity(app.intents.openPlayerForEpisode(episode));
  }



  @Override
  public void onDismiss(DialogInterface dialog) {
    episodeAdapter.notifyDataSetChanged();
  }
}




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