File resources get into the table a different way when they haven't been modified by the FlaggedXmlVersioner or XmlCompatVersioner and this addresses that path. With this change, during compile we now find if an xml resource uses flags and store that in the XmlResource which is then persisted to and retrieved from the proto. This means the FlaggedXmlVersioner doesn't have to look for them in the case that the file config or minsdk is >= baklava. This also moved the FeatureFlagsFilter to before we version the files. The FeatureFlagsFilter is what strips elements behind disabled read only flags at compile time and removed the featureFlag attribute when the element is behind an enabled read only flag. This is so that the FlaggedXmlVersioner doesn't have to worry if the flags it sees are read/write or readonly. It should only ever encounter read/write flags. Test: Automation Bug: 377974898 Flag: android.content.res.layout_readwrite_flags Change-Id: Ia6cbf55bc9f8d594eeb5c44c143565e93684ae2c
61 lines
2.0 KiB
Protocol Buffer
61 lines
2.0 KiB
Protocol Buffer
/*
|
|
* Copyright (C) 2016 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.
|
|
*/
|
|
|
|
syntax = "proto3";
|
|
|
|
import "frameworks/base/tools/aapt2/Configuration.proto";
|
|
import "frameworks/base/tools/aapt2/Resources.proto";
|
|
|
|
package aapt.pb.internal;
|
|
|
|
option java_package = "android.aapt.pb.internal";
|
|
|
|
// The top level message representing an external resource file (layout XML, PNG, etc).
|
|
// This is used to represent a compiled file before it is linked. Only useful to aapt2.
|
|
message CompiledFile {
|
|
message Symbol {
|
|
// The name of the symbol (in the form package:type/name).
|
|
string resource_name = 1;
|
|
|
|
// The position in the file at which this symbol is defined. For debug use.
|
|
aapt.pb.SourcePosition source = 2;
|
|
}
|
|
|
|
// The name of the resource (in the form package:type/name).
|
|
string resource_name = 1;
|
|
|
|
// The configuration for which the resource is defined.
|
|
aapt.pb.Configuration config = 2;
|
|
|
|
// The type of the file.
|
|
aapt.pb.FileReference.Type type = 3;
|
|
|
|
// The filesystem path to where the source file originated.
|
|
// Mainly used to display helpful error messages.
|
|
string source_path = 4;
|
|
|
|
// Any symbols this file auto-generates/exports (eg. @+id/foo in an XML file).
|
|
repeated Symbol exported_symbol = 5;
|
|
|
|
// The status of the read only flag the file is behind if any
|
|
uint32 flag_status = 6;
|
|
bool flag_negated = 7;
|
|
string flag_name = 8;
|
|
|
|
// Whether the file uses read/write feature flags
|
|
bool uses_readwrite_feature_flags = 9;
|
|
}
|