напишите на бумажке, что хотите сделать по пунктам, действие за действием. потом проверьте соответствует ли то что вы сделали, тому, что хотели сделать. если не поможет, расставите брекпоинты и смотрите, какие методы отрабатывают не в тот момент, когда должны. не поймете, сотрите все и напишите заново, по алгоритму, который изложили на бумажке