# Copyright 2015 The Chromium Authors. All rights reserved.
# 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")

android_resources("chrome_tabs_client_example_apk_resources") {
  resource_dirs = [ "src/Application/src/main/res" ]
  android_manifest = "src/Application/src/main/AndroidManifest.xml"
  custom_package = "org.chromium.customtabsclient"
  deps = [
    "//third_party/android_deps:android_support_v7_appcompat_java",
  ]
}

android_resources("custom_tabs_support_resources") {
  resource_dirs = [ "src/customtabs/res" ]
  android_manifest = "src/customtabs/AndroidManifest.xml"
  custom_package = "android.support.customtabs"
}

android_apk("custom_tabs_client_example_apk") {
  java_files = [
    "src/Application/src/main/java/org/chromium/customtabsclient/BottomBarManager.java",
    "src/Application/src/main/java/org/chromium/customtabsclient/BrowserActionsReceiver.java",
    "src/Application/src/main/java/org/chromium/customtabsclient/MainActivity.java",
    "src/Application/src/main/java/org/chromium/customtabsclient/SessionHelper.java",
  ]
  android_manifest = "src/Application/src/main/AndroidManifest.xml"
  apk_name = "CustomTabsClientExample"
  deps = [
    ":chrome_tabs_client_example_apk_resources",
    ":custom_tabs_client_shared_java",
    ":custom_tabs_support_java",
    "//third_party/android_deps:android_arch_lifecycle_common_java",
    "//third_party/android_deps:android_support_v7_appcompat_java",
    "//third_party/android_deps:com_android_support_support_annotations_java",
  ]
  chromium_code = false
}

android_library("custom_tabs_client_shared_java") {
  java_files = [
    "src/shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java",
    "src/shared/src/main/java/org/chromium/customtabsclient/shared/KeepAliveService.java",
    "src/shared/src/main/java/org/chromium/customtabsclient/shared/ServiceConnectionCallback.java",
    "src/shared/src/main/java/org/chromium/customtabsclient/shared/ServiceConnection.java",
  ]

  deps = [
    ":custom_tabs_support_java",
  ]
  chromium_code = true
}

android_library("custom_tabs_support_java") {
  java_files = [
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionItem.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionsFallbackMenuAdapter.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionsFallbackMenuDialog.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionsFallbackMenuUi.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionsFallbackMenuView.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserActionsIntent.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserServiceFileProvider.java",
    "src/customtabs/src/android/support/customtabs/browseractions/BrowserServiceImageReadTask.java",
    "src/customtabs/src/android/support/customtabs/trusted/TrustedWebActivityBuilder.java",
    "src/customtabs/src/android/support/customtabs/trusted/TrustedWebActivityService.java",
    "src/customtabs/src/android/support/customtabs/trusted/TrustedWebActivityServiceWrapper.java",
    "src/customtabs/src/android/support/customtabs/trusted/TrustedWebActivityServiceConnectionManager.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsCallback.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsClient.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsIntent.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsService.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsServiceConnection.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsSession.java",
    "src/customtabs/src/android/support/customtabs/CustomTabsSessionToken.java",
    "src/customtabs/src/android/support/customtabs/PostMessageBackend.java",
    "src/customtabs/src/android/support/customtabs/PostMessageService.java",
    "src/customtabs/src/android/support/customtabs/PostMessageServiceConnection.java",
    "src/customtabs/src/android/support/customtabs/TrustedWebUtils.java",
  ]
  deps = [
    ":custom_tabs_support_resources",
    "//third_party/android_deps:android_support_v7_appcompat_java",
    "//third_party/android_deps:com_android_support_support_annotations_java",
    "//third_party/android_deps:com_android_support_support_compat_java",
  ]
  srcjar_deps = [ ":chrome_custom_tabs_service_aidl" ]
  android_manifest_for_lint = "src/customtabs/AndroidManifest.xml"
  chromium_code = false
}

android_aidl("chrome_custom_tabs_service_aidl") {
  interface_file = "common.aidl"

  java_in_dir = "src/customtabs/src/android/support/customtabs"
  sources = [
    "$java_in_dir/ICustomTabsCallback.aidl",
    "$java_in_dir/ICustomTabsService.aidl",
    "$java_in_dir/IPostMessageService.aidl",
    "$java_in_dir/trusted/ITrustedWebActivityService.aidl",
  ]
}
