Skip to content

Commit f0f56b8

Browse files
committed
Add nullability annotations to improve Kotlin support
Builder methods taking objects are maked with @nonnull. It doesn't make sense to provide 'null' rather than not calling them. Some DataSource constructor parameters can be null though.
1 parent 5daf600 commit f0f56b8

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

exoplayer2-ext-icy/src/main/java/saschpe/exoplayer2/ext/icy/IcyHttpDataSource.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package saschpe.exoplayer2.ext.icy;
22

3+
import android.support.annotation.NonNull;
4+
import android.support.annotation.Nullable;
35
import android.util.Log;
46

57
import com.google.android.exoplayer2.upstream.DataSource;
@@ -47,13 +49,13 @@ public interface IcyMetadataListener {
4749
}
4850

4951
private IcyHttpDataSource(
50-
final String userAgent,
51-
final Predicate<String> contentTypePredicate,
52-
final TransferListener<? super DefaultHttpDataSource> listener,
52+
@NonNull final String userAgent,
53+
@Nullable final Predicate<String> contentTypePredicate,
54+
@Nullable final TransferListener<? super DefaultHttpDataSource> listener,
5355
final int connectTimeoutMillis,
5456
final int readTimeoutMillis,
5557
final boolean allowCrossProtocolRedirects,
56-
final RequestProperties defaultRequestProperties) {
58+
@Nullable final RequestProperties defaultRequestProperties) {
5759
super(userAgent, contentTypePredicate, listener, connectTimeoutMillis, readTimeoutMillis, allowCrossProtocolRedirects, defaultRequestProperties);
5860
defaultRequestProperties.set(REQUEST_HEADER_ICY_METAINT_KEY, REQUEST_HEADER_ICY_METAINT_VALUE);
5961
// See class Builder
@@ -210,16 +212,16 @@ public final static class Builder {
210212
private IcyHeadersListener icyHeadersListener;
211213
private IcyMetadataListener icyMetadataListener;
212214

213-
public Builder(final String userAgent) {
215+
public Builder(@NonNull final String userAgent) {
214216
this.userAgent = userAgent;
215217
}
216218

217-
public Builder setContentTypePredicate(final Predicate<String> contentTypePredicate) {
219+
public Builder setContentTypePredicate(@NonNull final Predicate<String> contentTypePredicate) {
218220
this.contentTypePredicate = contentTypePredicate;
219221
return this;
220222
}
221223

222-
public Builder setTransferListener(final TransferListener<? super DataSource> listener) {
224+
public Builder setTransferListener(@NonNull final TransferListener<? super DataSource> listener) {
223225
this.listener = listener;
224226
return this;
225227
}
@@ -239,17 +241,17 @@ public Builder setAllowCrossProtocolRedirects(final boolean allowCrossProtocolRe
239241
return this;
240242
}
241243

242-
public Builder setDefaultRequestProperties(final RequestProperties defaultRequestProperties) {
244+
public Builder setDefaultRequestProperties(@NonNull final RequestProperties defaultRequestProperties) {
243245
this.defaultRequestProperties = defaultRequestProperties;
244246
return this;
245247
}
246248

247-
public Builder setIcyHeadersListener(final IcyHttpDataSource.IcyHeadersListener icyHeadersListener) {
249+
public Builder setIcyHeadersListener(@NonNull final IcyHttpDataSource.IcyHeadersListener icyHeadersListener) {
248250
this.icyHeadersListener = icyHeadersListener;
249251
return this;
250252
}
251253

252-
public Builder setIcyMetadataListener(final IcyMetadataListener icyMetadataListener) {
254+
public Builder setIcyMetadataListener(@NonNull final IcyMetadataListener icyMetadataListener) {
253255
this.icyMetadataListener = icyMetadataListener;
254256
return this;
255257
}

exoplayer2-ext-icy/src/main/java/saschpe/exoplayer2/ext/icy/IcyHttpDataSourceFactory.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package saschpe.exoplayer2.ext.icy;
22

3+
import android.support.annotation.NonNull;
4+
35
import com.google.android.exoplayer2.upstream.DataSource;
46
import com.google.android.exoplayer2.upstream.HttpDataSource;
57
import com.google.android.exoplayer2.upstream.TransferListener;
@@ -32,7 +34,7 @@ public final static class Builder {
3234
*
3335
* @param userAgent The user agent
3436
*/
35-
public Builder(final String userAgent) {
37+
public Builder(@NonNull final String userAgent) {
3638
// Apply defaults
3739
factory = new IcyHttpDataSourceFactory();
3840
factory.userAgent = userAgent;
@@ -42,32 +44,32 @@ public Builder(final String userAgent) {
4244
factory.allowCrossProtocolRedirects = false;
4345
}
4446

45-
public Builder setTransferListener(final TransferListener<? super DataSource> listener) {
47+
public Builder setTransferListener(@NonNull final TransferListener<? super DataSource> listener) {
4648
factory.listener = listener;
4749
return this;
4850
}
4951

50-
public Builder setConnectTimeoutMillis(final int connectTimeoutMillis) {
52+
public Builder setConnectTimeoutMillis(@NonNull final int connectTimeoutMillis) {
5153
factory.connectTimeoutMillis = connectTimeoutMillis;
5254
return this;
5355
}
5456

55-
public Builder setReadTimeoutMillis(final int readTimeoutMillis) {
57+
public Builder setReadTimeoutMillis(@NonNull final int readTimeoutMillis) {
5658
factory.readTimeoutMillis = readTimeoutMillis;
5759
return this;
5860
}
5961

60-
public Builder setAllowCrossProtocolRedirects(final boolean allowCrossProtocolRedirects) {
62+
public Builder setAllowCrossProtocolRedirects(@NonNull final boolean allowCrossProtocolRedirects) {
6163
factory.allowCrossProtocolRedirects = allowCrossProtocolRedirects;
6264
return this;
6365
}
6466

65-
public Builder setIcyHeadersListener(final IcyHttpDataSource.IcyHeadersListener icyHeadersListener) {
67+
public Builder setIcyHeadersListener(@NonNull final IcyHttpDataSource.IcyHeadersListener icyHeadersListener) {
6668
factory.icyHeadersListener = icyHeadersListener;
6769
return this;
6870
}
6971

70-
public Builder setIcyMetadataChangeListener(final IcyHttpDataSource.IcyMetadataListener icyMetadataListener) {
72+
public Builder setIcyMetadataChangeListener(@NonNull final IcyHttpDataSource.IcyMetadataListener icyMetadataListener) {
7173
factory.icyMetadataListener = icyMetadataListener;
7274
return this;
7375
}
@@ -78,7 +80,7 @@ public IcyHttpDataSourceFactory build() {
7880
}
7981

8082
@Override
81-
protected IcyHttpDataSource createDataSourceInternal(HttpDataSource.RequestProperties defaultRequestProperties) {
83+
protected IcyHttpDataSource createDataSourceInternal(@NonNull HttpDataSource.RequestProperties defaultRequestProperties) {
8284
return new IcyHttpDataSource.Builder(userAgent)
8385
.setTransferListener(listener)
8486
.setConnectTimeoutMillis(connectTimeoutMillis)

0 commit comments

Comments
 (0)