/*
 * Copyright (C) 2019 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: ["Android-Apache-2.0"],
}

aidl_interface {
    name: "pixelpowerstats_provider_aidl_interface",
    unstable: true,
    srcs: [
        "android/vendor/powerstats/IPixelPowerStatsProvider.aidl",
        "android/vendor/powerstats/IPixelPowerStatsCallback.aidl",
        "android/vendor/powerstats/StateResidencyData.aidl",
    ],

    vendor_available: true,
}

aidl_interface {
    name: "pixel_stateresidency_provider_aidl_interface",
    unstable: true,
    imports: ["android.hardware.power.stats-V2"],
    srcs: [
        "android/vendor/powerstats/IPixelStateResidencyProvider.aidl",
        "android/vendor/powerstats/IPixelStateResidencyCallback.aidl",
    ],
    backend: {
        java: {
            platform_apis: true,
        },
        cpp: {
            enabled: false,
        },
    },

    vendor_available: true,
    host_supported: true,
}
