Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d35a4f9 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11666018 from ef047f47 to 24Q3-release

Change-Id: I68c179cdb500b5577ed06d4000764c62e2bec1af
parents 76072034 ef047f47
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ aconfig_declarations_group {
        "com.android.internal.pm.pkg.component.flags-aconfig-java",
        "com.android.media.flags.bettertogether-aconfig-java",
        "com.android.media.flags.editing-aconfig-java",
        "com.android.media.flags.performance-aconfig-java",
        "com.android.media.flags.projection-aconfig-java",
        "com.android.net.thread.platform.flags-aconfig-java",
        "com.android.server.flags.services-aconfig-java",
@@ -347,6 +348,7 @@ java_aconfig_library {
    apex_available: [
        "//apex_available:platform",
        "com.android.mediaprovider",
        "com.android.permission",
    ],
}

@@ -594,6 +596,21 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Media Performance
aconfig_declarations {
    name: "com.android.media.flags.performance-aconfig",
    package: "com.android.media.performance.flags",
    srcs: [
        "media/java/android/media/flags/performance.aconfig",
    ],
}

java_aconfig_library {
    name: "com.android.media.flags.performance-aconfig-java",
    aconfig_declarations: "com.android.media.flags.performance-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Media TV
aconfig_declarations {
    name: "android.media.tv.flags-aconfig",

Android.mk

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#
# 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.
#
LOCAL_PATH := $(call my-dir)

# TODO: Empty this file after all subdirectories' Android.mk have been
#       converted to Android.bp to avoid using any newly added Android.mk.
include $(call first-makefiles-under,$(LOCAL_PATH))
+2 −0
Original line number Diff line number Diff line
@@ -168,6 +168,7 @@ java_library {
        "services.core.ravenwood",
    ],
    jarjar_rules: ":ravenwood-services-jarjar-rules",
    visibility: ["//visibility:private"],
}

java_library {
@@ -179,6 +180,7 @@ java_library {
        "services.core.ravenwood",
    ],
    jarjar_rules: ":ravenwood-services-jarjar-rules",
    visibility: ["//visibility:private"],
}

java_library {
+51 −33
Original line number Diff line number Diff line
@@ -16,51 +16,69 @@

package android.platform.coverage

import com.android.tools.metalava.model.ClassItem
import com.android.tools.metalava.model.MethodItem
import com.android.tools.metalava.model.text.ApiFile
import java.io.File
import java.io.FileWriter

/** Usage: extract-flagged-apis <api text file> <output .pb file> */
fun main(args: Array<String>) {
    var cb = ApiFile.parseApi(listOf(File(args[0])))
    var builder = FlagApiMap.newBuilder()
    val cb = ApiFile.parseApi(listOf(File(args[0])))
    val builder = FlagApiMap.newBuilder()
    for (pkg in cb.getPackages().packages) {
        var packageName = pkg.qualifiedName()
        val packageName = pkg.qualifiedName()
        pkg.allClasses()
            .filter { it.methods().size > 0 }
            .forEach {
                for (method in it.methods()) {
                    val flagValue =
                extractFlaggedApisFromClass(it, it.methods(), packageName, builder)
                extractFlaggedApisFromClass(it, it.constructors(), packageName, builder)
            }
    }
    val flagApiMap = builder.build()
    FileWriter(args[1]).use { it.write(flagApiMap.toString()) }
}

fun extractFlaggedApisFromClass(
    classItem: ClassItem,
    methods: List<MethodItem>,
    packageName: String,
    builder: FlagApiMap.Builder
) {
    val classFlag =
        classItem.modifiers
            .findAnnotation("android.annotation.FlaggedApi")
            ?.findAttribute("value")
            ?.value
            ?.value() as? String
    for (method in methods) {
        val methodFlag =
            method.modifiers
                .findAnnotation("android.annotation.FlaggedApi")
                ?.findAttribute("value")
                ?.value
                            ?.value()
                    if (flagValue != null && flagValue is String) {
                        var api =
                ?.value() as? String
                ?: classFlag
        val api =
            JavaMethod.newBuilder()
                .setPackageName(packageName)
                                .setClassName(it.fullName())
                .setClassName(classItem.fullName())
                .setMethodName(method.name())
        for (param in method.parameters()) {
            api.addParameters(param.type().toTypeString())
        }
                        if (builder.containsFlagToApi(flagValue)) {
                            var updatedApis =
                                builder
                                    .getFlagToApiOrThrow(flagValue)
                                    .toBuilder()
                                    .addJavaMethods(api)
                                    .build()
                            builder.putFlagToApi(flagValue, updatedApis)
                        } else {
                            var apis = FlaggedApis.newBuilder().addJavaMethods(api).build()
                            builder.putFlagToApi(flagValue, apis)
                        }
        if (methodFlag != null) {
            addFlaggedApi(builder, api, methodFlag)
        }
    }
}

fun addFlaggedApi(builder: FlagApiMap.Builder, api: JavaMethod.Builder, flag: String) {
    if (builder.containsFlagToApi(flag)) {
        val updatedApis = builder.getFlagToApiOrThrow(flag).toBuilder().addJavaMethods(api).build()
        builder.putFlagToApi(flag, updatedApis)
    } else {
        val apis = FlaggedApis.newBuilder().addJavaMethods(api).build()
        builder.putFlagToApi(flag, apis)
    }
    val flagApiMap = builder.build()
    FileWriter(args[1]).use { it.write(flagApiMap.toString()) }
}
+3 −1
Original line number Diff line number Diff line
@@ -195,7 +195,9 @@ status_t FieldStripper::strip(const uint8_t privacyPolicy) {
        ProtoOutputStream proto(mEncodedBuffer);

        // Optimization when no strip happens.
        if (mRestrictions == NULL || spec.RequireAll()) {
        if (mRestrictions == NULL || spec.RequireAll()
                // Do not iterate through fields if primitive data
                || !mRestrictions->children /* != FieldDescriptor::TYPE_MESSAGE */) {
            if (spec.CheckPremission(mRestrictions)) {
                mSize = mData->size();
            }
Loading