diff --git a/demos/surface/src/main/AndroidManifest.xml b/demos/surface/src/main/AndroidManifest.xml index fab5b2070c..9e9cbeed5c 100644 --- a/demos/surface/src/main/AndroidManifest.xml +++ b/demos/surface/src/main/AndroidManifest.xml @@ -22,12 +22,14 @@ + android:allowBackup="false" + android:icon="@mipmap/ic_launcher" + android:label="@string/application_name" + android:exported="true"> - + diff --git a/extensions/cast/build.gradle b/extensions/cast/build.gradle index 3addcceaef..ba333edbe2 100644 --- a/extensions/cast/build.gradle +++ b/extensions/cast/build.gradle @@ -14,7 +14,7 @@ apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle" dependencies { - api 'com.google.android.gms:play-services-cast-framework:20.1.0' + api 'com.google.android.gms:play-services-cast-framework:21.0.1' implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation project(modulePrefix + 'library-common') compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion diff --git a/extensions/cronet/build.gradle b/extensions/cronet/build.gradle index 09211ca4cb..f179fac8e2 100644 --- a/extensions/cronet/build.gradle +++ b/extensions/cronet/build.gradle @@ -20,7 +20,7 @@ android { } dependencies { - api "com.google.android.gms:play-services-cronet:17.0.1" + api "com.google.android.gms:play-services-cronet:18.0.1" implementation project(modulePrefix + 'library-common') implementation project(modulePrefix + 'library-datasource') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion diff --git a/extensions/ima/build.gradle b/extensions/ima/build.gradle index 4a40f0afc9..95644aa368 100644 --- a/extensions/ima/build.gradle +++ b/extensions/ima/build.gradle @@ -25,7 +25,7 @@ android { } dependencies { - api 'com.google.ads.interactivemedia.v3:interactivemedia:3.25.1' + api 'com.google.ads.interactivemedia.v3:interactivemedia:3.26.0' implementation project(modulePrefix + 'library-core') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion diff --git a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java index 755d62fc84..4a22f4e216 100644 --- a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java +++ b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java @@ -924,8 +924,7 @@ public class SessionPlayerConnectorTest { assertThat(onPlaylistChangedLatch.getCount()).isEqualTo(1); } - // TODO(b/168860979): De-flake and re-enable. - @Ignore + @Ignore("Internal ref: b/168860979") @Test @LargeTest public void replacePlaylistItem_calledOnlyOnce_notifiesPlaylistChangeOnlyOnce() throws Exception { diff --git a/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java b/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java index b656d0bd35..8520125c38 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java @@ -100,7 +100,7 @@ public final class HeartRating extends Rating { private static HeartRating fromBundle(Bundle bundle) { checkArgument( - bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_DEFAULT) + bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_UNSET) == TYPE); boolean isRated = bundle.getBoolean(keyForField(FIELD_RATED), /* defaultValue= */ false); return isRated diff --git a/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java b/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java index 1953e7e1d1..3bdb1dd11c 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java @@ -96,7 +96,7 @@ public final class PercentageRating extends Rating { private static PercentageRating fromBundle(Bundle bundle) { checkArgument( - bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_DEFAULT) + bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_UNSET) == TYPE); float percent = bundle.getFloat(keyForField(FIELD_PERCENT), /* defaultValue= */ RATING_UNSET); return percent == RATING_UNSET ? new PercentageRating() : new PercentageRating(percent); diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Rating.java b/library/common/src/main/java/com/google/android/exoplayer2/Rating.java index 0477bbce0e..69886aafc3 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Rating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Rating.java @@ -41,7 +41,7 @@ public abstract class Rating implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) @IntDef({ - RATING_TYPE_DEFAULT, + RATING_TYPE_UNSET, RATING_TYPE_HEART, RATING_TYPE_PERCENTAGE, RATING_TYPE_STAR, @@ -49,7 +49,7 @@ public abstract class Rating implements Bundleable { }) /* package */ @interface RatingType {} - /* package */ static final int RATING_TYPE_DEFAULT = -1; + /* package */ static final int RATING_TYPE_UNSET = -1; /* package */ static final int RATING_TYPE_HEART = 0; /* package */ static final int RATING_TYPE_PERCENTAGE = 1; /* package */ static final int RATING_TYPE_STAR = 2; @@ -68,7 +68,7 @@ public abstract class Rating implements Bundleable { private static Rating fromBundle(Bundle bundle) { @RatingType int ratingType = - bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_DEFAULT); + bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_UNSET); switch (ratingType) { case RATING_TYPE_HEART: return HeartRating.CREATOR.fromBundle(bundle); @@ -78,8 +78,9 @@ public abstract class Rating implements Bundleable { return StarRating.CREATOR.fromBundle(bundle); case RATING_TYPE_THUMB: return ThumbRating.CREATOR.fromBundle(bundle); + case RATING_TYPE_UNSET: default: - throw new IllegalArgumentException("Encountered unknown rating type: " + ratingType); + throw new IllegalArgumentException("Unknown RatingType: " + ratingType); } } diff --git a/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java b/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java index 543228185e..05736766b5 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java @@ -125,7 +125,7 @@ public final class StarRating extends Rating { private static StarRating fromBundle(Bundle bundle) { checkArgument( - bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_DEFAULT) + bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_UNSET) == TYPE); int maxStars = bundle.getInt(keyForField(FIELD_MAX_STARS), /* defaultValue= */ MAX_STARS_DEFAULT); diff --git a/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java b/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java index 07e0ee38d3..cc4b404f2c 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java @@ -97,7 +97,7 @@ public final class ThumbRating extends Rating { private static ThumbRating fromBundle(Bundle bundle) { checkArgument( - bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_DEFAULT) + bundle.getInt(keyForField(FIELD_RATING_TYPE), /* defaultValue= */ RATING_TYPE_UNSET) == TYPE); boolean rated = bundle.getBoolean(keyForField(FIELD_RATED), /* defaultValue= */ false); return rated diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java index 1a961d0585..b21b247f76 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -2405,6 +2405,8 @@ public final class Util { return "camera motion"; case C.TRACK_TYPE_NONE: return "none"; + case C.TRACK_TYPE_UNKNOWN: + return "unknown"; default: return trackType >= C.TRACK_TYPE_CUSTOM_BASE ? "custom (" + trackType + ")" : "?"; } diff --git a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadManagerDashTest.java b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadManagerDashTest.java index 6bdc84438b..28f40c8506 100644 --- a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadManagerDashTest.java +++ b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadManagerDashTest.java @@ -109,8 +109,7 @@ public class DownloadManagerDashTest { testThread.release(); } - // Disabled due to flakiness. - @Ignore + @Ignore("Disabled due to flakiness") @Test public void saveAndLoadActionFile() throws Throwable { // Configure fakeDataSet to block until interrupted when TEST_MPD is read. diff --git a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java index e8a71798be..b50d25414d 100644 --- a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java +++ b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java @@ -157,7 +157,7 @@ public class DownloadServiceDashTest { testThread.release(); } - @Ignore // b/78877092 + @Ignore("Internal ref: b/78877092") @Test public void multipleDownloadRequest() throws Throwable { downloadKeys(fakeStreamKey1); @@ -168,7 +168,7 @@ public class DownloadServiceDashTest { assertCachedData(cache, fakeDataSet); } - @Ignore // b/78877092 + @Ignore("Internal ref: b/78877092") @Test public void removeAction() throws Throwable { downloadKeys(fakeStreamKey1, fakeStreamKey2); @@ -182,7 +182,7 @@ public class DownloadServiceDashTest { assertCacheEmpty(cache); } - @Ignore // b/78877092 + @Ignore("Internal ref: b/78877092") @Test public void removeBeforeDownloadComplete() throws Throwable { pauseDownloadCondition = new ConditionVariable(); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java index 462da93a6c..abb554855b 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java @@ -1478,6 +1478,7 @@ public class PlayerNotificationManager { return actions; } + @SuppressWarnings("UnspecifiedImmutableFlag") // Warning is spurious. private static PendingIntent createBroadcastIntent( String action, Context context, int instanceId) { Intent intent = new Intent(action).setPackage(context.getPackageName());