Le backend ne retourne pas l'event access_rules au complet.
Le Rust SDK ne trouve donc pas les valeurs :
access_rules.visibility
access_rules.encrypted
Pour améliorer la fluidité de l'app côté client, on a supprimé l'appel fallback de access_rules.visibility qui s'effectuait via une requête backend.
Le fix temporaire côté Rust SDK a été réalisé :
- En fallback, on ne récupère plus la valeur via une requête API
- On vérifie si la room est chiffré ou non pour la visibility :
Visibility::Public -> room.encrypted === false
Visibility::Private -> room.encrypted === true
À faire : Quand le backend retournera des valeurs pour access_rules.visibility et access_rules.encrypted, il faudra supprimer le fallback de visibility :
// TCHAP TODO : Remove this ugly cheat code when the backend returns complete access_rules (containing visibility state).
/// Requets the room visibility status for this room.
/// This method is used as a last chance to get a value in `visibility()` method
/// if the access rules event in the local store in unable to give a valid value.
/// This method return Visibility::Public when room is unencrypted or Visibility::Private when the room is encrypted.
async fn get_fallback_room_visibility_value(&self) -> Visibility {
self.is_encrypted().await.then_some(Visibility::Private).unwrap_or(Visibility::Public)
}
Le backend ne retourne pas l'event
access_rulesau complet.Le Rust SDK ne trouve donc pas les valeurs :
access_rules.visibilityaccess_rules.encryptedPour améliorer la fluidité de l'app côté client, on a supprimé l'appel fallback de
access_rules.visibilityqui s'effectuait via une requête backend.Le fix temporaire côté Rust SDK a été réalisé :
Visibility::Public->room.encrypted === falseVisibility::Private->room.encrypted === trueÀ faire : Quand le backend retournera des valeurs pour
access_rules.visibilityetaccess_rules.encrypted, il faudra supprimer le fallback de visibility :