diff --git a/android/plugins/retrofit2-protobuf/build.gradle b/android/plugins/retrofit2-protobuf/build.gradle
index 92accde03..8f6510f55 100644
--- a/android/plugins/retrofit2-protobuf/build.gradle
+++ b/android/plugins/retrofit2-protobuf/build.gradle
@@ -25,7 +25,7 @@ android {
implementation project(':network-plugin')
implementation deps.protobuf
implementation "com.squareup.retrofit2:retrofit:2.9.0"
- implementation "com.github.hbmartin:protobuf_java_to_protobufjs:0.1.0"
+ implementation "com.github.hbmartin:protobuf_java_to_protobufjs:0.2.0"
compileOnly deps.jsr305
}
}
diff --git a/desktop/plugins/public/network/ProtobufDefinitionsRepository.tsx b/desktop/plugins/public/network/ProtobufDefinitionsRepository.tsx
index bd968cff1..814a7834d 100644
--- a/desktop/plugins/public/network/ProtobufDefinitionsRepository.tsx
+++ b/desktop/plugins/public/network/ProtobufDefinitionsRepository.tsx
@@ -63,6 +63,10 @@ export class ProtobufDefinitionsRepository {
}
}
+ public hasDefinition(method: string, path: string): boolean {
+ return this.rawDefinitions.hasOwnProperty(this.key(method, path));
+ }
+
private generateRoots(key: string) {
if (key in this.cachedDecodedDefinitions) {
return;
diff --git a/desktop/plugins/public/network/RequestDetails.tsx b/desktop/plugins/public/network/RequestDetails.tsx
index 58e071121..0f03ad16d 100644
--- a/desktop/plugins/public/network/RequestDetails.tsx
+++ b/desktop/plugins/public/network/RequestDetails.tsx
@@ -670,7 +670,11 @@ class ProtobufFormatter {
formatRequest(request: Request) {
if (
getHeaderValue(request.requestHeaders, 'content-type') ===
- 'application/x-protobuf'
+ 'application/x-protobuf' ||
+ this.protobufDefinitionRepository.hasDefinition(
+ request.method,
+ request.url,
+ )
) {
const protobufDefinition =
this.protobufDefinitionRepository.getRequestType(
@@ -681,7 +685,9 @@ class ProtobufFormatter {
return (
Could not locate protobuf definition for request body of{' '}
- {request.url}
+ {request.url}
+ Please send ProtobufJS definitions with the plugin's
+ addProtobufDefinitions method.
);
}
@@ -704,7 +710,11 @@ class ProtobufFormatter {
if (
getHeaderValue(request.responseHeaders, 'content-type') ===
'application/x-protobuf' ||
- request.url.endsWith('.proto')
+ request.url.endsWith('.proto') ||
+ this.protobufDefinitionRepository.hasDefinition(
+ request.method,
+ request.url,
+ )
) {
const protobufDefinition =
this.protobufDefinitionRepository.getResponseType(
@@ -715,7 +725,9 @@ class ProtobufFormatter {
return (
Could not locate protobuf definition for response body of{' '}
- {request.url}
+ {request.url}
+ Please send ProtobufJS definitions with the plugin's
+ addProtobufDefinitions method.
);
}