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

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java')
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java92
1 files changed, 82 insertions, 10 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
index 0e0c2fea..5c073094 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
@@ -5,40 +5,46 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
+import android.widget.FrameLayout;
+import android.widget.ProgressBar;
import android.widget.TextView;
+import android.widget.Toast;
import butterknife.ButterKnife;
import butterknife.InjectView;
import de.greenrobot.event.EventBus;
import de.luhmer.owncloudnewsreader.R;
import de.luhmer.owncloudnewsreader.events.podcast.AudioPodcastClicked;
-import de.luhmer.owncloudnewsreader.model.AudioPodcastItem;
+import de.luhmer.owncloudnewsreader.events.podcast.StartDownloadPodcast;
+import de.luhmer.owncloudnewsreader.helper.JavaYoutubeDownloader;
+import de.luhmer.owncloudnewsreader.model.PodcastItem;
/**
* Created by David on 21.06.2014.
*/
-public class PodcastArrayAdapter extends ArrayAdapter<AudioPodcastItem> {
+public class PodcastArrayAdapter extends ArrayAdapter<PodcastItem> {
LayoutInflater inflater;
EventBus eventBus;
- public PodcastArrayAdapter(Context context, AudioPodcastItem[] values) {
- super(context, R.layout.podcast_audio_row, values);
+ public PodcastArrayAdapter(Context context, PodcastItem[] values) {
+ super(context, R.layout.podcast_row, values);
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
eventBus = EventBus.getDefault();
+ //eventBus.register(this);
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
- ViewHolder holder;
+ final ViewHolder holder;
if (view != null) {
holder = (ViewHolder) view.getTag();
} else {
- view = inflater.inflate(R.layout.podcast_audio_row, parent, false);
+ view = inflater.inflate(R.layout.podcast_row, parent, false);
holder = new ViewHolder(view);
view.setTag(holder);
}
- AudioPodcastItem podcastItem = getItem(position);
+ final PodcastItem podcastItem = getItem(position);
holder.tvTitle.setText(podcastItem.title);
holder.tvBody.setText(podcastItem.mimeType);
@@ -46,19 +52,85 @@ public class PodcastArrayAdapter extends ArrayAdapter<AudioPodcastItem> {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- AudioPodcastClicked audioPodcastClicked = new AudioPodcastClicked();
- audioPodcastClicked.position = position;
- eventBus.post(audioPodcastClicked);
+ playPodcast(position);
}
});
+
+ holder.flDownloadPodcast.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ holder.flDownloadPodcast.setVisibility(View.GONE);
+
+ Toast.makeText(getContext(), "Starting download.. Please wait", Toast.LENGTH_SHORT).show();
+
+ eventBus.post(new StartDownloadPodcast() {{ podcast = podcastItem; }});
+ }
+ });
+
+ holder.flPlayPodcast.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ playPodcast(position);
+ }
+ });
+
+
+ holder.pbDownloadPodcast.setProgress(podcastItem.downloadProgress);
+ if(podcastItem.downloadProgress >= 0)
+ holder.tvDownloadPodcastProgress.setText(podcastItem.downloadProgress + "%");
+ else
+ holder.tvDownloadPodcastProgress.setText(null);
+
+
+ if(podcastItem.link.contains(JavaYoutubeDownloader.host)) {
+ if(podcastItem.downloadProgress == PodcastItem.DOWNLOAD_NOT_STARTED) {
+ holder.flPlayPodcast.setVisibility(View.GONE);//Youtube Videos can't be streamed
+ holder.flDownloadPodcast.setVisibility(View.VISIBLE);
+ } else {
+ holder.flPlayPodcast.setVisibility(View.VISIBLE);
+ holder.flDownloadPodcast.setVisibility(View.GONE);
+ }
+ } else if(podcastItem.downloadProgress == PodcastItem.DOWNLOAD_NOT_STARTED) {
+ holder.flDownloadPodcast.setVisibility(View.VISIBLE);
+ } else {
+ holder.flDownloadPodcast.setVisibility(View.GONE);
+ }
+
+ /*
+ File podcastFile = new File(PodcastDownloadService.getUrlToPodcastFile(getContext(), podcastItem.link, true));
+ File podcastFileCache = new File(PodcastDownloadService.getUrlToPodcastFile(getContext(), podcastItem.link, true) + ".download");
+ if(podcastFile.exists()) {
+ holder.flDownloadPodcast.setVisibility(View.GONE);
+ }
+ else if(podcastFileCache.exists()) {
+ holder.flDownloadPodcast.setVisibility(View.GONE);
+ }
+ else
+ holder.flDownloadPodcast.setVisibility(View.VISIBLE);
+ */
+
return view;
}
+ private void playPodcast(int position) {
+ AudioPodcastClicked audioPodcastClicked = new AudioPodcastClicked();
+ audioPodcastClicked.position = position;
+ eventBus.post(audioPodcastClicked);
+ }
+
+
+
static class ViewHolder {
@InjectView(R.id.tv_title) TextView tvTitle;
@InjectView(R.id.tv_body) TextView tvBody;
+ @InjectView(R.id.fl_downloadPodcastWrapper) FrameLayout flDownloadPodcast;
+ @InjectView(R.id.fl_PlayPodcastWrapper) FrameLayout flPlayPodcast;
+ @InjectView(R.id.pbDownloadPodcast) ProgressBar pbDownloadPodcast;
+ @InjectView(R.id.tvDownloadPodcastProgress) TextView tvDownloadPodcastProgress;
+
+
public ViewHolder(View view) {
ButterKnife.inject(this, view);