android.view.ContextMenu#findItem ( )源码实例Demo

下面列出了android.view.ContextMenu#findItem ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: fingen   文件: FragmentSummary.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater menuInflater = Objects.requireNonNull(getActivity()).getMenuInflater();
    menuInflater.inflate(R.menu.context_menu_summary, menu);
    final MenuItem item = menu.findItem(R.id.action_show_report);
    ((ToolbarActivity) getActivity()).unsubscribeOnDestroy(
            mBillingService.getReportsIapInfo()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(
                            skuDetailsWrapper -> {
                                if (skuDetailsWrapper.isPurchased()) {
                                    item.setVisible(true);
                                } else {
                                    item.setVisible(false);
                                }
                            },
                            throwable -> item.setVisible(false)));
}
 
源代码2 项目: WiFiKeyShare   文件: WifiListActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    int itemPosition = ((ContextMenuRecyclerView.RecyclerContextMenuInfo) menuInfo).position;

    menu.setHeaderTitle(wifiNetworks.get(itemPosition).getSsid());
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.context_menu, menu);

    boolean canViewPasword = wifiNetworks.get(itemPosition).isPasswordProtected()
            && !wifiNetworks.get(itemPosition).getKey().isEmpty();
    boolean canClearPassword = canViewPasword;

    MenuItem viewPasswordMenuItem = menu.findItem(R.id.context_menu_wifi_list_view_password);
    viewPasswordMenuItem.setEnabled(canViewPasword);

    MenuItem clearPasswordMenuItem = menu.findItem(R.id.context_menu_wifi_list_clear_password);
    clearPasswordMenuItem.setEnabled(canClearPassword);
    clearPasswordMenuItem.setVisible(!isDeviceRooted);
}
 
源代码3 项目: Pix-Art-Messenger   文件: SearchActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) menuInfo;
    final Message message = this.messages.get(acmi.position);
    this.selectedMessageReference = new WeakReference<>(message);
    getMenuInflater().inflate(R.menu.search_result_context, menu);
    MenuItem copy = menu.findItem(R.id.copy_message);
    MenuItem quote = menu.findItem(R.id.quote_message);
    MenuItem copyUrl = menu.findItem(R.id.copy_url);
    if (message.isGeoUri()) {
        copy.setVisible(false);
        quote.setVisible(false);
    } else {
        copyUrl.setVisible(false);
    }
    super.onCreateContextMenu(menu, v, menuInfo);
}
 
源代码4 项目: Conversations   文件: SearchActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
	AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) menuInfo;
	final Message message = this.messages.get(acmi.position);
	this.selectedMessageReference = new WeakReference<>(message);
	getMenuInflater().inflate(R.menu.search_result_context, menu);
	MenuItem copy = menu.findItem(R.id.copy_message);
	MenuItem quote = menu.findItem(R.id.quote_message);
	MenuItem copyUrl = menu.findItem(R.id.copy_url);
	if (message.isGeoUri()) {
		copy.setVisible(false);
		quote.setVisible(false);
	} else {
		copyUrl.setVisible(false);
	}
	super.onCreateContextMenu(menu, v, menuInfo);
}
 
源代码5 项目: fingen   文件: FragmentAccounts.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    if (getActivity() != null) {
        MenuInflater menuInflater = getActivity().getMenuInflater();
        switch (v.getId()) {
            case R.id.recycler_view:
                contextMenuTarget = CONTEXT_MENU_ACCOUNTS;
                menuInflater.inflate(R.menu.context_menu_accounts, menu);
                break;
            case R.id.recycler_view_accounts_sets:
                contextMenuTarget = CONTEXT_MENU_SETS;
                menuInflater.inflate(R.menu.context_menu_accounts_sets, menu);
                break;
        }
        final MenuItem item = menu.findItem(R.id.action_show_report);
        if (item != null) {
            item.setVisible(false);
            ((ToolbarActivity) getActivity()).unsubscribeOnDestroy(
                    mBillingService.get().getReportsIapInfo()
                            .subscribeOn(Schedulers.io())
                            .observeOn(AndroidSchedulers.mainThread())
                            .subscribe(
                                    skuDetailsWrapper -> {
                                        if (skuDetailsWrapper.isPurchased()) {
                                            item.setVisible(true);
                                        } else {
                                            item.setVisible(false);
                                        }
                                    },
                                    throwable -> item.setVisible(false)));
        }
    }
}
 
