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

java_sdk_library {
    name: "org.apache.http.legacy",
    srcs: [
        "src/**/*.java",
        "android/**/*.java",
    ],
    api_srcs: [
        ":apache-http-stubs-sources",
    ],
    api_packages: [
          "android.net.compatibility",
          "android.net.http",
          "com.android.internal.http.multipart",
          "org.apache.commons.codec",
          "org.apache.commons.codec.binary",
          "org.apache.commons.codec.language",
          "org.apache.commons.codec.net",
          "org.apache.commons.logging",
          "org.apache.commons.logging.impl",
          "org.apache.http",
          "org.apache.http.auth",
          "org.apache.http.auth.params",
          "org.apache.http.client",
          "org.apache.http.client.entity",
          "org.apache.http.client.methods",
          "org.apache.http.client.params",
          "org.apache.http.client.protocol",
          "org.apache.http.client.utils",
          "org.apache.http.conn",
          "org.apache.http.conn.params",
          "org.apache.http.conn.routing",
          "org.apache.http.conn.scheme",
          "org.apache.http.conn.util",
          "org.apache.http.cookie",
          "org.apache.http.cookie.params",
          "org.apache.http.entity",
          "org.apache.http.impl",
          "org.apache.http.impl.auth",
          "org.apache.http.impl.client",
          "org.apache.http.impl.conn",
          "org.apache.http.impl.conn.tsccm",
          "org.apache.http.impl.cookie",
          "org.apache.http.impl.entity",
          "org.apache.http.impl.io",
          "org.apache.http.io",
          "org.apache.http.message",
          "org.apache.http.params",
          "org.apache.http.protocol",
          "org.apache.http.util",
    ],
    hidden_api_packages: ["com.android.okhttp"],
    dex_preopt: {
        profile: "art-profile",
        app_image: false,
    },
    errorprone: {
        javacflags: ["-Xep:MissingOverride:OFF"],  // b/73499927
    },
    metalava_enabled: false,
}
