Loading api/current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -56297,6 +56297,7 @@ package android.widget { method public android.view.View getContentView(); method public float getElevation(); method @Nullable public android.transition.Transition getEnterTransition(); method @Nullable public android.graphics.Rect getEpicenterBounds(); method @Nullable public android.transition.Transition getExitTransition(); method public int getHeight(); method public int getInputMethodMode(); Loading @@ -56309,30 +56310,37 @@ package android.widget { method public int getWindowLayoutType(); method public boolean isAboveAnchor(); method public boolean isAttachedInDecor(); method public boolean isClipToScreenEnabled(); method public boolean isClippingEnabled(); method public boolean isFocusable(); method public boolean isLayoutInScreenEnabled(); method public boolean isOutsideTouchable(); method public boolean isShowing(); method public boolean isSplitTouchEnabled(); method public boolean isTouchModal(); method public boolean isTouchable(); method public void setAnimationStyle(int); method public void setAttachedInDecor(boolean); method public void setBackgroundDrawable(android.graphics.drawable.Drawable); method public void setClipToScreenEnabled(boolean); method public void setClippingEnabled(boolean); method public void setContentView(android.view.View); method public void setElevation(float); method public void setEnterTransition(@Nullable android.transition.Transition); method public void setEpicenterBounds(@Nullable android.graphics.Rect); method public void setExitTransition(@Nullable android.transition.Transition); method public void setFocusable(boolean); method public void setHeight(int); method public void setIgnoreCheekPress(); method public void setInputMethodMode(int); method public void setLayoutInScreenEnabled(boolean); method public void setOnDismissListener(android.widget.PopupWindow.OnDismissListener); method public void setOutsideTouchable(boolean); method public void setOverlapAnchor(boolean); method public void setSoftInputMode(int); method public void setSplitTouchEnabled(boolean); method public void setTouchInterceptor(android.view.View.OnTouchListener); method public void setTouchModal(boolean); method public void setTouchable(boolean); method public void setWidth(int); method @Deprecated public void setWindowLayoutMode(int, int); core/java/android/widget/PopupWindow.java +79 −24 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ public class PopupWindow { private WeakReference<View> mAnchorRoot; private boolean mIsAnchorRootAttached; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private final OnScrollChangedListener mOnScrollChangedListener = this::alignToAnchor; private final View.OnLayoutChangeListener mOnLayoutChangeListener = Loading Loading @@ -476,22 +476,39 @@ public class PopupWindow { } /** * Sets the bounds used as the epicenter of the enter and exit transitions. * <p> * Transitions use a point or Rect, referred to as the epicenter, to orient * <p>Returns bounds which are used as a center of the enter and exit transitions.<p/> * * <p>Transitions use Rect, referred to as the epicenter, to orient * the direction of travel. For popup windows, the anchor view bounds are * used as the default epicenter. * <p> * See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters. * used as the default epicenter.</p> * * <p>See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters work.</p> * * @return bounds relative to anchor view, or {@code null} if not set * @see #setEpicenterBounds(Rect) */ @Nullable public Rect getEpicenterBounds() { return mEpicenterBounds; } /** * <p>Sets the bounds used as the epicenter of the enter and exit transitions.</p> * * <p>Transitions use Rect, referred to as the epicenter, to orient * the direction of travel. For popup windows, the anchor view bounds are * used as the default epicenter.</p> * * <p>See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters work.</p> * * @param bounds the epicenter bounds relative to the anchor view, or * {@code null} to use the default epicenter * @see #getTransitionEpicenter() * @hide * * @see #getEpicenterBounds() */ @UnsupportedAppUsage public void setEpicenterBounds(Rect bounds) { public void setEpicenterBounds(@Nullable Rect bounds) { mEpicenterBounds = bounds; } Loading Loading @@ -865,12 +882,28 @@ public class PopupWindow { } /** * Clip this popup window to the screen, but not to the containing window. * <p>Indicates whether this popup will be clipped to the screen and not to the * containing window<p/> * * @param enabled True to clip to the screen. * @hide * @return true if popup will be clipped to the screen instead of the window, false otherwise * * @see #setClipToScreenEnabled(boolean) */ public boolean isClipToScreenEnabled() { return mClipToScreen; } /** * <p>Clip this popup window to the screen, but not to the containing window.</p> * * <p>If the popup is showing, calling this method will take effect only * the next time the popup is shown or through a manual call to one of * the {@link #update()} methods.</p> * * @param enabled true to clip to the screen. * * @see #isClipToScreenEnabled() */ @UnsupportedAppUsage public void setClipToScreenEnabled(boolean enabled) { mClipToScreen = enabled; } Loading Loading @@ -927,7 +960,8 @@ public class PopupWindow { * for positioning.</p> * * @return true if the window will always be positioned in screen coordinates. * @hide * * @see #setLayoutInScreenEnabled(boolean) */ public boolean isLayoutInScreenEnabled() { return mLayoutInScreen; Loading @@ -939,9 +973,9 @@ public class PopupWindow { * This will cause the popup to be positioned in absolute screen coordinates.</p> * * @param enabled true if the popup should always be positioned in screen coordinates * @hide * * @see #isLayoutInScreenEnabled() */ @UnsupportedAppUsage public void setLayoutInScreenEnabled(boolean enabled) { mLayoutInScreen = enabled; } Loading Loading @@ -1021,11 +1055,30 @@ public class PopupWindow { } /** * Set whether this window is touch modal or if outside touches will be sent to * other windows behind it. * @hide * <p>Indicates whether outside touches will be sent to this window * or other windows behind it<p/> * * @return true if touches will be sent to this window, false otherwise * * @see #setTouchModal(boolean) */ public boolean isTouchModal() { return !mNotTouchModal; } /** * <p>Set whether this window is touch modal or if outside touches will be sent to * other windows behind it.<p/> * * <p>If the popup is showing, calling this method will take effect only * the next time the popup is shown or through a manual call to one of * the {@link #update()} methods.</p> * * @param touchModal true to sent all outside touches to this window, * false to other windows behind it * * @see #isTouchModal() */ @UnsupportedAppUsage public void setTouchModal(boolean touchModal) { mNotTouchModal = !touchModal; } Loading Loading @@ -1454,7 +1507,7 @@ public class PopupWindow { * * @param p the layout parameters of the popup's content view */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private void invokePopup(WindowManager.LayoutParams p) { if (mContext != null) { p.packageName = mContext.getPackageName(); Loading Loading @@ -2060,6 +2113,8 @@ public class PopupWindow { * <li>{@link #setInputMethodMode(int)}</li> * <li>{@link #setTouchable(boolean)}</li> * <li>{@link #setAnimationStyle(int)}</li> * <li>{@link #setTouchModal(boolean)} (boolean)}</li> * <li>{@link #setClipToScreenEnabled(boolean)}</li> * </ul> */ public void update() { Loading Loading
api/current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -56297,6 +56297,7 @@ package android.widget { method public android.view.View getContentView(); method public float getElevation(); method @Nullable public android.transition.Transition getEnterTransition(); method @Nullable public android.graphics.Rect getEpicenterBounds(); method @Nullable public android.transition.Transition getExitTransition(); method public int getHeight(); method public int getInputMethodMode(); Loading @@ -56309,30 +56310,37 @@ package android.widget { method public int getWindowLayoutType(); method public boolean isAboveAnchor(); method public boolean isAttachedInDecor(); method public boolean isClipToScreenEnabled(); method public boolean isClippingEnabled(); method public boolean isFocusable(); method public boolean isLayoutInScreenEnabled(); method public boolean isOutsideTouchable(); method public boolean isShowing(); method public boolean isSplitTouchEnabled(); method public boolean isTouchModal(); method public boolean isTouchable(); method public void setAnimationStyle(int); method public void setAttachedInDecor(boolean); method public void setBackgroundDrawable(android.graphics.drawable.Drawable); method public void setClipToScreenEnabled(boolean); method public void setClippingEnabled(boolean); method public void setContentView(android.view.View); method public void setElevation(float); method public void setEnterTransition(@Nullable android.transition.Transition); method public void setEpicenterBounds(@Nullable android.graphics.Rect); method public void setExitTransition(@Nullable android.transition.Transition); method public void setFocusable(boolean); method public void setHeight(int); method public void setIgnoreCheekPress(); method public void setInputMethodMode(int); method public void setLayoutInScreenEnabled(boolean); method public void setOnDismissListener(android.widget.PopupWindow.OnDismissListener); method public void setOutsideTouchable(boolean); method public void setOverlapAnchor(boolean); method public void setSoftInputMode(int); method public void setSplitTouchEnabled(boolean); method public void setTouchInterceptor(android.view.View.OnTouchListener); method public void setTouchModal(boolean); method public void setTouchable(boolean); method public void setWidth(int); method @Deprecated public void setWindowLayoutMode(int, int);
core/java/android/widget/PopupWindow.java +79 −24 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ public class PopupWindow { private WeakReference<View> mAnchorRoot; private boolean mIsAnchorRootAttached; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private final OnScrollChangedListener mOnScrollChangedListener = this::alignToAnchor; private final View.OnLayoutChangeListener mOnLayoutChangeListener = Loading Loading @@ -476,22 +476,39 @@ public class PopupWindow { } /** * Sets the bounds used as the epicenter of the enter and exit transitions. * <p> * Transitions use a point or Rect, referred to as the epicenter, to orient * <p>Returns bounds which are used as a center of the enter and exit transitions.<p/> * * <p>Transitions use Rect, referred to as the epicenter, to orient * the direction of travel. For popup windows, the anchor view bounds are * used as the default epicenter. * <p> * See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters. * used as the default epicenter.</p> * * <p>See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters work.</p> * * @return bounds relative to anchor view, or {@code null} if not set * @see #setEpicenterBounds(Rect) */ @Nullable public Rect getEpicenterBounds() { return mEpicenterBounds; } /** * <p>Sets the bounds used as the epicenter of the enter and exit transitions.</p> * * <p>Transitions use Rect, referred to as the epicenter, to orient * the direction of travel. For popup windows, the anchor view bounds are * used as the default epicenter.</p> * * <p>See {@link Transition#setEpicenterCallback(EpicenterCallback)} for more * information about how transition epicenters work.</p> * * @param bounds the epicenter bounds relative to the anchor view, or * {@code null} to use the default epicenter * @see #getTransitionEpicenter() * @hide * * @see #getEpicenterBounds() */ @UnsupportedAppUsage public void setEpicenterBounds(Rect bounds) { public void setEpicenterBounds(@Nullable Rect bounds) { mEpicenterBounds = bounds; } Loading Loading @@ -865,12 +882,28 @@ public class PopupWindow { } /** * Clip this popup window to the screen, but not to the containing window. * <p>Indicates whether this popup will be clipped to the screen and not to the * containing window<p/> * * @param enabled True to clip to the screen. * @hide * @return true if popup will be clipped to the screen instead of the window, false otherwise * * @see #setClipToScreenEnabled(boolean) */ public boolean isClipToScreenEnabled() { return mClipToScreen; } /** * <p>Clip this popup window to the screen, but not to the containing window.</p> * * <p>If the popup is showing, calling this method will take effect only * the next time the popup is shown or through a manual call to one of * the {@link #update()} methods.</p> * * @param enabled true to clip to the screen. * * @see #isClipToScreenEnabled() */ @UnsupportedAppUsage public void setClipToScreenEnabled(boolean enabled) { mClipToScreen = enabled; } Loading Loading @@ -927,7 +960,8 @@ public class PopupWindow { * for positioning.</p> * * @return true if the window will always be positioned in screen coordinates. * @hide * * @see #setLayoutInScreenEnabled(boolean) */ public boolean isLayoutInScreenEnabled() { return mLayoutInScreen; Loading @@ -939,9 +973,9 @@ public class PopupWindow { * This will cause the popup to be positioned in absolute screen coordinates.</p> * * @param enabled true if the popup should always be positioned in screen coordinates * @hide * * @see #isLayoutInScreenEnabled() */ @UnsupportedAppUsage public void setLayoutInScreenEnabled(boolean enabled) { mLayoutInScreen = enabled; } Loading Loading @@ -1021,11 +1055,30 @@ public class PopupWindow { } /** * Set whether this window is touch modal or if outside touches will be sent to * other windows behind it. * @hide * <p>Indicates whether outside touches will be sent to this window * or other windows behind it<p/> * * @return true if touches will be sent to this window, false otherwise * * @see #setTouchModal(boolean) */ public boolean isTouchModal() { return !mNotTouchModal; } /** * <p>Set whether this window is touch modal or if outside touches will be sent to * other windows behind it.<p/> * * <p>If the popup is showing, calling this method will take effect only * the next time the popup is shown or through a manual call to one of * the {@link #update()} methods.</p> * * @param touchModal true to sent all outside touches to this window, * false to other windows behind it * * @see #isTouchModal() */ @UnsupportedAppUsage public void setTouchModal(boolean touchModal) { mNotTouchModal = !touchModal; } Loading Loading @@ -1454,7 +1507,7 @@ public class PopupWindow { * * @param p the layout parameters of the popup's content view */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private void invokePopup(WindowManager.LayoutParams p) { if (mContext != null) { p.packageName = mContext.getPackageName(); Loading Loading @@ -2060,6 +2113,8 @@ public class PopupWindow { * <li>{@link #setInputMethodMode(int)}</li> * <li>{@link #setTouchable(boolean)}</li> * <li>{@link #setAnimationStyle(int)}</li> * <li>{@link #setTouchModal(boolean)} (boolean)}</li> * <li>{@link #setClipToScreenEnabled(boolean)}</li> * </ul> */ public void update() { Loading