From 240737e3acee6d6c56ce8ca782b99f54205a4ea9 Mon Sep 17 00:00:00 2001 From: peking_ling Date: Fri, 24 Feb 2023 04:53:56 +0800 Subject: Fix memory leaks (#6335) --- app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 8 ++++++++ .../de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 7 ++++++- .../main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java | 4 ++-- app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java | 4 ++-- .../main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 4 ++++ 5 files changed, 22 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index fad586328..9c771f161 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -230,6 +230,14 @@ public class MainActivity extends CastEnabledActivity { } } + @Override + protected void onDestroy() { + super.onDestroy(); + if (drawerLayout != null) { + drawerLayout.removeDrawerListener(drawerToggle); + } + } + private void checkFirstLaunch() { SharedPreferences prefs = getSharedPreferences(PREF_NAME, MODE_PRIVATE); if (prefs.getBoolean(PREF_IS_FIRST_LAUNCH, true)) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index 6d91765da..f615252bd 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -73,12 +73,13 @@ public class CompletedDownloadsFragment extends Fragment private SpeedDialView speedDialView; private SwipeActions swipeActions; private ProgressBar progressBar; + private MaterialToolbar toolbar; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.simple_list_fragment, container, false); - MaterialToolbar toolbar = root.findViewById(R.id.toolbar); + toolbar = root.findViewById(R.id.toolbar); toolbar.setTitle(R.string.downloads_label); toolbar.inflateMenu(R.menu.downloads_completed); inflateSortMenu(toolbar); @@ -168,6 +169,10 @@ public class CompletedDownloadsFragment extends Fragment public void onDestroyView() { EventBus.getDefault().unregister(this); adapter.endSelectMode(); + if (toolbar != null) { + toolbar.setOnMenuItemClickListener(null); + toolbar.setOnLongClickListener(null); + } super.onDestroyView(); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java index 32ab5d9e5..930440b39 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java @@ -196,7 +196,7 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu Log.d(TAG, "Language is " + feed.getLanguage()); Log.d(TAG, "Author is " + feed.getAuthor()); Log.d(TAG, "URL is " + feed.getDownload_url()); - Glide.with(getContext()) + Glide.with(this) .load(feed.getImageUrl()) .apply(new RequestOptions() .placeholder(R.color.light_gray) @@ -204,7 +204,7 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu .fitCenter() .dontAnimate()) .into(imgvCover); - Glide.with(getContext()) + Glide.with(this) .load(feed.getImageUrl()) .apply(new RequestOptions() .placeholder(R.color.image_readability_tint) diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index 31a7d81fb..df48c9a98 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -297,9 +297,9 @@ public class ItemFragment extends Fragment { new RoundedCorners((int) (8 * getResources().getDisplayMetrics().density))) .dontAnimate(); - Glide.with(getActivity()) + Glide.with(this) .load(item.getImageLocation()) - .error(Glide.with(getActivity()) + .error(Glide.with(this) .load(ImageResourceUtils.getFallbackImageLocation(item)) .apply(options)) .apply(options) diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 4e8999d0f..bb22c5652 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -251,6 +251,10 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte recyclerAdapter.endSelectMode(); } recyclerAdapter = null; + if (toolbar != null) { + toolbar.setOnMenuItemClickListener(null); + toolbar.setOnLongClickListener(null); + } } private void refreshToolbarState() { -- cgit v1.2.3