From 05540fd103a99eed102f510f05d1379920544e57 Mon Sep 17 00:00:00 2001 From: Erik Johansson Date: Sun, 25 Feb 2018 00:00:13 +0100 Subject: [PATCH] Unregister fragment update listener when destorying view --- .../src/main/java/com/health/openscale/core/OpenScale.java | 4 ++++ .../com/health/openscale/gui/fragments/GraphFragment.java | 6 ++++++ .../health/openscale/gui/fragments/OverviewFragment.java | 6 ++++++ .../health/openscale/gui/fragments/StatisticsFragment.java | 6 ++++++ .../com/health/openscale/gui/fragments/TableFragment.java | 6 ++++++ 5 files changed, 28 insertions(+) diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 21b47b5f..c2f7b105 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -461,6 +461,10 @@ public class OpenScale { fragment.updateOnView(scaleMeasurementList); } + public void unregisterFragment(FragmentUpdateListener fragment) { + fragmentList.remove(fragment); + } + public void updateScaleData() { int selectedUserId = getSelectedScaleUserId(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java index e024d719..69f188d3 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java @@ -226,6 +226,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { return graphView; } + @Override + public void onDestroyView() { + OpenScale.getInstance(getContext()).unregisterFragment(this); + super.onDestroyView(); + } + @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java index 32fadec2..c4f75770 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java @@ -148,6 +148,12 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener return overviewView; } + @Override + public void onDestroyView() { + OpenScale.getInstance(getContext()).unregisterFragment(this); + super.onDestroyView(); + } + @Override public void updateOnView(List scaleMeasurementList) { if (scaleMeasurementList.isEmpty()) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java index 81b8509d..165a42f9 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java @@ -156,6 +156,12 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen return statisticsView; } + @Override + public void onDestroyView() { + OpenScale.getInstance(getContext()).unregisterFragment(this); + super.onDestroyView(); + } + @Override public void updateOnView(List scaleMeasurementList) { currentScaleUser = OpenScale.getInstance(getContext()).getSelectedScaleUser(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java index da5f5376..455ec1a5 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java @@ -97,6 +97,12 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { return tableView; } + @Override + public void onDestroyView() { + OpenScale.getInstance(getContext()).unregisterFragment(this); + super.onDestroyView(); + } + @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState);