Commit graph

449 commits

Author SHA1 Message Date
RMidhunSuresh e20810b0cb Add test for unicode after fragment without path
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:44:39 +05:30
RMidhunSuresh 7be9f93909 Make regex module-level constant
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:32:36 +05:30
RMidhunSuresh 03208b88d5 Move link tests to linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:19:29 +05:30
Bruno Windels a0e3848cf6 dispose existing view model when changing status, otherwise we leak! 2021-05-11 16:39:33 +02:00
Bruno Windels 8b8214cd1b reference count archived rooms and keep track of active ones
so we don't create two instances for the same id, one for sync, and one
for displaying, and hence updates from sync being pushed on a different
instance than the one displaying, and not updating the view.
2021-05-11 16:09:58 +02:00
RMidhunSuresh dbe76e973e Add braces to all blocks
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 17:59:03 +05:30
Bruno Windels 82a1b37363 refresh room view model when going from joined -> archived
given we have a dedicated class (ArchivedRoom) for it now
2021-05-11 13:11:38 +02:00
Bruno Windels e3c1644d09 show leave reason instead of composer for archived room 2021-05-11 13:11:11 +02:00
Bruno Windels 9ea0138ffd don't open room view when clearing room id 2021-05-11 13:10:21 +02:00
RMidhunSuresh 3830a95af2 Cache result in TextTile
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 16:03:14 +05:30
RMidhunSuresh 051771397c Fix bug in which links preceeded text
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:59:45 +05:30
RMidhunSuresh 3beaf88a8b Rename messageFormat to body
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:46:38 +05:30
RMidhunSuresh 070bc96186 Fallback to empty string if content is undefined
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:43:54 +05:30
RMidhunSuresh 577883a1d4 Refactor loop
Don't handle last element separately

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:31:33 +05:30
RMidhunSuresh 03b971d898 Added tests for new linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 12:55:39 +05:30
RMidhunSuresh 17be7c4f4d Add newline to message
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 22:10:50 +05:30
RMidhunSuresh fc3b391aa9 Use MessageBodyBuilder instead of linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:41:57 +05:30
RMidhunSuresh 55f2d79d07 Move newline handling to MessageBodyBuilder
- Also add a insert method to reflect new design.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:37:27 +05:30
RMidhunSuresh 787d438a74 Refactored Linkifier class into single function
Modified design so that linkify interacts with MessageBodyBuilder
through callbacks.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:30:11 +05:30
RMidhunSuresh dca649dfd4 Moved files into more appropriate locations
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 19:53:40 +05:30
RMidhunSuresh 06a6cae4af Rename MessageBodyBuilder to MessageBodyBuilder
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 19:50:26 +05:30
RMidhunSuresh 2f883d049c Return new message format instead of message text
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:20:07 +05:30
RMidhunSuresh 9ca0d93a01 Add tests for linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:18:45 +05:30
RMidhunSuresh 32fd1eb318 Implement linkifier
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:17:43 +05:30
RMidhunSuresh 3c46a07a1e Implement object format to represent chat messages
Every chat text message can be split into parts such as text, newline
and links.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:02:44 +05:30
Bruno Windels a8d4ee0dd6 different room view models don't need to initiate switching now
as this is triggered by observing the room status
2021-05-07 13:11:17 +02:00
Bruno Windels 6c58c61da9 move switching room view models to a dedicated observable
based on the observing the room status
2021-05-07 13:10:35 +02:00
Bruno Windels 644698aed7 remove room from room list when leaving 2021-05-06 14:15:47 +02:00
Bruno Windels e1d4c75d18 pass avatar sizes from view to view model rather than repeating there
and risk a mismatch resulting in too large/small image
2021-04-28 14:11:35 +02:00
Bruno Windels 15dfb6c202 clarify 2021-04-28 10:05:21 +02:00
Bruno Windels ef6f10c5a2 test for Path.replace 2021-04-28 09:53:44 +02:00
Bruno Windels 1c5b953026 hide non-joined rooms in left panel for now
until we support archiving/forgetting the room
2021-04-27 16:16:07 +02:00
Bruno Windels 396ec4dfd9 also in grid remove room id from nav path when refreshing room vm fails 2021-04-27 15:33:12 +02:00
Bruno Windels 799ea50c68 remove obsolete logging 2021-04-27 15:02:00 +02:00
Bruno Windels 32d9f6e830 expose inviter user id 2021-04-27 15:01:35 +02:00
Bruno Windels a95df54978 scale down inviter avatar 2021-04-27 15:01:20 +02:00
Bruno Windels 15fba7a07d missing semicolon 2021-04-27 14:43:26 +02:00
Bruno Windels 781235cb07 scale up room avatar 2021-04-27 14:43:13 +02:00
Bruno Windels f902f255a4 add roomDescription property 2021-04-27 14:42:37 +02:00
Bruno Windels b6573258fb always show inviter if present 2021-04-27 14:42:12 +02:00
Bruno Windels 87defbfb51 sort invites most recent first 2021-04-27 14:27:14 +02:00
Bruno Windels aaf4e79a73 make media repo available on invite 2021-04-27 11:01:33 +02:00
Bruno Windels f2d7f5e4da refresh vm when left room receives invite
clean up room vm switching in the process
2021-04-23 18:06:38 +02:00
Bruno Windels 2e9ddf9c2c prevent key collisions between rooms and invites before creating tile vm 2021-04-22 17:22:47 +02:00
Bruno Windels 20f4474eb6 missing semicolon 2021-04-21 18:13:29 +02:00
Bruno Windels 76933e51aa fix default avatar color being broken in room list 2021-04-21 17:48:40 +02:00
Bruno Windels 1cf49688d6 show invites at the top of the room list 2021-04-21 17:26:34 +02:00
Bruno Windels 9961d3e4fc unused code 2021-04-21 15:48:27 +02:00
Bruno Windels 7e2870acef wire up InviteViewModel in Session/RoomGridViewModel
and:
 - switch to room once accepted
 - close invite if rejected
