am 4275765c: Remove prohibition on stripping classes.dex from core-libart for Dalvik/ART dual-boot
* commit '4275765ce375e715ac73c6e5965184404e1f490d':
Remove prohibition on stripping classes.dex from core-libart for Dalvik/ART dual-boot
diff --git a/benchmarks/src/benchmarks/regression/R.java b/benchmarks/src/benchmarks/regression/R.java
new file mode 100644
index 0000000..b5ae3ec
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/R.java
@@ -0,0 +1,2540 @@
+/*
+ * 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.
+ */
+
+package benchmarks.regression;
+
+/**
+ * This file is a subset of the frameworks' R.java (resource definition) file
+ * with references to android specific annotations stripped out.
+ */
+public final class R {
+ private R() {}
+
+ public final int mabsListViewStyle = 0;
+ public final int maccessibilityEventTypes = 0;
+ public final int maccessibilityFeedbackType = 0;
+ public final int maccessibilityFlags = 0;
+ public final int maccessibilityLiveRegion = 0;
+ public final int maccessibilityTraversalAfter = 0;
+ public final int maccessibilityTraversalBefore = 0;
+ public final int maccountPreferences = 0;
+ public final int maccountType = 0;
+ public final int maction = 0;
+ public final int mactionBarDivider = 0;
+ public final int mactionBarItemBackground = 0;
+ public final int mactionBarPopupTheme = 0;
+ public final int mactionBarSize = 0;
+ public final int mactionBarSplitStyle = 0;
+ public final int mactionBarStyle = 0;
+ public final int mactionBarTabBarStyle = 0;
+ public final int mactionBarTabStyle = 0;
+ public final int mactionBarTabTextStyle = 0;
+ public final int mactionBarTheme = 0;
+ public final int mactionBarWidgetTheme = 0;
+ public final int mactionButtonStyle = 0;
+ public final int mactionDropDownStyle = 0;
+ public final int mactionLayout = 0;
+ public final int mactionMenuTextAppearance = 0;
+ public final int mactionMenuTextColor = 0;
+ public final int mactionModeBackground = 0;
+ public final int mactionModeCloseButtonStyle = 0;
+ public final int mactionModeCloseDrawable = 0;
+ public final int mactionModeCopyDrawable = 0;
+ public final int mactionModeCutDrawable = 0;
+ public final int mactionModeFindDrawable = 0;
+ public final int mactionModePasteDrawable = 0;
+ public final int mactionModeSelectAllDrawable = 0;
+ public final int mactionModeShareDrawable = 0;
+ public final int mactionModeSplitBackground = 0;
+ public final int mactionModeStyle = 0;
+ public final int mactionModeWebSearchDrawable = 0;
+ public final int mactionOverflowButtonStyle = 0;
+ public final int mactionOverflowMenuStyle = 0;
+ public final int mactionProviderClass = 0;
+ public final int mactionViewClass = 0;
+ public final int mactivatedBackgroundIndicator = 0;
+ public final int mactivityCloseEnterAnimation = 0;
+ public final int mactivityCloseExitAnimation = 0;
+ public final int mactivityOpenEnterAnimation = 0;
+ public final int mactivityOpenExitAnimation = 0;
+ public final int maddPrintersActivity = 0;
+ public final int maddStatesFromChildren = 0;
+ public final int madjustViewBounds = 0;
+ public final int madvancedPrintOptionsActivity = 0;
+ public final int malertDialogIcon = 0;
+ public final int malertDialogStyle = 0;
+ public final int malertDialogTheme = 0;
+ public final int malignmentMode = 0;
+ public final int mallContactsName = 0;
+ public final int mallowBackup = 0;
+ public final int mallowClearUserData = 0;
+ public final int mallowEmbedded = 0;
+ public final int mallowParallelSyncs = 0;
+ public final int mallowSingleTap = 0;
+ public final int mallowTaskReparenting = 0;
+ public final int malpha = 0;
+ public final int malphabeticShortcut = 0;
+ public final int malwaysDrawnWithCache = 0;
+ public final int malwaysRetainTaskState = 0;
+ public final int mamPmBackgroundColor = 0;
+ public final int mamPmTextColor = 0;
+ public final int mambientShadowAlpha = 0;
+ public final int mangle = 0;
+ public final int manimateFirstView = 0;
+ public final int manimateLayoutChanges = 0;
+ public final int manimateOnClick = 0;
+ public final int manimation = 0;
+ public final int manimationCache = 0;
+ public final int manimationDuration = 0;
+ public final int manimationOrder = 0;
+ public final int manimationResolution = 0;
+ public final int mantialias = 0;
+ public final int manyDensity = 0;
+ public final int mapduServiceBanner = 0;
+ public final int mapiKey = 0;
+ public final int mauthor = 0;
+ public final int mauthorities = 0;
+ public final int mautoAdvanceViewId = 0;
+ public final int mautoCompleteTextViewStyle = 0;
+ public final int mautoLink = 0;
+ public final int mautoMirrored = 0;
+ public final int mautoRemoveFromRecents = 0;
+ public final int mautoStart = 0;
+ public final int mautoText = 0;
+ public final int mautoUrlDetect = 0;
+ public final int mbackground = 0;
+ public final int mbackgroundDimAmount = 0;
+ public final int mbackgroundDimEnabled = 0;
+ public final int mbackgroundSplit = 0;
+ public final int mbackgroundStacked = 0;
+ public final int mbackgroundTint = 0;
+ public final int mbackgroundTintMode = 0;
+ public final int mbackupAgent = 0;
+ public final int mbanner = 0;
+ public final int mbaseline = 0;
+ public final int mbaselineAlignBottom = 0;
+ public final int mbaselineAligned = 0;
+ public final int mbaselineAlignedChildIndex = 0;
+ public final int mborderlessButtonStyle = 0;
+ public final int mbottom = 0;
+ public final int mbottomBright = 0;
+ public final int mbottomDark = 0;
+ public final int mbottomLeftRadius = 0;
+ public final int mbottomMedium = 0;
+ public final int mbottomOffset = 0;
+ public final int mbottomRightRadius = 0;
+ public final int mbreadCrumbShortTitle = 0;
+ public final int mbreadCrumbTitle = 0;
+ public final int mbufferType = 0;
+ public final int mbutton = 0;
+ public final int mbuttonBarButtonStyle = 0;
+ public final int mbuttonBarNegativeButtonStyle = 0;
+ public final int mbuttonBarNeutralButtonStyle = 0;
+ public final int mbuttonBarPositiveButtonStyle = 0;
+ public final int mbuttonBarStyle = 0;
+ public final int mbuttonStyle = 0;
+ public final int mbuttonStyleInset = 0;
+ public final int mbuttonStyleSmall = 0;
+ public final int mbuttonStyleToggle = 0;
+ public final int mbuttonTint = 0;
+ public final int mbuttonTintMode = 0;
+ public final int mcacheColorHint = 0;
+ public final int mcalendarTextColor = 0;
+ public final int mcalendarViewShown = 0;
+ public final int mcalendarViewStyle = 0;
+ public final int mcanRequestEnhancedWebAccessibility = 0;
+ public final int mcanRequestFilterKeyEvents = 0;
+ public final int mcanRequestTouchExplorationMode = 0;
+ public final int mcanRetrieveWindowContent = 0;
+ public final int mcandidatesTextStyleSpans = 0;
+ public final int mcapitalize = 0;
+ public final int mcategory = 0;
+ public final int mcenterBright = 0;
+ public final int mcenterColor = 0;
+ public final int mcenterDark = 0;
+ public final int mcenterMedium = 0;
+ public final int mcenterX = 0;
+ public final int mcenterY = 0;
+ public final int mcheckBoxPreferenceStyle = 0;
+ public final int mcheckMark = 0;
+ public final int mcheckMarkTint = 0;
+ public final int mcheckMarkTintMode = 0;
+ public final int mcheckable = 0;
+ public final int mcheckableBehavior = 0;
+ public final int mcheckboxStyle = 0;
+ public final int mchecked = 0;
+ public final int mcheckedButton = 0;
+ public final int mcheckedTextViewStyle = 0;
+ public final int mchildDivider = 0;
+ public final int mchildIndicator = 0;
+ public final int mchildIndicatorEnd = 0;
+ public final int mchildIndicatorLeft = 0;
+ public final int mchildIndicatorRight = 0;
+ public final int mchildIndicatorStart = 0;
+ public final int mchoiceMode = 0;
+ public final int mclearTaskOnLaunch = 0;
+ public final int mclickable = 0;
+ public final int mclipChildren = 0;
+ public final int mclipOrientation = 0;
+ public final int mclipToPadding = 0;
+ public final int mcloseIcon = 0;
+ public final int mcodes = 0;
+ public final int mcollapseColumns = 0;
+ public final int mcollapseContentDescription = 0;
+ public final int mcolor = 0;
+ public final int mcolorAccent = 0;
+ public final int mcolorActivatedHighlight = 0;
+ public final int mcolorBackground = 0;
+ public final int mcolorBackgroundCacheHint = 0;
+ public final int mcolorButtonNormal = 0;
+ public final int mcolorControlActivated = 0;
+ public final int mcolorControlHighlight = 0;
+ public final int mcolorControlNormal = 0;
+ public final int mcolorEdgeEffect = 0;
+ public final int mcolorFocusedHighlight = 0;
+ public final int mcolorForeground = 0;
+ public final int mcolorForegroundInverse = 0;
+ public final int mcolorLongPressedHighlight = 0;
+ public final int mcolorMultiSelectHighlight = 0;
+ public final int mcolorPressedHighlight = 0;
+ public final int mcolorPrimary = 0;
+ public final int mcolorPrimaryDark = 0;
+ public final int mcolumnCount = 0;
+ public final int mcolumnDelay = 0;
+ public final int mcolumnOrderPreserved = 0;
+ public final int mcolumnWidth = 0;
+ public final int mcommitIcon = 0;
+ public final int mcompatibleWidthLimitDp = 0;
+ public final int mcompletionHint = 0;
+ public final int mcompletionHintView = 0;
+ public final int mcompletionThreshold = 0;
+ public final int mconfigChanges = 0;
+ public final int mconfigure = 0;
+ public final int mconstantSize = 0;
+ public final int mcontent = 0;
+ public final int mcontentAgeHint = 0;
+ public final int mcontentAuthority = 0;
+ public final int mcontentDescription = 0;
+ public final int mcontentInsetEnd = 0;
+ public final int mcontentInsetLeft = 0;
+ public final int mcontentInsetRight = 0;
+ public final int mcontentInsetStart = 0;
+ public final int mcontrolX1 = 0;
+ public final int mcontrolX2 = 0;
+ public final int mcontrolY1 = 0;
+ public final int mcontrolY2 = 0;
+ public final int mcountry = 0;
+ public final int mcropToPadding = 0;
+ public final int mcursorVisible = 0;
+ public final int mcustomNavigationLayout = 0;
+ public final int mcustomTokens = 0;
+ public final int mcycles = 0;
+ public final int mdashGap = 0;
+ public final int mdashWidth = 0;
+ public final int mdata = 0;
+ public final int mdatePickerDialogTheme = 0;
+ public final int mdatePickerMode = 0;
+ public final int mdatePickerStyle = 0;
+ public final int mdateTextAppearance = 0;
+ public final int mdayOfWeekBackground = 0;
+ public final int mdayOfWeekTextAppearance = 0;
+ public final int mdebuggable = 0;
+ public final int mdefaultValue = 0;
+ public final int mdelay = 0;
+ public final int mdependency = 0;
+ public final int mdescendantFocusability = 0;
+ public final int mdescription = 0;
+ public final int mdetachWallpaper = 0;
+ public final int mdetailColumn = 0;
+ public final int mdetailSocialSummary = 0;
+ public final int mdetailsElementBackground = 0;
+ public final int mdial = 0;
+ public final int mdialogIcon = 0;
+ public final int mdialogLayout = 0;
+ public final int mdialogMessage = 0;
+ public final int mdialogPreferenceStyle = 0;
+ public final int mdialogPreferredPadding = 0;
+ public final int mdialogTheme = 0;
+ public final int mdialogTitle = 0;
+ public final int mdigits = 0;
+ public final int mdirection = 0;
+ public final int mdirectionDescriptions = 0;
+ public final int mdirectionPriority = 0;
+ public final int mdisableDependentsState = 0;
+ public final int mdisabledAlpha = 0;
+ public final int mdisplayOptions = 0;
+ public final int mdither = 0;
+ public final int mdivider = 0;
+ public final int mdividerHeight = 0;
+ public final int mdividerHorizontal = 0;
+ public final int mdividerPadding = 0;
+ public final int mdividerVertical = 0;
+ public final int mdocumentLaunchMode = 0;
+ public final int mdrawSelectorOnTop = 0;
+ public final int mdrawable = 0;
+ public final int mdrawableBottom = 0;
+ public final int mdrawableEnd = 0;
+ public final int mdrawableLeft = 0;
+ public final int mdrawablePadding = 0;
+ public final int mdrawableRight = 0;
+ public final int mdrawableStart = 0;
+ public final int mdrawableTop = 0;
+ public final int mdrawingCacheQuality = 0;
+ public final int mdropDownAnchor = 0;
+ public final int mdropDownHeight = 0;
+ public final int mdropDownHintAppearance = 0;
+ public final int mdropDownHorizontalOffset = 0;
+ public final int mdropDownItemStyle = 0;
+ public final int mdropDownListViewStyle = 0;
+ public final int mdropDownSelector = 0;
+ public final int mdropDownSpinnerStyle = 0;
+ public final int mdropDownVerticalOffset = 0;
+ public final int mdropDownWidth = 0;
+ public final int mduplicateParentState = 0;
+ public final int mduration = 0;
+ public final int meditTextBackground = 0;
+ public final int meditTextColor = 0;
+ public final int meditTextPreferenceStyle = 0;
+ public final int meditTextStyle = 0;
+ public final int meditable = 0;
+ public final int meditorExtras = 0;
+ public final int melegantTextHeight = 0;
+ public final int melevation = 0;
+ public final int mellipsize = 0;
+ public final int mems = 0;
+ public final int menabled = 0;
+ public final int mendColor = 0;
+ public final int mendYear = 0;
+ public final int menterFadeDuration = 0;
+ public final int mentries = 0;
+ public final int mentryValues = 0;
+ public final int meventsInterceptionEnabled = 0;
+ public final int mexcludeClass = 0;
+ public final int mexcludeFromRecents = 0;
+ public final int mexcludeId = 0;
+ public final int mexcludeName = 0;
+ public final int mexitFadeDuration = 0;
+ public final int mexpandableListPreferredChildIndicatorLeft = 0;
+ public final int mexpandableListPreferredChildIndicatorRight = 0;
+ public final int mexpandableListPreferredChildPaddingLeft = 0;
+ public final int mexpandableListPreferredItemIndicatorLeft = 0;
+ public final int mexpandableListPreferredItemIndicatorRight = 0;
+ public final int mexpandableListPreferredItemPaddingLeft = 0;
+ public final int mexpandableListViewStyle = 0;
+ public final int mexpandableListViewWhiteStyle = 0;
+ public final int mexported = 0;
+ public final int mextraTension = 0;
+ public final int mfactor = 0;
+ public final int mfadeDuration = 0;
+ public final int mfadeEnabled = 0;
+ public final int mfadeOffset = 0;
+ public final int mfadeScrollbars = 0;
+ public final int mfadingEdge = 0;
+ public final int mfadingEdgeLength = 0;
+ public final int mfadingMode = 0;
+ public final int mfastScrollAlwaysVisible = 0;
+ public final int mfastScrollEnabled = 0;
+ public final int mfastScrollOverlayPosition = 0;
+ public final int mfastScrollPreviewBackgroundLeft = 0;
+ public final int mfastScrollPreviewBackgroundRight = 0;
+ public final int mfastScrollStyle = 0;
+ public final int mfastScrollTextColor = 0;
+ public final int mfastScrollThumbDrawable = 0;
+ public final int mfastScrollTrackDrawable = 0;
+ public final int mfillAfter = 0;
+ public final int mfillAlpha = 0;
+ public final int mfillBefore = 0;
+ public final int mfillColor = 0;
+ public final int mfillEnabled = 0;
+ public final int mfillViewport = 0;
+ public final int mfilter = 0;
+ public final int mfilterTouchesWhenObscured = 0;
+ public final int mfinishOnCloseSystemDialogs = 0;
+ public final int mfinishOnTaskLaunch = 0;
+ public final int mfirstDayOfWeek = 0;
+ public final int mfitsSystemWindows = 0;
+ public final int mflipInterval = 0;
+ public final int mfocusable = 0;
+ public final int mfocusableInTouchMode = 0;
+ public final int mfocusedMonthDateColor = 0;
+ public final int mfontFamily = 0;
+ public final int mfontFeatureSettings = 0;
+ public final int mfooterDividersEnabled = 0;
+ public final int mforeground = 0;
+ public final int mforegroundGravity = 0;
+ public final int mforegroundTint = 0;
+ public final int mforegroundTintMode = 0;
+ public final int mformat = 0;
+ public final int mformat12Hour = 0;
+ public final int mformat24Hour = 0;
+ public final int mfragment = 0;
+ public final int mfragmentAllowEnterTransitionOverlap = 0;
+ public final int mfragmentAllowReturnTransitionOverlap = 0;
+ public final int mfragmentCloseEnterAnimation = 0;
+ public final int mfragmentCloseExitAnimation = 0;
+ public final int mfragmentEnterTransition = 0;
+ public final int mfragmentExitTransition = 0;
+ public final int mfragmentFadeEnterAnimation = 0;
+ public final int mfragmentFadeExitAnimation = 0;
+ public final int mfragmentOpenEnterAnimation = 0;
+ public final int mfragmentOpenExitAnimation = 0;
+ public final int mfragmentReenterTransition = 0;
+ public final int mfragmentReturnTransition = 0;
+ public final int mfragmentSharedElementEnterTransition = 0;
+ public final int mfragmentSharedElementReturnTransition = 0;
+ public final int mfreezesText = 0;
+ public final int mfromAlpha = 0;
+ public final int mfromDegrees = 0;
+ public final int mfromId = 0;
+ public final int mfromScene = 0;
+ public final int mfromXDelta = 0;
+ public final int mfromXScale = 0;
+ public final int mfromYDelta = 0;
+ public final int mfromYScale = 0;
+ public final int mfullBackupOnly = 0;
+ public final int mfullBright = 0;
+ public final int mfullDark = 0;
+ public final int mfunctionalTest = 0;
+ public final int mgalleryItemBackground = 0;
+ public final int mgalleryStyle = 0;
+ public final int mgestureColor = 0;
+ public final int mgestureStrokeAngleThreshold = 0;
+ public final int mgestureStrokeLengthThreshold = 0;
+ public final int mgestureStrokeSquarenessThreshold = 0;
+ public final int mgestureStrokeType = 0;
+ public final int mgestureStrokeWidth = 0;
+ public final int mglEsVersion = 0;
+ public final int mgoIcon = 0;
+ public final int mgradientRadius = 0;
+ public final int mgrantUriPermissions = 0;
+ public final int mgravity = 0;
+ public final int mgridViewStyle = 0;
+ public final int mgroupIndicator = 0;
+ public final int mhand_hour = 0;
+ public final int mhand_minute = 0;
+ public final int mhandle = 0;
+ public final int mhandleProfiling = 0;
+ public final int mhapticFeedbackEnabled = 0;
+ public final int mhardwareAccelerated = 0;
+ public final int mhasCode = 0;
+ public final int mheaderAmPmTextAppearance = 0;
+ public final int mheaderBackground = 0;
+ public final int mheaderDayOfMonthTextAppearance = 0;
+ public final int mheaderDividersEnabled = 0;
+ public final int mheaderMonthTextAppearance = 0;
+ public final int mheaderTimeTextAppearance = 0;
+ public final int mheaderYearTextAppearance = 0;
+ public final int mheight = 0;
+ public final int mhideOnContentScroll = 0;
+ public final int mhint = 0;
+ public final int mhomeAsUpIndicator = 0;
+ public final int mhomeLayout = 0;
+ public final int mhorizontalDivider = 0;
+ public final int mhorizontalGap = 0;
+ public final int mhorizontalScrollViewStyle = 0;
+ public final int mhorizontalSpacing = 0;
+ public final int mhost = 0;
+ public final int micon = 0;
+ public final int miconPreview = 0;
+ public final int miconifiedByDefault = 0;
+ public final int mid = 0;
+ public final int mignoreGravity = 0;
+ public final int mimageButtonStyle = 0;
+ public final int mimageWellStyle = 0;
+ public final int mimeActionId = 0;
+ public final int mimeActionLabel = 0;
+ public final int mimeExtractEnterAnimation = 0;
+ public final int mimeExtractExitAnimation = 0;
+ public final int mimeFullscreenBackground = 0;
+ public final int mimeOptions = 0;
+ public final int mimeSubtypeExtraValue = 0;
+ public final int mimeSubtypeLocale = 0;
+ public final int mimeSubtypeMode = 0;
+ public final int mimmersive = 0;
+ public final int mimportantForAccessibility = 0;
+ public final int minAnimation = 0;
+ public final int mincludeFontPadding = 0;
+ public final int mincludeInGlobalSearch = 0;
+ public final int mindeterminate = 0;
+ public final int mindeterminateBehavior = 0;
+ public final int mindeterminateDrawable = 0;
+ public final int mindeterminateDuration = 0;
+ public final int mindeterminateOnly = 0;
+ public final int mindeterminateProgressStyle = 0;
+ public final int mindeterminateTint = 0;
+ public final int mindeterminateTintMode = 0;
+ public final int mindicatorEnd = 0;
+ public final int mindicatorLeft = 0;
+ public final int mindicatorRight = 0;
+ public final int mindicatorStart = 0;
+ public final int minflatedId = 0;
+ public final int minitOrder = 0;
+ public final int minitialKeyguardLayout = 0;
+ public final int minitialLayout = 0;
+ public final int minnerRadius = 0;
+ public final int minnerRadiusRatio = 0;
+ public final int minputMethod = 0;
+ public final int minputType = 0;
+ public final int minset = 0;
+ public final int minsetBottom = 0;
+ public final int minsetLeft = 0;
+ public final int minsetRight = 0;
+ public final int minsetTop = 0;
+ public final int minstallLocation = 0;
+ public final int minterpolator = 0;
+ public final int misAlwaysSyncable = 0;
+ public final int misAsciiCapable = 0;
+ public final int misAuxiliary = 0;
+ public final int misDefault = 0;
+ public final int misGame = 0;
+ public final int misIndicator = 0;
+ public final int misModifier = 0;
+ public final int misRepeatable = 0;
+ public final int misScrollContainer = 0;
+ public final int misSticky = 0;
+ public final int misolatedProcess = 0;
+ public final int mitemBackground = 0;
+ public final int mitemIconDisabledAlpha = 0;
+ public final int mitemPadding = 0;
+ public final int mitemTextAppearance = 0;
+ public final int mkeepScreenOn = 0;
+ public final int mkey = 0;
+ public final int mkeyBackground = 0;
+ public final int mkeyEdgeFlags = 0;
+ public final int mkeyHeight = 0;
+ public final int mkeyIcon = 0;
+ public final int mkeyLabel = 0;
+ public final int mkeyOutputText = 0;
+ public final int mkeyPreviewHeight = 0;
+ public final int mkeyPreviewLayout = 0;
+ public final int mkeyPreviewOffset = 0;
+ public final int mkeySet = 0;
+ public final int mkeyTextColor = 0;
+ public final int mkeyTextSize = 0;
+ public final int mkeyWidth = 0;
+ public final int mkeyboardLayout = 0;
+ public final int mkeyboardMode = 0;
+ public final int mkeycode = 0;
+ public final int mkillAfterRestore = 0;
+ public final int mlabel = 0;
+ public final int mlabelFor = 0;
+ public final int mlabelTextSize = 0;
+ public final int mlargeHeap = 0;
+ public final int mlargeScreens = 0;
+ public final int mlargestWidthLimitDp = 0;
+ public final int mlaunchMode = 0;
+ public final int mlaunchTaskBehindSourceAnimation = 0;
+ public final int mlaunchTaskBehindTargetAnimation = 0;
+ public final int mlayerType = 0;
+ public final int mlayout = 0;
+ public final int mlayoutAnimation = 0;
+ public final int mlayoutDirection = 0;
+ public final int mlayoutMode = 0;
+ public final int mlayout_above = 0;
+ public final int mlayout_alignBaseline = 0;
+ public final int mlayout_alignBottom = 0;
+ public final int mlayout_alignEnd = 0;
+ public final int mlayout_alignLeft = 0;
+ public final int mlayout_alignParentBottom = 0;
+ public final int mlayout_alignParentEnd = 0;
+ public final int mlayout_alignParentLeft = 0;
+ public final int mlayout_alignParentRight = 0;
+ public final int mlayout_alignParentStart = 0;
+ public final int mlayout_alignParentTop = 0;
+ public final int mlayout_alignRight = 0;
+ public final int mlayout_alignStart = 0;
+ public final int mlayout_alignTop = 0;
+ public final int mlayout_alignWithParentIfMissing = 0;
+ public final int mlayout_below = 0;
+ public final int mlayout_centerHorizontal = 0;
+ public final int mlayout_centerInParent = 0;
+ public final int mlayout_centerVertical = 0;
+ public final int mlayout_column = 0;
+ public final int mlayout_columnSpan = 0;
+ public final int mlayout_columnWeight = 0;
+ public final int mlayout_gravity = 0;
+ public final int mlayout_height = 0;
+ public final int mlayout_margin = 0;
+ public final int mlayout_marginBottom = 0;
+ public final int mlayout_marginEnd = 0;
+ public final int mlayout_marginLeft = 0;
+ public final int mlayout_marginRight = 0;
+ public final int mlayout_marginStart = 0;
+ public final int mlayout_marginTop = 0;
+ public final int mlayout_row = 0;
+ public final int mlayout_rowSpan = 0;
+ public final int mlayout_rowWeight = 0;
+ public final int mlayout_scale = 0;
+ public final int mlayout_span = 0;
+ public final int mlayout_toEndOf = 0;
+ public final int mlayout_toLeftOf = 0;
+ public final int mlayout_toRightOf = 0;
+ public final int mlayout_toStartOf = 0;
+ public final int mlayout_weight = 0;
+ public final int mlayout_width = 0;
+ public final int mlayout_x = 0;
+ public final int mlayout_y = 0;
+ public final int mleft = 0;
+ public final int mletterSpacing = 0;
+ public final int mlineSpacingExtra = 0;
+ public final int mlineSpacingMultiplier = 0;
+ public final int mlines = 0;
+ public final int mlinksClickable = 0;
+ public final int mlistChoiceBackgroundIndicator = 0;
+ public final int mlistChoiceIndicatorMultiple = 0;
+ public final int mlistChoiceIndicatorSingle = 0;
+ public final int mlistDivider = 0;
+ public final int mlistDividerAlertDialog = 0;
+ public final int mlistPopupWindowStyle = 0;
+ public final int mlistPreferredItemHeight = 0;
+ public final int mlistPreferredItemHeightLarge = 0;
+ public final int mlistPreferredItemHeightSmall = 0;
+ public final int mlistPreferredItemPaddingEnd = 0;
+ public final int mlistPreferredItemPaddingLeft = 0;
+ public final int mlistPreferredItemPaddingRight = 0;
+ public final int mlistPreferredItemPaddingStart = 0;
+ public final int mlistSelector = 0;
+ public final int mlistSeparatorTextViewStyle = 0;
+ public final int mlistViewStyle = 0;
+ public final int mlistViewWhiteStyle = 0;
+ public final int mlogo = 0;
+ public final int mlongClickable = 0;
+ public final int mloopViews = 0;
+ public final int mmanageSpaceActivity = 0;
+ public final int mmapViewStyle = 0;
+ public final int mmarqueeRepeatLimit = 0;
+ public final int mmatchOrder = 0;
+ public final int mmax = 0;
+ public final int mmaxDate = 0;
+ public final int mmaxEms = 0;
+ public final int mmaxHeight = 0;
+ public final int mmaxItemsPerRow = 0;
+ public final int mmaxLength = 0;
+ public final int mmaxLevel = 0;
+ public final int mmaxLines = 0;
+ public final int mmaxRecents = 0;
+ public final int mmaxRows = 0;
+ public final int mmaxSdkVersion = 0;
+ public final int mmaxWidth = 0;
+ public final int mmaximumAngle = 0;
+ public final int mmeasureAllChildren = 0;
+ public final int mmeasureWithLargestChild = 0;
+ public final int mmediaRouteButtonStyle = 0;
+ public final int mmediaRouteTypes = 0;
+ public final int mmenuCategory = 0;
+ public final int mmimeType = 0;
+ public final int mminDate = 0;
+ public final int mminEms = 0;
+ public final int mminHeight = 0;
+ public final int mminLevel = 0;
+ public final int mminLines = 0;
+ public final int mminResizeHeight = 0;
+ public final int mminResizeWidth = 0;
+ public final int mminSdkVersion = 0;
+ public final int mminWidth = 0;
+ public final int mminimumHorizontalAngle = 0;
+ public final int mminimumVerticalAngle = 0;
+ public final int mmipMap = 0;
+ public final int mmirrorForRtl = 0;
+ public final int mmode = 0;
+ public final int mmoreIcon = 0;
+ public final int mmultiArch = 0;
+ public final int mmultiprocess = 0;
+ public final int mname = 0;
+ public final int mnavigationBarColor = 0;
+ public final int mnavigationContentDescription = 0;
+ public final int mnavigationIcon = 0;
+ public final int mnavigationMode = 0;
+ public final int mnegativeButtonText = 0;
+ public final int mnestedScrollingEnabled = 0;
+ public final int mnextFocusDown = 0;
+ public final int mnextFocusForward = 0;
+ public final int mnextFocusLeft = 0;
+ public final int mnextFocusRight = 0;
+ public final int mnextFocusUp = 0;
+ public final int mnoHistory = 0;
+ public final int mnormalScreens = 0;
+ public final int mnotificationTimeout = 0;
+ public final int mnumColumns = 0;
+ public final int mnumStars = 0;
+ public final int mnumbersBackgroundColor = 0;
+ public final int mnumbersSelectorColor = 0;
+ public final int mnumbersTextColor = 0;
+ public final int mnumeric = 0;
+ public final int mnumericShortcut = 0;
+ public final int monClick = 0;
+ public final int moneshot = 0;
+ public final int mopacity = 0;
+ public final int morder = 0;
+ public final int morderInCategory = 0;
+ public final int mordering = 0;
+ public final int morderingFromXml = 0;
+ public final int morientation = 0;
+ public final int moutAnimation = 0;
+ public final int moutlineProvider = 0;
+ public final int moverScrollFooter = 0;
+ public final int moverScrollHeader = 0;
+ public final int moverScrollMode = 0;
+ public final int moverlapAnchor = 0;
+ public final int moverridesImplicitlyEnabledSubtype = 0;
+ public final int mpackageNames = 0;
+ public final int mpadding = 0;
+ public final int mpaddingBottom = 0;
+ public final int mpaddingEnd = 0;
+ public final int mpaddingLeft = 0;
+ public final int mpaddingMode = 0;
+ public final int mpaddingRight = 0;
+ public final int mpaddingStart = 0;
+ public final int mpaddingTop = 0;
+ public final int mpanelBackground = 0;
+ public final int mpanelColorBackground = 0;
+ public final int mpanelColorForeground = 0;
+ public final int mpanelFullBackground = 0;
+ public final int mpanelTextAppearance = 0;
+ public final int mparentActivityName = 0;
+ public final int mpassword = 0;
+ public final int mpath = 0;
+ public final int mpathData = 0;
+ public final int mpathPattern = 0;
+ public final int mpathPrefix = 0;
+ public final int mpatternPathData = 0;
+ public final int mpermission = 0;
+ public final int mpermissionFlags = 0;
+ public final int mpermissionGroup = 0;
+ public final int mpermissionGroupFlags = 0;
+ public final int mpersistableMode = 0;
+ public final int mpersistent = 0;
+ public final int mpersistentDrawingCache = 0;
+ public final int mphoneNumber = 0;
+ public final int mpivotX = 0;
+ public final int mpivotY = 0;
+ public final int mpopupAnimationStyle = 0;
+ public final int mpopupBackground = 0;
+ public final int mpopupCharacters = 0;
+ public final int mpopupElevation = 0;
+ public final int mpopupKeyboard = 0;
+ public final int mpopupLayout = 0;
+ public final int mpopupMenuStyle = 0;
+ public final int mpopupTheme = 0;
+ public final int mpopupWindowStyle = 0;
+ public final int mport = 0;
+ public final int mpositiveButtonText = 0;
+ public final int mpreferenceCategoryStyle = 0;
+ public final int mpreferenceInformationStyle = 0;
+ public final int mpreferenceLayoutChild = 0;
+ public final int mpreferenceScreenStyle = 0;
+ public final int mpreferenceStyle = 0;
+ public final int mpresentationTheme = 0;
+ public final int mpreviewImage = 0;
+ public final int mpriority = 0;
+ public final int mprivateImeOptions = 0;
+ public final int mprivate_resource_pad1 = 0;
+ public final int mprivate_resource_pad10 = 0;
+ public final int mprivate_resource_pad11 = 0;
+ public final int mprivate_resource_pad12 = 0;
+ public final int mprivate_resource_pad13 = 0;
+ public final int mprivate_resource_pad14 = 0;
+ public final int mprivate_resource_pad15 = 0;
+ public final int mprivate_resource_pad16 = 0;
+ public final int mprivate_resource_pad17 = 0;
+ public final int mprivate_resource_pad18 = 0;
+ public final int mprivate_resource_pad19 = 0;
+ public final int mprivate_resource_pad2 = 0;
+ public final int mprivate_resource_pad20 = 0;
+ public final int mprivate_resource_pad21 = 0;
+ public final int mprivate_resource_pad22 = 0;
+ public final int mprivate_resource_pad23 = 0;
+ public final int mprivate_resource_pad24 = 0;
+ public final int mprivate_resource_pad25 = 0;
+ public final int mprivate_resource_pad26 = 0;
+ public final int mprivate_resource_pad27 = 0;
+ public final int mprivate_resource_pad28 = 0;
+ public final int mprivate_resource_pad29 = 0;
+ public final int mprivate_resource_pad3 = 0;
+ public final int mprivate_resource_pad30 = 0;
+ public final int mprivate_resource_pad31 = 0;
+ public final int mprivate_resource_pad32 = 0;
+ public final int mprivate_resource_pad33 = 0;
+ public final int mprivate_resource_pad34 = 0;
+ public final int mprivate_resource_pad35 = 0;
+ public final int mprivate_resource_pad36 = 0;
+ public final int mprivate_resource_pad37 = 0;
+ public final int mprivate_resource_pad38 = 0;
+ public final int mprivate_resource_pad39 = 0;
+ public final int mprivate_resource_pad4 = 0;
+ public final int mprivate_resource_pad40 = 0;
+ public final int mprivate_resource_pad41 = 0;
+ public final int mprivate_resource_pad42 = 0;
+ public final int mprivate_resource_pad43 = 0;
+ public final int mprivate_resource_pad44 = 0;
+ public final int mprivate_resource_pad45 = 0;
+ public final int mprivate_resource_pad46 = 0;
+ public final int mprivate_resource_pad47 = 0;
+ public final int mprivate_resource_pad48 = 0;
+ public final int mprivate_resource_pad49 = 0;
+ public final int mprivate_resource_pad5 = 0;
+ public final int mprivate_resource_pad50 = 0;
+ public final int mprivate_resource_pad6 = 0;
+ public final int mprivate_resource_pad7 = 0;
+ public final int mprivate_resource_pad8 = 0;
+ public final int mprivate_resource_pad9 = 0;
+ public final int mprocess = 0;
+ public final int mprogress = 0;
+ public final int mprogressBackgroundTint = 0;
+ public final int mprogressBackgroundTintMode = 0;
+ public final int mprogressBarPadding = 0;
+ public final int mprogressBarStyle = 0;
+ public final int mprogressBarStyleHorizontal = 0;
+ public final int mprogressBarStyleInverse = 0;
+ public final int mprogressBarStyleLarge = 0;
+ public final int mprogressBarStyleLargeInverse = 0;
+ public final int mprogressBarStyleSmall = 0;
+ public final int mprogressBarStyleSmallInverse = 0;
+ public final int mprogressBarStyleSmallTitle = 0;
+ public final int mprogressDrawable = 0;
+ public final int mprogressTint = 0;
+ public final int mprogressTintMode = 0;
+ public final int mprompt = 0;
+ public final int mpropertyName = 0;
+ public final int mpropertyXName = 0;
+ public final int mpropertyYName = 0;
+ public final int mprotectionLevel = 0;
+ public final int mpublicKey = 0;
+ public final int mqueryActionMsg = 0;
+ public final int mqueryAfterZeroResults = 0;
+ public final int mqueryBackground = 0;
+ public final int mqueryHint = 0;
+ public final int mquickContactBadgeStyleSmallWindowLarge = 0;
+ public final int mquickContactBadgeStyleSmallWindowMedium = 0;
+ public final int mquickContactBadgeStyleSmallWindowSmall = 0;
+ public final int mquickContactBadgeStyleWindowLarge = 0;
+ public final int mquickContactBadgeStyleWindowMedium = 0;
+ public final int mquickContactBadgeStyleWindowSmall = 0;
+ public final int mradioButtonStyle = 0;
+ public final int mradius = 0;
+ public final int mrating = 0;
+ public final int mratingBarStyle = 0;
+ public final int mratingBarStyleIndicator = 0;
+ public final int mratingBarStyleSmall = 0;
+ public final int mreadPermission = 0;
+ public final int mrecognitionService = 0;
+ public final int mrelinquishTaskIdentity = 0;
+ public final int mreparent = 0;
+ public final int mreparentWithOverlay = 0;
+ public final int mrepeatCount = 0;
+ public final int mrepeatMode = 0;
+ public final int mreqFiveWayNav = 0;
+ public final int mreqHardKeyboard = 0;
+ public final int mreqKeyboardType = 0;
+ public final int mreqNavigation = 0;
+ public final int mreqTouchScreen = 0;
+ public final int mrequireDeviceUnlock = 0;
+ public final int mrequired = 0;
+ public final int mrequiredAccountType = 0;
+ public final int mrequiredForAllUsers = 0;
+ public final int mrequiresFadingEdge = 0;
+ public final int mrequiresSmallestWidthDp = 0;
+ public final int mresizeClip = 0;
+ public final int mresizeMode = 0;
+ public final int mresizeable = 0;
+ public final int mresource = 0;
+ public final int mrestoreAnyVersion = 0;
+ public final int mrestoreNeedsApplication = 0;
+ public final int mrestrictedAccountType = 0;
+ public final int mrestrictionType = 0;
+ public final int mresumeWhilePausing = 0;
+ public final int mreversible = 0;
+ public final int mright = 0;
+ public final int mringtonePreferenceStyle = 0;
+ public final int mringtoneType = 0;
+ public final int mrotation = 0;
+ public final int mrotationX = 0;
+ public final int mrotationY = 0;
+ public final int mrowCount = 0;
+ public final int mrowDelay = 0;
+ public final int mrowEdgeFlags = 0;
+ public final int mrowHeight = 0;
+ public final int mrowOrderPreserved = 0;
+ public final int msaveEnabled = 0;
+ public final int mscaleGravity = 0;
+ public final int mscaleHeight = 0;
+ public final int mscaleType = 0;
+ public final int mscaleWidth = 0;
+ public final int mscaleX = 0;
+ public final int mscaleY = 0;
+ public final int mscheme = 0;
+ public final int mscreenDensity = 0;
+ public final int mscreenOrientation = 0;
+ public final int mscreenSize = 0;
+ public final int mscrollHorizontally = 0;
+ public final int mscrollViewStyle = 0;
+ public final int mscrollX = 0;
+ public final int mscrollY = 0;
+ public final int mscrollbarAlwaysDrawHorizontalTrack = 0;
+ public final int mscrollbarAlwaysDrawVerticalTrack = 0;
+ public final int mscrollbarDefaultDelayBeforeFade = 0;
+ public final int mscrollbarFadeDuration = 0;
+ public final int mscrollbarSize = 0;
+ public final int mscrollbarStyle = 0;
+ public final int mscrollbarThumbHorizontal = 0;
+ public final int mscrollbarThumbVertical = 0;
+ public final int mscrollbarTrackHorizontal = 0;
+ public final int mscrollbarTrackVertical = 0;
+ public final int mscrollbars = 0;
+ public final int mscrollingCache = 0;
+ public final int msearchButtonText = 0;
+ public final int msearchIcon = 0;
+ public final int msearchKeyphrase = 0;
+ public final int msearchKeyphraseId = 0;
+ public final int msearchKeyphraseRecognitionFlags = 0;
+ public final int msearchKeyphraseSupportedLocales = 0;
+ public final int msearchMode = 0;
+ public final int msearchSettingsDescription = 0;
+ public final int msearchSuggestAuthority = 0;
+ public final int msearchSuggestIntentAction = 0;
+ public final int msearchSuggestIntentData = 0;
+ public final int msearchSuggestPath = 0;
+ public final int msearchSuggestSelection = 0;
+ public final int msearchSuggestThreshold = 0;
+ public final int msearchViewStyle = 0;
+ public final int msecondaryProgress = 0;
+ public final int msecondaryProgressTint = 0;
+ public final int msecondaryProgressTintMode = 0;
+ public final int mseekBarStyle = 0;
+ public final int msegmentedButtonStyle = 0;
+ public final int mselectAllOnFocus = 0;
+ public final int mselectable = 0;
+ public final int mselectableItemBackground = 0;
+ public final int mselectableItemBackgroundBorderless = 0;
+ public final int mselectedDateVerticalBar = 0;
+ public final int mselectedWeekBackgroundColor = 0;
+ public final int msessionService = 0;
+ public final int msettingsActivity = 0;
+ public final int msetupActivity = 0;
+ public final int mshadowColor = 0;
+ public final int mshadowDx = 0;
+ public final int mshadowDy = 0;
+ public final int mshadowRadius = 0;
+ public final int mshape = 0;
+ public final int mshareInterpolator = 0;
+ public final int msharedUserId = 0;
+ public final int msharedUserLabel = 0;
+ public final int mshouldDisableView = 0;
+ public final int mshowAsAction = 0;
+ public final int mshowDefault = 0;
+ public final int mshowDividers = 0;
+ public final int mshowOnLockScreen = 0;
+ public final int mshowSilent = 0;
+ public final int mshowText = 0;
+ public final int mshowWeekNumber = 0;
+ public final int mshownWeekCount = 0;
+ public final int mshrinkColumns = 0;
+ public final int msingleLine = 0;
+ public final int msingleUser = 0;
+ public final int mslideEdge = 0;
+ public final int msmallIcon = 0;
+ public final int msmallScreens = 0;
+ public final int msmoothScrollbar = 0;
+ public final int msolidColor = 0;
+ public final int msoundEffectsEnabled = 0;
+ public final int mspacing = 0;
+ public final int mspinnerDropDownItemStyle = 0;
+ public final int mspinnerItemStyle = 0;
+ public final int mspinnerMode = 0;
+ public final int mspinnerStyle = 0;
+ public final int mspinnersShown = 0;
+ public final int msplitMotionEvents = 0;
+ public final int msplitTrack = 0;
+ public final int mspotShadowAlpha = 0;
+ public final int msrc = 0;
+ public final int mssp = 0;
+ public final int msspPattern = 0;
+ public final int msspPrefix = 0;
+ public final int mstackFromBottom = 0;
+ public final int mstackViewStyle = 0;
+ public final int mstarStyle = 0;
+ public final int mstartColor = 0;
+ public final int mstartDelay = 0;
+ public final int mstartOffset = 0;
+ public final int mstartYear = 0;
+ public final int mstateListAnimator = 0;
+ public final int mstateNotNeeded = 0;
+ public final int mstate_above_anchor = 0;
+ public final int mstate_accelerated = 0;
+ public final int mstate_activated = 0;
+ public final int mstate_active = 0;
+ public final int mstate_checkable = 0;
+ public final int mstate_checked = 0;
+ public final int mstate_drag_can_accept = 0;
+ public final int mstate_drag_hovered = 0;
+ public final int mstate_empty = 0;
+ public final int mstate_enabled = 0;
+ public final int mstate_expanded = 0;
+ public final int mstate_first = 0;
+ public final int mstate_focused = 0;
+ public final int mstate_hovered = 0;
+ public final int mstate_last = 0;
+ public final int mstate_long_pressable = 0;
+ public final int mstate_middle = 0;
+ public final int mstate_multiline = 0;
+ public final int mstate_pressed = 0;
+ public final int mstate_selected = 0;
+ public final int mstate_single = 0;
+ public final int mstate_window_focused = 0;
+ public final int mstaticWallpaperPreview = 0;
+ public final int mstatusBarColor = 0;
+ public final int mstepSize = 0;
+ public final int mstopWithTask = 0;
+ public final int mstreamType = 0;
+ public final int mstretchColumns = 0;
+ public final int mstretchMode = 0;
+ public final int mstrokeAlpha = 0;
+ public final int mstrokeColor = 0;
+ public final int mstrokeLineCap = 0;
+ public final int mstrokeLineJoin = 0;
+ public final int mstrokeMiterLimit = 0;
+ public final int mstrokeWidth = 0;
+ public final int msubmitBackground = 0;
+ public final int msubtitle = 0;
+ public final int msubtitleTextAppearance = 0;
+ public final int msubtitleTextStyle = 0;
+ public final int msubtypeExtraValue = 0;
+ public final int msubtypeId = 0;
+ public final int msubtypeLocale = 0;
+ public final int msuggestActionMsg = 0;
+ public final int msuggestActionMsgColumn = 0;
+ public final int msuggestionRowLayout = 0;
+ public final int msummary = 0;
+ public final int msummaryColumn = 0;
+ public final int msummaryOff = 0;
+ public final int msummaryOn = 0;
+ public final int msupportsRtl = 0;
+ public final int msupportsSwitchingToNextInputMethod = 0;
+ public final int msupportsUploading = 0;
+ public final int mswitchMinWidth = 0;
+ public final int mswitchPadding = 0;
+ public final int mswitchPreferenceStyle = 0;
+ public final int mswitchStyle = 0;
+ public final int mswitchTextAppearance = 0;
+ public final int mswitchTextOff = 0;
+ public final int mswitchTextOn = 0;
+ public final int msyncable = 0;
+ public final int mtabStripEnabled = 0;
+ public final int mtabStripLeft = 0;
+ public final int mtabStripRight = 0;
+ public final int mtabWidgetStyle = 0;
+ public final int mtag = 0;
+ public final int mtargetActivity = 0;
+ public final int mtargetClass = 0;
+ public final int mtargetDescriptions = 0;
+ public final int mtargetId = 0;
+ public final int mtargetName = 0;
+ public final int mtargetPackage = 0;
+ public final int mtargetSdkVersion = 0;
+ public final int mtaskAffinity = 0;
+ public final int mtaskCloseEnterAnimation = 0;
+ public final int mtaskCloseExitAnimation = 0;
+ public final int mtaskOpenEnterAnimation = 0;
+ public final int mtaskOpenExitAnimation = 0;
+ public final int mtaskToBackEnterAnimation = 0;
+ public final int mtaskToBackExitAnimation = 0;
+ public final int mtaskToFrontEnterAnimation = 0;
+ public final int mtaskToFrontExitAnimation = 0;
+ public final int mtension = 0;
+ public final int mtestOnly = 0;
+ public final int mtext = 0;
+ public final int mtextAlignment = 0;
+ public final int mtextAllCaps = 0;
+ public final int mtextAppearance = 0;
+ public final int mtextAppearanceButton = 0;
+ public final int mtextAppearanceInverse = 0;
+ public final int mtextAppearanceLarge = 0;
+ public final int mtextAppearanceLargeInverse = 0;
+ public final int mtextAppearanceLargePopupMenu = 0;
+ public final int mtextAppearanceListItem = 0;
+ public final int mtextAppearanceListItemSecondary = 0;
+ public final int mtextAppearanceListItemSmall = 0;
+ public final int mtextAppearanceMedium = 0;
+ public final int mtextAppearanceMediumInverse = 0;
+ public final int mtextAppearanceSearchResultSubtitle = 0;
+ public final int mtextAppearanceSearchResultTitle = 0;
+ public final int mtextAppearanceSmall = 0;
+ public final int mtextAppearanceSmallInverse = 0;
+ public final int mtextAppearanceSmallPopupMenu = 0;
+ public final int mtextCheckMark = 0;
+ public final int mtextCheckMarkInverse = 0;
+ public final int mtextColor = 0;
+ public final int mtextColorAlertDialogListItem = 0;
+ public final int mtextColorHighlight = 0;
+ public final int mtextColorHighlightInverse = 0;
+ public final int mtextColorHint = 0;
+ public final int mtextColorHintInverse = 0;
+ public final int mtextColorLink = 0;
+ public final int mtextColorLinkInverse = 0;
+ public final int mtextColorPrimary = 0;
+ public final int mtextColorPrimaryDisableOnly = 0;
+ public final int mtextColorPrimaryInverse = 0;
+ public final int mtextColorPrimaryInverseDisableOnly = 0;
+ public final int mtextColorPrimaryInverseNoDisable = 0;
+ public final int mtextColorPrimaryNoDisable = 0;
+ public final int mtextColorSecondary = 0;
+ public final int mtextColorSecondaryInverse = 0;
+ public final int mtextColorSecondaryInverseNoDisable = 0;
+ public final int mtextColorSecondaryNoDisable = 0;
+ public final int mtextColorTertiary = 0;
+ public final int mtextColorTertiaryInverse = 0;
+ public final int mtextCursorDrawable = 0;
+ public final int mtextDirection = 0;
+ public final int mtextEditNoPasteWindowLayout = 0;
+ public final int mtextEditPasteWindowLayout = 0;
+ public final int mtextEditSideNoPasteWindowLayout = 0;
+ public final int mtextEditSidePasteWindowLayout = 0;
+ public final int mtextEditSuggestionItemLayout = 0;
+ public final int mtextFilterEnabled = 0;
+ public final int mtextIsSelectable = 0;
+ public final int mtextOff = 0;
+ public final int mtextOn = 0;
+ public final int mtextScaleX = 0;
+ public final int mtextSelectHandle = 0;
+ public final int mtextSelectHandleLeft = 0;
+ public final int mtextSelectHandleRight = 0;
+ public final int mtextSelectHandleWindowStyle = 0;
+ public final int mtextSize = 0;
+ public final int mtextStyle = 0;
+ public final int mtextSuggestionsWindowStyle = 0;
+ public final int mtextViewStyle = 0;
+ public final int mtheme = 0;
+ public final int mthickness = 0;
+ public final int mthicknessRatio = 0;
+ public final int mthumb = 0;
+ public final int mthumbOffset = 0;
+ public final int mthumbTextPadding = 0;
+ public final int mthumbTint = 0;
+ public final int mthumbTintMode = 0;
+ public final int mthumbnail = 0;
+ public final int mtileMode = 0;
+ public final int mtileModeX = 0;
+ public final int mtileModeY = 0;
+ public final int mtimePickerDialogTheme = 0;
+ public final int mtimePickerMode = 0;
+ public final int mtimePickerStyle = 0;
+ public final int mtimeZone = 0;
+ public final int mtint = 0;
+ public final int mtintMode = 0;
+ public final int mtitle = 0;
+ public final int mtitleCondensed = 0;
+ public final int mtitleTextAppearance = 0;
+ public final int mtitleTextStyle = 0;
+ public final int mtoAlpha = 0;
+ public final int mtoDegrees = 0;
+ public final int mtoId = 0;
+ public final int mtoScene = 0;
+ public final int mtoXDelta = 0;
+ public final int mtoXScale = 0;
+ public final int mtoYDelta = 0;
+ public final int mtoYScale = 0;
+ public final int mtoolbarStyle = 0;
+ public final int mtop = 0;
+ public final int mtopBright = 0;
+ public final int mtopDark = 0;
+ public final int mtopLeftRadius = 0;
+ public final int mtopOffset = 0;
+ public final int mtopRightRadius = 0;
+ public final int mtouchscreenBlocksFocus = 0;
+ public final int mtrack = 0;
+ public final int mtranscriptMode = 0;
+ public final int mtransformPivotX = 0;
+ public final int mtransformPivotY = 0;
+ public final int mtransition = 0;
+ public final int mtransitionGroup = 0;
+ public final int mtransitionName = 0;
+ public final int mtransitionOrdering = 0;
+ public final int mtransitionVisibilityMode = 0;
+ public final int mtranslateX = 0;
+ public final int mtranslateY = 0;
+ public final int mtranslationX = 0;
+ public final int mtranslationY = 0;
+ public final int mtranslationZ = 0;
+ public final int mtrimPathEnd = 0;
+ public final int mtrimPathOffset = 0;
+ public final int mtrimPathStart = 0;
+ public final int mtype = 0;
+ public final int mtypeface = 0;
+ public final int muiOptions = 0;
+ public final int muncertainGestureColor = 0;
+ public final int munfocusedMonthDateColor = 0;
+ public final int munselectedAlpha = 0;
+ public final int mupdatePeriodMillis = 0;
+ public final int museDefaultMargins = 0;
+ public final int museIntrinsicSizeAsMinimum = 0;
+ public final int museLevel = 0;
+ public final int muserVisible = 0;
+ public final int mvalue = 0;
+ public final int mvalueFrom = 0;
+ public final int mvalueTo = 0;
+ public final int mvalueType = 0;
+ public final int mvariablePadding = 0;
+ public final int mvendor = 0;
+ public final int mversionCode = 0;
+ public final int mversionName = 0;
+ public final int mverticalCorrection = 0;
+ public final int mverticalDivider = 0;
+ public final int mverticalGap = 0;
+ public final int mverticalScrollbarPosition = 0;
+ public final int mverticalSpacing = 0;
+ public final int mviewportHeight = 0;
+ public final int mviewportWidth = 0;
+ public final int mvisibility = 0;
+ public final int mvisible = 0;
+ public final int mvmSafeMode = 0;
+ public final int mvoiceIcon = 0;
+ public final int mvoiceLanguage = 0;
+ public final int mvoiceLanguageModel = 0;
+ public final int mvoiceMaxResults = 0;
+ public final int mvoicePromptText = 0;
+ public final int mvoiceSearchMode = 0;
+ public final int mwallpaperCloseEnterAnimation = 0;
+ public final int mwallpaperCloseExitAnimation = 0;
+ public final int mwallpaperIntraCloseEnterAnimation = 0;
+ public final int mwallpaperIntraCloseExitAnimation = 0;
+ public final int mwallpaperIntraOpenEnterAnimation = 0;
+ public final int mwallpaperIntraOpenExitAnimation = 0;
+ public final int mwallpaperOpenEnterAnimation = 0;
+ public final int mwallpaperOpenExitAnimation = 0;
+ public final int mwebTextViewStyle = 0;
+ public final int mwebViewStyle = 0;
+ public final int mweekDayTextAppearance = 0;
+ public final int mweekNumberColor = 0;
+ public final int mweekSeparatorLineColor = 0;
+ public final int mweightSum = 0;
+ public final int mwidgetCategory = 0;
+ public final int mwidgetLayout = 0;
+ public final int mwidth = 0;
+ public final int mwindowActionBar = 0;
+ public final int mwindowActionBarOverlay = 0;
+ public final int mwindowActionModeOverlay = 0;
+ public final int mwindowActivityTransitions = 0;
+ public final int mwindowAllowEnterTransitionOverlap = 0;
+ public final int mwindowAllowReturnTransitionOverlap = 0;
+ public final int mwindowAnimationStyle = 0;
+ public final int mwindowBackground = 0;
+ public final int mwindowClipToOutline = 0;
+ public final int mwindowCloseOnTouchOutside = 0;
+ public final int mwindowContentOverlay = 0;
+ public final int mwindowContentTransitionManager = 0;
+ public final int mwindowContentTransitions = 0;
+ public final int mwindowDisablePreview = 0;
+ public final int mwindowDrawsSystemBarBackgrounds = 0;
+ public final int mwindowElevation = 0;
+ public final int mwindowEnableSplitTouch = 0;
+ public final int mwindowEnterAnimation = 0;
+ public final int mwindowEnterTransition = 0;
+ public final int mwindowExitAnimation = 0;
+ public final int mwindowExitTransition = 0;
+ public final int mwindowFrame = 0;
+ public final int mwindowFullscreen = 0;
+ public final int mwindowHideAnimation = 0;
+ public final int mwindowIsFloating = 0;
+ public final int mwindowIsTranslucent = 0;
+ public final int mwindowMinWidthMajor = 0;
+ public final int mwindowMinWidthMinor = 0;
+ public final int mwindowNoDisplay = 0;
+ public final int mwindowNoTitle = 0;
+ public final int mwindowOverscan = 0;
+ public final int mwindowReenterTransition = 0;
+ public final int mwindowReturnTransition = 0;
+ public final int mwindowSharedElementEnterTransition = 0;
+ public final int mwindowSharedElementExitTransition = 0;
+ public final int mwindowSharedElementReenterTransition = 0;
+ public final int mwindowSharedElementReturnTransition = 0;
+ public final int mwindowSharedElementsUseOverlay = 0;
+ public final int mwindowShowAnimation = 0;
+ public final int mwindowShowWallpaper = 0;
+ public final int mwindowSoftInputMode = 0;
+ public final int mwindowSwipeToDismiss = 0;
+ public final int mwindowTitleBackgroundStyle = 0;
+ public final int mwindowTitleSize = 0;
+ public final int mwindowTitleStyle = 0;
+ public final int mwindowTransitionBackgroundFadeDuration = 0;
+ public final int mwindowTranslucentNavigation = 0;
+ public final int mwindowTranslucentStatus = 0;
+ public final int mwritePermission = 0;
+ public final int mx = 0;
+ public final int mxlargeScreens = 0;
+ public final int my = 0;
+ public final int myearListItemTextAppearance = 0;
+ public final int myearListSelectorColor = 0;
+ public final int myesNoPreferenceStyle = 0;
+ public final int mzAdjustment = 0;
+
+
+ public static final int absListViewStyle = 0;
+ public static final int accessibilityEventTypes = 0;
+ public static final int accessibilityFeedbackType = 0;
+ public static final int accessibilityFlags = 0;
+ public static final int accessibilityLiveRegion = 0;
+ public static final int accessibilityTraversalAfter = 0;
+ public static final int accessibilityTraversalBefore = 0;
+ public static final int accountPreferences = 0;
+ public static final int accountType = 0;
+ public static final int action = 0;
+ public static final int actionBarDivider = 0;
+ public static final int actionBarItemBackground = 0;
+ public static final int actionBarPopupTheme = 0;
+ public static final int actionBarSize = 0;
+ public static final int actionBarSplitStyle = 0;
+ public static final int actionBarStyle = 0;
+ public static final int actionBarTabBarStyle = 0;
+ public static final int actionBarTabStyle = 0;
+ public static final int actionBarTabTextStyle = 0;
+ public static final int actionBarTheme = 0;
+ public static final int actionBarWidgetTheme = 0;
+ public static final int actionButtonStyle = 0;
+ public static final int actionDropDownStyle = 0;
+ public static final int actionLayout = 0;
+ public static final int actionMenuTextAppearance = 0;
+ public static final int actionMenuTextColor = 0;
+ public static final int actionModeBackground = 0;
+ public static final int actionModeCloseButtonStyle = 0;
+ public static final int actionModeCloseDrawable = 0;
+ public static final int actionModeCopyDrawable = 0;
+ public static final int actionModeCutDrawable = 0;
+ public static final int actionModeFindDrawable = 0;
+ public static final int actionModePasteDrawable = 0;
+ public static final int actionModeSelectAllDrawable = 0;
+ public static final int actionModeShareDrawable = 0;
+ public static final int actionModeSplitBackground = 0;
+ public static final int actionModeStyle = 0;
+ public static final int actionModeWebSearchDrawable = 0;
+ public static final int actionOverflowButtonStyle = 0;
+ public static final int actionOverflowMenuStyle = 0;
+ public static final int actionProviderClass = 0;
+ public static final int actionViewClass = 0;
+ public static final int activatedBackgroundIndicator = 0;
+ public static final int activityCloseEnterAnimation = 0;
+ public static final int activityCloseExitAnimation = 0;
+ public static final int activityOpenEnterAnimation = 0;
+ public static final int activityOpenExitAnimation = 0;
+ public static final int addPrintersActivity = 0;
+ public static final int addStatesFromChildren = 0;
+ public static final int adjustViewBounds = 0;
+ public static final int advancedPrintOptionsActivity = 0;
+ public static final int alertDialogIcon = 0;
+ public static final int alertDialogStyle = 0;
+ public static final int alertDialogTheme = 0;
+ public static final int alignmentMode = 0;
+ public static final int allContactsName = 0;
+ public static final int allowBackup = 0;
+ public static final int allowClearUserData = 0;
+ public static final int allowEmbedded = 0;
+ public static final int allowParallelSyncs = 0;
+ public static final int allowSingleTap = 0;
+ public static final int allowTaskReparenting = 0;
+ public static final int alpha = 0;
+ public static final int alphabeticShortcut = 0;
+ public static final int alwaysDrawnWithCache = 0;
+ public static final int alwaysRetainTaskState = 0;
+ public static final int amPmBackgroundColor = 0;
+ public static final int amPmTextColor = 0;
+ public static final int ambientShadowAlpha = 0;
+ public static final int angle = 0;
+ public static final int animateFirstView = 0;
+ public static final int animateLayoutChanges = 0;
+ public static final int animateOnClick = 0;
+ public static final int animation = 0;
+ public static final int animationCache = 0;
+ public static final int animationDuration = 0;
+ public static final int animationOrder = 0;
+ public static final int animationResolution = 0;
+ public static final int antialias = 0;
+ public static final int anyDensity = 0;
+ public static final int apduServiceBanner = 0;
+ public static final int apiKey = 0;
+ public static final int author = 0;
+ public static final int authorities = 0;
+ public static final int autoAdvanceViewId = 0;
+ public static final int autoCompleteTextViewStyle = 0;
+ public static final int autoLink = 0;
+ public static final int autoMirrored = 0;
+ public static final int autoRemoveFromRecents = 0;
+ public static final int autoStart = 0;
+ public static final int autoText = 0;
+ public static final int autoUrlDetect = 0;
+ public static final int background = 0;
+ public static final int backgroundDimAmount = 0;
+ public static final int backgroundDimEnabled = 0;
+ public static final int backgroundSplit = 0;
+ public static final int backgroundStacked = 0;
+ public static final int backgroundTint = 0;
+ public static final int backgroundTintMode = 0;
+ public static final int backupAgent = 0;
+ public static final int banner = 0;
+ public static final int baseline = 0;
+ public static final int baselineAlignBottom = 0;
+ public static final int baselineAligned = 0;
+ public static final int baselineAlignedChildIndex = 0;
+ public static final int borderlessButtonStyle = 0;
+ public static final int bottom = 0;
+ public static final int bottomBright = 0;
+ public static final int bottomDark = 0;
+ public static final int bottomLeftRadius = 0;
+ public static final int bottomMedium = 0;
+ public static final int bottomOffset = 0;
+ public static final int bottomRightRadius = 0;
+ public static final int breadCrumbShortTitle = 0;
+ public static final int breadCrumbTitle = 0;
+ public static final int bufferType = 0;
+ public static final int button = 0;
+ public static final int buttonBarButtonStyle = 0;
+ public static final int buttonBarNegativeButtonStyle = 0;
+ public static final int buttonBarNeutralButtonStyle = 0;
+ public static final int buttonBarPositiveButtonStyle = 0;
+ public static final int buttonBarStyle = 0;
+ public static final int buttonStyle = 0;
+ public static final int buttonStyleInset = 0;
+ public static final int buttonStyleSmall = 0;
+ public static final int buttonStyleToggle = 0;
+ public static final int buttonTint = 0;
+ public static final int buttonTintMode = 0;
+ public static final int cacheColorHint = 0;
+ public static final int calendarTextColor = 0;
+ public static final int calendarViewShown = 0;
+ public static final int calendarViewStyle = 0;
+ public static final int canRequestEnhancedWebAccessibility = 0;
+ public static final int canRequestFilterKeyEvents = 0;
+ public static final int canRequestTouchExplorationMode = 0;
+ public static final int canRetrieveWindowContent = 0;
+ public static final int candidatesTextStyleSpans = 0;
+ public static final int capitalize = 0;
+ public static final int category = 0;
+ public static final int centerBright = 0;
+ public static final int centerColor = 0;
+ public static final int centerDark = 0;
+ public static final int centerMedium = 0;
+ public static final int centerX = 0;
+ public static final int centerY = 0;
+ public static final int checkBoxPreferenceStyle = 0;
+ public static final int checkMark = 0;
+ public static final int checkMarkTint = 0;
+ public static final int checkMarkTintMode = 0;
+ public static final int checkable = 0;
+ public static final int checkableBehavior = 0;
+ public static final int checkboxStyle = 0;
+ public static final int checked = 0;
+ public static final int checkedButton = 0;
+ public static final int checkedTextViewStyle = 0;
+ public static final int childDivider = 0;
+ public static final int childIndicator = 0;
+ public static final int childIndicatorEnd = 0;
+ public static final int childIndicatorLeft = 0;
+ public static final int childIndicatorRight = 0;
+ public static final int childIndicatorStart = 0;
+ public static final int choiceMode = 0;
+ public static final int clearTaskOnLaunch = 0;
+ public static final int clickable = 0;
+ public static final int clipChildren = 0;
+ public static final int clipOrientation = 0;
+ public static final int clipToPadding = 0;
+ public static final int closeIcon = 0;
+ public static final int codes = 0;
+ public static final int collapseColumns = 0;
+ public static final int collapseContentDescription = 0;
+ public static final int color = 0;
+ public static final int colorAccent = 0;
+ public static final int colorActivatedHighlight = 0;
+ public static final int colorBackground = 0;
+ public static final int colorBackgroundCacheHint = 0;
+ public static final int colorButtonNormal = 0;
+ public static final int colorControlActivated = 0;
+ public static final int colorControlHighlight = 0;
+ public static final int colorControlNormal = 0;
+ public static final int colorEdgeEffect = 0;
+ public static final int colorFocusedHighlight = 0;
+ public static final int colorForeground = 0;
+ public static final int colorForegroundInverse = 0;
+ public static final int colorLongPressedHighlight = 0;
+ public static final int colorMultiSelectHighlight = 0;
+ public static final int colorPressedHighlight = 0;
+ public static final int colorPrimary = 0;
+ public static final int colorPrimaryDark = 0;
+ public static final int columnCount = 0;
+ public static final int columnDelay = 0;
+ public static final int columnOrderPreserved = 0;
+ public static final int columnWidth = 0;
+ public static final int commitIcon = 0;
+ public static final int compatibleWidthLimitDp = 0;
+ public static final int completionHint = 0;
+ public static final int completionHintView = 0;
+ public static final int completionThreshold = 0;
+ public static final int configChanges = 0;
+ public static final int configure = 0;
+ public static final int constantSize = 0;
+ public static final int content = 0;
+ public static final int contentAgeHint = 0;
+ public static final int contentAuthority = 0;
+ public static final int contentDescription = 0;
+ public static final int contentInsetEnd = 0;
+ public static final int contentInsetLeft = 0;
+ public static final int contentInsetRight = 0;
+ public static final int contentInsetStart = 0;
+ public static final int controlX1 = 0;
+ public static final int controlX2 = 0;
+ public static final int controlY1 = 0;
+ public static final int controlY2 = 0;
+ public static final int country = 0;
+ public static final int cropToPadding = 0;
+ public static final int cursorVisible = 0;
+ public static final int customNavigationLayout = 0;
+ public static final int customTokens = 0;
+ public static final int cycles = 0;
+ public static final int dashGap = 0;
+ public static final int dashWidth = 0;
+ public static final int data = 0;
+ public static final int datePickerDialogTheme = 0;
+ public static final int datePickerMode = 0;
+ public static final int datePickerStyle = 0;
+ public static final int dateTextAppearance = 0;
+ public static final int dayOfWeekBackground = 0;
+ public static final int dayOfWeekTextAppearance = 0;
+ public static final int debuggable = 0;
+ public static final int defaultValue = 0;
+ public static final int delay = 0;
+ public static final int dependency = 0;
+ public static final int descendantFocusability = 0;
+ public static final int description = 0;
+ public static final int detachWallpaper = 0;
+ public static final int detailColumn = 0;
+ public static final int detailSocialSummary = 0;
+ public static final int detailsElementBackground = 0;
+ public static final int dial = 0;
+ public static final int dialogIcon = 0;
+ public static final int dialogLayout = 0;
+ public static final int dialogMessage = 0;
+ public static final int dialogPreferenceStyle = 0;
+ public static final int dialogPreferredPadding = 0;
+ public static final int dialogTheme = 0;
+ public static final int dialogTitle = 0;
+ public static final int digits = 0;
+ public static final int direction = 0;
+ public static final int directionDescriptions = 0;
+ public static final int directionPriority = 0;
+ public static final int disableDependentsState = 0;
+ public static final int disabledAlpha = 0;
+ public static final int displayOptions = 0;
+ public static final int dither = 0;
+ public static final int divider = 0;
+ public static final int dividerHeight = 0;
+ public static final int dividerHorizontal = 0;
+ public static final int dividerPadding = 0;
+ public static final int dividerVertical = 0;
+ public static final int documentLaunchMode = 0;
+ public static final int drawSelectorOnTop = 0;
+ public static final int drawable = 0;
+ public static final int drawableBottom = 0;
+ public static final int drawableEnd = 0;
+ public static final int drawableLeft = 0;
+ public static final int drawablePadding = 0;
+ public static final int drawableRight = 0;
+ public static final int drawableStart = 0;
+ public static final int drawableTop = 0;
+ public static final int drawingCacheQuality = 0;
+ public static final int dropDownAnchor = 0;
+ public static final int dropDownHeight = 0;
+ public static final int dropDownHintAppearance = 0;
+ public static final int dropDownHorizontalOffset = 0;
+ public static final int dropDownItemStyle = 0;
+ public static final int dropDownListViewStyle = 0;
+ public static final int dropDownSelector = 0;
+ public static final int dropDownSpinnerStyle = 0;
+ public static final int dropDownVerticalOffset = 0;
+ public static final int dropDownWidth = 0;
+ public static final int duplicateParentState = 0;
+ public static final int duration = 0;
+ public static final int editTextBackground = 0;
+ public static final int editTextColor = 0;
+ public static final int editTextPreferenceStyle = 0;
+ public static final int editTextStyle = 0;
+ public static final int editable = 0;
+ public static final int editorExtras = 0;
+ public static final int elegantTextHeight = 0;
+ public static final int elevation = 0;
+ public static final int ellipsize = 0;
+ public static final int ems = 0;
+ public static final int enabled = 0;
+ public static final int endColor = 0;
+ public static final int endYear = 0;
+ public static final int enterFadeDuration = 0;
+ public static final int entries = 0;
+ public static final int entryValues = 0;
+ public static final int eventsInterceptionEnabled = 0;
+ public static final int excludeClass = 0;
+ public static final int excludeFromRecents = 0;
+ public static final int excludeId = 0;
+ public static final int excludeName = 0;
+ public static final int exitFadeDuration = 0;
+ public static final int expandableListPreferredChildIndicatorLeft = 0;
+ public static final int expandableListPreferredChildIndicatorRight = 0;
+ public static final int expandableListPreferredChildPaddingLeft = 0;
+ public static final int expandableListPreferredItemIndicatorLeft = 0;
+ public static final int expandableListPreferredItemIndicatorRight = 0;
+ public static final int expandableListPreferredItemPaddingLeft = 0;
+ public static final int expandableListViewStyle = 0;
+ public static final int expandableListViewWhiteStyle = 0;
+ public static final int exported = 0;
+ public static final int extraTension = 0;
+ public static final int factor = 0;
+ public static final int fadeDuration = 0;
+ public static final int fadeEnabled = 0;
+ public static final int fadeOffset = 0;
+ public static final int fadeScrollbars = 0;
+ public static final int fadingEdge = 0;
+ public static final int fadingEdgeLength = 0;
+ public static final int fadingMode = 0;
+ public static final int fastScrollAlwaysVisible = 0;
+ public static final int fastScrollEnabled = 0;
+ public static final int fastScrollOverlayPosition = 0;
+ public static final int fastScrollPreviewBackgroundLeft = 0;
+ public static final int fastScrollPreviewBackgroundRight = 0;
+ public static final int fastScrollStyle = 0;
+ public static final int fastScrollTextColor = 0;
+ public static final int fastScrollThumbDrawable = 0;
+ public static final int fastScrollTrackDrawable = 0;
+ public static final int fillAfter = 0;
+ public static final int fillAlpha = 0;
+ public static final int fillBefore = 0;
+ public static final int fillColor = 0;
+ public static final int fillEnabled = 0;
+ public static final int fillViewport = 0;
+ public static final int filter = 0;
+ public static final int filterTouchesWhenObscured = 0;
+ public static final int finishOnCloseSystemDialogs = 0;
+ public static final int finishOnTaskLaunch = 0;
+ public static final int firstDayOfWeek = 0;
+ public static final int fitsSystemWindows = 0;
+ public static final int flipInterval = 0;
+ public static final int focusable = 0;
+ public static final int focusableInTouchMode = 0;
+ public static final int focusedMonthDateColor = 0;
+ public static final int fontFamily = 0;
+ public static final int fontFeatureSettings = 0;
+ public static final int footerDividersEnabled = 0;
+ public static final int foreground = 0;
+ public static final int foregroundGravity = 0;
+ public static final int foregroundTint = 0;
+ public static final int foregroundTintMode = 0;
+ public static final int format = 0;
+ public static final int format12Hour = 0;
+ public static final int format24Hour = 0;
+ public static final int fragment = 0;
+ public static final int fragmentAllowEnterTransitionOverlap = 0;
+ public static final int fragmentAllowReturnTransitionOverlap = 0;
+ public static final int fragmentCloseEnterAnimation = 0;
+ public static final int fragmentCloseExitAnimation = 0;
+ public static final int fragmentEnterTransition = 0;
+ public static final int fragmentExitTransition = 0;
+ public static final int fragmentFadeEnterAnimation = 0;
+ public static final int fragmentFadeExitAnimation = 0;
+ public static final int fragmentOpenEnterAnimation = 0;
+ public static final int fragmentOpenExitAnimation = 0;
+ public static final int fragmentReenterTransition = 0;
+ public static final int fragmentReturnTransition = 0;
+ public static final int fragmentSharedElementEnterTransition = 0;
+ public static final int fragmentSharedElementReturnTransition = 0;
+ public static final int freezesText = 0;
+ public static final int fromAlpha = 0;
+ public static final int fromDegrees = 0;
+ public static final int fromId = 0;
+ public static final int fromScene = 0;
+ public static final int fromXDelta = 0;
+ public static final int fromXScale = 0;
+ public static final int fromYDelta = 0;
+ public static final int fromYScale = 0;
+ public static final int fullBackupOnly = 0;
+ public static final int fullBright = 0;
+ public static final int fullDark = 0;
+ public static final int functionalTest = 0;
+ public static final int galleryItemBackground = 0;
+ public static final int galleryStyle = 0;
+ public static final int gestureColor = 0;
+ public static final int gestureStrokeAngleThreshold = 0;
+ public static final int gestureStrokeLengthThreshold = 0;
+ public static final int gestureStrokeSquarenessThreshold = 0;
+ public static final int gestureStrokeType = 0;
+ public static final int gestureStrokeWidth = 0;
+ public static final int glEsVersion = 0;
+ public static final int goIcon = 0;
+ public static final int gradientRadius = 0;
+ public static final int grantUriPermissions = 0;
+ public static final int gravity = 0;
+ public static final int gridViewStyle = 0;
+ public static final int groupIndicator = 0;
+ public static final int hand_hour = 0;
+ public static final int hand_minute = 0;
+ public static final int handle = 0;
+ public static final int handleProfiling = 0;
+ public static final int hapticFeedbackEnabled = 0;
+ public static final int hardwareAccelerated = 0;
+ public static final int hasCode = 0;
+ public static final int headerAmPmTextAppearance = 0;
+ public static final int headerBackground = 0;
+ public static final int headerDayOfMonthTextAppearance = 0;
+ public static final int headerDividersEnabled = 0;
+ public static final int headerMonthTextAppearance = 0;
+ public static final int headerTimeTextAppearance = 0;
+ public static final int headerYearTextAppearance = 0;
+ public static final int height = 0;
+ public static final int hideOnContentScroll = 0;
+ public static final int hint = 0;
+ public static final int homeAsUpIndicator = 0;
+ public static final int homeLayout = 0;
+ public static final int horizontalDivider = 0;
+ public static final int horizontalGap = 0;
+ public static final int horizontalScrollViewStyle = 0;
+ public static final int horizontalSpacing = 0;
+ public static final int host = 0;
+ public static final int icon = 0;
+ public static final int iconPreview = 0;
+ public static final int iconifiedByDefault = 0;
+ public static final int id = 0;
+ public static final int ignoreGravity = 0;
+ public static final int imageButtonStyle = 0;
+ public static final int imageWellStyle = 0;
+ public static final int imeActionId = 0;
+ public static final int imeActionLabel = 0;
+ public static final int imeExtractEnterAnimation = 0;
+ public static final int imeExtractExitAnimation = 0;
+ public static final int imeFullscreenBackground = 0;
+ public static final int imeOptions = 0;
+ public static final int imeSubtypeExtraValue = 0;
+ public static final int imeSubtypeLocale = 0;
+ public static final int imeSubtypeMode = 0;
+ public static final int immersive = 0;
+ public static final int importantForAccessibility = 0;
+ public static final int inAnimation = 0;
+ public static final int includeFontPadding = 0;
+ public static final int includeInGlobalSearch = 0;
+ public static final int indeterminate = 0;
+ public static final int indeterminateBehavior = 0;
+ public static final int indeterminateDrawable = 0;
+ public static final int indeterminateDuration = 0;
+ public static final int indeterminateOnly = 0;
+ public static final int indeterminateProgressStyle = 0;
+ public static final int indeterminateTint = 0;
+ public static final int indeterminateTintMode = 0;
+ public static final int indicatorEnd = 0;
+ public static final int indicatorLeft = 0;
+ public static final int indicatorRight = 0;
+ public static final int indicatorStart = 0;
+ public static final int inflatedId = 0;
+ public static final int initOrder = 0;
+ public static final int initialKeyguardLayout = 0;
+ public static final int initialLayout = 0;
+ public static final int innerRadius = 0;
+ public static final int innerRadiusRatio = 0;
+ public static final int inputMethod = 0;
+ public static final int inputType = 0;
+ public static final int inset = 0;
+ public static final int insetBottom = 0;
+ public static final int insetLeft = 0;
+ public static final int insetRight = 0;
+ public static final int insetTop = 0;
+ public static final int installLocation = 0;
+ public static final int interpolator = 0;
+ public static final int isAlwaysSyncable = 0;
+ public static final int isAsciiCapable = 0;
+ public static final int isAuxiliary = 0;
+ public static final int isDefault = 0;
+ public static final int isGame = 0;
+ public static final int isIndicator = 0;
+ public static final int isModifier = 0;
+ public static final int isRepeatable = 0;
+ public static final int isScrollContainer = 0;
+ public static final int isSticky = 0;
+ public static final int isolatedProcess = 0;
+ public static final int itemBackground = 0;
+ public static final int itemIconDisabledAlpha = 0;
+ public static final int itemPadding = 0;
+ public static final int itemTextAppearance = 0;
+ public static final int keepScreenOn = 0;
+ public static final int key = 0;
+ public static final int keyBackground = 0;
+ public static final int keyEdgeFlags = 0;
+ public static final int keyHeight = 0;
+ public static final int keyIcon = 0;
+ public static final int keyLabel = 0;
+ public static final int keyOutputText = 0;
+ public static final int keyPreviewHeight = 0;
+ public static final int keyPreviewLayout = 0;
+ public static final int keyPreviewOffset = 0;
+ public static final int keySet = 0;
+ public static final int keyTextColor = 0;
+ public static final int keyTextSize = 0;
+ public static final int keyWidth = 0;
+ public static final int keyboardLayout = 0;
+ public static final int keyboardMode = 0;
+ public static final int keycode = 0;
+ public static final int killAfterRestore = 0;
+ public static final int label = 0;
+ public static final int labelFor = 0;
+ public static final int labelTextSize = 0;
+ public static final int largeHeap = 0;
+ public static final int largeScreens = 0;
+ public static final int largestWidthLimitDp = 0;
+ public static final int launchMode = 0;
+ public static final int launchTaskBehindSourceAnimation = 0;
+ public static final int launchTaskBehindTargetAnimation = 0;
+ public static final int layerType = 0;
+ public static final int layout = 0;
+ public static final int layoutAnimation = 0;
+ public static final int layoutDirection = 0;
+ public static final int layoutMode = 0;
+ public static final int layout_above = 0;
+ public static final int layout_alignBaseline = 0;
+ public static final int layout_alignBottom = 0;
+ public static final int layout_alignEnd = 0;
+ public static final int layout_alignLeft = 0;
+ public static final int layout_alignParentBottom = 0;
+ public static final int layout_alignParentEnd = 0;
+ public static final int layout_alignParentLeft = 0;
+ public static final int layout_alignParentRight = 0;
+ public static final int layout_alignParentStart = 0;
+ public static final int layout_alignParentTop = 0;
+ public static final int layout_alignRight = 0;
+ public static final int layout_alignStart = 0;
+ public static final int layout_alignTop = 0;
+ public static final int layout_alignWithParentIfMissing = 0;
+ public static final int layout_below = 0;
+ public static final int layout_centerHorizontal = 0;
+ public static final int layout_centerInParent = 0;
+ public static final int layout_centerVertical = 0;
+ public static final int layout_column = 0;
+ public static final int layout_columnSpan = 0;
+ public static final int layout_columnWeight = 0;
+ public static final int layout_gravity = 0;
+ public static final int layout_height = 0;
+ public static final int layout_margin = 0;
+ public static final int layout_marginBottom = 0;
+ public static final int layout_marginEnd = 0;
+ public static final int layout_marginLeft = 0;
+ public static final int layout_marginRight = 0;
+ public static final int layout_marginStart = 0;
+ public static final int layout_marginTop = 0;
+ public static final int layout_row = 0;
+ public static final int layout_rowSpan = 0;
+ public static final int layout_rowWeight = 0;
+ public static final int layout_scale = 0;
+ public static final int layout_span = 0;
+ public static final int layout_toEndOf = 0;
+ public static final int layout_toLeftOf = 0;
+ public static final int layout_toRightOf = 0;
+ public static final int layout_toStartOf = 0;
+ public static final int layout_weight = 0;
+ public static final int layout_width = 0;
+ public static final int layout_x = 0;
+ public static final int layout_y = 0;
+ public static final int left = 0;
+ public static final int letterSpacing = 0;
+ public static final int lineSpacingExtra = 0;
+ public static final int lineSpacingMultiplier = 0;
+ public static final int lines = 0;
+ public static final int linksClickable = 0;
+ public static final int listChoiceBackgroundIndicator = 0;
+ public static final int listChoiceIndicatorMultiple = 0;
+ public static final int listChoiceIndicatorSingle = 0;
+ public static final int listDivider = 0;
+ public static final int listDividerAlertDialog = 0;
+ public static final int listPopupWindowStyle = 0;
+ public static final int listPreferredItemHeight = 0;
+ public static final int listPreferredItemHeightLarge = 0;
+ public static final int listPreferredItemHeightSmall = 0;
+ public static final int listPreferredItemPaddingEnd = 0;
+ public static final int listPreferredItemPaddingLeft = 0;
+ public static final int listPreferredItemPaddingRight = 0;
+ public static final int listPreferredItemPaddingStart = 0;
+ public static final int listSelector = 0;
+ public static final int listSeparatorTextViewStyle = 0;
+ public static final int listViewStyle = 0;
+ public static final int listViewWhiteStyle = 0;
+ public static final int logo = 0;
+ public static final int longClickable = 0;
+ public static final int loopViews = 0;
+ public static final int manageSpaceActivity = 0;
+ public static final int mapViewStyle = 0;
+ public static final int marqueeRepeatLimit = 0;
+ public static final int matchOrder = 0;
+ public static final int max = 0;
+ public static final int maxDate = 0;
+ public static final int maxEms = 0;
+ public static final int maxHeight = 0;
+ public static final int maxItemsPerRow = 0;
+ public static final int maxLength = 0;
+ public static final int maxLevel = 0;
+ public static final int maxLines = 0;
+ public static final int maxRecents = 0;
+ public static final int maxRows = 0;
+ public static final int maxSdkVersion = 0;
+ public static final int maxWidth = 0;
+ public static final int maximumAngle = 0;
+ public static final int measureAllChildren = 0;
+ public static final int measureWithLargestChild = 0;
+ public static final int mediaRouteButtonStyle = 0;
+ public static final int mediaRouteTypes = 0;
+ public static final int menuCategory = 0;
+ public static final int mimeType = 0;
+ public static final int minDate = 0;
+ public static final int minEms = 0;
+ public static final int minHeight = 0;
+ public static final int minLevel = 0;
+ public static final int minLines = 0;
+ public static final int minResizeHeight = 0;
+ public static final int minResizeWidth = 0;
+ public static final int minSdkVersion = 0;
+ public static final int minWidth = 0;
+ public static final int minimumHorizontalAngle = 0;
+ public static final int minimumVerticalAngle = 0;
+ public static final int mipMap = 0;
+ public static final int mirrorForRtl = 0;
+ public static final int mode = 0;
+ public static final int moreIcon = 0;
+ public static final int multiArch = 0;
+ public static final int multiprocess = 0;
+ public static final int name = 0;
+ public static final int navigationBarColor = 0;
+ public static final int navigationContentDescription = 0;
+ public static final int navigationIcon = 0;
+ public static final int navigationMode = 0;
+ public static final int negativeButtonText = 0;
+ public static final int nestedScrollingEnabled = 0;
+ public static final int nextFocusDown = 0;
+ public static final int nextFocusForward = 0;
+ public static final int nextFocusLeft = 0;
+ public static final int nextFocusRight = 0;
+ public static final int nextFocusUp = 0;
+ public static final int noHistory = 0;
+ public static final int normalScreens = 0;
+ public static final int notificationTimeout = 0;
+ public static final int numColumns = 0;
+ public static final int numStars = 0;
+ public static final int numbersBackgroundColor = 0;
+ public static final int numbersSelectorColor = 0;
+ public static final int numbersTextColor = 0;
+ public static final int numeric = 0;
+ public static final int numericShortcut = 0;
+ public static final int onClick = 0;
+ public static final int oneshot = 0;
+ public static final int opacity = 0;
+ public static final int order = 0;
+ public static final int orderInCategory = 0;
+ public static final int ordering = 0;
+ public static final int orderingFromXml = 0;
+ public static final int orientation = 0;
+ public static final int outAnimation = 0;
+ public static final int outlineProvider = 0;
+ public static final int overScrollFooter = 0;
+ public static final int overScrollHeader = 0;
+ public static final int overScrollMode = 0;
+ public static final int overlapAnchor = 0;
+ public static final int overridesImplicitlyEnabledSubtype = 0;
+ public static final int packageNames = 0;
+ public static final int padding = 0;
+ public static final int paddingBottom = 0;
+ public static final int paddingEnd = 0;
+ public static final int paddingLeft = 0;
+ public static final int paddingMode = 0;
+ public static final int paddingRight = 0;
+ public static final int paddingStart = 0;
+ public static final int paddingTop = 0;
+ public static final int panelBackground = 0;
+ public static final int panelColorBackground = 0;
+ public static final int panelColorForeground = 0;
+ public static final int panelFullBackground = 0;
+ public static final int panelTextAppearance = 0;
+ public static final int parentActivityName = 0;
+ public static final int password = 0;
+ public static final int path = 0;
+ public static final int pathData = 0;
+ public static final int pathPattern = 0;
+ public static final int pathPrefix = 0;
+ public static final int patternPathData = 0;
+ public static final int permission = 0;
+ public static final int permissionFlags = 0;
+ public static final int permissionGroup = 0;
+ public static final int permissionGroupFlags = 0;
+ public static final int persistableMode = 0;
+ public static final int persistent = 0;
+ public static final int persistentDrawingCache = 0;
+ public static final int phoneNumber = 0;
+ public static final int pivotX = 0;
+ public static final int pivotY = 0;
+ public static final int popupAnimationStyle = 0;
+ public static final int popupBackground = 0;
+ public static final int popupCharacters = 0;
+ public static final int popupElevation = 0;
+ public static final int popupKeyboard = 0;
+ public static final int popupLayout = 0;
+ public static final int popupMenuStyle = 0;
+ public static final int popupTheme = 0;
+ public static final int popupWindowStyle = 0;
+ public static final int port = 0;
+ public static final int positiveButtonText = 0;
+ public static final int preferenceCategoryStyle = 0;
+ public static final int preferenceInformationStyle = 0;
+ public static final int preferenceLayoutChild = 0;
+ public static final int preferenceScreenStyle = 0;
+ public static final int preferenceStyle = 0;
+ public static final int presentationTheme = 0;
+ public static final int previewImage = 0;
+ public static final int priority = 0;
+ public static final int privateImeOptions = 0;
+ public static final int private_resource_pad1 = 0;
+ public static final int private_resource_pad10 = 0;
+ public static final int private_resource_pad11 = 0;
+ public static final int private_resource_pad12 = 0;
+ public static final int private_resource_pad13 = 0;
+ public static final int private_resource_pad14 = 0;
+ public static final int private_resource_pad15 = 0;
+ public static final int private_resource_pad16 = 0;
+ public static final int private_resource_pad17 = 0;
+ public static final int private_resource_pad18 = 0;
+ public static final int private_resource_pad19 = 0;
+ public static final int private_resource_pad2 = 0;
+ public static final int private_resource_pad20 = 0;
+ public static final int private_resource_pad21 = 0;
+ public static final int private_resource_pad22 = 0;
+ public static final int private_resource_pad23 = 0;
+ public static final int private_resource_pad24 = 0;
+ public static final int private_resource_pad25 = 0;
+ public static final int private_resource_pad26 = 0;
+ public static final int private_resource_pad27 = 0;
+ public static final int private_resource_pad28 = 0;
+ public static final int private_resource_pad29 = 0;
+ public static final int private_resource_pad3 = 0;
+ public static final int private_resource_pad30 = 0;
+ public static final int private_resource_pad31 = 0;
+ public static final int private_resource_pad32 = 0;
+ public static final int private_resource_pad33 = 0;
+ public static final int private_resource_pad34 = 0;
+ public static final int private_resource_pad35 = 0;
+ public static final int private_resource_pad36 = 0;
+ public static final int private_resource_pad37 = 0;
+ public static final int private_resource_pad38 = 0;
+ public static final int private_resource_pad39 = 0;
+ public static final int private_resource_pad4 = 0;
+ public static final int private_resource_pad40 = 0;
+ public static final int private_resource_pad41 = 0;
+ public static final int private_resource_pad42 = 0;
+ public static final int private_resource_pad43 = 0;
+ public static final int private_resource_pad44 = 0;
+ public static final int private_resource_pad45 = 0;
+ public static final int private_resource_pad46 = 0;
+ public static final int private_resource_pad47 = 0;
+ public static final int private_resource_pad48 = 0;
+ public static final int private_resource_pad49 = 0;
+ public static final int private_resource_pad5 = 0;
+ public static final int private_resource_pad50 = 0;
+ public static final int private_resource_pad6 = 0;
+ public static final int private_resource_pad7 = 0;
+ public static final int private_resource_pad8 = 0;
+ public static final int private_resource_pad9 = 0;
+ public static final int process = 0;
+ public static final int progress = 0;
+ public static final int progressBackgroundTint = 0;
+ public static final int progressBackgroundTintMode = 0;
+ public static final int progressBarPadding = 0;
+ public static final int progressBarStyle = 0;
+ public static final int progressBarStyleHorizontal = 0;
+ public static final int progressBarStyleInverse = 0;
+ public static final int progressBarStyleLarge = 0;
+ public static final int progressBarStyleLargeInverse = 0;
+ public static final int progressBarStyleSmall = 0;
+ public static final int progressBarStyleSmallInverse = 0;
+ public static final int progressBarStyleSmallTitle = 0;
+ public static final int progressDrawable = 0;
+ public static final int progressTint = 0;
+ public static final int progressTintMode = 0;
+ public static final int prompt = 0;
+ public static final int propertyName = 0;
+ public static final int propertyXName = 0;
+ public static final int propertyYName = 0;
+ public static final int protectionLevel = 0;
+ public static final int publicKey = 0;
+ public static final int queryActionMsg = 0;
+ public static final int queryAfterZeroResults = 0;
+ public static final int queryBackground = 0;
+ public static final int queryHint = 0;
+ public static final int quickContactBadgeStyleSmallWindowLarge = 0;
+ public static final int quickContactBadgeStyleSmallWindowMedium = 0;
+ public static final int quickContactBadgeStyleSmallWindowSmall = 0;
+ public static final int quickContactBadgeStyleWindowLarge = 0;
+ public static final int quickContactBadgeStyleWindowMedium = 0;
+ public static final int quickContactBadgeStyleWindowSmall = 0;
+ public static final int radioButtonStyle = 0;
+ public static final int radius = 0;
+ public static final int rating = 0;
+ public static final int ratingBarStyle = 0;
+ public static final int ratingBarStyleIndicator = 0;
+ public static final int ratingBarStyleSmall = 0;
+ public static final int readPermission = 0;
+ public static final int recognitionService = 0;
+ public static final int relinquishTaskIdentity = 0;
+ public static final int reparent = 0;
+ public static final int reparentWithOverlay = 0;
+ public static final int repeatCount = 0;
+ public static final int repeatMode = 0;
+ public static final int reqFiveWayNav = 0;
+ public static final int reqHardKeyboard = 0;
+ public static final int reqKeyboardType = 0;
+ public static final int reqNavigation = 0;
+ public static final int reqTouchScreen = 0;
+ public static final int requireDeviceUnlock = 0;
+ public static final int required = 0;
+ public static final int requiredAccountType = 0;
+ public static final int requiredForAllUsers = 0;
+ public static final int requiresFadingEdge = 0;
+ public static final int requiresSmallestWidthDp = 0;
+ public static final int resizeClip = 0;
+ public static final int resizeMode = 0;
+ public static final int resizeable = 0;
+ public static final int resource = 0;
+ public static final int restoreAnyVersion = 0;
+ public static final int restoreNeedsApplication = 0;
+ public static final int restrictedAccountType = 0;
+ public static final int restrictionType = 0;
+ public static final int resumeWhilePausing = 0;
+ public static final int reversible = 0;
+ public static final int right = 0;
+ public static final int ringtonePreferenceStyle = 0;
+ public static final int ringtoneType = 0;
+ public static final int rotation = 0;
+ public static final int rotationX = 0;
+ public static final int rotationY = 0;
+ public static final int rowCount = 0;
+ public static final int rowDelay = 0;
+ public static final int rowEdgeFlags = 0;
+ public static final int rowHeight = 0;
+ public static final int rowOrderPreserved = 0;
+ public static final int saveEnabled = 0;
+ public static final int scaleGravity = 0;
+ public static final int scaleHeight = 0;
+ public static final int scaleType = 0;
+ public static final int scaleWidth = 0;
+ public static final int scaleX = 0;
+ public static final int scaleY = 0;
+ public static final int scheme = 0;
+ public static final int screenDensity = 0;
+ public static final int screenOrientation = 0;
+ public static final int screenSize = 0;
+ public static final int scrollHorizontally = 0;
+ public static final int scrollViewStyle = 0;
+ public static final int scrollX = 0;
+ public static final int scrollY = 0;
+ public static final int scrollbarAlwaysDrawHorizontalTrack = 0;
+ public static final int scrollbarAlwaysDrawVerticalTrack = 0;
+ public static final int scrollbarDefaultDelayBeforeFade = 0;
+ public static final int scrollbarFadeDuration = 0;
+ public static final int scrollbarSize = 0;
+ public static final int scrollbarStyle = 0;
+ public static final int scrollbarThumbHorizontal = 0;
+ public static final int scrollbarThumbVertical = 0;
+ public static final int scrollbarTrackHorizontal = 0;
+ public static final int scrollbarTrackVertical = 0;
+ public static final int scrollbars = 0;
+ public static final int scrollingCache = 0;
+ public static final int searchButtonText = 0;
+ public static final int searchIcon = 0;
+ public static final int searchKeyphrase = 0;
+ public static final int searchKeyphraseId = 0;
+ public static final int searchKeyphraseRecognitionFlags = 0;
+ public static final int searchKeyphraseSupportedLocales = 0;
+ public static final int searchMode = 0;
+ public static final int searchSettingsDescription = 0;
+ public static final int searchSuggestAuthority = 0;
+ public static final int searchSuggestIntentAction = 0;
+ public static final int searchSuggestIntentData = 0;
+ public static final int searchSuggestPath = 0;
+ public static final int searchSuggestSelection = 0;
+ public static final int searchSuggestThreshold = 0;
+ public static final int searchViewStyle = 0;
+ public static final int secondaryProgress = 0;
+ public static final int secondaryProgressTint = 0;
+ public static final int secondaryProgressTintMode = 0;
+ public static final int seekBarStyle = 0;
+ public static final int segmentedButtonStyle = 0;
+ public static final int selectAllOnFocus = 0;
+ public static final int selectable = 0;
+ public static final int selectableItemBackground = 0;
+ public static final int selectableItemBackgroundBorderless = 0;
+ public static final int selectedDateVerticalBar = 0;
+ public static final int selectedWeekBackgroundColor = 0;
+ public static final int sessionService = 0;
+ public static final int settingsActivity = 0;
+ public static final int setupActivity = 0;
+ public static final int shadowColor = 0;
+ public static final int shadowDx = 0;
+ public static final int shadowDy = 0;
+ public static final int shadowRadius = 0;
+ public static final int shape = 0;
+ public static final int shareInterpolator = 0;
+ public static final int sharedUserId = 0;
+ public static final int sharedUserLabel = 0;
+ public static final int shouldDisableView = 0;
+ public static final int showAsAction = 0;
+ public static final int showDefault = 0;
+ public static final int showDividers = 0;
+ public static final int showOnLockScreen = 0;
+ public static final int showSilent = 0;
+ public static final int showText = 0;
+ public static final int showWeekNumber = 0;
+ public static final int shownWeekCount = 0;
+ public static final int shrinkColumns = 0;
+ public static final int singleLine = 0;
+ public static final int singleUser = 0;
+ public static final int slideEdge = 0;
+ public static final int smallIcon = 0;
+ public static final int smallScreens = 0;
+ public static final int smoothScrollbar = 0;
+ public static final int solidColor = 0;
+ public static final int soundEffectsEnabled = 0;
+ public static final int spacing = 0;
+ public static final int spinnerDropDownItemStyle = 0;
+ public static final int spinnerItemStyle = 0;
+ public static final int spinnerMode = 0;
+ public static final int spinnerStyle = 0;
+ public static final int spinnersShown = 0;
+ public static final int splitMotionEvents = 0;
+ public static final int splitTrack = 0;
+ public static final int spotShadowAlpha = 0;
+ public static final int src = 0;
+ public static final int ssp = 0;
+ public static final int sspPattern = 0;
+ public static final int sspPrefix = 0;
+ public static final int stackFromBottom = 0;
+ public static final int stackViewStyle = 0;
+ public static final int starStyle = 0;
+ public static final int startColor = 0;
+ public static final int startDelay = 0;
+ public static final int startOffset = 0;
+ public static final int startYear = 0;
+ public static final int stateListAnimator = 0;
+ public static final int stateNotNeeded = 0;
+ public static final int state_above_anchor = 0;
+ public static final int state_accelerated = 0;
+ public static final int state_activated = 0;
+ public static final int state_active = 0;
+ public static final int state_checkable = 0;
+ public static final int state_checked = 0;
+ public static final int state_drag_can_accept = 0;
+ public static final int state_drag_hovered = 0;
+ public static final int state_empty = 0;
+ public static final int state_enabled = 0;
+ public static final int state_expanded = 0;
+ public static final int state_first = 0;
+ public static final int state_focused = 0;
+ public static final int state_hovered = 0;
+ public static final int state_last = 0;
+ public static final int state_long_pressable = 0;
+ public static final int state_middle = 0;
+ public static final int state_multiline = 0;
+ public static final int state_pressed = 0;
+ public static final int state_selected = 0;
+ public static final int state_single = 0;
+ public static final int state_window_focused = 0;
+ public static final int staticWallpaperPreview = 0;
+ public static final int statusBarColor = 0;
+ public static final int stepSize = 0;
+ public static final int stopWithTask = 0;
+ public static final int streamType = 0;
+ public static final int stretchColumns = 0;
+ public static final int stretchMode = 0;
+ public static final int strokeAlpha = 0;
+ public static final int strokeColor = 0;
+ public static final int strokeLineCap = 0;
+ public static final int strokeLineJoin = 0;
+ public static final int strokeMiterLimit = 0;
+ public static final int strokeWidth = 0;
+ public static final int submitBackground = 0;
+ public static final int subtitle = 0;
+ public static final int subtitleTextAppearance = 0;
+ public static final int subtitleTextStyle = 0;
+ public static final int subtypeExtraValue = 0;
+ public static final int subtypeId = 0;
+ public static final int subtypeLocale = 0;
+ public static final int suggestActionMsg = 0;
+ public static final int suggestActionMsgColumn = 0;
+ public static final int suggestionRowLayout = 0;
+ public static final int summary = 0;
+ public static final int summaryColumn = 0;
+ public static final int summaryOff = 0;
+ public static final int summaryOn = 0;
+ public static final int supportsRtl = 0;
+ public static final int supportsSwitchingToNextInputMethod = 0;
+ public static final int supportsUploading = 0;
+ public static final int switchMinWidth = 0;
+ public static final int switchPadding = 0;
+ public static final int switchPreferenceStyle = 0;
+ public static final int switchStyle = 0;
+ public static final int switchTextAppearance = 0;
+ public static final int switchTextOff = 0;
+ public static final int switchTextOn = 0;
+ public static final int syncable = 0;
+ public static final int tabStripEnabled = 0;
+ public static final int tabStripLeft = 0;
+ public static final int tabStripRight = 0;
+ public static final int tabWidgetStyle = 0;
+ public static final int tag = 0;
+ public static final int targetActivity = 0;
+ public static final int targetClass = 0;
+ public static final int targetDescriptions = 0;
+ public static final int targetId = 0;
+ public static final int targetName = 0;
+ public static final int targetPackage = 0;
+ public static final int targetSdkVersion = 0;
+ public static final int taskAffinity = 0;
+ public static final int taskCloseEnterAnimation = 0;
+ public static final int taskCloseExitAnimation = 0;
+ public static final int taskOpenEnterAnimation = 0;
+ public static final int taskOpenExitAnimation = 0;
+ public static final int taskToBackEnterAnimation = 0;
+ public static final int taskToBackExitAnimation = 0;
+ public static final int taskToFrontEnterAnimation = 0;
+ public static final int taskToFrontExitAnimation = 0;
+ public static final int tension = 0;
+ public static final int testOnly = 0;
+ public static final int text = 0;
+ public static final int textAlignment = 0;
+ public static final int textAllCaps = 0;
+ public static final int textAppearance = 0;
+ public static final int textAppearanceButton = 0;
+ public static final int textAppearanceInverse = 0;
+ public static final int textAppearanceLarge = 0;
+ public static final int textAppearanceLargeInverse = 0;
+ public static final int textAppearanceLargePopupMenu = 0;
+ public static final int textAppearanceListItem = 0;
+ public static final int textAppearanceListItemSecondary = 0;
+ public static final int textAppearanceListItemSmall = 0;
+ public static final int textAppearanceMedium = 0;
+ public static final int textAppearanceMediumInverse = 0;
+ public static final int textAppearanceSearchResultSubtitle = 0;
+ public static final int textAppearanceSearchResultTitle = 0;
+ public static final int textAppearanceSmall = 0;
+ public static final int textAppearanceSmallInverse = 0;
+ public static final int textAppearanceSmallPopupMenu = 0;
+ public static final int textCheckMark = 0;
+ public static final int textCheckMarkInverse = 0;
+ public static final int textColor = 0;
+ public static final int textColorAlertDialogListItem = 0;
+ public static final int textColorHighlight = 0;
+ public static final int textColorHighlightInverse = 0;
+ public static final int textColorHint = 0;
+ public static final int textColorHintInverse = 0;
+ public static final int textColorLink = 0;
+ public static final int textColorLinkInverse = 0;
+ public static final int textColorPrimary = 0;
+ public static final int textColorPrimaryDisableOnly = 0;
+ public static final int textColorPrimaryInverse = 0;
+ public static final int textColorPrimaryInverseDisableOnly = 0;
+ public static final int textColorPrimaryInverseNoDisable = 0;
+ public static final int textColorPrimaryNoDisable = 0;
+ public static final int textColorSecondary = 0;
+ public static final int textColorSecondaryInverse = 0;
+ public static final int textColorSecondaryInverseNoDisable = 0;
+ public static final int textColorSecondaryNoDisable = 0;
+ public static final int textColorTertiary = 0;
+ public static final int textColorTertiaryInverse = 0;
+ public static final int textCursorDrawable = 0;
+ public static final int textDirection = 0;
+ public static final int textEditNoPasteWindowLayout = 0;
+ public static final int textEditPasteWindowLayout = 0;
+ public static final int textEditSideNoPasteWindowLayout = 0;
+ public static final int textEditSidePasteWindowLayout = 0;
+ public static final int textEditSuggestionItemLayout = 0;
+ public static final int textFilterEnabled = 0;
+ public static final int textIsSelectable = 0;
+ public static final int textOff = 0;
+ public static final int textOn = 0;
+ public static final int textScaleX = 0;
+ public static final int textSelectHandle = 0;
+ public static final int textSelectHandleLeft = 0;
+ public static final int textSelectHandleRight = 0;
+ public static final int textSelectHandleWindowStyle = 0;
+ public static final int textSize = 0;
+ public static final int textStyle = 0;
+ public static final int textSuggestionsWindowStyle = 0;
+ public static final int textViewStyle = 0;
+ public static final int theme = 0;
+ public static final int thickness = 0;
+ public static final int thicknessRatio = 0;
+ public static final int thumb = 0;
+ public static final int thumbOffset = 0;
+ public static final int thumbTextPadding = 0;
+ public static final int thumbTint = 0;
+ public static final int thumbTintMode = 0;
+ public static final int thumbnail = 0;
+ public static final int tileMode = 0;
+ public static final int tileModeX = 0;
+ public static final int tileModeY = 0;
+ public static final int timePickerDialogTheme = 0;
+ public static final int timePickerMode = 0;
+ public static final int timePickerStyle = 0;
+ public static final int timeZone = 0;
+ public static final int tint = 0;
+ public static final int tintMode = 0;
+ public static final int title = 0;
+ public static final int titleCondensed = 0;
+ public static final int titleTextAppearance = 0;
+ public static final int titleTextStyle = 0;
+ public static final int toAlpha = 0;
+ public static final int toDegrees = 0;
+ public static final int toId = 0;
+ public static final int toScene = 0;
+ public static final int toXDelta = 0;
+ public static final int toXScale = 0;
+ public static final int toYDelta = 0;
+ public static final int toYScale = 0;
+ public static final int toolbarStyle = 0;
+ public static final int top = 0;
+ public static final int topBright = 0;
+ public static final int topDark = 0;
+ public static final int topLeftRadius = 0;
+ public static final int topOffset = 0;
+ public static final int topRightRadius = 0;
+ public static final int touchscreenBlocksFocus = 0;
+ public static final int track = 0;
+ public static final int transcriptMode = 0;
+ public static final int transformPivotX = 0;
+ public static final int transformPivotY = 0;
+ public static final int transition = 0;
+ public static final int transitionGroup = 0;
+ public static final int transitionName = 0;
+ public static final int transitionOrdering = 0;
+ public static final int transitionVisibilityMode = 0;
+ public static final int translateX = 0;
+ public static final int translateY = 0;
+ public static final int translationX = 0;
+ public static final int translationY = 0;
+ public static final int translationZ = 0;
+ public static final int trimPathEnd = 0;
+ public static final int trimPathOffset = 0;
+ public static final int trimPathStart = 0;
+ public static final int type = 0;
+ public static final int typeface = 0;
+ public static final int uiOptions = 0;
+ public static final int uncertainGestureColor = 0;
+ public static final int unfocusedMonthDateColor = 0;
+ public static final int unselectedAlpha = 0;
+ public static final int updatePeriodMillis = 0;
+ public static final int useDefaultMargins = 0;
+ public static final int useIntrinsicSizeAsMinimum = 0;
+ public static final int useLevel = 0;
+ public static final int userVisible = 0;
+ public static final int value = 0;
+ public static final int valueFrom = 0;
+ public static final int valueTo = 0;
+ public static final int valueType = 0;
+ public static final int variablePadding = 0;
+ public static final int vendor = 0;
+ public static final int versionCode = 0;
+ public static final int versionName = 0;
+ public static final int verticalCorrection = 0;
+ public static final int verticalDivider = 0;
+ public static final int verticalGap = 0;
+ public static final int verticalScrollbarPosition = 0;
+ public static final int verticalSpacing = 0;
+ public static final int viewportHeight = 0;
+ public static final int viewportWidth = 0;
+ public static final int visibility = 0;
+ public static final int visible = 0;
+ public static final int vmSafeMode = 0;
+ public static final int voiceIcon = 0;
+ public static final int voiceLanguage = 0;
+ public static final int voiceLanguageModel = 0;
+ public static final int voiceMaxResults = 0;
+ public static final int voicePromptText = 0;
+ public static final int voiceSearchMode = 0;
+ public static final int wallpaperCloseEnterAnimation = 0;
+ public static final int wallpaperCloseExitAnimation = 0;
+ public static final int wallpaperIntraCloseEnterAnimation = 0;
+ public static final int wallpaperIntraCloseExitAnimation = 0;
+ public static final int wallpaperIntraOpenEnterAnimation = 0;
+ public static final int wallpaperIntraOpenExitAnimation = 0;
+ public static final int wallpaperOpenEnterAnimation = 0;
+ public static final int wallpaperOpenExitAnimation = 0;
+ public static final int webTextViewStyle = 0;
+ public static final int webViewStyle = 0;
+ public static final int weekDayTextAppearance = 0;
+ public static final int weekNumberColor = 0;
+ public static final int weekSeparatorLineColor = 0;
+ public static final int weightSum = 0;
+ public static final int widgetCategory = 0;
+ public static final int widgetLayout = 0;
+ public static final int width = 0;
+ public static final int windowActionBar = 0;
+ public static final int windowActionBarOverlay = 0;
+ public static final int windowActionModeOverlay = 0;
+ public static final int windowActivityTransitions = 0;
+ public static final int windowAllowEnterTransitionOverlap = 0;
+ public static final int windowAllowReturnTransitionOverlap = 0;
+ public static final int windowAnimationStyle = 0;
+ public static final int windowBackground = 0;
+ public static final int windowClipToOutline = 0;
+ public static final int windowCloseOnTouchOutside = 0;
+ public static final int windowContentOverlay = 0;
+ public static final int windowContentTransitionManager = 0;
+ public static final int windowContentTransitions = 0;
+ public static final int windowDisablePreview = 0;
+ public static final int windowDrawsSystemBarBackgrounds = 0;
+ public static final int windowElevation = 0;
+ public static final int windowEnableSplitTouch = 0;
+ public static final int windowEnterAnimation = 0;
+ public static final int windowEnterTransition = 0;
+ public static final int windowExitAnimation = 0;
+ public static final int windowExitTransition = 0;
+ public static final int windowFrame = 0;
+ public static final int windowFullscreen = 0;
+ public static final int windowHideAnimation = 0;
+ public static final int windowIsFloating = 0;
+ public static final int windowIsTranslucent = 0;
+ public static final int windowMinWidthMajor = 0;
+ public static final int windowMinWidthMinor = 0;
+ public static final int windowNoDisplay = 0;
+ public static final int windowNoTitle = 0;
+ public static final int windowOverscan = 0;
+ public static final int windowReenterTransition = 0;
+ public static final int windowReturnTransition = 0;
+ public static final int windowSharedElementEnterTransition = 0;
+ public static final int windowSharedElementExitTransition = 0;
+ public static final int windowSharedElementReenterTransition = 0;
+ public static final int windowSharedElementReturnTransition = 0;
+ public static final int windowSharedElementsUseOverlay = 0;
+ public static final int windowShowAnimation = 0;
+ public static final int windowShowWallpaper = 0;
+ public static final int windowSoftInputMode = 0;
+ public static final int windowSwipeToDismiss = 0;
+ public static final int windowTitleBackgroundStyle = 0;
+ public static final int windowTitleSize = 0;
+ public static final int windowTitleStyle = 0;
+ public static final int windowTransitionBackgroundFadeDuration = 0;
+ public static final int windowTranslucentNavigation = 0;
+ public static final int windowTranslucentStatus = 0;
+ public static final int writePermission = 0;
+ public static final int x = 0;
+ public static final int xlargeScreens = 0;
+ public static final int y = 0;
+ public static final int yearListItemTextAppearance = 0;
+ public static final int yearListSelectorColor = 0;
+ public static final int yesNoPreferenceStyle = 0;
+ public static final int zAdjustment = 0;
+}
diff --git a/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java b/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
index fe00fa2..f8f3c93 100644
--- a/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
+++ b/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
@@ -156,6 +156,26 @@
}
}
+ public void timeGetInstanceField(int reps) throws Exception {
+ for (int rep = 0; rep < reps; ++rep) {
+ // The field here (and in timeGetStaticField) were chosen to be
+ // ~75% down the bottom of the alphabetically sorted field list.
+ // It's hard to construct a "fair" test case without resorting to
+ // a class whose field names are created algorithmically.
+ //
+ // TODO: Write a test script that generates both the classes we're
+ // reflecting on and the test case for each of its fields.
+ R.class.getField("mtextAppearanceLargePopupMenu");
+ }
+ }
+
+ public void timeGetStaticField(int reps) throws Exception {
+ for (int rep = 0; rep < reps; ++rep) {
+ R.class.getField("weekNumberColor");
+ }
+ }
+
+
public static class C {
public static int sf = 0;
public int f = 0;
diff --git a/expectations/knownfailures.txt b/expectations/knownfailures.txt
index 7f31c73..c5524b6 100644
--- a/expectations/knownfailures.txt
+++ b/expectations/knownfailures.txt
@@ -1464,6 +1464,7 @@
"com.squareup.okhttp.internal.spdy.SpdyConnectionTest",
"com.squareup.okhttp.internal.http.HttpOverHttp20Draft09Test",
"com.squareup.okhttp.internal.http.HttpOverSpdy3Test",
+ "com.squareup.okhttp.internal.http.ResponseCacheAdapterTest",
"com.squareup.okhttp.internal.http.URLConnectionTest#npnSetsProtocolHeader_SPDY_3",
"com.squareup.okhttp.internal.http.URLConnectionTest#npnSetsProtocolHeader_HTTP_2",
"com.squareup.okhttp.internal.http.URLConnectionTest#zeroLengthPost_SPDY_3",
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarFileTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarFileTest.java
index d5d8191..0bc8920 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarFileTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarFileTest.java
@@ -24,12 +24,27 @@
import java.io.InputStream;
import java.net.URL;
import java.security.CodeSigner;
+import java.security.InvalidKeyException;
+import java.security.InvalidParameterException;
import java.security.Permission;
+import java.security.PrivateKey;
+import java.security.Provider;
+import java.security.PublicKey;
+import java.security.Security;
+import java.security.SignatureException;
+import java.security.SignatureSpi;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Enumeration;
+import java.util.List;
import java.util.Vector;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.jar.Attributes;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -89,6 +104,27 @@
private final String emptyEntryJar = "EmptyEntries_signed.jar";
+ /*
+ * /usr/bin/openssl genrsa 2048 > root1.pem
+ * /usr/bin/openssl req -new -key root1.pem -out root1.csr -subj '/CN=root1'
+ * /usr/bin/openssl x509 -req -days 3650 -in root1.csr -signkey root1.pem -out root1.crt
+ * /usr/bin/openssl genrsa 2048 > root2.pem
+ * /usr/bin/openssl req -new -key root2.pem -out root2.csr -subj '/CN=root2'
+ * echo 4000 > root1.srl
+ * echo 8000 > root2.srl
+ * /usr/bin/openssl x509 -req -days 3650 -in root2.csr -CA root1.crt -CAkey root1.pem -out root2.crt
+ * /usr/bin/openssl x509 -req -days 3650 -in root1.csr -CA root2.crt -CAkey root2.pem -out root1.crt
+ * /usr/bin/openssl genrsa 2048 > signer.pem
+ * /usr/bin/openssl req -new -key signer.pem -out signer.csr -subj '/CN=signer'
+ * /usr/bin/openssl x509 -req -days 3650 -in signer.csr -CA root1.crt -CAkey root1.pem -out signer.crt
+ * /usr/bin/openssl pkcs12 -inkey signer.pem -in signer.crt -export -out signer.p12 -name signer -passout pass:certloop
+ * keytool -importkeystore -srckeystore signer.p12 -srcstoretype PKCS12 -destkeystore signer.jks -srcstorepass certloop -deststorepass certloop
+ * cat signer.crt root1.crt root2.crt > chain.crt
+ * zip -d hyts_certLoop.jar 'META-INF/*'
+ * jarsigner -keystore signer.jks -certchain chain.crt -storepass certloop hyts_certLoop.jar signer
+ */
+ private final String certLoopJar = "hyts_certLoop.jar";
+
private final String emptyEntry1 = "subfolder/internalSubset01.js";
private final String emptyEntry2 = "svgtest.js";
@@ -608,6 +644,9 @@
// JAR with a signature that has PKCS#7 Authenticated Attributes
checkSignedJar(authAttrsJar);
+
+ // JAR with certificates that loop
+ checkSignedJar(certLoopJar, 3);
}
/**
@@ -620,29 +659,52 @@
checkSignedJar(jarName9);
}
+ /**
+ * Checks that a JAR is signed correctly with a signature length of 1.
+ */
private void checkSignedJar(String jarName) throws Exception {
+ checkSignedJar(jarName, 1);
+ }
+
+ /**
+ * Checks that a JAR is signed correctly with a signature length of sigLength.
+ */
+ private void checkSignedJar(String jarName, final int sigLength) throws Exception {
Support_Resources.copyFile(resources, null, jarName);
- File file = new File(resources, jarName);
- boolean foundCerts = false;
+ final File file = new File(resources, jarName);
- JarFile jarFile = new JarFile(file, true);
- try {
-
- Enumeration<JarEntry> e = jarFile.entries();
- while (e.hasMoreElements()) {
- JarEntry entry = e.nextElement();
- InputStream is = jarFile.getInputStream(entry);
- is.skip(100000);
- is.close();
- Certificate[] certs = entry.getCertificates();
- if (certs != null && certs.length > 0) {
- foundCerts = true;
- break;
+ ExecutorService executor = Executors.newSingleThreadExecutor();
+ Future<Boolean> future = executor.submit(new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ JarFile jarFile = new JarFile(file, true);
+ try {
+ Enumeration<JarEntry> e = jarFile.entries();
+ while (e.hasMoreElements()) {
+ JarEntry entry = e.nextElement();
+ InputStream is = jarFile.getInputStream(entry);
+ is.skip(100000);
+ is.close();
+ Certificate[] certs = entry.getCertificates();
+ if (certs != null && certs.length > 0) {
+ assertEquals(sigLength, certs.length);
+ return true;
+ }
+ }
+ return false;
+ } finally {
+ jarFile.close();
}
}
- } finally {
- jarFile.close();
+ });
+ executor.shutdown();
+ final boolean foundCerts;
+ try {
+ foundCerts = future.get(10, TimeUnit.SECONDS);
+ } catch (TimeoutException e) {
+ fail("Could not finish building chain; possibly confused by loops");
+ return; // Not actually reached.
}
assertTrue(
@@ -1014,4 +1076,73 @@
res = jarFile.getInputStream(zipEntry).read();
assertEquals("Wrong length of empty jar entry", -1, res);
}
+
+ public void testJarFile_BadSignatureProvider_Success() throws Exception {
+ Security.insertProviderAt(new JarFileBadProvider(), 1);
+ try {
+ // Needs a JAR with "RSA" as digest encryption algorithm
+ checkSignedJar(jarName6);
+ } finally {
+ Security.removeProvider(JarFileBadProvider.NAME);
+ }
+ }
+
+ public static class JarFileBadProvider extends Provider {
+ public static final String NAME = "JarFileBadProvider";
+
+ public JarFileBadProvider() {
+ super(NAME, 1.0, "Bad provider for JarFileTest");
+
+ put("Signature.RSA", NotReallyASignature.class.getName());
+ }
+
+ /**
+ * This should never be instantiated, so everything throws an exception.
+ */
+ public static class NotReallyASignature extends SignatureSpi {
+ @Override
+ protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
+ fail("Should not call this provider");
+ }
+
+ @Override
+ protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
+ fail("Should not call this provider");
+ }
+
+ @Override
+ protected void engineUpdate(byte b) throws SignatureException {
+ fail("Should not call this provider");
+ }
+
+ @Override
+ protected void engineUpdate(byte[] b, int off, int len) throws SignatureException {
+ fail("Should not call this provider");
+ }
+
+ @Override
+ protected byte[] engineSign() throws SignatureException {
+ fail("Should not call this provider");
+ return null;
+ }
+
+ @Override
+ protected boolean engineVerify(byte[] sigBytes) throws SignatureException {
+ fail("Should not call this provider");
+ return false;
+ }
+
+ @Override
+ protected void engineSetParameter(String param, Object value)
+ throws InvalidParameterException {
+ fail("Should not call this provider");
+ }
+
+ @Override
+ protected Object engineGetParameter(String param) throws InvalidParameterException {
+ fail("Should not call this provider");
+ return null;
+ }
+ }
+ }
}
diff --git a/libart/src/main/java/java/lang/Class.java b/libart/src/main/java/java/lang/Class.java
index c66b01a..3ac359b 100644
--- a/libart/src/main/java/java/lang/Class.java
+++ b/libart/src/main/java/java/lang/Class.java
@@ -51,6 +51,7 @@
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Arrays;
@@ -166,9 +167,6 @@
*/
private transient Object[] ifTable;
- /** Interface method table (imt), for quick "invoke-interface". */
- private transient ArtMethod[] imTable;
-
/** Lazily computed name of this class; always prefer calling getName(). */
private transient String name;
@@ -764,7 +762,7 @@
int initial_size = virtualMethods == null ? 0 : virtualMethods.length;
initial_size += directMethods == null ? 0 : directMethods.length;
ArrayList<Method> methods = new ArrayList<Method>(initial_size);
- getDeclaredMethods(false, methods);
+ getDeclaredMethodsUnchecked(false, methods);
Method[] result = methods.toArray(new Method[methods.size()]);
for (Method m : result) {
// Throw NoClassDefFoundError if types cannot be resolved.
@@ -776,10 +774,14 @@
}
/**
- * Returns the list of methods without performing any security checks
- * first. If no methods exist, an empty array is returned.
+ * Populates a list of methods without performing any security or type
+ * resolution checks first. If no methods exist, the list is not modified.
+ *
+ * @param publicOnly Whether to return only public methods.
+ * @param methods A list to populate with declared methods.
+ * @hide
*/
- private void getDeclaredMethods(boolean publicOnly, List<Method> methods) {
+ public void getDeclaredMethodsUnchecked(boolean publicOnly, List<Method> methods) {
if (virtualMethods != null) {
for (ArtMethod m : virtualMethods) {
int modifiers = m.getAccessFlags();
@@ -832,11 +834,11 @@
* superclasses, and all implemented interfaces, including overridden methods.
*/
private void getPublicMethodsInternal(List<Method> result) {
- getDeclaredMethods(true, result);
+ getDeclaredMethodsUnchecked(true, result);
if (!isInterface()) {
// Search superclasses, for interfaces don't search java.lang.Object.
for (Class<?> c = superClass; c != null; c = c.superClass) {
- c.getDeclaredMethods(true, result);
+ c.getDeclaredMethodsUnchecked(true, result);
}
}
// Search iftable which has a flattened and uniqued list of interfaces.
@@ -844,7 +846,7 @@
if (iftable != null) {
for (int i = 0; i < iftable.length; i += 2) {
Class<?> ifc = (Class<?>) iftable[i];
- ifc.getDeclaredMethods(true, result);
+ ifc.getDeclaredMethodsUnchecked(true, result);
}
}
}
@@ -902,7 +904,7 @@
int initial_size = sFields == null ? 0 : sFields.length;
initial_size += iFields == null ? 0 : iFields.length;
ArrayList<Field> fields = new ArrayList(initial_size);
- getDeclaredFields(false, fields);
+ getDeclaredFieldsUnchecked(false, fields);
Field[] result = fields.toArray(new Field[fields.size()]);
for (Field f : result) {
f.getType(); // Throw NoClassDefFoundError if type cannot be resolved.
@@ -910,7 +912,15 @@
return result;
}
- private void getDeclaredFields(boolean publicOnly, List<Field> fields) {
+ /**
+ * Populates a list of fields without performing any security or type
+ * resolution checks first. If no fields exist, the list is not modified.
+ *
+ * @param publicOnly Whether to return only public fields.
+ * @param fields A list to populate with declared fields.
+ * @hide
+ */
+ public void getDeclaredFieldsUnchecked(boolean publicOnly, List<Field> fields) {
if (iFields != null) {
for (ArtField f : iFields) {
if (!publicOnly || Modifier.isPublic(f.getAccessFlags())) {
@@ -932,20 +942,42 @@
* may return a non-public member.
*/
private Field getDeclaredFieldInternal(String name) {
+
if (iFields != null) {
- for (ArtField f : iFields) {
- if (f.getName().equals(name)) {
- return new Field(f);
- }
+ final ArtField matched = findByName(name, iFields);
+ if (matched != null) {
+ return new Field(matched);
}
}
if (sFields != null) {
- for (ArtField f : sFields) {
- if (f.getName().equals(name)) {
- return new Field(f);
- }
+ final ArtField matched = findByName(name, sFields);
+ if (matched != null) {
+ return new Field(matched);
}
}
+
+ return null;
+ }
+
+ /**
+ * Performs a binary search through {@code fields} for a field whose name
+ * is {@code name}. Returns {@code null} if no matching field exists.
+ */
+ private static ArtField findByName(String name, ArtField[] fields) {
+ int low = 0, high = fields.length - 1;
+ while (low <= high) {
+ final int mid = (low + high) >>> 1;
+ final ArtField f = fields[mid];
+ final int result = f.getName().compareTo(name);
+ if (result < 0) {
+ low = mid + 1;
+ } else if (result == 0) {
+ return f;
+ } else {
+ high = mid - 1;
+ }
+ }
+
return null;
}
@@ -1103,7 +1135,7 @@
private void getPublicFieldsRecursive(List<Field> result) {
// search superclasses
for (Class<?> c = this; c != null; c = c.superClass) {
- c.getDeclaredFields(true, result);
+ c.getDeclaredFieldsUnchecked(true, result);
}
// search iftable which has a flattened and uniqued list of interfaces
@@ -1111,7 +1143,7 @@
if (iftable != null) {
for (int i = 0; i < iftable.length; i += 2) {
Class<?> ifc = (Class<?>) iftable[i];
- ifc.getDeclaredFields(true, result);
+ ifc.getDeclaredFieldsUnchecked(true, result);
}
}
}
diff --git a/libart/src/main/java/java/lang/reflect/ArtMethod.java b/libart/src/main/java/java/lang/reflect/ArtMethod.java
index 6d21f59..07cc30c 100644
--- a/libart/src/main/java/java/lang/reflect/ArtMethod.java
+++ b/libart/src/main/java/java/lang/reflect/ArtMethod.java
@@ -56,36 +56,6 @@
/** Short-cut to declaringClass.dexCache.strings */
private String[] dexCacheStrings;
- /**
- * Method dispatch from the interpreter invokes this pointer which may cause a bridge into
- * compiled code.
- */
- private long entryPointFromInterpreter;
-
- /**
- * Pointer to JNI function registered to this method, or a function to resolve the JNI function.
- */
- private long entryPointFromJni;
-
- /**
- * Method dispatch from portable compiled code invokes this pointer which may cause bridging
- * into quick compiled code or the interpreter.
- * Uncomment to enable.
- */
- // private long entryPointFromPortableCompiledCode;
-
- /**
- * Method dispatch from quick compiled code invokes this pointer which may cause bridging
- * into portable compiled code or the interpreter.
- */
- private long entryPointFromQuickCompiledCode;
-
- /**
- * Pointer to a data structure created by the compiler and used by the garbage collector to
- * determine which registers hold live references to objects within the heap.
- */
- private long gcMap;
-
/** Bits encoding access (e.g. public, private) as well as other runtime specific flags */
private int accessFlags;
diff --git a/luni/src/main/java/java/lang/System.java b/luni/src/main/java/java/lang/System.java
index 68af967..fa90bbb 100644
--- a/luni/src/main/java/java/lang/System.java
+++ b/luni/src/main/java/java/lang/System.java
@@ -895,7 +895,7 @@
/**
* Sets the value of a particular system property. Most system properties
- * are read only and cannot be cleared or modified. See {@link #setProperty} for a
+ * are read only and cannot be cleared or modified. See {@link #getProperty} for a
* list of such properties.
*
* @return the old value of the property or {@code null} if the property
@@ -908,7 +908,7 @@
/**
* Removes a specific system property. Most system properties
- * are read only and cannot be cleared or modified. See {@link #setProperty} for a
+ * are read only and cannot be cleared or modified. See {@link #getProperty} for a
* list of such properties.
*
* @return the property value or {@code null} if the property didn't exist.
@@ -1070,7 +1070,7 @@
/**
* Attempts to set all system properties. Copies all properties from
* {@code p} and discards system properties that are read only and cannot
- * be modified. See {@link #setProperty} for a list of such properties.
+ * be modified. See {@link #getProperty} for a list of such properties.
*/
public static void setProperties(Properties p) {
PropertiesWithNonOverrideableDefaults userProperties =
diff --git a/luni/src/main/java/java/net/URI.java b/luni/src/main/java/java/net/URI.java
index f206473..60bb5db 100644
--- a/luni/src/main/java/java/net/URI.java
+++ b/luni/src/main/java/java/net/URI.java
@@ -571,7 +571,10 @@
private boolean isValidDomainName(String host) {
try {
- UriCodec.validateSimple(host, "-.");
+ // The RFCs don't permit underscores in hostnames, but URI has to because
+ // a certain large website doesn't seem to care about standards and specs.
+ // See bugs 18023709, 17579865 and 18016625.
+ UriCodec.validateSimple(host, "_-.");
} catch (URISyntaxException e) {
return false;
}
diff --git a/luni/src/main/java/java/text/DateFormat.java b/luni/src/main/java/java/text/DateFormat.java
index 3055843..ebdf73a 100644
--- a/luni/src/main/java/java/text/DateFormat.java
+++ b/luni/src/main/java/java/text/DateFormat.java
@@ -66,6 +66,13 @@
private static final long serialVersionUID = 7218322306649953788L;
/**
+ * A tri-state boolean. If we're running stand-alone this will be null.
+ * If we're running in an app, the frameworks will have told us the user preference.
+ * @hide
+ */
+ public static Boolean is24Hour;
+
+ /**
* The calendar that this {@code DateFormat} uses to format a number
* representing a date.
*/
@@ -466,6 +473,7 @@
* @hide for internal use only.
*/
public static final void set24HourTimePref(boolean is24Hour) {
+ DateFormat.is24Hour = is24Hour;
}
/**
diff --git a/luni/src/main/java/java/text/DecimalFormatSymbols.java b/luni/src/main/java/java/text/DecimalFormatSymbols.java
index fba2d6e..2f1d4f4 100644
--- a/luni/src/main/java/java/text/DecimalFormatSymbols.java
+++ b/luni/src/main/java/java/text/DecimalFormatSymbols.java
@@ -47,7 +47,7 @@
private char decimalSeparator;
private char groupingSeparator;
private char patternSeparator;
- private char percent;
+ private String percent;
private char perMill;
private char monetarySeparator;
private String minusSign;
@@ -189,7 +189,7 @@
NaN.equals(obj.NaN) &&
patternSeparator == obj.patternSeparator &&
perMill == obj.perMill &&
- percent == obj.percent &&
+ percent.equals(obj.percent) &&
zeroDigit == obj.zeroDigit;
}
@@ -306,6 +306,11 @@
return minusSign;
}
+ /** @hide */
+ public String getPercentString() {
+ return percent;
+ }
+
/**
* Returns the character which represents the decimal point in a monetary
* value.
@@ -341,7 +346,10 @@
* @return the percent character.
*/
public char getPercent() {
- return percent;
+ if (percent.length() == 1) {
+ return percent.charAt(0);
+ }
+ throw new UnsupportedOperationException("Percent spans multiple characters: " + percent);
}
/**
@@ -378,7 +386,7 @@
result = 31*result + decimalSeparator;
result = 31*result + groupingSeparator;
result = 31*result + patternSeparator;
- result = 31*result + percent;
+ result = 31*result + percent.hashCode();
result = 31*result + perMill;
result = 31*result + monetarySeparator;
result = 31*result + minusSign.hashCode();
@@ -406,9 +414,6 @@
if (currency == null) {
throw new NullPointerException("currency == null");
}
- if (currency == this.currency) {
- return;
- }
this.currency = currency;
intlCurrencySymbol = currency.getCurrencyCode();
currencySymbol = currency.getSymbol(locale);
@@ -544,7 +549,7 @@
* the percent character.
*/
public void setPercent(char value) {
- this.percent = value;
+ this.percent = String.valueOf(value);
}
/**
diff --git a/luni/src/main/java/java/util/Timer.java b/luni/src/main/java/java/util/Timer.java
index 7192f9b..6a3b305 100644
--- a/luni/src/main/java/java/util/Timer.java
+++ b/luni/src/main/java/java/util/Timer.java
@@ -25,7 +25,7 @@
* <p>Each timer has one thread on which tasks are executed sequentially. When
* this thread is busy running a task, runnable tasks may be subject to delays.
*
- * <p>One-shot are scheduled to run at an absolute time or after a relative
+ * <p>One-shot tasks are scheduled to run at an absolute time or after a relative
* delay.
*
* <p>Recurring tasks are scheduled with either a fixed period or a fixed rate:
diff --git a/luni/src/main/java/libcore/icu/LocaleData.java b/luni/src/main/java/libcore/icu/LocaleData.java
index 9e07244..cca38e1 100644
--- a/luni/src/main/java/libcore/icu/LocaleData.java
+++ b/luni/src/main/java/libcore/icu/LocaleData.java
@@ -87,6 +87,12 @@
// Used by android.text.format.DateFormat.getDateFormatStringForSetting.
public String shortDateFormat4;
+ // Used by DateFormat to implement 12- and 24-hour SHORT and MEDIUM.
+ public String timeFormat_hm;
+ public String timeFormat_Hm;
+ public String timeFormat_hms;
+ public String timeFormat_Hms;
+
// Used by android.text.format.DateFormat.getTimeFormat.
public String timeFormat12; // "hh:mm a"
public String timeFormat24; // "HH:mm"
@@ -96,7 +102,7 @@
public char decimalSeparator;
public char groupingSeparator;
public char patternSeparator;
- public char percent;
+ public String percent;
public char perMill;
public char monetarySeparator;
public String minusSign;
@@ -175,12 +181,22 @@
public String getTimeFormat(int style) {
switch (style) {
case DateFormat.SHORT:
- return shortTimeFormat;
+ if (DateFormat.is24Hour == null) {
+ return shortTimeFormat;
+ } else {
+ return DateFormat.is24Hour ? timeFormat_Hm : timeFormat_hm;
+ }
case DateFormat.MEDIUM:
- return mediumTimeFormat;
+ if (DateFormat.is24Hour == null) {
+ return mediumTimeFormat;
+ } else {
+ return DateFormat.is24Hour ? timeFormat_Hms : timeFormat_hms;
+ }
case DateFormat.LONG:
+ // CLDR doesn't really have anything we can use to obey the 12-/24-hour preference.
return longTimeFormat;
case DateFormat.FULL:
+ // CLDR doesn't really have anything we can use to obey the 12-/24-hour preference.
return fullTimeFormat;
}
throw new AssertionError();
@@ -192,9 +208,17 @@
throw new AssertionError("couldn't initialize LocaleData for locale " + locale);
}
- // Get the "h:mm a" and "HH:mm" 12- and 24-hour time format strings.
- localeData.timeFormat12 = ICU.getBestDateTimePattern("hm", locale);
- localeData.timeFormat24 = ICU.getBestDateTimePattern("Hm", locale);
+ // Get the SHORT and MEDIUM 12- and 24-hour time format strings.
+ localeData.timeFormat_hm = ICU.getBestDateTimePattern("hm", locale);
+ localeData.timeFormat_Hm = ICU.getBestDateTimePattern("Hm", locale);
+ localeData.timeFormat_hms = ICU.getBestDateTimePattern("hms", locale);
+ localeData.timeFormat_Hms = ICU.getBestDateTimePattern("Hms", locale);
+ // We could move callers over to the other fields, but these seem simpler and discourage
+ // people from shooting themselves in the foot by learning about patterns and skeletons.
+ // TODO: the right fix here is probably to move callers over to java.text.DateFormat,
+ // so nothing outside libcore references these any more.
+ localeData.timeFormat12 = localeData.timeFormat_hm;
+ localeData.timeFormat24 = localeData.timeFormat_Hm;
// Fix up a couple of patterns.
if (localeData.fullTimeFormat != null) {
diff --git a/luni/src/main/java/libcore/icu/NativeDecimalFormat.java b/luni/src/main/java/libcore/icu/NativeDecimalFormat.java
index fd179c1..cf11ac7 100644
--- a/luni/src/main/java/libcore/icu/NativeDecimalFormat.java
+++ b/luni/src/main/java/libcore/icu/NativeDecimalFormat.java
@@ -158,7 +158,7 @@
dfs.getGroupingSeparator(), dfs.getInfinity(),
dfs.getInternationalCurrencySymbol(), dfs.getMinusSignString(),
dfs.getMonetaryDecimalSeparator(), dfs.getNaN(), dfs.getPatternSeparator(),
- dfs.getPercent(), dfs.getPerMill(), dfs.getZeroDigit());
+ dfs.getPercentString(), dfs.getPerMill(), dfs.getZeroDigit());
this.lastPattern = pattern;
} catch (NullPointerException npe) {
throw npe;
@@ -269,7 +269,7 @@
dfs.getDigit(), dfs.getExponentSeparator(), dfs.getGroupingSeparator(),
dfs.getInfinity(), dfs.getInternationalCurrencySymbol(), dfs.getMinusSignString(),
dfs.getMonetaryDecimalSeparator(), dfs.getNaN(), dfs.getPatternSeparator(),
- dfs.getPercent(), dfs.getPerMill(), dfs.getZeroDigit());
+ dfs.getPercentString(), dfs.getPerMill(), dfs.getZeroDigit());
}
public void setDecimalFormatSymbols(final LocaleData localeData) {
@@ -626,13 +626,13 @@
private static native long open(String pattern, String currencySymbol,
char decimalSeparator, char digit, String exponentSeparator, char groupingSeparator,
String infinity, String internationalCurrencySymbol, String minusSign,
- char monetaryDecimalSeparator, String nan, char patternSeparator, char percent,
+ char monetaryDecimalSeparator, String nan, char patternSeparator, String percent,
char perMill, char zeroDigit);
private static native Number parse(long addr, String string, ParsePosition position, boolean parseBigDecimal);
private static native void setDecimalFormatSymbols(long addr, String currencySymbol,
char decimalSeparator, char digit, String exponentSeparator, char groupingSeparator,
String infinity, String internationalCurrencySymbol, String minusSign,
- char monetaryDecimalSeparator, String nan, char patternSeparator, char percent,
+ char monetaryDecimalSeparator, String nan, char patternSeparator, String percent,
char perMill, char zeroDigit);
private static native void setSymbol(long addr, int symbol, String str);
private static native void setAttribute(long addr, int symbol, int i);
diff --git a/luni/src/main/java/libcore/icu/NativePluralRules.java b/luni/src/main/java/libcore/icu/NativePluralRules.java
index dbcf089..f9fe74b 100644
--- a/luni/src/main/java/libcore/icu/NativePluralRules.java
+++ b/luni/src/main/java/libcore/icu/NativePluralRules.java
@@ -55,6 +55,10 @@
* to the first rule that matches the given value.
*/
public int quantityForInt(int value) {
+ // Pre-L compatibility. http://b/18429565.
+ if (value < 0) {
+ return OTHER;
+ }
return quantityForIntImpl(address, value);
}
diff --git a/luni/src/main/java/libcore/net/MimeUtils.java b/luni/src/main/java/libcore/net/MimeUtils.java
index a5a1469..125ea87 100644
--- a/luni/src/main/java/libcore/net/MimeUtils.java
+++ b/luni/src/main/java/libcore/net/MimeUtils.java
@@ -259,8 +259,9 @@
add("image/ico", "cur");
add("image/ico", "ico");
add("image/ief", "ief");
- add("image/jpeg", "jpeg");
+ // add ".jpg" first so it will be the default for guessExtensionFromMimeType
add("image/jpeg", "jpg");
+ add("image/jpeg", "jpeg");
add("image/jpeg", "jpe");
add("image/pcx", "pcx");
add("image/png", "png");
diff --git a/luni/src/main/java/libcore/util/ZoneInfoDB.java b/luni/src/main/java/libcore/util/ZoneInfoDB.java
index a9d06a4..906ec14 100644
--- a/luni/src/main/java/libcore/util/ZoneInfoDB.java
+++ b/luni/src/main/java/libcore/util/ZoneInfoDB.java
@@ -41,8 +41,7 @@
*/
public final class ZoneInfoDB {
private static final TzData DATA =
- new TzData(System.getenv("ANDROID_DATA") + "/misc/zoneinfo/tzdata",
- System.getenv("ANDROID_ROOT") + "/usr/share/zoneinfo/tzdata");
+ new TzData(System.getenv("ANDROID_ROOT") + "/usr/share/zoneinfo/tzdata");
public static class TzData {
/**
diff --git a/luni/src/main/java/org/apache/harmony/security/utils/JarUtils.java b/luni/src/main/java/org/apache/harmony/security/utils/JarUtils.java
index e7f3596..917a3a8 100644
--- a/luni/src/main/java/org/apache/harmony/security/utils/JarUtils.java
+++ b/luni/src/main/java/org/apache/harmony/security/utils/JarUtils.java
@@ -124,28 +124,12 @@
final String daOid = sigInfo.getDigestAlgorithm();
final String daName = sigInfo.getDigestAlgorithmName();
final String deaOid = sigInfo.getDigestEncryptionAlgorithm();
+ final String deaName = sigInfo.getDigestEncryptionAlgorithmName();
String alg = null;
Signature sig = null;
- if (deaOid != null) {
- alg = deaOid;
- try {
- sig = Signature.getInstance(alg);
- } catch (NoSuchAlgorithmException e) {
- }
-
- final String deaName = sigInfo.getDigestEncryptionAlgorithmName();
- if (sig == null && deaName != null) {
- alg = deaName;
- try {
- sig = Signature.getInstance(alg);
- } catch (NoSuchAlgorithmException e) {
- }
- }
- }
-
- if (sig == null && daOid != null && deaOid != null) {
+ if (daOid != null && deaOid != null) {
alg = daOid + "with" + deaOid;
try {
sig = Signature.getInstance(alg);
@@ -153,8 +137,7 @@
}
// Try to convert to names instead of OID.
- if (sig == null) {
- final String deaName = sigInfo.getDigestEncryptionAlgorithmName();
+ if (sig == null && daName != null && deaName != null) {
alg = daName + "with" + deaName;
try {
sig = Signature.getInstance(alg);
@@ -163,6 +146,22 @@
}
}
+ if (sig == null && deaOid != null) {
+ alg = deaOid;
+ try {
+ sig = Signature.getInstance(alg);
+ } catch (NoSuchAlgorithmException e) {
+ }
+
+ if (sig == null) {
+ alg = deaName;
+ try {
+ sig = Signature.getInstance(alg);
+ } catch (NoSuchAlgorithmException e) {
+ }
+ }
+ }
+
// We couldn't find a valid Signature type.
if (sig == null) {
return null;
@@ -250,6 +249,10 @@
}
chain.add(issuerCert);
count++;
+ /* Prevent growing infinitely if there is a loop */
+ if (count > candidates.length) {
+ break;
+ }
issuer = issuerCert.getIssuerDN();
if (issuerCert.getSubjectDN().equals(issuer)) {
break;
diff --git a/luni/src/main/java/org/apache/harmony/xml/parsers/DocumentBuilderImpl.java b/luni/src/main/java/org/apache/harmony/xml/parsers/DocumentBuilderImpl.java
index d1079c8..040a012 100644
--- a/luni/src/main/java/org/apache/harmony/xml/parsers/DocumentBuilderImpl.java
+++ b/luni/src/main/java/org/apache/harmony/xml/parsers/DocumentBuilderImpl.java
@@ -416,11 +416,13 @@
private String resolveCharacterReference(String value, int base) {
try {
- int ch = Integer.parseInt(value, base);
- if (ch < 0 || ch > Character.MAX_VALUE) {
- return null;
+ int codePoint = Integer.parseInt(value, base);
+ if (Character.isBmpCodePoint(codePoint)) {
+ return String.valueOf((char) codePoint);
+ } else {
+ char[] surrogatePair = Character.toChars(codePoint);
+ return new String(surrogatePair);
}
- return String.valueOf((char) ch);
} catch (NumberFormatException ex) {
return null;
}
diff --git a/luni/src/main/native/libcore_icu_ICU.cpp b/luni/src/main/native/libcore_icu_ICU.cpp
index 1528a2d..d27b11d 100644
--- a/luni/src/main/native/libcore_icu_ICU.cpp
+++ b/luni/src/main/native/libcore_icu_ICU.cpp
@@ -406,7 +406,7 @@
setCharField(env, obj, "decimalSeparator", dfs.getSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol));
setCharField(env, obj, "groupingSeparator", dfs.getSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol));
setCharField(env, obj, "patternSeparator", dfs.getSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol));
- setCharField(env, obj, "percent", dfs.getSymbol(DecimalFormatSymbols::kPercentSymbol));
+ setStringField(env, obj, "percent", dfs.getSymbol(DecimalFormatSymbols::kPercentSymbol));
setCharField(env, obj, "perMill", dfs.getSymbol(DecimalFormatSymbols::kPerMillSymbol));
setCharField(env, obj, "monetarySeparator", dfs.getSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol));
setStringField(env, obj, "minusSign", dfs.getSymbol(DecimalFormatSymbols:: kMinusSignSymbol));
diff --git a/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp b/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
index c0fd42b..8e440e9 100644
--- a/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
+++ b/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
@@ -52,13 +52,14 @@
jchar groupingSeparator0, jstring infinity0,
jstring internationalCurrencySymbol0, jstring minusSign0,
jchar monetaryDecimalSeparator, jstring nan0, jchar patternSeparator,
- jchar percent, jchar perMill, jchar zeroDigit) {
+ jstring percent0, jchar perMill, jchar zeroDigit) {
ScopedJavaUnicodeString currencySymbol(env, currencySymbol0);
ScopedJavaUnicodeString exponentSeparator(env, exponentSeparator0);
ScopedJavaUnicodeString infinity(env, infinity0);
ScopedJavaUnicodeString internationalCurrencySymbol(env, internationalCurrencySymbol0);
ScopedJavaUnicodeString nan(env, nan0);
ScopedJavaUnicodeString minusSign(env, minusSign0);
+ ScopedJavaUnicodeString percent(env, percent0);
UnicodeString groupingSeparator(groupingSeparator0);
DecimalFormatSymbols* result = new DecimalFormatSymbols;
@@ -74,7 +75,7 @@
result->setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, UnicodeString(monetaryDecimalSeparator));
result->setSymbol(DecimalFormatSymbols::kNaNSymbol, nan.unicodeString());
result->setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, UnicodeString(patternSeparator));
- result->setSymbol(DecimalFormatSymbols::kPercentSymbol, UnicodeString(percent));
+ result->setSymbol(DecimalFormatSymbols::kPercentSymbol, percent.unicodeString());
result->setSymbol(DecimalFormatSymbols::kPerMillSymbol, UnicodeString(perMill));
// java.text.DecimalFormatSymbols just uses a zero digit,
// but ICU >= 4.6 has a field for each decimal digit.
@@ -96,7 +97,7 @@
jchar groupingSeparator, jstring infinity,
jstring internationalCurrencySymbol, jstring minusSign,
jchar monetaryDecimalSeparator, jstring nan, jchar patternSeparator,
- jchar percent, jchar perMill, jchar zeroDigit) {
+ jstring percent, jchar perMill, jchar zeroDigit) {
DecimalFormatSymbols* symbols = makeDecimalFormatSymbols(env,
currencySymbol, decimalSeparator, digit, exponentSeparator, groupingSeparator,
infinity, internationalCurrencySymbol, minusSign,
@@ -110,7 +111,7 @@
jchar groupingSeparator, jstring infinity,
jstring internationalCurrencySymbol, jstring minusSign,
jchar monetaryDecimalSeparator, jstring nan, jchar patternSeparator,
- jchar percent, jchar perMill, jchar zeroDigit) {
+ jstring percent, jchar perMill, jchar zeroDigit) {
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
ScopedJavaUnicodeString pattern(env, pattern0);
@@ -368,10 +369,10 @@
NATIVE_METHOD(NativeDecimalFormat, formatDigitList, "(JLjava/lang/String;Llibcore/icu/NativeDecimalFormat$FieldPositionIterator;)[C"),
NATIVE_METHOD(NativeDecimalFormat, getAttribute, "(JI)I"),
NATIVE_METHOD(NativeDecimalFormat, getTextAttribute, "(JI)Ljava/lang/String;"),
- NATIVE_METHOD(NativeDecimalFormat, open, "(Ljava/lang/String;Ljava/lang/String;CCLjava/lang/String;CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;CLjava/lang/String;CCCC)J"),
+ NATIVE_METHOD(NativeDecimalFormat, open, "(Ljava/lang/String;Ljava/lang/String;CCLjava/lang/String;CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;CLjava/lang/String;CLjava/lang/String;CC)J"),
NATIVE_METHOD(NativeDecimalFormat, parse, "(JLjava/lang/String;Ljava/text/ParsePosition;Z)Ljava/lang/Number;"),
NATIVE_METHOD(NativeDecimalFormat, setAttribute, "(JII)V"),
- NATIVE_METHOD(NativeDecimalFormat, setDecimalFormatSymbols, "(JLjava/lang/String;CCLjava/lang/String;CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;CLjava/lang/String;CCCC)V"),
+ NATIVE_METHOD(NativeDecimalFormat, setDecimalFormatSymbols, "(JLjava/lang/String;CCLjava/lang/String;CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;CLjava/lang/String;CLjava/lang/String;CC)V"),
NATIVE_METHOD(NativeDecimalFormat, setRoundingMode, "(JID)V"),
NATIVE_METHOD(NativeDecimalFormat, setSymbol, "(JILjava/lang/String;)V"),
NATIVE_METHOD(NativeDecimalFormat, setTextAttribute, "(JILjava/lang/String;)V"),
diff --git a/luni/src/test/java/com/android/org/bouncycastle/jce/provider/CertBlacklistTest.java b/luni/src/test/java/com/android/org/bouncycastle/jce/provider/CertBlacklistTest.java
index 1475a63..8627225 100644
--- a/luni/src/test/java/com/android/org/bouncycastle/jce/provider/CertBlacklistTest.java
+++ b/luni/src/test/java/com/android/org/bouncycastle/jce/provider/CertBlacklistTest.java
@@ -151,7 +151,7 @@
private Set<String> getPubkeyBlacklist(String path) throws IOException {
// set our blacklist path
- CertBlacklist bl = new CertBlacklist(path, CertBlacklist.DEFAULT_SERIAL_BLACKLIST_PATH);
+ CertBlacklist bl = new CertBlacklist(path, "");
// call readPubkeyBlacklist
Set<byte[]> arr = bl.pubkeyBlacklist;
// convert the results to a hashset of strings
@@ -164,7 +164,7 @@
private Set<String> getSerialBlacklist(String path) throws IOException {
// set our blacklist path
- CertBlacklist bl = new CertBlacklist(CertBlacklist.DEFAULT_PUBKEY_BLACKLIST_PATH, path);
+ CertBlacklist bl = new CertBlacklist("", path);
// call readPubkeyBlacklist
Set<BigInteger> arr = bl.serialBlacklist;
// convert the results to a hashset of strings
@@ -249,8 +249,7 @@
// write that to the test blacklist
writeBlacklist(new HashSet<String>());
// set our blacklist path
- CertBlacklist bl = new CertBlacklist(tmpFile.getCanonicalPath(),
- CertBlacklist.DEFAULT_SERIAL_BLACKLIST_PATH);
+ CertBlacklist bl = new CertBlacklist(tmpFile.getCanonicalPath(), "");
// check to make sure it isn't blacklisted
assertEquals(bl.isPublicKeyBlackListed(pk), false);
}
@@ -265,8 +264,7 @@
testBlackList.add(hash);
writeBlacklist(testBlackList);
// set our blacklist path
- CertBlacklist bl = new CertBlacklist(tmpFile.getCanonicalPath(),
- CertBlacklist.DEFAULT_SERIAL_BLACKLIST_PATH);
+ CertBlacklist bl = new CertBlacklist(tmpFile.getCanonicalPath(), "");
// check to make sure it isn't blacklited
assertTrue(bl.isPublicKeyBlackListed(pk));
}
diff --git a/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java b/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
index bac8138..1c1296b 100644
--- a/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
+++ b/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
@@ -408,4 +408,16 @@
assertEquals("یکشنبه د ۱۹۸۰ د فبروري ۱۰", formatDateRange(new Locale("ps"), utc, thisYear, thisYear, flags));
assertEquals("วันอาทิตย์ 10 กุมภาพันธ์ 1980", formatDateRange(new Locale("th"), utc, thisYear, thisYear, flags));
}
+
+ // http://b/13234532
+ public void test13234532() throws Exception {
+ Locale l = Locale.US;
+ TimeZone utc = TimeZone.getTimeZone("UTC");
+
+ int flags = FORMAT_SHOW_TIME | FORMAT_ABBREV_ALL | FORMAT_12HOUR;
+
+ assertEquals("10 – 11 AM", formatDateRange(l, utc, 10*HOUR, 11*HOUR, flags));
+ assertEquals("11 AM – 1 PM", formatDateRange(l, utc, 11*HOUR, 13*HOUR, flags));
+ assertEquals("2 – 3 PM", formatDateRange(l, utc, 14*HOUR, 15*HOUR, flags));
+ }
}
diff --git a/luni/src/test/java/libcore/icu/NativePluralRulesTest.java b/luni/src/test/java/libcore/icu/NativePluralRulesTest.java
index 703a94a..76179b4 100644
--- a/luni/src/test/java/libcore/icu/NativePluralRulesTest.java
+++ b/luni/src/test/java/libcore/icu/NativePluralRulesTest.java
@@ -19,6 +19,24 @@
import java.util.Locale;
public class NativePluralRulesTest extends junit.framework.TestCase {
+ public void testNegatives() throws Exception {
+ // icu4c's behavior changed, but we prefer to preserve compatibility.
+ NativePluralRules en_US = NativePluralRules.forLocale(new Locale("en", "US"));
+ assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(2));
+ assertEquals(NativePluralRules.ONE, en_US.quantityForInt(1));
+ assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(0));
+ assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(-1));
+ assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(-2));
+
+ NativePluralRules ar = NativePluralRules.forLocale(new Locale("ar"));
+ assertEquals(NativePluralRules.ZERO, ar.quantityForInt(0));
+ assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-1)); // Not ONE.
+ assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-2)); // Not TWO.
+ assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-3)); // Not FEW.
+ assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-11)); // Not MANY.
+ assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-100));
+ }
+
public void testEnglish() throws Exception {
NativePluralRules npr = NativePluralRules.forLocale(new Locale("en", "US"));
assertEquals(NativePluralRules.OTHER, npr.quantityForInt(0));
diff --git a/luni/src/test/java/libcore/java/net/URITest.java b/luni/src/test/java/libcore/java/net/URITest.java
index 7f4c086..c87433a 100644
--- a/luni/src/test/java/libcore/java/net/URITest.java
+++ b/luni/src/test/java/libcore/java/net/URITest.java
@@ -702,11 +702,15 @@
}
// http://code.google.com/p/android/issues/detail?id=37577
+ // http://b/18023709
+ // http://b/17579865
+ // http://b/18016625
public void testUnderscore() throws Exception {
URI uri = new URI("http://a_b.c.d.net/");
assertEquals("a_b.c.d.net", uri.getAuthority());
- // The RFC's don't permit underscores in hostnames, and neither does URI (unlike URL).
- assertNull(uri.getHost());
+ // The RFC's don't permit underscores in hostnames, but URI has to because
+ // a certain large website doesn't seem to care about standards and specs.
+ assertEquals("a_b.c.d.net", uri.getHost());
}
// Adding a new test? Consider adding an equivalent test to URLTest.java
diff --git a/luni/src/test/java/libcore/java/net/URLConnectionTest.java b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
index 40c9f5e..a2fd6f4 100644
--- a/luni/src/test/java/libcore/java/net/URLConnectionTest.java
+++ b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
@@ -53,6 +53,7 @@
import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.zip.GZIPInputStream;
@@ -780,7 +781,9 @@
}
public void testDisconnectedConnection() throws IOException {
- server.enqueue(new MockResponse().setBody("ABCDEFGHIJKLMNOPQR"));
+ server.enqueue(new MockResponse()
+ .throttleBody(2, 100, TimeUnit.MILLISECONDS)
+ .setBody("ABCD"));
server.play();
HttpURLConnection connection = (HttpURLConnection) server.getUrl("/").openConnection();
@@ -788,6 +791,9 @@
assertEquals('A', (char) in.read());
connection.disconnect();
try {
+ // Reading 'B' may succeed if it's buffered.
+ in.read();
+ // But 'C' shouldn't be buffered (the response is throttled) and this should fail.
in.read();
fail("Expected a connection closed exception");
} catch (IOException expected) {
@@ -2211,8 +2217,6 @@
assertEquals("This required a 2nd handshake",
readAscii(connection.getInputStream(), Integer.MAX_VALUE));
- RecordedRequest first = server.takeRequest();
- assertEquals(0, first.getSequenceNumber());
RecordedRequest retry = server.takeRequest();
assertEquals(0, retry.getSequenceNumber());
assertEquals("SSLv3", retry.getSslProtocol());
diff --git a/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java b/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
index 619c38e..3e0aeba 100644
--- a/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
+++ b/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
@@ -21,6 +21,7 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.DecimalFormatSymbols;
+import java.util.Currency;
import java.util.Locale;
public class DecimalFormatSymbolsTest extends junit.framework.TestCase {
@@ -57,4 +58,32 @@
// The two objects should claim to be equal.
assertEquals(originalDfs, deserializedDfs);
}
+
+ // https://code.google.com/p/android/issues/detail?id=79925
+ public void testSetSameCurrency() throws Exception {
+ DecimalFormatSymbols dfs = new DecimalFormatSymbols(Locale.US);
+ dfs.setCurrency(Currency.getInstance("USD"));
+ assertEquals("$", dfs.getCurrencySymbol());
+ dfs.setCurrencySymbol("poop");
+ assertEquals("poop", dfs.getCurrencySymbol());
+ dfs.setCurrency(Currency.getInstance("USD"));
+ assertEquals("$", dfs.getCurrencySymbol());
+ }
+
+ public void testSetNulInternationalCurrencySymbol() throws Exception {
+ Currency usd = Currency.getInstance("USD");
+
+ DecimalFormatSymbols dfs = new DecimalFormatSymbols(Locale.US);
+ dfs.setCurrency(usd);
+ assertEquals(usd, dfs.getCurrency());
+ assertEquals("$", dfs.getCurrencySymbol());
+ assertEquals("USD", dfs.getInternationalCurrencySymbol());
+
+ // Setting the international currency symbol to null sets the currency to null too,
+ // but not the currency symbol.
+ dfs.setInternationalCurrencySymbol(null);
+ assertEquals(null, dfs.getCurrency());
+ assertEquals("$", dfs.getCurrencySymbol());
+ assertEquals(null, dfs.getInternationalCurrencySymbol());
+ }
}
diff --git a/luni/src/test/java/libcore/java/text/NumberFormatTest.java b/luni/src/test/java/libcore/java/text/NumberFormatTest.java
index 4ff063b..0678e96 100644
--- a/luni/src/test/java/libcore/java/text/NumberFormatTest.java
+++ b/luni/src/test/java/libcore/java/text/NumberFormatTest.java
@@ -22,6 +22,7 @@
import java.text.FieldPosition;
import java.text.NumberFormat;
import java.text.ParsePosition;
+import java.util.Currency;
import java.util.Locale;
public class NumberFormatTest extends junit.framework.TestCase {
@@ -80,6 +81,7 @@
// Formatting percentages is confusing but deliberate.
// Ensure we don't accidentally "fix" this.
+ // https://code.google.com/p/android/issues/detail?id=10333
public void test_10333() throws Exception {
NumberFormat nf = NumberFormat.getPercentInstance(Locale.US);
assertEquals("15%", nf.format(0.15));
@@ -91,6 +93,7 @@
}
}
+ // https://code.google.com/p/android/issues/detail?id=62269
public void test_62269() throws Exception {
NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
try {
@@ -126,4 +129,28 @@
fail();
} catch (NullPointerException expected) {}
}
+
+ // https://code.google.com/p/android/issues/detail?id=79925
+ public void test_setCurrency() throws Exception {
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
+ nf.setCurrency(Currency.getInstance("AMD"));
+ assertEquals("AMD50.00", nf.format(50.0));
+
+ DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) nf).getDecimalFormatSymbols();
+ decimalFormatSymbols.setCurrencySymbol("");
+ ((DecimalFormat) nf).setDecimalFormatSymbols(decimalFormatSymbols);
+ assertEquals("50.00", nf.format(50.0));
+
+ nf.setCurrency(Currency.getInstance("AMD"));
+ assertEquals("AMD50.00", nf.format(50.0));
+
+ nf.setCurrency(Currency.getInstance("AMD"));
+ assertEquals("AMD50.00", nf.format(50.0));
+
+ nf.setCurrency(Currency.getInstance("USD"));
+ assertEquals("$50.00", nf.format(50.0));
+
+ nf.setCurrency(Currency.getInstance("AMD"));
+ assertEquals("AMD50.00", nf.format(50.0));
+ }
}
diff --git a/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java b/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
index e73104d..d228dc8 100644
--- a/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
+++ b/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
@@ -378,4 +378,11 @@
fail();
} catch (NullPointerException expected) {}
}
+
+ // http://b/17431155
+ public void test_sl_dates() throws Exception {
+ DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, new Locale("sl"));
+ df.setTimeZone(TimeZone.getTimeZone("UTC"));
+ assertEquals("1. 1. 70", df.format(0L));
+ }
}
diff --git a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
index 4681877..ff055b2 100644
--- a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
+++ b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
@@ -1667,6 +1667,10 @@
server.startHandshake();
fail("Should result in inappropriate fallback");
} catch (SSLHandshakeException expected) {
+ Throwable cause = expected.getCause();
+ assertEquals(SSLProtocolException.class, cause.getClass());
+ assertTrue(cause.getMessage(),
+ cause.getMessage().contains("inappropriate fallback"));
}
return null;
}
@@ -1679,6 +1683,10 @@
client.startHandshake();
fail("Should receive TLS alert inappropriate fallback");
} catch (SSLHandshakeException expected) {
+ Throwable cause = expected.getCause();
+ assertEquals(SSLProtocolException.class, cause.getClass());
+ assertTrue(cause.getMessage(),
+ cause.getMessage().contains("inappropriate fallback"));
}
return null;
}
diff --git a/luni/src/test/java/libcore/net/MimeUtilsTest.java b/luni/src/test/java/libcore/net/MimeUtilsTest.java
index 36476e9..9bfb375 100644
--- a/luni/src/test/java/libcore/net/MimeUtilsTest.java
+++ b/luni/src/test/java/libcore/net/MimeUtilsTest.java
@@ -42,4 +42,8 @@
assertEquals("png", MimeUtils.guessExtensionFromMimeType("image/png"));
assertEquals("zip", MimeUtils.guessExtensionFromMimeType("application/zip"));
}
+
+ public void test_18390752() {
+ assertEquals("jpg", MimeUtils.guessExtensionFromMimeType("image/jpeg"));
+ }
}
diff --git a/luni/src/test/java/libcore/xml/KxmlSerializerTest.java b/luni/src/test/java/libcore/xml/KxmlSerializerTest.java
index 6a75a9b..5f68a99 100644
--- a/luni/src/test/java/libcore/xml/KxmlSerializerTest.java
+++ b/luni/src/test/java/libcore/xml/KxmlSerializerTest.java
@@ -22,7 +22,9 @@
import junit.framework.TestCase;
import org.kxml2.io.KXmlSerializer;
import org.w3c.dom.Document;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
import org.xmlpull.v1.XmlSerializer;
import static tests.support.Support_Xml.domOf;
@@ -87,12 +89,67 @@
return serializer;
}
+ public String fromCodePoint(int codePoint) {
+ if (codePoint > Character.MAX_VALUE) {
+ return new String(Character.toChars(codePoint));
+ }
+ return Character.toString((char) codePoint);
+ }
+
+ // http://b/17960630
+ public void testSpeakNoEvilMonkeys() throws Exception {
+ StringWriter stringWriter = new StringWriter();
+ XmlSerializer serializer = new KXmlSerializer();
+ serializer.setOutput(stringWriter);
+ serializer.startDocument("UTF-8", null);
+ serializer.startTag(NAMESPACE, "tag");
+ serializer.attribute(NAMESPACE, "attr", "a\ud83d\ude4ab");
+ serializer.text("c\ud83d\ude4ad");
+ serializer.cdsect("e\ud83d\ude4af");
+ serializer.endTag(NAMESPACE, "tag");
+ serializer.endDocument();
+ assertXmlEquals("<tag attr=\"a🙊b\">" +
+ "c🙊d" +
+ "<![CDATA[e]]>🙊<![CDATA[f]]>" +
+ "</tag>", stringWriter.toString());
+
+ // Check we can parse what we just output.
+ Document doc = domOf(stringWriter.toString());
+ Node root = doc.getDocumentElement();
+ assertEquals("a\ud83d\ude4ab", root.getAttributes().getNamedItem("attr").getNodeValue());
+ Text text = (Text) root.getFirstChild();
+ assertEquals("c\ud83d\ude4ade\ud83d\ude4af", text.getNodeValue());
+ }
+
+ public void testBadSurrogates() throws Exception {
+ StringWriter stringWriter = new StringWriter();
+ XmlSerializer serializer = new KXmlSerializer();
+ serializer.setOutput(stringWriter);
+ serializer.startDocument("UTF-8", null);
+ serializer.startTag(NAMESPACE, "tag");
+ try {
+ serializer.attribute(NAMESPACE, "attr", "a\ud83d\u0040b");
+ } catch (IllegalArgumentException expected) {
+ }
+ try {
+ serializer.text("c\ud83d\u0040d");
+ } catch (IllegalArgumentException expected) {
+ }
+ try {
+ serializer.cdsect("e\ud83d\u0040f");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
+
+ // Cover all the BMP code points plus a few that require us to use surrogates.
+ private static int MAX_TEST_CODE_POINT = 0x10008;
+
public void testInvalidCharactersInText() throws IOException {
XmlSerializer serializer = newSerializer();
serializer.startTag(NAMESPACE, "root");
- for (int ch = 0; ch <= 0xffff; ++ch) {
- final String s = Character.toString((char) ch);
- if (isValidXmlCodePoint(ch)) {
+ for (int c = 0; c <= MAX_TEST_CODE_POINT; ++c) {
+ final String s = fromCodePoint(c);
+ if (isValidXmlCodePoint(c)) {
serializer.text("a" + s + "b");
} else {
try {
@@ -108,9 +165,9 @@
public void testInvalidCharactersInAttributeValues() throws IOException {
XmlSerializer serializer = newSerializer();
serializer.startTag(NAMESPACE, "root");
- for (int ch = 0; ch <= 0xffff; ++ch) {
- final String s = Character.toString((char) ch);
- if (isValidXmlCodePoint(ch)) {
+ for (int c = 0; c <= MAX_TEST_CODE_POINT; ++c) {
+ final String s = fromCodePoint(c);
+ if (isValidXmlCodePoint(c)) {
serializer.attribute(NAMESPACE, "a", "a" + s + "b");
} else {
try {
@@ -126,9 +183,9 @@
public void testInvalidCharactersInCdataSections() throws IOException {
XmlSerializer serializer = newSerializer();
serializer.startTag(NAMESPACE, "root");
- for (int ch = 0; ch <= 0xffff; ++ch) {
- final String s = Character.toString((char) ch);
- if (isValidXmlCodePoint(ch)) {
+ for (int c = 0; c <= MAX_TEST_CODE_POINT; ++c) {
+ final String s = fromCodePoint(c);
+ if (isValidXmlCodePoint(c)) {
serializer.cdsect("a" + s + "b");
} else {
try {
diff --git a/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java b/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
index 5258fd1..abf06e0 100644
--- a/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
+++ b/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
@@ -834,8 +834,8 @@
}
@Override
- public SocketPolicy peekSocketPolicy() {
- return delegates.getFirst().peekSocketPolicy();
+ public MockResponse peek() {
+ return delegates.getFirst().peek();
}
}
@@ -888,8 +888,8 @@
}
@Override
- public SocketPolicy peekSocketPolicy() {
- return SocketPolicy.UPGRADE_TO_SSL_AT_END;
+ public MockResponse peek() {
+ return new MockResponse().setSocketPolicy(SocketPolicy.UPGRADE_TO_SSL_AT_END);
}
private void log(String msg) {
@@ -939,8 +939,8 @@
}
@Override
- public SocketPolicy peekSocketPolicy() {
- return SocketPolicy.DISCONNECT_AT_END;
+ public MockResponse peek() {
+ return new MockResponse().setSocketPolicy(SocketPolicy.DISCONNECT_AT_END);
}
private void log(String msg) {
diff --git a/support/src/test/java/libcore/java/security/TestKeyStore.java b/support/src/test/java/libcore/java/security/TestKeyStore.java
index 203c028..bd64360 100644
--- a/support/src/test/java/libcore/java/security/TestKeyStore.java
+++ b/support/src/test/java/libcore/java/security/TestKeyStore.java
@@ -47,6 +47,7 @@
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Security;
+import java.security.UnrecoverableEntryException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
@@ -260,6 +261,7 @@
private X500Principal subject;
private int keyUsage;
private boolean ca;
+ private PrivateKeyEntry privateEntry;
private PrivateKeyEntry signer;
private Certificate rootCa;
private final List<KeyPurposeId> extendedKeyUsages = new ArrayList<KeyPurposeId>();
@@ -314,6 +316,12 @@
return this;
}
+ /** a private key entry to use for the generation of the certificate */
+ public Builder privateEntry(PrivateKeyEntry privateEntry) {
+ this.privateEntry = privateEntry;
+ return this;
+ }
+
/** a private key entry to be used for signing, otherwise self-sign */
public Builder signer(PrivateKeyEntry signer) {
this.signer = signer;
@@ -368,21 +376,32 @@
}
}
+ /*
+ * This is not implemented for other key types because the logic
+ * would be long to write and it's not needed currently.
+ */
+ if (privateEntry != null
+ && (keyAlgorithms.length != 1 || !"RSA".equals(keyAlgorithms[0]))) {
+ throw new IllegalStateException(
+ "Only reusing an existing key is implemented for RSA");
+ }
+
KeyStore keyStore = createKeyStore();
for (String keyAlgorithm : keyAlgorithms) {
String publicAlias = aliasPrefix + "-public-" + keyAlgorithm;
String privateAlias = aliasPrefix + "-private-" + keyAlgorithm;
if ((keyAlgorithm.equals("EC_RSA") || keyAlgorithm.equals("DH_RSA"))
&& signer == null && rootCa == null) {
- createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias,
- privateKey(keyStore, keyPassword, "RSA", "RSA"));
+ createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias, null,
+ privateKey(keyStore, keyPassword, "RSA", "RSA"));
continue;
} else if (keyAlgorithm.equals("DH_DSA") && signer == null && rootCa == null) {
- createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias,
+ createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias, null,
privateKey(keyStore, keyPassword, "DSA", "DSA"));
continue;
}
- createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias, signer);
+ createKeys(keyStore, keyAlgorithm, publicAlias, privateAlias, privateEntry,
+ signer);
}
if (rootCa != null) {
keyStore.setCertificateEntry(aliasPrefix
@@ -416,6 +435,7 @@
String keyAlgorithm,
String publicAlias,
String privateAlias,
+ PrivateKeyEntry privateEntry,
PrivateKeyEntry signer) throws Exception {
PrivateKey caKey;
X509Certificate caCert;
@@ -430,42 +450,51 @@
caCertChain = (X509Certificate[])signer.getCertificateChain();
}
- PrivateKey privateKey;
+ final PrivateKey privateKey;
+ final PublicKey publicKey;
X509Certificate x509c;
if (publicAlias == null && privateAlias == null) {
// don't want anything apparently
privateKey = null;
+ publicKey = null;
x509c = null;
} else {
- // 1.) we make the keys
- int keySize;
- if (keyAlgorithm.equals("RSA")) {
- // 512 breaks SSL_RSA_EXPORT_* on RI and TLS_ECDHE_RSA_WITH_RC4_128_SHA for us
- keySize = 1024;
- } else if (keyAlgorithm.equals("DH_RSA")) {
- keySize = 512;
- keyAlgorithm = "DH";
- } else if (keyAlgorithm.equals("DSA")) {
- keySize = 512;
- } else if (keyAlgorithm.equals("DH_DSA")) {
- keySize = 512;
- keyAlgorithm = "DH";
- } else if (keyAlgorithm.equals("EC")) {
- keySize = 256;
- } else if (keyAlgorithm.equals("EC_RSA")) {
- keySize = 256;
- keyAlgorithm = "EC";
+ if (privateEntry == null) {
+ // 1a.) we make the keys
+ int keySize;
+ if (keyAlgorithm.equals("RSA")) {
+ // 512 breaks SSL_RSA_EXPORT_* on RI and
+ // TLS_ECDHE_RSA_WITH_RC4_128_SHA for us
+ keySize = 1024;
+ } else if (keyAlgorithm.equals("DH_RSA")) {
+ keySize = 512;
+ keyAlgorithm = "DH";
+ } else if (keyAlgorithm.equals("DSA")) {
+ keySize = 512;
+ } else if (keyAlgorithm.equals("DH_DSA")) {
+ keySize = 512;
+ keyAlgorithm = "DH";
+ } else if (keyAlgorithm.equals("EC")) {
+ keySize = 256;
+ } else if (keyAlgorithm.equals("EC_RSA")) {
+ keySize = 256;
+ keyAlgorithm = "EC";
+ } else {
+ throw new IllegalArgumentException("Unknown key algorithm " + keyAlgorithm);
+ }
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(keyAlgorithm);
+ kpg.initialize(keySize, new SecureRandom());
+
+ KeyPair kp = kpg.generateKeyPair();
+ privateKey = kp.getPrivate();
+ publicKey = kp.getPublic();
} else {
- throw new IllegalArgumentException("Unknown key algorithm " + keyAlgorithm);
+ // 1b.) we use the previous keys
+ privateKey = privateEntry.getPrivateKey();
+ publicKey = privateEntry.getCertificate().getPublicKey();
}
- KeyPairGenerator kpg = KeyPairGenerator.getInstance(keyAlgorithm);
- kpg.initialize(keySize, new SecureRandom());
-
- KeyPair kp = kpg.generateKeyPair();
- privateKey = kp.getPrivate();
- PublicKey publicKey = kp.getPublic();
-
// 2.) use keys to make certificate
X500Principal issuer = ((caCert != null)
? caCert.getSubjectX500Principal()
@@ -820,6 +849,24 @@
}
/**
+ * Return an {@code X509Certificate that matches the given {@code alias}.
+ */
+ public KeyStore.Entry getEntryByAlias(String alias) {
+ return entryByAlias(keyStore, alias);
+ }
+
+ /**
+ * Finds an entry in the keystore by the given alias.
+ */
+ public static KeyStore.Entry entryByAlias(KeyStore keyStore, String alias) {
+ try {
+ return keyStore.getEntry(alias, null);
+ } catch (NoSuchAlgorithmException | UnrecoverableEntryException | KeyStoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
* Create a client key store that only contains self-signed certificates but no private keys
*/
public static KeyStore createClient(KeyStore caKeyStore) {
diff --git a/support/src/test/java/tests/resources/hyts_certLoop.jar b/support/src/test/java/tests/resources/hyts_certLoop.jar
new file mode 100644
index 0000000..cb4ebe1
--- /dev/null
+++ b/support/src/test/java/tests/resources/hyts_certLoop.jar
Binary files differ
diff --git a/xml/src/main/java/org/kxml2/io/KXmlSerializer.java b/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
index 8fa2756..bfdeece 100644
--- a/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
+++ b/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
@@ -125,14 +125,18 @@
// otherwise generate.
// Note: tab, newline, and carriage return have already been
// handled above.
- boolean valid = (c >= 0x20 && c <= 0xd7ff) || (c >= 0xe000 && c <= 0xfffd);
- if (!valid) {
- reportInvalidCharacter(c);
- }
- if (unicode || c < 127) {
- writer.write(c);
+ boolean allowedInXml = (c >= 0x20 && c <= 0xd7ff) || (c >= 0xe000 && c <= 0xfffd);
+ if (allowedInXml) {
+ if (unicode || c < 127) {
+ writer.write(c);
+ } else {
+ writer.write("&#" + ((int) c) + ";");
+ }
+ } else if (Character.isHighSurrogate(c) && i < s.length() - 1) {
+ writeSurrogate(c, s.charAt(i + 1));
+ ++i;
} else {
- writer.write("&#" + ((int) c) + ";");
+ reportInvalidCharacter(c);
}
// END android-changed
}
@@ -141,7 +145,7 @@
// BEGIN android-added
private static void reportInvalidCharacter(char ch) {
- throw new IllegalArgumentException("Illegal character (" + Integer.toHexString((int) ch) + ")");
+ throw new IllegalArgumentException("Illegal character (U+" + Integer.toHexString((int) ch) + ")");
}
// END android-added
@@ -548,22 +552,41 @@
// BEGIN android-changed: ]]> is not allowed within a CDATA,
// so break and start a new one when necessary.
data = data.replace("]]>", "]]]]><![CDATA[>");
- char[] chars = data.toCharArray();
- // We also aren't allowed any invalid characters.
- for (char ch : chars) {
- boolean valid = (ch >= 0x20 && ch <= 0xd7ff) ||
+ writer.write("<![CDATA[");
+ for (int i = 0; i < data.length(); ++i) {
+ char ch = data.charAt(i);
+ boolean allowedInCdata = (ch >= 0x20 && ch <= 0xd7ff) ||
(ch == '\t' || ch == '\n' || ch == '\r') ||
(ch >= 0xe000 && ch <= 0xfffd);
- if (!valid) {
+ if (allowedInCdata) {
+ writer.write(ch);
+ } else if (Character.isHighSurrogate(ch) && i < data.length() - 1) {
+ // Character entities aren't valid in CDATA, so break out for this.
+ writer.write("]]>");
+ writeSurrogate(ch, data.charAt(++i));
+ writer.write("<![CDATA[");
+ } else {
reportInvalidCharacter(ch);
}
}
- writer.write("<![CDATA[");
- writer.write(chars, 0, chars.length);
writer.write("]]>");
// END android-changed
}
+ // BEGIN android-added
+ private void writeSurrogate(char high, char low) throws IOException {
+ if (!Character.isLowSurrogate(low)) {
+ throw new IllegalArgumentException("Bad surrogate pair (U+" + Integer.toHexString((int) high) +
+ " U+" + Integer.toHexString((int) low) + ")");
+ }
+ // Java-style surrogate pairs aren't allowed in XML. We could use the > 3-byte encodings, but that
+ // seems likely to upset anything expecting modified UTF-8 rather than "real" UTF-8. It seems more
+ // conservative in a Java environment to use an entity reference instead.
+ int codePoint = Character.toCodePoint(high, low);
+ writer.write("&#" + codePoint + ";");
+ }
+ // END android-added
+
public void comment(String comment) throws IOException {
check(false);
writer.write("<!--");