Fix issue where application won't start up when /tmp is mounted noexec on Linux (#1734)
Fix issue where more and more messages would be loaded on every restart (#1719)
Add accelerators for top-level menu shorts, and ensure they can be localized - thanks to @cyberang3l! (#1702)
Update strings for: de, el, es, es_419, fa, hi, it, no, pt_PT, ro, ru, sl, and zh_TW (#1733)
* Added top level menu shortcuts (Fixes#1688 and #1695).
The ampersand (&) character in front of a letter in a menu label
indicates that the letter that follows '&' will be used as a keyboard
shortcut letter to access this menu. In Windows/Linux, the default
shortcut combination is Alt+<letter>.
* Use non-hardcoded menu labels.
The menu labels were hardcoded in English.
We should not be using plain strings right in the source code, but
pulling them from the `messages.json` files instead.
Import: wait for IndexedDB transactions to complete; should solve
out-of-memory problems (#1698)
Increase web request timeout to 10s for slower networks (#1699)
Drop failed delivery receipts, which caused loading screen to go higher
and higher over time (#1699)
Emoji picker (#1608)
Prevent drawAttention() when notifications are turned off - thanks
@canerelci! (#1612)
Support new 833 area code with update to libphonenumber (#1598)
Dev:
- Support for beta releases installed beside production versions
(#1606)
- Display of environment and app instance in title bar/about window
(#1606)
- Fix json parsing exceptions obscuring server errors (#1605)
* Script for beta config; unique data dir, in-app env/type display
To release a beta build, increment the version and add -beta-N to the
end, then go through all the standard release activities.
The prepare-build npm script then updates key bits of the package.json
to ensure that the beta build can be installed alongside a production
build. This includes a new name ('Signal Beta') and a different location
for application data.
Note: Beta builds can be installed alongside production builds.
As part of this, a couple new bits of data are shown across the app:
- Environment (development or test, not shown if production)
- App Instance (disabled in production; used for multiple accounts)
These are shown in:
- The window title - both environment and app instance. You can tell
beta builds because the app name, preceding these data bits, is
different.
- The about window - both environment and app instance. You can tell
beta builds from the version number.
- The header added to the debug log - just environment. The version
number will tell us if it's a beta build, and app instance isn't
helpful.
* Turn on single-window mode in non-production modes
Because it's really frightening when you see 'unable to read from db'
errors in the console.
* aply.sh: More instructions for initial setup and testing
* Gruntfile: Get consistent with use of package.json datas
* Linux: manually update desktop keys, since macros not available
This fix is related about issue #1587
window.drawAttention() repositioned to allow complete control over notifications by settings. It now does not draw attention when the notifications are off.
* 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
I got a 413 (Rate limit exceeded) error from the server while fetching prekeys.
The client tried to parse the response as json since we expect json from the
prekey endpoint, which threw an exception because the response was not json.
This change prevents us from treating the response as json unless it has the
Content-Type header set accordingly.
If for some reason, the client and server disagree on whether the response
should be or is json, we'll default to treating it as text.
// FREEBIE
Re-enable download and upload of larger attachments
(#1591/ce0e39aaa7eec873f65fe9675badbd6461a3054c)
Prevent situation where lack of keys makes "Error handling incoming
message." common (#1595)
Stay connected or reconnect quickly in changing network conditions,
returning from sleep, etc. (#1593)
Don't send read syncs (to your devices) or read receipts (to client
devices) for messages with errors (#1596)
Fix occasional very long app startup (#1597)
Don't check for auto updates on linux; handled by package manager
(#1592)
* Online/offline: Always stop timer, don't connect if closed
* Sockets: Send our own close event faster, shutdown only on close
Seems that we were too-aggressively disconnecting from all socket
events. Also, we should be able to send our own close event a lot
faster with no ill effects.
* Catch-up libtextsecure changes
Load profiles for a conversation without blocking convo load (#1570)
The About window is no longer blank (#1564)
Add 5s timeout for all requests but attachment up/down, avatar (#1584)
Dev:
- Move to node fetch API for web requests instead of XHR (#1552)
- Log when we've detected a new version (#1567)
- Reduce logging when the window moves (#1568)
- Add GPLv3 LICENSE file (#1309)
- Remove documentation references to BitHub (#1576)
- models/conversation: Refer to proper error variable (#1569)
- Deployment: No longer use CI windows assets (#1564)
- Fix copy pasta of timestamp_m to timestamp_h in locales (#1582)
* Use node-fetch instead of xhr
* Remove XMLHttpRequest.js
// FREEBIE
* Avoid calling json() on non json responses
Previously we would catch and swallow JSON parsing errors resulting from an
empty response, though empty responses are normal from a few endpoints, like
requesting sms or voice registration codes.
Since the JSON parsing call is now handled internally by node-fetch, we have to
keep closer track of our expected response type to avoid throwing an exception.
// FREEBIE
* Include about.html in production Electron build
* Remove windows from fetch-release task, fix permissions
We no longer use the pre-built assets from AppVeyor for our Windows
build.
* AppVeyor: Remove capture/upload of built assets
Improved OS menus (#1563)
- About box now available on all platforms
- The Help menu now has four new items: Go to release notes, Go to forums, Go to support, File a bug
- All menu item labels are now localizable
Add setting to hide menu bar on Windows/Linux - thanks to @connection-reset! (#1551)
Fix flickering offline/disconnected status on Linux (#1561)
Fix slowdowns when composing multiline message (#1560)
Fix intermittent incorrect conversation sort order (#1558)
Dev:
- Improve fixtures, restore `InboxView` rendering on the test page (#1562)
- Bugfix updates to a number of dependencies (#1560)
- .gitignore no longer excludes many files under `components` (#1560)
* Wait to manually disconnect after receiving 'offline' event
We've received Linux logs indicating that we can get offline/online
blips - only 30ms between the two events. The app was never realy
offline. So this change slows the whole disconnect process down.
* Handle offline startup: register for online event, don't connect
* Remove reload options, new file/help menus, tools/log at bottom
* Further menus refactor: install handlers at template creation
* WIP: Further tune menus, add custom about window
* New About window, new help menu items, menu labels now i18n
* Default device name on registration is now computer hostname
The OS of the device makes sense for those of us testing across a lot of
different OSes. And maybe for a user with just one desktop device. But
most users with multiple desktop devices are using the same OS for both.
* About window: Only show window when content is ready
* Fix typo in app/menu.js
* Update to the latest version of autosize.js
* gitignore: Restrict 'dist' matches to the root dist folder
The global search for 'dist' caused problems when updateing bower
components.
* A couple minor version updates: ByteBuffer, filesize, intlTel
moment-with-localse, ProtoBuf
* Add setting to hide menu bar
Add a setting in the themes section to hide the menu bar.
The menu bar is not needed in everyday use and might not fit in with
signals dark theme. The hidden menu bar can still be shown by pressing
alt.
autoHideMenuBar is added to windowConfig and saved and restored on
startup to prevent flickering.
* Trigger events only when related setting changes
Set the event to trigger on instanciation of the view.
Notification settings no longer reapply the theme or menu bar settings.
* Save window state when closing the window
When not moving or resizing the window, no BrowserWindow config would be
created and saved.