mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-12 06:05:10 -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.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;
|
||||
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);
|
||||
ModloaderListenerProxy taskProxy = new ModloaderListenerProxy();
|
||||
Runnable downloadTask = createDownloadTask(forgeVersion, taskProxy);
|
||||
setTaskProxy(taskProxy);
|
||||
setTaskProxyValue(taskProxy);
|
||||
taskProxy.attachListener(this);
|
||||
mExpandableListView.setEnabled(false);
|
||||
new Thread(downloadTask).start();
|
||||
@ -118,7 +117,7 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
||||
Tools.runOnUiThread(()->{
|
||||
Context context = requireContext();
|
||||
getTaskProxy().detachListener();
|
||||
setTaskProxy(null);
|
||||
deleteTaskProxy();
|
||||
mExpandableListView.setEnabled(true);
|
||||
// Read the comment in FabricInstallFragment.onDownloadFinished() to see how this works
|
||||
getParentFragmentManager().popBackStackImmediate();
|
||||
@ -131,7 +130,7 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
||||
Tools.runOnUiThread(()->{
|
||||
Context context = requireContext();
|
||||
getTaskProxy().detachListener();
|
||||
setTaskProxy(null);
|
||||
deleteTaskProxy();
|
||||
mExpandableListView.setEnabled(true);
|
||||
Tools.dialog(context,
|
||||
context.getString(R.string.global_error),
|
||||
@ -144,15 +143,18 @@ public abstract class ModVersionListFragment<T> extends Fragment implements Runn
|
||||
Tools.runOnUiThread(()->{
|
||||
Context context = requireContext();
|
||||
getTaskProxy().detachListener();
|
||||
setTaskProxy(null);
|
||||
deleteTaskProxy();
|
||||
mExpandableListView.setEnabled(true);
|
||||
Tools.showError(context, e);
|
||||
});
|
||||
}
|
||||
|
||||
private void setTaskProxy(ModloaderListenerProxy proxy) {
|
||||
private void setTaskProxyValue(ModloaderListenerProxy proxy) {
|
||||
ExtraCore.setValue(mExtraTag, proxy);
|
||||
}
|
||||
private void deleteTaskProxy(){
|
||||
ExtraCore.removeValue(mExtraTag);
|
||||
}
|
||||
|
||||
private ModloaderListenerProxy getTaskProxy() {
|
||||
return (ModloaderListenerProxy) ExtraCore.getValue(mExtraTag);
|
||||
|
Loading…
x
Reference in New Issue
Block a user