
With this change, the notification controller that is connected by `MediaNotificationManager`, is used as a proxy controller of the System UI controller. An app can use the proxy at connection time and during the lifetime of the session for configuration of the platform session and the media notification on all API levels. This includes using custom layout and available player and session commands of the proxy to maintain the platform session (actions, custom actions, session extras) and the `MediaNotification.Provider`. The legacy System UI controller is hidden from the public API, instead the app interacts with the Media3 proxy: - System UI is hidden from `MediaSession.getConnectedControllers()`. - Calls from System UI to methods of `MediaSession.Callback`/ `MediaLibrarySession.Callback` are mapped to the `ControllerInfo` of the proxy controller. - When `getControllerForCurrentRequest()` is called during an operation of System UI the proxy `ControllerInfo` is returned. PiperOrigin-RevId: 567606117
55 lines
2.3 KiB
Groovy
55 lines
2.3 KiB
Groovy
// Copyright 2021 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.androidxMediaSettingsDir/constants.gradle"
|
|
apply plugin: 'com.android.application'
|
|
|
|
// TODO(b/178560255): Remove the "group" override after the "group" in build.gradle changed
|
|
group 'androidx.media3'
|
|
|
|
android {
|
|
namespace 'androidx.media3.test.session'
|
|
|
|
compileSdkVersion project.ext.compileSdkVersion
|
|
|
|
defaultConfig {
|
|
versionName project.ext.releaseVersion
|
|
versionCode project.ext.releaseVersionCode
|
|
minSdkVersion project.ext.minSdkVersion
|
|
targetSdkVersion project.ext.appTargetSdkVersion
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
sourceSets.main.assets.srcDir '../test_data/src/test/assets/'
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(modulePrefix + 'lib-session')
|
|
implementation project(modulePrefix + 'test-session-common')
|
|
implementation 'androidx.media:media:' + androidxMediaVersion
|
|
implementation 'androidx.test:core:' + androidxTestCoreVersion
|
|
implementation project(modulePrefix + 'test-data')
|
|
androidTestImplementation project(modulePrefix + 'lib-exoplayer')
|
|
androidTestImplementation project(modulePrefix + 'test-utils')
|
|
androidTestImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
|
|
androidTestImplementation 'androidx.test.ext:truth:' + androidxTestTruthVersion
|
|
androidTestImplementation 'androidx.test:core:' + androidxTestCoreVersion
|
|
androidTestImplementation 'androidx.test:rules:' + androidxTestRulesVersion
|
|
androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion
|
|
}
|