From 68c65e58b4f4daf79c9ffab518a826a506799db2 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 3 Feb 2022 15:39:43 -0500 Subject: [PATCH] Nullability annotations for view and widget I inferred nullability annotations in Jetpack based on the guaranteed behavior of the platform, so now I'm propagating those inferences back to the platform as annotations. Test: nullability presubmit checks Fixes: 206801689 Change-Id: I78a1997faeecdafc51d303b0fc766369938b9101 --- core/api/current.txt | 336 +++++++++--------- core/java/android/view/ActionProvider.java | 14 +- core/java/android/view/DisplayCutout.java | 4 +- core/java/android/view/GestureDetector.java | 74 ++-- core/java/android/view/Gravity.java | 18 +- core/java/android/view/MenuItem.java | 88 +++-- core/java/android/view/PointerIcon.java | 15 +- .../android/view/ScaleGestureDetector.java | 23 +- core/java/android/view/View.java | 45 ++- core/java/android/view/ViewConfiguration.java | 5 +- core/java/android/view/ViewParent.java | 31 +- .../android/view/ViewPropertyAnimator.java | 85 ++--- .../AccessibilityInteractionClient.java | 6 +- .../AccessibilityNodeProvider.java | 9 +- .../accessibility/AccessibilityRecord.java | 28 +- .../view/animation/PathInterpolator.java | 6 +- .../internal/view/OneShotPreDrawListener.java | 13 +- .../internal/widget/NestedScrollingChild.java | 6 +- 18 files changed, 421 insertions(+), 385 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index 40f589d6f1690..9e40d5b5e5005 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -47614,16 +47614,16 @@ package android.view { } public abstract class ActionProvider { - ctor public ActionProvider(android.content.Context); + ctor public ActionProvider(@NonNull android.content.Context); method public boolean hasSubMenu(); method public boolean isVisible(); - method @Deprecated public abstract android.view.View onCreateActionView(); - method public android.view.View onCreateActionView(android.view.MenuItem); + method @Deprecated @NonNull public abstract android.view.View onCreateActionView(); + method @NonNull public android.view.View onCreateActionView(@NonNull android.view.MenuItem); method public boolean onPerformDefaultAction(); - method public void onPrepareSubMenu(android.view.SubMenu); + method public void onPrepareSubMenu(@NonNull android.view.SubMenu); method public boolean overridesItemVisibility(); method public void refreshVisibility(); - method public void setVisibilityListener(android.view.ActionProvider.VisibilityListener); + method public void setVisibilityListener(@Nullable android.view.ActionProvider.VisibilityListener); } public static interface ActionProvider.VisibilityListener { @@ -47893,60 +47893,60 @@ package android.view { } public class GestureDetector { - ctor @Deprecated public GestureDetector(android.view.GestureDetector.OnGestureListener, android.os.Handler); - ctor @Deprecated public GestureDetector(android.view.GestureDetector.OnGestureListener); - ctor public GestureDetector(@UiContext android.content.Context, android.view.GestureDetector.OnGestureListener); - ctor public GestureDetector(@UiContext android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler); - ctor public GestureDetector(@UiContext android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler, boolean); + ctor @Deprecated public GestureDetector(@NonNull android.view.GestureDetector.OnGestureListener, @Nullable android.os.Handler); + ctor @Deprecated public GestureDetector(@NonNull android.view.GestureDetector.OnGestureListener); + ctor public GestureDetector(@Nullable @UiContext android.content.Context, @NonNull android.view.GestureDetector.OnGestureListener); + ctor public GestureDetector(@Nullable @UiContext android.content.Context, @NonNull android.view.GestureDetector.OnGestureListener, @Nullable android.os.Handler); + ctor public GestureDetector(@Nullable @UiContext android.content.Context, @NonNull android.view.GestureDetector.OnGestureListener, @Nullable android.os.Handler, boolean); method public boolean isLongpressEnabled(); - method public boolean onGenericMotionEvent(android.view.MotionEvent); - method public boolean onTouchEvent(android.view.MotionEvent); - method public void setContextClickListener(android.view.GestureDetector.OnContextClickListener); + method public boolean onGenericMotionEvent(@NonNull android.view.MotionEvent); + method public boolean onTouchEvent(@NonNull android.view.MotionEvent); + method public void setContextClickListener(@Nullable android.view.GestureDetector.OnContextClickListener); method public void setIsLongpressEnabled(boolean); - method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener); + method public void setOnDoubleTapListener(@Nullable android.view.GestureDetector.OnDoubleTapListener); } public static interface GestureDetector.OnContextClickListener { - method public boolean onContextClick(android.view.MotionEvent); + method public boolean onContextClick(@NonNull android.view.MotionEvent); } public static interface GestureDetector.OnDoubleTapListener { - method public boolean onDoubleTap(android.view.MotionEvent); - method public boolean onDoubleTapEvent(android.view.MotionEvent); - method public boolean onSingleTapConfirmed(android.view.MotionEvent); + method public boolean onDoubleTap(@NonNull android.view.MotionEvent); + method public boolean onDoubleTapEvent(@NonNull android.view.MotionEvent); + method public boolean onSingleTapConfirmed(@NonNull android.view.MotionEvent); } public static interface GestureDetector.OnGestureListener { - method public boolean onDown(android.view.MotionEvent); - method public boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float); - method public void onLongPress(android.view.MotionEvent); - method public boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float); - method public void onShowPress(android.view.MotionEvent); - method public boolean onSingleTapUp(android.view.MotionEvent); + method public boolean onDown(@NonNull android.view.MotionEvent); + method public boolean onFling(@NonNull android.view.MotionEvent, @NonNull android.view.MotionEvent, float, float); + method public void onLongPress(@NonNull android.view.MotionEvent); + method public boolean onScroll(@NonNull android.view.MotionEvent, @NonNull android.view.MotionEvent, float, float); + method public void onShowPress(@NonNull android.view.MotionEvent); + method public boolean onSingleTapUp(@NonNull android.view.MotionEvent); } public static class GestureDetector.SimpleOnGestureListener implements android.view.GestureDetector.OnContextClickListener android.view.GestureDetector.OnDoubleTapListener android.view.GestureDetector.OnGestureListener { ctor public GestureDetector.SimpleOnGestureListener(); - method public boolean onContextClick(android.view.MotionEvent); - method public boolean onDoubleTap(android.view.MotionEvent); - method public boolean onDoubleTapEvent(android.view.MotionEvent); - method public boolean onDown(android.view.MotionEvent); - method public boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float); - method public void onLongPress(android.view.MotionEvent); - method public boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float); - method public void onShowPress(android.view.MotionEvent); - method public boolean onSingleTapConfirmed(android.view.MotionEvent); - method public boolean onSingleTapUp(android.view.MotionEvent); + method public boolean onContextClick(@NonNull android.view.MotionEvent); + method public boolean onDoubleTap(@NonNull android.view.MotionEvent); + method public boolean onDoubleTapEvent(@NonNull android.view.MotionEvent); + method public boolean onDown(@NonNull android.view.MotionEvent); + method public boolean onFling(@NonNull android.view.MotionEvent, @NonNull android.view.MotionEvent, float, float); + method public void onLongPress(@NonNull android.view.MotionEvent); + method public boolean onScroll(@NonNull android.view.MotionEvent, @NonNull android.view.MotionEvent, float, float); + method public void onShowPress(@NonNull android.view.MotionEvent); + method public boolean onSingleTapConfirmed(@NonNull android.view.MotionEvent); + method public boolean onSingleTapUp(@NonNull android.view.MotionEvent); } public class Gravity { ctor public Gravity(); method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect); - method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int); - method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect); - method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int); - method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect); - method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int); + method public static void apply(int, int, int, @NonNull android.graphics.Rect, @NonNull android.graphics.Rect, int); + method public static void apply(int, int, int, @NonNull android.graphics.Rect, int, int, @NonNull android.graphics.Rect); + method public static void apply(int, int, int, @NonNull android.graphics.Rect, int, int, @NonNull android.graphics.Rect, int); + method public static void applyDisplay(int, @NonNull android.graphics.Rect, @NonNull android.graphics.Rect); + method public static void applyDisplay(int, @NonNull android.graphics.Rect, @NonNull android.graphics.Rect, int); method public static int getAbsoluteGravity(int, int); method public static boolean isHorizontal(int); method public static boolean isVertical(int); @@ -48678,60 +48678,60 @@ package android.view { public interface MenuItem { method public boolean collapseActionView(); method public boolean expandActionView(); - method public android.view.ActionProvider getActionProvider(); - method public android.view.View getActionView(); + method @Nullable public android.view.ActionProvider getActionProvider(); + method @Nullable public android.view.View getActionView(); method public default int getAlphabeticModifiers(); method public char getAlphabeticShortcut(); - method public default CharSequence getContentDescription(); + method @Nullable public default CharSequence getContentDescription(); method public int getGroupId(); - method public android.graphics.drawable.Drawable getIcon(); + method @Nullable public android.graphics.drawable.Drawable getIcon(); method @Nullable public default android.graphics.BlendMode getIconTintBlendMode(); method @Nullable public default android.content.res.ColorStateList getIconTintList(); method @Nullable public default android.graphics.PorterDuff.Mode getIconTintMode(); - method public android.content.Intent getIntent(); + method @Nullable public android.content.Intent getIntent(); method public int getItemId(); - method public android.view.ContextMenu.ContextMenuInfo getMenuInfo(); + method @Nullable public android.view.ContextMenu.ContextMenuInfo getMenuInfo(); method public default int getNumericModifiers(); method public char getNumericShortcut(); method public int getOrder(); - method public android.view.SubMenu getSubMenu(); - method public CharSequence getTitle(); - method public CharSequence getTitleCondensed(); - method public default CharSequence getTooltipText(); + method @Nullable public android.view.SubMenu getSubMenu(); + method @Nullable public CharSequence getTitle(); + method @Nullable public CharSequence getTitleCondensed(); + method @Nullable public default CharSequence getTooltipText(); method public boolean hasSubMenu(); method public boolean isActionViewExpanded(); method public boolean isCheckable(); method public boolean isChecked(); method public boolean isEnabled(); method public boolean isVisible(); - method public android.view.MenuItem setActionProvider(android.view.ActionProvider); - method public android.view.MenuItem setActionView(android.view.View); - method public android.view.MenuItem setActionView(@LayoutRes int); - method public android.view.MenuItem setAlphabeticShortcut(char); - method public default android.view.MenuItem setAlphabeticShortcut(char, int); - method public android.view.MenuItem setCheckable(boolean); - method public android.view.MenuItem setChecked(boolean); - method public default android.view.MenuItem setContentDescription(CharSequence); - method public android.view.MenuItem setEnabled(boolean); - method public android.view.MenuItem setIcon(android.graphics.drawable.Drawable); - method public android.view.MenuItem setIcon(@DrawableRes int); + method @NonNull public android.view.MenuItem setActionProvider(@Nullable android.view.ActionProvider); + method @NonNull public android.view.MenuItem setActionView(@Nullable android.view.View); + method @NonNull public android.view.MenuItem setActionView(@LayoutRes int); + method @NonNull public android.view.MenuItem setAlphabeticShortcut(char); + method @NonNull public default android.view.MenuItem setAlphabeticShortcut(char, int); + method @NonNull public android.view.MenuItem setCheckable(boolean); + method @NonNull public android.view.MenuItem setChecked(boolean); + method @NonNull public default android.view.MenuItem setContentDescription(@Nullable CharSequence); + method @NonNull public android.view.MenuItem setEnabled(boolean); + method @NonNull public android.view.MenuItem setIcon(@Nullable android.graphics.drawable.Drawable); + method @NonNull public android.view.MenuItem setIcon(@DrawableRes int); method @NonNull public default android.view.MenuItem setIconTintBlendMode(@Nullable android.graphics.BlendMode); - method public default android.view.MenuItem setIconTintList(@Nullable android.content.res.ColorStateList); + method @NonNull public default android.view.MenuItem setIconTintList(@Nullable android.content.res.ColorStateList); method @NonNull public default android.view.MenuItem setIconTintMode(@Nullable android.graphics.PorterDuff.Mode); - method public android.view.MenuItem setIntent(android.content.Intent); - method public android.view.MenuItem setNumericShortcut(char); - method public default android.view.MenuItem setNumericShortcut(char, int); - method public android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener); - method public android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener); - method public android.view.MenuItem setShortcut(char, char); - method public default android.view.MenuItem setShortcut(char, char, int, int); + method @NonNull public android.view.MenuItem setIntent(@Nullable android.content.Intent); + method @NonNull public android.view.MenuItem setNumericShortcut(char); + method @NonNull public default android.view.MenuItem setNumericShortcut(char, int); + method @NonNull public android.view.MenuItem setOnActionExpandListener(@Nullable android.view.MenuItem.OnActionExpandListener); + method @NonNull public android.view.MenuItem setOnMenuItemClickListener(@Nullable android.view.MenuItem.OnMenuItemClickListener); + method @NonNull public android.view.MenuItem setShortcut(char, char); + method @NonNull public default android.view.MenuItem setShortcut(char, char, int, int); method public void setShowAsAction(int); - method public android.view.MenuItem setShowAsActionFlags(int); - method public android.view.MenuItem setTitle(CharSequence); - method public android.view.MenuItem setTitle(@StringRes int); - method public android.view.MenuItem setTitleCondensed(CharSequence); - method public default android.view.MenuItem setTooltipText(CharSequence); - method public android.view.MenuItem setVisible(boolean); + method @NonNull public android.view.MenuItem setShowAsActionFlags(int); + method @NonNull public android.view.MenuItem setTitle(@Nullable CharSequence); + method @NonNull public android.view.MenuItem setTitle(@StringRes int); + method @NonNull public android.view.MenuItem setTitleCondensed(@Nullable CharSequence); + method @NonNull public default android.view.MenuItem setTooltipText(@Nullable CharSequence); + method @NonNull public android.view.MenuItem setVisible(boolean); field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2 field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8 field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1 @@ -48740,12 +48740,12 @@ package android.view { } public static interface MenuItem.OnActionExpandListener { - method public boolean onMenuItemActionCollapse(android.view.MenuItem); - method public boolean onMenuItemActionExpand(android.view.MenuItem); + method public boolean onMenuItemActionCollapse(@NonNull android.view.MenuItem); + method public boolean onMenuItemActionExpand(@NonNull android.view.MenuItem); } public static interface MenuItem.OnMenuItemClickListener { - method public boolean onMenuItemClick(android.view.MenuItem); + method public boolean onMenuItemClick(@NonNull android.view.MenuItem); } public final class MotionEvent extends android.view.InputEvent implements android.os.Parcelable { @@ -49021,10 +49021,10 @@ package android.view { } public final class PointerIcon implements android.os.Parcelable { - method public static android.view.PointerIcon create(@NonNull android.graphics.Bitmap, float, float); + method @NonNull public static android.view.PointerIcon create(@NonNull android.graphics.Bitmap, float, float); method public int describeContents(); - method public static android.view.PointerIcon getSystemIcon(@NonNull android.content.Context, int); - method public static android.view.PointerIcon load(@NonNull android.content.res.Resources, @XmlRes int); + method @NonNull public static android.view.PointerIcon getSystemIcon(@NonNull android.content.Context, int); + method @NonNull public static android.view.PointerIcon load(@NonNull android.content.res.Resources, @XmlRes int); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; field public static final int TYPE_ALIAS = 1010; // 0x3f2 @@ -49067,8 +49067,8 @@ package android.view { } public class ScaleGestureDetector { - ctor public ScaleGestureDetector(android.content.Context, android.view.ScaleGestureDetector.OnScaleGestureListener); - ctor public ScaleGestureDetector(android.content.Context, android.view.ScaleGestureDetector.OnScaleGestureListener, android.os.Handler); + ctor public ScaleGestureDetector(@NonNull android.content.Context, @NonNull android.view.ScaleGestureDetector.OnScaleGestureListener); + ctor public ScaleGestureDetector(@NonNull android.content.Context, @NonNull android.view.ScaleGestureDetector.OnScaleGestureListener, @Nullable android.os.Handler); method public float getCurrentSpan(); method public float getCurrentSpanX(); method public float getCurrentSpanY(); @@ -49083,22 +49083,22 @@ package android.view { method public boolean isInProgress(); method public boolean isQuickScaleEnabled(); method public boolean isStylusScaleEnabled(); - method public boolean onTouchEvent(android.view.MotionEvent); + method public boolean onTouchEvent(@NonNull android.view.MotionEvent); method public void setQuickScaleEnabled(boolean); method public void setStylusScaleEnabled(boolean); } public static interface ScaleGestureDetector.OnScaleGestureListener { - method public boolean onScale(android.view.ScaleGestureDetector); - method public boolean onScaleBegin(android.view.ScaleGestureDetector); - method public void onScaleEnd(android.view.ScaleGestureDetector); + method public boolean onScale(@NonNull android.view.ScaleGestureDetector); + method public boolean onScaleBegin(@NonNull android.view.ScaleGestureDetector); + method public void onScaleEnd(@NonNull android.view.ScaleGestureDetector); } public static class ScaleGestureDetector.SimpleOnScaleGestureListener implements android.view.ScaleGestureDetector.OnScaleGestureListener { ctor public ScaleGestureDetector.SimpleOnScaleGestureListener(); - method public boolean onScale(android.view.ScaleGestureDetector); - method public boolean onScaleBegin(android.view.ScaleGestureDetector); - method public void onScaleEnd(android.view.ScaleGestureDetector); + method public boolean onScale(@NonNull android.view.ScaleGestureDetector); + method public boolean onScaleBegin(@NonNull android.view.ScaleGestureDetector); + method public void onScaleEnd(@NonNull android.view.ScaleGestureDetector); } @UiThread public interface ScrollCaptureCallback { @@ -49469,7 +49469,7 @@ package android.view { method public boolean dispatchKeyShortcutEvent(android.view.KeyEvent); method public boolean dispatchNestedFling(float, float, boolean); method public boolean dispatchNestedPreFling(float, float); - method public boolean dispatchNestedPrePerformAccessibilityAction(int, android.os.Bundle); + method public boolean dispatchNestedPrePerformAccessibilityAction(int, @Nullable android.os.Bundle); method public boolean dispatchNestedPreScroll(int, int, @Nullable @Size(2) int[], @Nullable @Size(2) int[]); method public boolean dispatchNestedScroll(int, int, int, int, @Nullable @Size(2) int[]); method public void dispatchPointerCaptureChanged(boolean); @@ -49831,7 +49831,7 @@ package android.view { method @Deprecated public void onWindowSystemUiVisibilityChanged(int); method protected void onWindowVisibilityChanged(int); method protected boolean overScrollBy(int, int, int, int, int, int, int, int, boolean); - method public boolean performAccessibilityAction(int, android.os.Bundle); + method public boolean performAccessibilityAction(int, @Nullable android.os.Bundle); method public boolean performClick(); method public boolean performContextClick(float, float); method public boolean performContextClick(); @@ -50242,15 +50242,15 @@ package android.view { public static class View.AccessibilityDelegate { ctor public View.AccessibilityDelegate(); method public void addExtraDataToAccessibilityNodeInfo(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityNodeInfo, @NonNull String, @Nullable android.os.Bundle); - method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent); - method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider(android.view.View); - method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent); - method public void onInitializeAccessibilityNodeInfo(android.view.View, android.view.accessibility.AccessibilityNodeInfo); - method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent); - method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent); - method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle); - method public void sendAccessibilityEvent(android.view.View, int); - method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent); + method public boolean dispatchPopulateAccessibilityEvent(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityEvent); + method @Nullable public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider(@NonNull android.view.View); + method public void onInitializeAccessibilityEvent(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityEvent); + method public void onInitializeAccessibilityNodeInfo(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityNodeInfo); + method public void onPopulateAccessibilityEvent(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityEvent); + method public boolean onRequestSendAccessibilityEvent(@NonNull android.view.ViewGroup, @NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityEvent); + method public boolean performAccessibilityAction(@NonNull android.view.View, int, @Nullable android.os.Bundle); + method public void sendAccessibilityEvent(@NonNull android.view.View, int); + method public void sendAccessibilityEventUnchecked(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityEvent); } public static class View.BaseSavedState extends android.view.AbsSavedState { @@ -50280,12 +50280,12 @@ package android.view { } public static interface View.OnApplyWindowInsetsListener { - method public android.view.WindowInsets onApplyWindowInsets(android.view.View, android.view.WindowInsets); + method @NonNull public android.view.WindowInsets onApplyWindowInsets(@NonNull android.view.View, @NonNull android.view.WindowInsets); } public static interface View.OnAttachStateChangeListener { - method public void onViewAttachedToWindow(android.view.View); - method public void onViewDetachedFromWindow(android.view.View); + method public void onViewAttachedToWindow(@NonNull android.view.View); + method public void onViewDetachedFromWindow(@NonNull android.view.View); } public static interface View.OnCapturedPointerListener { @@ -50354,7 +50354,7 @@ package android.view { public class ViewConfiguration { ctor @Deprecated public ViewConfiguration(); - method public static android.view.ViewConfiguration get(@UiContext android.content.Context); + method public static android.view.ViewConfiguration get(@NonNull @UiContext android.content.Context); method @Deprecated @FloatRange(from=1.0) public static float getAmbiguousGestureMultiplier(); method public static long getDefaultActionModeHideDuration(); method public static int getDoubleTapTimeout(); @@ -50673,8 +50673,8 @@ package android.view { method public boolean canResolveLayoutDirection(); method public boolean canResolveTextAlignment(); method public boolean canResolveTextDirection(); - method public void childDrawableStateChanged(android.view.View); - method public void childHasTransientStateChanged(android.view.View, boolean); + method public void childDrawableStateChanged(@NonNull android.view.View); + method public void childHasTransientStateChanged(@NonNull android.view.View, boolean); method public void clearChildFocus(android.view.View); method public void createContextMenu(android.view.ContextMenu); method public android.view.View focusSearch(android.view.View, int); @@ -50692,23 +50692,23 @@ package android.view { method public boolean isTextAlignmentResolved(); method public boolean isTextDirectionResolved(); method public android.view.View keyboardNavigationClusterSearch(android.view.View, int); - method public void notifySubtreeAccessibilityStateChanged(android.view.View, @NonNull android.view.View, int); + method public void notifySubtreeAccessibilityStateChanged(@NonNull android.view.View, @NonNull android.view.View, int); method public default void onDescendantInvalidated(@NonNull android.view.View, @NonNull android.view.View); - method public boolean onNestedFling(android.view.View, float, float, boolean); - method public boolean onNestedPreFling(android.view.View, float, float); - method public boolean onNestedPrePerformAccessibilityAction(android.view.View, int, android.os.Bundle); - method public void onNestedPreScroll(android.view.View, int, int, int[]); - method public void onNestedScroll(android.view.View, int, int, int, int); - method public void onNestedScrollAccepted(android.view.View, android.view.View, int); - method public boolean onStartNestedScroll(android.view.View, android.view.View, int); - method public void onStopNestedScroll(android.view.View); + method public boolean onNestedFling(@NonNull android.view.View, float, float, boolean); + method public boolean onNestedPreFling(@NonNull android.view.View, float, float); + method public boolean onNestedPrePerformAccessibilityAction(@NonNull android.view.View, int, @Nullable android.os.Bundle); + method public void onNestedPreScroll(@NonNull android.view.View, int, int, @NonNull int[]); + method public void onNestedScroll(@NonNull android.view.View, int, int, int, int); + method public void onNestedScrollAccepted(@NonNull android.view.View, @NonNull android.view.View, int); + method public boolean onStartNestedScroll(@NonNull android.view.View, @NonNull android.view.View, int); + method public void onStopNestedScroll(@NonNull android.view.View); method public void recomputeViewAttributes(android.view.View); method public void requestChildFocus(android.view.View, android.view.View); - method public boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean); + method public boolean requestChildRectangleOnScreen(@NonNull android.view.View, android.graphics.Rect, boolean); method public void requestDisallowInterceptTouchEvent(boolean); method public void requestFitSystemWindows(); method public void requestLayout(); - method public boolean requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent); + method public boolean requestSendAccessibilityEvent(@NonNull android.view.View, android.view.accessibility.AccessibilityEvent); method public void requestTransparentRegion(android.view.View); method public boolean showContextMenuForChild(android.view.View); method public boolean showContextMenuForChild(android.view.View, float, float); @@ -50717,43 +50717,43 @@ package android.view { } public class ViewPropertyAnimator { - method public android.view.ViewPropertyAnimator alpha(@FloatRange(from=0.0f, to=1.0f) float); - method public android.view.ViewPropertyAnimator alphaBy(float); + method @NonNull public android.view.ViewPropertyAnimator alpha(@FloatRange(from=0.0f, to=1.0f) float); + method @NonNull public android.view.ViewPropertyAnimator alphaBy(float); method public void cancel(); method public long getDuration(); - method public android.animation.TimeInterpolator getInterpolator(); + method @Nullable public android.animation.TimeInterpolator getInterpolator(); method public long getStartDelay(); - method public android.view.ViewPropertyAnimator rotation(float); - method public android.view.ViewPropertyAnimator rotationBy(float); - method public android.view.ViewPropertyAnimator rotationX(float); - method public android.view.ViewPropertyAnimator rotationXBy(float); - method public android.view.ViewPropertyAnimator rotationY(float); - method public android.view.ViewPropertyAnimator rotationYBy(float); - method public android.view.ViewPropertyAnimator scaleX(float); - method public android.view.ViewPropertyAnimator scaleXBy(float); - method public android.view.ViewPropertyAnimator scaleY(float); - method public android.view.ViewPropertyAnimator scaleYBy(float); - method public android.view.ViewPropertyAnimator setDuration(long); - method public android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator); - method public android.view.ViewPropertyAnimator setListener(android.animation.Animator.AnimatorListener); - method public android.view.ViewPropertyAnimator setStartDelay(long); - method public android.view.ViewPropertyAnimator setUpdateListener(android.animation.ValueAnimator.AnimatorUpdateListener); + method @NonNull public android.view.ViewPropertyAnimator rotation(float); + method @NonNull public android.view.ViewPropertyAnimator rotationBy(float); + method @NonNull public android.view.ViewPropertyAnimator rotationX(float); + method @NonNull public android.view.ViewPropertyAnimator rotationXBy(float); + method @NonNull public android.view.ViewPropertyAnimator rotationY(float); + method @NonNull public android.view.ViewPropertyAnimator rotationYBy(float); + method @NonNull public android.view.ViewPropertyAnimator scaleX(float); + method @NonNull public android.view.ViewPropertyAnimator scaleXBy(float); + method @NonNull public android.view.ViewPropertyAnimator scaleY(float); + method @NonNull public android.view.ViewPropertyAnimator scaleYBy(float); + method @NonNull public android.view.ViewPropertyAnimator setDuration(long); + method @NonNull public android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator); + method @NonNull public android.view.ViewPropertyAnimator setListener(@Nullable android.animation.Animator.AnimatorListener); + method @NonNull public android.view.ViewPropertyAnimator setStartDelay(long); + method @NonNull public android.view.ViewPropertyAnimator setUpdateListener(@Nullable android.animation.ValueAnimator.AnimatorUpdateListener); method public void start(); - method public android.view.ViewPropertyAnimator translationX(float); - method public android.view.ViewPropertyAnimator translationXBy(float); - method public android.view.ViewPropertyAnimator translationY(float); - method public android.view.ViewPropertyAnimator translationYBy(float); - method public android.view.ViewPropertyAnimator translationZ(float); - method public android.view.ViewPropertyAnimator translationZBy(float); - method public android.view.ViewPropertyAnimator withEndAction(Runnable); - method public android.view.ViewPropertyAnimator withLayer(); - method public android.view.ViewPropertyAnimator withStartAction(Runnable); - method public android.view.ViewPropertyAnimator x(float); - method public android.view.ViewPropertyAnimator xBy(float); - method public android.view.ViewPropertyAnimator y(float); - method public android.view.ViewPropertyAnimator yBy(float); - method public android.view.ViewPropertyAnimator z(float); - method public android.view.ViewPropertyAnimator zBy(float); + method @NonNull public android.view.ViewPropertyAnimator translationX(float); + method @NonNull public android.view.ViewPropertyAnimator translationXBy(float); + method @NonNull public android.view.ViewPropertyAnimator translationY(float); + method @NonNull public android.view.ViewPropertyAnimator translationYBy(float); + method @NonNull public android.view.ViewPropertyAnimator translationZ(float); + method @NonNull public android.view.ViewPropertyAnimator translationZBy(float); + method @NonNull public android.view.ViewPropertyAnimator withEndAction(Runnable); + method @NonNull public android.view.ViewPropertyAnimator withLayer(); + method @NonNull public android.view.ViewPropertyAnimator withStartAction(Runnable); + method @NonNull public android.view.ViewPropertyAnimator x(float); + method @NonNull public android.view.ViewPropertyAnimator xBy(float); + method @NonNull public android.view.ViewPropertyAnimator y(float); + method @NonNull public android.view.ViewPropertyAnimator yBy(float); + method @NonNull public android.view.ViewPropertyAnimator z(float); + method @NonNull public android.view.ViewPropertyAnimator zBy(float); } public abstract class ViewStructure { @@ -51944,10 +51944,10 @@ package android.view.accessibility { public abstract class AccessibilityNodeProvider { ctor public AccessibilityNodeProvider(); method public void addExtraDataToAccessibilityNodeInfo(int, android.view.accessibility.AccessibilityNodeInfo, String, android.os.Bundle); - method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int); - method public java.util.List findAccessibilityNodeInfosByText(String, int); - method public android.view.accessibility.AccessibilityNodeInfo findFocus(int); - method public boolean performAction(int, int, android.os.Bundle); + method @Nullable public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int); + method @Nullable public java.util.List findAccessibilityNodeInfosByText(String, int); + method @Nullable public android.view.accessibility.AccessibilityNodeInfo findFocus(int); + method public boolean performAction(int, int, @Nullable android.os.Bundle); field public static final int HOST_VIEW_ID = -1; // 0xffffffff } @@ -51955,23 +51955,23 @@ package android.view.accessibility { ctor public AccessibilityRecord(); ctor public AccessibilityRecord(@NonNull android.view.accessibility.AccessibilityRecord); method public int getAddedCount(); - method public CharSequence getBeforeText(); - method public CharSequence getClassName(); - method public CharSequence getContentDescription(); + method @Nullable public CharSequence getBeforeText(); + method @Nullable public CharSequence getClassName(); + method @Nullable public CharSequence getContentDescription(); method public int getCurrentItemIndex(); method public int getDisplayId(); method public int getFromIndex(); method public int getItemCount(); method public int getMaxScrollX(); method public int getMaxScrollY(); - method public android.os.Parcelable getParcelableData(); + method @Nullable public android.os.Parcelable getParcelableData(); method public int getRemovedCount(); method public int getScrollDeltaX(); method public int getScrollDeltaY(); method public int getScrollX(); method public int getScrollY(); - method public android.view.accessibility.AccessibilityNodeInfo getSource(); - method public java.util.List getText(); + method @Nullable public android.view.accessibility.AccessibilityNodeInfo getSource(); + method @NonNull public java.util.List getText(); method public int getToIndex(); method public int getWindowId(); method public boolean isChecked(); @@ -51979,14 +51979,14 @@ package android.view.accessibility { method public boolean isFullScreen(); method public boolean isPassword(); method public boolean isScrollable(); - method @Deprecated public static android.view.accessibility.AccessibilityRecord obtain(android.view.accessibility.AccessibilityRecord); - method @Deprecated public static android.view.accessibility.AccessibilityRecord obtain(); + method @Deprecated @NonNull public static android.view.accessibility.AccessibilityRecord obtain(@NonNull android.view.accessibility.AccessibilityRecord); + method @Deprecated @NonNull public static android.view.accessibility.AccessibilityRecord obtain(); method @Deprecated public void recycle(); method public void setAddedCount(int); - method public void setBeforeText(CharSequence); + method public void setBeforeText(@Nullable CharSequence); method public void setChecked(boolean); - method public void setClassName(CharSequence); - method public void setContentDescription(CharSequence); + method public void setClassName(@Nullable CharSequence); + method public void setContentDescription(@Nullable CharSequence); method public void setCurrentItemIndex(int); method public void setEnabled(boolean); method public void setFromIndex(int); @@ -51994,7 +51994,7 @@ package android.view.accessibility { method public void setItemCount(int); method public void setMaxScrollX(int); method public void setMaxScrollY(int); - method public void setParcelableData(android.os.Parcelable); + method public void setParcelableData(@Nullable android.os.Parcelable); method public void setPassword(boolean); method public void setRemovedCount(int); method public void setScrollDeltaX(int); @@ -52002,7 +52002,7 @@ package android.view.accessibility { method public void setScrollX(int); method public void setScrollY(int); method public void setScrollable(boolean); - method public void setSource(android.view.View); + method public void setSource(@Nullable android.view.View); method public void setSource(@Nullable android.view.View, int); method public void setToIndex(int); } @@ -52325,7 +52325,7 @@ package android.view.animation { } public class PathInterpolator extends android.view.animation.BaseInterpolator { - ctor public PathInterpolator(android.graphics.Path); + ctor public PathInterpolator(@NonNull android.graphics.Path); ctor public PathInterpolator(float, float); ctor public PathInterpolator(float, float, float, float); ctor public PathInterpolator(android.content.Context, android.util.AttributeSet); diff --git a/core/java/android/view/ActionProvider.java b/core/java/android/view/ActionProvider.java index e1be0fe8d6d2e..1680fd28f1e51 100644 --- a/core/java/android/view/ActionProvider.java +++ b/core/java/android/view/ActionProvider.java @@ -16,6 +16,8 @@ package android.view; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.util.Log; @@ -67,7 +69,7 @@ public abstract class ActionProvider { * * @param context Context for accessing resources. */ - public ActionProvider(Context context) { + public ActionProvider(@NonNull Context context) { } /** @@ -82,7 +84,7 @@ public abstract class ActionProvider { * @deprecated use {@link #onCreateActionView(MenuItem)} */ @Deprecated - public abstract View onCreateActionView(); + public abstract @NonNull View onCreateActionView(); /** * Factory method called by the Android framework to create new action views. @@ -96,7 +98,7 @@ public abstract class ActionProvider { * @param forItem MenuItem to create the action view for * @return the new action view */ - public View onCreateActionView(MenuItem forItem) { + public @NonNull View onCreateActionView(@NonNull MenuItem forItem) { return onCreateActionView(); } @@ -200,7 +202,7 @@ public abstract class ActionProvider { * * @param subMenu Submenu that will be displayed */ - public void onPrepareSubMenu(SubMenu subMenu) { + public void onPrepareSubMenu(@NonNull SubMenu subMenu) { } /** @@ -220,7 +222,7 @@ public abstract class ActionProvider { * @hide Internal use only */ @UnsupportedAppUsage - public void setSubUiVisibilityListener(SubUiVisibilityListener listener) { + public void setSubUiVisibilityListener(@Nullable SubUiVisibilityListener listener) { mSubUiVisibilityListener = listener; } @@ -230,7 +232,7 @@ public abstract class ActionProvider { * * @param listener listener to set */ - public void setVisibilityListener(VisibilityListener listener) { + public void setVisibilityListener(@Nullable VisibilityListener listener) { if (mVisibilityListener != null) { Log.w(TAG, "setVisibilityListener: Setting a new ActionProvider.VisibilityListener " + "when one is already set. Are you reusing this " + getClass().getSimpleName() + diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java index 9b36b9bcb460a..b3b7f10d8c7ef 100644 --- a/core/java/android/view/DisplayCutout.java +++ b/core/java/android/view/DisplayCutout.java @@ -260,7 +260,7 @@ public final class DisplayCutout { private final float mScale; public CutoutPathParserInfo(int displayWidth, int displayHeight, float density, - String cutoutSpec, @Rotation int rotation, float scale) { + @Nullable String cutoutSpec, @Rotation int rotation, float scale) { mDisplayWidth = displayWidth; mDisplayHeight = displayHeight; mDensity = density; @@ -269,7 +269,7 @@ public final class DisplayCutout { mScale = scale; } - public CutoutPathParserInfo(CutoutPathParserInfo cutoutPathParserInfo) { + public CutoutPathParserInfo(@NonNull CutoutPathParserInfo cutoutPathParserInfo) { mDisplayWidth = cutoutPathParserInfo.mDisplayWidth; mDisplayHeight = cutoutPathParserInfo.mDisplayHeight; mDensity = cutoutPathParserInfo.mDensity; diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java index 63a8300ce6aac..57ba7e9e816f4 100644 --- a/core/java/android/view/GestureDetector.java +++ b/core/java/android/view/GestureDetector.java @@ -23,6 +23,8 @@ import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFI import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SINGLE_TAP; import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__UNKNOWN_CLASSIFICATION; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.UiContext; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; @@ -68,7 +70,7 @@ public class GestureDetector { * * @param e The down motion event. */ - boolean onDown(MotionEvent e); + boolean onDown(@NonNull MotionEvent e); /** * The user has performed a down {@link MotionEvent} and not performed @@ -78,7 +80,7 @@ public class GestureDetector { * * @param e The down motion event */ - void onShowPress(MotionEvent e); + void onShowPress(@NonNull MotionEvent e); /** * Notified when a tap occurs with the up {@link MotionEvent} @@ -87,7 +89,7 @@ public class GestureDetector { * @param e The up motion event that completed the first tap * @return true if the event is consumed, else false */ - boolean onSingleTapUp(MotionEvent e); + boolean onSingleTapUp(@NonNull MotionEvent e); /** * Notified when a scroll occurs with the initial on down {@link MotionEvent} and the @@ -104,7 +106,8 @@ public class GestureDetector { * and {@code e2}. * @return true if the event is consumed, else false */ - boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY); + boolean onScroll(@NonNull MotionEvent e1, @NonNull MotionEvent e2, float distanceX, + float distanceY); /** * Notified when a long press occurs with the initial on down {@link MotionEvent} @@ -112,7 +115,7 @@ public class GestureDetector { * * @param e The initial on down motion event that started the longpress. */ - void onLongPress(MotionEvent e); + void onLongPress(@NonNull MotionEvent e); /** * Notified of a fling event when it occurs with the initial on down {@link MotionEvent} @@ -127,7 +130,8 @@ public class GestureDetector { * along the y axis. * @return true if the event is consumed, else false */ - boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY); + boolean onFling(@NonNull MotionEvent e1, @NonNull MotionEvent e2, float velocityX, + float velocityY); } /** @@ -146,7 +150,7 @@ public class GestureDetector { * @param e The down motion event of the single-tap. * @return true if the event is consumed, else false */ - boolean onSingleTapConfirmed(MotionEvent e); + boolean onSingleTapConfirmed(@NonNull MotionEvent e); /** * Notified when a double-tap occurs. Triggered on the down event of second tap. @@ -154,7 +158,7 @@ public class GestureDetector { * @param e The down motion event of the first tap of the double-tap. * @return true if the event is consumed, else false */ - boolean onDoubleTap(MotionEvent e); + boolean onDoubleTap(@NonNull MotionEvent e); /** * Notified when an event within a double-tap gesture occurs, including @@ -163,7 +167,7 @@ public class GestureDetector { * @param e The motion event that occurred during the double-tap gesture. * @return true if the event is consumed, else false */ - boolean onDoubleTapEvent(MotionEvent e); + boolean onDoubleTapEvent(@NonNull MotionEvent e); } /** @@ -178,7 +182,7 @@ public class GestureDetector { * @param e The motion event that occurred during the context click. * @return true if the event is consumed, else false */ - boolean onContextClick(MotionEvent e); + boolean onContextClick(@NonNull MotionEvent e); } /** @@ -190,43 +194,43 @@ public class GestureDetector { public static class SimpleOnGestureListener implements OnGestureListener, OnDoubleTapListener, OnContextClickListener { - public boolean onSingleTapUp(MotionEvent e) { + public boolean onSingleTapUp(@NonNull MotionEvent e) { return false; } - public void onLongPress(MotionEvent e) { + public void onLongPress(@NonNull MotionEvent e) { } - public boolean onScroll(MotionEvent e1, MotionEvent e2, + public boolean onScroll(@NonNull MotionEvent e1, @NonNull MotionEvent e2, float distanceX, float distanceY) { return false; } - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, + public boolean onFling(@NonNull MotionEvent e1, @NonNull MotionEvent e2, float velocityX, float velocityY) { return false; } - public void onShowPress(MotionEvent e) { + public void onShowPress(@NonNull MotionEvent e) { } - public boolean onDown(MotionEvent e) { + public boolean onDown(@NonNull MotionEvent e) { return false; } - public boolean onDoubleTap(MotionEvent e) { + public boolean onDoubleTap(@NonNull MotionEvent e) { return false; } - public boolean onDoubleTapEvent(MotionEvent e) { + public boolean onDoubleTapEvent(@NonNull MotionEvent e) { return false; } - public boolean onSingleTapConfirmed(MotionEvent e) { + public boolean onSingleTapConfirmed(@NonNull MotionEvent e) { return false; } - public boolean onContextClick(MotionEvent e) { + public boolean onContextClick(@NonNull MotionEvent e) { return false; } } @@ -348,14 +352,13 @@ public class GestureDetector { * not be null. * @param handler the handler to use * - * @throws NullPointerException if either {@code listener} or - * {@code handler} is null. + * @throws NullPointerException if {@code listener} is null. * * @deprecated Use {@link #GestureDetector(android.content.Context, * android.view.GestureDetector.OnGestureListener, android.os.Handler)} instead. */ @Deprecated - public GestureDetector(OnGestureListener listener, Handler handler) { + public GestureDetector(@NonNull OnGestureListener listener, @Nullable Handler handler) { this(null, listener, handler); } @@ -373,7 +376,7 @@ public class GestureDetector { * android.view.GestureDetector.OnGestureListener)} instead. */ @Deprecated - public GestureDetector(OnGestureListener listener) { + public GestureDetector(@NonNull OnGestureListener listener) { this(null, listener, null); } @@ -392,7 +395,8 @@ public class GestureDetector { * @throws NullPointerException if {@code listener} is null. */ // TODO(b/182007470): Use @ConfigurationContext instead - public GestureDetector(@UiContext Context context, OnGestureListener listener) { + public GestureDetector(@Nullable @UiContext Context context, + @NonNull OnGestureListener listener) { this(context, listener, null); } @@ -411,8 +415,8 @@ public class GestureDetector { * * @throws NullPointerException if {@code listener} is null. */ - public GestureDetector(@UiContext Context context, OnGestureListener listener, - Handler handler) { + public GestureDetector(@Nullable @UiContext Context context, + @NonNull OnGestureListener listener, @Nullable Handler handler) { if (handler != null) { mHandler = new GestureHandler(handler); } else { @@ -442,8 +446,8 @@ public class GestureDetector { * * @throws NullPointerException if {@code listener} is null. */ - public GestureDetector(@UiContext Context context, OnGestureListener listener, Handler handler, - boolean unused) { + public GestureDetector(@Nullable @UiContext Context context, + @NonNull OnGestureListener listener, @Nullable Handler handler, boolean unused) { this(context, listener, handler); } @@ -486,7 +490,7 @@ public class GestureDetector { * @param onDoubleTapListener the listener invoked for all the callbacks, or * null to stop listening for double-tap gestures. */ - public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener) { + public void setOnDoubleTapListener(@Nullable OnDoubleTapListener onDoubleTapListener) { mDoubleTapListener = onDoubleTapListener; } @@ -496,7 +500,7 @@ public class GestureDetector { * @param onContextClickListener the listener invoked for all the callbacks, or null to stop * listening for context clicks. */ - public void setContextClickListener(OnContextClickListener onContextClickListener) { + public void setContextClickListener(@Nullable OnContextClickListener onContextClickListener) { mContextClickListener = onContextClickListener; } @@ -528,7 +532,7 @@ public class GestureDetector { * @return true if the {@link OnGestureListener} consumed the event, * else false. */ - public boolean onTouchEvent(MotionEvent ev) { + public boolean onTouchEvent(@NonNull MotionEvent ev) { if (mInputEventConsistencyVerifier != null) { mInputEventConsistencyVerifier.onTouchEvent(ev, 0); } @@ -800,7 +804,7 @@ public class GestureDetector { * @return true if the {@link OnGestureListener} consumed the event, * else false. */ - public boolean onGenericMotionEvent(MotionEvent ev) { + public boolean onGenericMotionEvent(@NonNull MotionEvent ev) { if (mInputEventConsistencyVerifier != null) { mInputEventConsistencyVerifier.onGenericMotionEvent(ev, 0); } @@ -860,8 +864,8 @@ public class GestureDetector { mIgnoreNextUpEvent = false; } - private boolean isConsideredDoubleTap(MotionEvent firstDown, MotionEvent firstUp, - MotionEvent secondDown) { + private boolean isConsideredDoubleTap(@NonNull MotionEvent firstDown, + @NonNull MotionEvent firstUp, @NonNull MotionEvent secondDown) { if (!mAlwaysInBiggerTapRegion) { return false; } diff --git a/core/java/android/view/Gravity.java b/core/java/android/view/Gravity.java index c8bfd36b2b484..b4cdc6e5deb88 100644 --- a/core/java/android/view/Gravity.java +++ b/core/java/android/view/Gravity.java @@ -17,6 +17,7 @@ package android.view; import android.annotation.IntDef; +import android.annotation.NonNull; import android.graphics.Rect; import java.lang.annotation.Retention; @@ -187,8 +188,8 @@ public class Gravity * @see View#LAYOUT_DIRECTION_LTR * @see View#LAYOUT_DIRECTION_RTL */ - public static void apply(int gravity, int w, int h, Rect container, - Rect outRect, int layoutDirection) { + public static void apply(int gravity, int w, int h, @NonNull Rect container, + @NonNull Rect outRect, int layoutDirection) { int absGravity = getAbsoluteGravity(gravity, layoutDirection); apply(absGravity, w, h, container, 0, 0, outRect); } @@ -214,8 +215,8 @@ public class Gravity * @param outRect Receives the computed frame of the object in its * container. */ - public static void apply(int gravity, int w, int h, Rect container, - int xAdj, int yAdj, Rect outRect) { + public static void apply(int gravity, int w, int h, @NonNull Rect container, + int xAdj, int yAdj, @NonNull Rect outRect) { switch (gravity&((AXIS_PULL_BEFORE|AXIS_PULL_AFTER)< display.bottom) inoutObj.bottom = display.bottom; @@ -404,7 +405,8 @@ public class Gravity * @see View#LAYOUT_DIRECTION_LTR * @see View#LAYOUT_DIRECTION_RTL */ - public static void applyDisplay(int gravity, Rect display, Rect inoutObj, int layoutDirection) { + public static void applyDisplay(int gravity, @NonNull Rect display, @NonNull Rect inoutObj, + int layoutDirection) { int absGravity = getAbsoluteGravity(gravity, layoutDirection); applyDisplay(absGravity, display, inoutObj); } diff --git a/core/java/android/view/MenuItem.java b/core/java/android/view/MenuItem.java index a2fb596f743ee..bc46d55ae4dc1 100644 --- a/core/java/android/view/MenuItem.java +++ b/core/java/android/view/MenuItem.java @@ -91,7 +91,7 @@ public interface MenuItem { * @return Return true to consume this click and prevent others from * executing. */ - public boolean onMenuItemClick(MenuItem item); + public boolean onMenuItemClick(@NonNull MenuItem item); } /** @@ -110,7 +110,7 @@ public interface MenuItem { * @param item Item that was expanded * @return true if the item should expand, false if expansion should be suppressed. */ - public boolean onMenuItemActionExpand(MenuItem item); + public boolean onMenuItemActionExpand(@NonNull MenuItem item); /** * Called when a menu item with {@link MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW} @@ -118,7 +118,7 @@ public interface MenuItem { * @param item Item that was collapsed * @return true if the item should collapse, false if collapsing should be suppressed. */ - public boolean onMenuItemActionCollapse(MenuItem item); + public boolean onMenuItemActionCollapse(@NonNull MenuItem item); } /** @@ -159,7 +159,7 @@ public interface MenuItem { * @param title The new text to be displayed. * @return This Item so additional setters can be called. */ - public MenuItem setTitle(CharSequence title); + public @NonNull MenuItem setTitle(@Nullable CharSequence title); /** * Change the title associated with this item. @@ -173,14 +173,14 @@ public interface MenuItem { * @see #setTitleCondensed(CharSequence) */ - public MenuItem setTitle(@StringRes int title); + public @NonNull MenuItem setTitle(@StringRes int title); /** * Retrieve the current title of the item. * * @return The title. */ - public CharSequence getTitle(); + public @Nullable CharSequence getTitle(); /** * Change the condensed title associated with this item. The condensed @@ -190,7 +190,7 @@ public interface MenuItem { * @param title The new text to be displayed as the condensed title. * @return This Item so additional setters can be called. */ - public MenuItem setTitleCondensed(CharSequence title); + public @NonNull MenuItem setTitleCondensed(@Nullable CharSequence title); /** * Retrieve the current condensed title of the item. If a condensed @@ -199,7 +199,7 @@ public interface MenuItem { * @return The condensed title, if it exists. * Otherwise the normal title. */ - public CharSequence getTitleCondensed(); + public @Nullable CharSequence getTitleCondensed(); /** * Change the icon associated with this item. This icon will not always be @@ -209,7 +209,7 @@ public interface MenuItem { * @param icon The new icon (as a Drawable) to be displayed. * @return This Item so additional setters can be called. */ - public MenuItem setIcon(Drawable icon); + public @NonNull MenuItem setIcon(@Nullable Drawable icon); /** * Change the icon associated with this item. This icon will not always be @@ -222,7 +222,7 @@ public interface MenuItem { * @param iconRes The new icon (as a resource ID) to be displayed. * @return This Item so additional setters can be called. */ - public MenuItem setIcon(@DrawableRes int iconRes); + public @NonNull MenuItem setIcon(@DrawableRes int iconRes); /** * Returns the icon for this item as a Drawable (getting it from resources if it hasn't been @@ -233,7 +233,7 @@ public interface MenuItem { * * @return The icon as a Drawable. */ - public Drawable getIcon(); + public @Nullable Drawable getIcon(); /** * Applies a tint to this item's icon. Does not modify the @@ -250,15 +250,14 @@ public interface MenuItem { * @see #getIconTintList() * @see Drawable#setTintList(ColorStateList) */ - public default MenuItem setIconTintList(@Nullable ColorStateList tint) { return this; } + public default @NonNull MenuItem setIconTintList(@Nullable ColorStateList tint) { return this; } /** * @return the tint applied to this item's icon * @attr ref android.R.styleable#MenuItem_iconTint * @see #setIconTintList(ColorStateList) */ - @Nullable - public default ColorStateList getIconTintList() { return null; } + public default @Nullable ColorStateList getIconTintList() { return null; } /** * Specifies the blending mode used to apply the tint specified by @@ -304,8 +303,7 @@ public interface MenuItem { * @see #setIconTintBlendMode(BlendMode) * */ - @Nullable - public default PorterDuff.Mode getIconTintMode() { return null; } + public default @Nullable PorterDuff.Mode getIconTintMode() { return null; } /** * Returns the blending mode used to apply the tint to this item's icon, if specified. @@ -315,8 +313,7 @@ public interface MenuItem { * @see #setIconTintBlendMode(BlendMode) * */ - @Nullable - default BlendMode getIconTintBlendMode() { + default @Nullable BlendMode getIconTintBlendMode() { PorterDuff.Mode mode = getIconTintMode(); if (mode != null) { return BlendMode.fromValue(mode.nativeInt); @@ -343,7 +340,7 @@ public interface MenuItem { * modify it later. * @return This Item so additional setters can be called. */ - public MenuItem setIntent(Intent intent); + public @NonNull MenuItem setIntent(@Nullable Intent intent); /** * Return the Intent associated with this item. This returns a @@ -354,7 +351,7 @@ public interface MenuItem { * @return Returns the last value supplied to {@link #setIntent}, or * null. */ - public Intent getIntent(); + public @Nullable Intent getIntent(); /** * Change both the numeric and alphabetic shortcut associated with this @@ -372,7 +369,7 @@ public interface MenuItem { * using a keyboard with alphabetic keys. * @return This Item so additional setters can be called. */ - public MenuItem setShortcut(char numericChar, char alphaChar); + public @NonNull MenuItem setShortcut(char numericChar, char alphaChar); /** * Change both the numeric and alphabetic shortcut associated with this @@ -397,8 +394,8 @@ public interface MenuItem { * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. * @return This Item so additional setters can be called. */ - default public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers, - int alphaModifiers) { + default public @NonNull MenuItem setShortcut(char numericChar, char alphaChar, + int numericModifiers, int alphaModifiers) { if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON && (numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { return setShortcut(numericChar, alphaChar); @@ -416,7 +413,7 @@ public interface MenuItem { * using a 12-key (numeric) keyboard. * @return This Item so additional setters can be called. */ - public MenuItem setNumericShortcut(char numericChar); + public @NonNull MenuItem setNumericShortcut(char numericChar); /** * Change the numeric shortcut and modifiers associated with this item. @@ -431,7 +428,7 @@ public interface MenuItem { * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. * @return This Item so additional setters can be called. */ - default public MenuItem setNumericShortcut(char numericChar, int numericModifiers) { + default public @NonNull MenuItem setNumericShortcut(char numericChar, int numericModifiers) { if ((numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { return setNumericShortcut(numericChar); } else { @@ -475,7 +472,7 @@ public interface MenuItem { * using a keyboard with alphabetic keys. * @return This Item so additional setters can be called. */ - public MenuItem setAlphabeticShortcut(char alphaChar); + public @NonNull MenuItem setAlphabeticShortcut(char alphaChar); /** * Change the alphabetic shortcut associated with this item. The shortcut @@ -495,7 +492,7 @@ public interface MenuItem { * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. * @return This Item so additional setters can be called. */ - default public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) { + default public @NonNull MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) { if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { return setAlphabeticShortcut(alphaChar); } else { @@ -539,7 +536,7 @@ public interface MenuItem { * @see Menu#setGroupCheckable * @return This Item so additional setters can be called. */ - public MenuItem setCheckable(boolean checkable); + public @NonNull MenuItem setCheckable(boolean checkable); /** * Return whether the item can currently display a check mark. @@ -566,7 +563,7 @@ public interface MenuItem { * it. The default value is false. * @return This Item so additional setters can be called. */ - public MenuItem setChecked(boolean checked); + public @NonNull MenuItem setChecked(boolean checked); /** * Return whether the item is currently displaying a check mark. @@ -586,7 +583,7 @@ public interface MenuItem { * hidden. * @return This Item so additional setters can be called. */ - public MenuItem setVisible(boolean visible); + public @NonNull MenuItem setVisible(boolean visible); /** * Return the visibility of the menu item. @@ -604,7 +601,7 @@ public interface MenuItem { * won't be invokable. * @return This Item so additional setters can be called. */ - public MenuItem setEnabled(boolean enabled); + public @NonNull MenuItem setEnabled(boolean enabled); /** * Return the enabled state of the menu item. @@ -628,7 +625,7 @@ public interface MenuItem { * * @return The associated menu if there is one, else null */ - public SubMenu getSubMenu(); + public @Nullable SubMenu getSubMenu(); /** * Set a custom listener for invocation of this menu item. In most @@ -641,7 +638,8 @@ public interface MenuItem { * @see Activity#onOptionsItemSelected(MenuItem) * @see Activity#onContextItemSelected(MenuItem) */ - public MenuItem setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener menuItemClickListener); + public @NonNull MenuItem setOnMenuItemClickListener( + @Nullable MenuItem.OnMenuItemClickListener menuItemClickListener); /** * Gets the extra information linked to this menu item. This extra @@ -652,7 +650,7 @@ public interface MenuItem { * @return The extra information linked to the View that added this * menu item to the menu. This can be null. */ - public ContextMenuInfo getMenuInfo(); + public @Nullable ContextMenuInfo getMenuInfo(); /** * Sets how this item should display in the presence of an Action Bar. @@ -690,7 +688,7 @@ public interface MenuItem { * @see #setActionView(View) * @return This MenuItem instance for call chaining. */ - public MenuItem setShowAsActionFlags(int actionEnum); + public @NonNull MenuItem setShowAsActionFlags(int actionEnum); /** * Set an action view for this menu item. An action view will be displayed in place @@ -706,7 +704,7 @@ public interface MenuItem { * * @see #setShowAsAction(int) */ - public MenuItem setActionView(View view); + public @NonNull MenuItem setActionView(@Nullable View view); /** * Set an action view for this menu item. An action view will be displayed in place @@ -722,7 +720,7 @@ public interface MenuItem { * * @see #setShowAsAction(int) */ - public MenuItem setActionView(@LayoutRes int resId); + public @NonNull MenuItem setActionView(@LayoutRes int resId); /** * Returns the currently set action view for this menu item. @@ -732,7 +730,7 @@ public interface MenuItem { * @see #setActionView(View) * @see #setShowAsAction(int) */ - public View getActionView(); + public @Nullable View getActionView(); /** * Sets the {@link ActionProvider} responsible for creating an action view if @@ -748,7 +746,7 @@ public interface MenuItem { * * @see ActionProvider */ - public MenuItem setActionProvider(ActionProvider actionProvider); + public @NonNull MenuItem setActionProvider(@Nullable ActionProvider actionProvider); /** * Gets the {@link ActionProvider}. @@ -758,7 +756,7 @@ public interface MenuItem { * @see ActionProvider * @see #setActionProvider(ActionProvider) */ - public ActionProvider getActionProvider(); + public @Nullable ActionProvider getActionProvider(); /** * Expand the action view associated with this menu item. @@ -806,14 +804,14 @@ public interface MenuItem { * @param listener Listener that will respond to expand/collapse events * @return This menu item instance for call chaining */ - public MenuItem setOnActionExpandListener(OnActionExpandListener listener); + public @NonNull MenuItem setOnActionExpandListener(@Nullable OnActionExpandListener listener); /** * Change the content description associated with this menu item. * * @param contentDescription The new content description. */ - default MenuItem setContentDescription(CharSequence contentDescription) { + default @NonNull MenuItem setContentDescription(@Nullable CharSequence contentDescription) { return this; } @@ -822,7 +820,7 @@ public interface MenuItem { * * @return The content description. */ - default CharSequence getContentDescription() { + default @Nullable CharSequence getContentDescription() { return null; } @@ -831,7 +829,7 @@ public interface MenuItem { * * @param tooltipText The new tooltip text. */ - default MenuItem setTooltipText(CharSequence tooltipText) { + default @NonNull MenuItem setTooltipText(@Nullable CharSequence tooltipText) { return this; } @@ -840,7 +838,7 @@ public interface MenuItem { * * @return The tooltip text. */ - default CharSequence getTooltipText() { + default @Nullable CharSequence getTooltipText() { return null; } diff --git a/core/java/android/view/PointerIcon.java b/core/java/android/view/PointerIcon.java index 38ae03db32901..2a8e7e4686169 100644 --- a/core/java/android/view/PointerIcon.java +++ b/core/java/android/view/PointerIcon.java @@ -184,7 +184,7 @@ public final class PointerIcon implements Parcelable { * @see #TYPE_NULL * @hide */ - public static PointerIcon getNullIcon() { + public static @NonNull PointerIcon getNullIcon() { return gNullIcon; } @@ -197,7 +197,7 @@ public final class PointerIcon implements Parcelable { * @throws IllegalArgumentException if context is null. * @hide */ - public static PointerIcon getDefaultIcon(@NonNull Context context) { + public static @NonNull PointerIcon getDefaultIcon(@NonNull Context context) { return getSystemIcon(context, TYPE_DEFAULT); } @@ -211,7 +211,7 @@ public final class PointerIcon implements Parcelable { * * @throws IllegalArgumentException if context is null. */ - public static PointerIcon getSystemIcon(@NonNull Context context, int type) { + public static @NonNull PointerIcon getSystemIcon(@NonNull Context context, int type) { if (context == null) { throw new IllegalArgumentException("context must not be null"); } @@ -287,7 +287,8 @@ public final class PointerIcon implements Parcelable { * @throws IllegalArgumentException if bitmap is null, or if the x/y hotspot * parameters are invalid. */ - public static PointerIcon create(@NonNull Bitmap bitmap, float hotSpotX, float hotSpotY) { + public static @NonNull PointerIcon create(@NonNull Bitmap bitmap, float hotSpotX, + float hotSpotY) { if (bitmap == null) { throw new IllegalArgumentException("bitmap must not be null"); } @@ -321,7 +322,7 @@ public final class PointerIcon implements Parcelable { * @throws Resources.NotFoundException if the resource was not found or the drawable * linked in the resource was not found. */ - public static PointerIcon load(@NonNull Resources resources, @XmlRes int resourceId) { + public static @NonNull PointerIcon load(@NonNull Resources resources, @XmlRes int resourceId) { if (resources == null) { throw new IllegalArgumentException("resources must not be null"); } @@ -342,7 +343,7 @@ public final class PointerIcon implements Parcelable { * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) - public PointerIcon load(@NonNull Context context) { + public @NonNull PointerIcon load(@NonNull Context context) { if (context == null) { throw new IllegalArgumentException("context must not be null"); } @@ -362,7 +363,7 @@ public final class PointerIcon implements Parcelable { return mType; } - public static final @android.annotation.NonNull Parcelable.Creator CREATOR + public static final @NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { public PointerIcon createFromParcel(Parcel in) { int type = in.readInt(); diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java index 346f76cace7df..a0a172d366cc2 100644 --- a/core/java/android/view/ScaleGestureDetector.java +++ b/core/java/android/view/ScaleGestureDetector.java @@ -16,6 +16,8 @@ package android.view; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Build; @@ -67,7 +69,7 @@ public class ScaleGestureDetector { * only wants to update scaling factors if the change is * greater than 0.01. */ - public boolean onScale(ScaleGestureDetector detector); + public boolean onScale(@NonNull ScaleGestureDetector detector); /** * Responds to the beginning of a scaling gesture. Reported by @@ -81,7 +83,7 @@ public class ScaleGestureDetector { * sense, onScaleBegin() may return false to ignore the * rest of the gesture. */ - public boolean onScaleBegin(ScaleGestureDetector detector); + public boolean onScaleBegin(@NonNull ScaleGestureDetector detector); /** * Responds to the end of a scale gesture. Reported by existing @@ -94,7 +96,7 @@ public class ScaleGestureDetector { * @param detector The detector reporting the event - use this to * retrieve extended info about event state. */ - public void onScaleEnd(ScaleGestureDetector detector); + public void onScaleEnd(@NonNull ScaleGestureDetector detector); } /** @@ -109,15 +111,15 @@ public class ScaleGestureDetector { */ public static class SimpleOnScaleGestureListener implements OnScaleGestureListener { - public boolean onScale(ScaleGestureDetector detector) { + public boolean onScale(@NonNull ScaleGestureDetector detector) { return false; } - public boolean onScaleBegin(ScaleGestureDetector detector) { + public boolean onScaleBegin(@NonNull ScaleGestureDetector detector) { return true; } - public void onScaleEnd(ScaleGestureDetector detector) { + public void onScaleEnd(@NonNull ScaleGestureDetector detector) { // Intentionally empty } } @@ -180,7 +182,8 @@ public class ScaleGestureDetector { * * @throws NullPointerException if {@code listener} is null. */ - public ScaleGestureDetector(Context context, OnScaleGestureListener listener) { + public ScaleGestureDetector(@NonNull Context context, + @NonNull OnScaleGestureListener listener) { this(context, listener, null); } @@ -195,8 +198,8 @@ public class ScaleGestureDetector { * * @throws NullPointerException if {@code listener} is null. */ - public ScaleGestureDetector(Context context, OnScaleGestureListener listener, - Handler handler) { + public ScaleGestureDetector(@NonNull Context context, @NonNull OnScaleGestureListener listener, + @Nullable Handler handler) { mContext = context; mListener = listener; final ViewConfiguration viewConfiguration = ViewConfiguration.get(context); @@ -226,7 +229,7 @@ public class ScaleGestureDetector { * @return true if the event was processed and the detector wants to receive the * rest of the MotionEvents in this event stream. */ - public boolean onTouchEvent(MotionEvent event) { + public boolean onTouchEvent(@NonNull MotionEvent event) { if (mInputEventConsistencyVerifier != null) { mInputEventConsistencyVerifier.onTouchEvent(event, 0); } diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 4ff7e2297ea02..5dbce7a75984d 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8608,7 +8608,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - public AccessibilityNodeInfo createAccessibilityNodeInfoInternal() { + public @Nullable AccessibilityNodeInfo createAccessibilityNodeInfoInternal() { AccessibilityNodeProvider provider = getAccessibilityNodeProvider(); if (provider != null) { return provider.createAccessibilityNodeInfo(AccessibilityNodeProvider.HOST_VIEW_ID); @@ -14226,7 +14226,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @param arguments Optional action arguments * @return true if the action was consumed by a parent */ - public boolean dispatchNestedPrePerformAccessibilityAction(int action, Bundle arguments) { + public boolean dispatchNestedPrePerformAccessibilityAction(int action, + @Nullable Bundle arguments) { for (ViewParent p = getParent(); p != null; p = p.getParent()) { if (p.onNestedPrePerformAccessibilityAction(this, action, arguments)) { return true; @@ -14254,7 +14255,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @param arguments Optional action arguments. * @return Whether the action was performed. */ - public boolean performAccessibilityAction(int action, Bundle arguments) { + public boolean performAccessibilityAction(int action, @Nullable Bundle arguments) { if (mAccessibilityDelegate != null) { return mAccessibilityDelegate.performAccessibilityAction(this, action, arguments); } else { @@ -14270,7 +14271,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ @UnsupportedAppUsage - public boolean performAccessibilityActionInternal(int action, Bundle arguments) { + public boolean performAccessibilityActionInternal(int action, @Nullable Bundle arguments) { if (isNestedScrollingEnabled() && (action == AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD || action == AccessibilityNodeInfo.ACTION_SCROLL_FORWARD @@ -29268,12 +29269,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Called when the view is attached to a window. * @param v The view that was attached */ - public void onViewAttachedToWindow(View v); + public void onViewAttachedToWindow(@NonNull View v); /** * Called when the view is detached from a window. * @param v The view that was detached */ - public void onViewDetachedFromWindow(View v); + public void onViewDetachedFromWindow(@NonNull View v); } /** @@ -29298,7 +29299,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @param insets The insets to apply * @return The insets supplied, minus any insets that were consumed */ - public WindowInsets onApplyWindowInsets(View v, WindowInsets insets); + public @NonNull WindowInsets onApplyWindowInsets(@NonNull View v, + @NonNull WindowInsets insets); } private final class UnsetPressedState implements Runnable { @@ -30241,7 +30243,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @see View#sendAccessibilityEvent(int) View#sendAccessibilityEvent(int) */ - public void sendAccessibilityEvent(View host, int eventType) { + public void sendAccessibilityEvent(@NonNull View host, int eventType) { host.sendAccessibilityEventInternal(eventType); } @@ -30261,7 +30263,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#performAccessibilityAction(int, Bundle) * View#performAccessibilityAction(int, Bundle) */ - public boolean performAccessibilityAction(View host, int action, Bundle args) { + public boolean performAccessibilityAction(@NonNull View host, int action, + @Nullable Bundle args) { return host.performAccessibilityActionInternal(action, args); } @@ -30283,7 +30286,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#sendAccessibilityEventUnchecked(AccessibilityEvent) * View#sendAccessibilityEventUnchecked(AccessibilityEvent) */ - public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) { + public void sendAccessibilityEventUnchecked(@NonNull View host, + @NonNull AccessibilityEvent event) { host.sendAccessibilityEventUncheckedInternal(event); } @@ -30304,7 +30308,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#dispatchPopulateAccessibilityEvent(AccessibilityEvent) * View#dispatchPopulateAccessibilityEvent(AccessibilityEvent) */ - public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) { + public boolean dispatchPopulateAccessibilityEvent(@NonNull View host, + @NonNull AccessibilityEvent event) { return host.dispatchPopulateAccessibilityEventInternal(event); } @@ -30324,7 +30329,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#onPopulateAccessibilityEvent(AccessibilityEvent) * View#onPopulateAccessibilityEvent(AccessibilityEvent) */ - public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) { + public void onPopulateAccessibilityEvent(@NonNull View host, + @NonNull AccessibilityEvent event) { host.onPopulateAccessibilityEventInternal(event); } @@ -30344,7 +30350,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#onInitializeAccessibilityEvent(AccessibilityEvent) * View#onInitializeAccessibilityEvent(AccessibilityEvent) */ - public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { + public void onInitializeAccessibilityEvent(@NonNull View host, + @NonNull AccessibilityEvent event) { host.onInitializeAccessibilityEventInternal(event); } @@ -30363,7 +30370,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) * View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) */ - public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { + public void onInitializeAccessibilityNodeInfo(@NonNull View host, + @NonNull AccessibilityNodeInfo info) { host.onInitializeAccessibilityNodeInfoInternal(info); } @@ -30415,8 +30423,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see ViewGroup#onRequestSendAccessibilityEvent(View, AccessibilityEvent) * ViewGroup#onRequestSendAccessibilityEvent(View, AccessibilityEvent) */ - public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child, - AccessibilityEvent event) { + public boolean onRequestSendAccessibilityEvent(@NonNull ViewGroup host, @NonNull View child, + @NonNull AccessibilityEvent event) { return host.onRequestSendAccessibilityEventInternal(child, event); } @@ -30434,7 +30442,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @see AccessibilityNodeProvider */ - public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) { + public @Nullable AccessibilityNodeProvider getAccessibilityNodeProvider( + @NonNull View host) { return null; } @@ -30462,7 +30471,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) - public AccessibilityNodeInfo createAccessibilityNodeInfo(View host) { + public AccessibilityNodeInfo createAccessibilityNodeInfo(@NonNull View host) { return host.createAccessibilityNodeInfoInternal(); } } diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index 9ed42f36d04bc..b25c0255c1a6f 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -17,6 +17,7 @@ package android.view; import android.annotation.FloatRange; +import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.UiContext; import android.app.Activity; @@ -405,7 +406,7 @@ public class ViewConfiguration { * @see #get(android.content.Context) * @see android.util.DisplayMetrics */ - private ViewConfiguration(@UiContext Context context) { + private ViewConfiguration(@NonNull @UiContext Context context) { mConstructedWithContext = true; final Resources res = context.getResources(); final DisplayMetrics metrics = res.getDisplayMetrics(); @@ -517,7 +518,7 @@ public class ViewConfiguration { * {@link Context#createWindowContext(int, Bundle)}. */ // TODO(b/182007470): Use @ConfigurationContext instead - public static ViewConfiguration get(@UiContext Context context) { + public static ViewConfiguration get(@NonNull @UiContext Context context) { StrictMode.assertConfigurationContext(context, "ViewConfiguration"); final DisplayMetrics metrics = context.getResources().getDisplayMetrics(); diff --git a/core/java/android/view/ViewParent.java b/core/java/android/view/ViewParent.java index 49f5229d3c09c..128da314e9075 100644 --- a/core/java/android/view/ViewParent.java +++ b/core/java/android/view/ViewParent.java @@ -17,6 +17,7 @@ package android.view; import android.annotation.NonNull; +import android.annotation.Nullable; import android.graphics.Rect; import android.graphics.Region; import android.os.Bundle; @@ -298,7 +299,7 @@ public interface ViewParent { * * @param child The child whose drawable state has changed. */ - public void childDrawableStateChanged(View child); + public void childDrawableStateChanged(@NonNull View child); /** * Called when a child does not want this parent and its ancestors to @@ -337,7 +338,7 @@ public interface ViewParent { * false otherwise * @return Whether the group scrolled to handle the operation */ - public boolean requestChildRectangleOnScreen(View child, Rect rectangle, + public boolean requestChildRectangleOnScreen(@NonNull View child, Rect rectangle, boolean immediate); /** @@ -356,7 +357,7 @@ public interface ViewParent { * @param event The event to be sent. * @return True if the event was sent. */ - public boolean requestSendAccessibilityEvent(View child, AccessibilityEvent event); + public boolean requestSendAccessibilityEvent(@NonNull View child, AccessibilityEvent event); /** * Called when a child view now has or no longer is tracking transient state. @@ -381,7 +382,7 @@ public interface ViewParent { * @param child Child view whose state has changed * @param hasTransientState true if this child has transient state */ - public void childHasTransientStateChanged(View child, boolean hasTransientState); + public void childHasTransientStateChanged(@NonNull View child, boolean hasTransientState); /** * Ask that a new dispatch of {@link View#fitSystemWindows(Rect) @@ -418,7 +419,7 @@ public interface ViewParent { * */ public void notifySubtreeAccessibilityStateChanged( - View child, @NonNull View source, int changeType); + @NonNull View child, @NonNull View source, int changeType); /** * Tells if this view parent can resolve the layout direction. @@ -525,7 +526,8 @@ public interface ViewParent { * {@link View#SCROLL_AXIS_VERTICAL} or both * @return true if this ViewParent accepts the nested scroll operation */ - public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes); + public boolean onStartNestedScroll(@NonNull View child, @NonNull View target, + int nestedScrollAxes); /** * React to the successful claiming of a nested scroll operation. @@ -543,7 +545,8 @@ public interface ViewParent { * @see #onStartNestedScroll(View, View, int) * @see #onStopNestedScroll(View) */ - public void onNestedScrollAccepted(View child, View target, int nestedScrollAxes); + public void onNestedScrollAccepted(@NonNull View child, @NonNull View target, + int nestedScrollAxes); /** * React to a nested scroll operation ending. @@ -556,7 +559,7 @@ public interface ViewParent { * * @param target View that initiated the nested scroll */ - public void onStopNestedScroll(View target); + public void onStopNestedScroll(@NonNull View target); /** * React to a nested scroll in progress. @@ -579,7 +582,7 @@ public interface ViewParent { * @param dxUnconsumed Horizontal scroll distance in pixels not consumed by target * @param dyUnconsumed Vertical scroll distance in pixels not consumed by target */ - public void onNestedScroll(View target, int dxConsumed, int dyConsumed, + public void onNestedScroll(@NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed); /** @@ -602,7 +605,7 @@ public interface ViewParent { * @param dy Vertical scroll distance in pixels * @param consumed Output. The horizontal and vertical scroll distance consumed by this parent */ - public void onNestedPreScroll(View target, int dx, int dy, int[] consumed); + public void onNestedPreScroll(@NonNull View target, int dx, int dy, @NonNull int[] consumed); /** * Request a fling from a nested scroll. @@ -623,7 +626,8 @@ public interface ViewParent { * @param consumed true if the child consumed the fling, false otherwise * @return true if this parent consumed or otherwise reacted to the fling */ - public boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed); + public boolean onNestedFling(@NonNull View target, float velocityX, float velocityY, + boolean consumed); /** * React to a nested fling before the target view consumes it. @@ -645,7 +649,7 @@ public interface ViewParent { * @param velocityY Vertical velocity in pixels per second * @return true if this parent consumed the fling ahead of the target view */ - public boolean onNestedPreFling(View target, float velocityX, float velocityY); + public boolean onNestedPreFling(@NonNull View target, float velocityX, float velocityY); /** * React to an accessibility action delegated by a target descendant view before the target @@ -664,7 +668,8 @@ public interface ViewParent { * @param arguments Optional action arguments * @return true if the action was consumed by this ViewParent */ - public boolean onNestedPrePerformAccessibilityAction(View target, int action, Bundle arguments); + public boolean onNestedPrePerformAccessibilityAction(@NonNull View target, int action, + @Nullable Bundle arguments); /** * Given a touchable region of a child, this method reduces region by the bounds of all views on diff --git a/core/java/android/view/ViewPropertyAnimator.java b/core/java/android/view/ViewPropertyAnimator.java index 65cc2f8bcd5af..774d6978bf2a8 100644 --- a/core/java/android/view/ViewPropertyAnimator.java +++ b/core/java/android/view/ViewPropertyAnimator.java @@ -20,6 +20,8 @@ import android.animation.Animator; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.annotation.FloatRange; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.graphics.RenderNode; import java.util.ArrayList; @@ -246,7 +248,7 @@ public class ViewPropertyAnimator { * * @param view The View associated with this ViewPropertyAnimator */ - ViewPropertyAnimator(View view) { + ViewPropertyAnimator(@NonNull View view) { mView = view; view.ensureTransformationInfo(); } @@ -259,7 +261,7 @@ public class ViewPropertyAnimator { * cannot be negative. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator setDuration(long duration) { + public @NonNull ViewPropertyAnimator setDuration(long duration) { if (duration < 0) { throw new IllegalArgumentException("Animators cannot have negative duration: " + duration); @@ -316,7 +318,7 @@ public class ViewPropertyAnimator { * cannot be negative. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator setStartDelay(long startDelay) { + public @NonNull ViewPropertyAnimator setStartDelay(long startDelay) { if (startDelay < 0) { throw new IllegalArgumentException("Animators cannot have negative start " + "delay: " + startDelay); @@ -335,7 +337,7 @@ public class ViewPropertyAnimator { * of null will result in linear interpolation. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator setInterpolator(TimeInterpolator interpolator) { + public @NonNull ViewPropertyAnimator setInterpolator(TimeInterpolator interpolator) { mInterpolatorSet = true; mInterpolator = interpolator; return this; @@ -346,7 +348,7 @@ public class ViewPropertyAnimator { * * @return The timing interpolator for this animation. */ - public TimeInterpolator getInterpolator() { + public @Nullable TimeInterpolator getInterpolator() { if (mInterpolatorSet) { return mInterpolator; } else { @@ -369,12 +371,12 @@ public class ViewPropertyAnimator { * null removes any existing listener. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator setListener(Animator.AnimatorListener listener) { + public @NonNull ViewPropertyAnimator setListener(@Nullable Animator.AnimatorListener listener) { mListener = listener; return this; } - Animator.AnimatorListener getListener() { + @Nullable Animator.AnimatorListener getListener() { return mListener; } @@ -392,12 +394,13 @@ public class ViewPropertyAnimator { * null removes any existing listener. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator setUpdateListener(ValueAnimator.AnimatorUpdateListener listener) { + public @NonNull ViewPropertyAnimator setUpdateListener( + @Nullable ValueAnimator.AnimatorUpdateListener listener) { mUpdateListener = listener; return this; } - ValueAnimator.AnimatorUpdateListener getUpdateListener() { + @Nullable ValueAnimator.AnimatorUpdateListener getUpdateListener() { return mUpdateListener; } @@ -441,7 +444,7 @@ public class ViewPropertyAnimator { * @see View#setX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator x(float value) { + public @NonNull ViewPropertyAnimator x(float value) { animateProperty(X, value); return this; } @@ -454,7 +457,7 @@ public class ViewPropertyAnimator { * @see View#setX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator xBy(float value) { + public @NonNull ViewPropertyAnimator xBy(float value) { animatePropertyBy(X, value); return this; } @@ -467,7 +470,7 @@ public class ViewPropertyAnimator { * @see View#setY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator y(float value) { + public @NonNull ViewPropertyAnimator y(float value) { animateProperty(Y, value); return this; } @@ -480,7 +483,7 @@ public class ViewPropertyAnimator { * @see View#setY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator yBy(float value) { + public @NonNull ViewPropertyAnimator yBy(float value) { animatePropertyBy(Y, value); return this; } @@ -493,7 +496,7 @@ public class ViewPropertyAnimator { * @see View#setZ(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator z(float value) { + public @NonNull ViewPropertyAnimator z(float value) { animateProperty(Z, value); return this; } @@ -506,7 +509,7 @@ public class ViewPropertyAnimator { * @see View#setZ(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator zBy(float value) { + public @NonNull ViewPropertyAnimator zBy(float value) { animatePropertyBy(Z, value); return this; } @@ -519,7 +522,7 @@ public class ViewPropertyAnimator { * @see View#setRotation(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotation(float value) { + public @NonNull ViewPropertyAnimator rotation(float value) { animateProperty(ROTATION, value); return this; } @@ -532,7 +535,7 @@ public class ViewPropertyAnimator { * @see View#setRotation(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotationBy(float value) { + public @NonNull ViewPropertyAnimator rotationBy(float value) { animatePropertyBy(ROTATION, value); return this; } @@ -545,7 +548,7 @@ public class ViewPropertyAnimator { * @see View#setRotationX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotationX(float value) { + public @NonNull ViewPropertyAnimator rotationX(float value) { animateProperty(ROTATION_X, value); return this; } @@ -558,7 +561,7 @@ public class ViewPropertyAnimator { * @see View#setRotationX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotationXBy(float value) { + public @NonNull ViewPropertyAnimator rotationXBy(float value) { animatePropertyBy(ROTATION_X, value); return this; } @@ -571,7 +574,7 @@ public class ViewPropertyAnimator { * @see View#setRotationY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotationY(float value) { + public @NonNull ViewPropertyAnimator rotationY(float value) { animateProperty(ROTATION_Y, value); return this; } @@ -584,7 +587,7 @@ public class ViewPropertyAnimator { * @see View#setRotationY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator rotationYBy(float value) { + public @NonNull ViewPropertyAnimator rotationYBy(float value) { animatePropertyBy(ROTATION_Y, value); return this; } @@ -597,7 +600,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationX(float value) { + public @NonNull ViewPropertyAnimator translationX(float value) { animateProperty(TRANSLATION_X, value); return this; } @@ -610,7 +613,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationXBy(float value) { + public @NonNull ViewPropertyAnimator translationXBy(float value) { animatePropertyBy(TRANSLATION_X, value); return this; } @@ -623,7 +626,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationY(float value) { + public @NonNull ViewPropertyAnimator translationY(float value) { animateProperty(TRANSLATION_Y, value); return this; } @@ -636,7 +639,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationYBy(float value) { + public @NonNull ViewPropertyAnimator translationYBy(float value) { animatePropertyBy(TRANSLATION_Y, value); return this; } @@ -649,7 +652,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationZ(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationZ(float value) { + public @NonNull ViewPropertyAnimator translationZ(float value) { animateProperty(TRANSLATION_Z, value); return this; } @@ -662,7 +665,7 @@ public class ViewPropertyAnimator { * @see View#setTranslationZ(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator translationZBy(float value) { + public @NonNull ViewPropertyAnimator translationZBy(float value) { animatePropertyBy(TRANSLATION_Z, value); return this; } @@ -674,7 +677,7 @@ public class ViewPropertyAnimator { * @see View#setScaleX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator scaleX(float value) { + public @NonNull ViewPropertyAnimator scaleX(float value) { animateProperty(SCALE_X, value); return this; } @@ -687,7 +690,7 @@ public class ViewPropertyAnimator { * @see View#setScaleX(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator scaleXBy(float value) { + public @NonNull ViewPropertyAnimator scaleXBy(float value) { animatePropertyBy(SCALE_X, value); return this; } @@ -700,7 +703,7 @@ public class ViewPropertyAnimator { * @see View#setScaleY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator scaleY(float value) { + public @NonNull ViewPropertyAnimator scaleY(float value) { animateProperty(SCALE_Y, value); return this; } @@ -713,7 +716,7 @@ public class ViewPropertyAnimator { * @see View#setScaleY(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator scaleYBy(float value) { + public @NonNull ViewPropertyAnimator scaleYBy(float value) { animatePropertyBy(SCALE_Y, value); return this; } @@ -726,7 +729,7 @@ public class ViewPropertyAnimator { * @see View#setAlpha(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator alpha(@FloatRange(from = 0.0f, to = 1.0f) float value) { + public @NonNull ViewPropertyAnimator alpha(@FloatRange(from = 0.0f, to = 1.0f) float value) { animateProperty(ALPHA, value); return this; } @@ -739,7 +742,7 @@ public class ViewPropertyAnimator { * @see View#setAlpha(float) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator alphaBy(float value) { + public @NonNull ViewPropertyAnimator alphaBy(float value) { animatePropertyBy(ALPHA, value); return this; } @@ -765,7 +768,7 @@ public class ViewPropertyAnimator { * @see View#setLayerType(int, android.graphics.Paint) * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator withLayer() { + public @NonNull ViewPropertyAnimator withLayer() { mPendingSetupAction= new Runnable() { @Override public void run() { @@ -803,7 +806,7 @@ public class ViewPropertyAnimator { * @param runnable The action to run when the next animation starts. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator withStartAction(Runnable runnable) { + public @NonNull ViewPropertyAnimator withStartAction(Runnable runnable) { mPendingOnStartAction = runnable; if (runnable != null && mAnimatorOnStartMap == null) { mAnimatorOnStartMap = new HashMap(); @@ -832,7 +835,7 @@ public class ViewPropertyAnimator { * @param runnable The action to run when the next animation ends. * @return This object, allowing calls to methods in this class to be chained. */ - public ViewPropertyAnimator withEndAction(Runnable runnable) { + public @NonNull ViewPropertyAnimator withEndAction(Runnable runnable) { mPendingOnEndAction = runnable; if (runnable != null && mAnimatorOnEndMap == null) { mAnimatorOnEndMap = new HashMap(); @@ -1061,7 +1064,7 @@ public class ViewPropertyAnimator { private class AnimatorEventListener implements Animator.AnimatorListener, ValueAnimator.AnimatorUpdateListener { @Override - public void onAnimationStart(Animator animation) { + public void onAnimationStart(@NonNull Animator animation) { if (mAnimatorSetupMap != null) { Runnable r = mAnimatorSetupMap.get(animation); if (r != null) { @@ -1082,7 +1085,7 @@ public class ViewPropertyAnimator { } @Override - public void onAnimationCancel(Animator animation) { + public void onAnimationCancel(@NonNull Animator animation) { if (mListener != null) { mListener.onAnimationCancel(animation); } @@ -1092,14 +1095,14 @@ public class ViewPropertyAnimator { } @Override - public void onAnimationRepeat(Animator animation) { + public void onAnimationRepeat(@NonNull Animator animation) { if (mListener != null) { mListener.onAnimationRepeat(animation); } } @Override - public void onAnimationEnd(Animator animation) { + public void onAnimationEnd(@NonNull Animator animation) { mView.setHasTransientState(false); if (mAnimatorCleanupMap != null) { Runnable r = mAnimatorCleanupMap.get(animation); @@ -1130,7 +1133,7 @@ public class ViewPropertyAnimator { * the current value of each property. */ @Override - public void onAnimationUpdate(ValueAnimator animation) { + public void onAnimationUpdate(@NonNull ValueAnimator animation) { PropertyBundle propertyBundle = mAnimatorMap.get(animation); if (propertyBundle == null) { // Shouldn't happen, but just to play it safe diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java index 6f4bc719dc84e..82e823fa77e63 100644 --- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java +++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java @@ -526,9 +526,9 @@ public final class AccessibilityInteractionClient * @param prefetchFlags flags to guide prefetching. * @return An {@link AccessibilityNodeInfo} if found, null otherwise. */ - public AccessibilityNodeInfo findAccessibilityNodeInfoByAccessibilityId(int connectionId, - int accessibilityWindowId, long accessibilityNodeId, boolean bypassCache, - int prefetchFlags, Bundle arguments) { + public @Nullable AccessibilityNodeInfo findAccessibilityNodeInfoByAccessibilityId( + int connectionId, int accessibilityWindowId, long accessibilityNodeId, + boolean bypassCache, int prefetchFlags, Bundle arguments) { if ((prefetchFlags & AccessibilityNodeInfo.FLAG_PREFETCH_SIBLINGS) != 0 && (prefetchFlags & AccessibilityNodeInfo.FLAG_PREFETCH_PREDECESSORS) == 0) { throw new IllegalArgumentException("FLAG_PREFETCH_SIBLINGS" diff --git a/core/java/android/view/accessibility/AccessibilityNodeProvider.java b/core/java/android/view/accessibility/AccessibilityNodeProvider.java index f4c7b96b8edc8..91d4a3598e65b 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeProvider.java +++ b/core/java/android/view/accessibility/AccessibilityNodeProvider.java @@ -17,6 +17,7 @@ package android.view.accessibility; import android.accessibilityservice.AccessibilityService; +import android.annotation.Nullable; import android.os.Bundle; import android.view.View; @@ -195,7 +196,7 @@ public abstract class AccessibilityNodeProvider { * @see View#createAccessibilityNodeInfo() * @see AccessibilityNodeInfo */ - public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) { + public @Nullable AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) { return null; } @@ -234,7 +235,7 @@ public abstract class AccessibilityNodeProvider { * @see #createAccessibilityNodeInfo(int) * @see AccessibilityNodeInfo */ - public boolean performAction(int virtualViewId, int action, Bundle arguments) { + public boolean performAction(int virtualViewId, int action, @Nullable Bundle arguments) { return false; } @@ -252,7 +253,7 @@ public abstract class AccessibilityNodeProvider { * @see #createAccessibilityNodeInfo(int) * @see AccessibilityNodeInfo */ - public List findAccessibilityNodeInfosByText(String text, + public @Nullable List findAccessibilityNodeInfosByText(String text, int virtualViewId) { return null; } @@ -268,7 +269,7 @@ public abstract class AccessibilityNodeProvider { * @see AccessibilityNodeInfo#FOCUS_INPUT * @see AccessibilityNodeInfo#FOCUS_ACCESSIBILITY */ - public AccessibilityNodeInfo findFocus(int focus) { + public @Nullable AccessibilityNodeInfo findFocus(int focus) { return null; } } diff --git a/core/java/android/view/accessibility/AccessibilityRecord.java b/core/java/android/view/accessibility/AccessibilityRecord.java index 426a3f448543a..cf2ea15707cb5 100644 --- a/core/java/android/view/accessibility/AccessibilityRecord.java +++ b/core/java/android/view/accessibility/AccessibilityRecord.java @@ -133,7 +133,7 @@ public class AccessibilityRecord { * * @throws IllegalStateException If called from an AccessibilityService. */ - public void setSource(View source) { + public void setSource(@Nullable View source) { setSource(source, AccessibilityNodeProvider.HOST_VIEW_ID); } @@ -184,7 +184,7 @@ public class AccessibilityRecord { *

* @return The info of the source. */ - public AccessibilityNodeInfo getSource() { + public @Nullable AccessibilityNodeInfo getSource() { enforceSealed(); if ((mConnectionId == UNDEFINED) || (mSourceWindowId == AccessibilityWindowInfo.UNDEFINED_WINDOW_ID) @@ -629,7 +629,7 @@ public class AccessibilityRecord { * * @return The class name. */ - public CharSequence getClassName() { + public @Nullable CharSequence getClassName() { return mClassName; } @@ -640,7 +640,7 @@ public class AccessibilityRecord { * * @throws IllegalStateException If called from an AccessibilityService. */ - public void setClassName(CharSequence className) { + public void setClassName(@Nullable CharSequence className) { enforceNotSealed(); mClassName = className; } @@ -651,7 +651,7 @@ public class AccessibilityRecord { * * @return The text. */ - public List getText() { + public @NonNull List getText() { return mText; } @@ -660,7 +660,7 @@ public class AccessibilityRecord { * * @return The text before the change. */ - public CharSequence getBeforeText() { + public @Nullable CharSequence getBeforeText() { return mBeforeText; } @@ -671,7 +671,7 @@ public class AccessibilityRecord { * * @throws IllegalStateException If called from an AccessibilityService. */ - public void setBeforeText(CharSequence beforeText) { + public void setBeforeText(@Nullable CharSequence beforeText) { enforceNotSealed(); mBeforeText = (beforeText == null) ? null : beforeText.subSequence(0, beforeText.length()); @@ -682,7 +682,7 @@ public class AccessibilityRecord { * * @return The description. */ - public CharSequence getContentDescription() { + public @Nullable CharSequence getContentDescription() { return mContentDescription; } @@ -693,7 +693,7 @@ public class AccessibilityRecord { * * @throws IllegalStateException If called from an AccessibilityService. */ - public void setContentDescription(CharSequence contentDescription) { + public void setContentDescription(@Nullable CharSequence contentDescription) { enforceNotSealed(); mContentDescription = (contentDescription == null) ? null : contentDescription.subSequence(0, contentDescription.length()); @@ -704,7 +704,7 @@ public class AccessibilityRecord { * * @return The parcelable data. */ - public Parcelable getParcelableData() { + public @Nullable Parcelable getParcelableData() { return mParcelableData; } @@ -715,7 +715,7 @@ public class AccessibilityRecord { * * @throws IllegalStateException If called from an AccessibilityService. */ - public void setParcelableData(Parcelable parcelableData) { + public void setParcelableData(@Nullable Parcelable parcelableData) { enforceNotSealed(); mParcelableData = parcelableData; } @@ -822,7 +822,7 @@ public class AccessibilityRecord { * @return An instance. */ @Deprecated - public static AccessibilityRecord obtain(AccessibilityRecord record) { + public static @NonNull AccessibilityRecord obtain(@NonNull AccessibilityRecord record) { AccessibilityRecord clone = AccessibilityRecord.obtain(); clone.init(record); return clone; @@ -836,7 +836,7 @@ public class AccessibilityRecord { * @return An instance. */ @Deprecated - public static AccessibilityRecord obtain() { + public static @NonNull AccessibilityRecord obtain() { return new AccessibilityRecord(); } @@ -854,7 +854,7 @@ public class AccessibilityRecord { * * @param record The to initialize from. */ - void init(AccessibilityRecord record) { + void init(@NonNull AccessibilityRecord record) { mSealed = record.mSealed; mBooleanProperties = record.mBooleanProperties; mCurrentItemIndex = record.mCurrentItemIndex; diff --git a/core/java/android/view/animation/PathInterpolator.java b/core/java/android/view/animation/PathInterpolator.java index 99d6b9c54c20d..341c71b18d692 100644 --- a/core/java/android/view/animation/PathInterpolator.java +++ b/core/java/android/view/animation/PathInterpolator.java @@ -15,6 +15,8 @@ */ package android.view.animation; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import android.content.res.Resources; import android.content.res.Resources.Theme; @@ -61,7 +63,7 @@ public class PathInterpolator extends BaseInterpolator implements NativeInterpol * * @param path The Path to use to make the line representing the interpolator. */ - public PathInterpolator(Path path) { + public PathInterpolator(@NonNull Path path) { initPath(path); } @@ -94,7 +96,7 @@ public class PathInterpolator extends BaseInterpolator implements NativeInterpol } /** @hide */ - public PathInterpolator(Resources res, Theme theme, AttributeSet attrs) { + public PathInterpolator(Resources res, @Nullable Theme theme, @NonNull AttributeSet attrs) { TypedArray a; if (theme != null) { a = theme.obtainStyledAttributes(attrs, R.styleable.PathInterpolator, 0, 0); diff --git a/core/java/com/android/internal/view/OneShotPreDrawListener.java b/core/java/com/android/internal/view/OneShotPreDrawListener.java index 42d104a9942be..c750c0bbe6aae 100644 --- a/core/java/com/android/internal/view/OneShotPreDrawListener.java +++ b/core/java/com/android/internal/view/OneShotPreDrawListener.java @@ -15,6 +15,7 @@ */ package com.android.internal.view; +import android.annotation.NonNull; import android.view.View; import android.view.ViewTreeObserver; @@ -36,7 +37,8 @@ public class OneShotPreDrawListener implements ViewTreeObserver.OnPreDrawListene private final Runnable mRunnable; private final boolean mReturnValue; - private OneShotPreDrawListener(View view, boolean returnValue, Runnable runnable) { + private OneShotPreDrawListener(@NonNull View view, boolean returnValue, + @NonNull Runnable runnable) { mView = view; mViewTreeObserver = view.getViewTreeObserver(); mRunnable = runnable; @@ -52,7 +54,7 @@ public class OneShotPreDrawListener implements ViewTreeObserver.OnPreDrawListene * @return The added OneShotPreDrawListener. It can be removed prior to * the onPreDraw by calling {@link #removeListener()}. */ - public static OneShotPreDrawListener add(View view, Runnable runnable) { + public static OneShotPreDrawListener add(@NonNull View view, @NonNull Runnable runnable) { return add(view, true, runnable); } @@ -65,7 +67,8 @@ public class OneShotPreDrawListener implements ViewTreeObserver.OnPreDrawListene * @return The added OneShotPreDrawListener. It can be removed prior to * the onPreDraw by calling {@link #removeListener()}. */ - public static OneShotPreDrawListener add(View view, boolean returnValue, Runnable runnable) { + public static OneShotPreDrawListener add(@NonNull View view, boolean returnValue, + @NonNull Runnable runnable) { OneShotPreDrawListener listener = new OneShotPreDrawListener(view, returnValue, runnable); view.getViewTreeObserver().addOnPreDrawListener(listener); view.addOnAttachStateChangeListener(listener); @@ -93,12 +96,12 @@ public class OneShotPreDrawListener implements ViewTreeObserver.OnPreDrawListene } @Override - public void onViewAttachedToWindow(View v) { + public void onViewAttachedToWindow(@NonNull View v) { mViewTreeObserver = v.getViewTreeObserver(); } @Override - public void onViewDetachedFromWindow(View v) { + public void onViewDetachedFromWindow(@NonNull View v) { removeListener(); } } diff --git a/core/java/com/android/internal/widget/NestedScrollingChild.java b/core/java/com/android/internal/widget/NestedScrollingChild.java index 20285b5ff44dc..c7f58919b131e 100644 --- a/core/java/com/android/internal/widget/NestedScrollingChild.java +++ b/core/java/com/android/internal/widget/NestedScrollingChild.java @@ -16,6 +16,7 @@ package com.android.internal.widget; +import android.annotation.Nullable; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; @@ -149,7 +150,7 @@ public interface NestedScrollingChild { * @see #dispatchNestedPreScroll(int, int, int[], int[]) */ boolean dispatchNestedScroll(int dxConsumed, int dyConsumed, - int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow); + int dxUnconsumed, int dyUnconsumed, @Nullable int[] offsetInWindow); /** * Dispatch one step of a nested scroll in progress before this view consumes any portion of it. @@ -170,7 +171,8 @@ public interface NestedScrollingChild { * @return true if the parent consumed some or all of the scroll delta * @see #dispatchNestedScroll(int, int, int, int, int[]) */ - boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow); + boolean dispatchNestedPreScroll(int dx, int dy, @Nullable int[] consumed, + @Nullable int[] offsetInWindow); /** * Dispatch a fling to a nested scrolling parent.