Faits :
A.
A._ a été arrêté le 19 mars 2019. Il a été détenu dans un premier temps, jusqu'au 2 avril 2019, dans la zone carcérale de la police cantonale vaudoise, au Centre de la Blécherette. Le 3 avril 2019, il a été transféré à la Prison du Bois-Mermet. Le 13 février 2020, il a saisi le Tribunal des mesures de contrainte du canton de Vaud (Tmc) d'une demande tendant à la constatation du caractère illicite de sa détention.
Par ordonnance du 11 mars 2020, le Tmc a constaté que les conditions de détention au Centre de la Blécherette du 22 mars au 2 avril 2019 étaient illicites. En revanche, depuis le 3 avril 2019, les conditions de détention à la prison du Bois-Mermet étaient admissibles. En effet, A._ n'avait séjourné, jusqu'au 22 octobre 2019, que durant trois jours dans une cellule de moins de 4 m2. Ensuite, dès le 23 octobre 2019, il avait séjourné environ 4 mois et demi dans une cellule offrant moins de 4 m2 par personne, à quoi s'ajoutaient l'absence de séparation des sanitaires et la mauvaise isolation thermique; toutefois, les conditions de sa détention étaient admissibles dans la mesure où le recourant travaillait et ne restait en cellule que 19 heures par jour.
B.
Par arrêt du 8 mai 2020, la Chambre des recours pénale du Tribunal cantonal vaudois a admis le recours formé par le détenu: le séjour à la Blécherette avait duré du 21 mars au 2 avril 2019, ce qui faisait un jour de plus de conditions de détention illicites. La licéité des conditions de détention du 3 avril au 22 octobre 2019 n'était pas contestée. En lien avec la période suivante, la Chambre des recours pénale a relevé que, depuis la crise liée au Covid-19, le recourant travaillait avec son co-détenu, ce qui augmentait le temps passé en commun en cellule. La cause était donc renvoyée au Tmc afin que celui-ci détermine depuis quand s'appliquait ce nouveau régime, et si celui-ci était admissible depuis cette date.
Par arrêt du 18 juin 2020 (1B_308/2020), la Ire Cour de droit public du Tribunal fédéral a déclaré irrecevable le recours interjeté contre cet arrêt du 8 mai 2020 au motif qu'il s'agissait d'un arrêt de renvoi ne causant pas de préjudice irréparable.
C.
Par ordonnance du 3 juin 2020, le Tmc a retenu, sur la base des renseignements transmis le 25 mai 2020 par la direction de la Prison du Bois-Mermet, que les mesures prises en raison de la pandémie de Covid-19 avaient impacté la situation carcérale de l'intéressé depuis le 30 mars 2020, date reprise par A._ dans ses conclusions. Le Tmc a considéré que, p our la période du 30 mars 2020 au 3 juin 2020, les conditions de détention (espace individuel à disposition du détenu de moins de 4 m2 [3,82 m2 et 3,91 m2, déduction faite de la surface des installations sanitaires]; mauvaise isolation thermique de la prison; sanitaires séparés du reste de la cellule par un rideau ignifuge; confinement en cellule de 20 heures, puis 22 heures par jour) étaient licites, dès lors que la période de 3 mois retenue par la jurisprudence n'était pas atteinte. Pour le reste, à savoir pour la période de détention subie au Centre de la Blécherette, ainsi que pour la période du 3 avril 2019 au 29 mars 2020 à la Prison du Bois-Mermet, le Tmc a renvoyé intégralement à son ordonnance du 11 mars 2020, ainsi qu'à l'arrêt de la Chambre des recours pénale du 8 mai 2020.
D.
Par arrêt daté du 6 juillet, envoyé le 13 juillet 2020, la Chambre des recours pénale a rejeté le recours formé par A._ et a confirmé l'ordonnance du 3 juin 2020. Elle a considéré que le Tmc avait à juste titre considéré que les conditions dans lesquelles le prénommé était détenu depuis le 3 avril 2019 n'étaient pas illicites. Pour la période entre le 23 octobre 2019 et le 29 mars 2020, la Chambre des recours pénale a en particulier estimé qu'en dépit de la taille des deux cellules occupées par le recourant (espace individuel de 3,54 m2 et 3,82 m2, déduction faite de la surface des installations sanitaires), de la mauvaise isolation thermique et de l'absence de séparation des sanitaires, le détenu pouvait sortir pour travailler durant 5 heures par jour (ou passer ces heures seul dans sa cellule), ce qui paraissait raisonnable, la jurisprudence n'exigeant pas que le détenu passe 8 heures par jour hors de sa cellule. Quant à la période du 30 mars au 3 juin 2020 (date de l'ordonnance du Tmc), la cour cantonale a jugé que les conditions de détention (notamment espace individuel de moins de 4 m2 à disposition et confinement de 20 heures, puis 22 heures par jour en cellule) n'étaient pas illicites dès lors que ce régime n'avait pas duré plus de trois mois sans discontinuer.
E.
A._ forme un recours en matière pénale par lequel il demande au Tribunal fédéral d'annuler l'arrêt cantonal précité et constater que sont illicites les conditions de sa détention au Centre de la Blécherette du 21 mars 2019 au 2 avril 2019, ainsi qu'à la Prison du Bois-Mermet respectivement du 3 avril 2019 au 22 octobre 2019 et du 23 octobre 2019 au 13 juillet 2020. A titre subsidiaire, il conclut à l'annulation de l'arrêt cantonal et au renvoi à l'instance précédente pour nouvelle décision. Le recourant demande en outre l'assistance judiciaire.
Invités à déposer des observations, le Tribunal cantonal et le Ministère public renoncent à se déterminer et se réfèrent à l'arrêt entrepris.
Considérant en droit :
1.
Selon l'art. 78 LTF, le recours en matière pénale est ouvert contre les décisions rendues en matière pénale, dont font partie les décisions relatives aux conditions de la détention provisoire ou pour des motifs de sûreté (arrêt 1B_369/2013 du 26 février 2014 consid. 1, non publié in ATF 140 I 125). La recevabilité du recours en matière pénale dépend notamment de l'existence d'un intérêt juridique actuel à l'annulation de la décision entreprise (art. 81 al. 1 let. b LTF). De cette manière, les tribunaux sont assurés de trancher uniquement des questions concrètes et non de prendre des décisions à caractère théorique, ce qui répond à un souci d'économie de procédure (ATF 136 I 274 consid. 1.3 p. 276). En tant qu'il a vu rejetées ses conclusions en constatation du caractère illicite des conditions de sa détention, le recourant a un intérêt à l'annulation de l'arrêt attaqué.
Les autres conditions de recevabilité sont remplies, de sorte qu'il convient d'entrer en matière.
2.
Le recourant se limite à critiquer l'arrêt cantonal en tant qu'il n'a pas admis que sa détention à la Prison du Bois-Mermet, respectivement du 23 octobre 2019 au 29 mars 2020 et du 30 mars 2020 jusqu'à la date de l'arrêt entrepris, s'était déroulée dans des conditions illicites.
2.1. Au niveau conventionnel, l'art. 3 CEDH prévoit que nul ne peut être soumis à la torture ni à des peines ou traitements inhumains ou dégradants.
Sur le plan constitutionnel, l'art. 7 Cst. prescrit de son côté que la dignité humaine doit être respectée et protégée. A teneur de l'art. 10 al. 3 Cst., la torture et tout autre traitement ou peine cruels, inhumains ou dégradants sont interdits.
Au niveau législatif, l'art. 3 al. 1 CPP rappelle le principe du respect de la dignité humaine. L'art. 235 CPP régit l'exécution de la détention; il pose le principe général de proportionnalité (al. 1) et précise (al. 5) que les cantons règlent les droits et les obligations des prévenus en détention (sur l'exécution de la détention, voir MATTHIAS HÄRRI, in Basler Kommentar, Schweizerische Strafprozessordnung, 2e éd. 2014, ad art. 234 et 235 CPP).
Dans le canton de Vaud, le règlement sur le statut des personnes détenues placées en établissement de détention avant jugement (RSDAJ; RSV 340.02.5) ne contient aucune disposition précise concernant l'aménagement, l'équipement, la dimension des cellules ou la surface dont doit bénéficier chaque détenu à l'intérieur de celles-ci.
2.1.1. Pour le domaine spécifique de la détention, la Suisse a ratifié, le 7 octobre 1988, la Convention européenne de 1987 pour la prévention de la torture et des peines ou traitements inhumains ou dégradants (RS 0.106). L'art. 1 de cette Convention institue un "Comité européen pour la prévention de la torture et des peines ou traitements inhumains ou dégradants" (ci-après: CPT).
Le 15 décembre 2015, le CPT a édité une norme sur l'espace vital par détenu dans les établissements pénitentiaires. Il en ressort que la norme minimale concernant l'espace vital devrait exclure les sanitaires qui se trouvent à l'intérieur d'une cellule. Ainsi, une cellule individuelle devrait mesurer 6 m2 auxquels on ajouterait la superficie nécessaire à une annexe sanitaire (généralement de 1 à 2 m2). De même, l'espace occupé par l'annexe sanitaire devrait être exclu du calcul des 4 m2 par personne dans les cellules collectives. De plus, l'annexe sanitaire de ces dernières devrait être entièrement cloisonnée.
Par ailleurs, le Comité des ministres du Conseil de l'Europe, en application de l'art. 15 (b) du Statut du Conseil de l'Europe (RS 0.192.030), a adopté le 11 janvier 2006 la Recommandation Rec (2006) 2 sur les règles pénitentiaires européennes (ci-après: RPE), lesquelles s'inscrivent dans les précédentes recommandations établies dès 1989. Ces règles ont été révisées et modifiées le 1er juillet 2020. Ces règles prennent notamment en compte le travail mené par le CPT ainsi que les normes qu'il a développées dans ses rapports généraux, et visent à garantir des conditions de détention qui ne portent pas atteinte à la dignité humaine. Les règles 17 à 22 RPE traitent des locaux de détention, de l'hygiène, de la literie et du régime alimentaire: ainsi, les locaux de détention doivent satisfaire aux exigences de respect de la dignité humaine et, dans la mesure du possible, de la vie privée, et répondre aux conditions minimales requises en matière de santé et d'hygiène, compte tenu des conditions climatiques. La règle 19.3 prévoit en particulier que les détenus doivent jouir d'un accès facile à des installations sanitaires hygiéniques et protégeant leur intimité. La règle 25, qui a trait au régime pénitentiaire, indique notamment que ce régime doit permettre à tous les détenus de passer chaque jour hors de leur cellule autant de temps que nécessaire pour assurer un niveau suffisant de contacts humains et sociaux (règle 25.2).
Les RPE - et a fortiori leur commentaire - n'ont valeur que de simples directives à l'intention des Etats membres du Conseil de l'Europe, mais le Tribunal fédéral en tient compte dans la concrétisation de la liberté personnelle et des autres droits fondamentaux garantis par la Constitution fédérale (ATF 145 I 318 consid. 2.2 p. 323; 141 I 141 consid. 6.3.3 p. 146 et l'arrêt cité).
2.1.2. S'agissant de l'espace au sol, le Tribunal fédéral a jugé qu'en cas de surpopulation carcérale telle que la connaissait la prison de Champ-Dollon, l'occupation d'une cellule dite individuelle par trois détenus - chacun disposant d'un espace individuel de 4 m2, restreint du mobilier - est une condition de détention difficile; elle n'est cependant pas constitutive d'une violation de l'art. 3 CEDH et ne représente pas un traitement dégradant portant atteinte à la dignité humaine des prévenus. En revanche, l'occupation d'une cellule dite triple par six détenus avec une surface individuelle inférieure à 3,83 m2 - restreinte encore par le mobilier - peut constituer une violation de l'art. 3 CEDH si elle s'étend sur une longue période et si elle s'accompagne d'autres mauvaises conditions de détention. Il faut dès lors considérer la période pendant laquelle le recourant a été détenu dans les conditions incriminées. Une durée qui s'approche de trois mois consécutifs (délai que l'on retrouve en matière de contrôle périodique de la détention provisoire ou pour des motifs de sûreté; cf. art. 227 al. 7 CPP) apparaît comme la limite au-delà de laquelle les conditions de détention susmentionnées ne peuvent plus être tolérées. Ce délai ne peut cependant pas être compris comme un délai au sens strict du terme mais comme une durée indicative à prendre en compte dans le cadre de l'appréciation globale de toutes les conditions concrètes de détention. La durée très limitée des périodes que le recourant est autorisé à passer hors de la cellule aggrave encore la situation (ATF 140 I 125 consid. 3.6.3 p. 138 ss. traitant d'une détention de 157 jours avec confinement de 23h/24h; cf. aussi arrêts 1B_394/2016 du 25 avril 2017 consid. 2.2.1; 1B_239/2015 du 29 septembre 2015 consid. 2.4; 6B_456/2015 du 21 mars 2016 consid. 2.1 et les arrêts cités).
S'agissant du nombre journalier d'heures passées en cellule, la possibilité de sortir de la cellule, entre 1 heure et 5 heures 45 par jour une semaine sur deux, ne suffit pas en soi, dans la situation telle que décrite précédemment de la prison de Champ-Dollon, à rendre ces conditions de détention conformes à l'art. 3 CEDH (arrêt 1B_239/2015 du 29 septembre 2015 consid. 2.5.3). Le Tribunal fédéral a aussi considéré que, compte tenu de la longueur de la période considérée (635 jours), la possibilité de sortir de la cellule, entre 3 heures 30 et 5 heures 30 par jour, était certes susceptible d'alléger les conditions de détention; cette seule circonstance ne suffisait cependant pas en soi, dans la situation telle que décrite précédemment de la prison de Champ-Dollon, à rendre ces conditions de détention conformes à l'art. 3 CEDH; un confinement en cellule respectivement de 20 heures 30, de 19 heures 30 et de 18 heures 30 sur 24 heures demeurait une condition de détention difficile qui n'était pas propre à améliorer suffisamment les conditions décrites au point de les rendre licites (arrêt 1B_84/2016 du 27 juillet 2016 consid. 2.4).
En revanche, le Tribunal fédéral a jugé que le fait de passer pendant 114 jours, entre 4 heures 30 et 7 heures 15 par jour hors de la cellule, réduisait de manière significative le confinement en cellule et permettait de considérer que la détention dans de telles conditions ne constituait pas un traitement dégradant portant atteinte à la dignité humaine; ce d'autant lorsque les codétenus partageant la cellule étaient aussi absents quotidiennement pendant plusieurs heures, à des moments différents (arrêt 1B_394/2016 du 25 avril 2017 consid. 2.4). Le Tribunal fédéral a encore estimé que le fait de passer durant 201 jours 5 heures par jour en moyenne hors de la cellule, réduisait également de manière significative le confinement en cellule et permettait de considérer que la détention dans de telles conditions ne constituait pas un traitement dégradant portant atteinte à la dignité humaine (arrêt 6B_1085/2016 du 28 août 2017 consid. 3.2).
2.1.3. Dans un arrêt de principe Mursic contre Croatie du 20 octobre 2016, la Grande Chambre de la Cour européenne des droits de l'homme s'est cependant écartée de cet ordre de grandeur de 4 m2, déduit des normes établies par le CPT: désormais, la Cour retient qu'une surface de 3 m2 au sol par détenu constitue la norme minimale pertinente (arrêt CourEDH Mursic c. Croatie du 20 octobre 2016, requête n° 7334/13, § 110 à 115; cf. également arrêt CourEDH J.M.B. et autres contre France du 30 janvier 2020, requête no 9671/15, § 255 et 256; pour une critique de l'arrêt Mursic c. Croatie, voir FRANÇOISE TULKENS, Cellule collective et espace personnel: un arrêt en trompe-l'oeil, in Revue trimestrielle des droits de l'homme 2017, p. 989 à 1004).
2.2. Pour la période du 23 octobre 2019 au 29 mars 2020, il n'est pas contesté qu'en déduisant la surface des sanitaires, l'espace individuel net à disposition du recourant dans les deux cellules qu'il a occupées est respectivement de 3,54 m2 (28 jours: du 23 octobre 2019 au 19 novembre 2019) et 3,82 m2 (dès le 19 novembre 2019), restreint encore par le mobilier. Le recourant a donc séjourné dans une cellule de moins de 4 m2 pendant plus de cinq mois. Cette mauvaise condition de détention s'étend ainsi sur une longue période (cf. ATF 140 I 125 consid. 3.6.3 p. 138).
Comme constaté par l'instance précédente, au manque d'espace s'ajoutent plusieurs circonstances aggravantes: les toilettes sont séparées du reste de la cellule par un rideau ignifuge et non par des cloisons et l'isolation thermique de la prison est mauvaise (cf. arrêt 1B_325/2017 du 14 novembre 2017 consid. 3.5).
Cependant, durant cette période, le recourant travaillait à 50 % (à l'atelier vidéo en alternance ou non avec son codétenu) et a passé en moyenne 5 heures par jour au moins hors de la cellule, selon les constatations non contestées de l'instance précédente. Or, selon la jurisprudence, le fait de passer en moyenne au moins 5 heures par jour hors de la cellule réduit de manière significative le confinement en cellule (cf. ci-dessus consid. 2.1.2, en particulier l'arrêt 6B_1085/2016 du 28 août 2017 consid. 3.2). De plus, le détenu occupait seul la cellule pendant plusieurs heures par semaine lorsque son codétenu travaillait, ce qui allégeait encore quelque peu les conditions de détention (cf. 1B_394/2016 du 25 avril 2017 consid. 2.4). Ces circonstances permettent ainsi de considérer qu'en dépit de l'exiguïté de l'espace individuel à disposition du recourant, du manque d'intimité aux toilettes et de la mauvaise isolation thermique du bâtiment, la détention dans de telles conditions durant cette période n'atteint pas le niveau d'intensité suffisant pour constituer un traitement dégradant portant atteinte à la dignité humaine. Au vu de la jurisprudence précitée (en particulier l'arrêt 6B_1085/2016), le recourant se prévaut en vain du fait que le commentaire des RPE souligne que, selon le CPT, les détenus doivent être occupés en dehors de leur cellule au moins huit heures par jour.
En définitive, il découle de ce qui précède que, pour la période allant du 23 octobre 2019 au 29 mars 2020, à savoir avant les changements apportés au régime de la détention en relation avec l'épidémie de Covid-19, la cour cantonale pouvait considérer, sans violer le droit fédéral, que les conditions d'incarcération du recourant, pour difficiles qu'elles aient été, respectaient les exigences constitutionnelles et étaient conformes à l'art. 3 CEDH.
2.3. La cour cantonale a ensuite examiné la période du 30 mars au 3 juin 2020 (date de l'ordonnance du Tmc). Elle a retenu que durant cette période le recourant avait séjourné dans deux cellules doubles offrant un espace individuel de 3,82 m2 et 3,91 m2 par détenu, soit inférieur à 4 m2, et qu'il avait passé environ 20 heures, puis 22 heures par jour en cellule. Elle a toutefois considéré que les conditions de détention depuis le 30 mars 2020 n'étaient pas illicites dès lors que ce régime de détention n'avait pas duré assez longtemps, à savoir qu'il n'avait pas duré plus de trois mois sans discontinuer à la date de l'ordonnance du Tmc (cf. ci-dessus consid. 2.1.2).
Certes, comme indiqué par le recourant dans son mémoire de recours, la cour cantonale dispose d'un plein pouvoir d'examen en fait et en droit (art. 393 al. 2 CPP; arrêts 6B_248/2015 du 13 mai 2015 consid. 3.2; 1B_768/2012 du 15 janvier 2013 consid. 2.1 publié in Forum Poenale 2014 p. 26) et aurait donc pu examiner si les conditions de détention constatées par le Tmc étaient encore actuelles lorsqu'elle a statué. Le recourant n'a cependant pas affirmé expressément devant l'instance précédente que tel était toujours le cas. Dans la mesure où le recourant peut en tout temps déposer une nouvelle demande de constatation de l'illiceité des conditions de sa détention depuis le 30 mars 2020, il n'y a pas lieu de renvoyer la cause à l'instance précédente.
3.
Le recours doit être rejeté dans la mesure où il est recevable. Dès lors que le recourant est dans le besoin et que ses conclusions ne paraissaient pas dénuées de chances de succès, sa requête d'assistance judiciaire doit être admise (art. 64 al. 1 LTF). Par conséquent, il y a lieu de le dispenser des frais et d'allouer une indemnité à sa mandataire, désignée comme avocate d'office (art. 64 al. 2 LTF). Le recourant est en outre dispensé des frais judiciaires (art. 64 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La requête d'assistance judiciaire est admise; Me Cinzia Petito est désignée comme conseil d'office du recourant et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires.
3.
Le présent arrêt est communiqué à la mandataire du recourant, au Ministère public du canton de Vaud, Procureur cantonal Strada, au Tribunal cantonal du canton de Vaud, Chambre des recours pénale, ainsi que, pour information, au Tribunal correctionnel de l'arrondissement de l'Est vaudois.
Lausanne, le 2 décembre 2020
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
La Greffière : Arn