Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
bb82e7df
authored
Jun 25, 2021
by
olly
Committed by
Oliver Woodman
Jun 30, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Cronet: Align terminology with documentation
PiperOrigin-RevId: 381472436
parent
6fe2f25f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
23 deletions
extensions/cronet/README.md
extensions/cronet/src/main/java/com/google/android/exoplayer2/ext/cronet/CronetEngineWrapper.java
extensions/cronet/src/main/java/com/google/android/exoplayer2/ext/cronet/CronetUtil.java
extensions/cronet/README.md
View file @
bb82e7df
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
The Cronet extension is an
[
HttpDataSource
][]
implementation using
[
Cronet
][]
.
The Cronet extension is an
[
HttpDataSource
][]
implementation using
[
Cronet
][]
.
[
HttpDataSource
]:
https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
[
HttpDataSource
]:
https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
[
Cronet
]:
https://
chromium.googlesource.com/chromium/src/+/master/components/cronet?autodive=0%2F%2F
[
Cronet
]:
https://
developer.android.com/guide/topics/connectivity/cronet
## Getting the extension ##
## Getting the extension ##
...
@@ -76,12 +76,6 @@ approximately 8MB to your application, however it may be suitable if:
...
@@ -76,12 +76,6 @@ approximately 8MB to your application, however it may be suitable if:
not widely available.
not widely available.
*
You want to control the exact version of the Cronet implementation being used.
*
You want to control the exact version of the Cronet implementation being used.
If you do embed the library, you can specify which implementation should
be preferred if the Google Play Services implementation is also available. This
is controlled by a
`preferGMSCoreCronet`
parameter, which can be passed to the
`CronetEngineWrapper`
constructor (GMS Core is another name for Google Play
Services).
## Links ##
## Links ##
*
[
Javadoc
][]
: Classes matching
`com.google.android.exoplayer2.ext.cronet.*`
*
[
Javadoc
][]
: Classes matching
`com.google.android.exoplayer2.ext.cronet.*`
...
...
extensions/cronet/src/main/java/com/google/android/exoplayer2/ext/cronet/CronetEngineWrapper.java
View file @
bb82e7df
...
@@ -53,12 +53,12 @@ public final class CronetEngineWrapper {
...
@@ -53,12 +53,12 @@ public final class CronetEngineWrapper {
* @param context A context.
* @param context A context.
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
* {@link CronetEngine}.
* {@link CronetEngine}.
* @param preferG
MSCoreCronet Whether Cronet from GMSCore should be preferred over natively
* @param preferG
ooglePlayServices Whether Cronet from Google Play Services should be preferred
*
bundled Cronet
if both are available.
*
over Cronet Embedded,
if both are available.
*/
*/
public
CronetEngineWrapper
(
public
CronetEngineWrapper
(
Context
context
,
@Nullable
String
userAgent
,
boolean
preferG
MSCoreCronet
)
{
Context
context
,
@Nullable
String
userAgent
,
boolean
preferG
ooglePlayServices
)
{
cronetEngine
=
CronetUtil
.
buildCronetEngine
(
context
,
userAgent
,
preferG
MSCoreCronet
);
cronetEngine
=
CronetUtil
.
buildCronetEngine
(
context
,
userAgent
,
preferG
ooglePlayServices
);
}
}
/**
/**
...
...
extensions/cronet/src/main/java/com/google/android/exoplayer2/ext/cronet/CronetUtil.java
View file @
bb82e7df
...
@@ -50,13 +50,13 @@ public final class CronetUtil {
...
@@ -50,13 +50,13 @@ public final class CronetUtil {
* @param context A context.
* @param context A context.
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
* {@link CronetEngine}.
* {@link CronetEngine}.
* @param preferG
MSCoreCronet Whether Cronet from GMSCore should be preferred over natively
* @param preferG
ooglePlayServices Whether Cronet from Google Play Services should be preferred
*
bundled Cronet
, if both are available.
*
over Cronet Embedded
, if both are available.
* @return The {@link CronetEngine}, or {@code null} if no suitable engine could be built.
* @return The {@link CronetEngine}, or {@code null} if no suitable engine could be built.
*/
*/
@Nullable
@Nullable
public
static
CronetEngine
buildCronetEngine
(
public
static
CronetEngine
buildCronetEngine
(
Context
context
,
@Nullable
String
userAgent
,
boolean
preferG
MSCoreCronet
)
{
Context
context
,
@Nullable
String
userAgent
,
boolean
preferG
ooglePlayServices
)
{
List
<
CronetProvider
>
cronetProviders
=
new
ArrayList
<>(
CronetProvider
.
getAllProviders
(
context
));
List
<
CronetProvider
>
cronetProviders
=
new
ArrayList
<>(
CronetProvider
.
getAllProviders
(
context
));
// Remove disabled and fallback Cronet providers from list.
// Remove disabled and fallback Cronet providers from list.
for
(
int
i
=
cronetProviders
.
size
()
-
1
;
i
>=
0
;
i
--)
{
for
(
int
i
=
cronetProviders
.
size
()
-
1
;
i
>=
0
;
i
--)
{
...
@@ -66,7 +66,8 @@ public final class CronetUtil {
...
@@ -66,7 +66,8 @@ public final class CronetUtil {
}
}
}
}
// Sort remaining providers by type and version.
// Sort remaining providers by type and version.
CronetProviderComparator
providerComparator
=
new
CronetProviderComparator
(
preferGMSCoreCronet
);
CronetProviderComparator
providerComparator
=
new
CronetProviderComparator
(
preferGooglePlayServices
);
Collections
.
sort
(
cronetProviders
,
providerComparator
);
Collections
.
sort
(
cronetProviders
,
providerComparator
);
for
(
int
i
=
0
;
i
<
cronetProviders
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
cronetProviders
.
size
();
i
++)
{
String
providerName
=
cronetProviders
.
get
(
i
).
getName
();
String
providerName
=
cronetProviders
.
get
(
i
).
getName
();
...
@@ -81,12 +82,12 @@ public final class CronetUtil {
...
@@ -81,12 +82,12 @@ public final class CronetUtil {
}
catch
(
SecurityException
e
)
{
}
catch
(
SecurityException
e
)
{
Log
.
w
(
Log
.
w
(
TAG
,
TAG
,
"Failed to build CronetEngine. Please check
if current
process has "
"Failed to build CronetEngine. Please check
that the
process has "
+
"android.permission.ACCESS_NETWORK_STATE."
);
+
"android.permission.ACCESS_NETWORK_STATE."
);
}
catch
(
UnsatisfiedLinkError
e
)
{
}
catch
(
UnsatisfiedLinkError
e
)
{
Log
.
w
(
Log
.
w
(
TAG
,
TAG
,
"Failed to link Cronet binaries. Please check
if native Cronet binaries are
"
"Failed to link Cronet binaries. Please check
that native Cronet binaries are
"
+
"bundled into your app."
);
+
"bundled into your app."
);
}
}
}
}
...
@@ -103,12 +104,13 @@ public final class CronetUtil {
...
@@ -103,12 +104,13 @@ public final class CronetUtil {
* copy because GMSCore CronetProvider classes are unavailable in some (internal to Google)
* copy because GMSCore CronetProvider classes are unavailable in some (internal to Google)
* build configurations.
* build configurations.
*/
*/
private
static
final
String
GMS_CORE_PROVIDER_NAME
=
"Google-Play-Services-Cronet-Provider"
;
private
static
final
String
GOOGLE_PLAY_SERVICES_PROVIDER_NAME
=
"Google-Play-Services-Cronet-Provider"
;
private
final
boolean
preferG
MSCoreCronet
;
private
final
boolean
preferG
ooglePlayServices
;
public
CronetProviderComparator
(
boolean
preferG
MSCoreCronet
)
{
public
CronetProviderComparator
(
boolean
preferG
ooglePlayServices
)
{
this
.
preferG
MSCoreCronet
=
preferGMSCoreCronet
;
this
.
preferG
ooglePlayServices
=
preferGooglePlayServices
;
}
}
@Override
@Override
...
@@ -128,8 +130,8 @@ public final class CronetUtil {
...
@@ -128,8 +130,8 @@ public final class CronetUtil {
String
providerName
=
provider
.
getName
();
String
providerName
=
provider
.
getName
();
if
(
CronetProvider
.
PROVIDER_NAME_APP_PACKAGED
.
equals
(
providerName
))
{
if
(
CronetProvider
.
PROVIDER_NAME_APP_PACKAGED
.
equals
(
providerName
))
{
return
1
;
return
1
;
}
else
if
(
G
MS_CORE
_PROVIDER_NAME
.
equals
(
providerName
))
{
}
else
if
(
G
OOGLE_PLAY_SERVICES
_PROVIDER_NAME
.
equals
(
providerName
))
{
return
preferG
MSCoreCronet
?
0
:
2
;
return
preferG
ooglePlayServices
?
0
:
2
;
}
else
{
}
else
{
return
3
;
return
3
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment