-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Group Chat Streaming #166
Merged
Merged
Group Chat Streaming #166
Changes from 80 commits
Commits
Show all changes
81 commits
Select commit
Hold shift + click to select a range
fcb9921
first pass at all the pieces needed for threading
nplasterer 6326d7f
a few more places
nplasterer ed9ae8c
make signing key extend inboxOwner
nplasterer ff740e1
get it decoding messages
nplasterer 750eb84
dump the latest v3 code
nplasterer 15db4e8
write a test for creating a v3 client
nplasterer 88a2c77
use created At
nplasterer 53c5897
write test for creating libxmtp client and confirm it works
nplasterer 8998d13
move these change to a different branch
nplasterer 397982a
dont pass a conversation
nplasterer 7bb1534
fix linter
nplasterer b35f686
point to local not dev
nplasterer aaecfc3
feature flag the client creating of libxmtp while in alpha
nplasterer 9bbee43
change to local
nplasterer 14b3870
fix up the test helper
nplasterer 5ddf0f5
feat: fix up the example app
nplasterer 305f483
fix up the 22 compat issue
nplasterer d0d8881
Revert "move these change to a different branch"
nplasterer 296cac4
try and get some tests running
nplasterer 2cb89b7
setup local database
nplasterer 4892ffe
have it create correctly
nplasterer 04abb1c
Merge branch 'np/group-spike' of https://github.com/xmtp/xmtp-android…
nplasterer 9751afe
write tests for functionality
nplasterer 4aedaa3
test sending
nplasterer bfd9e7b
send encoded content
nplasterer 7915b0c
add updates to the v3 bindings
nplasterer ca663cf
add updates to the v3 bindings
nplasterer 1e84e4c
store in a keystore
nplasterer 4da7d38
move to preferences
nplasterer c05f7f8
fix lint
nplasterer dc42604
Merge branch 'np/group-spike' of https://github.com/xmtp/xmtp-android…
nplasterer 4329033
Fix build issues
neekolas 51cb81f
new libxmtp updates
nplasterer 5e85337
Merge branch 'np/group-conversations' of https://github.com/xmtp/xmtp…
nplasterer ca7537f
dump the latest schema
nplasterer 3fd9099
update to the latest client creation flow
nplasterer 89d0e63
get the create working again
nplasterer 845d360
use the keystore because its more secure
nplasterer 8862d42
fix up linter compat again
nplasterer 13b7cf9
flaky test
nplasterer ba3c247
Merge branch 'main' of https://github.com/xmtp/xmtp-android into np/g…
nplasterer 88e3456
Merge branch 'np/group-spike' of https://github.com/xmtp/xmtp-android…
nplasterer d89f11c
get the tests all passing
nplasterer ac8a2d5
get the example working with groups
nplasterer 4fc84ea
create a group with two addresses
nplasterer 093c5e4
more tweaks to the example app to get groups working
nplasterer 29c9e07
add streaming messages to groups
nplasterer e96d81a
a few example UI tweaks
nplasterer d83938d
fix the lowercasing issue in the example app
nplasterer 6eaf597
dump the schema again
nplasterer 5b676a5
Merge branch 'main' of https://github.com/xmtp/xmtp-android into np/g…
nplasterer b74f02f
implement all the conversation functionality
nplasterer 33bdafa
add new codec for membership changes
nplasterer 2c7ac43
write tests for it
nplasterer 5c15d7b
fix up the tests a bit'
nplasterer 816106f
add more tests and group streaming
nplasterer b579a65
get the new codec working as expected
nplasterer dec2192
add pagination to messages
nplasterer 06e4df0
fix up the library linting issues
nplasterer 6f5e068
fix up flaky test
nplasterer 1cdd848
fix up min sdk version issue again
nplasterer 58ce184
update the example app
nplasterer 5099e29
remove the saved wallet stuff from the demo
nplasterer 5191cc5
get groups working again with signer improvements and membership changes
nplasterer 7641ac7
fix linter
nplasterer ee6b1cb
remove syncs so the client will need to manage
nplasterer 655ad0d
add pagination to group listing
nplasterer eae74a3
dont return self for peers and add erroring to new group creation
nplasterer 2f4abdc
update the syncing in the tests
nplasterer 76bfcc7
remove all the streams work and move to another PR
nplasterer cbfdce1
Revert "remove all the streams work and move to another PR"
nplasterer a659c96
Merge branch 'main' of https://github.com/xmtp/xmtp-android into np/g…
nplasterer 9b5d62d
update test
nplasterer fc86eed
undo all the bad merge items
nplasterer 457331b
attempt at a few different stream techiniques
nplasterer cda4f13
get message streaming working and start on group streaming
nplasterer 769c270
remove unneeded class
nplasterer dfdc218
get group streaming working
nplasterer d54521b
fix streaming for both
nplasterer be8a3d8
fix the linter
nplasterer 28cd0c6
throw error if client doesnt support groups
nplasterer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we want to refer to what you're doing in here as decoding rather than decrypting. The messages all get decrypted in
libxmtp
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So we have two streaming methods one for decoding and one for decrypting. We need this stream decrypted messages for React Native custom content types. @nakajima could speak more to it.
Since Groups are conforming to the current Conversation model I have to use these methods. Once we do the refactor to Groups Dms and Conversation parent we might be able to get rid of some of these things.
But to break as little of the existing flow as possible. This is needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the intended difference between a
DecryptedMessage
and aDecodedMessage
? When I trace the method calls from both streaming methods, they seem to produce the same result (they both return something with a field calledencodedContent
that is set toEncodedContent.parseFrom(libXMTPMessage.content)
)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think there is going to be any difference in the V3 world but again I didn't follow as closely to the reasoning for custom contentTypes. I found this for context xmtp/xmtp-ios#196