//
// Copyright (C) 2008 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.
//

package {
    default_applicable_licenses: [
        "packages_providers_CalendarProvider_license",
    ],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "packages_providers_CalendarProvider_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

android_app {
    name: "CalendarProvider",
    static_libs: [
        "guava",
        "android-common",
        "calendar-common",
    ],
    srcs: [
        "src/**/*.java",
        "src/com/android/providers/calendar/EventLogTags.logtags",
    ],
    platform_apis: true,
    privileged: true,

    // The Jacoco tool analyzes code coverage when running unit tests on the
    // application. This configuration line selects which packages will be analyzed,
    // leaving out code which is tested by other means (e.g. static libraries) that
    // would dilute the coverage results. These options do not affect regular
    // production builds.
    jacoco: {
        include_filter: ["com.android.providers.calendar.*"],
    },
}
