-
-
Notifications
You must be signed in to change notification settings - Fork 70
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
[feature] Note To Self #569
base: dev
Are you sure you want to change the base?
Conversation
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.
flutter: [🌎 Easy Localization] [DEBUG] Build
flutter: [🌎 Easy Localization] [DEBUG] Init Localization Delegate
flutter: [🌎 Easy Localization] [DEBUG] Init provider
flutter: [🌎 Easy Localization] [DEBUG] Load Localization Delegate
flutter: [🌎 Easy Localization] [DEBUG] Load asset from assets/translations
flutter: [🌎 Easy Localization] [DEBUG] Load asset from assets/translations
flutter: [media] loaded 0
flutter: [initStore] persistor saving from SetOlmAccount
flutter: [initStore] persistor saving from SetDeviceKeysOwned
flutter: [syncObserver] running sync
flutter: [fetchSync] *** starting sync ***
flutter: createHttpClient() - cert already trusted! Skipping.
flutter: [updateOneTimeKeyCounts] {signed_curve25519: 35}, current {signed_curve25519: 35}
flutter: [syncObserver] running sync
flutter: [fetchSync] *** starting sync ***
flutter: createHttpClient() - cert already trusted! Skipping.
flutter: [syncObserver] still syncing
flutter: [syncObserver] still syncing
flutter: [parseSync] !UVfspReCNKmqemGPlZ:geraghty.london limited true lastBatch false prevBatch true
flutter: [syncRooms] Empty Chat full_synced: true limited: false total new messages: 0 roomPrevBatch: s147361_12212344_4663_212358_8049_9_1968_488751_1
flutter: [initStore] persistor saving from SetRoom
flutter: [updateOneTimeKeyCounts] {signed_curve25519: 35}, current {signed_curve25519: 35}
flutter: [toggleDirectRoom] Account data not found
flutter: [syncRooms] Note to Self full_synced: true limited: false total new messages: 0 roomPrevBatch: s147361_12212344_4663_212358_8049_9_1968_488751_1
flutter: [initStore] persistor saving from SetRoom
flutter: [initStore] persistor saving from SetRoom
flutter: createHttpClient() - cert already trusted! Skipping.
flutter: [syncObserver] running sync
flutter: [fetchSync] *** starting sync ***
flutter: [syncRooms] Note to Self full_synced: true limited: false total new messages: 0 roomPrevBatch: t1-147360_0_0_0_0_0_0_0_0
flutter: createHttpClient() - cert already trusted! Skipping.
flutter: [parseSync] !UVfspReCNKmqemGPlZ:geraghty.london limited false lastBatch false prevBatch true
flutter: [syncRooms] Note to Self full_synced: true limited: false total new messages: 0 roomPrevBatch: s147362_12212344_4663_212358_8049_9_1968_488751_1
flutter: [initStore] persistor saving from SetRoom
flutter: [syncObserver] still syncing
flutter: [initStore] persistor saving from SetRoom
flutter: [updateOneTimeKeyCounts] {signed_curve25519: 35}, current {signed_curve25519: 35}
flutter: [syncObserver] running sync
flutter: [fetchSync] *** starting sync ***
flutter: createHttpClient() - cert already trusted! Skipping.
flutter: [syncObserver] still syncing
flutter: [syncObserver] still syncing
flutter: [sendTyping] typing indicators disabled
flutter: [syncObserver] still syncing
flutter: [claimOneTimeKeys] all key sharing sessions per device are ready
flutter: [loadKeySessionOutbound] checking outbounds for /L3LKf+xndwccTHRrADDPJ+M8s9ixfn5MG/aNQzoJjU
flutter: [loadKeySessionOutbound] found mm4XMVCtlS/droRSSu9yEVk4Se60BIpdnqQGpGfkaFs for /L3LKf+xndwccTHRrADDPJ+M8s9ixfn5MG/aNQzoJjU of type 0
flutter: [loadKeySessionOutbound] checking outbounds for Jq4UBW9A+vYuEHYU/3q87rs+eKSG4/B0gW+UMTB4DXs
flutter: [loadKeySessionOutbound] found IH9lsrA/fbgeWxb1BLh6bQaE9iqRYRMNFFF6arwtmEQ for Jq4UBW9A+vYuEHYU/3q87rs+eKSG4/B0gW+UMTB4DXs of type 0
flutter: [loadKeySessionOutbound] checking outbounds for 9Zw8kLtAKBDgmmId7huJ4/guY2D8nRWPRFasMp8T/wo
flutter: [loadKeySessionOutbound] found XU+Jd6iPYVYpTXyNh5cMxf6ESzp1Hi1Vx8pk4Oykjsg for 9Zw8kLtAKBDgmmId7huJ4/guY2D8nRWPRFasMp8T/wo of type 0
flutter: [loadKeySessionOutbound] checking outbounds for htTpjuaJe0FvyHQ3YWl+2oHwBQJ2pNUmUvNNBYbwo08
flutter: [loadKeySessionOutbound] found G68XN2FhgtAMfk+gvHLBWtMADdayrAHiq0kFQgin4QE for htTpjuaJe0FvyHQ3YWl+2oHwBQJ2pNUmUvNNBYbwo08 of type 0
flutter: [loadKeySessionOutbound] checking outbounds for l695NaXBcdagrk48oB0MhvrOxu6rONTMAU9hNu4/R0A
flutter: [loadKeySessionOutbound] found Qhs4dAyVnI2YQoQcLa4MynYHfWCgE4A+MCIQj9dsu0M for l695NaXBcdagrk48oB0MhvrOxu6rONTMAU9hNu4/R0A of type 0
flutter: [loadKeySessionOutbound] checking outbounds for DczLY/nYiAbekZBYCeH104bRX6ORvoARi4JUWvUO3Aw
flutter: [loadKeySessionOutbound] found zsEjLFsnCHx4dv66Qb3ZW76hlRyqOyTeokAbGgsAJrU for DczLY/nYiAbekZBYCeH104bRX6ORvoARi4JUWvUO3Aw of type 0
flutter: [loadKeySessionOutbound] checking outbounds for 4UZmI73L3pu6U9NoUo4XRjEtUhY8AreNsHe6TT9Vwyw
flutter: [loadKeySessionOutbound] found 7kIY02/lk2tfaED1B7Eex9sI8eyenIbwKSto+ZQcZF0 for 4UZmI73L3pu6U9NoUo4XRjEtUhY8AreNsHe6TT9Vwyw of type 0
flutter: [loadKeySessionOutbound] checking outbounds for li01zcxEp1uLain2F+K1sQwoYtVr9Kmu90cwVxayckc
flutter: [loadKeySessionOutbound] found eWS1H2sAfRjHR1uJluGW2zwvGME02YlC8egSHf6eVZU for li01zcxEp1uLain2F+K1sQwoYtVr9Kmu90cwVxayckc of type 0
flutter: [loadKeySessionOutbound] checking outbounds for SuRvu6j0qpGjWXXIsUi93mmltiX0nj0qKS32u83qmCc
flutter: [loadKeySessionOutbound] found 4QTQ0G+xGvrcVAW97CYrL3NXyGlEQib+WlpXYRYZQxY for SuRvu6j0qpGjWXXIsUi93mmltiX0nj0qKS32u83qmCc of type 0
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [initStore] persistor saving from SaveKeySession
flutter: [sendSessionKeys] success! 2036539858
flutter: [sendSessionKeys] success! 1175466330
flutter: [sendSessionKeys] success! 1922827214
flutter: [sendSessionKeys] success! 1474527561
flutter: [sendSessionKeys] success! 704602701
flutter: [sendSessionKeys] success! 2123870775
flutter: [sendSessionKeys] success! 1746299933
flutter: [sendSessionKeys] success! 2066904403
flutter: [sendSessionKeys] success! 1322305846
flutter: [syncObserver] still syncing
flutter: [parseSync] !UVfspReCNKmqemGPlZ:geraghty.london limited false lastBatch false prevBatch true
flutter: [syncRooms] Note to Self full_synced: true limited: false total new messages: 1 roomPrevBatch: s147369_12212344_4663_212358_8049_9_1977_488751_1
flutter: [decryptMessage] Unable to find inbound message session for decryption
flutter: [initStore] persistor saving from SetRoom
For some reason I can't decrypt messages in a Note to Self DM room
very strange, i'll take a look. I have a feeling it's some code block associated with sending keys properly only when another non-currentUser is in the room. |
Interestingly, it's also unable to decrypt messages sent by Element, although Element is perfectly happy with the room as configured. It's something to do with loadMessageSessionInbound, but I'm just chasing my tail in circles haha |
I've logged out and back in, and suddenly these rooms work as expected 🤦♂️ |
@EdGeraghty can you pull the latest changes from dev? Want to see if it changes anything; it affects |
@ereio I have rebased on Dev and all seems good |
not sure what happened with this merge but it looks like it's attempting to recommit previous work? would you mind rebase your changes on top of dev instead? Happy to attempt doing it as well |
589902d
to
d604583
Compare
let me know if/when you'd like me to take a look at this! |
Yes - sorry, I got a little lost in the best way to implement the room avatar and then got sidetracked on other stuff. |
d604583
to
e599ae0
Compare
I've rebased this and it's still working as expected. The last step is to work out how to set the room avatar - is this a good/silly approach so far? |
e599ae0
to
21bd3e7
Compare
Fixes #560 |
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.
Great work @EdGeraghty !
I'd like to make sure a few things are handled properly before merging. Have you tested what happens when a user searches themselves again after they've created a Note To Self? Does it automatically navigate them there like existing user DMs?
inviteIds.whereNot((userId) => userId == currentUser.userId).toList(); | ||
|
||
final isNoteToSelf = | ||
inviteIds.length == 1 && inviteIds.single == currentUser.userId; |
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.
good form on this line. It's a one liner, but it's easy to read
final List<User> latestUsers = List.from(users.values.take(25)); | ||
|
||
if (!latestUsers.any((user) => user.userId == currentUser.userId)) { | ||
latestUsers.insert(0, currentUser); |
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.
it's picky, but you could use a .sort()
here instead to just move the current user to the front without the if
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.
That only works if the user's in the list to begin with though, right?
final screenshotController = ScreenshotController(); | ||
final avatar = MemoryFileSystem().file('avatar.png'); | ||
|
||
await screenshotController |
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.
Ignore the previous message, I just realized the Icon is an asset. You should be able to convert this to a bytestream without taking a screenshot. I can push something in a branch to help with this
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.
Thank you. It has been driving me nuts how to get it out of its SVG
Thanks :) I have 100% tested this in the past, but the code has gone through so many iterations that having just tested it now it seems to sit and hang rather than redirect... Is #671 related? 🤔 |
I'd like to add, "Note to Self" should be made by default. If an user attempts to send an message to themselves |
Types
Changes
🔮 Features
Notes to Self
🐛 Fixes
🔒 Security
🛠 Performance
📐 Refactoring
Media (if applicable)
QA
Final Checklist