Example usage for android.view ActionMode setTag

List of usage examples for android.view ActionMode setTag

Introduction

In this page you can find the example usage for android.view ActionMode setTag.

Prototype

public void setTag(Object tag) 

Source Link

Document

Set a tag object associated with this ActionMode.

Usage

From source file:com.jbirdvegas.mgerrit.PatchSetViewerFragment.java

private void init() {
    View currentFragment = this.getView();

    ExpandableListView mListView = (ExpandableListView) currentFragment.findViewById(R.id.commit_cards);
    disconnectedView = currentFragment.findViewById(R.id.disconnected_view);

    sIsLegacyVersion = !Config.isDiffSupported(mParent);

    mAdapter = new CommitDetailsAdapter(mParent);
    mListView.setAdapter(mAdapter);/*from w ww .j  a v  a 2s .c o  m*/

    // Child click listeners (relevant for the changes cards)
    mListView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
    mFilesCAB = new FilesCAB(mParent, !sIsLegacyVersion);
    mAdapter.setContextualActionBar(mFilesCAB);
    mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            ExpandableListView listView = (ExpandableListView) parent;
            long pos = listView.getExpandableListPosition(position);
            int groupPos = ExpandableListView.getPackedPositionGroup(pos);
            int childPos = ExpandableListView.getPackedPositionChild(pos);

            if (!mAdapter.isLongClickSupported(groupPos, childPos)) {
                return false;
            }

            // In case this is a group view and does not have the change number tagged
            view.setTag(R.id.changeID, mSelectedChange);
            FilesCAB.TagHolder holder = new FilesCAB.TagHolder(view, mContext, groupPos, childPos >= 0);

            // Set the title to be shown in the action bar
            if (holder.filePath != null) {
                mFilesCAB.setTitle(holder.filePath);
            } else {
                String s = mParent.getResources().getString(R.string.change_detail_heading);
                mFilesCAB.setTitle(String.format(s, holder.changeNumber.intValue()));
            }

            mFilesCAB.setActionMode(getActivity().startActionMode(mFilesCAB));
            ActionMode actionMode = mFilesCAB.getActionMode();

            // Call requires API 14 (ICS)
            actionMode.setTag(holder);
            view.setSelected(true);
            return true;
        }
    });
    mListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition,
                long id) {
            // This is only valid for the changed files group
            int childItemType = mAdapter.getChildType(groupPosition, childPosition);
            if (childItemType != CommitDetailsAdapter.Cards.CHANGED_FILES.ordinal()) {
                return false;
            }
            // View the diff and close the CAB if a change diff could be viewed
            boolean diffLaunched = PatchSetChangesCard.onViewClicked(mParent, v);
            if (diffLaunched) {
                ActionMode mode = mFilesCAB.getActionMode();
                if (mode != null)
                    mode.finish();
            }
            return diffLaunched;
        }
    });

    mUrl = new GerritURL();

    Button retryButton = (Button) currentFragment.findViewById(R.id.btn_retry);
    retryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (sIsLegacyVersion)
                sendRequest(GerritService.DataType.Commit);
            else
                sendRequest(GerritService.DataType.LegacyCommitDetails);
        }
    });

    if (getArguments() == null) {
        /** This should be the default value of {@link ChangeListFragment.mSelectedStatus } */
        setStatus(JSONCommit.Status.NEW.toString());
        loadChange(true);
    } else {
        Bundle args = getArguments();
        setStatus(args.getString(STATUS));
        String changeid = args.getString(CHANGE_ID);
        mChangeNumber = args.getInt(CHANGE_NO);

        if (changeid != null && !changeid.isEmpty()) {
            loadChange(changeid);
        }
    }

    mEventBus = EventBus.getDefault();
}

