Thanks for the nice explanation and solution.
Chirag Gohil

Hello Chirag, sorry for replying late.

you can check out this repository for the complete source code,

setting the recycleable property to false was a typo that I forget to remove, it should not affect you solution, you could check out the different branches for the different methods.