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.reinstall = Reinstall
mods.browser.view-releases = View Releases 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.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.browser.releases = Releases
mods.github.open = Repo mods.github.open = Repo
mods.github.open-release = Release Page mods.github.open-release = Release Page

View File

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