How to check whether a product is in the cart?

I am using Magento 2.1, php 7.0.

I am trying to check in block if provided product is in cart. I call from list.phtml (Magento_Catalog template) custom function in overriden block \Magento\Catalog\Block\Product\ListProduct which should check in checkout session that thing:

namespace [vendor]\SkinHelper\Block\Catalog\Product;

use \[vendor]\SkinHelper\Block\Catalog\Product\DownloadableSampleUrlProviderInterface;
use \[vendor]\System\Helper\Debug;
use \Magento\Catalog\Api\CategoryRepositoryInterface;
use \Magento\Catalog\Block\Product\Context;
use \Magento\Catalog\Block\Product\ListProduct as MagentoListProduct;
use \Magento\Catalog\Model\Layer\Resolver;
use \Magento\Checkout\Model\Session;
use \Magento\Downloadable\Model\Product\Type;
use \Magento\Downloadable\Model\ResourceModel\Sample\CollectionFactory;
use \Magento\Framework\Data\Helper\PostHelper;
use \Magento\Framework\Url\Helper\Data;
use \Magento\Framework\UrlInterface;


/** Class 'extends by rewriting' class of block: \Magento\Catalog\Block\Product\ListProduct */
class ListProduct extends MagentoListProduct
                    implements DownloadableSampleUrlProviderInterface
{


/**
 * @var \Magento\Checkout\Model\Session
 */
private $checkoutSession;


/**
 * @var \Magento\Downloadable\Model\ResourceModel\Sample\CollectionFactory
 */
private $samplesCollectionFactory;


/**
 * @var \Magento\Store\Model\StoreManagerInterface;
 */
private $storeManager;



/**
 * @param \Magento\Catalog\Api\CategoryRepositoryInterface $categoryRepository
 * @param \Magento\Catalog\Block\Product\Context $context
 * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper
 * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver
 * @param \Magento\Checkout\Model\Session $checkoutSession
 * @param \Magento\Downloadable\Model\ResourceModel\Sample\CollectionFactory $samplesCollectionFactory
 * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper
 * @param \Magento\Framework\Url\Helper\Data $urlHelper
 * @param array $data
 */
public function __construct(
    CategoryRepositoryInterface $categoryRepository,
    Context $context,
    Resolver $layerResolver,
    Session $checkoutSession,
    CollectionFactory $samplesCollectionFactory,
    PostHelper $postDataHelper,
    Data $urlHelper,
    array $data
)
{
    parent::__construct($context, $postDataHelper, $layerResolver,
                        $categoryRepository, $urlHelper, $data);
    $this->checkoutSession = $checkoutSession;
    $this->samplesCollectionFactory = $samplesCollectionFactory;
    $this->storeManager = $context->getStoreManager();
}


/**
 * Method check if provided product is in cart of current customer.
 * Doesn't work dynamically.
 * 
 * @param \Magento\Catalog\Model\Product $product
 * 
 * @return bool $inCart
 */
public function isInCart($product)
{

    $productId = $product->getId();
    $cartItems = $this->checkoutSession->getQuoteId();
    $itemsIds = array();
    foreach ($cartItems as $cartItem) {
        array_push($itemsIds, $cartItem->getProduct()->getId());
    }

    return in_array($productId, $itemsIds);
}

Preference works, because I can dump some string like ‘test’ or something. Almost the same code works in controller if fired by entering its url:

$productId = $objectManager->get('Magento\Catalog\Model\Product')->load(6)->getId();
$test = $objectManager->get('\Magento\Checkout\Model\Session')->getQuote();
$result = $test->getAllVisibleItems();
$itemsIds = array();
foreach ($result as $cartItem) {
    array_push($itemsIds, $cartItem->getProduct()->getId());
}

print_r(in_array($productId, $itemsIds));

I was debbuging former steps before check - and I am able to grab quote object but it’s almost empty and doesn’t has my product added to cart. And that’s my question - why I am unable to check it inside block?