# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
import("//third_party/jni_zero/jni_zero.gni")
import("//tools/grit/grit_rule.gni")
android_library("java") {
resources_package = "org.chromium.components.media_router"
deps = [
":java_resources",
"$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//build/android:build_java",
"//components/browser_ui/media/android:java",
"//content/public/android:content_java",
"//services/media_session/public/cpp/android:media_session_java",
"//third_party/android_media:android_media_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_collection_collection_java",
"//third_party/androidx:androidx_fragment_fragment_java",
"//third_party/androidx:androidx_media_media_java",
"//third_party/androidx:androidx_mediarouter_mediarouter_java",
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [ ":jni_headers" ]
sources = [
"java/src/org/chromium/components/media_router/BaseMediaRouteDialogManager.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouter.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/components/media_router/CastRequestIdGenerator.java",
"java/src/org/chromium/components/media_router/CastSessionUtil.java",
"java/src/org/chromium/components/media_router/ClientRecord.java",
"java/src/org/chromium/components/media_router/DiscoveryCallback.java",
"java/src/org/chromium/components/media_router/DiscoveryDelegate.java",
"java/src/org/chromium/components/media_router/FlingingController.java",
"java/src/org/chromium/components/media_router/FlingingControllerBridge.java",
"java/src/org/chromium/components/media_router/MediaController.java",
"java/src/org/chromium/components/media_router/MediaRoute.java",
"java/src/org/chromium/components/media_router/MediaRouteChooserDialogManager.java",
"java/src/org/chromium/components/media_router/MediaRouteControllerDialogManager.java",
"java/src/org/chromium/components/media_router/MediaRouteDialogDelegate.java",
"java/src/org/chromium/components/media_router/MediaRouteManager.java",
"java/src/org/chromium/components/media_router/MediaRouteProvider.java",
"java/src/org/chromium/components/media_router/MediaRouteUmaRecorder.java",
"java/src/org/chromium/components/media_router/MediaRouterClient.java",
"java/src/org/chromium/components/media_router/MediaSink.java",
"java/src/org/chromium/components/media_router/MediaSource.java",
"java/src/org/chromium/components/media_router/MediaStatusBridge.java",
"java/src/org/chromium/components/media_router/MediaStatusObserver.java",
"java/src/org/chromium/components/media_router/caf/BaseNotificationController.java",
"java/src/org/chromium/components/media_router/caf/BaseSessionController.java",
"java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/CafMessageHandler.java",
"java/src/org/chromium/components/media_router/caf/CafNotificationController.java",
"java/src/org/chromium/components/media_router/caf/CastMediaSource.java",
"java/src/org/chromium/components/media_router/caf/CastSessionController.java",
"java/src/org/chromium/components/media_router/caf/CastUtils.java",
"java/src/org/chromium/components/media_router/caf/CreateRouteRequestInfo.java",
"java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java",
"java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingNotificationController.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java",
"java/src/org/chromium/components/media_router/caf/remoting/StreamPositionExtrapolator.java",
]
}
android_library("cast_options_provider_java") {
sources = [ "java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java" ]
deps = [
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
]
}
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/components/media_router/BrowserMediaRouter.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/components/media_router/FlingingControllerBridge.java",
"java/src/org/chromium/components/media_router/MediaStatusBridge.java",
]
}
android_library("test_support_java") {
resources_package = "org.chromium.components.media_router"
testonly = true
sources = [
"java/src/org/chromium/components/media_router/TestMediaRouterClient.java",
"javatests/src/org/chromium/components/media_router/MockMediaRouteProvider.java",
"javatests/src/org/chromium/components/media_router/RouterTestUtils.java",
]
deps = [
":java",
":java_resources",
":test_jni_headers",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//components/browser_ui/media/android:java",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_fragment_fragment_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/jni_zero:jni_zero_java",
]
}
generate_jni("test_jni_headers") {
sources = [
"java/src/org/chromium/components/media_router/TestMediaRouterClient.java",
]
}
robolectric_library("junit") {
sources = [
"junit/src/org/chromium/components/media_router/BrowserMediaRouterRouteTest.java",
"junit/src/org/chromium/components/media_router/BrowserMediaRouterSinkObservationTest.java",
"junit/src/org/chromium/components/media_router/BrowserMediaRouterTestBase.java",
"junit/src/org/chromium/components/media_router/DiscoveryCallbackTest.java",
"junit/src/org/chromium/components/media_router/JSONTestUtils.java",
"junit/src/org/chromium/components/media_router/TestUtils.java",
"junit/src/org/chromium/components/media_router/caf/BaseNotificationControllerTest.java",
"junit/src/org/chromium/components/media_router/caf/BaseSessionControllerTest.java",
"junit/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProviderTest.java",
"junit/src/org/chromium/components/media_router/caf/CafMediaRouteProviderTest.java",
"junit/src/org/chromium/components/media_router/caf/CafMessageHandlerTest.java",
"junit/src/org/chromium/components/media_router/caf/CastSessionControllerTest.java",
"junit/src/org/chromium/components/media_router/caf/MediaRouterTestHelper.java",
"junit/src/org/chromium/components/media_router/caf/ShadowCastContext.java",
"junit/src/org/chromium/components/media_router/caf/ShadowCastMediaSource.java",
"junit/src/org/chromium/components/media_router/caf/ShadowMediaRouter.java",
"junit/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProviderTest.java",
"junit/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSourceTest.java",
"junit/src/org/chromium/components/media_router/caf/remoting/RemotingSessionControllerTest.java",
]
deps = [
":java",
":test_support_java",
"$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//components/browser_ui/media/android:java",
"//content/public/android:content_java",
"//services/media_session/public/cpp/android:media_session_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_mediarouter_mediarouter_java",
"//third_party/junit",
"//third_party/mockito:mockito_java",
]
}
android_resources("java_resources") {
sources = [
"java/res/drawable-hdpi/cast_playing_square.png",
"java/res/drawable-hdpi/ic_cast_dark_off.png",
"java/res/drawable-hdpi/ic_cast_dark_on.png",
"java/res/drawable-hdpi/ic_notification_media_route.png",
"java/res/drawable-mdpi/cast_playing_square.png",
"java/res/drawable-mdpi/ic_cast_dark_off.png",
"java/res/drawable-mdpi/ic_cast_dark_on.png",
"java/res/drawable-mdpi/ic_notification_media_route.png",
"java/res/drawable-xhdpi/cast_playing_square.png",
"java/res/drawable-xhdpi/ic_cast_dark_off.png",
"java/res/drawable-xhdpi/ic_cast_dark_on.png",
"java/res/drawable-xhdpi/ic_notification_media_route.png",
"java/res/drawable-xxhdpi/cast_playing_square.png",
"java/res/drawable-xxhdpi/ic_cast_dark_off.png",
"java/res/drawable-xxhdpi/ic_cast_dark_on.png",
"java/res/drawable-xxhdpi/ic_notification_media_route.png",
"java/res/drawable-xxxhdpi/cast_playing_square.png",
"java/res/drawable-xxxhdpi/ic_notification_media_route.png",
"java/res/drawable/ic_cast_dark_chrome.xml",
"java/res/layout/caf_controller_media_route_button.xml",
"java/res/layout/expanded_cast_controller.xml",
"java/res/values/styles.xml",
]
deps = [
":java_strings_grd",
"//third_party/android_media:android_media_resources",
]
}
java_strings_grd("java_strings_grd") {
grd_file = "java/strings/android_chrome_media_router_strings.grd"
outputs = [ "values/android_chrome_media_router_strings.xml" ] + process_file_template(
android_bundle_locales_as_resources,
[ "values-{{source_name_part}}/android_chrome_media_router_strings.xml" ])
}