2021-04-21 15:47:39 +02:00
Bruno Windels 0cc95f5083 first draft of InviteViewModel 2021-04-21 15:45:51 +02:00
Bruno Windels 16f275ca34 make pass-through props smaller 2021-04-21 15:34:35 +02:00
Bruno Windels a91a584201 not used anymore 2021-04-21 15:33:45 +02:00
Bruno Windels 9c19fa5c63 utility to remove room from path (with our without grid)
which will be used when rejecting an invite
2021-04-21 15:33:08 +02:00
Bruno Windels bb1c64e1ac add left panel tile view model for invites
and track in-progress state in Invite so it is shared by left panel
and open invite
2021-04-20 19:01:40 +02:00
Bruno Windels 1505f2d101
Merge pull request #307 from vector-im/hs/deault-hs-url
Allow specifying a custom defaultHomeServer
2021-04-01 13:03:46 +00:00
Bruno Windels 10e9e7388f expose checking pusher on homeserver in setting 2021-04-01 15:01:04 +02:00
Will Hunt 6bdf7f1ee9 Allow specifying a custom defaultHomeServer 2021-03-30 17:43:03 +01:00
Bruno Windels 7b9904e423 add UI in settings for push notifs status/enable/disable 2021-03-23 18:20:23 +01:00
RMidhunSuresh 3d1ddccbd8 Add previous name in name change announcement
- Fixes issue 269 in which the announcement generated when a member
  changes their name would show as :
  <new_name> changed their name to <new_name>
  instead of:
  <old_name> changed their name to <new_name>

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-03-19 23:28:50 +05:30
Bruno Windels 9506bf1b81 clean up video upload error handling 2021-03-10 13:43:55 +01:00
Bruno Windels a672b0c78a better error handling in video decoding 2021-03-10 13:40:11 +01:00
Bruno Windels 948249bb3d better error reporting for unsupported codecs when uploading 2021-03-10 13:39:34 +01:00
Bruno Windels 35e6dffd0b don't rely on mime-types to decide to use main url for thumbnail
so it does not break when clients forget to set the mimetype
2021-03-10 10:01:07 +01:00
Bruno Windels c6ff56a942 send video messages 2021-03-09 19:35:25 +01:00
Bruno Windels ee6f3e5457 render video messages 2021-03-09 19:35:10 +01:00
Bruno Windels 299fcfd4d1 extract base class from image tile to inherit from for video tile 2021-03-09 19:33:54 +01:00
Bruno Windels 2d4003379e Fix #97 2021-03-08 22:25:18 +01:00
Bruno Windels 961d0cb224
Merge pull request #249 from vector-im/bwindels/ui-sent-status
show message already as black when sent but no remote echo yet
2021-03-03 13:08:46 +00:00
Bruno Windels 6f6346d5c3 detect when hitting beginning of timeline when loading timeline 2021-03-02 19:29:55 +01:00
Bruno Windels 856001160b show message already as black when sent but no remote echo yet 2021-02-26 10:40:08 +01:00
Bruno Windels 1093895133 log opening timeline
also load the timeline when opening it in the room, so logging
starts in the room (and we don't need to pass the logger to Timeline)
and also API-wise it makes more sense to
not return uninitialized objects
2021-02-24 11:21:04 +01:00
Bruno Windels 29df61eb8a remove superfluous console log 2021-02-24 10:57:29 +01:00
Bruno Windels 59928432df better logs filename 2021-02-16 17:46:07 +01:00
Bruno Windels ee4a382578 revert this back 2021-02-16 15:38:43 +01:00
Bruno Windels 7dc3707871 add button to export logs 2021-02-16 15:27:24 +01:00
Bruno Windels e6c108c6e0 no need to copy it over in viewmodel 2021-02-12 18:06:14 +01:00
Bruno Windels 89599e9f87 WIP 2021-02-11 21:07:18 +01:00
Bruno Windels 2f0f168c6e show 'sending' while waiting for remote echo for filetile instead of unknown status 2020-11-20 16:38:16 +01:00
Bruno Windels 9ab81eea02 add setting for image compression level 2020-11-20 15:51:16 +01:00
Bruno Windels f7a07a9e79 adjust fileview/tile to pendingevent changes 2020-11-20 11:45:14 +01:00
Bruno Windels 8b8d06cf3e show error for attachments still need upload but missing after refresh 2020-11-19 14:42:29 +01:00
Bruno Windels 59a92bdf97 vm changes for improved image view 2020-11-18 20:10:05 +01:00
Bruno Windels f6dbb23f79 better error handling for file and picture upload 2020-11-18 20:07:31 +01:00
Bruno Windels 47147f2d46 progress bar for upload, add cancel button, no lightbox while uploading 2020-11-18 20:06:34 +01:00
Bruno Windels a930dec8db adjust ImageTile to state machine changes 2020-11-18 13:05:10 +01:00
Bruno Windels 91f7970d66 Merge branch 'master' into bwindels/upload-images 2020-11-16 19:31:04 +01:00
Bruno Windels d1a95c664d require space after /me 2020-11-16 19:29:29 +01:00
Bruno Windels 671e23a123 basic reporting of image upload progress in % 2020-11-16 15:10:44 +01:00
Bruno Windels 41738ad660 local echo for image tiles 2020-11-13 19:15:21 +01:00
Bruno Windels 8b82c991e7 wire up image uploads 2020-11-13 19:15:03 +01:00
Bruno Windels 41fb3e742e fix file upload attachment api changes 2020-11-13 19:13:35 +01:00
Bruno Windels d2a4242e5b support multiple attachments per event 2020-11-13 17:19:19 +01:00
Bruno Windels 6fd10b63e5 add device pixel ratio scaling while at it 2020-11-12 13:50:32 +01:00
Bruno Windels 8b16d8bc99 handle upload failures better 2020-11-11 13:06:03 +01:00
Bruno Windels fd9eccec4d support local echo in FileTile while uploading 2020-11-11 11:52:06 +01:00
Bruno Windels e2dd9b9f77 fix typos/refactor errors 2020-11-11 11:47:13 +01:00
Bruno Windels 65d02072c8 hook up UI 2020-11-11 11:47:05 +01:00
Bruno Windels 7088b2cdc8 support attachment upload and sending from room api 2020-11-11 10:47:55 +01:00
Bruno Windels 2cfffa015d WIP 2020-11-10 22:36:26 +01:00
Bruno Windels c65e8bea11 clean up properly 2020-11-10 19:05:50 +01:00
Bruno Windels 2d8000d11d file tile view 2020-11-10 17:50:53 +01:00
Bruno Windels a3ca0feda9 file tile view model 2020-11-10 17:50:38 +01:00
Bruno Windels 373a42c7a8 allow downloading plaintext attachments also, with or without cache 2020-11-10 17:49:48 +01:00
Bruno Windels a4f610ad3f support emotes 2020-11-10 15:13:31 +01:00
Bruno Windels fd498b3d24 no need to keep track of promise, fn is internally rate-limited now 2020-11-10 14:02:07 +01:00
Bruno Windels 44a2febce9 hook it up 2020-11-06 23:43:02 +01:00
Bruno Windels 9f453c0984 fix #152 2020-11-05 21:19:34 +01:00
Bruno Windels c9147e6b9a implement first draft of image lightbox 2020-10-30 15:20:11 +01:00
Bruno Windels 7d81306a49 return BufferHandles from the media repository
BufferHandles are platform specific handles to a buffer. On web,
they have a .blob and .url property.
2020-10-30 15:18:27 +01:00
Bruno Windels 68a0dd30ca add lightbox navigation and basic view & view model 2020-10-29 11:12:32 +01:00
Bruno Windels fe6e4464fd pass all viewmodel options to tile view models 2020-10-29 11:10:34 +01:00
Bruno Windels 862a0ba56b show image decryption error 2020-10-29 10:29:08 +01:00
Bruno Windels d1e78a735a show error in label for now 2020-10-29 10:18:05 +01:00
Bruno Windels 97c3a4b8f3 store error when loading encrypted images 2020-10-27 16:21:08 +01:00
Bruno Windels e7ff6decbf remove unneeded quotes 2020-10-27 16:20:41 +01:00
Bruno Windels 77dca5dd55 add update parameter when replacing tile 2020-10-27 16:19:36 +01:00
Bruno Windels fcc4c21ad2 filter mime types for blob urls 2020-10-27 14:35:33 +01:00
Bruno Windels ee1e62207c apply platform changes to decrypting images 2020-10-26 17:18:17 +01:00
Bruno Windels 3ed5ea8b0b Merge branch 'master' into bwindels/decrypt-images 2020-10-26 17:08:29 +01:00
Bruno Windels 1a518cdd28 more refactor fixes 2020-10-26 16:31:30 +01:00
Bruno Windels 03351d2e1f extract platform class to put all platform specific code in 2020-10-26 15:44:11 +01:00
Bruno Windels 2e0d1363c7 fix 2020-10-26 10:16:23 +01:00
Bruno Windels a6224135e3 extract blob url code to platform (WIP) 2020-10-26 10:14:46 +01:00
Bruno Windels cbd48aa528 only load main image when clicking thumbnail 2020-10-26 09:49:42 +01:00
Bruno Windels 3a6268f0c1 basic PoC of image decryption working
needs looooaaads of cleanup still
2020-10-23 17:25:11 +02:00
Bruno Windels df8eed14aa expose whether we already have a 4s key,to show the 4s setup in settings
it's a tri-state of null/false/true with null meaning we need to
go online first to know as only then we try to setup session backup
2020-10-23 12:57:47 +02:00
Bruno Windels 7459985e00 show storage usage in settings 2020-10-20 17:50:43 +02:00
Bruno Windels 1e1b254678 adjust prop names 2020-10-20 15:26:22 +02:00
Bruno Windels 601bdbb25d make session backup banner dismissable 2020-10-20 14:42:17 +02:00
Bruno Windels 6f09bd97b6 move setting view models in own dir / file 2020-10-20 12:10:41 +02:00
Bruno Windels 6f82d81f39 better session backup ui 2020-10-19 18:29:13 +02:00
Bruno Windels 1e599be142 Merge branch 'master' into bwindels/settings-screen 2020-10-19 13:45:17 +02:00
Bruno Windels 6bf8e976cb don't assign timelineVM before loaded, so prop doesn't return it
... if the binding happens to be evaluating (which it was during mount)

follow-up from bwindels/fix-crash-switch-rooms-too-fast
2020-10-19 13:39:19 +02:00
Bruno Windels f07b4a6554
Merge pull request #167 from vector-im/bwindels/fix-redirects
Fix back button not working when changing rooms
2020-10-19 11:01:07 +00:00
Bruno Windels cdcdc07c06 fix a crash when switching rooms before the messages have loaded
as we were not disposing the timeline view model
(but still not leaking though)
2020-10-19 12:57:21 +02:00
Bruno Windels 8357260133 fix an applying an url also pushing a copy of the url back on history
it should replace instead, as it is a redirect
2020-10-19 12:55:42 +02:00
Bruno Windels 974f77a71d WIP 2020-10-16 18:06:20 +02:00
Bruno Windels 90435a8fb7 semicolons, add them 2020-10-16 15:48:49 +02:00
Bruno Windels e599d8b6fa also clear 2020-10-16 15:47:13 +02:00
Bruno Windels 74e6d018f4 ensure url creation does not race on the current path of the navigation 2020-10-16 15:46:06 +02:00
Bruno Windels 5a30855227 rename urlRouter option in view models to urlCreator 2020-10-16 13:02:21 +02:00
Bruno Windels 788bce7904 reduce navigation boilerplate
this makes the url router adjust the url when the navigation path is
changed, instead of doing urlRouter.applyUrl() and
urlRouter.history.pushUrl().

This history field and applyUrl method on URLRouter are now private,
as the URLRouter should only be used to generate urls you want to
put in an <a href="..."></a>, anything else should use navigator.push()
2020-10-16 12:46:14 +02:00
Bruno Windels 7c2fc516bb restore last url if not providing a specific one on startup 2020-10-14 15:10:32 +02:00
Bruno Windels 4f46854362 add close session button 2020-10-14 14:54:46 +02:00
Bruno Windels d96f8adcc7 fix back button in room header not working 2020-10-14 14:53:52 +02:00
Bruno Windels 6ad7be8726 fix leaking left panel view model after closing session 2020-10-14 11:34:34 +02:00
Bruno Windels fa8bec0b56 fix room view model being leaked when closing session 2020-10-14 11:26:10 +02:00
Bruno Windels 3d327b0875 also open the initial room in the room list 2020-10-14 10:20:00 +02:00
Bruno Windels 2333a959a2 actually apply the /session/<id> url after login! 2020-10-13 17:10:28 +02:00
Bruno Windels ab354e9f38 update prop type 2020-10-13 15:19:54 +02:00