# Copyright 2016 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/rules.gni")
import("//chromecast/chromecast.gni")
import("//media/media_options.gni")
import("//third_party/jni_zero/jni_zero.gni")

assert(is_android)

cast_shell_android_manifest =
    "$root_gen_dir/cast_shell_manifest/AndroidManifest.xml"

jinja_template("cast_shell_manifest") {
  input = "apk/AndroidManifest.xml.jinja2"
  output = cast_shell_android_manifest
}

foreach(device_type, android_device_types) {
  jinja_template("cast_browser_${device_type}_manifest") {
    input = "apk/CastBrowserAndroidManifest.xml.jinja2"
    output =
        "$root_gen_dir/cast_browser_${device_type}_manifest.AndroidManifest.xml"

    variables = [
      "cast_build_incremental=$cast_build_incremental",
      "cast_device_type=${device_type}",
      "target_cpu=${target_cpu}",
      "browser_packaging=BROWSER_PACKAGING_BUNDLE",
    ]
  }
}

java_group("cast_shell_android_resources") {
  deps = [
    ":cast_browser_android_resources",
    ":cast_shell_android_stub_resources",
  ]
}

android_resources("cast_browser_android_resources") {
  sources = [
    "apk/res/drawable-anydpi-v26/ic_settings_cast.xml",
    "apk/res/drawable-hdpi/ic_settings_cast.png",
    "apk/res/drawable-mdpi/ic_settings_cast.png",
    "apk/res/drawable-nodpi/ic_cast_vector.xml",
    "apk/res/drawable-xhdpi/ic_settings_cast.png",
    "apk/res/drawable-xxhdpi/ic_settings_cast.png",
    "apk/res/drawable-xxxhdpi/ic_settings_cast.png",
    "apk/res/layout/cast_web_contents_activity.xml",
    "apk/res/raw/back_pressed.js",
  ]
}

android_resources("cast_shell_android_stub_resources") {
  sources = [
    "apk/res-values/values-v17/styles.xml",
    "apk/res-values/values/colors.xml",
  ]
}

android_library("cast_command_line_helper_java") {
  java_src_dir = "//chromecast/browser/android/apk/src"
  sources = [
    "$java_src_dir/org/chromium/chromecast/shell/CastCommandLineHelper.java",
  ]
  deps = [ "//base:base_java" ]
}

android_library("cast_intents_java") {
  java_src_dir = "//chromecast/browser/android/apk/src"
  sources = [ "$java_src_dir/org/chromium/chromecast/shell/CastIntents.java" ]
}

android_aidl("logs_provider_aidl") {
  java_src_dir = "//chromecast/browser/android/apk/src"
  interface_file =
      "$java_src_dir/org/chromium/chromecast/shell/logs_provider_service.aidl"

  sources =
      [ "$java_src_dir/org/chromium/chromecast/shell/IDeviceLogsProvider.aidl" ]
}

android_library("reactive_android_java") {
  java_src_dir = "//chromecast/browser/android/apk/src"
  sources = [
    "$java_src_dir/org/chromium/chromecast/shell/AsyncTaskRunner.java",
    "$java_src_dir/org/chromium/chromecast/shell/BroadcastReceiverScope.java",
    "$java_src_dir/org/chromium/chromecast/shell/HandlerScheduler.java",
    "$java_src_dir/org/chromium/chromecast/shell/LocalBroadcastReceiverScope.java",
  ]
  deps = [
    "//base:base_java",
    "//build/android:build_java",
    "//chromecast/base:base_java",
    "//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
    "//third_party/jni_zero:jni_zero_java",
  ]
}

android_library("crash_handler_java") {
  java_src_dir = "//chromecast/browser/android/apk/src"
  sources = [
    "$java_src_dir/org/chromium/chromecast/shell/AndroidAppLogcatProvider.java",
    "$java_src_dir/org/chromium/chromecast/shell/CastCrashHandler.java",
    "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploader.java",
    "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploaderFactory.java",
    "$java_src_dir/org/chromium/chromecast/shell/ElidedLogcatProvider.java",
    "$java_src_dir/org/chromium/chromecast/shell/LogcatElision.java",
  ]
  srcjar_deps = [ ":logs_provider_aidl" ]
  deps = [
    ":reactive_android_java",
    "//base:base_java",
    "//chromecast/base:base_java",
    "//components/minidump_uploader:minidump_uploader_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/jni_zero:jni_zero_java",
  ]
  annotation_processor_deps =
      [ "//components/module_installer/android:module_interface_processor" ]
}

