From a3fcd5efe16c411268024a2306438db4321b5167 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 11:47:56 +0100 Subject: Prevent memory leaks --- .../main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java | 5 +++++ app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index abc9f3d22..513e2f449 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -55,6 +55,11 @@ public class ChaptersFragment extends ListFragment implements AudioplayerContent } } + public void onDestroy() { + super.onDestroy(); + adapter = null; + } + @Override public void onDataSetChanged(Playable media) { adapter.setMedia(media); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index a3e9723ea..e1265d2d3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -98,6 +98,11 @@ public class CoverFragment extends Fragment implements @Override public void onDataSetChanged(Playable media) { + public void onDestroy() { + super.onDestroy(); + // prevent memory leaks + root = null; + } this.media = media; loadMediaInfo(); } -- cgit v1.2.3 From 59129c6c88f8168b2b20c8543e68e5775a1c2a7f Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 11:50:12 +0100 Subject: Tell player fragments to refresh --- .../java/de/danoeh/antennapod/fragment/ChaptersFragment.java | 6 +++++- .../java/de/danoeh/antennapod/fragment/CoverFragment.java | 11 ++++++++--- .../danoeh/antennapod/fragment/ItemDescriptionFragment.java | 5 ++++- 3 files changed, 17 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index 513e2f449..51e4d801a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -61,7 +61,11 @@ public class ChaptersFragment extends ListFragment implements AudioplayerContent } @Override - public void onDataSetChanged(Playable media) { + public void onMediaChanged(Playable media) { + if(this.media == media) { + return; + } + this.media = media; adapter.setMedia(media); adapter.notifyDataSetChanged(); if(media.getChapters() == null) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index e1265d2d3..a851358a0 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -19,8 +19,8 @@ import de.danoeh.antennapod.core.util.playback.Playable; /** * Displays the cover and the title of a FeedItem. */ -public class CoverFragment extends Fragment implements - AudioplayerContentFragment { +public class CoverFragment extends Fragment implements AudioplayerContentFragment { + private static final String TAG = "CoverFragment"; private static final String ARG_PLAYABLE = "arg.playable"; @@ -97,12 +97,17 @@ public class CoverFragment extends Fragment implements } @Override - public void onDataSetChanged(Playable media) { public void onDestroy() { super.onDestroy(); // prevent memory leaks root = null; } + + @Override + public void onMediaChanged(Playable media) { + if(this.media == media) { + return; + } this.media = media; loadMediaInfo(); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java index 9790e66b3..1bfba4632 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java @@ -384,7 +384,10 @@ public class ItemDescriptionFragment extends Fragment implements AudioplayerCont } @Override - public void onDataSetChanged(Playable media) { + public void onMediaChanged(Playable media) { + if(this.media == media) { + return; + } this.media = media; this.shownotesProvider = media; load(); -- cgit v1.2.3 From 150042e91316017ce8ec4cf9d2be520536498580 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 11:50:49 +0100 Subject: Minor changes --- .../java/de/danoeh/antennapod/fragment/CoverFragment.java | 14 ++++++-------- .../antennapod/fragment/ItemDescriptionFragment.java | 5 ++--- 2 files changed, 8 insertions(+), 11 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index a851358a0..931d14924 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -71,14 +71,12 @@ public class CoverFragment extends Fragment implements AudioplayerContentFragmen Log.d(TAG, "episode title: " + media.getEpisodeTitle()); txtvPodcastTitle.setText(media.getFeedTitle()); txtvEpisodeTitle.setText(media.getEpisodeTitle()); - imgvCover.post(() -> { - Glide.with(this) - .load(media.getImageUri()) - .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY) - .dontAnimate() - .fitCenter() - .into(imgvCover); - }); + Glide.with(this) + .load(media.getImageUri()) + .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY) + .dontAnimate() + .fitCenter() + .into(imgvCover); } else { Log.w(TAG, "loadMediaInfo was called while media was null"); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java index 1bfba4632..4c723e5ff 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java @@ -21,7 +21,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.webkit.WebSettings.LayoutAlgorithm; +import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; @@ -67,7 +67,6 @@ public class ItemDescriptionFragment extends Fragment implements AudioplayerCont private ShownotesProvider shownotesProvider; private Playable media; - private Subscription webViewLoader; /** @@ -124,7 +123,7 @@ public class ItemDescriptionFragment extends Fragment implements AudioplayerCont ta.recycle(); webvDescription.setBackgroundColor(backgroundColor); webvDescription.getSettings().setUseWideViewPort(false); - webvDescription.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); + webvDescription.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webvDescription.getSettings().setLoadWithOverviewMode(true); webvDescription.setOnLongClickListener(webViewLongClickListener); webvDescription.setWebViewClient(new WebViewClient() { -- cgit v1.2.3 From 495df46ba40e8e031daf7ba1002a7245388f085d Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 11:56:33 +0100 Subject: Don't crash when switching from audio to video player --- app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index 51e4d801a..ce1d753e8 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -62,7 +62,7 @@ public class ChaptersFragment extends ListFragment implements AudioplayerContent @Override public void onMediaChanged(Playable media) { - if(this.media == media) { + if(this.media == media || adapter == null) { return; } this.media = media; -- cgit v1.2.3