chromium/components/media_router/browser/android/BUILD.gn

# 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" ])
}