Mod release browser cleanup

This commit is contained in:
Anuken
2022-06-27 10:06:58 -04:00
parent b72702957b
commit 3ef0f0f56e
3 changed files with 46 additions and 40 deletions

View File

@ -46,7 +46,7 @@ mods.browser.add = Install
mods.browser.reinstall = Reinstall
mods.browser.view-releases = View Releases
mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
mods.browser.latest = <Latest>
mods.browser.latest = [lightgray][Latest]
mods.browser.releases = Releases
mods.github.open = Repo
mods.github.open-release = Release Page

View File

@ -40,7 +40,7 @@ public class ModsDialog extends BaseDialog{
private float modImportProgress;
private String searchtxt = "";
private @Nullable Seq<ModListing> modList;
private boolean orderDate = false;
private boolean orderDate = true;
private BaseDialog currentContent;
private BaseDialog browser;
@ -506,48 +506,54 @@ public class ModsDialog extends BaseDialog{
load.cont.add("[accent]Fetching Releases...");
load.show();
Http.get(ghApi + "/repos/" + mod.repo + "/releases", res -> {
load.hide();
var json = Jval.read(res.getResultAsString());
JsonArray releases = json.asArray();
if(releases.size == 0){
ui.showInfo("@mods.browser.noreleases");
}else{
sel.hide();
BaseDialog downloads = new BaseDialog("@mods.browser.releases");
downloads.cont.pane(p -> {
for(int j = 0; j < releases.size; j++){
var release = releases.get(j);
Core.app.post(() -> {
load.hide();
int index = j;
p.table(((TextureRegionDrawable) Tex.whiteui).tint(Pal.darkestGray), t -> {
t.add((index == 0 ? Core.bundle.get("mods.browser.latest") + " " : "") + release.getString("name")).top().left().growX().wrap().pad(5f).color(Pal.accent);
t.row();
t.add((release.getString("published_at")).substring(0, 10).replaceAll("-", "/")).top().left().growX().wrap().pad(5f).color(Color.gray);
t.table(b -> {
b.defaults().size(150f, 54f).pad(2f);
b.button("@mods.github.open-release", Icon.link, () -> Core.app.openURI(release.getString("html_url")));
b.button("@mods.browser.add", Icon.download, () -> {
String releaseUrl = release.getString("url");
githubImportMod(mod.repo, mod.hasJava, releaseUrl.substring(releaseUrl.lastIndexOf("/") + 1));
});
}).right();
}).margin(5f).growX().pad(5f);
if(releases.size == 0){
ui.showInfo("@mods.browser.noreleases");
}else{
sel.hide();
BaseDialog downloads = new BaseDialog("@mods.browser.releases");
downloads.cont.pane(p -> {
for(int j = 0; j < releases.size; j++){
var release = releases.get(j);
if(j < releases.size - 1) p.row();
}
}).width(600f).scrollX(false).fillY();
downloads.buttons.button("@back", Icon.left, () -> {
downloads.clear();
downloads.hide();
sel.show();
}).size(150f, 54f).pad(2f);
downloads.keyDown(KeyCode.escape, downloads::hide);
downloads.keyDown(KeyCode.back, downloads::hide);
downloads.hidden(sel::show);
downloads.show();
}
});
int index = j;
p.table(((TextureRegionDrawable)Tex.whiteui).tint(Pal.darkestGray), t -> {
t.add("[accent]" + release.getString("name") + (index == 0 ? " " + Core.bundle.get("mods.browser.latest") : "")).top().left().growX().wrap().pad(5f);
t.row();
t.add((release.getString("published_at")).substring(0, 10).replaceAll("-", "/")).top().left().growX().wrap().pad(5f).color(Color.gray);
t.table(b -> {
b.defaults().size(150f, 54f).pad(2f);
b.button("@mods.github.open-release", Icon.link, () -> Core.app.openURI(release.getString("html_url")));
b.button("@mods.browser.add", Icon.download, () -> {
String releaseUrl = release.getString("url");
githubImportMod(mod.repo, mod.hasJava, releaseUrl.substring(releaseUrl.lastIndexOf("/") + 1));
});
}).right();
}).margin(5f).growX().pad(5f);
if(j < releases.size - 1) p.row();
}
}).width(600f).scrollX(false).fillY();
downloads.buttons.button("@back", Icon.left, () -> {
downloads.clear();
downloads.hide();
sel.show();
}).size(150f, 54f).pad(2f);
downloads.keyDown(KeyCode.escape, downloads::hide);
downloads.keyDown(KeyCode.back, downloads::hide);
downloads.hidden(sel::show);
downloads.show();
}
});
}, t -> Core.app.post(() -> {
modError(t);
load.hide();
}));
});
sel.keyDown(KeyCode.escape, sel::hide);
sel.keyDown(KeyCode.back, sel::hide);

View File

@ -25,4 +25,4 @@ org.gradle.caching=true
#used for slow jitpack builds; TODO see if this actually works
org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000
archash=47a46d410b
archash=da27a54ef9