// Copyright (C) 2020 The Android Open Source Project
//
// 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.

// A library containing common code within the geolocation dir.
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

// Code intended for host usage only.
java_library_host {
    name: "geotz_host_common",
    srcs: ["host/main/java/**/*.java"],
}

// Code intended for device or host usage.
java_library {
    name: "geotz_common",
    host_supported: true,
    srcs: ["src/main/java/**/*.java"],
    libs: ["androidx.annotation_annotation"],
    sdk_version: "current",
    min_sdk_version: "current",
    apex_available: [
        "com.android.geotz",
    ],
}

// Device side tests for the geotz_common code.
android_test {
    name: "GeotzCommonTests",
    srcs: ["src/test/java/**/*.java"],
    manifest: "src/test/AndroidManifest.xml",
    sdk_version: "current",
    min_sdk_version: "current",
    static_libs: [
        "androidx.test.runner",
        "geotz_lookup",
        "junit",
        "truth-prebuilt",
    ],
    test_suites: ["general-tests"],
}
