Group snapshots fetched from the service do not store the `didJoinFromInviteLink` field on their members, and when we parse a snapshot into a group model we hardcode this value to `false` for all members. However, we store that field locally on a `GroupMembership`'s `MemberStateMap` when processing an "add members" change action, as the field is provided in the `AddMember` change action proto. This becomes an issue, since when we refresh the group's state from the service (which we do periodically, e.g. when opening a group for the first time after launch) the `GroupMembership` from the group's snapshot on the service will not match the `GroupMembership` we have locally, even though they are from the same revision, due to mismatched `didJoinFromInviteLink` values (hardcoded in the snapshot). Consequently, we believed we were "updating the group model in a user- facing way", but the only change therein was clobbering a `didJoinFromInviteLink: true` to `...: false`, which was 1) wrong and 2) did not have a description to show. This commit changes `GroupMembership` to ignore values for `didJoinFromInviteLink` when comparing equality. This means that when we parse a snapshot into a `TSGroupModel` with all those values hardcoded to false, but otherwise identical to our local, we will no longer see it as different from our local (and subsequently clobber our local and generate an empty update). |
||
|---|---|---|
| .. | ||
| protobuf | ||
| Resources | ||
| src | ||
| tests | ||
| .clang-format | ||
| .gitignore | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
SignalServiceKit
SignalServiceKit is an Objective-C library for communicating with the Signal messaging service for iOS & OS X
To use SignalServiceKit via CocoaPods add the following to your Podfile
pod 'SignalServiceKit', git: 'https://github.com/signalapp/Signal-iOS.git'