@Override
public void onCreateContextMenu(final ContextMenu menu, final View v, final ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    final StartConversationActivity activity = (StartConversationActivity) getActivity();
    if (activity == null) {
        return;
    }
    activity.getMenuInflater().inflate(mResContextMenu, menu);
    final AdapterView.AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) menuInfo;
    if (mResContextMenu == R.menu.conference_context) {
        activity.conference_context_id = acmi.position;
        final Bookmark bookmark = (Bookmark) activity.conferences.get(acmi.position);
        final Conversation conversation = bookmark.getConversation();
        final MenuItem share = menu.findItem(R.id.context_share_uri);
        share.setVisible(conversation == null || !conversation.isPrivateAndNonAnonymous());
    } else if (mResContextMenu == R.menu.contact_context) {
        activity.contact_context_id = acmi.position;
        final Contact contact = (Contact) activity.contacts.get(acmi.position);
        final MenuItem blockUnblockItem = menu.findItem(R.id.context_contact_block_unblock);
        final MenuItem showContactDetailsItem = menu.findItem(R.id.context_contact_details);
        final MenuItem deleteContactMenuItem = menu.findItem(R.id.context_delete_contact);
        if (contact.isSelf()) {
            showContactDetailsItem.setVisible(false);
        }
        deleteContactMenuItem.setVisible(contact.showInRoster() && !contact.getOption(Contact.Options.SYNCED_VIA_OTHER));
        final XmppConnection xmpp = contact.getAccount().getXmppConnection();
        if (xmpp != null && xmpp.getFeatures().blocking() && !contact.isSelf()) {
            if (contact.isBlocked()) {
                blockUnblockItem.setTitle(R.string.unblock_contact);
            } else {
                blockUnblockItem.setTitle(R.string.block_contact);
            }
        } else {
            blockUnblockItem.setVisible(false);
        }
    }
}
 
源代码7 项目: Pix-Art-Messenger   文件: OmemoActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    Object account = v.getTag(R.id.TAG_ACCOUNT);
    Object fingerprint = v.getTag(R.id.TAG_FINGERPRINT);
    Object fingerprintStatus = v.getTag(R.id.TAG_FINGERPRINT_STATUS);
    if (account != null
            && fingerprint != null
            && account instanceof Account
            && fingerprintStatus != null
            && fingerprint instanceof String
            && fingerprintStatus instanceof FingerprintStatus) {
        getMenuInflater().inflate(R.menu.omemo_key_context, menu);
        MenuItem distrust = menu.findItem(R.id.distrust_key);
        MenuItem verifyScan = menu.findItem(R.id.verify_scan);
        if (this instanceof TrustKeysActivity) {
            distrust.setVisible(false);
            verifyScan.setVisible(false);
        } else {
            FingerprintStatus status = (FingerprintStatus) fingerprintStatus;
            if (!status.isActive() || status.isVerified()) {
                verifyScan.setVisible(false);
            }
            distrust.setVisible(status.isVerified() || (!status.isActive() && status.isTrusted()));
        }
        this.mSelectedAccount = (Account) account;
        this.mSelectedFingerprint = (String) fingerprint;
    }
}
 
