While observing GroupSession
objects for my GroupActivity
via the .sessions()
async sequence, updated sessions are never received with with new states. Neither state == .joined
or state == invalidated
are received after calling session.join()
and session.leave()
respectively:
Task {
for await session in MyGroupActivity.sessions() {
switch session.state {
case .waiting:
// Received after activating activity.
case .joined:
// Never received after calling `session.join()`.
case .invalidated:
// Never received after calling `session.leave()`, ending the FaceTime call, or after other participating user ends session for everyone.
}
}
}
After some digging around, it seems that you need to observer the session properties individually, in addition to observing the session, as per this documentation page. The sessions()
sequence only broadcasts new sessions it seems, although it that doesn't seem to be documented anywhere. Wish the documentation made it clearer that you need to observe this properties directly.