Commit Graph

630 Commits

Author SHA1 Message Date
MishkaRogachev e30ba7e760 feat(@community): Add tags to communities
Close #5680
2022-06-24 19:44:35 +03:00
Boris Melnik 58eff9adf2 fix(communities): Fix broken `Request to join required` property
Closes: #6073
2022-06-21 13:55:57 -04:00
Pascal Precht 858caeca73 fix: handle bookmarks syncing signals properly
Bookmarks were only synced when devices were synced, but not when
bookmarks were added/removed/updated.

To account for this, there's are new messenger APIs in status-go
proposed here: https://github.com/status-im/status-go/pull/2709

Based on those APIs, desktop can now add/remove/update bookmarks and the
changes are automatically synced to other devices in real-time.
This commit also ensures that changes from other devices with regards to
bookmarks are handled and updated on the current device.

Partially addresses #5201
2022-06-20 12:01:23 +02:00
Richard Ramos 1046d6ab4d chore: bump status-go 2022-06-17 12:27:54 -04:00
Khushboo Mehta 8d3fad8342 feat(@desktop/wallet): Multichain QR Code
Implements the new Recieve Modal with multichain functionality

closes #5735, #6057
2022-06-17 01:27:35 +05:30
Iuri Matias c292956f8e chore(@desktop): update dotherside 2022-06-14 16:44:36 -04:00
Alexandra Betouni 50722148c6 fix(StatusChatInput): Updated text mark down rules and formatting
Closes #6030
2022-06-14 16:44:36 -04:00
Richard Ramos ef78bc1ace chore: bump status-go 2022-06-14 16:11:16 -04:00
Anthony Laibe 00ed4f9c44 feat(@wallet): multi transaction simple view 2022-06-09 15:22:24 +02:00
Noelia ed39690071 feat(CommunitiesPortal): Communities Portal first UI approach
Closes #4936
2022-06-02 08:24:02 -04:00
Stefan 9f633f0fcc feat(Communities/Settings): Communities banner editing
Use the generic EditCroppedImagePanel for banner cropping

- Depends on status-go IdentityImage banner extension

fixes #5118
2022-05-31 12:26:33 +03:00
Sale Djenic 64882dffbe feat(@desktop/wallet): add support for Arbitrum L2
Fixes #5714
2022-05-27 14:45:29 +02:00
Michal Iskierko 242d980377 chore(internal): Bump nimqml version
Issue #4922
2022-05-26 14:16:00 +02:00
Michal Iskierko 31a8f1cee8 chore(internal): Bump DOtherside version
Issue #4922
2022-05-26 14:16:00 +02:00
Anthony Laibe 21fedcbb2b feat(@wallet): aggregate token balance 2022-05-26 06:52:32 -04:00
Sale Djenic aeba272ae4 fix(@desktop/notifications): move notifications settings to `status-go`
Fixes #5649
2022-05-26 12:07:19 +02:00
Anthony Laibe db3722cd4f fix(@general): user status go service to migrate account 2022-05-24 13:27:06 +02:00
Richard Ramos 718cc1f45c fix: history not working when using status.test and status.prod fleet
Fixes #5769
2022-05-20 10:21:42 -04:00
Khushboo Mehta b601c88447 feat(@desktop/wallet): Add has activity to the derived addresses in wallet
fix #5655
2022-05-18 14:16:57 +02:00
Khushboo Mehta 0ee0c8ddd4 feat(@desktop/wallet): Add has activity to the derived addresses in wallet
fix #5655
2022-05-18 13:42:00 +02:00
Sale Djenic c47f3f2692 feat(@desktop/wallet): redesigned wallet addresses are missing checksum
Fixes #5473
2022-05-17 16:04:59 +02:00
Anthony Laibe 35d52fe63b fix(@general): bump status go 2022-05-12 13:22:37 +02:00
Anthony Laibe 5dd0ad36be feat(@communities): create general channel when creating community 2022-05-10 15:43:32 +02:00
Anthony Laibe d4ef0ff5e8 fix(@wallet): fix generate account from 0.3 2022-05-09 10:14:50 +02:00
Richard Ramos c90aa97e8b bump: status-go 2022-04-13 18:48:10 -04:00
Sale Djenic 3cdc1358ba fix(@desktop/contacts): multiple contact related issues fixed
Fixes #5354 #5225 #5198
2022-04-13 16:40:34 -04:00
Khushboo Mehta feaa91d062 feat(@desktop/wallet): Add derivation path to wallet account generation
fixes #5074
2022-04-13 11:17:53 +02:00
Anthony Laibe a379c34ceb fix(@wallet): link to tx hash 2022-04-13 11:17:53 +02:00
Anthony Laibe 3f71e1fe87 feat(@wallet): move visible token to status go 2022-04-13 10:12:58 +02:00
Anthony Laibe 2e2b958e37 fix(@wallet): generate account use correct path/address
fixes #5470
2022-04-11 12:36:27 -04:00
Anthony Laibe 0a7201b3bf fix(@wallet): Import from private key after mnemonic 2022-04-11 11:54:59 -04:00
Richard Ramos 85ba478c49 fix: multiaccounts migrations 2022-04-08 16:27:34 -04:00
Iuri Matias b6d10316d6 chore: bump nim-status-go 2022-04-08 14:04:21 -04:00
Patryk Osmaczko fdfdd5c50e chore: point to appropriate submodules 2022-04-08 14:04:21 -04:00
Anthony Laibe bd8ad854fc fix(@wallet): link to tx hash 2022-04-08 10:02:51 -04:00
Jonathan Rainville 17c16039a6 fix(community): fix community members not loaded on start
Fixes #5335

The issue was on status-go's side. It didn't populate members when
calling getChats
2022-04-06 09:27:19 -04:00
Iuri Matias 8cb3dcd25e bump status-go 2022-04-04 13:07:36 -04:00
Anthony Laibe b84b56c3c0 refactor(@general): move all token related to status-go 2022-04-04 13:07:36 -04:00
Jonathan Rainville ea11107759 chore: up status-go version 2022-04-04 10:28:46 -04:00
Richard Ramos b1e5ecc115 feat: discV5 2022-04-01 17:43:09 -04:00
Jonathan Rainville 666c865112 feat(chat): implement new getChats API for the backend
Fixes #4878 but new issues will be created to split the implementation
2022-04-01 15:53:49 -04:00
Sale Djenic e83e5670a4 feat(@desktop/contacts): support sending contact request to chat key
Fixes #5175
2022-03-30 18:35:49 +02:00
Khushboo Mehta 4b9b93a873 fix(@desktop/chat): Downlaoding/Copying an image from chat crashes the app
The issue was caused because the data being passed to the UI is now a URL and not image data.

Added support to download/copy image by URL

fixes #5194
2022-03-30 10:06:52 +02:00
Richard Ramos ff12bec631 feat: switch fleet 2022-03-29 22:02:00 -04:00
Anthony Laibe 4b22a709ba feat(@wallet): link test/prod networks 2022-03-29 13:49:30 +01:00
Noelia 8f996992b2 feat(onboarding / privacy): Integrate password validation (zxcvbn lib) in new password screens
Use new `PrivacyStore` method getPasswordStrengthScore and link it to the new password strength bar value.

Used backend/general to call to `status-go` method and services/general to define the common `GetPasswordStrengthScore` service.

Added onboarding chain to get password strength score information from `OnboardingStore` to `status-go` call.

