Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1519)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java

Issue 1686723002: [Cast,Android,PresentationAPI] Allow sending string app messages vs valid JSON ones. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java
index 3abc122af658dfd43e4429916481e2d439b19ed6..a45554fb3624afae2c7918fe167696933a1382d8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSession.java
@@ -512,7 +512,7 @@ public class CastSession implements MediaNotificationListener {
messageType = sMediaOverloadedMessageTypes.get(messageType);
jsonCastMessage.put("type", messageType);
}
- return sendCastMessage(jsonCastMessage, MEDIA_NAMESPACE, clientId, sequenceNumber);
+ return sendJsonCastMessage(jsonCastMessage, MEDIA_NAMESPACE, clientId, sequenceNumber);
}
return true;
@@ -613,9 +613,6 @@ public class CastSession implements MediaNotificationListener {
JSONObject jsonAppMessageWrapper = jsonMessage.getJSONObject("message");
- JSONObject actualMessage = jsonAppMessageWrapper.getJSONObject("message");
- if (actualMessage == null) return false;
-
if (!mSessionId.equals(jsonAppMessageWrapper.getString("sessionId"))) return false;
String namespaceName = jsonAppMessageWrapper.getString("namespaceName");
@@ -624,10 +621,20 @@ public class CastSession implements MediaNotificationListener {
if (!mNamespaces.contains(namespaceName)) return false;
int sequenceNumber = jsonMessage.optInt("sequenceNumber", INVALID_SEQUENCE_NUMBER);
- return sendCastMessage(actualMessage, namespaceName, clientId, sequenceNumber);
+
+ Object actualMessageObject = jsonAppMessageWrapper.get("message");
+ if (actualMessageObject == null) return false;
+
+ if (actualMessageObject instanceof String) {
+ String actualMessage = jsonAppMessageWrapper.getString("message");
+ return sendStringCastMessage(actualMessage, namespaceName, clientId, sequenceNumber);
+ }
+
+ JSONObject actualMessage = jsonAppMessageWrapper.getJSONObject("message");
+ return sendJsonCastMessage(actualMessage, namespaceName, clientId, sequenceNumber);
}
- private boolean sendCastMessage(
+ private boolean sendJsonCastMessage(
JSONObject message,
final String namespace,
final String clientId,
@@ -649,10 +656,18 @@ public class CastSession implements MediaNotificationListener {
mRequests.append(requestId, new RequestRecord(clientId, sequenceNumber));
}
+ return sendStringCastMessage(message.toString(), namespace, clientId, sequenceNumber);
+ }
+
+ private boolean sendStringCastMessage(
+ final String message,
+ final String namespace,
+ final String clientId,
+ final int sequenceNumber) {
Log.d(TAG, "Sending message to Cast device in namespace %s: %s", namespace, message);
try {
- Cast.CastApi.sendMessage(mApiClient, namespace, message.toString())
+ Cast.CastApi.sendMessage(mApiClient, namespace, message)
.setResultCallback(
new ResultCallback<Status>() {
@Override
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698