From 0018aa15758be32daf7b603c3c421510edfa77a1 Mon Sep 17 00:00:00 2001 From: Christoph Weitkamp Date: Fri, 20 Nov 2020 12:22:41 +0100 Subject: [PATCH 1/2] Added handling for responseType 'LOAD_CANCELLED' Signed-off-by: Christoph Weitkamp --- src/main/java/su/litvak/chromecast/api/v2/Channel.java | 2 +- .../java/su/litvak/chromecast/api/v2/StandardResponse.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/su/litvak/chromecast/api/v2/Channel.java b/src/main/java/su/litvak/chromecast/api/v2/Channel.java index d9b8295..2f9a261 100644 --- a/src/main/java/su/litvak/chromecast/api/v2/Channel.java +++ b/src/main/java/su/litvak/chromecast/api/v2/Channel.java @@ -380,7 +380,7 @@ private T send(String namespace, Request message, String de if (response instanceof StandardResponse.Invalid) { StandardResponse.Invalid invalid = (StandardResponse.Invalid) response; throw new ChromeCastException("Invalid request: " + invalid.reason); - } else if (response instanceof StandardResponse.LoadFailed) { + } else if (response instanceof StandardResponse.LoadCancelled || response instanceof StandardResponse.LoadFailed) { throw new ChromeCastException("Unable to load media"); } else if (response instanceof StandardResponse.LaunchError) { StandardResponse.LaunchError launchError = (StandardResponse.LaunchError) response; diff --git a/src/main/java/su/litvak/chromecast/api/v2/StandardResponse.java b/src/main/java/su/litvak/chromecast/api/v2/StandardResponse.java index 0bfd8cc..3bd61cf 100644 --- a/src/main/java/su/litvak/chromecast/api/v2/StandardResponse.java +++ b/src/main/java/su/litvak/chromecast/api/v2/StandardResponse.java @@ -33,6 +33,7 @@ @JsonSubTypes.Type(name = "MEDIA_STATUS", value = StandardResponse.MediaStatus.class), @JsonSubTypes.Type(name = "MULTIZONE_STATUS", value = StandardResponse.MultizoneStatus.class), @JsonSubTypes.Type(name = "CLOSE", value = StandardResponse.Close.class), + @JsonSubTypes.Type(name = "LOAD_CANCELLED", value = StandardResponse.LoadCancelled.class), @JsonSubTypes.Type(name = "LOAD_FAILED", value = StandardResponse.LoadFailed.class), @JsonSubTypes.Type(name = "LAUNCH_ERROR", value = StandardResponse.LaunchError.class), @JsonSubTypes.Type(name = "DEVICE_ADDED", value = StandardResponse.DeviceAdded.class), @@ -66,6 +67,11 @@ static class Pong extends StandardResponse {} */ static class Close extends StandardResponse {} + /** + * Identifies that loading of media has been cancelled. + */ + static class LoadCancelled extends StandardResponse {} + /** * Identifies that loading of media has failed. */ From 287bc40afd8b93cb17837f10a3739323e9c1f96d Mon Sep 17 00:00:00 2001 From: Christoph Weitkamp Date: Mon, 23 Nov 2020 16:13:59 +0100 Subject: [PATCH 2/2] Incorporated comments from review Signed-off-by: Christoph Weitkamp --- src/main/java/su/litvak/chromecast/api/v2/Channel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/su/litvak/chromecast/api/v2/Channel.java b/src/main/java/su/litvak/chromecast/api/v2/Channel.java index 2f9a261..209269b 100644 --- a/src/main/java/su/litvak/chromecast/api/v2/Channel.java +++ b/src/main/java/su/litvak/chromecast/api/v2/Channel.java @@ -380,8 +380,10 @@ private T send(String namespace, Request message, String de if (response instanceof StandardResponse.Invalid) { StandardResponse.Invalid invalid = (StandardResponse.Invalid) response; throw new ChromeCastException("Invalid request: " + invalid.reason); - } else if (response instanceof StandardResponse.LoadCancelled || response instanceof StandardResponse.LoadFailed) { - throw new ChromeCastException("Unable to load media"); + } else if (response instanceof StandardResponse.LoadCancelled) { + throw new ChromeCastException("Unable to load media: Load cancelled"); + } else if (response instanceof StandardResponse.LoadFailed) { + throw new ChromeCastException("Unable to load media: Load failed"); } else if (response instanceof StandardResponse.LaunchError) { StandardResponse.LaunchError launchError = (StandardResponse.LaunchError) response; throw new ChromeCastException("Application launch error: " + launchError.reason);