From source file:co.nerdart.ourss.fragment.FeedsListFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.feed_list_fragment, container, false);

    mListView = (DragNDropExpandableListView) rootView.findViewById(android.R.id.list);
    mListAdapter.setExpandableListView(mListView);
    mListView.setFastScrollEnabled(true);
    mListView.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override//from  w ww .j  av  a 2s  .  c o  m
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            String title = ((TextView) view.findViewById(android.R.id.text1)).getText().toString();
            Matcher m = Pattern.compile("(.*) \\([0-9]+\\)$").matcher(title);
            if (m.matches()) {
                title = m.group(1);
            }

            long feedId = mListView.getItemIdAtPosition(position);
            ActionMode actionMode;
            if (view.findViewById(R.id.indicator).getVisibility() == View.VISIBLE) { // This is a group
                actionMode = getActivity().startActionMode(mGroupActionModeCallback);
            } else { // This is a feed
                actionMode = getActivity().startActionMode(mFeedActionModeCallback);
            }
            actionMode.setTag(new Pair<Long, String>(feedId, title));

            mListAdapter.setSelectedFeed(feedId);
            return true;
        }
    });

    mListView.setAdapter(mListAdapter);

    mListView.setOnChildClickListener(new OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition,
                long id) {
            mListAdapter.startFeedActivity(id);
            return false;
        }
    });

    mListView.setDragNDropListener(new DragNDropListener() {
        boolean fromHasGroupIndicator = false;

        @Override
        public void onStopDrag(View itemView) {
        }

        @Override
        public void onStartDrag(View itemView) {
            fromHasGroupIndicator = itemView.findViewById(R.id.indicator).getVisibility() == View.VISIBLE;
        }

        @Override
        public void onDrop(final int flatPosFrom, final int flatPosTo) {
            final boolean fromIsGroup = ExpandableListView.getPackedPositionType(mListView
                    .getExpandableListPosition(flatPosFrom)) == ExpandableListView.PACKED_POSITION_TYPE_GROUP;
            final boolean toIsGroup = ExpandableListView.getPackedPositionType(mListView
                    .getExpandableListPosition(flatPosTo)) == ExpandableListView.PACKED_POSITION_TYPE_GROUP;

            final boolean fromIsFeedWithoutGroup = fromIsGroup && !fromHasGroupIndicator;

            View toView = mListView.getChildAt(flatPosTo - mListView.getFirstVisiblePosition());
            boolean toIsFeedWithoutGroup = toIsGroup
                    && toView.findViewById(R.id.indicator).getVisibility() != View.VISIBLE;

            final long packedPosTo = mListView.getExpandableListPosition(flatPosTo);
            final int packedGroupPosTo = ExpandableListView.getPackedPositionGroup(packedPosTo);

            if ((fromIsFeedWithoutGroup || !fromIsGroup) && toIsGroup && !toIsFeedWithoutGroup) {
                new AlertDialog.Builder(getActivity()) //
                        .setTitle(R.string.to_group_title) //
                        .setMessage(R.string.to_group_message) //
                        .setPositiveButton(R.string.to_group_into, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                ContentValues values = new ContentValues();
                                values.put(FeedColumns.PRIORITY, 1);
                                values.put(FeedColumns.GROUP_ID, mListView.getItemIdAtPosition(flatPosTo));

                                ContentResolver cr = getActivity().getContentResolver();
                                cr.update(FeedColumns.CONTENT_URI(mListView.getItemIdAtPosition(flatPosFrom)),
                                        values, null, null);
                                cr.notifyChange(FeedColumns.GROUPS_CONTENT_URI, null);
                            }
                        }).setNegativeButton(R.string.to_group_above, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                moveItem(fromIsGroup, toIsGroup, fromIsFeedWithoutGroup, packedPosTo,
                                        packedGroupPosTo, flatPosFrom);
                            }
                        }).show();
            } else {
                moveItem(fromIsGroup, toIsGroup, fromIsFeedWithoutGroup, packedPosTo, packedGroupPosTo,
                        flatPosFrom);
            }
        }

        @Override
        public void onDrag(int x, int y, ListView listView) {
        }
    });

    return rootView;
}