源代码8 项目: Conversations   文件: StartConversationActivity.java
@Override
public void onCreateContextMenu(final ContextMenu menu, final View v, final ContextMenuInfo menuInfo) {
	super.onCreateContextMenu(menu, v, menuInfo);
	final StartConversationActivity activity = (StartConversationActivity) getActivity();
	if (activity == null) {
		return;
	}
	activity.getMenuInflater().inflate(mResContextMenu, menu);
	final AdapterView.AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) menuInfo;
	if (mResContextMenu == R.menu.conference_context) {
		activity.conference_context_id = acmi.position;
		final Bookmark bookmark = (Bookmark) activity.conferences.get(acmi.position);
		final Conversation conversation = bookmark.getConversation();
		final MenuItem share = menu.findItem(R.id.context_share_uri);
		share.setVisible(conversation == null || !conversation.isPrivateAndNonAnonymous());
	} else if (mResContextMenu == R.menu.contact_context) {
		activity.contact_context_id = acmi.position;
		final Contact contact = (Contact) activity.contacts.get(acmi.position);
		final MenuItem blockUnblockItem = menu.findItem(R.id.context_contact_block_unblock);
		final MenuItem showContactDetailsItem = menu.findItem(R.id.context_contact_details);
		final MenuItem deleteContactMenuItem = menu.findItem(R.id.context_delete_contact);
		if (contact.isSelf()) {
			showContactDetailsItem.setVisible(false);
		}
		deleteContactMenuItem.setVisible(contact.showInRoster() && !contact.getOption(Contact.Options.SYNCED_VIA_OTHER));
		final XmppConnection xmpp = contact.getAccount().getXmppConnection();
		if (xmpp != null && xmpp.getFeatures().blocking() && !contact.isSelf()) {
			if (contact.isBlocked()) {
				blockUnblockItem.setTitle(R.string.unblock_contact);
			} else {
				blockUnblockItem.setTitle(R.string.block_contact);
			}
		} else {
			blockUnblockItem.setVisible(false);
		}
	}
}
 
源代码9 项目: Conversations   文件: OmemoActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
	super.onCreateContextMenu(menu, v, menuInfo);
	Object account = v.getTag(R.id.TAG_ACCOUNT);
	Object fingerprint = v.getTag(R.id.TAG_FINGERPRINT);
	Object fingerprintStatus = v.getTag(R.id.TAG_FINGERPRINT_STATUS);
	if (account != null
			&& fingerprint != null
			&& account instanceof Account
			&& fingerprintStatus != null
			&& fingerprint instanceof String
			&& fingerprintStatus instanceof FingerprintStatus) {
		getMenuInflater().inflate(R.menu.omemo_key_context, menu);
		MenuItem distrust = menu.findItem(R.id.distrust_key);
		MenuItem verifyScan = menu.findItem(R.id.verify_scan);
		if (this instanceof TrustKeysActivity) {
			distrust.setVisible(false);
			verifyScan.setVisible(false);
		} else {
			FingerprintStatus status = (FingerprintStatus) fingerprintStatus;
			if (!status.isActive() || status.isVerified()) {
				verifyScan.setVisible(false);
			}
			distrust.setVisible(status.isVerified() || (!status.isActive() && status.isTrusted()));
		}
		this.mSelectedAccount = (Account) account;
		this.mSelectedFingerprint = (String) fingerprint;
	}
}
 
源代码10 项目: document-viewer   文件: BrowserActivity.java
protected void createFileMenu(final ContextMenu menu, final String path) {
    final BookSettings bs = SettingsManager.getBookSettings(path);
    final MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.book_menu, menu);
    menu.setHeaderTitle(path);
    menu.findItem(R.id.bookmenu_recentgroup).setVisible(bs != null);
    menu.findItem(R.id.bookmenu_openbookshelf).setVisible(false);
    menu.findItem(R.id.bookmenu_openbookfolder).setVisible(false);

    final MenuItem om = menu.findItem(R.id.bookmenu_open);
    final SubMenu osm = om != null ? om.getSubMenu() : null;
    if (osm == null) {
        return;
    }
    osm.clear();

    final List<Bookmark> list = new ArrayList<Bookmark>();
    list.add(new Bookmark(true, getString(R.string.bookmark_start), PageIndex.FIRST, 0, 0));
    list.add(new Bookmark(true, getString(R.string.bookmark_end), PageIndex.LAST, 0, 1));
    if (bs != null) {
        if (LengthUtils.isNotEmpty(bs.bookmarks)) {
            list.addAll(bs.bookmarks);
        }
        list.add(new Bookmark(true, getString(R.string.bookmark_current), bs.currentPage, bs.offsetX, bs.offsetY));
    }

    Collections.sort(list);
    for (final Bookmark b : list) {
        addBookmarkMenuItem(osm, b);
    }
}
 
