Add layout inspection annotations to AppCompat
Relnote: Improved layout inspector support
Test: ./gradlew :appcompat:appcompat:build
Bug: 181046781
Change-Id: I02d558e01c1e64335d190329c5a26372e17ef802
diff --git a/appcompat/appcompat/api/current.txt b/appcompat/appcompat/api/current.txt
index ad6a1ec..e1847bb 100644
--- a/appcompat/appcompat/api/current.txt
+++ b/appcompat/appcompat/api/current.txt
@@ -660,20 +660,20 @@
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public int getBaselineAlignedChildIndex();
- method public android.graphics.drawable.Drawable! getDividerDrawable();
- method public int getDividerPadding();
- method public int getGravity();
- method public int getOrientation();
- method public int getShowDividers();
- method public float getWeightSum();
- method public boolean isBaselineAligned();
- method public boolean isMeasureWithLargestChildEnabled();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAlignedChildIndex") public int getBaselineAlignedChildIndex();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:divider") public android.graphics.drawable.Drawable! getDividerDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:dividerPadding") public int getDividerPadding();
+ method @GravityInt @androidx.resourceinspection.annotation.Attribute("android:gravity") public int getGravity();
+ method @androidx.resourceinspection.annotation.Attribute(value="android:orientation", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="horizontal", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="vertical", value=1)}) public int getOrientation();
+ method @androidx.resourceinspection.annotation.Attribute(value="androidx.appcompat:showDividers", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="none", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="beginning", value=1, mask=1), @androidx.resourceinspection.annotation.Attribute.IntMap(name="middle", value=2, mask=2), @androidx.resourceinspection.annotation.Attribute.IntMap(name="end", value=4, mask=4)}) public int getShowDividers();
+ method @androidx.resourceinspection.annotation.Attribute("android:weightSum") public float getWeightSum();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAligned") public boolean isBaselineAligned();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:measureWithLargestChild") public boolean isMeasureWithLargestChildEnabled();
method public void setBaselineAligned(boolean);
method public void setBaselineAlignedChildIndex(int);
method public void setDividerDrawable(android.graphics.drawable.Drawable!);
method public void setDividerPadding(int);
- method public void setGravity(int);
+ method public void setGravity(@GravityInt int);
method public void setHorizontalGravity(int);
method public void setMeasureWithLargestChildEnabled(boolean);
method public void setOrientation(int);
@@ -788,13 +788,13 @@
ctor public SearchView(android.content.Context);
ctor public SearchView(android.content.Context, android.util.AttributeSet?);
ctor public SearchView(android.content.Context, android.util.AttributeSet?, int);
- method public int getImeOptions();
+ method @androidx.resourceinspection.annotation.Attribute("android:imeOptions") public int getImeOptions();
method public int getInputType();
- method public int getMaxWidth();
+ method @androidx.resourceinspection.annotation.Attribute("android:maxWidth") public int getMaxWidth();
method public CharSequence! getQuery();
- method public CharSequence? getQueryHint();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:queryHint") public CharSequence? getQueryHint();
method public androidx.cursoradapter.widget.CursorAdapter! getSuggestionsAdapter();
- method public boolean isIconfiedByDefault();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:iconifiedByDefault") public boolean isIconfiedByDefault();
method public boolean isIconified();
method public boolean isQueryRefinementEnabled();
method public boolean isSubmitButtonEnabled();
@@ -849,19 +849,19 @@
ctor public SwitchCompat(android.content.Context);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?, int);
- method public boolean getShowText();
- method public boolean getSplitTrack();
- method public int getSwitchMinWidth();
- method public int getSwitchPadding();
- method public CharSequence! getTextOff();
- method public CharSequence! getTextOn();
- method public android.graphics.drawable.Drawable! getThumbDrawable();
- method public int getThumbTextPadding();
- method public android.content.res.ColorStateList? getThumbTintList();
- method public android.graphics.PorterDuff.Mode? getThumbTintMode();
- method public android.graphics.drawable.Drawable! getTrackDrawable();
- method public android.content.res.ColorStateList? getTrackTintList();
- method public android.graphics.PorterDuff.Mode? getTrackTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:showText") public boolean getShowText();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:splitTrack") public boolean getSplitTrack();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchMinWidth") public int getSwitchMinWidth();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchPadding") public int getSwitchPadding();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOff") public CharSequence! getTextOff();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOn") public CharSequence! getTextOn();
+ method @androidx.resourceinspection.annotation.Attribute("android:thumb") public android.graphics.drawable.Drawable! getThumbDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTextPadding") public int getThumbTextPadding();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTint") public android.content.res.ColorStateList? getThumbTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTintMode") public android.graphics.PorterDuff.Mode? getThumbTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:track") public android.graphics.drawable.Drawable! getTrackDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTint") public android.content.res.ColorStateList? getTrackTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTintMode") public android.graphics.PorterDuff.Mode? getTrackTintMode();
method public boolean isEmojiCompatEnabled();
method public void onMeasure(int, int);
method public void setEmojiCompatEnabled(boolean);
@@ -906,31 +906,31 @@
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public CharSequence? getCollapseContentDescription();
- method public android.graphics.drawable.Drawable? getCollapseIcon();
- method public int getContentInsetEnd();
- method public int getContentInsetEndWithActions();
- method public int getContentInsetLeft();
- method public int getContentInsetRight();
- method public int getContentInsetStart();
- method public int getContentInsetStartWithNavigation();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseContentDescription") public CharSequence? getCollapseContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseIcon") public android.graphics.drawable.Drawable? getCollapseIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEnd") public int getContentInsetEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEndWithActions") public int getContentInsetEndWithActions();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetLeft") public int getContentInsetLeft();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetRight") public int getContentInsetRight();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStart") public int getContentInsetStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStartWithNavigation") public int getContentInsetStartWithNavigation();
method public int getCurrentContentInsetEnd();
method public int getCurrentContentInsetLeft();
method public int getCurrentContentInsetRight();
method public int getCurrentContentInsetStart();
- method public android.graphics.drawable.Drawable! getLogo();
- method public CharSequence! getLogoDescription();
- method public android.view.Menu! getMenu();
- method public CharSequence? getNavigationContentDescription();
- method public android.graphics.drawable.Drawable? getNavigationIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logo") public android.graphics.drawable.Drawable! getLogo();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logoDescription") public CharSequence! getLogoDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:menu") public android.view.Menu! getMenu();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationContentDescription") public CharSequence? getNavigationContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationIcon") public android.graphics.drawable.Drawable? getNavigationIcon();
method public android.graphics.drawable.Drawable? getOverflowIcon();
- method public int getPopupTheme();
- method public CharSequence! getSubtitle();
- method public CharSequence! getTitle();
- method public int getTitleMarginBottom();
- method public int getTitleMarginEnd();
- method public int getTitleMarginStart();
- method public int getTitleMarginTop();
+ method @StyleRes @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:popupTheme") public int getPopupTheme();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:subtitle") public CharSequence! getSubtitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:title") public CharSequence! getTitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginBottom") public int getTitleMarginBottom();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginEnd") public int getTitleMarginEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginStart") public int getTitleMarginStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginTop") public int getTitleMarginTop();
method public boolean hasExpandedActionView();
method public boolean hideOverflowMenu();
method public void inflateMenu(@MenuRes int);
diff --git a/appcompat/appcompat/api/public_plus_experimental_current.txt b/appcompat/appcompat/api/public_plus_experimental_current.txt
index 83b6b2f..cc92740d 100644
--- a/appcompat/appcompat/api/public_plus_experimental_current.txt
+++ b/appcompat/appcompat/api/public_plus_experimental_current.txt
@@ -460,7 +460,7 @@
method public boolean onMenuItemClick(android.view.MenuItem!);
}
- public class AppCompatAutoCompleteTextView extends android.widget.AutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatAutoCompleteTextView extends android.widget.AutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatAutoCompleteTextView(android.content.Context);
ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -472,7 +472,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatButton extends android.widget.Button implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatButton extends android.widget.Button implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
ctor public AppCompatButton(android.content.Context);
ctor public AppCompatButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatButton(android.content.Context, android.util.AttributeSet?, int);
@@ -493,7 +493,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatCheckBox extends android.widget.CheckBox implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatCheckBox extends android.widget.CheckBox implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
ctor public AppCompatCheckBox(android.content.Context);
ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet?, int);
@@ -508,7 +508,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatCheckedTextView extends android.widget.CheckedTextView implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCheckedTextView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatCheckedTextView extends android.widget.CheckedTextView implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCheckedTextView {
ctor public AppCompatCheckedTextView(android.content.Context);
ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -526,7 +526,7 @@
method public void setTextAppearance(android.content.Context, int);
}
- public class AppCompatEditText extends android.widget.EditText implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.OnReceiveContentViewBehavior androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatEditText extends android.widget.EditText implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.OnReceiveContentViewBehavior androidx.core.view.TintableBackgroundView {
ctor public AppCompatEditText(android.content.Context);
ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet?, int);
@@ -541,7 +541,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatImageButton extends android.widget.ImageButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatImageButton extends android.widget.ImageButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
ctor public AppCompatImageButton(android.content.Context);
ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet?, int);
@@ -556,7 +556,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatImageView extends android.widget.ImageView implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatImageView extends android.widget.ImageView implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
ctor public AppCompatImageView(android.content.Context);
ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet?, int);
@@ -571,7 +571,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context);
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -583,7 +583,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatRadioButton extends android.widget.RadioButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatRadioButton extends android.widget.RadioButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
ctor public AppCompatRadioButton(android.content.Context!);
ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet?);
ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet?, int);
@@ -610,7 +610,7 @@
ctor public AppCompatSeekBar(android.content.Context, android.util.AttributeSet?, int);
}
- public class AppCompatSpinner extends android.widget.Spinner implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatSpinner extends android.widget.Spinner implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatSpinner(android.content.Context);
ctor public AppCompatSpinner(android.content.Context, int);
ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet?);
@@ -624,7 +624,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatTextView extends android.widget.TextView implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatTextView extends android.widget.TextView implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
ctor public AppCompatTextView(android.content.Context);
ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -648,7 +648,7 @@
method public void setTextMetricsParamsCompat(androidx.core.text.PrecomputedTextCompat.Params);
}
- public class AppCompatToggleButton extends android.widget.ToggleButton implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatToggleButton extends android.widget.ToggleButton implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView {
ctor public AppCompatToggleButton(android.content.Context);
ctor public AppCompatToggleButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatToggleButton(android.content.Context, android.util.AttributeSet?, int);
@@ -672,20 +672,20 @@
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public int getBaselineAlignedChildIndex();
- method public android.graphics.drawable.Drawable! getDividerDrawable();
- method public int getDividerPadding();
- method public int getGravity();
- method public int getOrientation();
- method public int getShowDividers();
- method public float getWeightSum();
- method public boolean isBaselineAligned();
- method public boolean isMeasureWithLargestChildEnabled();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAlignedChildIndex") public int getBaselineAlignedChildIndex();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:divider") public android.graphics.drawable.Drawable! getDividerDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:dividerPadding") public int getDividerPadding();
+ method @GravityInt @androidx.resourceinspection.annotation.Attribute("android:gravity") public int getGravity();
+ method @androidx.resourceinspection.annotation.Attribute(value="android:orientation", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="horizontal", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="vertical", value=1)}) public int getOrientation();
+ method @androidx.resourceinspection.annotation.Attribute(value="androidx.appcompat:showDividers", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="none", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="beginning", value=1, mask=1), @androidx.resourceinspection.annotation.Attribute.IntMap(name="middle", value=2, mask=2), @androidx.resourceinspection.annotation.Attribute.IntMap(name="end", value=4, mask=4)}) public int getShowDividers();
+ method @androidx.resourceinspection.annotation.Attribute("android:weightSum") public float getWeightSum();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAligned") public boolean isBaselineAligned();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:measureWithLargestChild") public boolean isMeasureWithLargestChildEnabled();
method public void setBaselineAligned(boolean);
method public void setBaselineAlignedChildIndex(int);
method public void setDividerDrawable(android.graphics.drawable.Drawable!);
method public void setDividerPadding(int);
- method public void setGravity(int);
+ method public void setGravity(@GravityInt int);
method public void setHorizontalGravity(int);
method public void setMeasureWithLargestChildEnabled(boolean);
method public void setOrientation(int);
@@ -800,13 +800,13 @@
ctor public SearchView(android.content.Context);
ctor public SearchView(android.content.Context, android.util.AttributeSet?);
ctor public SearchView(android.content.Context, android.util.AttributeSet?, int);
- method public int getImeOptions();
+ method @androidx.resourceinspection.annotation.Attribute("android:imeOptions") public int getImeOptions();
method public int getInputType();
- method public int getMaxWidth();
+ method @androidx.resourceinspection.annotation.Attribute("android:maxWidth") public int getMaxWidth();
method public CharSequence! getQuery();
- method public CharSequence? getQueryHint();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:queryHint") public CharSequence? getQueryHint();
method public androidx.cursoradapter.widget.CursorAdapter! getSuggestionsAdapter();
- method public boolean isIconfiedByDefault();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:iconifiedByDefault") public boolean isIconfiedByDefault();
method public boolean isIconified();
method public boolean isQueryRefinementEnabled();
method public boolean isSubmitButtonEnabled();
@@ -861,19 +861,19 @@
ctor public SwitchCompat(android.content.Context);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?, int);
- method public boolean getShowText();
- method public boolean getSplitTrack();
- method public int getSwitchMinWidth();
- method public int getSwitchPadding();
- method public CharSequence! getTextOff();
- method public CharSequence! getTextOn();
- method public android.graphics.drawable.Drawable! getThumbDrawable();
- method public int getThumbTextPadding();
- method public android.content.res.ColorStateList? getThumbTintList();
- method public android.graphics.PorterDuff.Mode? getThumbTintMode();
- method public android.graphics.drawable.Drawable! getTrackDrawable();
- method public android.content.res.ColorStateList? getTrackTintList();
- method public android.graphics.PorterDuff.Mode? getTrackTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:showText") public boolean getShowText();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:splitTrack") public boolean getSplitTrack();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchMinWidth") public int getSwitchMinWidth();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchPadding") public int getSwitchPadding();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOff") public CharSequence! getTextOff();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOn") public CharSequence! getTextOn();
+ method @androidx.resourceinspection.annotation.Attribute("android:thumb") public android.graphics.drawable.Drawable! getThumbDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTextPadding") public int getThumbTextPadding();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTint") public android.content.res.ColorStateList? getThumbTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTintMode") public android.graphics.PorterDuff.Mode? getThumbTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:track") public android.graphics.drawable.Drawable! getTrackDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTint") public android.content.res.ColorStateList? getTrackTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTintMode") public android.graphics.PorterDuff.Mode? getTrackTintMode();
method public boolean isEmojiCompatEnabled();
method public void onMeasure(int, int);
method public void setEmojiCompatEnabled(boolean);
@@ -918,31 +918,31 @@
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public CharSequence? getCollapseContentDescription();
- method public android.graphics.drawable.Drawable? getCollapseIcon();
- method public int getContentInsetEnd();
- method public int getContentInsetEndWithActions();
- method public int getContentInsetLeft();
- method public int getContentInsetRight();
- method public int getContentInsetStart();
- method public int getContentInsetStartWithNavigation();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseContentDescription") public CharSequence? getCollapseContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseIcon") public android.graphics.drawable.Drawable? getCollapseIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEnd") public int getContentInsetEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEndWithActions") public int getContentInsetEndWithActions();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetLeft") public int getContentInsetLeft();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetRight") public int getContentInsetRight();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStart") public int getContentInsetStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStartWithNavigation") public int getContentInsetStartWithNavigation();
method public int getCurrentContentInsetEnd();
method public int getCurrentContentInsetLeft();
method public int getCurrentContentInsetRight();
method public int getCurrentContentInsetStart();
- method public android.graphics.drawable.Drawable! getLogo();
- method public CharSequence! getLogoDescription();
- method public android.view.Menu! getMenu();
- method public CharSequence? getNavigationContentDescription();
- method public android.graphics.drawable.Drawable? getNavigationIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logo") public android.graphics.drawable.Drawable! getLogo();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logoDescription") public CharSequence! getLogoDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:menu") public android.view.Menu! getMenu();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationContentDescription") public CharSequence? getNavigationContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationIcon") public android.graphics.drawable.Drawable? getNavigationIcon();
method public android.graphics.drawable.Drawable? getOverflowIcon();
- method public int getPopupTheme();
- method public CharSequence! getSubtitle();
- method public CharSequence! getTitle();
- method public int getTitleMarginBottom();
- method public int getTitleMarginEnd();
- method public int getTitleMarginStart();
- method public int getTitleMarginTop();
+ method @StyleRes @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:popupTheme") public int getPopupTheme();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:subtitle") public CharSequence! getSubtitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:title") public CharSequence! getTitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginBottom") public int getTitleMarginBottom();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginEnd") public int getTitleMarginEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginStart") public int getTitleMarginStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginTop") public int getTitleMarginTop();
method public boolean hasExpandedActionView();
method public boolean hideOverflowMenu();
method public void inflateMenu(@MenuRes int);
diff --git a/appcompat/appcompat/api/restricted_current.txt b/appcompat/appcompat/api/restricted_current.txt
index 82d0cda..7fa4fdb 100644
--- a/appcompat/appcompat/api/restricted_current.txt
+++ b/appcompat/appcompat/api/restricted_current.txt
@@ -1328,7 +1328,7 @@
ctor public AlertDialogLayout(android.content.Context?, android.util.AttributeSet?);
}
- public class AppCompatAutoCompleteTextView extends android.widget.AutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatAutoCompleteTextView extends android.widget.AutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatAutoCompleteTextView(android.content.Context);
ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -1340,7 +1340,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatButton extends android.widget.Button implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatButton extends android.widget.Button implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
ctor public AppCompatButton(android.content.Context);
ctor public AppCompatButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatButton(android.content.Context, android.util.AttributeSet?, int);
@@ -1361,7 +1361,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatCheckBox extends android.widget.CheckBox implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatCheckBox extends android.widget.CheckBox implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
ctor public AppCompatCheckBox(android.content.Context);
ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet?, int);
@@ -1376,7 +1376,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatCheckedTextView extends android.widget.CheckedTextView implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCheckedTextView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatCheckedTextView extends android.widget.CheckedTextView implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCheckedTextView {
ctor public AppCompatCheckedTextView(android.content.Context);
ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -1403,7 +1403,7 @@
method public static void preload();
}
- public class AppCompatEditText extends android.widget.EditText implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.OnReceiveContentViewBehavior androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatEditText extends android.widget.EditText implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.OnReceiveContentViewBehavior androidx.core.view.TintableBackgroundView {
ctor public AppCompatEditText(android.content.Context);
ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet?, int);
@@ -1418,7 +1418,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatImageButton extends android.widget.ImageButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatImageButton extends android.widget.ImageButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
ctor public AppCompatImageButton(android.content.Context);
ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet?, int);
@@ -1439,7 +1439,7 @@
method public void setImageResource(int);
}
- public class AppCompatImageView extends android.widget.ImageView implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatImageView extends android.widget.ImageView implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
ctor public AppCompatImageView(android.content.Context);
ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet?, int);
@@ -1454,7 +1454,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context);
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -1466,7 +1466,7 @@
method public void setTextAppearance(android.content.Context!, int);
}
- public class AppCompatRadioButton extends android.widget.RadioButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatRadioButton extends android.widget.RadioButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundButton {
ctor public AppCompatRadioButton(android.content.Context!);
ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet?);
ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet?, int);
@@ -1493,7 +1493,7 @@
ctor public AppCompatSeekBar(android.content.Context, android.util.AttributeSet?, int);
}
- public class AppCompatSpinner extends android.widget.Spinner implements androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatSpinner extends android.widget.Spinner implements androidx.core.view.TintableBackgroundView {
ctor public AppCompatSpinner(android.content.Context);
ctor public AppCompatSpinner(android.content.Context, int);
ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet?);
@@ -1507,7 +1507,7 @@
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
}
- public class AppCompatTextView extends android.widget.TextView implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatTextView extends android.widget.TextView implements androidx.core.widget.AutoSizeableTextView androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView androidx.core.widget.TintableCompoundDrawablesView {
ctor public AppCompatTextView(android.content.Context);
ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet?, int);
@@ -1531,7 +1531,7 @@
method public void setTextMetricsParamsCompat(androidx.core.text.PrecomputedTextCompat.Params);
}
- public class AppCompatToggleButton extends android.widget.ToggleButton implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView {
+ @androidx.resourceinspection.annotation.AppCompatShadowedAttributes public class AppCompatToggleButton extends android.widget.ToggleButton implements androidx.appcompat.widget.EmojiCompatConfigurationView androidx.core.view.TintableBackgroundView {
ctor public AppCompatToggleButton(android.content.Context);
ctor public AppCompatToggleButton(android.content.Context, android.util.AttributeSet?);
ctor public AppCompatToggleButton(android.content.Context, android.util.AttributeSet?, int);
@@ -1681,21 +1681,21 @@
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public int getBaselineAlignedChildIndex();
- method public android.graphics.drawable.Drawable! getDividerDrawable();
- method public int getDividerPadding();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAlignedChildIndex") public int getBaselineAlignedChildIndex();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:divider") public android.graphics.drawable.Drawable! getDividerDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:dividerPadding") public int getDividerPadding();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getDividerWidth();
- method public int getGravity();
- method @androidx.appcompat.widget.LinearLayoutCompat.OrientationMode public int getOrientation();
- method @androidx.appcompat.widget.LinearLayoutCompat.DividerMode public int getShowDividers();
- method public float getWeightSum();
- method public boolean isBaselineAligned();
- method public boolean isMeasureWithLargestChildEnabled();
+ method @GravityInt @androidx.resourceinspection.annotation.Attribute("android:gravity") public int getGravity();
+ method @androidx.appcompat.widget.LinearLayoutCompat.OrientationMode @androidx.resourceinspection.annotation.Attribute(value="android:orientation", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="horizontal", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="vertical", value=1)}) public int getOrientation();
+ method @androidx.appcompat.widget.LinearLayoutCompat.DividerMode @androidx.resourceinspection.annotation.Attribute(value="androidx.appcompat:showDividers", intMapping={@androidx.resourceinspection.annotation.Attribute.IntMap(name="none", value=0), @androidx.resourceinspection.annotation.Attribute.IntMap(name="beginning", value=1, mask=1), @androidx.resourceinspection.annotation.Attribute.IntMap(name="middle", value=2, mask=2), @androidx.resourceinspection.annotation.Attribute.IntMap(name="end", value=4, mask=4)}) public int getShowDividers();
+ method @androidx.resourceinspection.annotation.Attribute("android:weightSum") public float getWeightSum();
+ method @androidx.resourceinspection.annotation.Attribute("android:baselineAligned") public boolean isBaselineAligned();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:measureWithLargestChild") public boolean isMeasureWithLargestChildEnabled();
method public void setBaselineAligned(boolean);
method public void setBaselineAlignedChildIndex(int);
method public void setDividerDrawable(android.graphics.drawable.Drawable!);
method public void setDividerPadding(int);
- method public void setGravity(int);
+ method public void setGravity(@GravityInt int);
method public void setHorizontalGravity(int);
method public void setMeasureWithLargestChildEnabled(boolean);
method public void setOrientation(@androidx.appcompat.widget.LinearLayoutCompat.OrientationMode int);
@@ -1872,13 +1872,13 @@
ctor public SearchView(android.content.Context);
ctor public SearchView(android.content.Context, android.util.AttributeSet?);
ctor public SearchView(android.content.Context, android.util.AttributeSet?, int);
- method public int getImeOptions();
+ method @androidx.resourceinspection.annotation.Attribute("android:imeOptions") public int getImeOptions();
method public int getInputType();
- method public int getMaxWidth();
+ method @androidx.resourceinspection.annotation.Attribute("android:maxWidth") public int getMaxWidth();
method public CharSequence! getQuery();
- method public CharSequence? getQueryHint();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:queryHint") public CharSequence? getQueryHint();
method public androidx.cursoradapter.widget.CursorAdapter! getSuggestionsAdapter();
- method public boolean isIconfiedByDefault();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:iconifiedByDefault") public boolean isIconfiedByDefault();
method public boolean isIconified();
method public boolean isQueryRefinementEnabled();
method public boolean isSubmitButtonEnabled();
@@ -1940,19 +1940,19 @@
ctor public SwitchCompat(android.content.Context);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?);
ctor public SwitchCompat(android.content.Context, android.util.AttributeSet?, int);
- method public boolean getShowText();
- method public boolean getSplitTrack();
- method public int getSwitchMinWidth();
- method public int getSwitchPadding();
- method public CharSequence! getTextOff();
- method public CharSequence! getTextOn();
- method public android.graphics.drawable.Drawable! getThumbDrawable();
- method public int getThumbTextPadding();
- method public android.content.res.ColorStateList? getThumbTintList();
- method public android.graphics.PorterDuff.Mode? getThumbTintMode();
- method public android.graphics.drawable.Drawable! getTrackDrawable();
- method public android.content.res.ColorStateList? getTrackTintList();
- method public android.graphics.PorterDuff.Mode? getTrackTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:showText") public boolean getShowText();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:splitTrack") public boolean getSplitTrack();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchMinWidth") public int getSwitchMinWidth();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:switchPadding") public int getSwitchPadding();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOff") public CharSequence! getTextOff();
+ method @androidx.resourceinspection.annotation.Attribute("android:textOn") public CharSequence! getTextOn();
+ method @androidx.resourceinspection.annotation.Attribute("android:thumb") public android.graphics.drawable.Drawable! getThumbDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTextPadding") public int getThumbTextPadding();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTint") public android.content.res.ColorStateList? getThumbTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:thumbTintMode") public android.graphics.PorterDuff.Mode? getThumbTintMode();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:track") public android.graphics.drawable.Drawable! getTrackDrawable();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTint") public android.content.res.ColorStateList? getTrackTintList();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:trackTintMode") public android.graphics.PorterDuff.Mode? getTrackTintMode();
method public boolean isEmojiCompatEnabled();
method public void onMeasure(int, int);
method public void setEmojiCompatEnabled(boolean);
@@ -2036,31 +2036,31 @@
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateDefaultLayoutParams();
method public androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
- method public CharSequence? getCollapseContentDescription();
- method public android.graphics.drawable.Drawable? getCollapseIcon();
- method public int getContentInsetEnd();
- method public int getContentInsetEndWithActions();
- method public int getContentInsetLeft();
- method public int getContentInsetRight();
- method public int getContentInsetStart();
- method public int getContentInsetStartWithNavigation();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseContentDescription") public CharSequence? getCollapseContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:collapseIcon") public android.graphics.drawable.Drawable? getCollapseIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEnd") public int getContentInsetEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetEndWithActions") public int getContentInsetEndWithActions();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetLeft") public int getContentInsetLeft();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetRight") public int getContentInsetRight();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStart") public int getContentInsetStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:contentInsetStartWithNavigation") public int getContentInsetStartWithNavigation();
method public int getCurrentContentInsetEnd();
method public int getCurrentContentInsetLeft();
method public int getCurrentContentInsetRight();
method public int getCurrentContentInsetStart();
- method public android.graphics.drawable.Drawable! getLogo();
- method public CharSequence! getLogoDescription();
- method public android.view.Menu! getMenu();
- method public CharSequence? getNavigationContentDescription();
- method public android.graphics.drawable.Drawable? getNavigationIcon();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logo") public android.graphics.drawable.Drawable! getLogo();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:logoDescription") public CharSequence! getLogoDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:menu") public android.view.Menu! getMenu();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationContentDescription") public CharSequence? getNavigationContentDescription();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:navigationIcon") public android.graphics.drawable.Drawable? getNavigationIcon();
method public android.graphics.drawable.Drawable? getOverflowIcon();
- method public int getPopupTheme();
- method public CharSequence! getSubtitle();
- method public CharSequence! getTitle();
- method public int getTitleMarginBottom();
- method public int getTitleMarginEnd();
- method public int getTitleMarginStart();
- method public int getTitleMarginTop();
+ method @StyleRes @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:popupTheme") public int getPopupTheme();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:subtitle") public CharSequence! getSubtitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:title") public CharSequence! getTitle();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginBottom") public int getTitleMarginBottom();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginEnd") public int getTitleMarginEnd();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginStart") public int getTitleMarginStart();
+ method @androidx.resourceinspection.annotation.Attribute("androidx.appcompat:titleMarginTop") public int getTitleMarginTop();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.appcompat.widget.DecorToolbar! getWrapper();
method public boolean hasExpandedActionView();
method public boolean hideOverflowMenu();
diff --git a/appcompat/appcompat/build.gradle b/appcompat/appcompat/build.gradle
index 546496f..7a35e42 100644
--- a/appcompat/appcompat/build.gradle
+++ b/appcompat/appcompat/build.gradle
@@ -7,10 +7,11 @@
id("AndroidXPlugin")
id("com.android.library")
id("kotlin-android")
+ id("kotlin-kapt")
}
dependencies {
- api("androidx.annotation:annotation:1.1.0")
+ api("androidx.annotation:annotation:1.3.0-alpha01")
api(project(":core:core"))
implementation(project(":emoji2:emoji2"))
@@ -23,8 +24,11 @@
api("androidx.drawerlayout:drawerlayout:1.0.0")
implementation("androidx.lifecycle:lifecycle-runtime:2.3.1")
implementation("androidx.lifecycle:lifecycle-viewmodel:2.3.1")
+ implementation(project(":resourceinspection:resourceinspection-annotation"))
api("androidx.savedstate:savedstate:1.1.0")
+ kapt(project(":resourceinspection:resourceinspection-processor"))
+
androidTestImplementation(KOTLIN_STDLIB)
androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
androidTestImplementation(ANDROIDX_TEST_CORE)
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java
index 5fbc731..27a34d8 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java
@@ -37,6 +37,7 @@
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.view.TintableBackgroundView;
import androidx.core.widget.TextViewCompat;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link AutoCompleteTextView} which supports compatible features on older versions of the
@@ -53,6 +54,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatAutoCompleteTextView extends AutoCompleteTextView implements
TintableBackgroundView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatButton.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatButton.java
index 977a74b..61e92ca 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatButton.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatButton.java
@@ -40,6 +40,7 @@
import androidx.core.widget.AutoSizeableTextView;
import androidx.core.widget.TextViewCompat;
import androidx.core.widget.TintableCompoundDrawablesView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link Button} which supports compatible features on older versions of the platform,
@@ -57,6 +58,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatButton extends Button implements TintableBackgroundView,
AutoSizeableTextView, TintableCompoundDrawablesView, EmojiCompatConfigurationView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java
index 1adf364..14e910be 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java
@@ -35,6 +35,7 @@
import androidx.core.view.TintableBackgroundView;
import androidx.core.view.ViewCompat;
import androidx.core.widget.TintableCompoundButton;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link CheckBox} which supports compatible features on older versions of the platform,
@@ -51,6 +52,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatCheckBox extends CheckBox implements TintableCompoundButton,
TintableBackgroundView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java
index 7755d6c..fe03def3 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java
@@ -40,6 +40,7 @@
import androidx.core.view.ViewCompat;
import androidx.core.widget.TextViewCompat;
import androidx.core.widget.TintableCheckedTextView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link CheckedTextView} which supports compatible features on older versions of the platform,
@@ -61,6 +62,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatCheckedTextView extends CheckedTextView implements TintableCheckedTextView,
TintableBackgroundView, EmojiCompatConfigurationView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEditText.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEditText.java
index 07cf3df..30e7abd 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEditText.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEditText.java
@@ -53,6 +53,7 @@
import androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener;
import androidx.core.widget.TextViewCompat;
import androidx.core.widget.TextViewOnReceiveContentListener;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link EditText} which supports compatible features on older versions of the platform,
@@ -73,6 +74,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatEditText extends EditText implements TintableBackgroundView,
OnReceiveContentViewBehavior, EmojiCompatConfigurationView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageButton.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageButton.java
index fe65b79..1ea6667 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageButton.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageButton.java
@@ -36,6 +36,7 @@
import androidx.core.view.TintableBackgroundView;
import androidx.core.widget.ImageViewCompat;
import androidx.core.widget.TintableImageSourceView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link ImageButton} which supports compatible features on older versions of the platform,
@@ -56,6 +57,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatImageButton extends ImageButton implements TintableBackgroundView,
TintableImageSourceView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
index ba964d9..c5bf0f8 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
@@ -34,6 +34,7 @@
import androidx.core.view.TintableBackgroundView;
import androidx.core.widget.ImageViewCompat;
import androidx.core.widget.TintableImageSourceView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link ImageView} which supports compatible features on older versions of the platform,
@@ -55,6 +56,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatImageView extends ImageView implements TintableBackgroundView,
TintableImageSourceView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java
index 3910f28..5dc5c98 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java
@@ -34,6 +34,7 @@
import androidx.appcompat.R;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.view.TintableBackgroundView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link MultiAutoCompleteTextView} which supports compatible features on older version of the
@@ -50,6 +51,7 @@
* <p>This will automatically be used when you use {@link MultiAutoCompleteTextView} in your layouts.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatMultiAutoCompleteTextView extends MultiAutoCompleteTextView
implements TintableBackgroundView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java
index 2550334..652fd7b 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java
@@ -34,6 +34,7 @@
import androidx.core.view.TintableBackgroundView;
import androidx.core.view.ViewCompat;
import androidx.core.widget.TintableCompoundButton;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link RadioButton} which supports compatible features on older versions of the platform,
@@ -50,6 +51,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatRadioButton extends RadioButton implements TintableCompoundButton,
TintableBackgroundView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
index a7751b1..4d8bd10 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
@@ -58,6 +58,7 @@
import androidx.appcompat.view.menu.ShowableListMenu;
import androidx.core.view.TintableBackgroundView;
import androidx.core.view.ViewCompat;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
@@ -74,6 +75,7 @@
* <p>This will automatically be used when you use {@link Spinner} in your layouts.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatSpinner extends Spinner implements TintableBackgroundView {
private static final int[] ATTRS_ANDROID_SPINNERMODE = {android.R.attr.spinnerMode};
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextView.java
index e9e0794..6984591 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextView.java
@@ -48,6 +48,7 @@
import androidx.core.widget.AutoSizeableTextView;
import androidx.core.widget.TextViewCompat;
import androidx.core.widget.TintableCompoundDrawablesView;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -78,6 +79,7 @@
* <a href="{@docRoot}topic/libraries/support-library/packages.html#v7-appcompat">appcompat</a>.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatTextView extends TextView implements TintableBackgroundView,
TintableCompoundDrawablesView, AutoSizeableTextView, EmojiCompatConfigurationView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatToggleButton.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatToggleButton.java
index 5cfb037..443e9a6 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatToggleButton.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatToggleButton.java
@@ -32,6 +32,7 @@
import androidx.annotation.RestrictTo;
import androidx.core.view.TintableBackgroundView;
import androidx.core.view.ViewCompat;
+import androidx.resourceinspection.annotation.AppCompatShadowedAttributes;
/**
* A {@link ToggleButton} which supports compatible features on older versions of the platform,
@@ -48,6 +49,7 @@
* <p>This will automatically be used when you use {@link ToggleButton} in your layouts.
* You should only need to manually use this class when writing custom views.</p>
*/
+@AppCompatShadowedAttributes
public class AppCompatToggleButton extends ToggleButton implements TintableBackgroundView,
EmojiCompatConfigurationView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java
index f345b51..b9e02da 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java
@@ -30,6 +30,7 @@
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.LinearLayout;
+import androidx.annotation.GravityInt;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -37,6 +38,7 @@
import androidx.appcompat.R;
import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat;
+import androidx.resourceinspection.annotation.Attribute;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -217,6 +219,12 @@
* @return A flag set indicating how dividers should be shown around items.
* @see #setShowDividers(int)
*/
+ @Attribute(value = "androidx.appcompat:showDividers", intMapping = {
+ @Attribute.IntMap(name = "none", value = 0),
+ @Attribute.IntMap(name = "beginning", value = 1, mask = 1),
+ @Attribute.IntMap(name = "middle", value = 2, mask = 2),
+ @Attribute.IntMap(name = "end", value = 4, mask = 4)
+ })
@DividerMode
public int getShowDividers() {
return mShowDividers;
@@ -227,6 +235,7 @@
*
* @see #setDividerDrawable(Drawable)
*/
+ @Attribute("androidx.appcompat:divider")
public Drawable getDividerDrawable() {
return mDivider;
}
@@ -274,6 +283,7 @@
* @see #setDividerDrawable(Drawable)
* @see #setDividerPadding(int)
*/
+ @Attribute("androidx.appcompat:dividerPadding")
public int getDividerPadding() {
return mDividerPadding;
}
@@ -387,6 +397,7 @@
*
* @return true when widgets are baseline-aligned, false otherwise
*/
+ @Attribute("android:baselineAligned")
public boolean isBaselineAligned() {
return mBaselineAligned;
}
@@ -410,6 +421,7 @@
* @return True to measure children with a weight using the minimum
* size of the largest child, false otherwise.
*/
+ @Attribute("androidx.appcompat:measureWithLargestChild")
public boolean isMeasureWithLargestChildEnabled() {
return mUseLargestChild;
}
@@ -486,6 +498,7 @@
* part of a larger layout that is baseline aligned, or -1 if none has
* been set.
*/
+ @Attribute("android:baselineAlignedChildIndex")
public int getBaselineAlignedChildIndex() {
return mBaselineAlignedChildIndex;
}
@@ -535,6 +548,7 @@
* a number lower than or equals to 0.0f if not weight sum is
* to be used.
*/
+ @Attribute("android:weightSum")
public float getWeightSum() {
return mWeightSum;
}
@@ -1672,6 +1686,10 @@
*
* @return either {@link #HORIZONTAL} or {@link #VERTICAL}
*/
+ @Attribute(value = "android:orientation", intMapping = {
+ @Attribute.IntMap(name = "horizontal", value = 0),
+ @Attribute.IntMap(name = "vertical", value = 1)
+ })
@OrientationMode
public int getOrientation() {
return mOrientation;
@@ -1685,7 +1703,7 @@
*
* @param gravity See {@link android.view.Gravity}
*/
- public void setGravity(int gravity) {
+ public void setGravity(@GravityInt int gravity) {
if (mGravity != gravity) {
if ((gravity & GravityCompat.RELATIVE_HORIZONTAL_GRAVITY_MASK) == 0) {
gravity |= GravityCompat.START;
@@ -1706,6 +1724,8 @@
* @return the current gravity.
* @see #setGravity
*/
+ @Attribute("android:gravity")
+ @GravityInt
public int getGravity() {
return mGravity;
}
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
index c6a86bd..4cd49e1 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
@@ -79,6 +79,7 @@
import androidx.core.view.ViewCompat;
import androidx.cursoradapter.widget.CursorAdapter;
import androidx.customview.view.AbsSavedState;
+import androidx.resourceinspection.annotation.Attribute;
import java.lang.reflect.Method;
import java.util.WeakHashMap;
@@ -276,6 +277,8 @@
final TintTypedArray a = TintTypedArray.obtainStyledAttributes(context,
attrs, R.styleable.SearchView, defStyleAttr, 0);
+ ViewCompat.saveAttributeDataForStyleable(this, context, R.styleable.SearchView, attrs,
+ a.getWrappedTypeArray(), defStyleAttr, 0);
final LayoutInflater inflater = LayoutInflater.from(context);
final int layoutResId = a.getResourceId(
@@ -448,6 +451,7 @@
*
* {@link android.R.attr#imeOptions}
*/
+ @Attribute("android:imeOptions")
public int getImeOptions() {
return mSearchSrcTextView.getImeOptions();
}
@@ -613,6 +617,7 @@
* @return the displayed query hint text, or {@code null} if none set
* {@link androidx.appcompat.R.attr#queryHint}
*/
+ @Attribute("androidx.appcompat:queryHint")
@Nullable
public CharSequence getQueryHint() {
final CharSequence hint;
@@ -651,6 +656,7 @@
*
* {@link androidx.appcompat.R.attr#iconifiedByDefault}
*/
+ @Attribute("androidx.appcompat:iconifiedByDefault")
public boolean isIconfiedByDefault() {
return mIconifiedByDefault;
}
@@ -773,6 +779,7 @@
*
* {@link android.R.attr#maxWidth}
*/
+ @Attribute("android:maxWidth")
public int getMaxWidth() {
return mMaxWidth;
}
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
index 19acd49..01e2a78 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
@@ -56,6 +56,7 @@
import androidx.core.view.ViewCompat;
import androidx.core.widget.TextViewCompat;
import androidx.emoji2.text.EmojiCompat;
+import androidx.resourceinspection.annotation.Attribute;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
@@ -460,6 +461,7 @@
*
* {@link androidx.appcompat.R.attr#switchPadding}
*/
+ @Attribute("androidx.appcompat:switchPadding")
public int getSwitchPadding() {
return mSwitchPadding;
}
@@ -485,6 +487,7 @@
*
* {@link androidx.appcompat.R.attr#switchMinWidth}
*/
+ @Attribute("androidx.appcompat:switchMinWidth")
public int getSwitchMinWidth() {
return mSwitchMinWidth;
}
@@ -508,6 +511,7 @@
*
* {@link androidx.appcompat.R.attr#thumbTextPadding}
*/
+ @Attribute("androidx.appcompat:thumbTextPadding")
public int getThumbTextPadding() {
return mThumbTextPadding;
}
@@ -548,6 +552,7 @@
*
* {@link androidx.appcompat.R.attr#track}
*/
+ @Attribute("androidx.appcompat:track")
public Drawable getTrackDrawable() {
return mTrackDrawable;
}
@@ -577,6 +582,7 @@
* {@link androidx.appcompat.R.attr#trackTint}
* @see #setTrackTintList(ColorStateList)
*/
+ @Attribute("androidx.appcompat:trackTint")
@Nullable
public ColorStateList getTrackTintList() {
return mTrackTintList;
@@ -605,6 +611,7 @@
* {@link androidx.appcompat.R.attr#trackTintMode}
* @see #setTrackTintMode(PorterDuff.Mode)
*/
+ @Attribute("androidx.appcompat:trackTintMode")
@Nullable
public PorterDuff.Mode getTrackTintMode() {
return mTrackTintMode;
@@ -669,6 +676,7 @@
*
* {@link android.R.attr#thumb}
*/
+ @Attribute("android:thumb")
public Drawable getThumbDrawable() {
return mThumbDrawable;
}
@@ -699,6 +707,7 @@
* {@link androidx.appcompat.R.attr#thumbTint}
* @see #setThumbTintList(ColorStateList)
*/
+ @Attribute("androidx.appcompat:thumbTint")
@Nullable
public ColorStateList getThumbTintList() {
return mThumbTintList;
@@ -728,6 +737,7 @@
* {@link androidx.appcompat.R.attr#thumbTintMode}
* @see #setThumbTintMode(PorterDuff.Mode)
*/
+ @Attribute("androidx.appcompat:thumbTintMode")
@Nullable
public PorterDuff.Mode getThumbTintMode() {
return mThumbTintMode;
@@ -772,6 +782,7 @@
*
* {@link androidx.appcompat.R.attr#splitTrack}
*/
+ @Attribute("androidx.appcompat:splitTrack")
public boolean getSplitTrack() {
return mSplitTrack;
}
@@ -781,6 +792,7 @@
*
* {@link android.R.attr#textOn}
*/
+ @Attribute("android:textOn")
public CharSequence getTextOn() {
return mTextOn;
}
@@ -819,6 +831,7 @@
*
* {@link android.R.attr#textOff}
*/
+ @Attribute("android:textOff")
public CharSequence getTextOff() {
return mTextOff;
}
@@ -880,6 +893,7 @@
* @return whether the on/off text should be displayed
* {@link androidx.appcompat.R.attr#showText}
*/
+ @Attribute("androidx.appcompat:showText")
public boolean getShowText() {
return mShowText;
}
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
index 2da6793..05ba0c2 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
@@ -64,6 +64,7 @@
import androidx.core.view.MarginLayoutParamsCompat;
import androidx.core.view.ViewCompat;
import androidx.customview.view.AbsSavedState;
+import androidx.resourceinspection.annotation.Attribute;
import java.util.ArrayList;
import java.util.List;
@@ -376,6 +377,8 @@
* 0 if menus are inflated against the toolbar theme
* @see #setPopupTheme(int)
*/
+ @Attribute("androidx.appcompat:popupTheme")
+ @StyleRes
public int getPopupTheme() {
return mPopupTheme;
}
@@ -407,6 +410,7 @@
* @see #setTitleMarginStart(int)
* {@link androidx.appcompat.R.attr#titleMarginStart}
*/
+ @Attribute("androidx.appcompat:titleMarginStart")
public int getTitleMarginStart() {
return mTitleMarginStart;
}
@@ -429,6 +433,7 @@
* @see #setTitleMarginTop(int)
* {@link androidx.appcompat.R.attr#titleMarginTop}
*/
+ @Attribute("androidx.appcompat:titleMarginTop")
public int getTitleMarginTop() {
return mTitleMarginTop;
}
@@ -451,6 +456,7 @@
* @see #setTitleMarginEnd(int)
* {@link androidx.appcompat.R.attr#titleMarginEnd}
*/
+ @Attribute("androidx.appcompat:titleMarginEnd")
public int getTitleMarginEnd() {
return mTitleMarginEnd;
}
@@ -473,6 +479,7 @@
* @see #setTitleMarginBottom(int)
* {@link androidx.appcompat.R.attr#titleMarginBottom}
*/
+ @Attribute("androidx.appcompat:titleMarginBottom")
public int getTitleMarginBottom() {
return mTitleMarginBottom;
}
@@ -650,6 +657,7 @@
* @see #setLogo(int)
* @see #setLogo(android.graphics.drawable.Drawable)
*/
+ @Attribute("androidx.appcompat:logo")
public Drawable getLogo() {
return mLogoView != null ? mLogoView.getDrawable() : null;
}
@@ -688,6 +696,7 @@
*
* @return A description of the logo
*/
+ @Attribute("androidx.appcompat:logoDescription")
public CharSequence getLogoDescription() {
return mLogoView != null ? mLogoView.getContentDescription() : null;
}
@@ -735,6 +744,7 @@
*
* @return The current title.
*/
+ @Attribute("androidx.appcompat:title")
public CharSequence getTitle() {
return mTitleText;
}
@@ -791,6 +801,7 @@
*
* @return The current subtitle
*/
+ @Attribute("androidx.appcompat:subtitle")
public CharSequence getSubtitle() {
return mSubtitleText;
}
@@ -913,6 +924,7 @@
*
* {@link androidx.appcompat.R.attr#navigationContentDescription}
*/
+ @Attribute("androidx.appcompat:navigationContentDescription")
@Nullable
public CharSequence getNavigationContentDescription() {
return mNavButtonView != null ? mNavButtonView.getContentDescription() : null;
@@ -1005,6 +1017,7 @@
*
* {@link androidx.appcompat.R.attr#navigationIcon}
*/
+ @Attribute("androidx.appcompat:navigationIcon")
@Nullable
public Drawable getNavigationIcon() {
return mNavButtonView != null ? mNavButtonView.getDrawable() : null;
@@ -1033,6 +1046,7 @@
*
* {@link androidx.appcompat.R.attr#collapseContentDescription}
*/
+ @Attribute("androidx.appcompat:collapseContentDescription")
@Nullable
public CharSequence getCollapseContentDescription() {
return mCollapseButtonView != null ? mCollapseButtonView.getContentDescription() : null;
@@ -1078,6 +1092,7 @@
*
* {@link androidx.appcompat.R.attr#collapseIcon}
*/
+ @Attribute("androidx.appcompat:collapseIcon")
@Nullable
public Drawable getCollapseIcon() {
return mCollapseButtonView != null ? mCollapseButtonView.getDrawable() : null;
@@ -1125,6 +1140,7 @@
* @return The toolbar's Menu
* {@link androidx.appcompat.R.attr#menu}
*/
+ @Attribute("androidx.appcompat:menu")
public Menu getMenu() {
ensureMenu();
return mMenuView.getMenu();
@@ -1245,6 +1261,7 @@
* @see #getContentInsetRight()
* {@link androidx.appcompat.R.attr#contentInsetStart}
*/
+ @Attribute("androidx.appcompat:contentInsetStart")
public int getContentInsetStart() {
return mContentInsets != null ? mContentInsets.getStart() : 0;
}
@@ -1265,6 +1282,7 @@
* @see #getContentInsetRight()
* {@link androidx.appcompat.R.attr#contentInsetEnd}
*/
+ @Attribute("androidx.appcompat:contentInsetEnd")
public int getContentInsetEnd() {
return mContentInsets != null ? mContentInsets.getEnd() : 0;
}
@@ -1308,6 +1326,7 @@
* @see #getContentInsetRight()
* {@link androidx.appcompat.R.attr#contentInsetLeft}
*/
+ @Attribute("androidx.appcompat:contentInsetLeft")
public int getContentInsetLeft() {
return mContentInsets != null ? mContentInsets.getLeft() : 0;
}
@@ -1328,6 +1347,7 @@
* @see #getContentInsetLeft()
* {@link androidx.appcompat.R.attr#contentInsetRight}
*/
+ @Attribute("androidx.appcompat:contentInsetRight")
public int getContentInsetRight() {
return mContentInsets != null ? mContentInsets.getRight() : 0;
}
@@ -1344,6 +1364,7 @@
* @see #setContentInsetStartWithNavigation(int)
* {@link androidx.appcompat.R.attr#contentInsetStartWithNavigation}
*/
+ @Attribute("androidx.appcompat:contentInsetStartWithNavigation")
public int getContentInsetStartWithNavigation() {
return mContentInsetStartWithNavigation != RtlSpacingHelper.UNDEFINED
? mContentInsetStartWithNavigation
@@ -1387,6 +1408,7 @@
* @see #setContentInsetEndWithActions(int)
* {@link androidx.appcompat.R.attr#contentInsetEndWithActions}
*/
+ @Attribute("androidx.appcompat:contentInsetEndWithActions")
public int getContentInsetEndWithActions() {
return mContentInsetEndWithActions != RtlSpacingHelper.UNDEFINED
? mContentInsetEndWithActions