| # Copyright 2018 The Bazel Authors. All rights reserved. | 
 | # | 
 | # 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. | 
 | """Rules for importing external Android Archives (AARs). | 
 |  | 
 | Usage: | 
 |  | 
 |     # In WORKSPACE | 
 |     load("@bazel_tools//tools/build_defs/repo:android.bzl", "aar_import_external", "aar_maven_import_external") | 
 |  | 
 |     # Specify the URL directly: | 
 |     aar_import_external( | 
 |         name = "com_android_support_preference_v14_25_1_0",                              # required | 
 |         licenses = ["notice"],                                                           # required | 
 |         aar_urls = [                                                                     # required | 
 |             "https://dl.google.com/dl/android/maven2/com/android/support/preference-v14/25.1.0/preference-v14-25.1.0.aar" | 
 |         ], | 
 |         aar_sha256 = "442473fe5c395ebef26c14eb01d17ceda33ad207a4cc23a32a2ad95b87edfabb", # optional or empty string | 
 |         deps = [                                                                         # optional or empty list | 
 |             "@com_android_support_recyclerview_v7_25_1_0//aar", | 
 |             "@com_android_support_appcompat_v7_25_1_0//aar", | 
 |             "@com_android_support_preference_v7_25_1_0//aar", | 
 |             "@com_android_support_support_v4_25_1_0//aar", | 
 |         ], | 
 |     ) | 
 |  | 
 |     # Or, specify the artifact coordinate: | 
 |     aar_maven_import_external( | 
 |         name = "com_android_support_preference_v14_25_1_0",                         # required | 
 |         artifact = "com.android.support.test:preference-v14:25.1.0",                # required | 
 |         sha256 = "442473fe5c395ebef26c14eb01d17ceda33ad207a4cc23a32a2ad95b87edfabb" # optional or empty string | 
 |         licenses = ["notice"],                                                      # required | 
 |         server_urls = ["https://maven.google.com"],                                 # required | 
 |         deps = [                                                                    # optional or empty list | 
 |             "@com_android_support_recyclerview_v7_25_1_0//aar", | 
 |             "@com_android_support_appcompat_v7_25_1_0//aar", | 
 |             "@com_android_support_preference_v7_25_1_0//aar", | 
 |             "@com_android_support_support_v4_25_1_0//aar", | 
 |         ], | 
 |     ) | 
 |  | 
 |     # In BUILD.bazel | 
 |     android_library( | 
 |         name = "foo", | 
 |         srcs = [...], | 
 |         deps = [ | 
 |             "@com_android_support_preference_v14_25_1_0//aar", | 
 |         ], | 
 |     ) | 
 | """ | 
 |  | 
 | load(":jvm.bzl", "convert_artifact_coordinate_to_urls", "jvm_import_external") | 
 |  | 
 | def aar_import_external(aar_sha256, aar_urls, **kwargs): | 
 |     jvm_import_external( | 
 |         rule_name = "aar_import", | 
 |         rule_metadata = { | 
 |             "extension": "aar", | 
 |             "import_attr": "aar = %s", | 
 |         }, | 
 |         artifact_sha256 = aar_sha256, | 
 |         artifact_urls = aar_urls, | 
 |         **kwargs | 
 |     ) | 
 |  | 
 | def aar_maven_import_external(artifact, server_urls, aar_sha256 = "", **kwargs): | 
 |     aar_import_external( | 
 |         aar_sha256 = aar_sha256, | 
 |         aar_urls = convert_artifact_coordinate_to_urls( | 
 |             artifact, | 
 |             server_urls, | 
 |             "aar", | 
 |         ), | 
 |         **kwargs | 
 |     ) |