Example usage for android.view View startActionMode

List of usage examples for android.view View startActionMode

Introduction

In this page you can find the example usage for android.view View startActionMode.

Prototype

public ActionMode startActionMode(ActionMode.Callback callback) 

Source Link

Document

Start an action mode with the default type ActionMode#TYPE_PRIMARY .

Usage

From source file:com.forrestguice.suntimeswidget.TimeZoneDialog.java

/**
 * trigger the time zone ActionMode/*from  www  .j  a va 2s . c o  m*/
 * @param view the view that is triggering the ActionMode
 * @return true ActionMode started, false otherwise
 */
private boolean triggerTimeZoneActionMode(View view) {
    if (this.actionMode != null)
        return false;

    // ActionMode for HONEYCOMB (11) and above
    if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
        Dialog dialog = getDialog();
        if (dialog == null)
            return false;

        View v = dialog.getWindow().getDecorView();
        if (v == null)
            return false;

        ActionMode actionMode = v
                .startActionMode(new WidgetTimezones.TimeZoneSpinnerSortAction(getContext(), spinner_timezone) {
                    @Override
                    public void onSortTimeZones(WidgetTimezones.TimeZoneItemAdapter result,
                            WidgetTimezones.TimeZoneSort sortMode) {
                        super.onSortTimeZones(result, sortMode);
                        spinner_timezone_adapter = result;
                        WidgetTimezones.selectTimeZone(spinner_timezone, spinner_timezone_adapter,
                                customTimezoneID);
                    }

                    @Override
                    public void onSaveSortMode(WidgetTimezones.TimeZoneSort sortMode) {
                        super.onSaveSortMode(sortMode);
                        AppSettings.setTimeZoneSortPref(getContext(), sortMode);
                    }

                    @Override
                    public void onDestroyActionMode(ActionMode mode) {
                        super.onDestroyActionMode(mode);
                        TimeZoneDialog.this.actionMode = null;
                    }
                });
        this.actionMode = actionMode;
        actionMode.setTitle(getString(R.string.timezone_sort_contextAction));

    } else {
        // LEGACY; ActionMode for pre HONEYCOMB
        AppCompatActivity activity = (AppCompatActivity) getActivity();
        android.support.v7.view.ActionMode actionMode = activity.startSupportActionMode(
                new WidgetTimezones.TimeZoneSpinnerSortActionCompat(getContext(), spinner_timezone) {
                    @Override
                    public void onSortTimeZones(WidgetTimezones.TimeZoneItemAdapter result,
                            WidgetTimezones.TimeZoneSort sortMode) {
                        super.onSortTimeZones(result, sortMode);
                        spinner_timezone_adapter = result;
                        WidgetTimezones.selectTimeZone(spinner_timezone, spinner_timezone_adapter,
                                customTimezoneID);
                    }

                    @Override
                    public void onSaveSortMode(WidgetTimezones.TimeZoneSort sortMode) {
                        super.onSaveSortMode(sortMode);
                        AppSettings.setTimeZoneSortPref(context, sortMode);
                    }

                    @Override
                    public void onDestroyActionMode(android.support.v7.view.ActionMode mode) {
                        super.onDestroyActionMode(mode);
                        TimeZoneDialog.this.actionMode = null;
                    }
                });
        if (actionMode != null) {
            this.actionMode = actionMode;
            actionMode.setTitle(getString(R.string.timezone_sort_contextAction));
        }
    }

    view.setSelected(true);
    return true;
}