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
10ee7d8e
authored
May 22, 2019
by
olly
Committed by
Toni
May 23, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Remove more classes from nullness blacklist
PiperOrigin-RevId: 249431027
parent
d8369571
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
71 additions
and
42 deletions
library/core/src/main/java/com/google/android/exoplayer2/scheduler/Requirements.java
library/core/src/main/java/com/google/android/exoplayer2/scheduler/RequirementsWatcher.java
library/core/src/main/java/com/google/android/exoplayer2/text/CaptionStyleCompat.java
library/core/src/main/java/com/google/android/exoplayer2/text/Cue.java
library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleOutputBuffer.java
library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/CssParser.java
library/core/src/main/java/com/google/android/exoplayer2/util/Util.java
library/core/src/main/java/com/google/android/exoplayer2/scheduler/Requirements.java
View file @
10ee7d8e
...
...
@@ -27,6 +27,7 @@ import android.os.Parcel;
import
android.os.Parcelable
;
import
android.os.PowerManager
;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.util.Util
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
...
...
@@ -179,7 +180,7 @@ public final class Requirements implements Parcelable {
}
@Override
public
boolean
equals
(
Object
o
)
{
public
boolean
equals
(
@Nullable
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/scheduler/RequirementsWatcher.java
View file @
10ee7d8e
...
...
@@ -27,7 +27,9 @@ import android.net.NetworkRequest;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.os.PowerManager
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.RequiresApi
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Util
;
/**
...
...
@@ -57,10 +59,10 @@ public final class RequirementsWatcher {
private
final
Requirements
requirements
;
private
final
Handler
handler
;
private
DeviceStatusChangeReceiver
receiver
;
@Nullable
private
DeviceStatusChangeReceiver
receiver
;
@Requirements
.
RequirementFlags
private
int
notMetRequirements
;
private
CapabilityValidatedCallback
networkCallback
;
@Nullable
private
CapabilityValidatedCallback
networkCallback
;
/**
* @param context Any context.
...
...
@@ -111,7 +113,7 @@ public final class RequirementsWatcher {
/** Stops watching for changes. */
public
void
stop
()
{
context
.
unregisterReceiver
(
receiver
);
context
.
unregisterReceiver
(
Assertions
.
checkNotNull
(
receiver
)
);
receiver
=
null
;
if
(
networkCallback
!=
null
)
{
unregisterNetworkCallback
();
...
...
@@ -139,7 +141,7 @@ public final class RequirementsWatcher {
if
(
Util
.
SDK_INT
>=
21
)
{
ConnectivityManager
connectivityManager
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
connectivityManager
.
unregisterNetworkCallback
(
networkCallback
);
connectivityManager
.
unregisterNetworkCallback
(
Assertions
.
checkNotNull
(
networkCallback
)
);
networkCallback
=
null
;
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/text/CaptionStyleCompat.java
View file @
10ee7d8e
...
...
@@ -19,6 +19,7 @@ import android.annotation.TargetApi;
import
android.graphics.Color
;
import
android.graphics.Typeface
;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
android.view.accessibility.CaptioningManager
;
import
android.view.accessibility.CaptioningManager.CaptionStyle
;
import
com.google.android.exoplayer2.util.Util
;
...
...
@@ -72,11 +73,15 @@ public final class CaptionStyleCompat {
*/
public
static
final
int
USE_TRACK_COLOR_SETTINGS
=
1
;
/**
* Default caption style.
*/
public
static
final
CaptionStyleCompat
DEFAULT
=
new
CaptionStyleCompat
(
Color
.
WHITE
,
Color
.
BLACK
,
Color
.
TRANSPARENT
,
EDGE_TYPE_NONE
,
Color
.
WHITE
,
null
);
/** Default caption style. */
public
static
final
CaptionStyleCompat
DEFAULT
=
new
CaptionStyleCompat
(
Color
.
WHITE
,
Color
.
BLACK
,
Color
.
TRANSPARENT
,
EDGE_TYPE_NONE
,
Color
.
WHITE
,
/* typeface= */
null
);
/**
* The preferred foreground color.
...
...
@@ -110,10 +115,8 @@ public final class CaptionStyleCompat {
*/
public
final
int
edgeColor
;
/**
* The preferred typeface.
*/
public
final
Typeface
typeface
;
/** The preferred typeface, or {@code null} if unspecified. */
@Nullable
public
final
Typeface
typeface
;
/**
* Creates a {@link CaptionStyleCompat} equivalent to a provided {@link CaptionStyle}.
...
...
@@ -141,8 +144,13 @@ public final class CaptionStyleCompat {
* @param edgeColor See {@link #edgeColor}.
* @param typeface See {@link #typeface}.
*/
public
CaptionStyleCompat
(
int
foregroundColor
,
int
backgroundColor
,
int
windowColor
,
@EdgeType
int
edgeType
,
int
edgeColor
,
Typeface
typeface
)
{
public
CaptionStyleCompat
(
int
foregroundColor
,
int
backgroundColor
,
int
windowColor
,
@EdgeType
int
edgeType
,
int
edgeColor
,
@Nullable
Typeface
typeface
)
{
this
.
foregroundColor
=
foregroundColor
;
this
.
backgroundColor
=
backgroundColor
;
this
.
windowColor
=
windowColor
;
...
...
library/core/src/main/java/com/google/android/exoplayer2/text/Cue.java
View file @
10ee7d8e
...
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.text;
import
android.graphics.Bitmap
;
import
android.graphics.Color
;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
android.text.Layout.Alignment
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
...
...
@@ -111,17 +112,13 @@ public class Cue {
* The cue text, or null if this is an image cue. Note the {@link CharSequence} may be decorated
* with styling spans.
*/
public
final
CharSequence
text
;
@Nullable
public
final
CharSequence
text
;
/**
* The alignment of the cue text within the cue box, or null if the alignment is undefined.
*/
public
final
Alignment
textAlignment
;
/** The alignment of the cue text within the cue box, or null if the alignment is undefined. */
@Nullable
public
final
Alignment
textAlignment
;
/**
* The cue image, or null if this is a text cue.
*/
public
final
Bitmap
bitmap
;
/** The cue image, or null if this is a text cue. */
@Nullable
public
final
Bitmap
bitmap
;
/**
* The position of the {@link #lineAnchor} of the cue box within the viewport in the direction
...
...
@@ -298,7 +295,7 @@ public class Cue {
*/
public
Cue
(
CharSequence
text
,
Alignment
textAlignment
,
@Nullable
Alignment
textAlignment
,
float
line
,
@LineType
int
lineType
,
@AnchorType
int
lineAnchor
,
...
...
@@ -376,7 +373,7 @@ public class Cue {
*/
public
Cue
(
CharSequence
text
,
Alignment
textAlignment
,
@Nullable
Alignment
textAlignment
,
float
line
,
@LineType
int
lineType
,
@AnchorType
int
lineAnchor
,
...
...
@@ -403,9 +400,9 @@ public class Cue {
}
private
Cue
(
CharSequence
text
,
Alignment
textAlignment
,
Bitmap
bitmap
,
@Nullable
CharSequence
text
,
@Nullable
Alignment
textAlignment
,
@Nullable
Bitmap
bitmap
,
float
line
,
@LineType
int
lineType
,
@AnchorType
int
lineAnchor
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleOutputBuffer.java
View file @
10ee7d8e
...
...
@@ -15,6 +15,7 @@
*/
package
com
.
google
.
android
.
exoplayer2
.
text
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.decoder.OutputBuffer
;
import
java.util.List
;
...
...
@@ -24,7 +25,7 @@ import java.util.List;
*/
public
abstract
class
SubtitleOutputBuffer
extends
OutputBuffer
implements
Subtitle
{
private
Subtitle
subtitle
;
@Nullable
private
Subtitle
subtitle
;
private
long
subsampleOffsetUs
;
/**
...
...
library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/CssParser.java
View file @
10ee7d8e
...
...
@@ -15,11 +15,11 @@
*/
package
com
.
google
.
android
.
exoplayer2
.
text
.
webvtt
;
import
androidx.annotation.Nullable
;
import
android.text.TextUtils
;
import
com.google.android.exoplayer2.util.ColorParser
;
import
com.google.android.exoplayer2.util.ParsableByteArray
;
import
com.google.android.exoplayer2.util.Util
;
import
java.util.Arrays
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
...
...
@@ -52,13 +52,15 @@ import java.util.regex.Pattern;
}
/**
* Takes a CSS style block and consumes up to the first empty line
found. Attempts to parse the
*
contents of the style block and returns a {@link WebvttCssStyle} instance if successful, or
*
{@code null}
otherwise.
* Takes a CSS style block and consumes up to the first empty line
. Attempts to parse the contents
*
of the style block and returns a {@link WebvttCssStyle} instance if successful, or {@code null}
* otherwise.
*
* @param input The input from which the style block should be read.
* @return A {@link WebvttCssStyle} that represents the parsed block.
* @return A {@link WebvttCssStyle} that represents the parsed block, or {@code null} if parsing
* failed.
*/
@Nullable
public
WebvttCssStyle
parseBlock
(
ParsableByteArray
input
)
{
stringBuilder
.
setLength
(
0
);
int
initialInputPosition
=
input
.
getPosition
();
...
...
@@ -86,13 +88,14 @@ import java.util.regex.Pattern;
}
/**
* Returns a string containing the selector. The input is expected to have the form
*
{@code
::cue(tag#id.class1.class2[voice="someone"]}, where every element is optional.
* Returns a string containing the selector. The input is expected to have the form
{@code
* ::cue(tag#id.class1.class2[voice="someone"]}, where every element is optional.
*
* @param input From which the selector is obtained.
* @return A string containing the target, empty string if the selector is universal
*
(targets all
cues) or null if an error was encountered.
* @return A string containing the target, empty string if the selector is universal
(targets all
* cues) or null if an error was encountered.
*/
@Nullable
private
static
String
parseSelector
(
ParsableByteArray
input
,
StringBuilder
stringBuilder
)
{
skipWhitespaceAndComments
(
input
);
if
(
input
.
bytesLeft
()
<
5
)
{
...
...
@@ -116,7 +119,7 @@ import java.util.regex.Pattern;
target
=
readCueTarget
(
input
);
}
token
=
parseNextToken
(
input
,
stringBuilder
);
if
(!
")"
.
equals
(
token
)
||
token
==
null
)
{
if
(!
")"
.
equals
(
token
))
{
return
null
;
}
return
target
;
...
...
@@ -196,6 +199,7 @@ import java.util.regex.Pattern;
}
// Visible for testing.
@Nullable
/* package */
static
String
parseNextToken
(
ParsableByteArray
input
,
StringBuilder
stringBuilder
)
{
skipWhitespaceAndComments
(
input
);
if
(
input
.
bytesLeft
()
==
0
)
{
...
...
@@ -237,6 +241,7 @@ import java.util.regex.Pattern;
return
(
char
)
input
.
data
[
position
];
}
@Nullable
private
static
String
parsePropertyValue
(
ParsableByteArray
input
,
StringBuilder
stringBuilder
)
{
StringBuilder
expressionBuilder
=
new
StringBuilder
();
String
token
;
...
...
@@ -325,7 +330,7 @@ import java.util.regex.Pattern;
style
.
setTargetTagName
(
tagAndIdDivision
);
}
if
(
classDivision
.
length
>
1
)
{
style
.
setTargetClasses
(
Arrays
.
c
opyOfRange
(
classDivision
,
1
,
classDivision
.
length
));
style
.
setTargetClasses
(
Util
.
nullSafeArrayC
opyOfRange
(
classDivision
,
1
,
classDivision
.
length
));
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/util/Util.java
View file @
10ee7d8e
...
...
@@ -316,6 +316,21 @@ public final class Util {
}
/**
* Copies a subset of an array.
*
* @param input The input array.
* @param from The start the range to be copied, inclusive
* @param to The end of the range to be copied, exclusive.
* @return The copied array.
*/
@SuppressWarnings
({
"nullness:argument.type.incompatible"
,
"nullness:return.type.incompatible"
})
public
static
<
T
>
T
[]
nullSafeArrayCopyOfRange
(
T
[]
input
,
int
from
,
int
to
)
{
Assertions
.
checkArgument
(
0
<=
from
);
Assertions
.
checkArgument
(
to
<=
input
.
length
);
return
Arrays
.
copyOfRange
(
input
,
from
,
to
);
}
/**
* Concatenates two non-null type arrays.
*
* @param first The first array.
...
...
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