mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-14 15:17:02 -04:00
fix[ModVersionListFragment]: Faulty taskProxy logic
Code thought taskProxy was being set to null, when in reality it was actually just the value of it. Rather than just read the value of the key, I just delete the key itself because outside of installing something, we don't need it at all. This bug caused anything implementing ModVersionListFragment to disable the list after one install as the code that handles the edgecase of taskProxy being not null was being triggered but not reset post-install. The faulty code was intended to block the user from being able to run multiple install tasks at once, which wouldn't go well.
This commit is contained in:
parent
66db228605
commit
c32f459caf
@ -17,7 +17,6 @@ import androidx.fragment.app.Fragment;
|
|||||||
import net.kdt.pojavlaunch.R;
|
import net.kdt.pojavlaunch.R;
|
||||||
import net.kdt.pojavlaunch.Tools;
|
import net.kdt.pojavlaunch.Tools;
|
||||||
import net.kdt.pojavlaunch.extra.ExtraCore;
|
import net.kdt.pojavlaunch.extra.ExtraCore;
|
||||||
import net.kdt.pojavlaunch.mirrors.DownloadMirror;
|
|
||||||
import net.kdt.pojavlaunch.modloaders.ModloaderDownloadListener;
|
import net.kdt.pojavlaunch.modloaders.ModloaderDownloadListener;
|
||||||
import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
|
import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
|
||||||
import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
|
import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
|
||||||
@ -106,7 +105,7 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
|||||||
Object forgeVersion = expandableListView.getExpandableListAdapter().getChild(i, i1);
|
Object forgeVersion = expandableListView.getExpandableListAdapter().getChild(i, i1);
|
||||||
ModloaderListenerProxy taskProxy = new ModloaderListenerProxy();
|
ModloaderListenerProxy taskProxy = new ModloaderListenerProxy();
|
||||||
Runnable downloadTask = createDownloadTask(forgeVersion, taskProxy);
|
Runnable downloadTask = createDownloadTask(forgeVersion, taskProxy);
|
||||||
setTaskProxy(taskProxy);
|
setTaskProxyValue(taskProxy);
|
||||||
taskProxy.attachListener(this);
|
taskProxy.attachListener(this);
|
||||||
mExpandableListView.setEnabled(false);
|
mExpandableListView.setEnabled(false);
|
||||||
new Thread(downloadTask).start();
|
new Thread(downloadTask).start();
|
||||||
@ -118,7 +117,7 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
|||||||
Tools.runOnUiThread(()->{
|
Tools.runOnUiThread(()->{
|
||||||
Context context = requireContext();
|
Context context = requireContext();
|
||||||
getTaskProxy().detachListener();
|
getTaskProxy().detachListener();
|
||||||
setTaskProxy(null);
|
deleteTaskProxy();
|
||||||
mExpandableListView.setEnabled(true);
|
mExpandableListView.setEnabled(true);
|
||||||
// Read the comment in FabricInstallFragment.onDownloadFinished() to see how this works
|
// Read the comment in FabricInstallFragment.onDownloadFinished() to see how this works
|
||||||
getParentFragmentManager().popBackStackImmediate();
|
getParentFragmentManager().popBackStackImmediate();
|
||||||
@ -131,7 +130,7 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
|||||||
Tools.runOnUiThread(()->{
|
Tools.runOnUiThread(()->{
|
||||||
Context context = requireContext();
|
Context context = requireContext();
|
||||||
getTaskProxy().detachListener();
|
getTaskProxy().detachListener();
|
||||||
setTaskProxy(null);
|
deleteTaskProxy();
|
||||||
mExpandableListView.setEnabled(true);
|
mExpandableListView.setEnabled(true);
|
||||||
Tools.dialog(context,
|
Tools.dialog(context,
|
||||||
context.getString(R.string.global_error),
|
context.getString(R.string.global_error),
|
||||||
@ -144,15 +143,18 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
|||||||
Tools.runOnUiThread(()->{
|
Tools.runOnUiThread(()->{
|
||||||
Context context = requireContext();
|
Context context = requireContext();
|
||||||
getTaskProxy().detachListener();
|
getTaskProxy().detachListener();
|
||||||
setTaskProxy(null);
|
deleteTaskProxy();
|
||||||
mExpandableListView.setEnabled(true);
|
mExpandableListView.setEnabled(true);
|
||||||
Tools.showError(context, e);
|
Tools.showError(context, e);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTaskProxy(ModloaderListenerProxy proxy) {
|
private void setTaskProxyValue(ModloaderListenerProxy proxy) {
|
||||||
ExtraCore.setValue(mExtraTag, proxy);
|
ExtraCore.setValue(mExtraTag, proxy);
|
||||||
}
|
}
|
||||||
|
private void deleteTaskProxy(){
|
||||||
|
ExtraCore.removeValue(mExtraTag);
|
||||||
|
}
|
||||||
|
|
||||||
private ModloaderListenerProxy getTaskProxy() {
|
private ModloaderListenerProxy getTaskProxy() {
|
||||||
return (ModloaderListenerProxy) ExtraCore.getValue(mExtraTag);
|
return (ModloaderListenerProxy) ExtraCore.getValue(mExtraTag);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user