generate_jni("crash_handler_jni_headers") {
  sources = [ "apk/src/org/chromium/chromecast/shell/CastCrashHandler.java" ]
}

common_android_library_deps = [
  ":cast_command_line_helper_java",
  ":cast_intents_java",
  ":crash_handler_java",
  ":reactive_android_java",
  "//base:base_java",
  "//build/android:build_java",
  "//chromecast/base:base_java",
  "//chromecast/media/cma/backend/android:audio_track_java",
  "//components/crash/android:java",
  "//components/embedder_support/android:content_view_java",
  "//components/embedder_support/android:view_java",
  "//components/module_installer/android:module_installer_java",
  "//components/module_installer/android:module_interface_java",
  "//components/viz/service:service_java",
  "//content/public/android:content_java",
  "//media/base/android:media_java",
  "//net/android:net_java",
  "//third_party/androidx:androidx_annotation_annotation_java",
  "//third_party/androidx:androidx_core_core_java",
  "//third_party/jni_zero:jni_zero_java",

  # TODO(slan): We may need to pass this in as a parameter.
  "//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
  "//ui/android:ui_java",
]

common_java_src_dir = "//chromecast/browser/android/apk/src"
common_java_sources = [
  "$common_java_src_dir/org/chromium/chromecast/shell/CastBrowser.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserApplication.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserHelper.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserImpl.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserService.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastMetricsHelper.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsActivity.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsComponent.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsScopes.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/TaskRemovedMonitorService.java",
  "$common_java_src_dir/org/chromium/chromecast/shell/WebContentsRegistry.java",
]

generate_product_config_srcjar("product_config_for_browser") {
  java_package = "org.chromium.chromecast.shell"
}

generate_jni("jni_headers") {
  sources = [
    "apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
    "apk/src/org/chromium/chromecast/shell/CastMetricsHelper.java",
  ]

  deps = [ "//components/android_autofill/browser:jni_headers_features" ]
}

android_library("cast_shell_java") {
  sources = common_java_sources

  resources_package = "org.chromium.chromecast.shell"
  srcjar_deps = [
    ":jni_headers",
    ":product_config_for_browser",
    "//chromecast/browser:java_enums",
  ]

  jar_excluded_patterns = [ "*/ProductConfig.class" ]

  mergeable_android_manifests = [ cast_shell_android_manifest ]
  deps = common_android_library_deps + [
           ":cast_shell_android_resources",
           ":cast_shell_manifest",
         ]
  annotation_processor_deps =
      [ "//components/module_installer/android:module_interface_processor" ]
}

android_library("cast_browser_java") {
  sources = common_java_sources

  resources_package = "org.chromium.chromecast.shell"
  srcjar_deps = [
    ":jni_headers",
    "//chromecast/browser:java_enums",
  ]

  jar_excluded_patterns = [ "*/ProductConfig.class" ]

  deps = common_android_library_deps + [ ":cast_browser_android_resources" ]
  annotation_processor_deps =
      [ "//components/module_installer/android:module_interface_processor" ]
}

robolectric_binary("cast_shell_junit_tests") {
  sources = [
    "junit/src/org/chromium/chromecast/shell/AsyncTaskRunnerTest.java",
    "junit/src/org/chromium/chromecast/shell/BroadcastReceiverScopeTest.java",
    "junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java",
    "junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
    "junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java",
    "junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java",
    "junit/src/org/chromium/chromecast/shell/ElidedLogcatProviderUnitTest.java",
    "junit/src/org/chromium/chromecast/shell/HandlerSchedulerTest.java",
    "junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
    "junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
    "junit/src/org/chromium/chromecast/shell/TaskRemovedMonitorServiceTest.java",
  ]

  deps = [
    ":cast_intents_java",
    ":cast_shell_java",
    ":crash_handler_java",
    ":reactive_android_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//base:base_junit_test_support",
    "//build/android:build_java",
    "//chromecast/base:base_java",
    "//chromecast/base:cast_base_test_utils_java",
    "//content/public/android:content_java",
    "//testing/android/junit:junit_test_support",
    "//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
    "//third_party/androidx:androidx_test_core_java",
    "//third_party/hamcrest:hamcrest_java",
    "//third_party/jni_zero:jni_zero_java",
  ]
}
