Use staging-public-group in framework SDK

To make S finalization easier, this changes the framework SDK so that
apps linking against it will be able to continue working as expected
after the first phase of SDK finalization.

During the first phase of SDK finalization, the resource ids of
resources that have not been removed are finalized.
staging-public-group tags are converted to staging-public-group-final
tags in order to encode into the framework what the staged resource id
of a finalized resource was. When an app recompiles, it will use the
finalized resource id. Then after all apps recompile, phase 2 of
finalization begins, in which the staging-public-group-final tags are
removed so apps can no longer use the staged resource ids.

Apps that link against the SDK (provided they are using a recent
version of aapt) will encode references to staged resources as
TYPE_DYNAMIC_REFERENCE and TYPE_DYNAMIC_ATTRIBUTE. The values of R
fields for staged resources are defined out-of-line to prevent them
from being inlined into apps linking agsint the SDK. This allows the
resource ids to change during phase 1 of API finalization.

Bug: 183413192
Test: `aapt2 diff` and resource ids stayed the same
Test: `aapt2 dump` of framework-res.apk and observe staged resources
Change-Id: Ie2275c608297a5f63dde8b1cf795415112cbcc24
This commit is contained in:
Ryan Mitchell
2021-03-29 14:47:02 -07:00
parent b50914c524
commit ca3b4f7633
8 changed files with 180 additions and 154 deletions

View File

