Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b164fe0 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Moved context modes into view, renamed to action modes"

parents 808616f9 6e346367
Loading
Loading
Loading
Loading
+283 −212
Original line number Original line Diff line number Diff line
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
+27 −24
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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
@@ -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) {
@@ -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();
        }
    }
}
}
+11 −5
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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.
     */
     */
+0 −22
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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() {
    }
}
}
+151 −0
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
@@ -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.
@@ -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