Ok, this is a really tough hand to consider. Playing live is easier because you can see your opponents and try to pick up on tells. The other side of that coin is that they can see you as well. My thought is he called with two face cards suited in hearts and thought you might have a mid pocket pair. He flops 4 to the flush and calls a bet getting 2.6 to 1 on the pot. Not quite what a flush draw requires, but if you include the outs for hitting his two overcards he makes a call with the odds. Now, the turn you show that you are not afraid of the face card, but that you didn't set up. If you though he might bet you can try to check raise him off of his hand, but that can also put you in a position for him to push over the top of your raise. The river check tells him that you can't beat the A and gives him a chance to bluff. He bets to scare you off your medium strength hand, which is exactly what you have. He might have missed his draw and knew that the high card scared you, or he could be holding two pair.