Loading api/current.xml +283 −212 Original line number Original line Diff line number Diff line Loading @@ -21241,6 +21241,19 @@ visibility="protected" visibility="protected" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onStop" <method name="onStop" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -21900,6 +21913,19 @@ <parameter name="requestCode" type="int"> <parameter name="requestCode" type="int"> </parameter> </parameter> </method> </method> <method name="startContextMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startIntentSenderForResult" <method name="startIntentSenderForResult" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -24546,194 +24572,6 @@ > > </method> </method> </class> </class> <class name="ContextualMode" extends="java.lang.Object" abstract="true" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="ContextualMode" type="android.app.ContextualMode" static="false" final="false" deprecated="not deprecated" visibility="public" > </constructor> <method name="finish" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getCustomView" return="android.view.View" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getMenu" return="android.view.Menu" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getSubtitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getTitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="invalidate" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="setCustomView" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="android.view.View"> </parameter> </method> <method name="setSubtitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="subtitle" type="java.lang.CharSequence"> </parameter> </method> <method name="setTitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="title" type="java.lang.CharSequence"> </parameter> </method> </class> <interface name="ContextualMode.Callback" abstract="true" static="true" final="false" deprecated="not deprecated" visibility="public" > <method name="onContextualItemClicked" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="item" type="android.view.MenuItem"> </parameter> </method> <method name="onCreateContextualMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> <method name="onDestroyContextualMode" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> </method> <method name="onPrepareContextualMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> </interface> <class name="DatePickerDialog" <class name="DatePickerDialog" extends="android.app.AlertDialog" extends="android.app.AlertDialog" abstract="false" abstract="false" Loading Loading @@ -25466,6 +25304,19 @@ visibility="protected" visibility="protected" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onStop" <method name="onStop" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -40357,17 +40208,6 @@ visibility="public" visibility="public" > > </method> </method> <method name="finishContextualMode" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getApplicationContext" <method name="getApplicationContext" return="android.content.Context" return="android.content.Context" abstract="true" abstract="true" Loading Loading @@ -41082,19 +40922,6 @@ <parameter name="intent" type="android.content.Intent"> <parameter name="intent" type="android.content.Intent"> </parameter> </parameter> </method> </method> <method name="startContextualMode" return="android.app.ContextualMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.app.ContextualMode.Callback"> </parameter> </method> <method name="startInstrumentation" <method name="startInstrumentation" return="boolean" return="boolean" abstract="true" abstract="true" Loading Loading @@ -176384,6 +176211,194 @@ > > </field> </field> </class> </class> <class name="ActionMode" extends="java.lang.Object" abstract="true" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="ActionMode" type="android.view.ActionMode" static="false" final="false" deprecated="not deprecated" visibility="public" > </constructor> <method name="finish" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getCustomView" return="android.view.View" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getMenu" return="android.view.Menu" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getSubtitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getTitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="invalidate" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="setCustomView" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="android.view.View"> </parameter> </method> <method name="setSubtitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="subtitle" type="java.lang.CharSequence"> </parameter> </method> <method name="setTitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="title" type="java.lang.CharSequence"> </parameter> </method> </class> <interface name="ActionMode.Callback" abstract="true" static="true" final="false" deprecated="not deprecated" visibility="public" > <method name="onActionItemClicked" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="item" type="android.view.MenuItem"> </parameter> </method> <method name="onCreateActionMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> <method name="onDestroyActionMode" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> </method> <method name="onPrepareActionMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> </interface> <interface name="ContextMenu" <interface name="ContextMenu" abstract="true" abstract="true" static="false" static="false" Loading Loading @@ -188811,6 +188826,19 @@ visibility="public" visibility="public" > > </method> </method> <method name="startActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startAnimation" <method name="startAnimation" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -191588,6 +191616,21 @@ <parameter name="originalView" type="android.view.View"> <parameter name="originalView" type="android.view.View"> </parameter> </parameter> </method> </method> <method name="startActionModeForChild" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="originalView" type="android.view.View"> </parameter> <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startLayoutAnimation" <method name="startLayoutAnimation" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -192278,6 +192321,21 @@ <parameter name="originalView" type="android.view.View"> <parameter name="originalView" type="android.view.View"> </parameter> </parameter> </method> </method> <method name="startActionModeForChild" return="android.view.ActionMode" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="originalView" type="android.view.View"> </parameter> <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> </interface> </interface> <class name="ViewStub" <class name="ViewStub" extends="android.view.View" extends="android.view.View" Loading Loading @@ -194048,6 +194106,19 @@ visibility="public" visibility="public" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onWindowAttributesChanged" <method name="onWindowAttributesChanged" return="void" return="void" abstract="true" abstract="true" core/java/android/app/Activity.java +27 −24 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,8 @@ package android.app; package android.app; import java.util.ArrayList; import com.android.internal.app.ActionBarImpl; import java.util.HashMap; import com.android.internal.policy.PolicyManager; import android.content.ComponentCallbacks; import android.content.ComponentCallbacks; import android.content.ComponentName; import android.content.ComponentName; Loading Loading @@ -52,7 +52,9 @@ import android.util.Config; import android.util.EventLog; import android.util.EventLog; import android.util.Log; import android.util.Log; import android.util.SparseArray; import android.util.SparseArray; import android.view.ActionMode; import android.view.ContextMenu; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper; import android.view.InflateException; import android.view.InflateException; import android.view.KeyEvent; import android.view.KeyEvent; Loading @@ -62,21 +64,18 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.MenuItem; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.View; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.ViewManager; import android.view.ViewManager; import android.view.Window; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent; import android.widget.AdapterView; import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.FrameLayout; import android.widget.LinearLayout; import com.android.internal.app.ActionBarImpl; import java.util.ArrayList; import com.android.internal.policy.PolicyManager; import java.util.HashMap; import com.android.internal.widget.ActionBarView; /** /** * An activity is a single, focused thing that the user can do. Almost all * An activity is a single, focused thing that the user can do. Almost all Loading Loading @@ -4073,6 +4072,25 @@ public class Activity extends ContextThemeWrapper } } } } /** * Start a context mode. * * @param callback Callback that will manage lifecycle events for this context mode * @return The ContextMode that was started, or null if it was canceled * * @see ActionMode */ public ActionMode startContextMode(ActionMode.Callback callback) { return mWindow.getDecorView().startActionMode(callback); } public ActionMode onStartActionMode(ActionMode.Callback callback) { if (mActionBar != null) { return mActionBar.startContextMode(callback); } return null; } // ------------------ Internal API ------------------ // ------------------ Internal API ------------------ final void setParent(Activity parent) { final void setParent(Activity parent) { Loading Loading @@ -4286,19 +4304,4 @@ public class Activity extends ContextThemeWrapper } } } } } } @Override public ContextualMode startContextualMode(ContextualMode.Callback callback) { if (mActionBar == null) { return null; } return mActionBar.startContextualMode(callback); } @Override public void finishContextualMode() { if (mActionBar != null) { mActionBar.finishContextualMode(); } } } } core/java/android/app/Dialog.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -18,16 +18,18 @@ package android.app; import com.android.internal.policy.PolicyManager; import com.android.internal.policy.PolicyManager; import android.content.Context; import android.content.DialogInterface; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.ContextWrapper; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.os.Handler; import android.os.Handler; import android.os.Message; import android.os.Message; import android.view.ContextMenu; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.ActionMode; import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.Gravity; import android.view.KeyEvent; import android.view.KeyEvent; Loading @@ -36,13 +38,12 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.View; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewConfiguration; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent; import java.lang.ref.WeakReference; import java.lang.ref.WeakReference; Loading Loading @@ -832,6 +833,11 @@ public class Dialog implements DialogInterface, Window.Callback, } } } } public ActionMode onStartActionMode(ActionMode.Callback callback) { // TODO Support context modes in dialogs return null; } /** /** * @return The activity associated with this dialog, or null if there is no assocaited activity. * @return The activity associated with this dialog, or null if there is no assocaited activity. */ */ Loading core/java/android/content/Context.java +0 −22 Original line number Original line Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.content; package android.content; import android.app.ContextualMode; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.content.res.AssetManager; Loading Loading @@ -1983,25 +1982,4 @@ public abstract class Context { public boolean isRestricted() { public boolean isRestricted() { return false; return false; } } /** * Start a contextual mode controlled by <code>callback</code>. * The {@link ContextualMode.Callback} will receive lifecycle events for the duration * of the contextual mode. There can only be one contextual mode active at a time. * Starting a new contextual mode while one is already active will finish the old * contextual mode. * * @param callback Callback handler that will manage this context mode. * @return The new contextual mode started by this call, or <code>null</code> * if the mode was not started. */ public ContextualMode startContextualMode(ContextualMode.Callback callback) { return null; } /** * Finish the current contextual mode if present. */ public void finishContextualMode() { } } } core/java/android/app/ContextualMode.java→core/java/android/view/ActionMode.java +151 −0 Original line number Original line Diff line number Diff line Loading @@ -14,21 +14,17 @@ * limitations under the License. * limitations under the License. */ */ package android.app; package android.view; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; /** /** * Represents a contextual mode of the user interface. Contextual modes can be used for * Represents a contextual mode of the user interface. Action modes can be used for * modal interactions with content and replace parts of the normal UI until finished. * modal interactions with content and replace parts of the normal UI until finished. * Examples of good contextual modes include selection modes, search, content editing, etc. * Examples of good action modes include selection modes, search, content editing, etc. */ */ public abstract class ContextualMode { public abstract class ActionMode { /** /** * Set the title of the contextual mode. This method will have no visible effect if * Set the title of the action mode. This method will have no visible effect if * a custom view has been set. * a custom view has been set. * * * @param title Title string to set * @param title Title string to set Loading @@ -38,7 +34,7 @@ public abstract class ContextualMode { public abstract void setTitle(CharSequence title); public abstract void setTitle(CharSequence title); /** /** * Set the subtitle of the contextual mode. This method will have no visible effect if * Set the subtitle of the action mode. This method will have no visible effect if * a custom view has been set. * a custom view has been set. * * * @param subtitle Subtitle string to set * @param subtitle Subtitle string to set Loading @@ -48,7 +44,7 @@ public abstract class ContextualMode { public abstract void setSubtitle(CharSequence subtitle); public abstract void setSubtitle(CharSequence subtitle); /** /** * Set a custom view for this contextual mode. The custom view will take the place of * Set a custom view for this action mode. The custom view will take the place of * the title and subtitle. Useful for things like search boxes. * the title and subtitle. Useful for things like search boxes. * * * @param view Custom view to use in place of the title/subtitle. * @param view Custom view to use in place of the title/subtitle. Loading @@ -59,97 +55,97 @@ public abstract class ContextualMode { public abstract void setCustomView(View view); public abstract void setCustomView(View view); /** /** * Invalidate the contextual mode and refresh menu content. The contextual mode's * Invalidate the action mode and refresh menu content. The mode's * {@link ContextualMode.Callback} will have its * {@link ActionMode.Callback} will have its * {@link Callback#onPrepareContextualMode(ContextualMode, Menu)} method called. * {@link Callback#onPrepareActionMode(ActionMode, Menu)} method called. * If it returns true the menu will be scanned for updated content and any relevant changes * If it returns true the menu will be scanned for updated content and any relevant changes * will be reflected to the user. * will be reflected to the user. */ */ public abstract void invalidate(); public abstract void invalidate(); /** /** * Finish and close this context mode. The context mode's {@link ContextualMode.Callback} will * Finish and close this action mode. The action mode's {@link ActionMode.Callback} will * have its {@link Callback#onDestroyContextualMode(ContextualMode)} method called. * have its {@link Callback#onDestroyActionMode(ActionMode)} method called. */ */ public abstract void finish(); public abstract void finish(); /** /** * Returns the menu of actions that this contextual mode presents. * Returns the menu of actions that this action mode presents. * @return The contextual mode's menu. * @return The action mode's menu. */ */ public abstract Menu getMenu(); public abstract Menu getMenu(); /** /** * Returns the current title of this contextual mode. * Returns the current title of this action mode. * @return Title text * @return Title text */ */ public abstract CharSequence getTitle(); public abstract CharSequence getTitle(); /** /** * Returns the current subtitle of this contextual mode. * Returns the current subtitle of this action mode. * @return Subtitle text * @return Subtitle text */ */ public abstract CharSequence getSubtitle(); public abstract CharSequence getSubtitle(); /** /** * Returns the current custom view for this contextual mode. * Returns the current custom view for this action mode. * @return The current custom view * @return The current custom view */ */ public abstract View getCustomView(); public abstract View getCustomView(); /** /** * Callback interface for contextual modes. Supplied to * Callback interface for action modes. Supplied to * {@link Context#startContextualMode(Callback)}, a Callback * {@link View#startActionMode(Callback)}, a Callback * configures and handles events raised by a user's interaction with a context mode. * configures and handles events raised by a user's interaction with an action mode. * * * <p>A context mode's lifecycle is as follows: * <p>An action mode's lifecycle is as follows: * <ul> * <ul> * <li>{@link Callback#onCreateContextualMode(ContextualMode, Menu)} once on initial * <li>{@link Callback#onCreateActionMode(ActionMode, Menu)} once on initial * creation</li> * creation</li> * <li>{@link Callback#onPrepareContextualMode(ContextualMode, Menu)} after creation * <li>{@link Callback#onPrepareActionMode(ActionMode, Menu)} after creation * and any time the {@link ContextualMode} is invalidated</li> * and any time the {@link ActionMode} is invalidated</li> * <li>{@link Callback#onContextualItemClicked(ContextualMode, MenuItem)} any time a * <li>{@link Callback#onActionItemClicked(ActionMode, MenuItem)} any time a * contextual action button is clicked</li> * contextual action button is clicked</li> * <li>{@link Callback#onDestroyContextualMode(ContextualMode)} when the context mode * <li>{@link Callback#onDestroyActionMode(ActionMode)} when the action mode * is closed</li> * is closed</li> * </ul> * </ul> */ */ public interface Callback { public interface Callback { /** /** * Called when a contextual mode is first created. The menu supplied will be used to * Called when action mode is first created. The menu supplied will be used to * generate action buttons for the contextual mode. * generate action buttons for the action mode. * * * @param mode ContextualMode being created * @param mode ActionMode being created * @param menu Menu used to populate contextual action buttons * @param menu Menu used to populate action buttons * @return true if the contextual mode should be created, false if entering this * @return true if the action mode should be created, false if entering this * mode should be aborted. * mode should be aborted. */ */ public boolean onCreateContextualMode(ContextualMode mode, Menu menu); public boolean onCreateActionMode(ActionMode mode, Menu menu); /** /** * Called to refresh a contextual mode's action menu whenever it is invalidated. * Called to refresh an action mode's action menu whenever it is invalidated. * * * @param mode ContextualMode being prepared * @param mode ActionMode being prepared * @param menu Menu used to populate contextual action buttons * @param menu Menu used to populate action buttons * @return true if the menu or contextual mode was updated, false otherwise. * @return true if the menu or action mode was updated, false otherwise. */ */ public boolean onPrepareContextualMode(ContextualMode mode, Menu menu); public boolean onPrepareActionMode(ActionMode mode, Menu menu); /** /** * Called to report a user click on a contextual action button. * Called to report a user click on an action button. * * * @param mode The current ContextualMode * @param mode The current ActionMode * @param item The item that was clicked * @param item The item that was clicked * @return true if this callback handled the event, false if the standard MenuItem * @return true if this callback handled the event, false if the standard MenuItem * invocation should continue. * invocation should continue. */ */ public boolean onContextualItemClicked(ContextualMode mode, MenuItem item); public boolean onActionItemClicked(ActionMode mode, MenuItem item); /** /** * Called when a contextual mode is about to be exited and destroyed. * Called when an action mode is about to be exited and destroyed. * * * @param mode The current ContextualMode being destroyed * @param mode The current ActionMode being destroyed */ */ public void onDestroyContextualMode(ContextualMode mode); public void onDestroyActionMode(ActionMode mode); } } } } No newline at end of file Loading
api/current.xml +283 −212 Original line number Original line Diff line number Diff line Loading @@ -21241,6 +21241,19 @@ visibility="protected" visibility="protected" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onStop" <method name="onStop" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -21900,6 +21913,19 @@ <parameter name="requestCode" type="int"> <parameter name="requestCode" type="int"> </parameter> </parameter> </method> </method> <method name="startContextMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startIntentSenderForResult" <method name="startIntentSenderForResult" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -24546,194 +24572,6 @@ > > </method> </method> </class> </class> <class name="ContextualMode" extends="java.lang.Object" abstract="true" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="ContextualMode" type="android.app.ContextualMode" static="false" final="false" deprecated="not deprecated" visibility="public" > </constructor> <method name="finish" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getCustomView" return="android.view.View" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getMenu" return="android.view.Menu" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getSubtitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getTitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="invalidate" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="setCustomView" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="android.view.View"> </parameter> </method> <method name="setSubtitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="subtitle" type="java.lang.CharSequence"> </parameter> </method> <method name="setTitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="title" type="java.lang.CharSequence"> </parameter> </method> </class> <interface name="ContextualMode.Callback" abstract="true" static="true" final="false" deprecated="not deprecated" visibility="public" > <method name="onContextualItemClicked" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="item" type="android.view.MenuItem"> </parameter> </method> <method name="onCreateContextualMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> <method name="onDestroyContextualMode" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> </method> <method name="onPrepareContextualMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.app.ContextualMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> </interface> <class name="DatePickerDialog" <class name="DatePickerDialog" extends="android.app.AlertDialog" extends="android.app.AlertDialog" abstract="false" abstract="false" Loading Loading @@ -25466,6 +25304,19 @@ visibility="protected" visibility="protected" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onStop" <method name="onStop" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -40357,17 +40208,6 @@ visibility="public" visibility="public" > > </method> </method> <method name="finishContextualMode" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getApplicationContext" <method name="getApplicationContext" return="android.content.Context" return="android.content.Context" abstract="true" abstract="true" Loading Loading @@ -41082,19 +40922,6 @@ <parameter name="intent" type="android.content.Intent"> <parameter name="intent" type="android.content.Intent"> </parameter> </parameter> </method> </method> <method name="startContextualMode" return="android.app.ContextualMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.app.ContextualMode.Callback"> </parameter> </method> <method name="startInstrumentation" <method name="startInstrumentation" return="boolean" return="boolean" abstract="true" abstract="true" Loading Loading @@ -176384,6 +176211,194 @@ > > </field> </field> </class> </class> <class name="ActionMode" extends="java.lang.Object" abstract="true" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="ActionMode" type="android.view.ActionMode" static="false" final="false" deprecated="not deprecated" visibility="public" > </constructor> <method name="finish" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getCustomView" return="android.view.View" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getMenu" return="android.view.Menu" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getSubtitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getTitle" return="java.lang.CharSequence" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="invalidate" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="setCustomView" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="android.view.View"> </parameter> </method> <method name="setSubtitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="subtitle" type="java.lang.CharSequence"> </parameter> </method> <method name="setTitle" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="title" type="java.lang.CharSequence"> </parameter> </method> </class> <interface name="ActionMode.Callback" abstract="true" static="true" final="false" deprecated="not deprecated" visibility="public" > <method name="onActionItemClicked" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="item" type="android.view.MenuItem"> </parameter> </method> <method name="onCreateActionMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> <method name="onDestroyActionMode" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> </method> <method name="onPrepareActionMode" return="boolean" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mode" type="android.view.ActionMode"> </parameter> <parameter name="menu" type="android.view.Menu"> </parameter> </method> </interface> <interface name="ContextMenu" <interface name="ContextMenu" abstract="true" abstract="true" static="false" static="false" Loading Loading @@ -188811,6 +188826,19 @@ visibility="public" visibility="public" > > </method> </method> <method name="startActionMode" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startAnimation" <method name="startAnimation" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -191588,6 +191616,21 @@ <parameter name="originalView" type="android.view.View"> <parameter name="originalView" type="android.view.View"> </parameter> </parameter> </method> </method> <method name="startActionModeForChild" return="android.view.ActionMode" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="originalView" type="android.view.View"> </parameter> <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="startLayoutAnimation" <method name="startLayoutAnimation" return="void" return="void" abstract="false" abstract="false" Loading Loading @@ -192278,6 +192321,21 @@ <parameter name="originalView" type="android.view.View"> <parameter name="originalView" type="android.view.View"> </parameter> </parameter> </method> </method> <method name="startActionModeForChild" return="android.view.ActionMode" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="originalView" type="android.view.View"> </parameter> <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> </interface> </interface> <class name="ViewStub" <class name="ViewStub" extends="android.view.View" extends="android.view.View" Loading Loading @@ -194048,6 +194106,19 @@ visibility="public" visibility="public" > > </method> </method> <method name="onStartActionMode" return="android.view.ActionMode" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="callback" type="android.view.ActionMode.Callback"> </parameter> </method> <method name="onWindowAttributesChanged" <method name="onWindowAttributesChanged" return="void" return="void" abstract="true" abstract="true"
core/java/android/app/Activity.java +27 −24 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,8 @@ package android.app; package android.app; import java.util.ArrayList; import com.android.internal.app.ActionBarImpl; import java.util.HashMap; import com.android.internal.policy.PolicyManager; import android.content.ComponentCallbacks; import android.content.ComponentCallbacks; import android.content.ComponentName; import android.content.ComponentName; Loading Loading @@ -52,7 +52,9 @@ import android.util.Config; import android.util.EventLog; import android.util.EventLog; import android.util.Log; import android.util.Log; import android.util.SparseArray; import android.util.SparseArray; import android.view.ActionMode; import android.view.ContextMenu; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper; import android.view.InflateException; import android.view.InflateException; import android.view.KeyEvent; import android.view.KeyEvent; Loading @@ -62,21 +64,18 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.MenuItem; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.View; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.ViewManager; import android.view.ViewManager; import android.view.Window; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent; import android.widget.AdapterView; import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.FrameLayout; import android.widget.LinearLayout; import com.android.internal.app.ActionBarImpl; import java.util.ArrayList; import com.android.internal.policy.PolicyManager; import java.util.HashMap; import com.android.internal.widget.ActionBarView; /** /** * An activity is a single, focused thing that the user can do. Almost all * An activity is a single, focused thing that the user can do. Almost all Loading Loading @@ -4073,6 +4072,25 @@ public class Activity extends ContextThemeWrapper } } } } /** * Start a context mode. * * @param callback Callback that will manage lifecycle events for this context mode * @return The ContextMode that was started, or null if it was canceled * * @see ActionMode */ public ActionMode startContextMode(ActionMode.Callback callback) { return mWindow.getDecorView().startActionMode(callback); } public ActionMode onStartActionMode(ActionMode.Callback callback) { if (mActionBar != null) { return mActionBar.startContextMode(callback); } return null; } // ------------------ Internal API ------------------ // ------------------ Internal API ------------------ final void setParent(Activity parent) { final void setParent(Activity parent) { Loading Loading @@ -4286,19 +4304,4 @@ public class Activity extends ContextThemeWrapper } } } } } } @Override public ContextualMode startContextualMode(ContextualMode.Callback callback) { if (mActionBar == null) { return null; } return mActionBar.startContextualMode(callback); } @Override public void finishContextualMode() { if (mActionBar != null) { mActionBar.finishContextualMode(); } } } }
core/java/android/app/Dialog.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -18,16 +18,18 @@ package android.app; import com.android.internal.policy.PolicyManager; import com.android.internal.policy.PolicyManager; import android.content.Context; import android.content.DialogInterface; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.ContextWrapper; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.os.Handler; import android.os.Handler; import android.os.Message; import android.os.Message; import android.view.ContextMenu; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.ActionMode; import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.Gravity; import android.view.KeyEvent; import android.view.KeyEvent; Loading @@ -36,13 +38,12 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.View; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewConfiguration; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent; import java.lang.ref.WeakReference; import java.lang.ref.WeakReference; Loading Loading @@ -832,6 +833,11 @@ public class Dialog implements DialogInterface, Window.Callback, } } } } public ActionMode onStartActionMode(ActionMode.Callback callback) { // TODO Support context modes in dialogs return null; } /** /** * @return The activity associated with this dialog, or null if there is no assocaited activity. * @return The activity associated with this dialog, or null if there is no assocaited activity. */ */ Loading
core/java/android/content/Context.java +0 −22 Original line number Original line Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.content; package android.content; import android.app.ContextualMode; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.content.res.AssetManager; Loading Loading @@ -1983,25 +1982,4 @@ public abstract class Context { public boolean isRestricted() { public boolean isRestricted() { return false; return false; } } /** * Start a contextual mode controlled by <code>callback</code>. * The {@link ContextualMode.Callback} will receive lifecycle events for the duration * of the contextual mode. There can only be one contextual mode active at a time. * Starting a new contextual mode while one is already active will finish the old * contextual mode. * * @param callback Callback handler that will manage this context mode. * @return The new contextual mode started by this call, or <code>null</code> * if the mode was not started. */ public ContextualMode startContextualMode(ContextualMode.Callback callback) { return null; } /** * Finish the current contextual mode if present. */ public void finishContextualMode() { } } }
core/java/android/app/ContextualMode.java→core/java/android/view/ActionMode.java +151 −0 Original line number Original line Diff line number Diff line Loading @@ -14,21 +14,17 @@ * limitations under the License. * limitations under the License. */ */ package android.app; package android.view; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; /** /** * Represents a contextual mode of the user interface. Contextual modes can be used for * Represents a contextual mode of the user interface. Action modes can be used for * modal interactions with content and replace parts of the normal UI until finished. * modal interactions with content and replace parts of the normal UI until finished. * Examples of good contextual modes include selection modes, search, content editing, etc. * Examples of good action modes include selection modes, search, content editing, etc. */ */ public abstract class ContextualMode { public abstract class ActionMode { /** /** * Set the title of the contextual mode. This method will have no visible effect if * Set the title of the action mode. This method will have no visible effect if * a custom view has been set. * a custom view has been set. * * * @param title Title string to set * @param title Title string to set Loading @@ -38,7 +34,7 @@ public abstract class ContextualMode { public abstract void setTitle(CharSequence title); public abstract void setTitle(CharSequence title); /** /** * Set the subtitle of the contextual mode. This method will have no visible effect if * Set the subtitle of the action mode. This method will have no visible effect if * a custom view has been set. * a custom view has been set. * * * @param subtitle Subtitle string to set * @param subtitle Subtitle string to set Loading @@ -48,7 +44,7 @@ public abstract class ContextualMode { public abstract void setSubtitle(CharSequence subtitle); public abstract void setSubtitle(CharSequence subtitle); /** /** * Set a custom view for this contextual mode. The custom view will take the place of * Set a custom view for this action mode. The custom view will take the place of * the title and subtitle. Useful for things like search boxes. * the title and subtitle. Useful for things like search boxes. * * * @param view Custom view to use in place of the title/subtitle. * @param view Custom view to use in place of the title/subtitle. Loading @@ -59,97 +55,97 @@ public abstract class ContextualMode { public abstract void setCustomView(View view); public abstract void setCustomView(View view); /** /** * Invalidate the contextual mode and refresh menu content. The contextual mode's * Invalidate the action mode and refresh menu content. The mode's * {@link ContextualMode.Callback} will have its * {@link ActionMode.Callback} will have its * {@link Callback#onPrepareContextualMode(ContextualMode, Menu)} method called. * {@link Callback#onPrepareActionMode(ActionMode, Menu)} method called. * If it returns true the menu will be scanned for updated content and any relevant changes * If it returns true the menu will be scanned for updated content and any relevant changes * will be reflected to the user. * will be reflected to the user. */ */ public abstract void invalidate(); public abstract void invalidate(); /** /** * Finish and close this context mode. The context mode's {@link ContextualMode.Callback} will * Finish and close this action mode. The action mode's {@link ActionMode.Callback} will * have its {@link Callback#onDestroyContextualMode(ContextualMode)} method called. * have its {@link Callback#onDestroyActionMode(ActionMode)} method called. */ */ public abstract void finish(); public abstract void finish(); /** /** * Returns the menu of actions that this contextual mode presents. * Returns the menu of actions that this action mode presents. * @return The contextual mode's menu. * @return The action mode's menu. */ */ public abstract Menu getMenu(); public abstract Menu getMenu(); /** /** * Returns the current title of this contextual mode. * Returns the current title of this action mode. * @return Title text * @return Title text */ */ public abstract CharSequence getTitle(); public abstract CharSequence getTitle(); /** /** * Returns the current subtitle of this contextual mode. * Returns the current subtitle of this action mode. * @return Subtitle text * @return Subtitle text */ */ public abstract CharSequence getSubtitle(); public abstract CharSequence getSubtitle(); /** /** * Returns the current custom view for this contextual mode. * Returns the current custom view for this action mode. * @return The current custom view * @return The current custom view */ */ public abstract View getCustomView(); public abstract View getCustomView(); /** /** * Callback interface for contextual modes. Supplied to * Callback interface for action modes. Supplied to * {@link Context#startContextualMode(Callback)}, a Callback * {@link View#startActionMode(Callback)}, a Callback * configures and handles events raised by a user's interaction with a context mode. * configures and handles events raised by a user's interaction with an action mode. * * * <p>A context mode's lifecycle is as follows: * <p>An action mode's lifecycle is as follows: * <ul> * <ul> * <li>{@link Callback#onCreateContextualMode(ContextualMode, Menu)} once on initial * <li>{@link Callback#onCreateActionMode(ActionMode, Menu)} once on initial * creation</li> * creation</li> * <li>{@link Callback#onPrepareContextualMode(ContextualMode, Menu)} after creation * <li>{@link Callback#onPrepareActionMode(ActionMode, Menu)} after creation * and any time the {@link ContextualMode} is invalidated</li> * and any time the {@link ActionMode} is invalidated</li> * <li>{@link Callback#onContextualItemClicked(ContextualMode, MenuItem)} any time a * <li>{@link Callback#onActionItemClicked(ActionMode, MenuItem)} any time a * contextual action button is clicked</li> * contextual action button is clicked</li> * <li>{@link Callback#onDestroyContextualMode(ContextualMode)} when the context mode * <li>{@link Callback#onDestroyActionMode(ActionMode)} when the action mode * is closed</li> * is closed</li> * </ul> * </ul> */ */ public interface Callback { public interface Callback { /** /** * Called when a contextual mode is first created. The menu supplied will be used to * Called when action mode is first created. The menu supplied will be used to * generate action buttons for the contextual mode. * generate action buttons for the action mode. * * * @param mode ContextualMode being created * @param mode ActionMode being created * @param menu Menu used to populate contextual action buttons * @param menu Menu used to populate action buttons * @return true if the contextual mode should be created, false if entering this * @return true if the action mode should be created, false if entering this * mode should be aborted. * mode should be aborted. */ */ public boolean onCreateContextualMode(ContextualMode mode, Menu menu); public boolean onCreateActionMode(ActionMode mode, Menu menu); /** /** * Called to refresh a contextual mode's action menu whenever it is invalidated. * Called to refresh an action mode's action menu whenever it is invalidated. * * * @param mode ContextualMode being prepared * @param mode ActionMode being prepared * @param menu Menu used to populate contextual action buttons * @param menu Menu used to populate action buttons * @return true if the menu or contextual mode was updated, false otherwise. * @return true if the menu or action mode was updated, false otherwise. */ */ public boolean onPrepareContextualMode(ContextualMode mode, Menu menu); public boolean onPrepareActionMode(ActionMode mode, Menu menu); /** /** * Called to report a user click on a contextual action button. * Called to report a user click on an action button. * * * @param mode The current ContextualMode * @param mode The current ActionMode * @param item The item that was clicked * @param item The item that was clicked * @return true if this callback handled the event, false if the standard MenuItem * @return true if this callback handled the event, false if the standard MenuItem * invocation should continue. * invocation should continue. */ */ public boolean onContextualItemClicked(ContextualMode mode, MenuItem item); public boolean onActionItemClicked(ActionMode mode, MenuItem item); /** /** * Called when a contextual mode is about to be exited and destroyed. * Called when an action mode is about to be exited and destroyed. * * * @param mode The current ContextualMode being destroyed * @param mode The current ActionMode being destroyed */ */ public void onDestroyContextualMode(ContextualMode mode); public void onDestroyActionMode(ActionMode mode); } } } } No newline at end of file