Closes #5096
2022-03-24 18:17:04 +01:00
Richard Ramos 1cb7deff36 bump status-go to get latest go-waku 2022-03-23 12:05:33 -04:00
Anthony Laibe 4b91888433 feat(@wallet): move fetch prices
also make only one call rather than one call per couple token/currency
2022-03-23 08:54:37 +00:00
Patryk Osmaczko 9e0b8c5e90 chore: make (emoji/color)Hash direct status_go call 2022-03-18 21:12:39 +01:00
Noelia 317ac06e43 feat(privacy): Added password strength calls
Added all necessary methods to call to a new `status-go` endpoint that allows to get the password strength quality info.

Closes #4980
2022-03-18 13:43:01 +01:00
Richard Ramos b07910e27f feat: display name 2022-03-14 15:17:04 -04:00
Richard Ramos 228a1ed88d chore: bump status-go 2022-03-14 11:11:11 -04:00
Anthony Laibe 0908b13ad5 feat(@settings): new dapp permissions view 2022-03-14 13:48:57 +01:00
Iuri Matias f9c2d20d65 chore: bump status-go 2022-03-11 15:52:47 -05:00
Richard Ramos 8183d4e317 chore: add status.prod fleet 2022-03-11 15:52:47 -05:00
Richard Ramos 3c7779305b feat: move stickers business logic to status-go 2022-03-09 12:16:42 -04:00
Alexandra Betouni f8aebda0dd fix(statusChatInput): update mentions behavior when text is pasted
Fixed to update mentions positions when text is pasted or
added before those

Closes #4867
2022-03-03 15:00:51 -05:00
Richard Ramos e3b70ef7fa chore: bump status-go 2022-03-03 14:36:17 -05:00
Richard Ramos d2d07236fd chore: bump status-go 2022-02-24 11:11:28 -05:00
Richard Ramos e46f3bdad1 chore: bump dotherside 2022-02-24 10:47:41 -04:00
Richard Ramos d4f8b63292 feat: add status.test fleet 2022-02-23 15:48:06 -05:00
Richard Ramos 8c95e65ebf fix: code review 2022-02-21 17:30:50 -04:00
Richard Ramos ae09dfb04b feat: use http server for images and identicons 2022-02-21 17:30:50 -04:00
Sale Djenic 6186bf9c8c fix(@desktop/general): app/os notifications
Fixes #4409
2022-02-21 22:01:19 +01:00
Richard Ramos 46467546a8 chore: bump status-go 2022-02-21 09:41:20 -05:00
Anthony Laibe 03b4bb0511 feat(@wallet): Add opensea api key 2022-02-16 10:29:00 +01:00
Richard Ramos 39157adea4 bump status-go 2022-02-15 12:50:38 -05:00
Jonathan Rainville 16e7d16c8c feat(communities): re-implement community link unfurling
Fixes #4788
2022-02-14 17:03:41 -05:00
Anthony Laibe 56340bebd1 chores(@general): remove status-lib deps 2022-02-03 11:52:45 -05:00
Khushboo Mehta 69860ffe55 feat: bump status go 2022-02-02 18:42:47 +01:00
Khushboo Mehta 8ec5c43591 feat: bump status go version 2022-02-02 10:53:22 +01:00
Sale Djenic eb41dbe175 refactor(@desktop/general): repo cleaning
- all unused/unnecessary files remove
- `status-lib` references updated due to cleaning on that side
- necessary submodules added (those removed from status lib)
2022-02-01 11:52:33 +01:00
Sale Djenic 6e3b065d34 refactor(@desktop/general): app sections handled within main module 2022-02-01 11:32:28 +01:00
Patryk Osmaczko ee462ea178 fix(@desktop/input): deploy Qt plugin to support fcitx
Qt provides support for various input methods through plugins.
Since the fcitx plugin is not delivered with Qt, it needs to be
built and deployed by us.

Fixes: #4436
2022-01-26 18:11:39 +01:00
Anthony Laibe 6915c19c84 feat: move create accounts to status-go 2022-01-24 10:44:31 +01:00
Richard Ramos 047c4f0839 chore: change dns discovery url 2022-01-18 14:15:46 -04:00
Anthony Laibe f8f0952b56 feat(@ens): use register api 2022-01-14 12:55:33 +01:00
Anthony Laibe 1bbb9d345d feat: move token balance retrieval to status go 2022-01-14 10:43:25 +01:00
Richard Ramos e88a936193 refactor: mailserver cycle 2022-01-12 16:04:12 +00:00
Khushboo Mehta 04f6d022ab chore: bump status-go to latest version
fixes #4353
2022-01-06 13:06:23 +01:00
Anthony Laibe 64edace12a feat: Use ens API 2022-01-03 10:35:22 +01:00
Richard Ramos 528210b50f fix: ensResourceURL 2021-12-22 16:13:23 +00:00
Anthony Laibe 8bc678dacd feat(ens): new backend 2021-12-21 16:40:01 +01:00
Richard Ramos 56743143bb fix: public chat history is not shown when leaving and rejoining the chat
Fixes #4101
2021-12-09 22:02:58 +00:00
Anthony Laibe 22181ea0ee chore: bump status-lib 2021-12-07 15:33:53 +01:00
Alexandra Betouni 5e88a9a91b refactor(desktop): Removed all timeline related code
Removed all timeline associated code from base_bc.
This feature is deprecated and shall be removed

Closes #4064
2021-12-03 19:55:45 +02:00
Alexandra Betouni b4b28d2f98 feat(desktop/contacts) Improvements in contacts
Contacts updates currently in base_bc

Closes #4100
2021-12-01 20:51:06 +02:00
Anthony Laibe cbd9ee5d67 chore: bump statusgo via statuslib 2021-12-01 16:49:32 +01:00
Anthony Laibe 2d49da7331 feat: Allow to enable auto message 2021-11-29 14:46:38 +01:00
Anthony Laibe 2cd9dd82d1 fix(@desktop/chat): Fix resend sticker showing wrongly 2021-11-26 15:37:26 +01:00
Richard Ramos 6dd47536e3 chore: bump go-waku 2021-11-25 11:11:33 -04:00
Jonathan Rainville 66840da455 fix(LinkMessages): fix various problems with link messages not showing
Fixes #4131
2021-11-25 11:38:08 +01:00
Pascal Precht 71d2ab25c0 fix: make contact related APIs working again
This adjust the changes needed to have Status Desktop
talk to new contact related APIs that were introduced in status-lib
and status-go as of https://github.com/status-im/status-lib/pull/110

Closes #4147
2021-11-23 14:46:05 +01:00
Richard Ramos 29b1d30bed fix: connection modal 2021-11-19 10:19:11 -04:00
Richard Ramos 1989ad7971 refactor!: provider transactions 2021-11-19 10:19:11 -04:00
Richard Ramos 0597fab1ac chore: bump status-go 2021-11-18 19:46:52 -04:00
B.Melnik 2d8a6e0684 fix: crash when we use custom network
Closes: #3963
2021-11-18 21:09:39 +03:00
Pascal Precht 23b72a9e8d feat(ActivityCenter): allow users to mark notifications as unread
As raised in #3665, users aren't able to mark activity center notifications as unread.
The APIs for that didn't exist yet so they have been added in:

- status-go (https://github.com/status-im/status-go/pull/2383)
- status-lib (https://github.com/status-im/status-lib/pull/53)

respectively.

Closes #3665
2021-11-18 11:04:49 +01:00
Anthony Laibe fb687383b6 chore: bump status-lib 2021-11-15 15:45:28 +01:00
Iuri Matias 750694032c chore: update status-lib 2021-11-10 15:01:00 -05:00
Anthony Laibe f913dce44a feat: allow to enable/disable telemetry 2021-11-10 10:14:40 -05:00
Richard Ramos 1315b0534d feat: mailserver signals and improvements
- Remove unneded mailserver request when joining a channel
- Add extra details to mailserver logs (request id, and num batches)
- Add signal emitted each time a batch is processed
2021-11-09 17:03:17 -05:00
Richard Ramos 5acff4e45c feat: wakuv2 rendezvous
feat: wakuv2 rendezvous

bump status-lib

bump status-lib

bump status-lib
2021-11-09 15:43:15 -05:00
Iuri Matias 8dace226c5 bump status-lib 2021-11-05 11:02:45 -04:00
Iuri Matias 577182be49 bump status-lib 2021-11-05 11:02:45 -04:00
Anthony Laibe 43e10aa4cf fix: transaction request 2021-11-05 11:02:45 -04:00
Anthony Laibe 59f604349c refactor(@wallet/desktop): refactor wallet with new architecture
refactor: wallet: connect current account

refactor(@wallet): load collection and connect to store

refactor(@wallet): add boilerplate for accounts creation/generation

refactor(@wallet): watch account

refactor(@wallet): Add account generation

refactor(@wallet): display all accounts

refactor(@wallet): switch account

refactor(@desktop): update current currency

refactor(@desktop/wallet): token action

refactor(@desktop/wallet): Add update account

refactor(@desktop/wallet): filter chat account from wallet

refactor(@desktop/wallet): Update currency attribute

refactor(@desktop/wallet): Fix display of various balances

refactor(@dekstop/wallet): handle current account changed

refactor(@wallet/desktop): add notify event on main section

refactor(@desktop/wallet): Push events from service

refactor(@desktop/wallet): handle all tokens event

refactor(@desktop/wallet): refresh accounts on event

refactor(@wallet/desktop): formatting of currency balances

refactor(@desktop/wallet): load collectible

refactor: refactor wallet transaction history to the new architecture

update status-lib

refactor: add back events for the transaction history

refactor: support multiple accounts in the transaction history
2021-11-05 11:02:45 -04:00
Iuri Matias 351b7b9662 bump status-lib 2021-11-05 11:02:45 -04:00
Richard Ramos c0d87dd063 refactor: provider pt1 and dapp permissions service 2021-11-05 11:02:45 -04:00
Richard Ramos 70c1095b60 refactor: creating module for bookmarks and provider 2021-11-05 11:02:45 -04:00
Iuri Matias e0deb28e8f update status-lib 2021-11-05 11:02:45 -04:00
Anthony Laibe 142d2a9188 refactor(@desktop/wallet): enable check recent history 2021-11-05 11:02:45 -04:00
Anthony Laibe 7e22ff161c refactor(@desktop/wallet): add balance and price 2021-11-05 11:02:45 -04:00
Anthony Laibe 0d129fa7fd refactor(@desktop/wallet): Add settings service and to module 2021-11-05 11:02:45 -04:00
Anthony Laibe 072b36e672 Fix rebase 2021-11-05 11:02:45 -04:00
Anthony Laibe ad7b6f7087 refactor(@desktop/wallet): init boilerplate code for wallet section 2021-11-05 11:02:45 -04:00
Sale Djenic e9bb9b256e Onboarding creating new account process updated. 2021-11-05 11:02:45 -04:00
Sale Djenic 9f4eeffdea A base structure for new architecture added
Initial structure for MainModule containing ChatSectionModule and
CommunitySectionModule is added, as well as initial structure for
StartupModule containing OnboardingModule and LoginModule.

Order of execution is updated and adapted to the current app state.
Main module gets loaded once a user is successfully logged in.
2021-11-05 11:02:45 -04:00
Pascal Precht b8ecc3e0bf fix(Communities): preserve channel position after editing
Turns out we've been accidentally resetting the channel's `position`
property to `0` by not sending it over to status-lib's underlying
`editCommunityChat` API.

This fixes it by using a newer version of status-lib which supports
the `position` paramter in `editCommunityChat` and then sending that
value along from the edit channel popup.

Fixes #3672
2021-10-08 13:33:42 +02:00
Richard Ramos 662ff98f6a nim-keycard-go: m1 support 2021-10-06 09:24:37 -04:00
Iuri Matias f66e8f329a bump status-lib 2021-10-05 16:15:29 -04:00
Richard Ramos 2736176aa8 bump status-lib 2021-10-05 16:15:29 -04:00
Richard Ramos 0fd3182899 refactor: contacts-perfomance 2021-10-05 16:15:29 -04:00
Anthony Laibe a189b0d72b refactor: Update permission backend 2021-10-05 16:15:29 -04:00
Anthony Laibe 8fab06494a refactor: Add view with new eth backend 2021-10-05 16:15:29 -04:00
Anthony Laibe f4e3a1effc refactor: profile types
Also group import together and start local import with ./ so that we
know it is not a lib
2021-10-05 16:15:29 -04:00
Richard Ramos 2ccd7420c0 feat: wakuv2 rendezvous 2021-10-05 16:15:29 -04:00
Richard Ramos a5d48a20b3 feat: wakuV2 light client mode 2021-10-05 16:15:29 -04:00
Richard Ramos 350472ed03 fix race condition by setting the peers on init 2021-10-05 16:15:29 -04:00
Anthony Laibe 3acabfd2a8 refactor: ensure settings is accessed via model 2021-09-30 16:37:07 +02:00
Richard Ramos 5c937a28a3 chore: remove status-go from desktop 2021-09-29 14:50:09 -04:00
Iuri Matias 03f088461a bump status-lib 2021-09-29 11:57:01 -04:00
Anthony Laibe 3fa328f8b8 Fix: loading bookmark from type 2021-09-29 11:57:01 -04:00
Anthony Laibe d519843e52 refactor: contact store use object 2021-09-28 15:23:40 -04:00
Anthony Laibe 1cea69b331 feat(@desktop/wallet2): Toggle network 2021-09-28 15:20:43 -04:00
Iuri Matias 38a1528598 bump status-go & qr-code-generator 2021-09-28 15:17:28 -04:00
Richard Ramos 36e4fb2f8f crosscompile to amd64 when building on darwin/arm64 2021-09-28 15:17:28 -04:00
Richard Ramos 176b559877 fix: message history issues
- Display loading indicator on login when mailserver messages are requested
- Fix bug where the mailserver that's selected as soon as you login is disconnected while being still in the process of connecting instead of waiting until 10s have passed to try connecting to a different mailserver
- Use status-go version that fixes an issue fetching mailserver messages when more than 999 messages are being verified if they're in the cache
2021-09-28 14:55:37 -04:00
Richard Ramos f43a1a65ea fix: message history issues
- Display loading indicator on login when mailserver messages are requested
- Fix bug where the mailserver that's selected as soon as you login is disconnected while being still in the process of connecting instead of waiting until 10s have passed to try connecting to a different mailserver
- Use status-go version that fixes an issue fetching mailserver messages when more than 999 messages are being verified if they're in the cache
2021-09-28 14:26:19 -04:00
Iuri Matias 533123c435 bump status-lib 2021-09-23 13:36:36 -04:00
Anthony Laibe 3660bad243 fix(@desktop/wallet): emit wallet2 event
fixes #3659

Wallet2 needs its own event otherwise they wallet1/2 mixes
and as not everything is implemented in wallet2, it crashes
In this particular case, the account is added into wallet1 but trigger
an event intercepted by wallet2, wallet2 doesn't have the new account
and crash
2021-09-23 13:36:36 -04:00
Sale Djenic f54f3a61bf fix(@desktop/chat): removing contact results in the same contact's contact request showing up again
Fixes: #3418
2021-09-22 15:27:52 -04:00
Iuri Matias c908b4abb0 bump status-lib & status-go 2021-09-22 14:17:49 -04:00
Anthony Laibe 83a0ea391d feat(@desktop/wallet): Add chain id to internal API 2021-09-22 14:17:49 -04:00
Sale Djenic da6c42fd19 fix(@desktop/chat): custom userpic appearance is not consistent for blocked/unblocked user
Fixes: #3420
2021-09-21 14:27:53 -04:00
Iuri Matias 98bebb8c51 bump status-lib 2021-09-21 09:53:15 -04:00
Eric Mastro 233d1f4da4 fix: block/unblock contacts not persisting
Fixes: #3473.

Sometimes when blocking users and changes channels, blocked user messages would still appear.

This PR fixes the issue by toggling a `hide` property on  messages from a contact when that contact is blocked or unblocked. Previously, the messages were only removed from the view when the contact was blocked, but when the view was reloaded, that state was not tracked correctly.
2021-09-21 09:53:15 -04:00
Sale Djenic 0c73febf2c fix(@desktop/chat): channel links sends to main public channel instead of a channel in that community
In case clicked channel:
- exists in a community -> the app will switch you to it
- doesn't exist in a community, but exists in the public chat list -> the app
  will switch to `Chat` section and also to the appropriate channel there
- doesn't exist in a community and doesn't exist in the public chat list -> the app
  will switch to `Chat` section and join new channel

Fixes: #3489
2021-09-20 17:34:38 -04:00
Iuri Matias 53d1cf3afd bump status-lib & status-go 2021-09-20 12:30:39 -04:00
Iuri Matias 00adec07c2 bump dotherside & nimqml 2021-09-20 11:37:30 -04:00
Iuri Matias 83e86a6568 bump dotherside & nimqml 2021-09-20 11:37:30 -04:00
Anthony Laibe 5f95a1fb4f feat(@desktop/chat): Allow to retry when query fail
fixes #3487
2021-09-20 10:21:55 -04:00
Iuri Matias 990e807008 bump status-lib 2021-09-20 09:52:24 -04:00
Anthony Laibe d804e15f27 fix(@desktop/contacts): Keep only one contacts list
fixes #3485
2021-09-20 09:52:24 -04:00
Richard Ramos 214069cb25 feat: display mailserver interactions 2021-09-17 13:14:01 -04:00
Richard Ramos d738537f44 fix: missing signal type 2021-09-17 12:56:56 -04:00
Iuri Matias 56116709b6 bump dotherside & nimqml 2021-09-17 12:47:52 -04:00
Sale Djenic 8af104a16e feat(@desktop/onboarding): support (optionally) OS keychain to login password
This feature works for MacOs only, for now.

On login, whether new or already created user may select between options:
"Store" - store password to the Keychain
"Not now" - don't store it now, but ask next time again
"Never" - don't store them ever and don't ask again

Selected preference may be changed later in:
`ProfileSettings > Privacy and security > Store pass to Keychain`

On the next app run, if `Store` was selected, a user will be asked to confirm
his identity using Touch Id in order to log in the app. If any error happens
he will be able to login using password.

Fixes: #2675
2021-09-17 12:45:34 -04:00
Sale Djenic e0c53b7012 refactor(@desktop/general): managing local settings added on the nim side
From now on we are able to access local settings (settings and global settings)
on the nim side, not only through the qml.

This change is required as part of the feature issue-2675.
2021-09-17 12:45:34 -04:00
Sale Djenic 590e4dd632 fix(@desktop/chat): replies are not working in communities
Fixes: #3490
2021-09-17 10:50:42 -04:00
Anthony Laibe aa8060221c chore: bump status go 2021-09-17 10:35:55 +02:00
Iuri Matias dc150005f4 bump status-lib 2021-09-16 17:35:58 -04:00
Iuri Matias 65cce54443 bump dotherside 2021-09-16 16:54:16 -04:00
Anthony Laibe 5ce06a94cc feat(@desktop/chat): download messages
fixes #3508
2021-09-16 16:37:58 -04:00
Iuri Matias 71d709b256 bump status-go and status-lib 2021-09-16 15:39:10 -04:00
Khushboo Mehta b9073919cb feat(@desktop/wallet2): Added traits for the opensea Assets
fixes #3435
2021-09-16 15:39:10 -04:00
Iuri Matias d8222a49de bump status-lib 2021-09-15 16:04:28 -04:00
Richard Ramos 03eed589a9 feat: display logs in node management section 2021-09-15 16:04:28 -04:00
B.Melnik d3c9564d91 feat(Spellchecking): Add bottle for spellchecking
Usage:

```qml

SpellChecker {
   id: spellchecker
   lang: "en"
}

```

Closes: #3442
2021-09-15 15:04:26 -04:00
Iuri Matias df29177389 bump dotherside and nimqml 2021-09-15 14:30:34 -04:00
Andrei Smirnov d159c0e61c feat(@desktop/deep-links): integrated deep links with single-instance IPC 2021-09-15 14:30:34 -04:00
Andrei Smirnov 1418306d6b Bumped DOtherSide 2021-09-15 12:18:09 -04:00
Iuri Matias 93aa7e6ae7 bump status-lib 2021-09-11 17:51:52 -04:00
Iuri Matias 659cb6df18 bump status-lib 2021-09-11 17:51:52 -04:00
Iuri Matias 731c6ed156 bump status-lib 2021-09-11 08:45:49 -04:00
Iuri Matias 63f557d4af bump status-lib 2021-09-11 08:45:49 -04:00
Iuri Matias 7013a677ac bump status-lib 2021-09-10 13:42:19 -04:00
Richard Ramos 285f54dab6 EIP1559 2021-09-10 13:42:19 -04:00
Richard Ramos 58c50a9cf9 refactor: removed submodules 2021-09-10 11:56:27 -04:00
Richard Ramos a13a0e0d3a refactor: extract app constants from status-lib to desktop 2021-09-10 11:56:27 -04:00
Richard Ramos 2599903ca4 bump status-lib 2021-09-10 11:01:17 -04:00
Iuri Matias d4af7c4689 bump status-lib 2021-09-09 17:49:23 -04:00
Iuri Matias 4f5565efc6 bump status-lib 2021-09-09 17:49:23 -04:00
Iuri Matias f00e8c4362 bump status-lib 2021-09-09 17:49:23 -04:00
Iuri Matias 4f3e75bdce bump status-go 2021-09-09 17:49:23 -04:00
Anthony Laibe 22831f124f feat(@desktop/wallet2): Fetch networks on wallet init 2021-09-09 17:49:23 -04:00
Iuri Matias a81f4aa9ce bump statuslib 2021-09-09 16:53:09 -04:00
Iuri Matias a771687cdf bump statuslib 2021-09-09 16:53:09 -04:00
Iuri Matias 8519577fcb bump status-lib 2021-09-09 15:17:16 -04:00
Richard Ramos 55c48d65bd fix: status lib module name 2021-09-09 14:35:51 -04:00
Richard Ramos d32c3e53d9 refactor: signal handling 2021-09-09 14:35:51 -04:00
Richard Ramos 32049aa928 refactor: extract status to separate repository 2021-09-08 15:52:43 -04:00
Andrei Smirnov 8f9c46bfef Bumped DOtherSide submodule version 2021-09-07 14:56:48 -04:00
Iuri Matias 1a3220e359 fix dependencies 2021-09-06 16:39:37 -04:00
Sale Djenic a591e91a2e fix(@desktop/general): clicking push notification does expand the app but does not open correct channel/chat
Logic for adding os notifications for Windows and  MacOs added.

Fixes: #2996
2021-09-06 16:39:37 -04:00
Iuri Matias 4dad55aad1 bump dotherside & nimqml 2021-09-02 15:58:13 -04:00
Andrei Smirnov 616090da3d Bumped NimQML 2021-09-02 15:58:13 -04:00
Andrei Smirnov f74d1a67a5 fix(@desktop): various UI scaling fixes 2021-09-02 15:58:13 -04:00
Iuri Matias 414637a260 bump status-go 2021-08-31 15:18:42 -04:00
Richard Ramos 0f26ddc166 fix: memory leak with cstrings 2021-08-31 15:18:42 -04:00
Iuri Matias 1640a7c947 bump status-go 2021-08-31 15:01:24 -04:00
Iuri Matias f1e807fe90 bump status-go 2021-08-26 16:38:47 -04:00
Iuri Matias 9260bf80df bump status-go 2021-08-26 16:38:47 -04:00
B.Melnik a362efecf4 feat(Communities): implement drag and drop to reorder category channels
Closes: #2776
2021-08-26 10:53:57 +02:00
Richard Ramos 6561e0ea26 switch deletedMessages from string array to object array 2021-08-25 10:44:24 -04:00
Richard Ramos db3b7ecfd9 feat: Version Updating
Fixes #1290
2021-08-24 16:56:55 -04:00
Iuri Matias 329d37e377 bump status-go 2021-08-20 16:17:19 -04:00
Anthony Laibe 98943f6d72 feat(@desktop/wallet2): New collectibles API 2021-08-20 16:17:19 -04:00
Richard Ramos 681291b4b1 update nimbus-build-system 2021-08-20 15:12:15 -04:00
Iuri Matias a3ab31edba bump vendor 2021-08-19 16:26:59 -04:00
Sale Djenic e2628338de feature(@desktop/chat): implement search results for communities, channels
Added a part for fetching messages from multiple chats/channels/communities.

Fixes: #2934
2021-08-19 16:26:59 -04:00
Iuri Matias 8676533339 bump dotherside & nimqml 2021-08-19 10:35:09 -04:00
Khushboo Mehta 8caf95aace feat(MessageContextMenu): Allow Copy and Download Image
Added copy and download Image functionality on right click of an image or its preview

closes #2672
2021-08-19 10:23:18 -04:00
Iuri Matias c43d0149ee bump dotherside 2021-08-17 12:20:08 -04:00
Alexandra Betouni 581557cf7e fix(desktop/chat)Adding custom syntax highligther to StatusChatInput
And disabling all previous text formatting

Closes #2920
Closes #3063
2021-08-17 12:20:08 -04:00
Iuri Matias a77cc682bb bump dotherside & nimqml 2021-08-16 16:27:14 -04:00
Sale Djenic 04ca90a7d0 fix(@desktop/general): Changing System Appearance on the fly is not working
App is responsive to the OS theme change event.
Now we're following system set theme when the app is started.

Corresponding part on the side on nimqml is added.

Corresponding part on the side on dotherside is added.

On the side of dother side we had kind of a memory leak, cause objects added to
the filter were not deleted ever. When the app is closing, it just removes
filters, but doesn't delete them.

I faced a logical issue, that we were sending qmlengine pointer to the
installEventFilter method, instead object which may or may not rely on the
qqmlengine instance, that is fixed also.

Fixes: #1725
2021-08-16 16:27:14 -04:00
Andrei Smirnov 60bfc22823 Updated vendor/nim-status-go version 2021-08-16 15:32:21 -04:00
Andrei Smirnov 8310a36bde feat(@desktop): change password 2021-08-16 15:32:21 -04:00
Sale Djenic 662d20b7ac fix(@desktop/general): right click the icon on the dock and press quit doesn't quit the app (macos)
This issue is reproducible on the app only if you're not logged in yet.
The issue is fixed mostly on the side of dotherside.

Fixes: #3112
2021-08-16 13:35:58 -04:00
Richard Ramos 77c3e1b211 fix: delete 2021-08-13 12:30:57 -04:00
Anthony Laibe ee84818c06 feat(@desktop/chat): Save favorites and recents gif 2021-08-10 15:31:19 +02:00
Iuri Matias 60bb622159 bumpb dotherside & nimqml 2021-08-05 15:12:34 -04:00
Richard Ramos 481184df25 fix: disable dynamic translations on linux 2021-08-05 15:12:34 -04:00
Sale Djenic 4ba08f02a5 Rebasing issues fixed (#3005) 2021-08-05 14:35:46 -04:00
Sale Djenic 74d868ab92 feature(@desktop/chat): implement search on sqlcipher (status-go side)
Searching messages by some term for a specific channel is added on the side of status-go and an
appropriate part on the side of nim is developed accordingly.

Fixes: #2912
2021-08-05 14:35:46 -04:00
Sale Djenic fbb9409b5e Submodules updated, after rebase. 2021-08-04 15:49:50 -04:00
Sale Djenic f0c605936d feature(@desktop/chat): implement search on sqlcipher (status-go side)
Searching messages by some term for a specific channel is added on the side of status-go and an
appropriate part on the side of nim is developed accordingly.

Fixes: #2912
2021-08-04 15:49:50 -04:00
Richard Ramos 96f3d6b8e1 chore: bump status-go 2021-08-04 14:02:21 -04:00
Iuri Matias cd8b539dc6 bump status-go 2021-08-03 15:41:56 -04:00
Richard Ramos b5be7f8569 fix: code review 2021-08-03 15:41:56 -04:00
Richard Ramos eb9734a72d feat: bandwidth stats
Fixes #2935
2021-08-03 15:41:56 -04:00
Jonathan Rainville 9f21740bae feat: add api to delete a community channel 2021-08-02 14:08:51 -04:00
Iuri Matias 50c6e0b0a0 bump status-go 2021-07-26 17:14:07 -04:00
Jonathan Rainville 7d169e85f2 fix(delete): disable deleting certain message types 2021-07-26 17:14:07 -04:00
Jonathan Rainville 523e94ae0c feat: enable to delete messages
Fixes #2775
2021-07-26 17:14:07 -04:00
Jonathan Rainville fa94d3d2db fix: useless log
Fixes #2907
2021-07-23 14:35:50 -04:00
Iuri Matias 3470583fd4 bump dotherside & nimqml 2021-07-23 13:22:04 -04:00
Andrei Smirnov 201a87d052 Updated submodules and fixed SystemTrayIcon menu. 2021-07-23 13:22:04 -04:00
Andrei Smirnov b3528bd717 fix(@desktop): missing context menu on SystemTrayIcon 2021-07-23 13:22:04 -04:00
Iuri Matias a406a24df5 bump status-go 2021-07-22 13:48:53 -04:00
Richard Ramos 9c3db82278 bump statusgo 2021-07-22 13:48:53 -04:00
Richard Ramos 3707f67637 bump status-go 2021-07-22 13:48:53 -04:00
Richard Ramos 6849091460 feat: community user status pt 2 2021-07-22 13:48:53 -04:00
Richard Ramos 42a31f66b3 update statusgo 2021-07-21 15:09:23 -04:00
Richard Ramos 561991da67 Add wakuv2 fleets 2021-07-21 15:09:23 -04:00
Pascal Precht 9795890544 ui(Communities): remove unnecessary dividers in modals
There was a change in StatusQ that introduced dividers for modal footers
and headers, so we don't need to put them in the content manually anymore.

This commit removes the no longer needed ones.
2021-07-20 08:40:29 -04:00
Michael Bradley, Jr 88b990a21a build: bump vendor/nimbus-build-system 2021-07-16 17:40:40 -04:00
Jonathan Rainville e1c6cf224b fix(act-center): fix unread count when accepting or dismissing notif
Fixes #2727
2021-07-06 12:51:43 -04:00
Jonathan Rainville 2e98724641 feat(community): add notification setting to community
Fixes #2421
2021-07-06 10:41:10 -04:00
Jonathan Rainville a6ecf6b092 chore: update status-go to latest version 2021-06-29 10:18:01 -04:00
Eric Mastro 557c068983 fix: update community invite text in push notification
Changes the community invitation text notifications from

“Upgrade to see a community invitation”

to

**InviteUsersToCommunity**
```golang
fmt.Sprintf("You have been invited to the community %s", community.Name())
```

**ShareCommunity**
```golang
fmt.Sprintf("Community %s has been shared with you", community.Name())
```
2021-06-29 07:54:33 -04:00
Richard Ramos 1d3e5230b2 revert: SortFilterProxyModel 2021-06-23 08:08:08 -04:00
Richard Ramos fd4e0de3f3 feat: SortFilterProxyModel 2021-06-21 16:28:46 -04:00
Richard Ramos e6bfd52e73
fix: status-go version 2021-06-18 11:00:27 -04:00
Iuri Matias eab9d68aff move types out of libstatus; remove libstatus types references 2021-06-17 11:11:36 -04:00
Jonathan Rainville e27c66d8af feat(act-center): hide viewed notifications when clicking the hide btn 2021-06-15 13:14:19 -04:00
Jonathan Rainville 447794f0e7 update status-go 2021-06-15 13:14:19 -04:00
Jonathan Rainville 32676d50af fix: fix pinnedBy not being right when reopening the app 2021-06-11 10:55:55 -04:00
Richard Ramos 086653ac52 fix: code review 2 2021-06-10 19:33:22 -04:00
Eric Mastro fee211483d feat: edit community channels
Closes #2344.

Add ability to edit name, description, and private fields of a community channel.

feat: Display community channel description
Ensure the width of the description does not surpass the context menu and instead wraps to the next line.

feat: After channel is created, set it as the active channel
2021-06-10 19:33:22 -04:00
Eric Mastro 21e6affa98 feat: edit community channels
Closes #2344.

Add ability to edit name, description, and private fields of a community channel.

feat: Display community channel description
Ensure the width of the description does not surpass the context menu and instead wraps to the next line.

feat: After channel is created, set it as the active channel
2021-06-09 10:19:26 +10:00
Iuri Matias 739f243e8a fix status-go version 2021-06-02 12:58:05 -04:00
Iuri Matias aa57de15a9 point to latest commit of DOtherSide 2021-06-02 11:05:28 -04:00
B.Melnik f433020d1d feat: commit dotherside 2021-06-02 11:05:28 -04:00
Jonathan Rainville 18b26a1c67 start of activity center function calls 2021-05-31 15:54:18 -04:00
Michael Bradley, Jr 4e477a5b64 build: bump vendor/DOtherSide
Fix a typo in a recently added header file in DOtherSide that causes problems
on case-sensitive filesystems, e.g. on Linux.

Also unify the build command for DOtherSide across platforms.
2021-05-27 18:25:26 -05:00
Jonathan Rainville 0cfa4e5daa update status-go version to match master 2021-05-26 12:12:05 -04:00
Jonathan Rainville b52dceb984 feat(Chat): add pinned messages feature 2021-05-26 12:12:05 -04:00
Richard Ramos 6abba06c42 fix: always show the v 2021-05-25 15:23:07 -04:00
Richard Ramos 0ded790f0d feat: create community categories 2021-05-25 15:23:07 -04:00
Richard Ramos aebfaef72e Update status-go version 2021-05-25 14:47:13 -04:00
Richard Ramos 22839f177b feat: use new API for joining/leaving chats
Fixes #2526
Fixes #2487
2021-05-25 14:47:13 -04:00
Pascal Precht 923350a46f fix(Chat): honor joined date when preserving channel order
Prior to this commit, loaded channels and chats would always be
sorted by date of last message received, with the latest one being
moved to the top of the list.

When new channels or chats are joined, they are added on top of the
list as well, however, when the application is restarted,
those new joined chats would not necessarily show up at the top anymore
becaue nothing keeps track of when a channel was joined, which should
be taken into account when preserving the order.

The changes introduced in this commit solve this by introducing a
new `joined` property on the `Chat` type which gets updated with
the current timestamp whenever a channel is joined.

It also depends on the changes made to the `status-go` client, which
have to land first: https://github.com/status-im/status-go/pull/2158

Closes: #1832
2021-05-21 13:06:34 -04:00
Richard Ramos 2000018834 bump status-go version 2021-05-18 15:24:05 -04:00
Richard Ramos 3a042a4a09 feat: use new pending transfer API 2021-05-18 15:24:05 -04:00
Richard Ramos 19d4279237 use new wallet api to receive wallet signals 2021-05-18 15:24:05 -04:00
Eric Mastro 29ac475385 feat: add DockClicker event filter
Add an event filter to `qApp` that can detect a dock icon click (in macos) when the main window is hidden or closed.

When the event has been triggered, the main window will be shown again.

Co-authored-by: Boris Melnik <82511785+borismelnik@users.noreply.github.com>
2021-05-14 10:28:14 -04:00
Jonathan Rainville 6567dcadec chore: update status-go 2021-04-29 12:30:05 -04:00
Michael Bradley, Jr c03a086c01 feat: command-line option can be used to specify app's data directory
In the repo:
```
$ bin/nim_status_client --help
```
In the packaged app (macOS example):
```
$ cd /Applications/Status.app/Contents/MacOS
$ ./nim_status_client --help
```
Output:
```
Usage:

nim_status_client [OPTIONS]...

The following options are available:

 -d, --dataDir      Status Desktop data directory.
```

**Using the option**

```
$ cd ~/status-ci-builds/master/Status.app/Contents/MacOS
$ ./nim_status_client --dataDir:"${HOME}/status-dirs/master"
```
In another terminal:
```
$ cd ~/status-ci-builds/PR-4242/Status.app/Contents/MacOS
$ ./nim_status_client --dataDir:"${HOME}/status-dirs/PR-4242"
```

The path supplied can be relative or absolute, and can be specified with
`--dataDir:[path]`, `--dataDir=[path]`, `-d:[path]`, or `-d=[path]`.

Either `:` or `=` must be used, i.e. this *will not* work: `--dataDir [path]`
or `-d [path]`.

The name of the option follows Nim's partial case-insensitivity rules, so
`--dataDir`, `--datadir`, and `--data_dir` are all equivalent. See
[Identifier equality][ieq] in the Nim Manual.

It is possible to run the same build in multiple terminals by supplying
different `--dataDir`, i.e. this works:
```
$ cd /Applications/Status.app/Contents/MacOS
$ ./nim_status_client --dataDir="${HOME}/temp/some1"
```
In another terminal:
```
$ cd /Applications/Status.app/Contents/MacOS
$ ./nim_status_client --dataDir="${HOME}/temp/some2"
```

**Windows**

It is recommended to use a Git Bash or MSYS2 terminal when invoking
`bin/nim_status_client.exe` (development build) or `bin/Status.exe` (production
build) on the command-line. The reason is that if the exe is invoked in a
session of `cmd.exe` it will return to the prompt immediately; the app will run
but there will be no output in the terminal. In any case, the `--dataDir`
option will take effect whether the exe is invoked in `cmd.exe` or a
recommended terminal.

For development builds, when invoking `bin/nim_status_client.exe` directly
instead of via `make run`, because e.g. you wish to use the `--dataDir` option,
it is required to first setup the `PATH` environment variable correctly. See
the `run-windows` target in this repo's Makefile for more information.

**Linux**

The `--dataDir` option may be passed to command-line invocation of a
production (AppImage) build in the same way as passing it to a development
build:

```
$ Status.AppImage --dataDir:/path/to/wherever
```

For development builds, when invoking `bin/nim_status_client` directly instead
of via `make run`, because e.g. you wish to use the `--dataDir` option, it is
required to setup the `LD_LIBRARY_PATH` environment variable correctly. See the
`run-linux` target in this repo's Makefile for more information.

---

BREAKING CHANGE: The `qt` subdir of the app's data directory is now a sibling
of the status-go directory rather than a subdir of the status-go directory:

```
Status (app data directory)
├── data (status-go directory)
├── qt
└── tmp
```

Because app settings are stored in the `qt` directory that means that existing
installations will lose their customized settings.

At app startup, it would be possible to detect `Status/data/qt` and if
`Status/qt` doesn't exist yet then copy `Status/data/qt` to
`Status/qt`. However, there was some concern that behavior could lead to
problems later on if we forget the workaround is in place. So for now that
settings preservation strategy has not been implemented, but it might be before
this commit is merged pending full team awareness/consensus.

---

Command-line option support is provided by
[nim-confutils](https://github.com/status-im/nim-confutils).

The environment variable `NIM_STATUS_CLIENT_DEV` has been removed in favor of
passing a "define" option to the Nim compiler: `-d:development` for development
builds (e.g. `make V=1`) and `-d:production` for packaged builds (e.g. `make
V=1 pkg`). Passing the correct option is handled automatically by the Makefile.

A make variable named `RELEASE` has been introduced, which defaults to
`false`. Presently the `RELEASE` variable should not be set on the command-line
nor in CI as more work needs to be done to toggle the proper compiler flags. In
the case of Status Desktop, "release vs. debug" is a concern orthogonal to
"production vs. development". At present, production builds and development
builds are all debug builds, but that will likely change in the future: we can
have non-release CI production builds and local development builds be debug
builds, while release builds in CI would be production builds with
`RELEASE=true` (the compiled executable will be fully optimized).

Prior to the changes in this PR, symmetry is somewhat lacking between
development and production (packaged) builds with respect to the concept of the
"data directory". In development builds the root of the repo effectively serves
as the `Status` directory used by production builds, e.g. on macOS
`~/Library/Application Support/Status`. Also, there's a bit of confusion as to
whether "data directory" refers to a directory for the desktop app's overall
data (including status-go data) or to the specific directory used by status-go.

This PR attempts to provide symmetry and reduce confusion:
* The term "data directory" means the directory used by the desktop app to
store multiple kinds of data and is not a reference to the subdirectory used by
status-go.
* For development builds the "data directory" defaults to `./Status/` relative
to the root of the repo.
* For production builds the "data directory" default is the same as before,
e.g. on macOS it's ` ~/Library/Application Support/Status/`.

The directory used by status-go is `Status/data/`. To be clear, that should be
referred to as the "status-go directory" and not the app's "data directory". It
would nice if we could rename it from `Status/data/` to `Status/status-go/`. We
can do that, I already checked that it works correctly; however, for existing
installations it would require that at app launch we check for the presence of
`Status/data/` and rename it to `Status/status-go`. While simple enough to do,
I was concerned that there might be edge cases where the directory rename could
cause a problem (e.g. if another copy of the app is running) so chose for now
to stick with the status-go directory being `Status/data/`.

---

**NOTES**

More work needs to be done to ensure that all data written by the app is
contained in the default or cli-specified data directory. Currently, both
development and production (packaged) builds are writing to common directories
outside of the data directory, e.g. located within `~/Library/` on
macOS. Changing that behavior seems like it will mainly involve changing
defaults related to Qt components such as the web engine. See:
https://github.com/status-im/status-desktop/issues/1141.

In general, additional refactoring could be done in the future. For
example, implementing `StatusDesktopConfig` in
`src/status/libstatus/accounts/constants.nim` (as done in this PR) works fine
for now, but better code organization is desirable.

---

Closes #2268

[ieq]: https://nim-lang.org/docs/manual.html#lexical-analysis-identifier-equality
2021-04-26 09:40:58 -05:00
Eric Mastro 82987305ab chore: bump dotherside and nimqml
Bump dotherside to a commit that is on its current master branch. The previous commit and the current commit have the same contents, however the previous commit lived on a branch, and not on the master branch of dotherside.

An attempt to bump nimqml to its master branch commit resulted in an error, which has been logged https://github.com/status-im/status-desktop/issues/2275. Instead, the commit change here is the same as dotherside — moving the commit hash from its branched version to the commit that lives on the master branch line. However, as mentioned already, it is not at master HEAD due to the error.
2021-04-21 17:57:29 -04:00
Eric Mastro 66912fd811 feat: introduce Task Manager threadpool
The `TaskManager` threadpool is a memory-safe replacement for the `spawnAndSend` operations that are currently causing memory issues in status-desktop.

From a fundamental memory management point of view, `libstatus/settings`, `libstatus/contracts`, and `libstatus/tokens` (custom tokens) have all been converted to `{.threadvar.}`s and `Atomic[bool]`s to maintain the cache and `dirty` flag across threads, respectively, eliminating the need for thread locks and incorrect `{.gcsafe.}` compiler overrides.

The successful [recyclable threadpool experiment from `nim-task-runner`](https://github.com/status-im/nim-task-runner/blob/test/use-cases/test/use_cases/test_sync.nim) using `AsyncChannel[ThreadSafeString]`s was brought over to `status-desktop` and implemented in somewhat of a hardcoded manner, as we knew this would save some time instead of trying to create a fully fleshed out `nim-task-runner` API and build a miraculous macro that may or may not be able to generate the needed API.

The threadpool is started by the `TaskManager` and both the `TaskManager` and the `TaskManager`'s threadpool are started as early as possible in the application lifecycle (in `nim_status_client.nim`). The `TaskManager` creates a thread to run the threadpool. During its initialization, the threadpool then spools up all the threads it will manage and puts them in an idle thread sequence. This is to prevent expensive thread creation and teardown happening during the app's lifetime as it is quite expensive and blocks the main thread. When tasks comes in to the pool, the task is sent to an idle thread, or put in a queue if all threads are busy. The idle thread is moved to the busy thread sequence. When a task is completed, the thread is taken out of the busy threads sequence and moved back in to the sequence of idle threads, effectively recycling it.

The first `spawnAndSend` we were able to change over to the new threadpool was `estimate`, which estimates the gas of a sticker purchase transaction.

From the consumer point of view, the existing `spawnAndSend` to achieve this looks like:
```nim
  proc estimate*(self: StickersView, packId: int, address: string, price: string, uuid: string) {.slot.} =
    let status_stickers = self.status.stickers
    spawnAndSend(self, "setGasEstimate") do:
      var success: bool
      var estimate = status_stickers.estimateGas(packId, address, price, success)
      if not success:
        estimate = 325000
      let result: tuple[estimate: int, uuid: string] = (estimate, uuid)
      Json.encode(result)
```
And the new syntax looks like this:
```nim
  proc estimate*(self: StickersView, packId: int, address: string, price: string, uuid: string) {.slot.} =
    self.status.taskManager.threadPool.stickers.stickerPackPurchaseGasEstimate(cast[pointer](self.vptr), "setGasEstimate", packId, address, price, uuid)
```
The logic inside the `spawnAndSend` body was moved to [src/status/tasks/stickers.nim](https://github.com/status-im/status-desktop/compare/experiment/tasks-3?expand=1#diff-09e57eef00b0cee5c4abdb9039f948d8372e7003e09e934a9b4c7e9167d47658).

This is just the first migration of `spawnAndSend`, however moving the majority of the remaining `spawnAndSend`s will likely just be an exercise in copy/pasta. There will be one or two that may require a bit more thinking, depending how they rely on data from the model.

Once the `spawnAndSend`s have been converted to the threadpool, we can start implementing the [long-running process from the task runner use case experiments](https://github.com/status-im/nim-task-runner/blob/test/use-cases/test/use_cases/test_long_running.nim).

And finally, we can then implement the [async tasks](https://github.com/status-im/nim-task-runner/blob/test/use-cases/test/use_cases/test_async.nim) if needed.

@michaelsbradleyjr and I spent many hours digging in to the depths of nim's memory management in an attempt to understand it. We have created [a presentation with our task runner experiment findings](https://docs.google.com/presentation/d/1ItCxAfsVTcIoH_E4bgvmHljhbU-tC3T6K2A6ahwAedk/edit?usp=sharing), and @michaelsbradleyjr has spent time [answering questions off the back of that presentation.](https://gist.github.com/michaelsbradleyjr/1eaa9937b3fbb4ffff3fb814f0dd82a9).

We have created a fork of `edn.nim` at `status-im/edn.nim` and we need the PR to be merged and the commit hash updated before we can merge this PR in to `status-desktop`.
2021-03-18 13:15:05 -04:00
Michael Bradley, Jr 016dd3081b refactor: nim_status -> status_go
Also, `status_go.startWallet` proc should be called with a boolean argument.
2021-03-16 16:37:27 -04:00
Michael Bradley, Jr c4e786bae3 build: add vendor/nim-status-go submodule 2021-03-16 16:37:27 -04:00
Michael Bradley, Jr 470d2e5a17 build: remove vendor/nim-status submodule 2021-03-16 16:37:27 -04:00
Richard Ramos e4cdb29a0b Update nimbus-build-system version 2021-03-11 10:36:18 -05:00
Jonathan Rainville f9817d4f52 feat: add community requests, permissions, ENS and more 2021-03-03 16:45:23 -05:00
Jonathan Rainville 98b3e64573 chore: update status-go version and update mailservers api 2021-02-22 10:01:19 -05:00
Jonathan Rainville c8a1de695c fix: update status-go to latest version including migration fix 2021-01-12 12:40:51 -05:00
Jonathan Rainville ce3252fb8f wip community 2021-01-11 13:57:35 -05:00
emizzle 7e1d7be314 feat: load installed stickers while offline
When the network connection is changed, the sticker packs are cleared and then re-loaded (either loading the offline (installed) sticker packs, or all the sticker packs from the network).

Stickers can be sent while offline, though the sticker images do not load once offline (this is likely a side effect of the bug described below).

There is a known bug in QNetworkAccessManager (https://bugreports.qt.io/browse/QTBUG-55180) that was re-introduced in 5.14.1 that does not allow us to download resources if we go offline then come back online. The workaround employed in this PR manually sets the NetworkAccessible property of QNetworkAccessManager once we have been connected back online. The NetworkAccessible property is marked as obsolete and will be removed in Qt6, so it is something that we need to be aware of when we upgrade. However the hope is that the bug has been fixed.

Close StickersPopup when disconnected from network (so that re-loading of sticker packs doesn't look out of place).

fix: set network status correctly at load

feat: stickers gas estimate async

feat: When network re-connected, any http images that were not properly loaded in an ImageLoader component will automatically be reloaded.

fix: Sticker button loading icon

chore: Bump nimqml and dotherside

NOTE: This PR uses an updated nimqml and dotherside. The respective changes should be merged first, and the commit hash should be bumped in this PR prior to merging. Relevant PRs:

[https://github.com/status-im/dotherside/pull/20](https://github.com/status-im/dotherside/pull/20)

[https://github.com/status-im/nimqml/pull/17](https://github.com/status-im/nimqml/pull/17)
2020-12-28 14:29:38 -05:00
emizzle b82540fcb7 chore: bump nimqml and dotherside 2020-12-22 16:08:09 -05:00
emizzle 6a0a75888b feat: whitelist gifs (no url extension needed)
Fixes #1377.
Fixes #1479.

Two sites have been added to the whitelist: giphy.com and tenor.com.

`imageUrls` in its entirety has been removed and instead all links are being handle through the message `linkUrls`. This prevents double-handling of urls that may or may not be images.

The logic to automatically show links previews works like this:
1. If the setting "display chat images" is enabled, all links that *contain* ".png", ".jpg", ".jpeg", ".svg", ".gif" will be automatically shown. If the URL doesn't contain the extension, we are not downloading it. This was meant to be somewhat of a security compromise as we do not want to download each and every link posted in a message just to find out its true content type.
2. If the above setting is *disabled*, then we follow the whitelist settings for tenor and giphy. This allows us to preview gifs that do not have a file extension in their url.

feat: bump status-go to the commit that supports the new whitelist (https://github.com/status-im/status-go/pull/2094), and also lets us get link preview data from urls in the whitelist. NOTE: this commit was branched off status-go `develop`, so once it is merged, and we update this PR to the new commit, we will effectively be getting status-go develop changes. We *could* base that status-go PR off of master if it makes things easier.

fix: height on settings update issue

feat: move date/time of message below links

fix: layout issues when changing setting `neverAskAboutUnfurlingAgain`

feat: Add MessageBorder component to aid in showing rounded corners with different radius
2020-12-21 14:14:32 -05:00
Jonathan Rainville eebd831c5d chore: update to the merged version of status-go 2020-12-17 16:44:25 -05:00
Jonathan Rainville d01c9fef79 feat: add profile pic support 2020-12-17 16:44:25 -05:00
emizzle 5953031bfc fix: YouTube unfurling
YouTube link unfurling was not working for a couple reasons.

There were two main parts fixed:
1. QML context for messages pertaining to linkUrls and imageUrls was changed from implicit to explicit. By this, I mean that any time we referenced linkUrls/imageUrls, we were relying on the knowledge that those values would be populated by some parent context several levels up. Now, we are referring to properties that have been explicitly defined on the components. This offers the ability to reuse components, and makes reading the code and debugging much easier.
2. Error handling has been added to getting link preview data. An unhandled "error" was thrown each time a link that wasn't whitelisted was passed in, causing the app to crash. For example, when a link to a tenor gif was posted in the chat, that URL was not whitelisted, causing the app to crash.
2020-12-10 14:45:48 -05:00
Richard Ramos d1378597b6
fix: remove event emitter 2020-12-09 16:17:20 -04:00
Richard Ramos cc9830268a fix: deploy contracts in browser 2020-12-09 14:19:35 -05:00
Jonathan Rainville 7d1e9212ca chore: bump to latest status-go 2020-12-01 14:07:31 -05:00
Jonathan Rainville a13f1f2043 feat: add basic bookmark support 2020-12-01 14:07:31 -05:00