Repository navigation
0.18.0
Synced to flipcash2-protobuf-api@9d44350b,
picking up #135,
#136,
#137 and
#138. Only chat.v1 moved;
blob.v1 changed only in comments.
Renumbered
EditChatResponse.Result:COVER_PICTURE_BLOB_NOT_ACCEPTEDis inserted at 5, and
DESCRIPTION_MODERATEDmoves from 5 to 6. 0.17.0 shippedDESCRIPTION_MODERATED = 5, so a
0.17.0 client reads a cover-picture rejection from a current server as a moderated description,
and does not recognize 6 at all. Code that maps this enum by raw value, such as iOS's
Error*(rawValue:), has to be re-checked case by case, not only extended.
No other field or enum moved. StartChatResponse.Result gains its new case at the end.
Renamed
The group picture becomes the profile picture, to tell it apart from the new cover picture. Field
numbers are unchanged, so this is wire-compatible but breaks source in both languages.
Metadata.picture→profile_picture(= 9).picture→profile_picture(= 2) onPublicGroupChatParametersand
PrivateGroupChatParameters.EditChatRequest.picture→profile_picture(= 3), and its typePicture→ProfilePicture.MetadataUpdate.picture_changed→profile_picture_changed(= 5), andPictureChanged→
ProfilePictureChangedwithnew_picture→new_profile_picture.PICTURE_BLOB_NOT_ACCEPTED→PROFILE_PICTURE_BLOB_NOT_ACCEPTEDonStartChatResponse.Result
(= 3) andEditChatResponse.Result(= 4).
Added
- Group cover pictures, the banner behind a chat's profile view.
Metadata.cover_picture(= 17). The feed RPCs may leave it unset even when one is set, so a
feed result must not clear a cover picture the client already holds;GetChatreturns it.- Set at creation through
cover_pictureonPublicGroupChatParameters(= 5) and
PrivateGroupChatParameters(= 4), and changed throughEditChatRequest.cover_picture
(= 5, aCoverPicture { blob_id }wrapper). - Announced as
MetadataUpdate.CoverPictureChanged(= 7,new_cover_picture). COVER_PICTURE_BLOB_NOT_ACCEPTEDonStartChatResponse.Result(= 7) and
EditChatResponse.Result(= 5, see above).
RosterUpdate.MembershipChanged(= 3), an empty case for a roster change the recipient is not
shown. Apply itsroster_summaryby version and leave the cached member list alone.Chat.SampleChatters, a public sample of up to 100 members of a public group: its creator, then
the most recent senders. Auth is optional. ReturnsSampledChatter(user_profile,
last_sent_at,is_creator) andhas_more.Chat.SetFeaturedGroupsandChat.GetFeaturedGroups, an ordered list of up to 10 public groups a
user shows on their profile.GetFeaturedGroupslooks the user up byusername, takes optional
auth, and returns each group as a list view shows it, withoutcover_pictureor any viewer or
messaging state.
Changed behavior
GetRosternow requires membership. A non-member whom a group's listener rules let read its
messages used to get the roster and now getsDENIED.SampleChattersis the public
alternative.
Upgrading
Expect compile errors from the renames. Beyond those, an exhaustive MetadataUpdate switch needs
CoverPictureChanged, an exhaustive RosterUpdate switch needs MembershipChanged, and anything
that calls GetRoster for a group the user has not joined needs to stop.