diff --git a/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java b/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java index 6dad37aa..d3af732e 100644 --- a/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java +++ b/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java @@ -184,11 +184,14 @@ public class GuiYoutubeUpload extends GuiScreen { uploadButton.setEnabled(); if (uploading) { uploadButton.onClick(() -> { - try { - upload.cancel(); - } catch (InterruptedException e) { - e.printStackTrace(); - } + setState(false); + new Thread(() -> { + try { + upload.cancel(); + } catch(InterruptedException e) { + e.printStackTrace(); + } + }).start(); }).setI18nLabel("replaymod.gui.cancel"); } else { uploadButton.onClick(() -> { @@ -219,8 +222,9 @@ public class GuiYoutubeUpload extends GuiScreen { @Override public void onFailure(Throwable t) { - if (t instanceof InterruptedException) { - progressBar.setLabel("0%"); + if (t instanceof InterruptedException || upload.isCancelled()) { + progressBar.setProgress(0); + progressBar.setLabel("%d%%"); } else { t.printStackTrace(); progressBar.setLabel(t.getLocalizedMessage()); diff --git a/src/main/java/com/replaymod/extras/youtube/YoutubeUploader.java b/src/main/java/com/replaymod/extras/youtube/YoutubeUploader.java index 63e61e66..4e2a70ca 100644 --- a/src/main/java/com/replaymod/extras/youtube/YoutubeUploader.java +++ b/src/main/java/com/replaymod/extras/youtube/YoutubeUploader.java @@ -61,6 +61,9 @@ public class YoutubeUploader { @Getter private State state; + @Getter + private volatile boolean cancelled; + public YoutubeUploader(Minecraft minecraft, File videoFile, int videoFrames, String thumbnailFormat, byte[] thumbnailImage, RenderSettings settings, VideoVisibility videoVisibility, VideoSnippet videoSnippet) @@ -78,6 +81,8 @@ public class YoutubeUploader { } public ListenableFuture