CM: Reload contributions before counting updates

This commit is contained in:
Jakub Valtar
2015-09-28 16:24:57 -04:00
parent 9c327a9c6b
commit 75f8d37df7
2 changed files with 33 additions and 14 deletions

View File

@@ -171,6 +171,15 @@ public class ContributionManager {
@Override
public void run() {
listing.replaceContribution(ad, contribution);
/*
if (contribution.getType() == ContributionType.MODE) {
List<ModeContribution> contribModes = editor.getBase().getModeContribs();
if (!contribModes.contains(contribution)) {
contribModes.add((ModeContribution) contribution);
}
}
*/
base.refreshContribs(contribution.getType());
base.setUpdatesAvailable(listing.countUpdates(base));
}
});
@@ -179,15 +188,6 @@ public class ContributionManager {
} catch (InvocationTargetException e) {
throw (Exception) e.getCause();
}
/*
if (contribution.getType() == ContributionType.MODE) {
List<ModeContribution> contribModes = editor.getBase().getModeContribs();
if (!contribModes.contains(contribution)) {
contribModes.add((ModeContribution) contribution);
}
}
*/
base.refreshContribs(contribution.getType());
}
installProgress.finished();
}
@@ -270,6 +270,7 @@ public class ContributionManager {
public void run() {
listing.replaceContribution(ad, contribution);
base.refreshContribs(contribution.getType());
base.setUpdatesAvailable(listing.countUpdates(base));
}
});
} catch (InterruptedException e) {
@@ -366,7 +367,7 @@ public class ContributionManager {
// to give the user an idea about progress being made.
boolean isPrevDone = false;
for (AvailableContribution contrib : list) {
for (final AvailableContribution contrib : list) {
if (contrib.getType() != ContributionType.LIBRARY) {
continue;
}
@@ -401,12 +402,29 @@ public class ContributionManager {
String arg = "contrib.import.progress.install";
editor.statusNotice(Language.interpolate(arg,contrib.name));
LocalContribution contribution =
final LocalContribution contribution =
contrib.install(base, contribZip, false, null);
if (contribution != null) {
listing.replaceContribution(contrib, contribution);
base.refreshContribs(contribution.getType());
try {
EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
listing.replaceContribution(contrib, contribution);
base.refreshContribs(contribution.getType());
base.setUpdatesAvailable(listing.countUpdates(base));
}
});
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
Throwable cause = e.getCause();
if (cause instanceof RuntimeException) {
throw (RuntimeException) cause;
} else {
cause.printStackTrace();
}
}
}
contribZip.delete();

View File

@@ -473,6 +473,7 @@ public abstract class LocalContribution extends Contribution {
} else {
contribListing.replaceContribution(LocalContribution.this, advertisedVersion);
}
base.refreshContribs(LocalContribution.this.getType());
base.setUpdatesAvailable(contribListing.countUpdates(base));
}
});
@@ -498,6 +499,7 @@ public abstract class LocalContribution extends Contribution {
public void run() {
contribListing.replaceContribution(LocalContribution.this,
LocalContribution.this);
base.refreshContribs(LocalContribution.this.getType());
base.setUpdatesAvailable(contribListing.countUpdates(base));
}
});
@@ -516,7 +518,6 @@ public abstract class LocalContribution extends Contribution {
status.setErrorMessage("Could not delete the contribution's files");
}
}
base.refreshContribs(this.getType());
if (success) {
pm.finished();
} else {