From e4f6666cb2eb4ccbefe7314fc1219016a2b391a8 Mon Sep 17 00:00:00 2001 From: Tomasz Pieszko Date: Mon, 4 May 2020 11:12:13 +0200 Subject: [PATCH] [MOD] Use Cronet from Play Services, as default instead of using embedded one. It lets to reduce APK size ~8MB. --- extensions/cronet/build.gradle | 2 +- .../ext/cronet/CronetDataSourceTest.java | 71 ++++++++++++++++--- 2 files changed, 63 insertions(+), 10 deletions(-) diff --git a/extensions/cronet/build.gradle b/extensions/cronet/build.gradle index 742b163ebf..c27bc37ff0 100644 --- a/extensions/cronet/build.gradle +++ b/extensions/cronet/build.gradle @@ -31,7 +31,7 @@ android { } dependencies { - api 'org.chromium.net:cronet-embedded:76.3809.111' + api "com.google.android.gms:play-services-cronet:17.0.0" implementation project(modulePrefix + 'library-core') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion diff --git a/extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java b/extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java index bf1ae19064..5835e29c06 100644 --- a/extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java +++ b/extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java @@ -47,7 +47,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.TreeMap; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicInteger; @@ -56,7 +58,6 @@ import org.chromium.net.CronetEngine; import org.chromium.net.NetworkException; import org.chromium.net.UrlRequest; import org.chromium.net.UrlResponseInfo; -import org.chromium.net.impl.UrlResponseInfoImpl; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -147,14 +148,66 @@ public final class CronetDataSourceTest { private UrlResponseInfo createUrlResponseInfoWithUrl(String url, int statusCode) { ArrayList> responseHeaderList = new ArrayList<>(); responseHeaderList.addAll(testResponseHeader.entrySet()); - return new UrlResponseInfoImpl( - Collections.singletonList(url), - statusCode, - null, // httpStatusText - responseHeaderList, - false, // wasCached - null, // negotiatedProtocol - null); // proxyServer + return new UrlResponseInfo() { + @Override + public String getUrl() { + return url; + } + + @Override + public List getUrlChain() { + return null; + } + + @Override + public int getHttpStatusCode() { + return statusCode; + } + + @Override + public String getHttpStatusText() { + return null; + } + + @Override + public List> getAllHeadersAsList() { + return responseHeaderList; + } + + @Override + public Map> getAllHeaders() { + Map> map = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + for (Map.Entry entry : responseHeaderList) { + List values = new ArrayList<>(); + if (map.containsKey(entry.getKey())) { + values.addAll(map.get(entry.getKey())); + } + values.add(entry.getValue()); + map.put(entry.getKey(), Collections.unmodifiableList(values)); + } + return Collections.unmodifiableMap(map); + } + + @Override + public boolean wasCached() { + return false; + } + + @Override + public String getNegotiatedProtocol() { + return null; + } + + @Override + public String getProxyServer() { + return null; + } + + @Override + public long getReceivedByteCount() { + return 0; + } + }; } @Test