
This change adds an API in the ForwardingPlayer to disable commands. This is affecting what Player.isCommandAvailable() returns as well as what is being advertised from the EventListener.onAvailableCommandsChanged() callback. For the callback case, the ForwardingPlayer needs to intercept the callback. It does so by wrapping registered EventListener and Listener instances, which resulted in some boiler-plate code. In addition, there is logic on the wrapped listeners to avoid triggering a queued callback if all listeners have been removed in the meantime. This includes the case where new listeners are added while callbacks scheduled for the removed listeners are still pending. PiperOrigin-RevId: 371139703
54 lines
2.5 KiB
Groovy
54 lines
2.5 KiB
Groovy
// Copyright (C) 2020 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
|
|
|
|
android.buildTypes.debug.testCoverageEnabled true
|
|
|
|
dependencies {
|
|
api ('com.google.guava:guava:' + guavaVersion) {
|
|
// Exclude dependencies that are only used by Guava at compile time
|
|
// (but declared as runtime deps) [internal b/168188131].
|
|
exclude group: 'com.google.code.findbugs', module: 'jsr305'
|
|
exclude group: 'org.checkerframework', module: 'checker-compat-qual'
|
|
exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
|
|
exclude group: 'com.google.j2objc', module: 'j2objc-annotations'
|
|
exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations'
|
|
}
|
|
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
|
compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version
|
|
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
|
|
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
|
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
|
testImplementation 'org.mockito:mockito-core:' + mockitoVersion
|
|
testImplementation 'androidx.test:core:' + androidxTestCoreVersion
|
|
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
|
|
testImplementation 'junit:junit:' + junitVersion
|
|
testImplementation 'com.google.truth:truth:' + truthVersion
|
|
testImplementation 'com.squareup.okhttp3:mockwebserver:' + mockWebServerVersion
|
|
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
|
|
testImplementation project(modulePrefix + 'library-core')
|
|
testImplementation project(modulePrefix + 'testutils')
|
|
}
|
|
|
|
ext {
|
|
javadocTitle = 'Common module'
|
|
}
|
|
apply from: '../../javadoc_library.gradle'
|
|
|
|
ext {
|
|
releaseArtifact = 'exoplayer-common'
|
|
releaseDescription = 'The ExoPlayer library common module.'
|
|
}
|
|
apply from: '../../publish.gradle'
|