Loading api/current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -32918,6 +32918,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); Loading @@ -32938,6 +32939,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { ctor public ActionMode.Callback2(); method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); } public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu(); api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -35274,6 +35274,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); Loading @@ -35294,6 +35295,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { ctor public ActionMode.Callback2(); method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); } public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu(); core/java/android/view/ActionMode.java +38 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.annotation.StringRes; import android.graphics.Rect; /** * Represents a contextual mode of the user interface. Action modes can be used to provide Loading Loading @@ -196,6 +197,15 @@ public abstract class ActionMode { */ public abstract void invalidate(); /** * Invalidate the content rect associated to this ActionMode. This only makes sense for * action modes that support dynamic positioning on the screen, and provides a more efficient * way to reposition it without invalidating the whole action mode. * * @see Callback2#onGetContentRect(ActionMode, View, Rect) . */ public void invalidateContentRect() {} /** * Finish and close this action mode. The action mode's {@link ActionMode.Callback} will * have its {@link Callback#onDestroyActionMode(ActionMode)} method called. Loading Loading @@ -298,4 +308,31 @@ public abstract class ActionMode { */ public void onDestroyActionMode(ActionMode mode); } /** * Extension of {@link ActionMode.Callback} to provide content rect information. This is * required for ActionModes with dynamic positioning such as the ones with type * {@link ActionMode#TYPE_FLOATING} to ensure the positioning doesn't obscure app content. If * an app fails to provide a subclass of this class, a default implementation will be used. */ public static abstract class Callback2 implements ActionMode.Callback { /** * Called when an ActionMode needs to be positioned on screen, potentially occluding view * content. Note this may be called on a per-frame basis. * * @param mode The ActionMode that requires positioning. * @param view The View that originated the ActionMode, in whose coordinates the Rect should * be provided. * @param outRect The Rect to be populated with the content position. */ public void onGetContentRect(ActionMode mode, View view, Rect outRect) { if (view != null) { outRect.set(0, 0, view.getWidth(), view.getHeight()); } else { outRect.set(0, 0, 0, 0); } } } } core/java/android/view/PhoneWindow.java +12 −11 Original line number Diff line number Diff line Loading @@ -2669,17 +2669,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionModeForChild(View originalView, ActionMode.Callback callback) { // originalView can be used here to be sure that we don't obscure // relevant content with the context mode UI. return startActionMode(callback); return startActionModeForChild(originalView, callback, ActionMode.TYPE_PRIMARY); } @Override public ActionMode startActionModeForChild( View child, ActionMode.Callback callback, int type) { // originalView can be used here to be sure that we don't obscure // relevant content with the context mode UI. return startActionMode(callback, type); return startActionMode(child, callback, type); } @Override Loading @@ -2689,7 +2685,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionMode(ActionMode.Callback callback, int type) { ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback); return startActionMode(this, callback, type); } private ActionMode startActionMode( View originatingView, ActionMode.Callback callback, int type) { ActionMode.Callback2 wrappedCallback = new ActionModeCallback2Wrapper(callback); ActionMode mode = null; if (getCallback() != null && !isDestroyed()) { try { Loading Loading @@ -3291,12 +3292,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } /** * Clears out internal reference when the action mode is destroyed. * Clears out internal references when the action mode is destroyed. */ private class ActionModeCallbackWrapper implements ActionMode.Callback { private ActionMode.Callback mWrapped; private class ActionModeCallback2Wrapper extends ActionMode.Callback2 { private final ActionMode.Callback mWrapped; public ActionModeCallbackWrapper(ActionMode.Callback wrapped) { public ActionModeCallback2Wrapper(ActionMode.Callback wrapped) { mWrapped = wrapped; } Loading Loading
api/current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -32918,6 +32918,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); Loading @@ -32938,6 +32939,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { ctor public ActionMode.Callback2(); method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); } public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu();
api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -35274,6 +35274,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); Loading @@ -35294,6 +35295,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { ctor public ActionMode.Callback2(); method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); } public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu();
core/java/android/view/ActionMode.java +38 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.annotation.StringRes; import android.graphics.Rect; /** * Represents a contextual mode of the user interface. Action modes can be used to provide Loading Loading @@ -196,6 +197,15 @@ public abstract class ActionMode { */ public abstract void invalidate(); /** * Invalidate the content rect associated to this ActionMode. This only makes sense for * action modes that support dynamic positioning on the screen, and provides a more efficient * way to reposition it without invalidating the whole action mode. * * @see Callback2#onGetContentRect(ActionMode, View, Rect) . */ public void invalidateContentRect() {} /** * Finish and close this action mode. The action mode's {@link ActionMode.Callback} will * have its {@link Callback#onDestroyActionMode(ActionMode)} method called. Loading Loading @@ -298,4 +308,31 @@ public abstract class ActionMode { */ public void onDestroyActionMode(ActionMode mode); } /** * Extension of {@link ActionMode.Callback} to provide content rect information. This is * required for ActionModes with dynamic positioning such as the ones with type * {@link ActionMode#TYPE_FLOATING} to ensure the positioning doesn't obscure app content. If * an app fails to provide a subclass of this class, a default implementation will be used. */ public static abstract class Callback2 implements ActionMode.Callback { /** * Called when an ActionMode needs to be positioned on screen, potentially occluding view * content. Note this may be called on a per-frame basis. * * @param mode The ActionMode that requires positioning. * @param view The View that originated the ActionMode, in whose coordinates the Rect should * be provided. * @param outRect The Rect to be populated with the content position. */ public void onGetContentRect(ActionMode mode, View view, Rect outRect) { if (view != null) { outRect.set(0, 0, view.getWidth(), view.getHeight()); } else { outRect.set(0, 0, 0, 0); } } } }
core/java/android/view/PhoneWindow.java +12 −11 Original line number Diff line number Diff line Loading @@ -2669,17 +2669,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionModeForChild(View originalView, ActionMode.Callback callback) { // originalView can be used here to be sure that we don't obscure // relevant content with the context mode UI. return startActionMode(callback); return startActionModeForChild(originalView, callback, ActionMode.TYPE_PRIMARY); } @Override public ActionMode startActionModeForChild( View child, ActionMode.Callback callback, int type) { // originalView can be used here to be sure that we don't obscure // relevant content with the context mode UI. return startActionMode(callback, type); return startActionMode(child, callback, type); } @Override Loading @@ -2689,7 +2685,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionMode(ActionMode.Callback callback, int type) { ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback); return startActionMode(this, callback, type); } private ActionMode startActionMode( View originatingView, ActionMode.Callback callback, int type) { ActionMode.Callback2 wrappedCallback = new ActionModeCallback2Wrapper(callback); ActionMode mode = null; if (getCallback() != null && !isDestroyed()) { try { Loading Loading @@ -3291,12 +3292,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } /** * Clears out internal reference when the action mode is destroyed. * Clears out internal references when the action mode is destroyed. */ private class ActionModeCallbackWrapper implements ActionMode.Callback { private ActionMode.Callback mWrapped; private class ActionModeCallback2Wrapper extends ActionMode.Callback2 { private final ActionMode.Callback mWrapped; public ActionModeCallbackWrapper(ActionMode.Callback wrapped) { public ActionModeCallback2Wrapper(ActionMode.Callback wrapped) { mWrapped = wrapped; } Loading