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 8033e13c8..07cbc6481 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.File; 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 class BTAInstallFragment extends ModVersionListFragment 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 @@ public abstract class FabriclikeInstallFragment extends Fragment implements Modl 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 9455a23b4..bd58890b3 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 @@ import java.util.List; 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 class ForgeInstallFragment extends ModVersionListFragment> { 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 68530d2cf..1260cdde6 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 androidx.fragment.app.Fragment; 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.File; 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 abstract class ModVersionListFragment extends Fragment implements Runn }); } + 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 abe7c0b39..8b5a32b15 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 android.widget.ExpandableListAdapter; 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 @@ import java.io.IOException; 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 class OptiFineInstallFragment extends ModVersionListFragment