From 9ed77444217baf63372aa4b05b3abeaad5933f6a Mon Sep 17 00:00:00 2001 From: antonio Date: Wed, 6 Sep 2023 21:49:23 +0200 Subject: [PATCH] fix: updated download section navigation to match the system's correct stack-based navigation --- .../tempo/ui/fragment/DownloadFragment.java | 20 +++++++++++++++++++ .../tempo/viewmodel/DownloadViewModel.java | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/DownloadFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/DownloadFragment.java index b84fafb0..c0f7349c 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/DownloadFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/DownloadFragment.java @@ -7,6 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.PopupMenu; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -37,6 +38,8 @@ import java.util.Objects; @UnstableApi public class DownloadFragment extends Fragment implements ClickCallback { + private static final String TAG = "DownloadFragment"; + private FragmentDownloadBinding bind; private MainActivity activity; private DownloadViewModel downloadViewModel; @@ -160,6 +163,23 @@ public class DownloadFragment extends Fragment implements ClickCallback { } bind.downloadedGoBackImageView.setVisibility(stack.size() > 1 ? View.VISIBLE : View.GONE); + + setupBackPressing(stack.size()); + }); + } + + private void setupBackPressing(int stackSize) { + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (stackSize > 1) { + downloadViewModel.popViewStack(); + } else { + activity.navController.navigateUp(); + } + + remove(); + } }); } diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/DownloadViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/DownloadViewModel.java index 468ede57..3059eb09 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/DownloadViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/DownloadViewModel.java @@ -1,6 +1,7 @@ package com.cappielloantonio.tempo.viewmodel; import android.app.Application; +import android.util.Log; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; @@ -11,7 +12,6 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.tempo.model.DownloadStack; import com.cappielloantonio.tempo.repository.DownloadRepository; import com.cappielloantonio.tempo.subsonic.models.Child; -import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.util.Preferences; import java.util.ArrayList;