Commit graph

1309 commits

Author SHA1 Message Date
Scott Nonnenberg
98e7e65d25 Automatic session reset 2021-03-19 16:53:51 -04:00
Josh Perez
34285054f6
Manual download of attachments with no blurHash 2021-02-11 17:50:11 -08:00
Evan Hahn
ee97d1a0e0 Fix horizontal jitter on loading screen 2021-02-10 14:47:56 -08:00
Evan Hahn
e3f2b6b2de Replace "more" icon in header 2021-02-10 14:47:56 -08:00
Evan Hahn
2a43505277 On macOS, fix incoming call bar 2021-02-10 14:47:55 -08:00
Evan Hahn
f832b018fc
Fix alignment of "about" 2021-02-09 17:08:24 -08:00
Chris Gaszynski
06dd10844d
Fix blinking message options when hovering the message and moving a mouse horizontally. (#4944) 2021-02-04 14:45:47 -08:00
Evan Hahn
8f1bb6f087
Don't render links (or link previews) for blocked or unapproved conversations 2021-02-02 11:09:53 -06:00
Josh Perez
267ae80442
UI fixes for conversation details screen 2021-02-01 14:57:42 -08:00
Evan Hahn
ddebbf8121
Hide title bar on macOS 2021-02-01 12:01:25 -08:00
Evan Hahn
b672d33f25
Add margins to group call overflow area 2021-02-01 11:41:05 -08:00
Josh Perez
a096220990
Do not download media if in call 2021-01-29 14:58:28 -08:00
Scott Nonnenberg
a48b3e381e
Support for joining New Groups via invite links 2021-01-29 14:16:48 -08:00
Josh Perez
c0510b08a5
Introduce conversation details screen for New Groups
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
Co-authored-by: Sidney Keese <me@sidke.com>
2021-01-29 13:19:24 -08:00
Josh Perez
1b38db2d79
Fixes rendering of about bio 2021-01-27 19:18:50 -05:00
Evan Hahn
3ee69c211d
Bugfix: show images in quotes at right size 2021-01-27 15:34:22 -08:00
Evan Hahn
1da724edf2
Fix missing avatars in groups 2021-01-27 13:15:43 -08:00
Josh Perez
258bd55dd2 Show about info from contact profiles 2021-01-25 18:29:01 -08:00
Evan Hahn
932e44e3bf Don't let quote thumbnails get taller than the quote itself 2021-01-25 18:29:01 -08:00
Evan Hahn
b281420a40 Group calling: add speaker view 2021-01-25 18:28:59 -08:00
Evan Hahn
fbfcdbf84e Group calling: add overflow area 2021-01-25 18:28:59 -08:00
Evan Hahn
4c40d861cf Update link preview styles to better match designs 2021-01-25 18:28:59 -08:00
Evan Hahn
311e17c3b5 Fix "Contacts" header sizing in search results 2021-01-25 18:28:59 -08:00
Evan Hahn
b47d8d8b2b Use flexbox to lay out main header 2021-01-25 18:28:59 -08:00
Josh Perez
2529e208c1 Move confirmation_dialog_view to ts and React
* Moves confirmation_dialog_view to ts and React

* showConfirmationDialog API
2021-01-25 18:28:58 -08:00
Evan Hahn
92a35649da Make quote thumbnail full height 2021-01-11 14:23:09 -08:00
Evan Hahn
0a35489696
Fix layout of "this person is in your contacts" tooltip 2021-01-11 13:43:21 -08:00
Evan Hahn
b70b7a2cee Minor: remove unused expiration-related CSS 2020-12-17 12:12:52 -05:00
Evan Hahn
1225d45ade Incremental improvements to header 2020-12-17 12:12:52 -05:00
Evan Hahn
c87ffcd2e9
Call lobby: render local preview at camera's aspect ratio 2020-12-11 16:44:07 -08:00
Evan Hahn
819f5f3001
Windows: prevent PiP avatar from being dragged 2020-12-11 12:56:23 -06:00
Josh Perez
016fc62b8b
When group call is empty you are now full screen 2020-12-10 10:40:34 -08:00
Josh Perez
3aab6ac512
Fix CallingLobby/Screen from scrolling up conversation 2020-12-10 11:04:30 -05:00
Evan Hahn
561baf6309
Remove rounded corners from group calling PiP 2020-12-08 08:58:36 -08:00
Evan Hahn
0c039bf431
Add group calling events to the message timeline 2020-12-07 14:43:19 -06:00
Evan Hahn
a9367f48f1
Dark theme for calling device selection 2020-12-04 15:03:01 -08:00
Scott Nonnenberg
7aaa5ab294
Buttons: refactor mixins, new light style 2020-12-03 10:06:39 -06:00
Evan Hahn
d1866a0e5d
Group calling: tell RingRTC about our rendered resolutions for perf 2020-12-01 17:52:01 -08:00
Josh Perez
81cc8a1211
Group Calling: blocking participants
Co-authored-by: Evan Hahn <evanhahn@signal.org>
2020-12-01 19:30:25 -06:00
Evan Hahn
4c78a6c57f
Show toast when group call is reconnecting 2020-12-01 11:46:44 -05:00
Scott Nonnenberg
2b8ae412e0
New feature flag with ability to migrate GV1 groups 2020-12-01 10:42:35 -06:00
Evan Hahn
089a6fb5a2
Update call buttons to match mobile 2020-12-01 11:25:29 -05:00
Evan Hahn
e678ee031d Center local video in calling lobby 2020-11-30 13:54:12 -08:00
Evan Hahn
6fe4365d3c Minor: fix group call remote participant name background 2020-11-23 14:49:32 -05:00
Josh Perez
34574583b6 Group calling: fix participant hover state 2020-11-23 14:49:32 -05:00
Evan Hahn
daef1feae8 Add list of participants to the lobby, and add basic blocking for max participants 2020-11-23 14:49:32 -05:00
Josh Perez
f8b4862ed5 Participant list improvements 2020-11-23 14:49:32 -05:00
Josh Perez
7ca063a274 Scrollbar styles for participant list 2020-11-23 14:49:32 -05:00
Evan Hahn
6d53cb1740 Group calling: Peek into a group call 2020-11-23 14:49:32 -05:00
Josh Perez
6a6f8e28ce Group Calling: show participant name on hover 2020-11-23 14:49:31 -05:00
Josh Perez
5cc7c9a66a Group Calling: Improve mute state styling 2020-11-23 14:49:31 -05:00
Josh Perez
c6eafbb8d5 Fix tooltip bugs 2020-11-23 14:49:31 -05:00
Evan Hahn
6398a01852 Fix SCSS auto-formatting issue 2020-11-23 14:49:31 -05:00
Josh Perez
ad31e0dadc Group Calling: Icon fix + participant list scroll 2020-11-23 14:49:31 -05:00
Scott Nonnenberg
2c69f2c367 Support for GV1 -> GV2 migration 2020-11-23 14:48:12 -05:00
Evan Hahn
b44cabe6f9 Calling: mirror local video in PiP and lobby 2020-11-23 14:45:44 -05:00
Josh Perez
1f0c091e13 Group calling enhancements 2020-11-23 14:45:44 -05:00
Evan Hahn
c6e4c1d1a9 Add audio mute indicator for local preview and group remote participants 2020-11-23 14:45:44 -05:00
Evan Hahn
022c4bd0f4 Initial group calling support 2020-11-23 14:45:44 -05:00
Chris Svenningsen
24b70e6edd
CompositionInput: Proper RTL support 2020-11-20 16:03:16 -08:00
Chris Svenningsen
d593f74241
New contact popup when clicking on group member or avatar 2020-11-11 09:36:05 -08:00
Sidney Keese
5c810c65cc
Fix mention blot to enable native keyboard navigation
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-11-10 09:51:24 -08:00
Sidney Keese
91beef7797
Improve emoji blot and override clipboard behavior 2020-11-06 12:11:18 -08:00
Chris Svenningsen
fe298444fb
Bring up picker on backspace into mention 2020-11-05 13:18:42 -08:00
Evan Hahn
d1c63609a7
Add transparent gradient to ongoing call header 2020-11-04 11:56:25 -08:00
Evan Hahn
66da943f27
Call screen footer styling improvements 2020-11-04 11:56:03 -08:00
Chris Svenningsen
158ed4e455 Fix several composer bugs 2020-11-04 13:03:13 -06:00
Chris Svenningsen
53c89aa40f Send @mentions 2020-11-04 13:03:13 -06:00
Evan Hahn
8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Evan Hahn
a7854c6083 Fix missing dark mode overrides when in keyboard mode 2020-11-04 13:03:13 -06:00
Sidney Keese
5099a415f9 Allow scroller to be adjusted by quill
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-11-04 13:00:41 -06:00
Josh Perez
b50b14a825 Increase contrast of icons in composition area 2020-11-04 13:00:40 -06:00
Josh Perez
de45db255c Improve context menus 2020-11-04 13:00:40 -06:00
Sidney Keese
fbf93374c1 Replace Draft with Quill for composition area
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:00:40 -06:00
Josh Perez
7d29cb5edf Calling participants list 2020-11-04 13:00:40 -06:00
Scott Nonnenberg
a7c87dd119 ConversationListItem: Prevent vertical scrollbar in name area 2020-11-04 13:00:40 -06:00
Evan Hahn
e7fb38473d Update calling PiP icons 2020-11-04 13:00:40 -06:00
Scott Nonnenberg
04b7a29229 Modern profile sharing in 1:1 and GroupV1 groups 2020-10-26 15:48:44 -07:00
Josh Perez
fb7c1e9030 Use a diff type of blur one that does not flicker 2020-10-15 19:00:36 -04:00
Josh Perez
8446b2dc61 Calling: Match buttons in other clients 2020-10-15 14:35:51 -04:00
Josh Perez
59a181bd30 Calling: Lobby 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
d51a0b5ece GroupsV2: Better group invite behavior 2020-10-12 18:10:08 -04:00
Evan Hahn
c57f7f1cdb Call requests: caller 2020-10-12 18:10:08 -04:00
Josh Perez
a581f6ea81 Calling: Picture-in-picture 2020-10-12 18:10:08 -04:00
Chris Svenningsen
63b2644cb4 Read Pinned Chats
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:08 -04:00
Evan Hahn
313faab774 Outbound link previews 2020-10-12 18:10:08 -04:00
Josh Perez
2d5292b2f3 Render quoted mentions as text 2020-09-21 15:42:51 -04:00
Josh Perez
460ca0c585 @mention focus improvements 2020-09-21 15:42:51 -04:00
Josh Perez
9657c38987 @mentions receive support 2020-09-21 15:42:37 -04:00
Grace Shaw
9402287997
Fix debug log "Copy" button text wrapping for localization (#4507) 2020-09-21 13:22:30 -04:00
Scott Nonnenberg
7a02cc815d Support for new GroupV2 groups 2020-09-09 17:34:57 -07:00
Chris Svenningsen
b5e1e3a345 StagedAttachment handles its own text wrapping CSS 2020-09-01 17:10:18 -04:00
Evan Hahn
2e1e6e847a Widen the set of link previews which can be received 2020-09-01 17:10:18 -04:00
Chris Svenningsen
99f545b685 Image: Keep images from overflowing out of rounded corners
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-08-28 15:42:25 -04:00
Josh Perez
84e52c948b Mute conversations 2020-08-28 15:42:25 -04:00
Josh Perez
8ab1013f70 Calling: Device Selection 2020-08-28 15:42:25 -04:00
Evan Hahn
6f4965fd5a Minor: avatars should not be selectable 2020-08-28 15:42:24 -04:00
Evan Hahn
85b74a7806 Add gradient for call screen controls 2020-08-28 15:42:24 -04:00
Evan Hahn
aa43f322b3
Remove scrollbar from author title in quotes 2020-08-13 15:21:05 -07:00
Evan Hahn
a8090d8c66
A few CSS fixes for message bubbles 2020-08-12 15:47:20 -07:00
Josh Perez
6a68b37c83
New message state: Partially sent 2020-08-06 18:22:52 -07:00
Scott Nonnenberg
81cb7730a5
Message Requests improvements 2020-08-06 20:50:54 -04:00
Scott Nonnenberg
57308d3104
Fixes several bugs 2020-08-04 21:13:19 -04:00
Scott Nonnenberg
d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
d07b8e82b2 First-class profile name rendering 2020-07-30 13:27:41 -07:00
Josh Perez
5b83485c89 Update safety number change warning dialog 2020-07-30 13:10:05 -07:00
Peter Thatcher
d3a27a6442 Calling support 2020-07-30 13:08:47 -07:00
Ken Powers
83574eb067 Message Requests 2020-07-30 13:08:44 -07:00
Ken Powers
8244a7a98e
Remove the scroll bar on the about screen for Windows 2020-05-15 11:28:13 -07:00
Ken Powers
9d24f0db83
Use new "any emoji" icon in light mode 2020-05-08 10:29:42 -07:00
Noelle Leigh
95c9e7a6d4
Remove unnecessary CSS property from header (#4227)
This CSS rule was causing conversation header text to be truncated even
when there was enough whitespace to display the entire text at certain
zoom levels and platforms.

Removing the property did not introduce any UI regressions from this
author's testing.

Fixes: #3168
2020-05-05 14:32:42 -07:00
Ken Powers
0865a5481c Pre-alpha: React with any emoji, behind flag 2020-05-05 14:18:46 -07:00
Ken Powers
fb5316d2cf Composer: Improve expand tab hover behavior 2020-05-05 14:18:46 -07:00
Ken Powers
7bb7c0d1e1 Debug Log: Copy URL instead of open in browser 2020-05-05 14:18:46 -07:00
Josh Perez
dc81bf2bba Meet a11y standards for hover menus 2020-05-05 14:18:46 -07:00
Ken Powers
ba5e2ff6e5 Receive support for DOE messages 2020-04-29 17:42:41 -07:00
Josh Perez
d5925ac9d5 LeftPane: Measure content above list to calculate list size 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
ebb3864f58 New keyboard shortcuts: Ctrl+1..9, Ctrl+Tab/Ctrl+Shift+Tab
* New keyboard shortcuts: Ctrl+1..9, Ctrl+Tab/Ctrl+Shift+Tab

* Add new shortcuts to the shortcut guide
2020-04-29 17:42:41 -07:00
Scott Nonnenberg
71436d18e2 Include sender in group update notifications 2020-04-15 14:44:46 -07:00
Josh Perez
d88c21e5b6
Support ultramarine convo colors from Android linked devices 2020-04-15 14:39:48 -07:00
Josh Perez
50a18aebf1
Adjust colors for quote in composition area 2020-04-08 11:52:33 -07:00
Josh Perez
efd12028f0 Update quote reply color in iOS theme 2020-04-06 17:12:16 -07:00
Ken Powers
750e50812c Introduce dialog for long database migrations 2020-03-25 16:47:42 -07:00
Scott Nonnenberg
30e5051239 Eliminate clipped error icon for wide messages with errors 2020-03-25 16:47:42 -07:00
Josh Perez
e7a01f8270 Adjust iOS blue-tint and blue-shade 2020-03-24 17:03:22 -07:00
Josh Perez
d7b64cd986 Deprecate remaining color-signal-blue 2020-03-24 17:03:22 -07:00
Scott Nonnenberg
fe62407636 Sticker Modal: Ensure that very long author is truncated 2020-03-24 17:02:01 -07:00
Josh Perez
7423ab466b Search Results: Update contacts header height 2020-03-24 17:02:01 -07:00
Josh Perez
4830213a12 Sort by inbox position to match phone after link 2020-03-24 17:02:01 -07:00
Josh Perez
12457d47a3 Move to new logo and primary blue color 2020-03-24 17:01:51 -07:00
Scott Nonnenberg
9fdc7a7ece
Sticker modal: Handle wider text on install/uninstall button 2020-02-28 18:14:12 -08:00
Scott Nonnenberg
455c7449e3
Restore cursor styling to the default; i-bars for text, etc. 2020-02-24 17:06:00 -08:00
Ken Powers
9fc127f063
Fix gallery image alignment 2020-02-19 13:12:34 -08:00
Josh Perez
18fd44f504
Move all status/alert dialogs into the Left Pane 2020-02-12 13:30:58 -08:00
Ken Powers
fba401aee8
Add sanitize.css to all windows and styleguide 2020-02-07 12:19:35 -08:00
Ken Powers
38c7fa3da6
Storybook: Basic messages and messages with reactions 2020-02-07 11:07:22 -08:00
Ken Powers
6a9d8b86d8
Add "all" tab to ReactionViewer 2020-02-05 15:14:25 -08:00
Ken Powers
f4c60ba2ff
Reaction Viewer: Fix class names 2020-02-03 14:00:50 -08:00
Ken Powers
01d4aa0772
Update to new message bubble reactions design 2020-02-03 12:02:49 -08:00
Ken Powers
7461250caf
Indicate when reaction is from the current user 2020-01-29 13:58:50 -08:00
Ken Powers
153503efc5 Send Reactions 2020-01-23 15:57:37 -08:00
Ken Powers
6cc0f2abce Render incoming Reactions 2020-01-17 14:23:19 -08:00
Ken Powers
1c906e76f9 Handle non-square stickers via 'contain' 2020-01-15 11:19:56 -08:00
Scott Nonnenberg
4f50c0b093 Use 1x icon in View-once bubbles, explanatory expired toasts 2020-01-10 11:29:51 -05:00
Scott Nonnenberg
1bf9ca7233 Save attachments with macOS quarantine attribute
* Attachments: Always save file to downloads directory, show toast
* Add new build:dev command for casual builds
2020-01-09 14:57:43 -05:00
Ken Powers
65befde0fa Handle text overflow in sticker preview modal 2020-01-09 11:30:32 -08:00
Scott Nonnenberg
744d1b5295 Message bubble: Larger stickers; handle non-square aspect ratios
* Sticker picker: Handle non-square stickers
* Message bubble: Larger stickers; handle non-square aspect ratios
2020-01-09 14:27:49 -05:00
Scott Nonnenberg
84ea41958c Lighten in-progress spinner in light/ios theme 2020-01-09 09:43:47 -05:00
Scott Nonnenberg
a0e9bb80a9 View Once: In dark mode, expired bubbles match background color 2020-01-08 13:46:09 -05:00
Ken Powers
0d3b390129 Upgrade Prettier 2020-01-08 09:44:54 -08:00
Ken Powers
d14c8e2277 Don't warp stickers in the preview modal 2020-01-07 13:42:06 -08:00
Scott Nonnenberg
816605e29a Make outgoing View Once timestamp/timer visible in all themes 2020-01-07 16:19:48 -05:00
sha-265
5ca53baeae Add RTL support in conversation list message text (#3539)
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-01-06 16:56:50 -08:00
Scott Nonnenberg
60699e3eaf Lint fix 2019-12-18 11:48:49 -08:00
Ken Powers
f693768bcf Stickers: Ensure icon for 'blessed' pack is displayed 2019-12-18 11:36:20 -08:00
Ken Powers
11d47a8eb9 Sticker Creator 2019-12-17 12:28:46 -08:00
Ken Powers
d86e8ef7ec Add sticker introduction tooltip image 2019-12-17 10:30:03 -08:00
Scott Nonnenberg
e9f08c3da9 Bugfixes for v1.29
* If focus was set to document.body during archive, focus left pane
* Shortcut Guide: Add space between text and shortcut highlight
* Ensure that draft attachment can be closed with click on X button
* Move to keyDown event for user idle checking
* Additional resiliency around avatars; check for them on on-disk
* Increase timeouts to preserve websocket connection
* On startup, be resilient to malformed JSON in log files
* Don't crash if shell.openExternal returns an error
* Whenever we request a contact/group sync, also request block list
* Avatar popup: Ensure styling is mouse- and keyboard-appropriate
* MainHeader: Create popperRoot on demand, not on mount
* CompositionInput: Disable default Ctrl-/ shortcut
* Update libphonenumber
2019-12-03 15:02:50 -05:00
Scott Nonnenberg
2a0a73cfc1 Keyboard/mouse mode and keyboard support bugfixes 2019-11-21 14:16:06 -05:00
Scott Nonnenberg
0876bf7ae7 Visual bug fixes for v1.29 2019-11-21 10:17:55 -08:00
Scott Nonnenberg
5750412fda Hover/focus styles for embedded contacts, default action 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
20a892247f Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
Scott Nonnenberg
08dbff803a Update timer and group/profile icons 2019-11-11 13:03:15 -05:00
Ken Powers
bbb3b0467f Ensure second line of message body is never visible in LeftPane 2019-11-06 15:32:40 -08:00
Ken Powers
8659f1dd23 Fix a number of emoji bugs in message composer 2019-10-31 12:32:10 -07:00
Scott Nonnenberg
b659ddc68c Increase size of emoji 2019-10-30 12:12:30 -07:00
Scott Nonnenberg
3981099933 Decrease font sizes; increase author and quote body text sizes 2019-10-21 18:28:53 -04:00
Scott Nonnenberg
dd1f9b055f New AvatarPopup component 2019-10-17 14:22:07 -04:00
Scott Nonnenberg
195de96269 A few fixes after the recent design refresh
* Composition area scrollbar border now matches background color
* Search box: Don't move text when selected
* Left Pane: A little more space for descenders in message preview
* Draft quote: Increase contrast for the top-right X button
* Fix timer icons
2019-10-17 13:50:57 -04:00
Scott Nonnenberg
e59d095ffb Fix voice note recorder layout 2019-10-16 12:37:13 -04:00
Scott Nonnenberg
c81c25bb85 Update colors, icons, and fonts 2019-10-10 14:56:14 -07:00
Scott Nonnenberg
adf36546ea Ensure that conversation window is always full-height 2019-09-18 16:08:46 -07:00
Ken Powers
07689379cb Fix sticker preview modal scrolling 2019-09-06 12:12:49 -07:00
Ken Powers
c9fd199b48 Make bottom buffer constant for composition area 2019-09-04 15:06:12 -07:00
Ken Powers
db96500c80 Reduce composition area buffer height 2019-09-04 14:25:55 -07:00
Ken Powers
e567e25318 Move expand composition area button into a notch 2019-09-04 12:02:28 -07:00
Ken Powers
1d3fe4bbf3
Split search actions between discussions and messages 2019-09-04 10:46:28 -04:00
Scott Nonnenberg
1ab844674a Ensure out-of-band attachment updates make new top-level objects 2019-09-03 20:07:47 -04:00
Scott Nonnenberg
b19659f5ac Address beta feedback
* Use signal blue for search box focus outline
* Reduce debounce for draft saves
* Be less aggressive in our scrolling corrections
* Lightbox: Ensure that a tall image is still fully visible
* Fix spell checking after Electron API breaking changes
* Fix link preview image generation
* Message highlight: Move to border in signal blue
2019-08-22 17:11:36 -04:00
Scott Nonnenberg
90c2a97aa7 Address alpha feedback 2019-08-21 14:55:18 -07:00
Ken Powers
191f5860a8 Larger hit target for large composition mode toggle 2019-08-21 14:55:12 -07:00
Scott Nonnenberg
c39d5a811a Full-text search within conversation 2019-08-21 14:52:30 -07:00
Scott Nonnenberg
6292019d30 Virtualize search results - only render what's visible 2019-08-21 14:52:30 -07:00
Scott Nonnenberg
9d4f2afa5a Persist drafts 2019-08-21 14:52:30 -07:00
Scott Nonnenberg
5ebd8bc690 Virtualize Messages List - only render what's visible 2019-08-21 14:52:30 -07:00
Ken Powers
79bba52cfb Large Message Composition 2019-08-21 14:52:30 -07:00
Ken Powers
4b13c1e6ec Get rid of Roboto font override in composition input 2019-08-15 14:59:21 -07:00
Ken Powers
464361b2eb Animate in-conversation panels on show/hide 2019-07-25 09:24:03 -07:00
Ken Powers
7b645011c2 New composition area with emoji typeahead 2019-07-17 11:29:51 -07:00
Scott Nonnenberg
e62a1a7812 Receive support for View Once photos 2019-07-17 11:29:51 -07:00
Ken Powers
dcf6a5f59c Use individual images in emoji picker rather than a spritesheet 2019-06-17 11:46:42 -07:00
Scott Nonnenberg
9fd867fdd1 Support new 'requiredProtocolVersion' in DataMessage
* Add new requiredProtocolVersion field to DataMessage

* Message.requiredProtocolVersion, warning if version mot supported

* Update strings; limit width; new left pane preview text
2019-06-10 17:40:02 -04:00
Ken Powers
3a46f4c9a2 Upgrade emoji-datasource to 4.1.0 2019-06-06 11:28:47 -07:00
Ken Powers
0a16c905b9 Ensure long contact names do not push contents outside of the window 2019-05-31 14:52:22 -07:00
Ken Powers
a934759e66 Maintain last-known cursor position for inserting emojis 2019-05-30 16:37:28 -07:00
Scott Nonnenberg
3d06a815c9 Re-add light border around scrollbar thumb in light theme 2019-05-30 12:43:18 -07:00
Ken Powers
be5d0837f8 Support additional sticker states
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-29 11:01:32 -07:00
Ken Powers
0e9d549cf3 Fuzzy-Searchable Emoji Picker 2019-05-24 17:03:13 -07:00
Ken Powers
29de50c12a Stickers
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00
Ken Powers
8c8856785b New Light/Dark theme mixins 2019-05-16 15:43:29 -07:00
Scott Nonnenberg
c41bc53614 Refactor messages model; New timeline react components 2019-05-16 15:23:21 -07:00
Scott Nonnenberg
a450cdf528 Lint fixes for recent PRs 2019-04-08 11:30:19 -07:00
Opportunity
b2bdb73ce5 Add font fallback candidates for CJK characters (#2698) 2019-04-08 10:19:59 -07:00
Scott Nonnenberg
230c6dc284 Fix vertical sizing of left pane when switching inbox<->archive 2019-03-14 17:30:46 -07:00
Scott Nonnenberg
8c4d90df07 Send long text as an attachment instead of inline
Remove Android length warning

Handle incoming long message attachments

Show long download pending status in message bubble

Fix the width of the smallest spinner

Remove Android length warning from HTML templates
2019-03-14 17:30:46 -07:00
Scott Nonnenberg
6ffbc0ac06 Archive Conversation 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
d72f89d776 Render only visible conversations in left pane 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
b3ac1373fa Move left pane entirely to React 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
f5af063191 Improve spinner colors on top of medium-brightness backgrounds 2019-02-20 16:40:35 -08:00
Scott Nonnenberg
1d2c3ae23c Download attachments in separate queue from message processing 2019-02-12 16:34:21 -08:00
Scott Nonnenberg
a43a78731a Note to Self 2019-02-12 16:08:51 -08:00
Scott Nonnenberg
1a11c53a79 Dark Theme: Preserve blue background on app loading screen 2019-02-05 13:55:55 -08:00
Scott Nonnenberg
1d6f1cbcca Fix width of audio player when window is very narrow 2019-02-05 13:55:55 -08:00
Vanja Cosic
b26f6231d8 Get rid of the white flash when the app starts up (#3083)
* Prevent FOUC on startup, use Signal Blue instead

Instead of flashing a white background on startup, the app will show a blue background while everything is loading.

* Make sure tests are rendered on white background

* Use `icon_250.png` as the loading image

* Remove hardcoded 'Loading...' text from template
2019-02-05 09:25:05 -08:00
Scott Nonnenberg
813924685e Link Previews 2019-01-29 13:53:14 -08:00
Vanja Cosic
993c85b88c Make non-message components of UI non-selectable (#3078)
* Make sidebar non-selectable
* Prevent selection of avatar and context menu text in conversation view
* Make loading view and conversation placeholder view non-selectable
* Make settings view contents non-selectable
2019-01-22 14:08:00 -08:00
Scott Nonnenberg
0de54e125c Improve caption editor usability, new 'add attachment' affordance 2019-01-15 10:51:49 -08:00
Scott Nonnenberg
cba47668cd Increase contrast of typing indicator in iOS theme 2019-01-14 17:40:31 -08:00
Scott Nonnenberg
aab2a57b48 Some style and interaction fine-tuning 2019-01-14 17:40:31 -08:00
Scott Nonnenberg
2380f01e31 Ensure that too-wide messages don't overflow in small breakpoint 2019-01-10 10:22:52 -08:00
Scott Nonnenberg
985b1d6aa6 New staged attachments UI, multiple image attachments per message 2019-01-04 12:21:26 -08:00
sha-265
3f78a3c466 Fix text alignment for RTL quoted messages (#2980) 2018-12-14 09:27:46 -08:00
Scott Nonnenberg
79a861a870 Typing Indicators 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
99252702e1 Support receiving multiple images in one messages 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
2018-10-29 14:49:18 -07:00
Scott Nonnenberg
2b5f6d8b5e Ensure that blue group avatars are preserved in dark theme 2018-10-18 15:41:05 -07:00
Scott Nonnenberg
f21f83a163 Conversations have blue avatar backgrounds if no image provided 2018-10-18 11:39:23 -07:00
Scott Nonnenberg
7d9711ba65 Restore iOS-specific theme; colors on left in android theme 2018-10-11 11:42:18 -07:00
Scott Nonnenberg
ca61c9cb85 Warnings for dangerous files 2018-10-09 13:48:32 -07:00
Scott Nonnenberg
73f8722c8d Fix left border of to-be-sent quote 2018-10-09 13:47:36 -07:00
Scott Nonnenberg
15a8ffbff0 Fix timer colors 2018-10-09 13:47:36 -07:00
Scott Nonnenberg
102c2717cb Fix the overflow on message bubbles with long names/attachments 2018-10-01 18:18:37 -07:00
Scott Nonnenberg
a8e12d0771 Add user's avatar to the top left of the screen 2018-10-01 18:18:37 -07:00
Scott Nonnenberg
8f3e3b7aaf Update to new design for avatars: individual/group icons/colors
And two initials.
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
cf16ced91c Unread badge is now attached to avatar in left pane 2018-10-01 18:18:37 -07:00
Scott Nonnenberg
10c53bddb0 Move to new colors, switch incoming/outgoing colors 2018-10-01 18:18:37 -07:00
Scott Nonnenberg
bae4cecd22 iOS theme: higher visibility for embedded contact text 2018-09-06 13:36:32 -07:00
Scott Nonnenberg
8290146721 Show generic attachment for non-loading/too-large images/videos 2018-09-05 17:48:43 -07:00
Scott Nonnenberg
006700f9a2 Properly style countdown icon in iOS light/dark themes 2018-08-16 16:55:55 -07:00
Scott Nonnenberg
b3d56276a8 Conversations now better take advantage of wide screens 2018-08-15 17:00:32 -07:00
Scott Nonnenberg
fedfbed304 Copy quoted message contents into quote on receipt
Also:
  - visually distinguish any reference we couldn't verify on receipt
  - show toast on quote click if we can't scroll to message
  - toast visuals redesigned to match rest of app
2018-08-15 14:58:55 -07:00
Scott Nonnenberg
a247ffe5cf When iOS device has been linked, use iOS color scheme 2018-08-15 11:22:45 -07:00
Scott Nonnenberg
04e8ebb270 Style scrollbar 2018-08-09 10:11:12 -07:00
Scott Nonnenberg
d3629e53b3 Ensure that scroll down button is always on top of conversation 2018-08-08 09:40:28 -07:00
Scott Nonnenberg
bf63c7cc13 Ensure that safety number change banner is on top of messages 2018-08-07 17:43:48 -07:00
Scott Nonnenberg
9accf63fdb Ensure that the metadata overlay is on top of all overlays 2018-08-07 17:43:48 -07:00
Scott Nonnenberg
e2e575210f Fix lint issue in _modules.scss 2018-08-06 18:22:30 -07:00
Scott Nonnenberg
1d18c5686d Fix problems with transparency on some macOS computers 2018-08-06 18:08:10 -07:00
sha-265
381cb06be8 Fix text alignment for RTL messages (#2597) 2018-08-03 09:26:36 -07:00
Scott Nonnenberg
6b78f2582b Fix styling of the 'Start conversation...' search result item 2018-08-02 17:19:56 -07:00
Scott Nonnenberg
b0b1e9b8e3 Message: video/image attachment borders inline, on top of image
Otherwise, its transparency will result in a distracting line between it
and its attached message bubble
2018-08-02 17:19:56 -07:00
Scott Nonnenberg
6155be6db4 Dark Mode: Fix color/layout of the 'you are disconnected' warning 2018-08-01 12:39:13 -07:00
Scott Nonnenberg
3105b77475 Migrate to SQLCipher for messages/cache
Quite a few other fixes, including:
  - Sending to contact with no avatar yet (not synced from mobile)
  - Left pane doesn't update quickly or at all on new message
  - Left pane doesn't show sent or error status

Also:
 - Contributing.md: Ensure set of linux dev dependencies is complete
2018-07-31 17:08:45 -07:00
Scott Nonnenberg
f38647dfa5 ContactListItem: Add spacing above and below (for 'show members') 2018-07-27 10:55:10 -07:00
Scott Nonnenberg
e80857562a Disappearing messages: show 'disabled' instead of 'set to off' 2018-07-27 09:15:57 -07:00
Scott Nonnenberg
7dd931fb7e ConversationHeader: centered title, ConvoListItem: unbold name 2018-07-27 09:15:57 -07:00
Scott Nonnenberg
caf6adadf0 Fix embedded contacts and contact detail in dark theme 2018-07-21 14:52:43 -07:00
Scott Nonnenberg
643739f65d
Responding to feedback on the updated visuals (#2549)
* Conversation List Item: timestamp bold only when convo has unread

* Preserve the positioning of overlays on re-entry into convo

* ConversationListItem: Handle missing and broken thumbnails

* Shorten timestamp in left pane for better Android consistency

* Update convo last updated if last was expire timer change

But not if it was from a sync instead of from you or from a contact.

* Make links in quotes the same color as the text

* MediaGridItem: Update placeholder icon colors for dark theme

* Ensure turning off timer shows 'Timer set to off' in left pane

* ConversationListItem: Show unread count in blue circle

* Add one pixel margin to blue indicator for text alignment

* Ensure replies to voice message can bet sent successfully
2018-07-20 16:37:57 -07:00
Scott Nonnenberg
ffa2bc05c5 Fix left pane timestamp alightment on platforms with scrollbars 2018-07-18 19:40:07 -07:00
Scott Nonnenberg
38be08014b Make text entered in search box higher-contrast 2018-07-18 19:40:07 -07:00
Scott Nonnenberg
7b7a759cdd Dark theme: Brighten icons on image overlay for visibility 2018-07-18 19:40:07 -07:00
Scott Nonnenberg
66bd6c826d Fix MediaGallery handling of videos - show thumbnail and overlay 2018-07-18 19:40:07 -07:00
Scott Nonnenberg
c2c8dc5090 Make quote props consistent, white circle dark theme play overlay
Prevents errors in the logs about attempting to load images from their
relative patn instead of the absolute path. No effect on the user.
2018-07-18 12:20:14 -07:00
Scott Nonnenberg
0ac3517d51 On click of search result, show and focus conversation
Also: remove too-verbose logging on contact sync
2018-07-18 11:40:10 -07:00
Scott Nonnenberg
fdc7c85876 A couple small fixes: quotes, ConversationListItem, MessageDetail
- Load quoted message even with local thumbnail
- A bit more space for message in ConversationListItem
- Make the message detail screen scrollable
2018-07-18 10:42:06 -07:00
Scott Nonnenberg
db91560990 Fixes for quotes/schema upgrade, optimize media gallery load
Also: Fix for contact detail page; didn't show back button
2018-07-18 09:38:42 -07:00
Scott Nonnenberg
60f61c804b Fix reply to message w/attachment, dark theme quoted attachment 2018-07-17 20:40:19 -07:00
Scott Nonnenberg
675e34fc8d New React component: ConversationListItem, installed in left pane
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
2018-07-17 20:25:55 -07:00
Scott Nonnenberg
7e2d7b5e60 Media Gallery: Support for dark theme 2018-07-17 17:15:34 -07:00
Scott Nonnenberg
3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
2018-07-17 15:58:07 -07:00
Scott Nonnenberg
dc11db92f9 New React component: Message
Also: Use react to render contects on the 'show group members' screen
2018-07-17 15:53:33 -07:00
Scott Nonnenberg
fc5c52fbdf Remove iOS theme in favor of plain light/dark themes 2018-07-17 15:45:40 -07:00
Scott Nonnenberg
d8e5e5fcf2 Open separate windows with theme, update settings theme on change 2018-07-13 08:57:30 -07:00
Scott Nonnenberg
ad4387803b New media permission, show dialog when not enabled for voice msg
UI now in separate renderer:
  - the permissions popup
  - settings dialog
  - debug log dialog
  - about window

Couple bug fixes:
  - About Window: Fix 'escape' to close window
  - Remove outdated dist/copy tasks from Gruntfile

Eslintified settings_view.js
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
445839770b
Fix width of message detail screen (#2478) 2018-06-21 12:02:50 -07:00
Scott Nonnenberg
7cebeb20f5
iOS theme: Links in quotes now blue (not white) for visibility (#2435) 2018-06-14 15:18:08 -07:00
Scott Nonnenberg
ac004c07bc Remove broken stylesheets symlink 2018-05-25 14:28:37 -07:00
Scott Nonnenberg
cfe0bd0e79 Move to npm for several dependencies
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
548c8e69cf Emojification now all done with react via a few new components
Three locations were changed:
  1. a group update, which lists a set of contacts
  2. the contact name in the left pane
  3. the conversation title

Three new components were added to window.Signal.Components to support
these scenarios, respectively:
  1. Emojify
  2. ContactName
  3. ConversationTitle

Note that there are a number of other places in the app that should be
emojified, but never have been before. Essentially any place that a
contact name might be shown. A non-exhaustive list:
  - Show group members
  - Show safety number
  - Verified change notification
  - Disappearing timer change notification
  - Contact verification notification
  - Quote contact name
2018-05-23 16:26:47 -07:00
Scott Nonnenberg
d54aedcefa
A few fixes for the contact detail screen (#2374)
* Only show 'send message' on contact detail when user has account

* Make contact detail headers visible in dark mode

* Fix vertical scrolling for very large contact in detail pane

* Fix a couple comment typos
2018-05-23 12:15:46 -07:00
Scott Nonnenberg
4e5c8965ff Move to react for newlines, emoji, and links in message body 2018-05-14 16:09:37 -07:00
Scott Nonnenberg
375dc62c4a scss mixin: remove-button-styles -> button-reset 2018-05-08 13:14:28 -07:00
Scott Nonnenberg
b4bf9733ad Move CSS to remove button styling into mixins.scss 2018-05-08 09:51:19 -07:00
Scott Nonnenberg
cdfe4d76b1 Update contacts for android dark theme 2018-05-07 19:30:50 -07:00
Scott Nonnenberg
202f5d5b7a Update contact bubbles for ios theme 2018-05-07 19:30:50 -07:00
Scott Nonnenberg
37821e5a1b Wire up all contact behaviors, refactor Contact type/selector 2018-05-07 19:11:35 -07:00
Scott Nonnenberg
41be7f126b Visuals for embedded contacts as well as contact detail screen 2018-05-07 19:09:55 -07:00
Nick Weingartner
c8be066391 Update hover color for horizontal dots in android dark theme 2018-05-07 18:37:12 -07:00
Daniel Gasienica
9a74addc61 Prepend comments for infix comments in argument list 2018-05-04 17:22:00 -04:00
Daniel Gasienica
557693e14c Prettier: Format all stylesheets 2018-05-04 16:32:08 -04:00
Daniel Gasienica
55569adfb0 Fix media gallery layout in iOS theme 2018-04-27 16:31:43 -04:00
Daniel Gasienica
4d01264c09 Fix layout of media gallery 2018-04-27 16:31:43 -04:00
Daniel Gasienica
4c0c55082f Move navigation controls to the bottom 2018-04-27 16:31:43 -04:00
Scott Nonnenberg
1bc8452337 Remove the outline for the scroll down button
In the future we'll re-enable this for keyboard navigation. For now,
it's really distracting.
2018-04-26 12:04:34 -07:00
Scott Nonnenberg
27a30b3267 Respond to PR feedback
- makeThumbnail -> makeImageThumbnail
- duplicate 'display: flex'
- remove no-longer-applicable comment
2018-04-26 09:50:13 -07:00
Scott Nonnenberg
ac0b50d20f
Generate thumbnails for new video attachments, video quotes 2018-04-25 18:32:46 -07:00
Daniel Gasienica
657a2d6149 Document the use of CSS vs inline styles 2018-04-25 15:24:52 -04:00
Daniel Gasienica
9abf1f0fcd Use dash-case for CSS class names 2018-04-25 15:24:52 -04:00
Daniel Gasienica
2cb0b0aeb1 Add arrow controls 2018-04-25 15:24:51 -04:00
Daniel Gasienica
246e0ca87b Add note about inline styles 2018-04-25 15:24:51 -04:00
Daniel Gasienica
2474b42198 Port lightbox icon buttons 2018-04-25 15:24:51 -04:00
Daniel Gasienica
4a5a2cb5c1 Replace Backbone with React lightbox 2018-04-25 15:24:51 -04:00
Scott Nonnenberg
7038202a1a
Fix rendering issue with iOS quote preview (in composition mode) 2018-04-25 11:51:30 -07:00
Scott Nonnenberg
43ed2c67e1
Add border-radius to iOS quoted-message to fix MacOS render bug 2018-04-24 14:08:42 -07:00
Scott Nonnenberg
6599535cbb
Clear border-radius at bottom of quote in iOS theme 2018-04-23 16:37:28 -07:00
Scott Nonnenberg
c02860af5c
Responding to pull request review feedback
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
  - remove extraneous logging
  - fix indentation
  - upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
2018-04-23 15:36:47 -07:00
Scott Nonnenberg
bd17c298a2
Android Dark theme: refactor, increase contrast in outgoing 2018-04-20 17:08:20 -07:00
Scott Nonnenberg
bd88407b78
iOS theme: Permanant background to attachment part of bubble
(this is to handle a quote making bubble wider, but a narrow image)
2018-04-20 16:02:33 -07:00
Scott Nonnenberg
770410ee88
Remove borders that didn't render well
Android: The gray border around the quote didn't interact well with the
image, which needed to overlap the border. For now we'll just remove the
border.

Also made the thumbnail image 2px bigger because I noticed that in some
cases there was a partial-pixel space below the image (where the rest of
the quote was making the container bigger).

iOS: The gray border around outgoing quotes was fading into the
background gray color, making the quote look a tiny bit more narrow than
the main message. Removed the border.
2018-04-20 15:24:02 -07:00
Scott Nonnenberg
37cac717cb
Use fit: cover for non-square thumbnails, better movie icon
Also: Match Android's X button in the quote composition area
2018-04-20 15:23:55 -07:00
Scott Nonnenberg
12257e1560
MessageView: Show menu w/ 'reply to message' on triple-dot click 2018-04-20 15:23:55 -07:00
Scott Nonnenberg
f4d9ab8ba0
Put quote preview in text box for Android, above it in iOS 2018-04-20 15:23:54 -07:00
Scott Nonnenberg
c71dcf0139
Show current quoted message above composition field
Note that substantial changes will be required for the updated Android
mockups, putting the quotation into the text box next to the attachment
preview.
2018-04-20 15:23:51 -07:00
Scott Nonnenberg
d29162f3b6
CSS Refactor: Pull quote CSS out from parent classes
This is to prepare for it to be shown in the message composition area.
2018-04-20 15:23:50 -07:00
Scott Nonnenberg
26e4e97592
Tighten up CSS
- Remove extra padding at top of Android bubbles, via sibling selector
- Don't include .attachments, .quote-wrapper, .content in bubble unless
  we actually need them. This allows for sibling selectors.
- This is a different technique for adding the ReactWrapperView for
  quotes - it is now appended to the DOM instead of attaching to
  something already in the DOM. This allows us to use .remove(), so it's
  a bit cleaner.
- Users of ReactWrapperView can now specify tagName and className
2018-04-20 15:23:47 -07:00
Scott Nonnenberg
30957341e4
Show three dot icon next to message on hover
But only if it doesn't have an error.

Also: reformatted message template in legacy_templates.js to match what
is in background.html for easier diffing.
2018-04-20 15:23:47 -07:00
Scott Nonnenberg
6a4acc813c
iOS: Center images in bubble, shrink bubble down to image size 2018-04-20 15:23:46 -07:00
Scott Nonnenberg
bb9859ca61
Make iOS quote theming apply in the message detail screen 2018-04-16 12:30:28 -07:00
Scott Nonnenberg
d8d803d36d
Center and limit the size of non-square thumbnails in quotes 2018-04-13 18:10:52 -07:00
Scott Nonnenberg
3bbbf65a6b
Fix iOS: tail, blue partial border, extra attachment space
Turns out that display: inline on the img tag resulted in a mysterious
3px of space added below it.
2018-04-13 18:10:52 -07:00
Scott Nonnenberg
c283ba1a12
Remove pointer cursor when clicking on quote won't do anything 2018-04-13 18:10:51 -07:00
Scott Nonnenberg
6413e75f82
iOS: Handle portrait image that doesn't fill message box
It would have rounded corners inside of the bubble, which is not what
we want. This makes the bubble itself have the rounded corners, and then
it cuts off anything that would extend past its edges.
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
f255cbcbe3
Move to white background for ios replies, hairline bottom border 2018-04-13 18:10:50 -07:00
Scott Nonnenberg
557ea55531
Quotes/iOS: Fix bug where large quote content would smoosh icon 2018-04-13 18:10:50 -07:00
Scott Nonnenberg
b458c7d449
android-dark: Constrain light play icon to with peer image 2018-04-13 18:10:49 -07:00
Scott Nonnenberg
bdaebc24ae
A few tweaks for the android-dark theme 2018-04-13 18:10:49 -07:00
Scott Nonnenberg
087dd0f758
Support for iOS theme 2018-04-13 18:10:49 -07:00
Scott Nonnenberg
644bc9e6fb
Fix problem of squished quote icons and images 2018-04-13 18:10:49 -07:00
Scott Nonnenberg
127a90c4f6
Removed unused aspect ratio mixin 2018-04-13 18:10:49 -07:00
Scott Nonnenberg
1cc0633786
Full support for quotations in Android theme 2018-04-13 18:10:48 -07:00
Scott Nonnenberg
21bf02c94d
Fixed examples in Quote.md, rough Android visuals 2018-04-13 18:05:44 -07:00
Scott Nonnenberg
ae043bf239
In iOS theme, join attachment bubble with caption bubble 2018-04-13 18:05:42 -07:00
Daniel Gasienica
696b23a3e0 Ensure first message is not cut off in iOS theme
Without this, the user couldn’t scroll all the way up and  the first message was
cut off as panel extended below header.
2018-03-20 14:31:43 -04:00
Daniel Gasienica
685f05a99d Ensure conversation panel fills screen vertically
Required addition to the following change:
ef041b29d0
2018-03-19 18:10:07 -04:00
Scott Nonnenberg
ef041b29d0
Remove scrollbar when placeholder is showning when in iOS theme 2018-03-14 14:42:15 -07:00
Scott Nonnenberg
a824e2b42d
Start moving towards semantic CSS class names 2018-03-14 14:42:14 -07:00
Scott Nonnenberg
2ffabdcdd9
Delete data screen: Remove scrollbar when no convo selected
Turns out that the welcome screen had a min-height which caused weird
things when you take the window down to minimum height. It looked
particularly bad with the new full-screen delete data confirmation
screen.
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
383e02edc4
New section in settings screen, full-screen 'are you sure?' 2018-03-14 14:42:13 -07:00
Daniel Gasienica
acf48595f3 Show log in a monospaced font
Makes it easier for users to edit it as timestamps, etc., better align.
2018-03-08 16:21:27 -05:00
Scott Nonnenberg
59bee6690d
Choose device name screen: Finish by pressing enter (#2085) 2018-03-02 15:34:51 -08:00
Scott Nonnenberg
c87a035f1a
Show View -> Debug on OSX, ensure Debug Log is visible (#2089)
* Ensure debug log is visible during registration/import

* Restore the proper View menu on MacOSX
2018-03-01 12:04:13 -08:00
Scott Nonnenberg
426dab85a2
New design for import/install, 'light' import (#2053)
- A new design for the import flow. It features:
  - Icons at the top of every screen
  - Gray background, blue buttons, thinner text
  - Simpler copy
- A new design for the install flow. It features:
  - Immediate entry into the QR code screen
  - Animated dots to show that we're loading the QR code from the server
  - Fewer screens: 1) QR 2) device name 3) sync-in-progress
- When not set up, the app opens directly into the install screen, which has been streamlined. The `--import` command-line argument will cause the app to open directly into the import flow.
- Support for two different flavors of builds - the normal build will open into the standard registration flow, and the import flavor will be exactly the same except during setup it will open directly into the import flow.
- A new design for the (dev-only) standalone registration view
- When these install sequences are active, the OS File menu has entries to allow you to switch the method of setup you'd like to use. These go away as soon as the first step is taken in any of these flows.
- The device name (chosen on initial setup) is now shown in the settings panel
- At the end of a light import, we hand off to the normal device link screen, starting at the QR code. On a full import, we remove the sensitive encryption information in the export to prevent conflicts on multiple imports.
- `Whisper.Backup.exportToDirectory()` takes an options object so you can tell it to do a light export.
- `Whisper.Backup.importFromDirectory()` takes an options object so you can force it to load only the light components found on disk. It also returns an object so you can tell whether a given import was a full import or light import.
- On start of import, we build a list of all the ids present in the messages, conversations, and groups stores in IndexedDB. This can take some time if a lot of data is in the database already, but it makes the subsequent deduplicated import very fast.
- Disappearing messages are now excluded when exporting
- Remove some TODOs in the tests
2018-02-22 10:40:32 -08:00
Scott Nonnenberg
d503d1ace3
Remove built assets from repo, updates to docs + GH templates (#1955)
* Revamp issue and pull request templates, other docs tweaks

`yarn test` now runs all of our tests.

* Remove generated files from the repository

* Update to new Signal support URL

* Prevent the 'Test failed 2 == 1' from test-release in CI

* Another attempt to fix grunt test-release on Appveyor

* grunt test-release: Fail build if test fails

* Lint fix, and move jshint earlier in CI process
2018-01-09 15:31:23 -08:00
Scott Nonnenberg
72971a365f
manifest.css catch-up 2017-12-19 17:19:21 -08:00
Scott Nonnenberg
2430ee00d4
Emoji: Eliminate unused images, make sure panel clicks add emoji (#1849)
* Emoji: Ensure that all clicks work by using emoji data directly

* Eliminate a number of unused emoji images from final build

* Re-add the generic sheets directory, which we partially filter
2017-12-04 10:19:35 -08:00
Lilia
9c7ba87d6a Add support for Emoji 5 (#1797)
* Add support for Emoji 5

Update to latest emoji-datasource and emoji-js and switch to an up-to-date fork
of emoji-panel.

// FREEBIE

* Dark theme support for emoji-panel

Fixes #1763

// FREEBIE
2017-11-27 15:54:59 -08:00
Lilia
fb931b4733 Emoji picker (#1608)
* Add emoji button and popup panel

This integrates a simple third party emoji panel with a few css overrides to
correct some relative paths and colors.

The trickiest thing about this is ensuring we don't break the layout, which is
acheived through precise control over the panel's height, and prodigious calls
to updateMessageFieldSize.

// FREEBIE

* Don't close emoji panel on click, do close on send

To better facilitate multiple emoji entry.

// FREEBIE

* Make panel emojis bigger and higher resolution

// FREEBIE

* Move paperclip button to the right of the microphone

This makes our bottom-bar button arrangement more comfortable and consistent
with Android.

// FREEBIE

* Move emoji picker padding to inner container

* Insert emojis at cursor position

Don't just append to the end like a n00b! Also handle selected text correctly.
https://stackoverflow.com/questions/11076975

// FREEBIE

* A few visual tweaks to reduce visual complexity of emoji panel

- No gray buffer on the right side of the emoji panel
- No gray buffer between message compose text box and emoji window
- The scroll bar for the emojis is the same as our normal scrollbars
2017-10-30 13:54:55 -07:00
Scott Nonnenberg
c2fa61d0b4 Make .status CSS rules more specific to fix onboarding text (#1547)
FREEBIE
2017-10-06 17:04:39 -07:00
Lilia
52cc8355a6 Feature: Blue check marks for read messages if opted in (#1489)
* Refactor delivery receipt event handler

* Rename the delivery receipt event

For less ambiguity with read receipts.

* Rename synced read event

For less ambiguity with read receipts from other Signal users.

* Add support for incoming receipt messages

Handle ReceiptMessages, which may include encrypted delivery receipts or read
receipts from recipients of our sent messages.

// FREEBIE

* Rename ReadReceipts to ReadSyncs

* Render read messages with blue double checks

* Send read receipts to senders of incoming messages

// FREEBIE

* Move ReadSyncs to their own file

// FREEBIE

* Fixup old comments on read receipts (now read syncs)

And some variable renaming for extra clarity.

// FREEBIE

* Add global setting for read receipts

Don't send read receipt messages unless the setting is enabled.
Don't process read receipts if the setting is disabled.

// FREEBIE

* Sync read receipt setting from mobile

Toggling this setting on your mobile device should sync it to Desktop. When
linking, use the setting in the provisioning message.

// FREEBIE

* Send receipt messages silently

Avoid generating phantom messages on ios

// FREEBIE

* Save recipients on the outgoing message models

For accurate tracking and display of sent/delivered/read state, even if group
membership changes later.

// FREEBIE

* Fix conversation type in profile key update handling

// FREEBIE

* Set recipients on synced sent messages

* Render saved recipients in message detail if available

For older messages, where we did not save the intended set of recipients at the
time of sending, fall back to the current group membership.

// FREEBIE

* Record who has been successfully sent to

// FREEBIE

* Record who a message has been delivered to

* Invert the not-clickable class

* Fix readReceipt setting sync when linking

* Render per recipient sent/delivered/read status

In the message detail view for outgoing messages, render each recipient's
individual sent/delivered/read status with respect to this message, as long as
there are no errors associated with the recipient (ie, safety number changes,
user not registered, etc...) since the error icon is displayed in that case.

*Messages sent before this change may not have per-recipient status lists
and will simply show no status icon.

// FREEBIE

* Add configuration sync request

Send these requests in a one-off fashion when:
  1. We have just setup from a chrome app import
  2. We have just upgraded to read-receipt support

// FREEBIE

* Expose sendRequestConfigurationSyncMessage

// FREEBIE

* Fix handling of incoming delivery receipts - union with array

FREEBIE
2017-10-04 15:28:43 -07:00
Lilia
4449a5f110 Upgrade emoji support (#1482)
* Upgrade emoji deps and move to node_modules

Add support for Emoji 3.0 and switch from bower to yarn for managing emoji
dependencies.

// FREEBIE

* Delete old emoji deps

// FREEBIE

* Don't copy emoji on windows

It is no longer necessary since the symlinked image dir is gone.

// FREEBIE

* Update emoji test

// FREEBIE

* Fix emoji tests; remove all overrides of emoji-js functions

FREEBIE
2017-09-15 13:22:11 -07:00
Scott Nonnenberg
48f625c392
Move app theming from index to app view (#1479)
Apply theming one level higher so it applies to the debug log.

// FREEBIE
2017-09-14 17:48:15 -07:00
Lilia
f698d0bc51
Better install view error handling (#1472)
If linking fails because an http request didn't connect, show a message and
allow the user to start over.

// FREEBIE
2017-09-14 17:04:03 -07:00
Lilia
ae190fed44
Profiles (#1453)
* Add AES-GCM encryption for profiles

With tests.

* Add profileKey to DataMessage protobuf

// FREEBIE

* Decrypt and save profile names

// FREEBIE

* Save incoming profile keys

* Move pad/unpad to crypto module

// FREEBIE

* Support fetching avatars from the cdn

// FREEBIE

* Translate failed authentication errors

When AES-GCM authentication fails, webcrypto returns a very generic error. The
same error is thrown for invalid length inputs, but our earlier checks in
decryptProfile should rule out those failure modes and leave us safe to assume
that we either had bad ciphertext or the wrong key.

// FREEBIE

* Handle profile avatars (wip) and log decrypt errors

// FREEBIE

* Display profile avatars

Synced contact avatars will still override profile avatars.

* Display profile names in convo list

Only if we don't have a synced contact name.

// FREEBIE

* Make cdn url an environment config

Use different ones for staging and production

// FREEBIE

* Display profile name in conversation header

* Display profile name in group messages

* Update conversation header if profile avatar changes

// FREEBIE

* Style profile names small with ~

* Save profileKeys from contact sync messages

// FREEBIE

* Save profile keys from provisioning messages

For standalone accounts, generate a random profile key.

// FREEBIE

* Special case for one-time sync of our profile key

Android will use a contact sync message to sync a profile key from Android
clients who have just upgraded and generated their profile key. Normally we
should receive this data in a provisioning message.

// FREEBIE

* Infer profile sharing from synced data messages

* Populate profile keys on outgoing messages

Requires that `profileSharing` be set on the conversation.

// FREEBIE

* Support for the profile key update flag

When receiving a message with this flag, don't init a message record, just
process the profile key and move on.

// FREEBIE

* Display profile names in group member list

* Refresh contact's profile on profile key changes

// FREEBIE

* Catch errors on profile save

// FREEBIE

* Save our own synced contact info

Don't return early if we get a contact sync for our own number

// FREEBIE
2017-09-14 17:04:00 -07:00
Scott Nonnenberg
ba347744ff
Import: choice on first startup, workflow, ported to Node.js fs API
FREEBIE
2017-09-14 17:02:43 -07:00
Scott Nonnenberg
eaf31705cc
A number of fixes for loading screen, recent rebase
FREEBIE
2017-09-14 16:53:52 -07:00
Scott Nonnenberg
5526958c52
manifest.css catch-up
FREEBIE
2017-09-14 16:53:51 -07:00
Scott Nonnenberg
c1dd858922
Fix warning icon in message detail page - use relative path
FREEBIE
2017-09-14 16:53:51 -07:00
Scott Nonnenberg
649248a537
Fix paths for all newly-added icons
FREEBIE
2017-09-14 16:53:49 -07:00
lilia
4bb9c5ae32
Fix scroll to bottom arrow icon 2017-09-14 16:53:49 -07:00
lilia
333ed3bc17
Fix file icons on android theme
In android (non dark) theme incoming file attachments were all rendering the
generic file icon instead of media-type-specific icons.

// FREEBIE
2017-09-14 16:53:48 -07:00
lilia
a2b2bd4bf3
Fix relative paths
// FREEBIE
2017-09-14 16:53:46 -07:00
lilia
81d8b78d05
Switch to grunt-sass + node-sass-import-once
These modules together allow us to import css files from third party
components without maintaining symlinks that essentially rename them as
sass partials, which doesn't work on windows.

// FREEBIE
2017-09-14 16:53:44 -07:00
lilia
2ae48ad9cd
Use relative path for file.svg 2017-09-14 16:53:39 -07:00
lilia
0839a358d3
Fix scroll overflow in installer layout
Make it slightly more responsive at smaller window sizes.

// FREEBIE
2017-09-14 16:53:37 -07:00
lilia
45bf7330ac
Scope install styles to install element 2017-09-14 16:53:35 -07:00
lilia
285b5ce062
Get install flow working in main window
// FREEBIE
2017-09-14 16:53:35 -07:00
lilia
859d49b3f4
Use relative paths
// FREEBIE
2017-09-14 16:53:34 -07:00
Lilia
71036e31ab Fix horizontal scrolling in convo/message lists (#1448)
This removes some errant horizontal scrollability from the conversation list and
the message list.

// FREEBIE
2017-09-07 09:57:47 -07:00
Lilia
5d8e8459b3 Fix bouncy bubble widths (#1447)
Max-width on a message bubble should be about 30em for the good readability.
However, when the window isn't wide enough, bubbles must be further limited.

The transition should happen around the point that these two rules intersect,
but it was kicking in a little late, which caused the bubbles to jump from wider
to shorter as you widened the window past a certain point. This change adjusts
the threshold for smoother and more consistent bubble resizing.

The variable name $big-avatar-min-width is an artifact of a past design and was
previously used in multiple places, but it no longer makes sense in this context
so it has been discarded.

// FREEBIE
2017-09-07 09:57:33 -07:00
Scott Nonnenberg
52a595b372 Export/Dark Theme: Increase banner text contrast for legibility (#1415)
FREEBIE
2017-08-30 14:39:45 -07:00
Scott Nonnenberg
c0cd733139 Full export, migration banner, and full migration workflow - behind flag (#1342)
* Add support for backup and restore

This first pass works for all stores except messages, pending some scaling
improvements.

// FREEBIE

* Import of messages and attachments

Properly sanitize filenames. Logging information that will help with
debugging but won't threaten privacy (no contact or group names),
where the on-disk directories have this information to make things
human-readable

FREEBIE

* First fully operational single-action export and import!

FREEBIE

* Add migration export flow

A banner alert leads to a blocking ui for the migration. We close the socket and
wait for incoming messages to drain before starting the export.

FREEBIE

* A number of updates for the export flow

1. We don't immediately pop the directory selection dialog box, instead
  showing an explicit 'choose directory' button after explaining what is
  about to happen
2. We show a 'submit debug log' button on most steps of the process
3. We handle export errors and encourage the user to double-check their
  filesystem then submit their log
4. We are resilient to restarts during the process
5. We handle the user cancelling out of the directory selection dialog
  differently from other errors.
6. The export process is now serialized: non-messages, then messages.
7. After successful export, show where the data is on disk

FREEBUE

* Put migration behind a flag

FREEBIE

* Shut down websocket before proceeding with export

FREEBIE

* Add MigrationView to test/index.html to fix test

FREEBIE

* Remove 'Submit Debug Log' button when the export process is complete

FREEBIE

* Create a 'Signal Export' directory below user-chosen dir

This cleans things up a bit so we don't litter the user's target
directory with lots of stuff.

FREEBIE

* Clarify MessageReceiver.drain() method comments

FREEBIE

* A couple updates for clarity - event names, else handling

Also the removal of wait(), which wasn't used anywhere.

FREEBIE

* A number of wording updates for the export flow

FREEBIE

* Export complete: put dir on its own line, make text selectable

FREEBIE
2017-08-28 13:06:10 -07:00
Scott Nonnenberg
352b5f408b Making the application loading screen dark in the dark theme
FREEBIE
2017-08-07 16:14:49 -07:00
Scott Nonnenberg
b4f6721846 Fix manfest.css, libtextsecure.js catch-up
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
305bd6b3b8 App loading screen: show messages processed so far
Also, show the same loading screen on index.js before we've bootstrapped
the app.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
53f2bfbb57 Animated loading screens on startup and first conversation load
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
14765599f3 Delete individual message
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4124d5cb9b Show 'Message not sent' only if 'Some recipients failed' not showing
Also switch up the visual style for 'Some recipients failed' text to
match the more-visible 'Message not sent' text and the 'Resend' link.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
ff4fde651c Make it clear in conversation just some recipients failed
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
12914307f1 Improve experience when discovering identity key error on send
New experience in the Message Detail view when outgoing identity key
errors happen, matching the Android View.

'View' button is only shown on outgoing key errors right now.

When a contact with an outgoing identity key error is clicked, they are
taken to a view like the popup that comes up on Android: an explanation
of what happened and three options: 'Show Safety Number', 'Send Anyway',
and 'Cancel'

Contacts are now sorted alphabetically, with the set of contacts with
errors coming before the rest.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
b6cca41a0c Update verification-related strings to better match mobile app
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
293be5d9f6 Truncate long filenames in attachments
The :before technique for adding the icon was removed, because it
resulted in some rendering issues when the layout pressure in the
message bubble got too high - you would see a partial icon. This
solution shrinks the icon a bit when the filename wants to expand to
take its space.

The iOS bubble width also needed special care to ensure it didn't expand
to accommodate the very wide filenames. Beyond that, overflow: hidden
needed to be applied at several levels to make everything behave as
expected.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
12d7fb3b74 Left-align confirmation dialog text, explain more on 'send anyway'
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
31bf05e14a Add verified state summary to top of safety number screen
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
11372b4e00 Add icons for keychange and expiration timer in-conversation items
The shield matches the Android app's key change notification, and the
clock icon was easy to do and makes it easier to visually distinguish
those items in the conversation history.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
c714fb6dbf Shadow/icon/blue for banner, better verify advisories in dark theme
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
1cf9289b1a Add items to conversation history when user verifies/unverifies
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
a827334c3e Allow re-send of messages in msg detail view on OutgoingKeyError
We also show more errors than we used to in the MessageDetail screen
to help make it clear what is happening, and why the user would need to
re-send.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
47c5142a83 Replace unicode check with new svg icon
A good bit of CSS was required to keep the text color changing along
with the text it is nestled within.

Also: took this opportunity to increase the contrast of the number and
verified section right under the contact name in the group members view.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
caa92c9312 Reintroduce outline around confirmation dialog buttons
It was very hard to tell which button was selected without the standard
outline.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
9204188aa3 A bit of cleanup after some early code review
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
243cbd8123 Confirmaton on send, banner when 'unverified'
Not yet using the new APIs, but ready to. Still to do:
- Send sync messages on trust decisions
- Respond to received trust decision sync messages
- Show trust decisions in the conversation history
- In that rare situation where a sent message ends up with a key error
  make it easy to retry the send.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
bedf10056b Support for group-member verifications via second-level panel
Also:
- All the necessary wire-up to update things in real time. If you have
a safety number page up via a group member view as well as via a 1:1
conversation with that contact, they'll both be updated as the
underlying model changes. Similarly, the overall group will update
in real-time as members change.
- A bit of special-casing for yourself in a group conversation - you're
shown as 'me' and are not clickable, where normally that would take you
to the Safety Number screen for that contact. You are also not included
in the trust calculations for a given group.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
ee0b0f5ffb Remove all concept of 'key conflict' from the app 2017-08-04 12:03:25 -07:00
Scott Nonnenberg
6b62daa62b Make Jumbomoji normal size when in the conversation preview
FREEBIE
2017-06-28 09:14:31 -10:00
armata
ce20e4f471 fix dark theme button hover color 2017-06-26 16:37:15 -10:00
Sebastian Malek
2781ff798a align country list text to left 2017-06-21 09:48:58 -07:00
Sebastian Malek
6b4970de21 fix #1241: registration page readability issue 2017-06-21 09:48:58 -07:00
Scott Nonnenberg
2b010cf73a
Capture missing manifest.css change
FREEBIE
2017-06-16 11:23:01 -07:00
Scott Nonnenberg
3b19d8f0e2 Light themes: Add gray background color to message detail screen
Outgoing messages were hard to see, white on white.

FREEBIE
2017-06-16 11:21:11 -07:00
Scott Nonnenberg
0a07c8ad2c Fix attachment styles in iOS theme
FREEBIE
2017-06-16 11:21:11 -07:00
Scott Nonnenberg
b238242ead Add padding at the top of the conversation
Keeps no-scroll-bar conversations from sticking directly to the top of
the window.

FREEBIE
2017-06-12 14:55:47 -07:00
Scott Nonnenberg
9ead5c76ce Remove helvetica font in favor of Roboto
FREEBIE
2017-06-12 14:55:47 -07:00
Scott Nonnenberg
13fb40fdcc Make spacing at top/bottom of last seen indicator consistent
Sadly, that spacing now needs to be bigger because scrollIntoView
doesn't honor margins which overlap each other to eliminate this kind of
'too much spacing' kind of problem.

FREEBIE
2017-06-08 17:04:07 -07:00
Scott Nonnenberg
ed56d8cd70 Fix indentation in android-dark.scss
FREEBIE
2017-06-08 17:04:07 -07:00
Scott Nonnenberg
bb1aa14a60 Refine Last Indicator Visuals
FREEBIE
2017-06-08 17:04:07 -07:00
Ikarulus
ec3278ca3a add message length warning for android clients 2017-06-07 15:53:14 -07:00
Unknown
42608849bd Update CSS 2017-06-07 15:26:51 -07:00
Unknown
d79ed69c21 Forgot & 2017-06-07 15:26:51 -07:00
Unknown
235ac03775 Hover-effect for new messages 2017-06-07 15:26:51 -07:00
Unknown
6f0de2cd72 Effect for Android-dark theme 2017-06-07 15:26:51 -07:00
Unknown
416359d4ad Add scroll-down-button hover-effect
Normal Android & iOS Theme
2017-06-07 15:26:51 -07:00
Ikarulus
752ebde7ff add hover event 2017-06-01 16:45:17 -07:00
Ikarulus
fcbf569317 changes due to feedback 2017-06-01 16:45:17 -07:00
Scott Nonnenberg
0e96d086c5 Move to overlay scroll bars for the conversation list
Note that we're removing position: relative for the contact class, and
there might be some unexpected layout impacts. Thus far I haven't seen
any.

FREEBIE
2017-06-01 15:19:25 -07:00
Scott Nonnenberg
0d722a3186 Last seen indicator visual refresh
- Last seen indicator now spans the full conversation, with subtle
shadow highlights above and below
- Scrollbars now overlap the content of the conversation, allowing last
seen indicator to touch the right edge of the window.
- The iOS and Android conversation background is now #eee instead of
white, which meant that the outgoing messages (Android) and incoming
messages (iOS) had to be updated for contrast. They now have white
backgrounds.
- Similarly, the scroll down button needed more contrast, and its
background is now white in light themes.

FREEBIE
2017-06-01 15:19:25 -07:00
Scott Nonnenberg
d294cc96a5 A few tweaks to safety number-related UI
* Show a pointer cursor on safety number change notification
* Add 'click to verify' to the text shown there
* Add ':' to the text shown on the safety number screen
* Limit the width of the safety number box, to force 3x4 layout
* Center the safety number box

FREEBIE
2017-05-23 15:50:22 -07:00
Ivan Markin
931441a057 Fix duplicate x icon (cancel) on active search field.
Fixes #1136.
// FREEBIE
2017-05-23 15:46:28 -07:00
Scott Nonnenberg
1839efd535 Move margin-top back to inner last seen indicator element
FREEBIE
2017-05-23 11:08:23 -07:00
lilia
681418cf6b Restyle last seen indicator
Add horizontal line behind text.

// FREEBIE
2017-05-23 11:08:23 -07:00
lilia
4921ef1b9d Tweak scroll to bottom bottom color
And add drop shadow

// FREEBIE
2017-05-23 11:08:23 -07:00
Scott Nonnenberg
4c7bfbe9ff Scroll down button: when scrolled up, or new non-visible message
FREEBIE
2017-05-23 11:08:23 -07:00
Scott Nonnenberg
f6c62e4822 Android: Make last seen indicator margin consistent top/bottom
FREEBIE
2017-05-23 11:08:23 -07:00
Scott Nonnenberg
fed26c36ca Add new Last Seen Indicator with unread count, scroll to it
This is to ensure that when there are a lot of unread messages, the user
is given the chance to see all of them by being scrolled to the oldest
new message.

When a new message comes in, the indicator will be incremented.

When the user sends a message or switches away from the conversation,
the last seen indicator will be removed.

FREEBIE
2017-05-23 11:08:23 -07:00
lilia
3ea5c0435b Update attachment style
Add names and sizes for all attachments except images, and (as with
arbitrary attachments), clicking on the text will open a save dialog.
In the absence of a filename, choose something that makes sense.

Display different icons for different media types, including distinct icons
for voice notes and audio files.

In iOS theme, audio, video, voice, and files are all encapsulated in bubbles.

Closes #804
Closes #842
Closes #836

// FREEBIE
2017-05-12 15:27:45 -07:00
lilia
56d1ce75ac Enable voice notes
And fix recorder background color in dark theme

// FREEBIE
2017-05-12 09:55:15 -07:00
Scott Nonnenberg
423a0fef67 Jumbomoji support matching Android support
FREEBIE
2017-05-10 15:51:39 -07:00
Scott Nonnenberg
e7f41be464 Change android/android-dark file attachments to be on-theme
FREEBIE
2017-05-09 15:14:20 -07:00
Scott Nonnenberg
42195acfb1 Reduce empty space to the left of the larger file icon
FREEBIE
2017-05-09 15:14:20 -07:00
Scott Nonnenberg
ae6e6da44b Change iOS file attachment bubbles to be on-theme
FREEBIE
2017-05-09 15:14:20 -07:00
Scott Nonnenberg
cd1569e57a Android themes: Add space between file attachment, message text
FREEBIE
2017-05-09 15:14:20 -07:00
Scott Nonnenberg
ee00ad0e15 File attachments: show file size, bold filename, make icon bigger
FREEBIE
2017-05-09 15:14:20 -07:00
lilia
935941e31e Brighten dark theme microphone icon 2017-04-19 13:58:06 -07:00
lilia
a27ea20f3e Improve unsupported file type handling
Make arbitrary files look nicer and display the filename.

If an audio or video element fails to load for any reason, timeout after
a few seconds and render it as an arbitrary file. Also short circuit to
this treatment for common audio and video file types that we know are
going to fail, e.g., proprietary formats from apple.

// FREEBIE
2017-04-18 16:27:50 -07:00
lilia
d3492960a6 Display info in network status when unlinked
When we can't connect due to being unlinked, network status indicator
will show an appropriate informational message and a button to open the
installer window to relink.

// FREEBIE
2017-04-12 20:43:16 -07:00
lilia
5d1e770307 Tweak network status styles
Remove inline styles
Use flexbox in the left pane

// FREEBIE
2017-04-12 13:02:31 -07:00
Sam Vevang
ed4991974b set up a new view for displaying the network status
// FREEBIE
2017-04-08 00:10:56 -07:00
alecglassford
ef4b4da2a3 Make search clear button ("x") persist w/o hover
This makes the "x" in the search bar always visible when there is
text in the search box, even if the mouse is not hovering, hopefully
making for a clearer UI around search and resolving issue #741

The implementation adds the "x.svg" as a background image to the search
box when it is classed with .active, in addition to the
-webkit-search-cancel-button, which is still there for the actual
functionality but only appears on mouse hover (one tiny snag is that
coloring appears slightly different on hover, at least on my screen -
don't know if this is a problem).

I accounted for both ltr and rtl text-direction by using
getComputedStyle(...).direction to detect from the input's dir="auto"
- if there's a more elegant way to do this, please suggest. An ideal
solution would use the :dir pseudo-class but it's not implemented
in Chrome yet - https://developer.mozilla.org/en-US/docs/Web/CSS/:dir

For now, I added the direction-checking to inbox_view.js. I see that
input.search is also used in new_group_update_view.js and
recipient_input_view.js but neither of these views seem to be in use (?)
and they don't set the .active class anyway, so I ignored them.

Update: Amended version a few hours later - fixed and manually tested
color and spacing for iOS and Android Dark themes. Also made some new
SASS variables to make things DRYer and fixed my tab size.
2017-04-08 00:06:48 -07:00
Jon Long
d0d3f80291 Improve Responsiveness on Install Screen
Handles the edge case where images in the Install steps can obscure the text below them at certain window dimensions.

In most cases, it's not possible to replicate this behavior due to minimum dimension settings in `chromium.js`. However, some window managers (such as i3) can ignore those settings, producing this bug.

This fix introduces a flexible, responsive layout to the Install steps, with the goal of keeping the action buttons in a consistent position while adapting the rest of the content to the remaining available space. The result is a clean, usable screen at any window size.

In the rare instance that a window's dimensions are less than that of the minimums set in `chromium.js`, scrollbars will appear to keep the smallest acceptable layout intact.

Potential side effects:

- Each `.step` element contains an`.inner` flexbox wrapper, which arranges its children in a column. The layout works best when each `flex-item` is an element that wraps the content inside of it. I think I accounted for all the possibilities on the Install screen, but any future `.step` items might want to keep that pattern in mind.

Resolves #1059
FREEBIE
2017-04-07 19:35:25 -07:00
lilia
7a7739a3f6 Add text-security css class
Adding the class `.text-security` to the body element will (should) turn
all names, phone numbers, and message bodies into unreadable squares.
Nice to have when you want to screenshot without leaking too much info.
Note that emojis and images are not obscured.

This isn't fully baked or exposed as a feature. You have manually
inspect and tweak the DOM to enable it, but I leave it here for the
benefit of devs and other "frequent flyers" of our issue tracker.

// FREEBIE
2017-03-14 15:56:47 -07:00
Ikarulus
c9939c8da8 Moving the error badge to the right corner in ios theme
// FREEBIE
2017-02-06 18:42:30 -08:00
lilia
030c5a403f Fix key change advisory style in dark theme
Override the light font color which is the default in dark mode.
For regular android theme this should cause no change.
2017-01-25 20:40:24 -08:00
Ikarulus
59c684db8a Removes orange borders glitch (visible in dark design)
FREEBIE
2017-01-25 20:40:24 -08:00
Ikarulus
bb5ebf39bd Changed debug log color in dark theme
Fixes #990
2017-01-25 20:40:24 -08:00
lilia
33dc9ca3a3 Make dark theme links lighter and less saturated
10% lighter and 10% lower saturation than traditional signal blue
2016-12-03 20:25:59 +01:00
lilia
46254e3c23 Use shades of gray for left pane focus effect
Also remove extraneous rule. It is repeated further down the stylesheet,
and overruled by !important.
2016-12-03 20:20:34 +01:00
lilia
09b582bb2b Darken material colors in dark theme
Dark theme uses material colors with value 700 from
https://material.google.com/style/color.html
2016-12-02 11:51:18 +01:00
lilia
ee334d3fcb Dark theme tweaks
* Fixes hourglasses
* Fix delivered status icon
* Other changes aiming for more consistency of visual structure
  between light and dark themes.
* Restores left pane header focus/transition effect.
2016-12-02 11:42:56 +01:00
Ikarulus
53cd3af78b Added a dark theme
I added a dark theme in order to solve #328.
This may fix #328 at least partially.
2016-12-02 00:41:42 +01:00
lilia
35270dbbb4 Use timeout-based animation for hourglasses
CSS animations are convenient but costly if you have hundreds of them.

Fixes #945
2016-10-30 16:53:17 +09:00
lilia
9c00a27081 Bump video min-width to include all controls
Fixes #960
2016-10-28 15:05:48 +09:00
lilia
7256fe9b6f Reduce CPU load from css animations
On osx this cuts the load in half. We can probably do better with
js-based animations but let this be a quick fix for now.
2016-10-16 16:32:01 +09:00
lilia
e47868129e Remove unneeded rule
No longer needed thanks to previous commit.
2016-10-12 11:02:59 +09:00
lilia
d5431a942f Simplify and correct message metadata alignment
Match left/right adjustment on Android.
Incoming to the left, outgoing to the right.
2016-10-12 10:52:34 +09:00
lilia
657fa2725f Adjust hourglass vertical alignment 2016-10-11 22:52:40 +09:00
lilia
d6f714defc Improve capitalization consistency in menus
Android uses sentence case. iOS uses title case.
2016-10-08 11:17:08 +09:00
lilia
dddeed8e8f Split up themes into separate files 2016-10-08 11:10:40 +09:00
lilia
83d285e4ab Fix style for qr code 2016-10-05 19:11:39 +09:00
lilia
790407d42e Add qr codes 2016-10-05 19:11:39 +09:00
lilia
7fe708d195 Insert keychange advisories
On click, these open a verification panel for the relevant contact,
within this conversation.

// FREEBIE
2016-10-05 19:11:39 +09:00
lilia
1fe90ecdcb Add frontend for safety numbers approval setting
Adds the checkbox under settings.

// FREEBIE
2016-10-05 19:10:20 +09:00
lilia
2b2c6ab040 Frontend for timer updates and timer indicator 2016-09-29 16:17:01 -07:00
lilia
8f76548a53 Invert button styles
Make buttons dark by default, and let the android theme styles apply the
inversion.
2016-09-28 17:20:03 -07:00
lilia
4cd2c03687 Add clock svg style 2016-09-28 17:20:03 -07:00
lilia
e809a0cf8b Breakout timer rendering into its own view
Make width and height constant.
2016-09-28 17:20:03 -07:00
lilia
bd713352e3 Hourglass can start at any percentage
This breaks the css-purity of our mixin but is necessary in order to
apply the initial offset of the hourglass animation dynamically, since
jquery can't manipulate arbitrary css on psuedo elements.
2016-09-28 17:20:02 -07:00
lilia
5f92ccd524 Render animated hourglass when messages are expiring 2016-09-28 17:20:02 -07:00
lilia
96fd017890 Support for incoming expiring messages
When initialized, or when expiration-related attributes change, expiring
messages will set timers to self-destruct. On self-destruct they trigger
'expired' events so that frontend listeners can clean up any collections
and views referencing them.

At startup, load all messages pending expiration so they can start their
timers even if they haven't been loaded in the frontend yet.

Todo: Remove expired conversation snippets from the left pane.
2016-09-28 17:20:02 -07:00
lilia
2fec5ee867 Fix text wrapping on long urls in ios theme
// FREEBIE
2016-09-15 15:40:05 -07:00
lilia
6a4b720b89 Make timestamp text selectable
Previously we only declared the message body as selectable, but Chrome's
implementation of user-select is a little quirky in that it allows
unselectable text to be copied if you select elements around it. Oddly
enough, styling the entire bubble contents as selectable, including the
timestamp, actually prevents chrome from copying the timestamp text when
it's not supposed to, i.e., when triple-clicking the message body.

Fixes #887

// FREEBIE
2016-09-10 15:02:20 -07:00
lilia
7ed6a1c4f8 Fix sender name color on android
// FREEBIE
2016-09-08 17:41:49 -07:00
lilia
1afe50b1db Make contact sync button quieter
// FREEBIE
2016-09-08 12:05:48 -07:00
lilia
d7b6e7c26b Make group updates and other control messages selectable
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia
ab0083f341 Simplify invert-text-color mixin
// FREEBIE
2016-09-07 13:04:44 -07:00
lilia
43ccb90a92 Fix size of microphone icon
// FREEBIE
2016-09-03 14:38:22 -07:00
lilia
9f034fb698 Fix padding on key-conflicts
Error message contents need padding too.
Also make control messages and error message text selectable.

// FREEBIE
2016-09-01 17:41:41 -07:00
lilia
4652c2cff3 Fix selection style
// FREEBIE
2016-09-01 15:56:22 -07:00
lilia
f918142742 Fix bubble selection style and toast z-index
// FREEBIE
2016-09-01 15:13:27 -07:00
lilia
1c89142752 Customize emoji conversion
Use image tags with :emoji: in a title attribute for an optimal
copy/paste ux.

// FREEBIE
2016-09-01 12:55:23 -07:00
lilia
f042378a37 Upgrade emoji support and switch to apple emoji
Use emojijs for replacing unicode with image tags for display. We were
already using it to replace colons with unicode. Additionally it has
a companion data repo that is kept up to date with images from all
the common image sets.

// FREEBIE
2016-09-01 11:51:53 -07:00
lilia
262f9d135f Add subtle border to ios attachments
// FREEBIE
2016-09-01 11:51:06 -07:00
lilia
6d0a535f4a iOS bubble tails
// FREEBIE
2016-09-01 11:51:06 -07:00
lilia
65cb7c0e9c Cleanup colors and focus/active input states
// FREEBIE
2016-08-31 15:04:02 -07:00
lilia
b5191e78c3 More themeing
Restyle message input and welcome screen
Cleanup search, headers

// FREEBIE
2016-08-30 18:31:03 -07:00
lilia
2e3db91b30 Theme-ify header colors and styles
Remove the Signal banner and restyle the search field for ios theme.

// FREEBIE
2016-08-30 18:31:02 -07:00
lilia
6e2ca331a3 Fix ios control messages
i.e., session reset messages.

// FREEBIE
2016-08-30 18:31:02 -07:00
lilia
6c05a71424 Tune up ios bubble style
// FREEBIE
2016-08-30 18:31:02 -07:00
lilia
7b9894d688 Refactor css to support theming
Move away from inline style attributes for setting contact colors.
Apply colors by name via css classes instead. Also lays groundwork
for syncing contact colors.

// FREEBIE
2016-08-30 18:31:02 -07:00
lilia
3aa72d2244 Address large font size edge cases
Fix some visual bugs occuring at large font size:
  * Contact names break onto the next line after their avatars in
    message detail screen
  * Settings menu font-size failed to scale
  * Handle Content overflow in modals.

// FREEBIE
2016-08-24 16:47:39 -07:00
lilia
41e4154d60 Make font sizes relative
So it's easier to adjust them globally.

// FREEBIE
2016-08-24 16:08:29 -07:00
lilia
9fa7e7f462 Remove unused view
// FREEBIE
2016-08-24 16:08:29 -07:00
lilia
4f46a164ba Add voice notes
// FREEBIE
2016-08-23 16:16:31 -07:00
bitim
1a0d2595da Committing corresponding changes to the scss files 2016-07-14 11:13:00 -07:00
bitim
a1eccc2c49 Better RTL languages support:
- Fixed text alignment in RTL messages.
- Added support for search box.
- Added support for conversation name.
- Added support for contact name.
- Added support for last message timestamp and last message preview.

//FREEBIE
2016-07-14 11:13:00 -07:00
lilia
61e7b685e6 Make welcome screen prettier
// FREEBIE
2016-07-14 11:09:08 -07:00
lilia
c1b8ff9e54 Fix _lightbox.scss
// FREEBIE
2016-07-14 10:49:45 -07:00
lilia
9091233950 Open images in a lightbox
Adds file-write permission for saving to disk from lightbox.

Fixes #810

// FREEBIE
2016-06-20 11:55:23 -07:00
lilia
f34f6eedef Add min-width on video elements
Such that all the player controls are visible.

Fixes #782

// FREEBIE
2016-06-20 11:55:00 -07:00
lilia
f131505d28 Display numbers in group member list
// FREEBIE
2016-06-17 15:30:41 -07:00
lilia
8e1d884a10 Add button for re-importing contacts from phone
Add a section under settings for performing a contact sync from your
mobile device. This just re-runs the same import operation that occurs
at install/link time.

// FREEBIE
2016-06-16 16:43:07 -07:00
lilia
dea8983235 Error icons only use pointer-cursor when clickable
// FREEBIE
2016-05-26 11:00:24 -07:00
lilia
58c3fe047e Make error messages clickable
// FREEBIE
2016-05-25 20:39:43 -07:00
lilia
0d47a04815 Remove unused style
// FREEBIE
2016-05-25 20:35:56 -07:00
lilia
3217f2c0b6 Hide unregistered user errors in groups
// FREEBIE
2016-05-25 20:33:40 -07:00
lilia
b6f785737c Restyle error icons, move them outside the bubble 2016-05-25 20:32:00 -07:00
lilia
b5ddd41a5e Fix error icon
// FREEBIE
2016-04-21 18:36:07 -07:00
lilia
d5dfffd9da Darken the scrollbar on hover
// FREEBIE
2016-04-21 12:06:40 -07:00
lilia
8200780fc2 Don't let timestamps wrap
// FREEBIE
2016-04-18 19:15:35 -07:00
lilia
ba22151a31 Unpad message-container on message detail screen
// FREEBIE
2016-04-18 19:15:35 -07:00
lilia
826d4c4301 Add magnifying glass to search field // Fixes #737
// FREEBIE
2016-04-14 11:57:56 -07:00
lilia
531d1701ef Move debug log styles to their own file
// FREEBIE
2016-04-09 21:09:16 -07:00
lilia
f3de290f7c Make debug log link focusable/selectable
Add button to open in a new tab. Stye as input group.

// FREEBIE
2016-04-09 20:53:39 -07:00
lilia
544a346b10 Remove unused file, stale comments
// FREEBIE
2016-04-09 00:20:10 -07:00
lilia
fe62d86d37 Move mixins to a separate file
// FREEBIE
2016-04-09 00:17:08 -07:00
lilia
1a06ac6ead Update install copy
// FREEBIE
2016-04-08 15:41:34 -07:00
lilia
a81ab2ca6b Apply paperclip hover state on focus
// FREEBIE
2016-04-07 13:26:02 -07:00
lilia
28c602ab85 Use button for file input / paperclip
// FREEBIE
2016-04-07 12:26:21 -07:00
lilia
4bd266521a Apply button hover effect on focus as well
// FREEBIE
2016-04-07 12:23:12 -07:00
lilia
b5a399dc55 Fix up contact list height off by 4px
Add some variables so we can actually compute this height instead of
hard coding it.

// FREEBIE
2016-04-06 17:37:37 -07:00
lilia
9aa429e18a Add frontend support for expiring releases
When a release expires, it gets a persistent banner notification to
upgrade, and an ephemeral toast warning when trying to send a message.

// FREEBIE
2016-04-03 21:11:50 -07:00
lilia
e5748b974f Harmonize x/close buttons
// FREEBIE
2016-04-01 15:15:02 -07:00
lilia
6faed3d9d7 Remove unused style
// FREEBIE
2016-04-01 14:54:31 -07:00
lilia
4f57dff1e6 Use svg for paperclip icon
// FREEBIE
2016-04-01 14:48:04 -07:00
lilia
3488e86190 Remove background color from new contacts
// FREEBIE
2016-04-01 14:24:47 -07:00
lilia
6be7b765b2 Harmonize border radii
// FREEBIE
2016-04-01 14:24:47 -07:00
lilia
d4174b94f1 Tweak button sizes and menu style
Restore previous icon size to header buttons, add padding to accomodate
positioning.

Remove blue border from menus.

// FREEBIE
2016-04-01 14:24:41 -07:00
lilia
d8d34e7afc Icon upgrade
Also remove unused images.

// FREEBIE
2016-04-01 13:59:57 -07:00
lilia
367a62111b Tweak conversation list active state
// FREEBIE
2016-04-01 12:36:50 -07:00
lilia
6a9ec073c6 Decrease bubble radius
// FREEBIE
2016-04-01 12:36:50 -07:00
lilia
01ca6b7c3a Vertically center contact names
For contacts/conversations without any messages, center their names
vertically in the conversation list element.

// FREEBIE
2016-04-01 11:37:25 -07:00
lilia
1aa975e199 Differentiate active vs selected conversation states
// FREEBIE
2016-04-01 11:37:25 -07:00
lilia
c3a7766dd4 Use normal font size in search bar
Also update placeholder copy to be consistent with Android.

// FREEBIE
2016-04-01 10:37:50 -07:00
lilia
d081b301d8 Clean up search outline
// FREEBIE
2016-03-27 15:30:10 -07:00
lilia
ab62900e48 Simplify menu markup, tweak styles
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia
76652c2622 Update style and copy on key changes
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia
3d34cdcc0c Fix border-color on inactive conversation header
// FREEBIE
2016-03-23 17:56:22 -07:00
lilia
1b6eda6a8d Tighten spacing between bubbles
// FREEBIE
2016-03-23 17:54:26 -07:00
lilia
6c35f2a010 Clean up timestamp/status alignment
// FREEBIE
2016-03-23 17:54:26 -07:00
lilia
512c5bf739 Incoming bubbles have sender's color background
// FREEBIE
2016-03-23 17:41:24 -07:00
lilia
4060221b9c Make panel scrollbar track persistent
The bar is effectively invisible, but having it present means that we
don't see a jarring change in width when the content expands into the
overflow zone and triggers the scrollbar to suddenly appear.

// FREEBIE
2016-03-23 15:28:31 -07:00
lilia
1e3e730d88 Consolidate panel container styling
Special case the main panel because it is super speshul.

// FREEBIE
2016-03-23 15:05:38 -07:00
lilia
6fe9c3f964 Nest key verification inside conflict dialogs
// FREEBIE
2016-03-23 15:04:42 -07:00
lilia
9f0bcf6ae7 Add top padding to panel containers
// FREEBIE
2016-03-23 12:59:59 -07:00
lilia
af1b7552f4 Fix oddly shaped disconnected icon
// FREEBIE
2016-03-22 15:38:22 -07:00
lilia
3901bcb8df Style resend button as an inline link
For messages that failed to send due to network errors, this change
allows retrying them directly from the main conversation view rather
than only from the message detail view.

// FREEBIE
2016-03-22 15:38:22 -07:00
lilia
c48484e04f Add padding to right of conversation input
// FREEBIE
2016-03-22 11:30:45 -07:00
lilia
2e7c7ce0cc Move back button to the left
// FREEBIE
2016-03-22 11:01:04 -07:00
lilia
2c4d2b150e Fix welcome text centering
// FREEBIE
2016-03-22 10:34:54 -07:00
lilia
d24eaa655a Tweak styles on key verification view
// FREEBIE
2016-03-21 18:42:05 -07:00
lilia
d3b035121d Clean up bottom bar styles
// FREEBIE
2016-03-21 17:17:39 -07:00
lilia
234f937bc7 Conversation subscreens share a header
// FREEBIE
2016-03-21 15:37:53 -07:00