Citation: 2C_672/2019 E. C

Agissant par la voie du recours en matière de droit public et celle, subsidiaire, du recours constitutionnel, A.A.________ demande au Tribunal fédéral, sous suite de frais et dépens, outre l'effet suspensif et l'assistance judiciaire, d'annuler l'arrêt du 19 juillet 2019 de la Cour de justice et d'ordonner immédiatement sa libération, subsidiairement de renvoyer la cause à l'autorité précédente pour nouvelle décision dans le sens des considérants. Par ordonnance du 29 juillet 2019, la Juge instructrice de la IIe Cour de droit public du Tribunal fédéral a rejeté la demande d'effet suspensif. La Cour de justice, sans formuler d'observations, persiste dans les considérants et le dispositif de son arrêt. Le TAPI renonce à prendre position. L'Office cantonal de la population et des migrations du canton de Genève dépose des observations et renvoie pour les surplus aux considérants du TAPI et de la Cour de justice. Le recourant n'a pas déposé d'observations finales.