源代码11 项目: document-viewer   文件: RecentActivity.java
protected void onCreateBookMenu(final ContextMenu menu, final BookNode node) {
    final BookSettings bs = node.settings;
    final MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.book_menu, menu);

    menu.setHeaderTitle(node.path);
    menu.findItem(R.id.bookmenu_recentgroup).setVisible(bs != null);

    final BookShelfAdapter bookShelf = getController().getBookShelf(node);
    final BookShelfAdapter current = bookcaseView != null ? getController().getBookShelf(
            bookcaseView.getCurrentList()) : null;
    menu.findItem(R.id.bookmenu_openbookshelf).setVisible(
            bookShelf != null && current != null && bookShelf != current);

    final MenuItem om = menu.findItem(R.id.bookmenu_open);
    final SubMenu osm = om != null ? om.getSubMenu() : null;
    if (osm == null) {
        return;
    }
    osm.clear();

    final List<Bookmark> list = new ArrayList<Bookmark>();
    list.add(new Bookmark(true, getString(R.string.bookmark_start), PageIndex.FIRST, 0, 0));
    list.add(new Bookmark(true, getString(R.string.bookmark_end), PageIndex.LAST, 0, 1));
    if (bs != null) {
        if (LengthUtils.isNotEmpty(bs.bookmarks)) {
            list.addAll(bs.bookmarks);
        }
        list.add(new Bookmark(true, getString(R.string.bookmark_current), bs.currentPage, bs.offsetX, bs.offsetY));
    }

    Collections.sort(list);
    for (final Bookmark b : list) {
        addBookmarkMenuItem(osm, b);
    }
}
 
源代码12 项目: android-vlc-remote   文件: PlaylistFragment.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    if (menuInfo instanceof AdapterContextMenuInfo) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
        PlaylistItem item = mAdapter.getItem(info.position);

        MenuInflater inflater = getActivity().getMenuInflater();
        inflater.inflate(R.menu.playlist_context, menu);

        MenuItem searchItem = menu.findItem(R.id.playlist_context_search);
        searchItem.setVisible(isSearchable(item));
    }
}
 
源代码13 项目: spline   文件: EditorActivity.java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo info) {
    super.onCreateContextMenu(menu, v, info);

    boolean shouldShowContextMenu = true;
    boolean showCurrentLayerItems = false;
    boolean hasClipboardContents = mViewModel.hasClipboardContents();

    if (v instanceof DocumentView) {
        DocumentView dv = (DocumentView) v;
        shouldShowContextMenu = dv.shouldShowContextMenu();
        showCurrentLayerItems = dv.shouldShowCurrentLayerContextItems();
    } else if (v instanceof LayerListView) {
        //LayerListView llv = (LayerListView) v;
        showCurrentLayerItems = true;
    }

    if (shouldShowContextMenu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_context, menu);

        MenuItem item = menu.findItem(CUT);
        item.setVisible(showCurrentLayerItems);

        item = menu.findItem(COPY);
        item.setVisible(showCurrentLayerItems);

        item = menu.findItem(PASTE);
        item.setVisible(showCurrentLayerItems || hasClipboardContents);
        item.setEnabled(hasClipboardContents);

        item = menu.findItem(DUPLICATE);
        item.setVisible(showCurrentLayerItems);

        item = menu.findItem(DELETE);
        item.setVisible(showCurrentLayerItems);

        item = menu.findItem(GROUP);
        item.setVisible(showCurrentLayerItems);
    }
}
 
