Loading api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -3764,6 +3764,7 @@ package android.app { method public final void requestShowKeyboardShortcuts(); method public deprecated boolean requestVisibleBehind(boolean); method public final boolean requestWindowFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public final void runOnUiThread(java.lang.Runnable); method public void setActionBar(android.widget.Toolbar); method public void setContentTransitionManager(android.transition.TransitionManager); Loading Loading @@ -4458,6 +4459,7 @@ package android.app { method public void openOptionsMenu(); method public void registerForContextMenu(android.view.View); method public final boolean requestWindowFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public void setCancelMessage(android.os.Message); method public void setCancelable(boolean); method public void setCanceledOnTouchOutside(boolean); Loading Loading @@ -38455,6 +38457,7 @@ package android.service.dreams { method public void onWindowFocusChanged(boolean); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int); method public final <T extends android.view.View> T requireViewById(int); method public void setContentView(int); method public void setContentView(android.view.View); method public void setContentView(android.view.View, android.view.ViewGroup.LayoutParams); Loading Loading @@ -46942,6 +46945,7 @@ package android.view { method public boolean requestRectangleOnScreen(android.graphics.Rect); method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean); method public final void requestUnbufferedDispatch(android.view.MotionEvent); method public final <T extends android.view.View> T requireViewById(int); method public static int resolveSize(int, int); method public static int resolveSizeAndState(int, int, int); method public boolean restoreDefaultFocus(); Loading Loading @@ -47977,6 +47981,7 @@ package android.view { method public abstract boolean performPanelShortcut(int, int, android.view.KeyEvent, int); method public final void removeOnFrameMetricsAvailableListener(android.view.Window.OnFrameMetricsAvailableListener); method public boolean requestFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public abstract void restoreHierarchyState(android.os.Bundle); method public abstract android.os.Bundle saveHierarchyState(); method public void setAllowEnterTransitionOverlap(boolean); core/java/android/app/Activity.java +25 −0 Original line number Diff line number Diff line Loading @@ -2619,12 +2619,37 @@ public class Activity extends ContextThemeWrapper * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see Activity#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return getWindow().findViewById(id); } /** * Finds a view that was identified by the {@code android:id} XML attribute that was processed * in {@link #onCreate}, or throws an IllegalArgumentException if the ID is invalid, or there is * no matching view in the hierarchy. * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see Activity#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this Activity"); } return view; } /** * Retrieve a reference to this activity's ActionBar. * Loading core/java/android/app/Dialog.java +30 −5 Original line number Diff line number Diff line Loading @@ -16,10 +16,6 @@ package android.app; import com.android.internal.R; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.policy.PhoneWindow; import android.annotation.CallSuper; import android.annotation.DrawableRes; import android.annotation.IdRes; Loading @@ -32,8 +28,8 @@ import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.DialogInterface; import android.content.res.Configuration; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.content.res.ResourceId; import android.graphics.drawable.Drawable; import android.net.Uri; Loading Loading @@ -62,6 +58,10 @@ import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import com.android.internal.R; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.policy.PhoneWindow; import java.lang.ref.WeakReference; /** Loading Loading @@ -512,12 +512,37 @@ public class Dialog implements DialogInterface, Window.Callback, * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see Dialog#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return mWindow.findViewById(id); } /** * Finds the first descendant view with the given ID or throws an IllegalArgumentException if * the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not * yet been fully created (for example, via {@link #show()} or {@link #create()}). * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see Dialog#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this Dialog"); } return view; } /** * Set the screen content from a layout resource. The resource will be * inflated, adding all top-level views to the screen. Loading core/java/android/service/dreams/DreamService.java +36 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.service.dreams; import android.annotation.IdRes; import android.annotation.LayoutRes; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; Loading Loading @@ -54,7 +55,6 @@ import com.android.internal.util.DumpUtils.Dump; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; /** * Extend this class to implement a custom dream (available to the user as a "Daydream"). Loading Loading @@ -458,14 +458,49 @@ public class DreamService extends Service implements Window.Callback { * was processed in {@link #onCreate}. * * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return The view if found or null otherwise. * @see View#findViewById(int) * @see DreamService#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return getWindow().findViewById(id); } /** * Finds a view that was identified by the id attribute from the XML that was processed in * {@link #onCreate}, or throws an IllegalArgumentException if the ID is invalid or there is no * matching view in the hierarchy. * * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see DreamService#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException( "ID does not reference a View inside this DreamService"); } return view; } /** * Marks this dream as interactive to receive input events. * Loading core/java/android/view/View.java +24 −1 Original line number Diff line number Diff line Loading @@ -22209,7 +22209,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see View#requireViewById(int) */ @Nullable public final <T extends View> T findViewById(@IdRes int id) { Loading @@ -22219,6 +22219,29 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return findViewTraversal(id); } /** * Finds the first descendant view with the given ID, the view itself if the ID matches * {@link #getId()}, or throws an IllegalArgumentException if the ID is invalid or there is no * matching view in the hierarchy. * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this View"); } return view; } /** * Finds a view by its unuque and stable accessibility id. * Loading
api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -3764,6 +3764,7 @@ package android.app { method public final void requestShowKeyboardShortcuts(); method public deprecated boolean requestVisibleBehind(boolean); method public final boolean requestWindowFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public final void runOnUiThread(java.lang.Runnable); method public void setActionBar(android.widget.Toolbar); method public void setContentTransitionManager(android.transition.TransitionManager); Loading Loading @@ -4458,6 +4459,7 @@ package android.app { method public void openOptionsMenu(); method public void registerForContextMenu(android.view.View); method public final boolean requestWindowFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public void setCancelMessage(android.os.Message); method public void setCancelable(boolean); method public void setCanceledOnTouchOutside(boolean); Loading Loading @@ -38455,6 +38457,7 @@ package android.service.dreams { method public void onWindowFocusChanged(boolean); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int); method public final <T extends android.view.View> T requireViewById(int); method public void setContentView(int); method public void setContentView(android.view.View); method public void setContentView(android.view.View, android.view.ViewGroup.LayoutParams); Loading Loading @@ -46942,6 +46945,7 @@ package android.view { method public boolean requestRectangleOnScreen(android.graphics.Rect); method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean); method public final void requestUnbufferedDispatch(android.view.MotionEvent); method public final <T extends android.view.View> T requireViewById(int); method public static int resolveSize(int, int); method public static int resolveSizeAndState(int, int, int); method public boolean restoreDefaultFocus(); Loading Loading @@ -47977,6 +47981,7 @@ package android.view { method public abstract boolean performPanelShortcut(int, int, android.view.KeyEvent, int); method public final void removeOnFrameMetricsAvailableListener(android.view.Window.OnFrameMetricsAvailableListener); method public boolean requestFeature(int); method public final <T extends android.view.View> T requireViewById(int); method public abstract void restoreHierarchyState(android.os.Bundle); method public abstract android.os.Bundle saveHierarchyState(); method public void setAllowEnterTransitionOverlap(boolean);
core/java/android/app/Activity.java +25 −0 Original line number Diff line number Diff line Loading @@ -2619,12 +2619,37 @@ public class Activity extends ContextThemeWrapper * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see Activity#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return getWindow().findViewById(id); } /** * Finds a view that was identified by the {@code android:id} XML attribute that was processed * in {@link #onCreate}, or throws an IllegalArgumentException if the ID is invalid, or there is * no matching view in the hierarchy. * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see Activity#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this Activity"); } return view; } /** * Retrieve a reference to this activity's ActionBar. * Loading
core/java/android/app/Dialog.java +30 −5 Original line number Diff line number Diff line Loading @@ -16,10 +16,6 @@ package android.app; import com.android.internal.R; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.policy.PhoneWindow; import android.annotation.CallSuper; import android.annotation.DrawableRes; import android.annotation.IdRes; Loading @@ -32,8 +28,8 @@ import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.DialogInterface; import android.content.res.Configuration; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.content.res.ResourceId; import android.graphics.drawable.Drawable; import android.net.Uri; Loading Loading @@ -62,6 +58,10 @@ import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import com.android.internal.R; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.policy.PhoneWindow; import java.lang.ref.WeakReference; /** Loading Loading @@ -512,12 +512,37 @@ public class Dialog implements DialogInterface, Window.Callback, * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see Dialog#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return mWindow.findViewById(id); } /** * Finds the first descendant view with the given ID or throws an IllegalArgumentException if * the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not * yet been fully created (for example, via {@link #show()} or {@link #create()}). * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see Dialog#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this Dialog"); } return view; } /** * Set the screen content from a layout resource. The resource will be * inflated, adding all top-level views to the screen. Loading
core/java/android/service/dreams/DreamService.java +36 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.service.dreams; import android.annotation.IdRes; import android.annotation.LayoutRes; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; Loading Loading @@ -54,7 +55,6 @@ import com.android.internal.util.DumpUtils.Dump; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; /** * Extend this class to implement a custom dream (available to the user as a "Daydream"). Loading Loading @@ -458,14 +458,49 @@ public class DreamService extends Service implements Window.Callback { * was processed in {@link #onCreate}. * * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return The view if found or null otherwise. * @see View#findViewById(int) * @see DreamService#requireViewById(int) */ @Nullable public <T extends View> T findViewById(@IdRes int id) { return getWindow().findViewById(id); } /** * Finds a view that was identified by the id attribute from the XML that was processed in * {@link #onCreate}, or throws an IllegalArgumentException if the ID is invalid or there is no * matching view in the hierarchy. * * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#requireViewById(int) * @see DreamService#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException( "ID does not reference a View inside this DreamService"); } return view; } /** * Marks this dream as interactive to receive input events. * Loading
core/java/android/view/View.java +24 −1 Original line number Diff line number Diff line Loading @@ -22209,7 +22209,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @param id the ID to search for * @return a view with given ID if found, or {@code null} otherwise * @see View#findViewById(int) * @see View#requireViewById(int) */ @Nullable public final <T extends View> T findViewById(@IdRes int id) { Loading @@ -22219,6 +22219,29 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return findViewTraversal(id); } /** * Finds the first descendant view with the given ID, the view itself if the ID matches * {@link #getId()}, or throws an IllegalArgumentException if the ID is invalid or there is no * matching view in the hierarchy. * <p> * <strong>Note:</strong> In most cases -- depending on compiler support -- * the resulting view is automatically cast to the target class type. If * the target class type is unconstrained, an explicit cast may be * necessary. * * @param id the ID to search for * @return a view with given ID * @see View#findViewById(int) */ @NonNull public final <T extends View> T requireViewById(@IdRes int id) { T view = findViewById(id); if (view == null) { throw new IllegalArgumentException("ID does not reference a View inside this View"); } return view; } /** * Finds a view by its unuque and stable accessibility id. *