From 01de8c81897e90ee3e438064f4342ade9fc9e540 Mon Sep 17 00:00:00 2001 From: artdeell Date: Mon, 10 Feb 2025 22:43:48 +0300 Subject: [PATCH] Feat[mod_fragment]: remove explicit static variable in each mod install fragment --- .../fragments/BTAInstallFragment.java | 17 ++++++----------- .../fragments/FabricInstallFragment.java | 13 +------------ .../fragments/FabriclikeInstallFragment.java | 13 ++++++++++--- .../fragments/ForgeInstallFragment.java | 13 +++---------- .../fragments/ModVersionListFragment.java | 18 ++++++++++++++---- .../fragments/OptiFineInstallFragment.java | 16 +++------------- .../fragments/QuiltInstallFragment.java | 12 +----------- 7 files changed, 38 insertions(+), 64 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/BTAInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/BTAInstallFragment.java index 8033e13c84..07cbc64811 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/BTAInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/BTAInstallFragment.java @@ -14,7 +14,12 @@ import java.io.IOException; public class BTAInstallFragment extends ModVersionListFragment { - private static ModloaderListenerProxy sTaskProxy; + public static final String TAG = "BTAInstallFragment"; + + public BTAInstallFragment() { + super(TAG); + } + @Override public int getTitleText() { return R.string.select_bta_version; @@ -25,21 +30,11 @@ public int getNoDataMsg() { return R.string.modloader_dl_failed_to_load_list; } - @Override - public ModloaderListenerProxy getTaskProxy() { - return sTaskProxy; - } - @Override public BTAUtils.BTAVersionList loadVersionList() throws IOException { return BTAUtils.downloadVersionList(); } - @Override - public void setTaskProxy(ModloaderListenerProxy proxy) { - sTaskProxy = proxy; - } - @Override public ExpandableListAdapter createAdapter(BTAUtils.BTAVersionList versionList, LayoutInflater layoutInflater) { return new BTAVersionListAdapter(versionList, layoutInflater); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java index 6bcc93b846..39a2ad33c0 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java @@ -6,19 +6,8 @@ public class FabricInstallFragment extends FabriclikeInstallFragment { public static final String TAG = "FabricInstallFragment"; - private static ModloaderListenerProxy sTaskProxy; public FabricInstallFragment() { - super(FabriclikeUtils.FABRIC_UTILS); - } - - @Override - protected ModloaderListenerProxy getListenerProxy() { - return sTaskProxy; - } - - @Override - protected void setListenerProxy(ModloaderListenerProxy listenerProxy) { - sTaskProxy = listenerProxy; + super(FabriclikeUtils.FABRIC_UTILS, TAG); } } 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 5366fe58cc..c8b38ae355 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 @@ -21,6 +21,7 @@ import net.kdt.pojavlaunch.PojavApplication; import net.kdt.pojavlaunch.R; import net.kdt.pojavlaunch.Tools; +import net.kdt.pojavlaunch.extra.ExtraCore; import net.kdt.pojavlaunch.modloaders.FabriclikeDownloadTask; import net.kdt.pojavlaunch.modloaders.FabriclikeUtils; import net.kdt.pojavlaunch.modloaders.FabricVersion; @@ -36,6 +37,7 @@ public abstract class FabriclikeInstallFragment extends Fragment implements ModloaderDownloadListener, CompoundButton.OnCheckedChangeListener { private final FabriclikeUtils mFabriclikeUtils; + private final String mExtraTag; private Spinner mGameVersionSpinner; private FabricVersion[] mGameVersionArray; private Future mGameVersionFuture; @@ -48,9 +50,10 @@ public abstract class FabriclikeInstallFragment extends Fragment implements Modl private Button mStartButton; private View mRetryView; private CheckBox mOnlyStableCheckbox; - protected FabriclikeInstallFragment(FabriclikeUtils mFabriclikeUtils) { + protected FabriclikeInstallFragment(FabriclikeUtils mFabriclikeUtils, String mFragmentTag) { super(R.layout.fragment_fabric_install); this.mFabriclikeUtils = mFabriclikeUtils; + this.mExtraTag = mFragmentTag + "_proxy"; } @Override @@ -290,6 +293,10 @@ private void updateGameSpinner() { mGameVersionSpinner.setAdapter(createAdapter(mGameVersionArray, mOnlyStableCheckbox.isChecked())); } - protected abstract ModloaderListenerProxy getListenerProxy(); - protected abstract void setListenerProxy(ModloaderListenerProxy listenerProxy); + private ModloaderListenerProxy getListenerProxy() { + return (ModloaderListenerProxy) ExtraCore.getValue(mExtraTag); + } + private void setListenerProxy(ModloaderListenerProxy listenerProxy) { + ExtraCore.setValue(mExtraTag, listenerProxy); + } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java index 9455a23b43..bd58890b32 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java @@ -21,7 +21,9 @@ public class ForgeInstallFragment extends ModVersionListFragment> { public static final String TAG = "ForgeInstallFragment"; - private static ModloaderListenerProxy sTaskProxy; + public ForgeInstallFragment() { + super(TAG); + } @Override public void onAttach(@NonNull Context context) { @@ -38,15 +40,6 @@ public int getNoDataMsg() { return R.string.forge_dl_no_installer; } - @Override - public ModloaderListenerProxy getTaskProxy() { - return sTaskProxy; - } - @Override - public void setTaskProxy(ModloaderListenerProxy proxy) { - sTaskProxy = proxy; - } - @Override public List loadVersionList() throws IOException { return ForgeUtils.downloadForgeVersions(); 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 68530d2cfd..1260cdde6c 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 @@ -16,6 +16,7 @@ import net.kdt.pojavlaunch.R; import net.kdt.pojavlaunch.Tools; +import net.kdt.pojavlaunch.extra.ExtraCore; import net.kdt.pojavlaunch.mirrors.DownloadMirror; import net.kdt.pojavlaunch.modloaders.ModloaderDownloadListener; import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy; @@ -25,14 +26,15 @@ import java.io.IOException; public abstract class ModVersionListFragment extends Fragment implements Runnable, View.OnClickListener, ExpandableListView.OnChildClickListener, ModloaderDownloadListener { - public static final String TAG = "ForgeInstallFragment"; + private final String mExtraTag; private ExpandableListView mExpandableListView; private ProgressBar mProgressBar; private LayoutInflater mInflater; private View mRetryView; - public ModVersionListFragment() { + public ModVersionListFragment(String mFragmentTag) { super(R.layout.fragment_mod_version_list); + this.mExtraTag = mFragmentTag + "_proxy"; } @Override @@ -148,11 +150,19 @@ public void onDownloadError(Exception e) { }); } + private void setTaskProxy(ModloaderListenerProxy proxy) { + ExtraCore.setValue(mExtraTag, proxy); + } + + private ModloaderListenerProxy getTaskProxy() { + return (ModloaderListenerProxy) ExtraCore.getValue(mExtraTag); + } + public abstract int getTitleText(); public abstract int getNoDataMsg(); - public abstract ModloaderListenerProxy getTaskProxy(); + public abstract T loadVersionList() throws IOException; - public abstract void setTaskProxy(ModloaderListenerProxy proxy); + public abstract ExpandableListAdapter createAdapter(T versionList, LayoutInflater layoutInflater); public abstract Runnable createDownloadTask(Object selectedVersion, ModloaderListenerProxy listenerProxy); public abstract void onDownloadFinished(Context context, File downloadedFile); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java index abe7c0b39b..8b5a32b156 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java @@ -7,7 +7,6 @@ import net.kdt.pojavlaunch.JavaGUILauncherActivity; import net.kdt.pojavlaunch.R; -import net.kdt.pojavlaunch.Tools; import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy; import net.kdt.pojavlaunch.modloaders.OptiFineDownloadTask; import net.kdt.pojavlaunch.modloaders.OptiFineUtils; @@ -18,7 +17,9 @@ public class OptiFineInstallFragment extends ModVersionListFragment { public static final String TAG = "OptiFineInstallFragment"; - private static ModloaderListenerProxy sTaskProxy; + public OptiFineInstallFragment() { + super(TAG); + } @Override public int getTitleText() { return R.string.of_dl_select_version; @@ -28,22 +29,11 @@ public int getTitleText() { public int getNoDataMsg() { return R.string.of_dl_failed_to_scrape; } - - @Override - public ModloaderListenerProxy getTaskProxy() { - return sTaskProxy; - } - @Override public OptiFineUtils.OptiFineVersions loadVersionList() throws IOException { return OptiFineUtils.downloadOptiFineVersions(); } - @Override - public void setTaskProxy(ModloaderListenerProxy proxy) { - sTaskProxy = proxy; - } - @Override public ExpandableListAdapter createAdapter(OptiFineUtils.OptiFineVersions versionList, LayoutInflater layoutInflater) { return new OptiFineVersionListAdapter(versionList, layoutInflater); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/QuiltInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/QuiltInstallFragment.java index f7356ed3db..c6c1d96a42 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/QuiltInstallFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/QuiltInstallFragment.java @@ -9,16 +9,6 @@ public class QuiltInstallFragment extends FabriclikeInstallFragment { private static ModloaderListenerProxy sTaskProxy; public QuiltInstallFragment() { - super(FabriclikeUtils.QUILT_UTILS); - } - - @Override - protected ModloaderListenerProxy getListenerProxy() { - return sTaskProxy; - } - - @Override - protected void setListenerProxy(ModloaderListenerProxy listenerProxy) { - sTaskProxy = listenerProxy; + super(FabriclikeUtils.QUILT_UTILS, TAG); } }