This method is soooo long, this would deserve to be break down in multiple function to be better understood. _Originally posted by @lutangar in https://github.com/dis-moi/mobile/pull/233#discussion_r713794198_