源代码14 项目: microMathematics   文件: AdapterBaseImpl.java
@Override
public void populateContextMenu(ContextMenu menu, AdapterView.AdapterContextMenuInfo acmi, int num)
{
    try
    {
        if (readWriteAdapter)
        {
            menu.add(0, R.id.fman_action_refresh, 0, R.string.fman_refresh_title);
            menu.add(0, R.id.fman_action_create_folder, 0, R.string.fman_create_folder_title);
            if (num > 0)
            {
                menu.add(0, R.id.fman_action_rename, 0, R.string.fman_rename_title);
                menu.add(0, R.id.fman_action_delete, 0, R.string.fman_delete_title);
            }
        }
        MenuItem activeSort = null;
        menu.add(0, R.id.fman_action_sort_by_name, 0, R.string.fman_sort_by_name);
        if ((mode & MODE_SORTING) == SORT_NAME)
        {
            activeSort = menu.findItem(R.id.fman_action_sort_by_name);
        }
        menu.add(0, R.id.fman_action_sort_by_ext, 0, R.string.fman_sort_by_ext);
        if ((mode & MODE_SORTING) == SORT_EXT)
        {
            activeSort = menu.findItem(R.id.fman_action_sort_by_ext);
        }
        menu.add(0, R.id.fman_action_sort_by_size, 0, R.string.fman_sort_by_size);
        if ((mode & MODE_SORTING) == SORT_SIZE)
        {
            activeSort = menu.findItem(R.id.fman_action_sort_by_size);
        }
        menu.add(0, R.id.fman_action_sort_by_date, 0, R.string.fman_sort_by_date);
        if ((mode & MODE_SORTING) == SORT_DATE)
        {
            activeSort = menu.findItem(R.id.fman_action_sort_by_date);
        }
        if (activeSort != null)
        {
            activeSort.setCheckable(true);
            activeSort.setChecked(true);
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}
 
源代码15 项目: Pix-Art-Messenger   文件: ConversationFragment.java
private void populateContextMenu(ContextMenu menu) {
    final Message m = this.selectedMessage;
    final Transferable t = m.getTransferable();
    Message relevantForCorrection = m;
    while (relevantForCorrection.mergeable(relevantForCorrection.next())) {
        relevantForCorrection = relevantForCorrection.next();
    }
    if (m.getType() != Message.TYPE_STATUS && m.getType() != Message.TYPE_RTP_SESSION) {

        if (m.getEncryption() == Message.ENCRYPTION_AXOLOTL_NOT_FOR_THIS_DEVICE || m.getEncryption() == Message.ENCRYPTION_AXOLOTL_FAILED) {
            return;
        }
        if (m.getStatus() == Message.STATUS_RECEIVED && t != null && (t.getStatus() == Transferable.STATUS_CANCELLED || t.getStatus() == Transferable.STATUS_FAILED)) {
            return;
        }
        final boolean deleted = m.isFileDeleted();
        final boolean encrypted = m.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED
                || m.getEncryption() == Message.ENCRYPTION_PGP;
        final boolean receiving = m.getStatus() == Message.STATUS_RECEIVED && (t instanceof JingleFileTransferConnection || t instanceof HttpDownloadConnection);
        activity.getMenuInflater().inflate(R.menu.message_context, menu);
        menu.setHeaderTitle(R.string.message_options);
        MenuItem openWith = menu.findItem(R.id.open_with);
        MenuItem copyMessage = menu.findItem(R.id.copy_message);
        MenuItem copyLink = menu.findItem(R.id.copy_link);
        MenuItem quoteMessage = menu.findItem(R.id.quote_message);
        MenuItem retryDecryption = menu.findItem(R.id.retry_decryption);
        MenuItem correctMessage = menu.findItem(R.id.correct_message);
        MenuItem deleteMessage = menu.findItem(R.id.delete_message);
        MenuItem shareWith = menu.findItem(R.id.share_with);
        MenuItem sendAgain = menu.findItem(R.id.send_again);
        MenuItem copyUrl = menu.findItem(R.id.copy_url);
        MenuItem cancelTransmission = menu.findItem(R.id.cancel_transmission);
        MenuItem downloadFile = menu.findItem(R.id.download_file);
        MenuItem deleteFile = menu.findItem(R.id.delete_file);
        MenuItem showErrorMessage = menu.findItem(R.id.show_error_message);
        final boolean showError = m.getStatus() == Message.STATUS_SEND_FAILED && m.getErrorMessage() != null && !Message.ERROR_MESSAGE_CANCELLED.equals(m.getErrorMessage());
        deleteMessage.setVisible(true);
        if (!m.isFileOrImage() && !encrypted && !m.isGeoUri() && !m.treatAsDownloadable()) {
            copyMessage.setVisible(true);
            quoteMessage.setVisible(!showError && MessageUtils.prepareQuote(m).length() > 0);
            String body = m.getMergedBody().toString();
            if (ShareUtil.containsXmppUri(body)) {
                copyLink.setTitle(R.string.copy_jabber_id);
                copyLink.setVisible(true);
            } else if (Patterns.AUTOLINK_WEB_URL.matcher(body).find()) {
                copyLink.setVisible(true);
            }
        }
        if (m.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED && !deleted) {
            retryDecryption.setVisible(true);
        }
        if (!showError
                && relevantForCorrection.getType() == Message.TYPE_TEXT
                && !m.isGeoUri()
                && relevantForCorrection.isLastCorrectableMessage()
                && m.getConversation() instanceof Conversation) {
            correctMessage.setVisible(true);
        }
        if ((m.isFileOrImage() && !deleted && !receiving) || (m.getType() == Message.TYPE_TEXT && !m.treatAsDownloadable())) {
            shareWith.setVisible(true);

        }
        if (m.getStatus() == Message.STATUS_SEND_FAILED) {
            sendAgain.setVisible(true);
        }
        if (m.hasFileOnRemoteHost()
                || m.isGeoUri()
                || m.isXmppUri()
                || m.treatAsDownloadable()
                || t instanceof HttpDownloadConnection) {
            copyUrl.setVisible(true);
        }
        if (m.isFileOrImage() && deleted && m.hasFileOnRemoteHost()) {
            downloadFile.setVisible(true);
            downloadFile.setTitle(activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, m)));
        }
        final boolean waitingOfferedSending = m.getStatus() == Message.STATUS_WAITING
                || m.getStatus() == Message.STATUS_UNSEND
                || m.getStatus() == Message.STATUS_OFFERED;
        final boolean cancelable = (t != null && !deleted) || waitingOfferedSending && m.needsUploading();
        if (cancelable) {
            cancelTransmission.setVisible(true);
        }
        if (m.isFileOrImage() && !deleted && !cancelable) {
            String path = m.getRelativeFilePath();
            Log.d(Config.LOGTAG, "Path = " + path);
            if (path == null || !path.startsWith("/") || path.contains(FileBackend.getConversationsDirectory("null"))) {
                deleteFile.setVisible(true);
                deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m)));
            }
        }
        showErrorMessage.setVisible(showError);
        final String mime = m.isFileOrImage() ? m.getMimeType() : null;
        if ((m.isGeoUri() && GeoHelper.openInOsmAnd(getActivity(), m)) || (mime != null && mime.startsWith("audio/"))) {
            openWith.setVisible(true);
        }
    }
}
 
