From 3e94bd6125b53556f285a30d3f60a0728259341f Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 4 Dec 2024 08:05:09 -0800 Subject: [PATCH] Enable lint errors in tests for remaining playback modules Also fix existing violations This enables the lint for tests in: * `decoder-iamf` * `exoplayer-rtsp` * `test-exoplayer-playback` * `test-session-current` * `ui-compose` PiperOrigin-RevId: 702728438 --- libraries/decoder_iamf/build.gradle | 5 ----- .../androidx/media3/decoder/iamf/IamfPlaybackTest.java | 3 +++ libraries/exoplayer_rtsp/build.gradle | 5 ----- .../media3/exoplayer/rtsp/RtspMediaTrackTest.java | 4 ++-- libraries/test_exoplayer_playback/build.gradle | 9 +-------- .../test/exoplayer/playback/gts/DashStreamingTest.java | 3 ++- .../test/exoplayer/playback/gts/DashTestRunner.java | 8 +++++++- libraries/test_session_current/build.gradle | 5 ----- libraries/ui_compose/build.gradle | 4 ---- .../java/androidx/media3/ui/compose/utils/TestPlayer.kt | 3 +++ 10 files changed, 18 insertions(+), 31 deletions(-) diff --git a/libraries/decoder_iamf/build.gradle b/libraries/decoder_iamf/build.gradle index 5892316db9..17970629bc 100644 --- a/libraries/decoder_iamf/build.gradle +++ b/libraries/decoder_iamf/build.gradle @@ -28,11 +28,6 @@ android { } } - lintOptions { - // TODO: b/353490583 - Enable this once the violations are fixed. - checkTestSources false - } - // TODO(Internal: b/372449691): Remove packagingOptions once AGP is updated // to version 8.5.1 or higher. packagingOptions { diff --git a/libraries/decoder_iamf/src/androidTest/java/androidx/media3/decoder/iamf/IamfPlaybackTest.java b/libraries/decoder_iamf/src/androidTest/java/androidx/media3/decoder/iamf/IamfPlaybackTest.java index 5f24c0c4bb..4927012cd8 100644 --- a/libraries/decoder_iamf/src/androidTest/java/androidx/media3/decoder/iamf/IamfPlaybackTest.java +++ b/libraries/decoder_iamf/src/androidTest/java/androidx/media3/decoder/iamf/IamfPlaybackTest.java @@ -104,6 +104,9 @@ public class IamfPlaybackTest { Looper.prepare(); if (Util.SDK_INT >= 32) { // Spatializer is only available on API 32 and above. AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + // Lint can't follow the indirection from AudioFormat.ENCODING_PCM_16BIT to + // IamfDecoder.OUTPUT_PCM_ENCODING. + @SuppressWarnings("WrongConstant") AudioFormat.Builder audioFormat = new AudioFormat.Builder() .setEncoding(IamfDecoder.OUTPUT_PCM_ENCODING) diff --git a/libraries/exoplayer_rtsp/build.gradle b/libraries/exoplayer_rtsp/build.gradle index 313f504bb6..e53de0c751 100644 --- a/libraries/exoplayer_rtsp/build.gradle +++ b/libraries/exoplayer_rtsp/build.gradle @@ -24,11 +24,6 @@ android { sourceSets.test.assets.srcDir '../test_data/src/test/assets/' - lintOptions { - // TODO: b/353490583 - Enable this once the violations are fixed. - checkTestSources false - } - publishing { singleVariant('release') { withSourcesJar() diff --git a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java index 29831cbcdc..d08cc3438e 100644 --- a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java +++ b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java @@ -76,7 +76,7 @@ public class RtspMediaTrackTest { .setCodecs("avc1.64001F") .setColorInfo( new ColorInfo.Builder() - .setColorRange(1) + .setColorRange(C.COLOR_RANGE_FULL) .setLumaBitdepth(8) .setChromaBitdepth(8) .build()) @@ -255,7 +255,7 @@ public class RtspMediaTrackTest { .setCodecs("avc1.64001F") .setColorInfo( new ColorInfo.Builder() - .setColorRange(1) + .setColorRange(C.COLOR_RANGE_FULL) .setChromaBitdepth(8) .setLumaBitdepth(8) .build()) diff --git a/libraries/test_exoplayer_playback/build.gradle b/libraries/test_exoplayer_playback/build.gradle index 3ba8bd3d35..85b533380c 100644 --- a/libraries/test_exoplayer_playback/build.gradle +++ b/libraries/test_exoplayer_playback/build.gradle @@ -13,14 +13,7 @@ // limitations under the License. apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle" -android { - namespace 'androidx.media3.test.exoplayer.playback' - - lintOptions { - // TODO: b/353490583 - Enable this once the violations are fixed. - checkTestSources false - } -} +android.namespace 'androidx.media3.test.exoplayer.playback' dependencies { androidTestImplementation 'androidx.test:rules:' + androidxTestRulesVersion diff --git a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashStreamingTest.java b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashStreamingTest.java index 4eaa724909..17343f52bc 100644 --- a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashStreamingTest.java +++ b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashStreamingTest.java @@ -696,7 +696,8 @@ public final class DashStreamingTest { private boolean isPc() { // See [internal b/162990153]. - return testRule.getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_PC); + return Util.SDK_INT >= 27 + && testRule.getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_PC); } private static boolean shouldSkipAdaptiveTest(String mimeType) throws DecoderQueryException { diff --git a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java index 3a3a6a3a32..3cea0ee199 100644 --- a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java +++ b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java @@ -105,7 +105,9 @@ import java.util.List; @SuppressWarnings("ResourceType") public static boolean isL1WidevineAvailable(String mimeType) { - try (MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID)) { + MediaDrm mediaDrm = null; + try { + mediaDrm = new MediaDrm(WIDEVINE_UUID); // Force L3 if secure decoder is not available. if (MediaCodecUtil.getDecoderInfo(mimeType, /* secure= */ true, /* tunneling= */ false) == null) { @@ -115,6 +117,10 @@ import java.util.List; return WIDEVINE_SECURITY_LEVEL_1.equals(securityProperty); } catch (UnsupportedSchemeException | MediaCodecUtil.DecoderQueryException e) { throw new IllegalStateException(e); + } finally { + if (mediaDrm != null) { + mediaDrm.close(); + } } } diff --git a/libraries/test_session_current/build.gradle b/libraries/test_session_current/build.gradle index 00bcbcce08..9feae32e90 100644 --- a/libraries/test_session_current/build.gradle +++ b/libraries/test_session_current/build.gradle @@ -33,11 +33,6 @@ android { } sourceSets.main.assets.srcDir '../test_data/src/test/assets/' - - lintOptions { - // TODO: b/353490583 - Enable this once the violations are fixed. - checkTestSources false - } } dependencies { diff --git a/libraries/ui_compose/build.gradle b/libraries/ui_compose/build.gradle index 525922462b..a551722825 100644 --- a/libraries/ui_compose/build.gradle +++ b/libraries/ui_compose/build.gradle @@ -26,10 +26,6 @@ android { buildFeatures { compose true } - lintOptions { - // TODO: b/353490583 - Enable this once the violations are fixed. - checkTestSources false - } publishing { singleVariant('release') { withSourcesJar() diff --git a/libraries/ui_compose/src/test/java/androidx/media3/ui/compose/utils/TestPlayer.kt b/libraries/ui_compose/src/test/java/androidx/media3/ui/compose/utils/TestPlayer.kt index b0a26963ad..58ed179a26 100644 --- a/libraries/ui_compose/src/test/java/androidx/media3/ui/compose/utils/TestPlayer.kt +++ b/libraries/ui_compose/src/test/java/androidx/media3/ui/compose/utils/TestPlayer.kt @@ -102,6 +102,9 @@ internal class TestPlayer : SimpleBasePlayer(Looper.myLooper()!!) { } fun removeCommands(vararg commands: @Player.Command Int) { + // It doesn't seem possible to propagate the @IntDef annotation through Kotlin's spread operator + // in a way that lint understands. + @SuppressWarnings("WrongConstant") state = state .buildUpon()