From 4dd8ecfec192e837a80fdcaca640fc3ab4f66d3d Mon Sep 17 00:00:00 2001 From: oliexdev Date: Mon, 6 Jul 2020 18:43:50 +0200 Subject: [PATCH] exit app on top level fragments on back button pressed, see issue #592 --- .../com/health/openscale/gui/graph/GraphFragment.java | 10 ++++++++++ .../openscale/gui/overview/OverviewFragment.java | 10 ++++++++++ .../openscale/gui/statistic/StatisticsFragment.java | 10 ++++++++++ .../com/health/openscale/gui/table/TableFragment.java | 11 +++++++++++ 4 files changed, 41 insertions(+) diff --git a/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java index 9a9880c4..9263632f 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java @@ -32,6 +32,7 @@ import android.widget.PopupMenu; import android.widget.TextView; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.navigation.Navigation; @@ -287,6 +288,15 @@ public class GraphFragment extends Fragment { } }); + OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + requireActivity().finish(); + } + }; + + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), onBackPressedCallback); + return graphView; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java index 0b830229..83d86c51 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java @@ -34,6 +34,7 @@ import android.widget.TableLayout; import android.widget.TextView; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.navigation.Navigation; @@ -258,6 +259,15 @@ public class OverviewFragment extends Fragment { } }); + OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + requireActivity().finish(); + } + }; + + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), onBackPressedCallback); + return overviewView; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java index 533bea0b..2a443698 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java @@ -24,6 +24,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.activity.OnBackPressedCallback; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; @@ -151,6 +152,15 @@ public class StatisticsFragment extends Fragment { } }); + OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + requireActivity().finish(); + } + }; + + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), onBackPressedCallback); + return statisticsView; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java index 540e60d1..2cb252e3 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java @@ -27,6 +27,7 @@ import android.widget.LinearLayout; import android.widget.TableRow; import android.widget.TextView; +import androidx.activity.OnBackPressedCallback; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.navigation.Navigation; @@ -95,6 +96,16 @@ public class TableFragment extends Fragment { } }); + OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + requireActivity().finish(); + } + }; + + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), onBackPressedCallback); + + return tableView; }