@@ -303,7 +303,7 @@ package android {
field public static final int allowAudioPlaybackCapture = 16844289; // 0x1010601
field public static final int allowBackup = 16843392; // 0x1010280
field public static final int allowClearUserData = 16842757; // 0x1010005
field public static final int allowClickWhenDisabled = 16844312; // 0x1010618
field public static final int allowClickWhenDisabled;
field public static final int allowEmbedded = 16843765; // 0x10103f5
field public static final int allowNativeHeapPointerTagging = 16844306; // 0x1010612
field public static final int allowParallelSyncs = 16843570; // 0x1010332
@@ -334,7 +334,7 @@ package android {
field public static final int apiKey = 16843281; // 0x1010211
field public static final int appCategory = 16844101; // 0x1010545
field public static final int appComponentFactory = 16844154; // 0x101057a
field public static final int attributionTags = 16844354; // 0x1010642
field public static final int attributionTags;
field public static final int author = 16843444; // 0x10102b4
field public static final int authorities = 16842776; // 0x1010018
field public static final int autoAdvanceViewId = 16843535; // 0x101030f
@@ -400,7 +400,7 @@ package android {
field public static final int calendarViewShown = 16843596; // 0x101034c
field public static final int calendarViewStyle = 16843613; // 0x101035d
field public static final int canControlMagnification = 16844039; // 0x1010507
field public static final int canPauseRecording = 16844314; // 0x101061a
field public static final int canPauseRecording;
field public static final int canPerformGestures = 16844045; // 0x101050d
field public static final int canRecord = 16844060; // 0x101051c
field @Deprecated public static final int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
@@ -442,7 +442,7 @@ package android {
field public static final int clickable = 16842981; // 0x10100e5
field public static final int clipChildren = 16842986; // 0x10100ea
field public static final int clipOrientation = 16843274; // 0x101020a
field public static final int clipToOutline = 16844328; // 0x1010628
field public static final int clipToOutline;
field public static final int clipToPadding = 16842987; // 0x10100eb
field public static final int closeIcon = 16843905; // 0x1010481
field @Deprecated public static final int codes = 16843330; // 0x1010242
@@ -512,7 +512,7 @@ package android {
field public static final int dashGap = 16843175; // 0x10101a7
field public static final int dashWidth = 16843174; // 0x10101a6
field public static final int data = 16842798; // 0x101002e
field public static final int dataExtractionRules = 16844350; // 0x101063e
field public static final int dataExtractionRules;
field public static final int datePickerDialogTheme = 16843948; // 0x10104ac
field public static final int datePickerMode = 16843955; // 0x10104b3
field public static final int datePickerStyle = 16843612; // 0x101035c
@@ -534,8 +534,8 @@ package android {
field public static final int detailSocialSummary = 16843428; // 0x10102a4
field public static final int detailsElementBackground = 16843598; // 0x101034e
field public static final int dial = 16843010; // 0x1010102
field public static final int dialTint = 16844342; // 0x1010636
field public static final int dialTintMode = 16844343; // 0x1010637
field public static final int dialTint;
field public static final int dialTintMode;
field public static final int dialogCornerRadius = 16844145; // 0x1010571
field public static final int dialogIcon = 16843252; // 0x10101f4
field public static final int dialogLayout = 16843255; // 0x10101f7
@@ -583,7 +583,7 @@ package android {
field public static final int dropDownWidth = 16843362; // 0x1010262
field public static final int duplicateParentState = 16842985; // 0x10100e9
field public static final int duration = 16843160; // 0x1010198
field public static final int edgeEffectType = 16844329; // 0x1010629
field public static final int edgeEffectType;
field public static final int editTextBackground = 16843602; // 0x1010352
field public static final int editTextColor = 16843601; // 0x1010351
field public static final int editTextPreferenceStyle = 16842898; // 0x1010092
@@ -669,7 +669,7 @@ package android {
field @Deprecated public static final int fontProviderCerts = 16844125; // 0x101055d
field @Deprecated public static final int fontProviderPackage = 16844119; // 0x1010557
field @Deprecated public static final int fontProviderQuery = 16844113; // 0x1010551
field public static final int fontProviderSystemFontFamily = 16844322; // 0x1010622
field public static final int fontProviderSystemFontFamily;
field public static final int fontStyle = 16844095; // 0x101053f
field public static final int fontVariationSettings = 16844144; // 0x1010570
field public static final int fontWeight = 16844083; // 0x1010533
@@ -733,14 +733,14 @@ package android {
field public static final int groupIndicator = 16843019; // 0x101010b
field public static final int gwpAsanMode = 16844310; // 0x1010616
field public static final int hand_hour = 16843011; // 0x1010103
field public static final int hand_hourTint = 16844344; // 0x1010638
field public static final int hand_hourTintMode = 16844345; // 0x1010639
field public static final int hand_hourTint;
field public static final int hand_hourTintMode;
field public static final int hand_minute = 16843012; // 0x1010104
field public static final int hand_minuteTint = 16844346; // 0x101063a
field public static final int hand_minuteTintMode = 16844347; // 0x101063b
field public static final int hand_second = 16844323; // 0x1010623
field public static final int hand_secondTint = 16844348; // 0x101063c
field public static final int hand_secondTintMode = 16844349; // 0x101063d
field public static final int hand_minuteTint;
field public static final int hand_minuteTintMode;
field public static final int hand_second;
field public static final int hand_secondTint;
field public static final int hand_secondTintMode;
field public static final int handle = 16843354; // 0x101025a
field public static final int handleProfiling = 16842786; // 0x1010022
field public static final int hapticFeedbackEnabled = 16843358; // 0x101025e
@@ -824,7 +824,7 @@ package android {
field public static final int installLocation = 16843447; // 0x10102b7
field public static final int interactiveUiTimeout = 16844181; // 0x1010595
field public static final int interpolator = 16843073; // 0x1010141
field public static final int isAccessibilityTool = 16844353; // 0x1010641
field public static final int isAccessibilityTool;
field public static final int isAlwaysSyncable = 16843571; // 0x1010333
field public static final int isAsciiCapable = 16843753; // 0x10103e9
field public static final int isAuxiliary = 16843647; // 0x101037f
@@ -866,8 +866,8 @@ package android {
field public static final int keyboardNavigationCluster = 16844096; // 0x1010540
field public static final int keycode = 16842949; // 0x10100c5
field public static final int killAfterRestore = 16843420; // 0x101029c
field public static final int knownCerts = 16844330; // 0x101062a
field public static final int lStar = 16844359; // 0x1010647
field public static final int knownCerts;
field public static final int lStar;
field public static final int label = 16842753; // 0x1010001
field public static final int labelFor = 16843718; // 0x10103c6
field @Deprecated public static final int labelTextSize = 16843317; // 0x1010235
@@ -977,8 +977,8 @@ package android {
field public static final int maxLines = 16843091; // 0x1010153
field public static final int maxLongVersionCode = 16844163; // 0x1010583
field public static final int maxRecents = 16843846; // 0x1010446
field public static final int maxResizeHeight = 16844339; // 0x1010633
field public static final int maxResizeWidth = 16844338; // 0x1010632
field public static final int maxResizeHeight;
field public static final int maxResizeWidth;
field public static final int maxRows = 16843059; // 0x1010133
field public static final int maxSdkVersion = 16843377; // 0x1010271
field public static final int maxWidth = 16843039; // 0x101011f
@@ -987,7 +987,7 @@ package android {
field public static final int measureWithLargestChild = 16843476; // 0x10102d4
field public static final int mediaRouteButtonStyle = 16843693; // 0x10103ad
field public static final int mediaRouteTypes = 16843694; // 0x10103ae
field public static final int memtagMode = 16844324; // 0x1010624
field public static final int memtagMode;
field public static final int menuCategory = 16843230; // 0x10101de
field public static final int mimeGroup = 16844309; // 0x1010615
field public static final int mimeType = 16842790; // 0x1010026
@@ -1011,7 +1011,7 @@ package android {
field public static final int multiArch = 16843918; // 0x101048e
field public static final int multiprocess = 16842771; // 0x1010013
field public static final int name = 16842755; // 0x1010003
field public static final int nativeHeapZeroInitialized = 16844325; // 0x1010625
field public static final int nativeHeapZeroInitialized;
field public static final int navigationBarColor = 16843858; // 0x1010452
field public static final int navigationBarDividerColor = 16844141; // 0x101056d
field public static final int navigationContentDescription = 16843969; // 0x10104c1
@@ -1081,13 +1081,13 @@ package android {
field public static final int panelTextAppearance = 16842850; // 0x1010062
field public static final int parentActivityName = 16843687; // 0x10103a7
field @Deprecated public static final int password = 16843100; // 0x101015c
field public static final int passwordsActivity = 16844351; // 0x101063f
field public static final int passwordsActivity;
field public static final int path = 16842794; // 0x101002a
field public static final int pathAdvancedPattern = 16844320; // 0x1010620
field public static final int pathAdvancedPattern;
field public static final int pathData = 16843781; // 0x1010405
field public static final int pathPattern = 16842796; // 0x101002c
field public static final int pathPrefix = 16842795; // 0x101002b
field public static final int pathSuffix = 16844318; // 0x101061e
field public static final int pathSuffix;
field public static final int patternPathData = 16843978; // 0x10104ca
field public static final int permission = 16842758; // 0x1010006
field public static final int permissionFlags = 16843719; // 0x10103c7
@@ -1124,7 +1124,7 @@ package android {
field public static final int presentationTheme = 16843712; // 0x10103c0
field public static final int preserveLegacyExternalStorage = 16844308; // 0x1010614
field public static final int previewImage = 16843482; // 0x10102da
field public static final int previewLayout = 16844327; // 0x1010627
field public static final int previewLayout;
field public static final int primaryContentAlpha = 16844114; // 0x1010552
field public static final int priority = 16842780; // 0x101001c
field public static final int privateImeOptions = 16843299; // 0x1010223
@@ -1181,8 +1181,8 @@ package android {
field public static final int reqNavigation = 16843306; // 0x101022a
field public static final int reqTouchScreen = 16843303; // 0x1010227
field public static final int requestLegacyExternalStorage = 16844291; // 0x1010603
field public static final int requestOptimizedExternalStorageAccess = 16844357; // 0x1010645
field public static final int requireDeviceScreenOn = 16844317; // 0x101061d
field public static final int requestOptimizedExternalStorageAccess;
field public static final int requireDeviceScreenOn;
field public static final int requireDeviceUnlock = 16843756; // 0x10103ec
field public static final int required = 16843406; // 0x101028e
field public static final int requiredAccountType = 16843734; // 0x10103d6
@@ -1207,7 +1207,7 @@ package android {
field public static final int right = 16843183; // 0x10101af
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rollbackDataPolicy = 16844311; // 0x1010617
field public static final int rollbackDataPolicy;
field public static final int rotation = 16843558; // 0x1010326
field public static final int rotationAnimation = 16844090; // 0x101053a
field public static final int rotationX = 16843559; // 0x1010327
@@ -1268,7 +1268,7 @@ package android {
field public static final int segmentedButtonStyle = 16843568; // 0x1010330
field public static final int selectAllOnFocus = 16843102; // 0x101015e
field public static final int selectable = 16843238; // 0x10101e6
field public static final int selectableAsDefault = 16844352; // 0x1010640
field public static final int selectableAsDefault;
field public static final int selectableItemBackground = 16843534; // 0x101030e
field public static final int selectableItemBackgroundBorderless = 16843868; // 0x101045c
field @Deprecated public static final int selectedDateVerticalBar = 16843591; // 0x1010347
@@ -1296,7 +1296,7 @@ package android {
field public static final int showDefault = 16843258; // 0x10101fa
field public static final int showDividers = 16843561; // 0x1010329
field public static final int showForAllUsers = 16844015; // 0x10104ef
field public static final int showInInputMethodPicker = 16844361; // 0x1010649
field public static final int showInInputMethodPicker;
field public static final int showMetadataInPreview = 16844079; // 0x101052f
field @Deprecated public static final int showOnLockScreen = 16843721; // 0x10103c9
field public static final int showSilent = 16843259; // 0x10101fb
@@ -1319,17 +1319,17 @@ package android {
field public static final int spinnerMode = 16843505; // 0x10102f1
field public static final int spinnerStyle = 16842881; // 0x1010081
field public static final int spinnersShown = 16843595; // 0x101034b
field public static final int splashScreenTheme = 16844337; // 0x1010631
field public static final int splashScreenTheme;
field public static final int splitMotionEvents = 16843503; // 0x10102ef
field public static final int splitName = 16844105; // 0x1010549
field public static final int splitTrack = 16843852; // 0x101044c
field public static final int spotShadowAlpha = 16843967; // 0x10104bf
field public static final int src = 16843033; // 0x1010119
field public static final int ssp = 16843747; // 0x10103e3
field public static final int sspAdvancedPattern = 16844321; // 0x1010621
field public static final int sspAdvancedPattern;
field public static final int sspPattern = 16843749; // 0x10103e5
field public static final int sspPrefix = 16843748; // 0x10103e4
field public static final int sspSuffix = 16844319; // 0x101061f
field public static final int sspSuffix;
field public static final int stackFromBottom = 16843005; // 0x10100fd
field public static final int stackViewStyle = 16843838; // 0x101043e
field public static final int starStyle = 16842882; // 0x1010082
@@ -1402,7 +1402,7 @@ package android {
field public static final int supportsRtl = 16843695; // 0x10103af
field public static final int supportsSwitchingToNextInputMethod = 16843755; // 0x10103eb
field public static final int supportsUploading = 16843419; // 0x101029b
field public static final int suppressesSpellChecker = 16844355; // 0x1010643
field public static final int suppressesSpellChecker;
field public static final int switchMinWidth = 16843632; // 0x1010370
field public static final int switchPadding = 16843633; // 0x1010371
field public static final int switchPreferenceStyle = 16843629; // 0x101036d
@@ -1417,8 +1417,8 @@ package android {
field public static final int tabWidgetStyle = 16842883; // 0x1010083
field public static final int tag = 16842961; // 0x10100d1
field public static final int targetActivity = 16843266; // 0x1010202
field public static final int targetCellHeight = 16844341; // 0x1010635
field public static final int targetCellWidth = 16844340; // 0x1010634
field public static final int targetCellHeight;
field public static final int targetCellWidth;
field public static final int targetClass = 16842799; // 0x101002f
field @Deprecated public static final int targetDescriptions = 16843680; // 0x10103a0
field public static final int targetId = 16843740; // 0x10103dc
@@ -1588,7 +1588,7 @@ package android {
field public static final int useLevel = 16843167; // 0x101019f
field public static final int userVisible = 16843409; // 0x1010291
field public static final int usesCleartextTraffic = 16844012; // 0x10104ec
field public static final int usesPermissionFlags = 16844356; // 0x1010644
field public static final int usesPermissionFlags;
field public static final int value = 16842788; // 0x1010024
field public static final int valueFrom = 16843486; // 0x10102de
field public static final int valueTo = 16843487; // 0x10102df
@@ -1643,10 +1643,10 @@ package android {
field public static final int windowAllowReturnTransitionOverlap = 16843835; // 0x101043b
field public static final int windowAnimationStyle = 16842926; // 0x10100ae
field public static final int windowBackground = 16842836; // 0x1010054
field public static final int windowBackgroundBlurRadius = 16844331; // 0x101062b
field public static final int windowBackgroundBlurRadius;
field public static final int windowBackgroundFallback = 16844035; // 0x1010503
field public static final int windowBlurBehindEnabled = 16844316; // 0x101061c
field public static final int windowBlurBehindRadius = 16844315; // 0x101061b
field public static final int windowBlurBehindEnabled;
field public static final int windowBlurBehindRadius;
field public static final int windowClipToOutline = 16843947; // 0x10104ab
field public static final int windowCloseOnTouchOutside = 16843611; // 0x101035b
field public static final int windowContentOverlay = 16842841; // 0x1010059
@@ -1665,7 +1665,7 @@ package android {
field public static final int windowHideAnimation = 16842935; // 0x10100b7
field public static final int windowIsFloating = 16842839; // 0x1010057
field public static final int windowIsTranslucent = 16842840; // 0x1010058
field public static final int windowLayoutAffinity = 16844313; // 0x1010619
field public static final int windowLayoutAffinity;
field public static final int windowLayoutInDisplayCutoutMode = 16844166; // 0x1010586
field public static final int windowLightNavigationBar = 16844140; // 0x101056c
field public static final int windowLightStatusBar = 16844000; // 0x10104e0
@@ -1684,11 +1684,11 @@ package android {
field public static final int windowShowAnimation = 16842934; // 0x10100b6
field public static final int windowShowWallpaper = 16843410; // 0x1010292
field public static final int windowSoftInputMode = 16843307; // 0x101022b
field public static final int windowSplashScreenAnimatedIcon = 16844333; // 0x101062d
field public static final int windowSplashScreenAnimationDuration = 16844334; // 0x101062e
field public static final int windowSplashScreenBackground = 16844332; // 0x101062c
field public static final int windowSplashScreenBrandingImage = 16844335; // 0x101062f
field public static final int windowSplashScreenIconBackgroundColor = 16844336; // 0x1010630
field public static final int windowSplashScreenAnimatedIcon;
field public static final int windowSplashScreenAnimationDuration;
field public static final int windowSplashScreenBackground;
field public static final int windowSplashScreenBrandingImage;
field public static final int windowSplashScreenIconBackgroundColor;
field @Deprecated public static final int windowSplashscreenContent = 16844132; // 0x1010564
field @Deprecated public static final int windowSwipeToDismiss = 16843763; // 0x10103f3
field public static final int windowTitleBackgroundStyle = 16842844; // 0x101005c
@@ -1736,66 +1736,66 @@ package android {
field @Deprecated public static final int secondary_text_dark_nodisable = 17170438; // 0x1060006
field @Deprecated public static final int secondary_text_light = 17170439; // 0x1060007
field @Deprecated public static final int secondary_text_light_nodisable = 17170440; // 0x1060008
field public static final int system_accent1_0 = 17170485; // 0x1060035
field public static final int system_accent1_100 = 17170487; // 0x1060037
field public static final int system_accent1_1000 = 17170496; // 0x1060040
field public static final int system_accent1_200 = 17170488; // 0x1060038
field public static final int system_accent1_300 = 17170489; // 0x1060039
field public static final int system_accent1_400 = 17170490; // 0x106003a
field public static final int system_accent1_50 = 17170486; // 0x1060036
field public static final int system_accent1_500 = 17170491; // 0x106003b
field public static final int system_accent1_600 = 17170492; // 0x106003c
field public static final int system_accent1_700 = 17170493; // 0x106003d
field public static final int system_accent1_800 = 17170494; // 0x106003e
field public static final int system_accent1_900 = 17170495; // 0x106003f
field public static final int system_accent2_0 = 17170497; // 0x1060041
field public static final int system_accent2_100 = 17170499; // 0x1060043
field public static final int system_accent2_1000 = 17170508; // 0x106004c
field public static final int system_accent2_200 = 17170500; // 0x1060044
field public static final int system_accent2_300 = 17170501; // 0x1060045
field public static final int system_accent2_400 = 17170502; // 0x1060046
field public static final int system_accent2_50 = 17170498; // 0x1060042
field public static final int system_accent2_500 = 17170503; // 0x1060047
field public static final int system_accent2_600 = 17170504; // 0x1060048
field public static final int system_accent2_700 = 17170505; // 0x1060049
field public static final int system_accent2_800 = 17170506; // 0x106004a
field public static final int system_accent2_900 = 17170507; // 0x106004b
field public static final int system_accent3_0 = 17170509; // 0x106004d
field public static final int system_accent3_100 = 17170511; // 0x106004f
field public static final int system_accent3_1000 = 17170520; // 0x1060058
field public static final int system_accent3_200 = 17170512; // 0x1060050
field public static final int system_accent3_300 = 17170513; // 0x1060051
field public static final int system_accent3_400 = 17170514; // 0x1060052
field public static final int system_accent3_50 = 17170510; // 0x106004e
field public static final int system_accent3_500 = 17170515; // 0x1060053
field public static final int system_accent3_600 = 17170516; // 0x1060054
field public static final int system_accent3_700 = 17170517; // 0x1060055
field public static final int system_accent3_800 = 17170518; // 0x1060056
field public static final int system_accent3_900 = 17170519; // 0x1060057
field public static final int system_neutral1_0 = 17170461; // 0x106001d
field public static final int system_neutral1_100 = 17170463; // 0x106001f
field public static final int system_neutral1_1000 = 17170472; // 0x1060028
field public static final int system_neutral1_200 = 17170464; // 0x1060020
field public static final int system_neutral1_300 = 17170465; // 0x1060021
field public static final int system_neutral1_400 = 17170466; // 0x1060022
field public static final int system_neutral1_50 = 17170462; // 0x106001e
field public static final int system_neutral1_500 = 17170467; // 0x1060023
field public static final int system_neutral1_600 = 17170468; // 0x1060024
field public static final int system_neutral1_700 = 17170469; // 0x1060025
field public static final int system_neutral1_800 = 17170470; // 0x1060026
field public static final int system_neutral1_900 = 17170471; // 0x1060027
field public static final int system_neutral2_0 = 17170473; // 0x1060029
field public static final int system_neutral2_100 = 17170475; // 0x106002b
field public static final int system_neutral2_1000 = 17170484; // 0x1060034
field public static final int system_neutral2_200 = 17170476; // 0x106002c
field public static final int system_neutral2_300 = 17170477; // 0x106002d
field public static final int system_neutral2_400 = 17170478; // 0x106002e
field public static final int system_neutral2_50 = 17170474; // 0x106002a
field public static final int system_neutral2_500 = 17170479; // 0x106002f
field public static final int system_neutral2_600 = 17170480; // 0x1060030
field public static final int system_neutral2_700 = 17170481; // 0x1060031
field public static final int system_neutral2_800 = 17170482; // 0x1060032
field public static final int system_neutral2_900 = 17170483; // 0x1060033
field public static final int system_accent1_0;
field public static final int system_accent1_100;
field public static final int system_accent1_1000;
field public static final int system_accent1_200;
field public static final int system_accent1_300;
field public static final int system_accent1_400;
field public static final int system_accent1_50;
field public static final int system_accent1_500;
field public static final int system_accent1_600;
field public static final int system_accent1_700;
field public static final int system_accent1_800;
field public static final int system_accent1_900;
field public static final int system_accent2_0;
field public static final int system_accent2_100;
field public static final int system_accent2_1000;
field public static final int system_accent2_200;
field public static final int system_accent2_300;
field public static final int system_accent2_400;
field public static final int system_accent2_50;
field public static final int system_accent2_500;
field public static final int system_accent2_600;
field public static final int system_accent2_700;
field public static final int system_accent2_800;
field public static final int system_accent2_900;
field public static final int system_accent3_0;
field public static final int system_accent3_100;
field public static final int system_accent3_1000;
field public static final int system_accent3_200;
field public static final int system_accent3_300;
field public static final int system_accent3_400;
field public static final int system_accent3_50;
field public static final int system_accent3_500;
field public static final int system_accent3_600;
field public static final int system_accent3_700;
field public static final int system_accent3_800;
field public static final int system_accent3_900;
field public static final int system_neutral1_0;
field public static final int system_neutral1_100;
field public static final int system_neutral1_1000;
field public static final int system_neutral1_200;
field public static final int system_neutral1_300;
field public static final int system_neutral1_400;
field public static final int system_neutral1_50;
field public static final int system_neutral1_500;
field public static final int system_neutral1_600;
field public static final int system_neutral1_700;
field public static final int system_neutral1_800;
field public static final int system_neutral1_900;
field public static final int system_neutral2_0;
field public static final int system_neutral2_100;
field public static final int system_neutral2_1000;
field public static final int system_neutral2_200;
field public static final int system_neutral2_300;
field public static final int system_neutral2_400;
field public static final int system_neutral2_50;
field public static final int system_neutral2_500;
field public static final int system_neutral2_600;
field public static final int system_neutral2_700;
field public static final int system_neutral2_800;
field public static final int system_neutral2_900;
field public static final int tab_indicator_text = 17170441; // 0x1060009
field @Deprecated public static final int tertiary_text_dark = 17170448; // 0x1060010
field @Deprecated public static final int tertiary_text_light = 17170449; // 0x1060011
@@ -1811,9 +1811,9 @@ package android {
field public static final int dialog_min_width_minor = 17104900; // 0x1050004
field public static final int notification_large_icon_height = 17104902; // 0x1050006
field public static final int notification_large_icon_width = 17104901; // 0x1050005
field public static final int system_app_widget_background_radius = 17104904; // 0x1050008
field public static final int system_app_widget_inner_radius = 17104905; // 0x1050009
field public static final int system_app_widget_internal_padding = 17104906; // 0x105000a
field public static final int system_app_widget_background_radius;
field public static final int system_app_widget_inner_radius;
field public static final int system_app_widget_internal_padding;
field public static final int thumbnail_height = 17104897; // 0x1050001
field public static final int thumbnail_width = 17104898; // 0x1050002
}

View File

@@ -313,15 +313,15 @@ package android {
public static final class R.attr {
field public static final int allowClearUserDataOnFailedRestore = 16844288; // 0x1010600
field public static final int hotwordDetectionService = 16844326; // 0x1010626
field public static final int hotwordDetectionService;
field public static final int isVrOnly = 16844152; // 0x1010578
field public static final int minExtensionVersion = 16844305; // 0x1010611
field public static final int playHomeTransitionSound = 16844358; // 0x1010646
field public static final int playHomeTransitionSound;
field public static final int requiredSystemPropertyName = 16844133; // 0x1010565
field public static final int requiredSystemPropertyValue = 16844134; // 0x1010566
field public static final int sdkVersion = 16844304; // 0x1010610
field public static final int supportsAmbientMode = 16844173; // 0x101058d
field public static final int throttleDurationMillis = 16844360; // 0x1010648
field public static final int throttleDurationMillis;
field public static final int userRestriction = 16844164; // 0x1010584
}
@@ -350,8 +350,8 @@ package android {
}
public static final class R.string {
field public static final int config_customMediaKeyDispatcher = 17039404; // 0x104002c
field public static final int config_customMediaSessionPolicyProvider = 17039405; // 0x104002d
field public static final int config_customMediaKeyDispatcher;
field public static final int config_customMediaSessionPolicyProvider;
field public static final int config_defaultAssistant = 17039393; // 0x1040021
field public static final int config_defaultBrowser = 17039394; // 0x1040022
field public static final int config_defaultCallRedirection = 17039397; // 0x1040025
@@ -364,15 +364,15 @@ package android {
field public static final int config_helpIntentNameKey = 17039390; // 0x104001e
field public static final int config_helpPackageNameKey = 17039387; // 0x104001b
field public static final int config_helpPackageNameValue = 17039388; // 0x104001c
field public static final int config_systemAutomotiveCluster = 17039400; // 0x1040028
field public static final int config_systemAutomotiveProjection = 17039401; // 0x1040029
field public static final int config_systemContacts = 17039403; // 0x104002b
field public static final int config_systemAutomotiveCluster;
field public static final int config_systemAutomotiveProjection;
field public static final int config_systemContacts;
field public static final int config_systemGallery = 17039399; // 0x1040027
field public static final int config_systemShell = 17039402; // 0x104002a
field public static final int config_systemSpeechRecognizer = 17039406; // 0x104002e
field public static final int config_systemTelevisionNotificationHandler = 17039409; // 0x1040031
field public static final int config_systemWellbeing = 17039408; // 0x1040030
field public static final int config_systemWifiCoexManager = 17039407; // 0x104002f
field public static final int config_systemShell;
field public static final int config_systemSpeechRecognizer;
field public static final int config_systemTelevisionNotificationHandler;
field public static final int config_systemWellbeing;
field public static final int config_systemWifiCoexManager;
}
public static final class R.style {

View File

@@ -58,8 +58,8 @@ package android {
public static final class R.string {
field public static final int config_defaultAssistant = 17039393; // 0x1040021
field public static final int config_defaultDialer = 17039395; // 0x1040023
field public static final int config_systemAutomotiveCluster = 17039400; // 0x1040028
field public static final int config_systemAutomotiveProjection = 17039401; // 0x1040029
field public static final int config_systemAutomotiveCluster;
field public static final int config_systemAutomotiveProjection;
field public static final int config_systemGallery = 17039399; // 0x1040027
}

View File

@@ -376,10 +376,13 @@ public class ColorStateList extends ComplexColor implements Parcelable {
int[] stateSpec = new int[numAttrs];
for (int i = 0; i < numAttrs; i++) {
final int stateResId = attrs.getAttributeNameResource(i);
if (stateResId == R.attr.lStar) {
// Non-finalized resource ids cannot be used in switch statements.
continue;
}
switch (stateResId) {
case R.attr.color:
case R.attr.alpha:
case R.attr.lStar:
// Recognized attribute, ignore.
break;
default:

View File

@@ -3030,12 +3030,12 @@
<!-- ===============================================================
Resources added in version S of the platform
NOTE: add <public> elements within a <public-group> like so:
NOTE: add <public> elements within a <staging-public-group> like so:
<public-group type="attr" first-id="0x01010531">
<staging-public-group type="attr" first-id="0x01010531">
<public name="exampleAttr1" />
<public name="exampleAttr2" />
</public-group>
</staging-public-group>
To add a new public-group block, choose an id value that is 1 greater
than the last of that item above. For example, the last "attr" id
@@ -3044,7 +3044,7 @@
=============================================================== -->
<eat-comment />
<public-group type="attr" first-id="0x01010617">
<staging-public-group type="attr" first-id="0x01010617">
<public name="rollbackDataPolicy" />
<public name="allowClickWhenDisabled" />
<public name="windowLayoutAffinity" />
@@ -3099,13 +3099,13 @@
<!-- @hide @SystemApi -->
<public name="throttleDurationMillis" />
<public name="showInInputMethodPicker" />
</public-group>
</staging-public-group>
<public-group type="drawable" first-id="0x010800b5">
<staging-public-group type="drawable" first-id="0x010800b5">
<!-- drawable definitions go here -->
</public-group>
</staging-public-group>
<public-group type="color" first-id="0x0106001d">
<staging-public-group type="color" first-id="0x0106001d">
<!-- color definitions go here -->
<!-- Material design dynamic system palette:-->
@@ -3171,26 +3171,26 @@
<public name="system_accent3_800" />
<public name="system_accent3_900" />
<public name="system_accent3_1000" />
</public-group>
</staging-public-group>
<public-group type="dimen" first-id="0x01050008">
<staging-public-group type="dimen" first-id="0x01050008">
<!-- dimension definitions go here -->
<!-- System-provided dimensions for app widgets. -->
<public name="system_app_widget_background_radius" />
<public name="system_app_widget_inner_radius" />
<public name="system_app_widget_internal_padding" />
</public-group>
</staging-public-group>
<public-group type="bool" first-id="0x01110007">
<staging-public-group type="bool" first-id="0x01110007">
<!-- boolean definitions go here -->
</public-group>
</staging-public-group>
<public-group type="style" first-id="0x010302e5">
<staging-public-group type="style" first-id="0x010302e5">
<!-- style definitions go here -->
</public-group>
</staging-public-group>
<public-group type="string" first-id="0x01040028">
<staging-public-group type="string" first-id="0x01040028">
<!-- @hide @SystemApi @TestApi -->
<public name="config_systemAutomotiveCluster" />
<!-- @hide @SystemApi @TestApi -->
@@ -3211,11 +3211,11 @@
<public name="config_systemWellbeing" />
<!-- @hide @SystemApi -->
<public name="config_systemTelevisionNotificationHandler" />
</public-group>
</staging-public-group>
<public-group type="id" first-id="0x01020055">
<staging-public-group type="id" first-id="0x01020055">
<!-- id definitions go here -->
</public-group>
</staging-public-group>
<!-- ===============================================================
DO NOT ADD UN-GROUPED ITEMS HERE

View File

@@ -466,11 +466,19 @@ TEST_F(LinkTest, StagedAndroidApi) {
const std::string android_r_java = android_java + "/android/R.java";
std::string android_r_contents;
ASSERT_TRUE(android::base::ReadFileToString(android_r_java, &android_r_contents));
EXPECT_THAT(android_r_contents, HasSubstr(" public static final int finalized_res=0x01010001;"));
EXPECT_THAT(android_r_contents, HasSubstr(" public static int staged_s_res=0x01010050;"));
EXPECT_THAT(android_r_contents, HasSubstr(" public static int staged_s2_res=0x01ff0049;"));
EXPECT_THAT(android_r_contents, HasSubstr(" public static int staged_t_res=0x01fe0063;"));
EXPECT_THAT(android_r_contents, HasSubstr(" public static int staged_t_string=0x01fd0072;"));
EXPECT_THAT(android_r_contents, HasSubstr("public static final int finalized_res=0x01010001;"));
EXPECT_THAT(
android_r_contents,
HasSubstr("public static final int staged_s_res; static { staged_s_res=0x01010050; }"));
EXPECT_THAT(
android_r_contents,
HasSubstr("public static final int staged_s2_res; static { staged_s2_res=0x01ff0049; }"));
EXPECT_THAT(
android_r_contents,
HasSubstr("public static final int staged_t_res; static { staged_t_res=0x01fe0063; }"));
EXPECT_THAT(
android_r_contents,
HasSubstr("public static final int staged_t_string; static { staged_t_string=0x01fd0072; }"));
// Build an app that uses the framework attribute in a declare-styleable
const std::string client_res = GetTestPath("app-res");

View File

@@ -393,8 +393,15 @@ bool BinaryResourceParser::ParseType(const ResourceTablePackage* package,
.SetAllowMangled(true);
if (entry->flags & ResTable_entry::FLAG_PUBLIC) {
res_builder.SetVisibility(Visibility{Visibility::Level::kPublic});
Visibility visibility{Visibility::Level::kPublic};
auto spec_flags = entry_type_spec_flags_.find(res_id);
if (spec_flags != entry_type_spec_flags_.end() &&
spec_flags->second & ResTable_typeSpec::SPEC_STAGED_API) {
visibility.staged_api = true;
}
res_builder.SetVisibility(visibility);
// Erase the ID from the map once processed, so that we don't mark the same symbol more than
// once.
entry_type_spec_flags_.erase(res_id);

View File

@@ -78,10 +78,18 @@ class PrimitiveMember : public ClassMember {
ClassMember::Print(final, printer, strip_api_annotations);
printer->Print("public static ");
if (final && !staged_api_) {
if (final) {
printer->Print("final ");
}
printer->Print("int ").Print(name_).Print("=").Print(to_string(val_)).Print(";");
printer->Print("int ").Print(name_);
if (staged_api_) {
// Prevent references to staged apis from being inline by setting their value out-of-line.
printer->Print("; static { ").Print(name_);
}
printer->Print("=").Print(to_string(val_)).Print(";");
if (staged_api_) {
printer->Print(" }");
}
}
private: