//
// 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.
//

android_app {
    name: "framework-res",
    sdk_version: "core_platform",
    certificate: "platform",

    // Soong special-cases framework-res to install this alongside
    // the libraries at /system/framework/framework-res.apk.

    // Generate private symbols into the com.android.internal.R class
    // so they are not accessible to 3rd party apps.
    aaptflags: [
        "--private-symbols",
        "com.android.internal",

        // Framework doesn't need versioning since it IS the platform.
        "--no-auto-version",

        // Allow overlay to add resource
        "--auto-add-overlay",
    ],

    // Create package-export.apk, which other packages can use to get
    // PRODUCT-agnostic resource data like IDs and type definitions.
    export_package_resources: true,

    dist: {
        targets: [
            "simulated_device_launcher",
        ],
    },
}

java_genrule {
    name: "framework-res-package-jar",
    srcs: [":framework-res{.export-package.apk}"],
    out: ["framework-res-package.jar"],
    cmd: "cp $(in) $(out)",
}

// This logic can be removed once robolectric's transition to binary resources is complete
filegroup {
    name: "robolectric_framework_raw_res_files",
    srcs: [
        "assets/**/*",
        "res/**/*",
    ],
}

// Generate a text file containing a list of permissions that non-system apps
// are allowed to obtain.
genrule {
  name: "permission-list-normal",
  out: ["permission-list-normal.txt"],
  srcs: ["AndroidManifest.xml"],
  cmd: "cat $(in) " +
       // xmllint has trouble accessing attributes under the android namespace.
       // Strip these prefixes prior to processing with xmllint.
       " | sed -r 's/android:(name|protectionLevel)/\\1/g' " +
       " | $(location xmllint) /dev/stdin --xpath " +
       " '//permission[not(contains(@protectionLevel, \"signature\"))]/@name'" +
       // The result of xmllint is name="value" pairs. Format these to just the
       // permission name, one per-line.
       " | sed -r 's/\\s*name=\\s*//g' | tr -d '\"'" +
       " > $(out)",
  tools: ["xmllint"]
}
