in stetho/src/main/java/com/facebook/stetho/inspector/network/DecompressionHelper.java [24:62]
public static InputStream teeInputWithDecompression(
NetworkPeerManager peerManager,
String requestId,
InputStream availableInputStream,
OutputStream decompressedOutput,
@Nullable String contentEncoding,
ResponseHandler responseHandler) throws IOException {
OutputStream output = decompressedOutput;
CountingOutputStream decompressedCounter = null;
if (contentEncoding != null) {
boolean gzipEncoding = GZIP_ENCODING.equals(contentEncoding);
boolean deflateEncoding = DEFLATE_ENCODING.equals(contentEncoding);
if (gzipEncoding || deflateEncoding) {
decompressedCounter = new CountingOutputStream(decompressedOutput);
if (gzipEncoding) {
output = GunzippingOutputStream.create(decompressedCounter);
} else if (deflateEncoding) {
output = new InflaterOutputStream(decompressedCounter);
}
} else {
CLog.writeToConsole(
peerManager,
Console.MessageLevel.WARNING,
Console.MessageSource.NETWORK,
"Unsupported Content-Encoding in response for request #" + requestId +
": " + contentEncoding);
}
}
return new ResponseHandlingInputStream(
availableInputStream,
requestId,
output,
decompressedCounter,
peerManager,
responseHandler);
}