From 781a31a2d99b183c2ead0c31069ee84778eba38c Mon Sep 17 00:00:00 2001 From: artdeell Date: Mon, 4 Sep 2023 20:25:27 +0300 Subject: [PATCH] Fix[modloader]: move detachments into onStop() Some actions executed by the futures or the ModloaderDownloadListener may invoke operations which can only be performed when the fragment state is not yet saved. So this commit moves them into onStop, which is executed before saving the state. For reference: https://developer.android.com/static/images/guide/fragments/fragment-view-lifecycle.png --- .../kdt/pojavlaunch/fragments/FabriclikeInstallFragment.java | 4 ++-- .../net/kdt/pojavlaunch/fragments/ModVersionListFragment.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabriclikeInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabriclikeInstallFragment.java index b5f643e4f..8c7d93724 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabriclikeInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabriclikeInstallFragment.java @@ -82,14 +82,14 @@ public abstract class FabriclikeInstallFragment extends Fragment implements Modl } @Override - public void onDestroyView() { - super.onDestroyView(); + public void onStop() { cancelFutureChecked(mGameVersionFuture); cancelFutureChecked(mLoaderVersionFuture); ModloaderListenerProxy proxy = getListenerProxy(); if(proxy != null) { proxy.detachListener(); } + super.onStop(); } private void onClickStart(View v) { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java index f1ac32a51..581e487f0 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java @@ -58,10 +58,10 @@ public abstract class ModVersionListFragment extends Fragment implements Runn } @Override - public void onDestroyView() { + public void onStop() { ModloaderListenerProxy taskProxy = getTaskProxy(); if(taskProxy != null) taskProxy.detachListener(); - super.onDestroyView(); + super.onStop(); } @Override