#12 sync call history between devices via carbons and MAM
- After a call ends, send a plaintext <call-history/> service message to the user's own bare JID with direction, status, duration, start time, peer and video flag plus the call id as origin-id. - Intercept the payload on live, carbon and MAM paths and upsert the same system call card on every device; deduplication reuses the origin-id as clientID, and missed incoming calls bump unread. - Cover payload parsing and round-trip in CallHistorySyncTests, guard the namespace and interception in verify.sh, and document the flow in ARCHITECTURE.md.
This commit is contained in:
1 parent
0d78e02d2b
commit
1a26651daa
10 files changed
+269
-18
No files matched your search
@@ -86,7 +86,9 @@ required=(
|
||||
Tests/MediaPreviewProcessorVideoTests.swift
|
||||
Tests/SCRAMSHA512Tests.swift
|
||||
Tests/AppLockPolicyTests.swift
|
||||
Tests/CallHistorySyncTests.swift
|
||||
Sources/Shared/XMPP/LumaScramSha512Mechanism.swift
|
||||
Sources/Shared/XMPP/CallHistorySync.swift
|
||||
Sources/Shared/Security/AppLockVault.swift
|
||||
Sources/Shared/Models/AppLockPolicy.swift
|
||||
Sources/Shared/UI/AppLockView.swift
|
||||
@@ -351,6 +353,18 @@ grep -q 'Блокировка приложения' Sources/Shared/UI/SettingsVi
|
||||
echo "Settings must offer the app lock toggle"
|
||||
exit 1
|
||||
}
|
||||
grep -q 'https://luma.chat/call-history' Sources/Shared/XMPP/CallHistorySync.swift || {
|
||||
echo "Call history must sync through its service namespace"
|
||||
exit 1
|
||||
}
|
||||
grep -q 'syncCallHistory' Sources/Shared/Models/AppModel.swift || {
|
||||
echo "Call cards must be synced to the user's other devices"
|
||||
exit 1
|
||||
}
|
||||
grep -q 'CallHistorySync.envelope' Sources/Shared/XMPP/XMPPService.swift || {
|
||||
echo "Incoming call-history payloads must be intercepted"
|
||||
exit 1
|
||||
}
|
||||
grep -q 'func deleteGroupChat' Sources/Shared/Models/AppModel.swift || {
|
||||
echo "Group chats must support local deletion"
|
||||
exit 1
|
||||
|
||||
Reference in new issue
Block a user