源代码16 项目: Conversations   文件: ConversationFragment.java
private void populateContextMenu(ContextMenu menu) {
    final Message m = this.selectedMessage;
    final Transferable t = m.getTransferable();
    Message relevantForCorrection = m;
    while (relevantForCorrection.mergeable(relevantForCorrection.next())) {
        relevantForCorrection = relevantForCorrection.next();
    }
    if (m.getType() != Message.TYPE_STATUS && m.getType() != Message.TYPE_RTP_SESSION) {

        if (m.getEncryption() == Message.ENCRYPTION_AXOLOTL_NOT_FOR_THIS_DEVICE || m.getEncryption() == Message.ENCRYPTION_AXOLOTL_FAILED) {
            return;
        }

        if (m.getStatus() == Message.STATUS_RECEIVED && t != null && (t.getStatus() == Transferable.STATUS_CANCELLED || t.getStatus() == Transferable.STATUS_FAILED)) {
            return;
        }

        final boolean deleted = m.isDeleted();
        final boolean encrypted = m.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED
                || m.getEncryption() == Message.ENCRYPTION_PGP;
        final boolean receiving = m.getStatus() == Message.STATUS_RECEIVED && (t instanceof JingleFileTransferConnection || t instanceof HttpDownloadConnection);
        activity.getMenuInflater().inflate(R.menu.message_context, menu);
        menu.setHeaderTitle(R.string.message_options);
        MenuItem openWith = menu.findItem(R.id.open_with);
        MenuItem copyMessage = menu.findItem(R.id.copy_message);
        MenuItem copyLink = menu.findItem(R.id.copy_link);
        MenuItem quoteMessage = menu.findItem(R.id.quote_message);
        MenuItem retryDecryption = menu.findItem(R.id.retry_decryption);
        MenuItem correctMessage = menu.findItem(R.id.correct_message);
        MenuItem shareWith = menu.findItem(R.id.share_with);
        MenuItem sendAgain = menu.findItem(R.id.send_again);
        MenuItem copyUrl = menu.findItem(R.id.copy_url);
        MenuItem downloadFile = menu.findItem(R.id.download_file);
        MenuItem cancelTransmission = menu.findItem(R.id.cancel_transmission);
        MenuItem deleteFile = menu.findItem(R.id.delete_file);
        MenuItem showErrorMessage = menu.findItem(R.id.show_error_message);
        final boolean showError = m.getStatus() == Message.STATUS_SEND_FAILED && m.getErrorMessage() != null && !Message.ERROR_MESSAGE_CANCELLED.equals(m.getErrorMessage());
        if (!m.isFileOrImage() && !encrypted && !m.isGeoUri() && !m.treatAsDownloadable()) {
            copyMessage.setVisible(true);
            quoteMessage.setVisible(!showError && MessageUtils.prepareQuote(m).length() > 0);
            String body = m.getMergedBody().toString();
            if (ShareUtil.containsXmppUri(body)) {
                copyLink.setTitle(R.string.copy_jabber_id);
                copyLink.setVisible(true);
            } else if (Patterns.AUTOLINK_WEB_URL.matcher(body).find()) {
                copyLink.setVisible(true);
            }
        }
        if (m.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED && !deleted) {
            retryDecryption.setVisible(true);
        }
        if (!showError
                && relevantForCorrection.getType() == Message.TYPE_TEXT
                && !m.isGeoUri()
                && relevantForCorrection.isLastCorrectableMessage()
                && m.getConversation() instanceof Conversation) {
            correctMessage.setVisible(true);
        }
        if ((m.isFileOrImage() && !deleted && !receiving) || (m.getType() == Message.TYPE_TEXT && !m.treatAsDownloadable())) {
            shareWith.setVisible(true);
        }
        if (m.getStatus() == Message.STATUS_SEND_FAILED) {
            sendAgain.setVisible(true);
        }
        if (m.hasFileOnRemoteHost()
                || m.isGeoUri()
                || m.treatAsDownloadable()
                || t instanceof HttpDownloadConnection) {
            copyUrl.setVisible(true);
        }
        if (m.isFileOrImage() && deleted && m.hasFileOnRemoteHost()) {
            downloadFile.setVisible(true);
            downloadFile.setTitle(activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, m)));
        }
        final boolean waitingOfferedSending = m.getStatus() == Message.STATUS_WAITING
                || m.getStatus() == Message.STATUS_UNSEND
                || m.getStatus() == Message.STATUS_OFFERED;
        final boolean cancelable = (t != null && !deleted) || waitingOfferedSending && m.needsUploading();
        if (cancelable) {
            cancelTransmission.setVisible(true);
        }
        if (m.isFileOrImage() && !deleted && !cancelable) {
            String path = m.getRelativeFilePath();
            if (path == null || !path.startsWith("/") || FileBackend.isInDirectoryThatShouldNotBeScanned(getActivity(), path)) {
                deleteFile.setVisible(true);
                deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m)));
            }
        }
        if (showError) {
            showErrorMessage.setVisible(true);
        }
        final String mime = m.isFileOrImage() ? m.getMimeType() : null;
        if ((m.isGeoUri() && GeoHelper.openInOsmAnd(getActivity(), m)) || (mime != null && mime.startsWith("audio/"))) {
            openWith.setVisible(true);
        }
    }
}