Commit Graph

1812 Commits

Author SHA1 Message Date
Sale Djenic 7f40ae0f57 refactor(@desktop/chat-communities): unused component removed
- `NormalMessageView` component is removed since we work with `CompactMessageView`
and it's the only and default message component in the app.
- `useCompactMode` property removed from local settings since it's not in use as
well and corresponding code is updated accordingly
2022-02-01 11:41:38 +01:00
Sale Djenic 6ae88cf1cc refactor(@desktop/chat-communities): a list of users who reacted with an emoji updated
A list of users who reacted with an emoji now displays names instead of users'
public key
2022-02-01 11:41:26 +01:00
Anthony Laibe 6c76974985 refactor(@chat): clear chat history 2022-02-01 11:41:26 +01:00
Anthony Laibe 8ddda242d8 refactor(@chat): mark messages as read 2022-02-01 11:41:26 +01:00
Sale Djenic bd2efb4a1e refactor(@desktop/chat-communities): backend part for mute/unmute feature added
- `chat service` is not `QtObject` inherited class
- mute/unmute methods added to `chat service`
- `type` added to sub items of model used in `chat section` module
- shared message item and model updated with set of new fields
2022-02-01 11:39:51 +01:00
Jonathan Rainville a9c968b984 refactor(chat): refactor 1-1 chat to new architecture
Fixes #4225
2022-02-01 11:39:08 +01:00
Sale Djenic f138fecdd2 refactor(online-users): adding online users for chat/channel 2022-02-01 11:38:07 +01:00
Sale Djenic afe6d34735 refactor: issues after rebase onto `master` fixed 2022-02-01 11:38:04 +01:00
Jonathan Rainville 0d3a8e4d11 refactor(stickers): remove one import from old status-lib code
Only two imports remain. They will be removed once the chat is refactored
2022-02-01 11:37:32 +01:00
Jonathan Rainville d8a90eda6c fix(stickers): fix stickers appearing as loading when on a new account 2022-02-01 11:37:32 +01:00
Jonathan Rainville 05eb8abf04 fix(stickers): fix getting installed and recent stickers 2022-02-01 11:37:32 +01:00
Jonathan Rainville 206e0e5504 refactor(stickers): remove dep on dto in view and use Item instead 2022-02-01 11:37:32 +01:00
Sale Djenic 80fcb95245 refactor(chat-section): new chat/community model applied on the qml side
Changes done on the backend side related to the new chat/channel/categories model
are applied here. Necessary changes done on the `statusq` may be seen in PR-486.

Parts of the code which are not refactored yet are commented out.

Displayed chats/categories/channels since now are using refactored backend.
2022-02-01 11:37:32 +01:00
Sale Djenic c8b429388f refactor(user-profile): `name`, `icon` and `isIdenticon` properties added to global instance `userProfile`
Apart of all properties we have, now we have 3 new added props which will be used
almost always when we need the following details about logged in user:
- `name` - this will return an ens name in a pretty form or an alias if ens name
was not set (verified). Apart of this there are still `username` and `ensName`
properties for fetching them when it's needed.
- `icon` - this will return a thumbnail image if it's set, otherwise it will
return identicon. Apart of this there are still `identicon` and `thumbnailImage`
properties for fetching them when it's needed.
- `isIdenticon` - this will return `false` if a thumbnail image is set, otherwise
it will return `true`
2022-02-01 11:37:29 +01:00
Sale Djenic 45d93649b6 refactor(chat-section): new chat/community model applied on the qml side
Changes done on the backend side related to the new chat/channel/categories model
are applied here. Necessary changes done on the `statusq` may be seen in PR-486.

Parts of the code which are not refactored yet are commented out.

Displayed chats/categories/channels since now are using refactored backend.
2022-02-01 11:37:15 +01:00
Khushboo Mehta 7643c6228c fix(@desktop/profile): Application nav bar settings button is incorrect
Updated the settings icon in the config file.

fixes #4172
2022-02-01 11:36:59 +01:00
Sale Djenic f44926b7aa refactor(app-search): `You` used in case a message in the search result was sent by logged in user 2022-02-01 11:36:59 +01:00
Sale Djenic 64c0148bbf refactor(general): new convenient methods added to chat and contact services
- `getOneToOneChatNameAndImage` method added to the chat service, we should
use where ever in the app we need to display one to one chat image and name
- `getContactNameAndImage` method added to the contacts service, we should use
when we want to display pretty contact name and correct image/identicon depends
what user set
2022-02-01 11:36:59 +01:00
Sale Djenic 4c42809a68 refactor(general): modules' structure aligned
There were a lot of modules with an empty concept which are useless that way,
doesn't do the purpose. Also some modules were not informing parent module about
their states even order of operation within module itself was missed. Now we have
all those things aligned and this commit should stop propagating such concepts
caused by copying a module.
2022-02-01 11:36:59 +01:00
Jonathan Rainville 22595f5032 refactor(chat): move stickers to the new architecture
Fixes #4060
2022-02-01 11:36:59 +01:00
Jonathan Rainville 3f12796b45 Revert "refactor(chat): move stickers to the new architecture"
This reverts commit 47aa079e0d.
2022-02-01 11:36:59 +01:00
Jonathan Rainville 15378c4e4e Revert "refactor(general): modules' structure aligned"
This reverts commit 6154a89cf6.
2022-02-01 11:36:59 +01:00
Sale Djenic 10268ec3c4 refactor(general): modules' structure aligned
There were a lot of modules with an empty concept which are useless that way,
doesn't do the purpose. Also some modules were not informing parent module about
their states even order of operation within module itself was missed. Now we have
all those things aligned and this commit should stop propagating such concepts
caused by copying a module.
2022-02-01 11:36:56 +01:00
Jonathan Rainville 792397987c refactor(chat): move stickers to the new architecture
Fixes #4060
2022-02-01 11:36:44 +01:00
Sale Djenic 0a8a5c4795 refactor(node-configuration-service): node configuration added added as a new service 2022-02-01 11:36:43 +01:00
Sale Djenic bf651c093e refactor(fleet-configuration): fleet configuration added to `StatusFoundation` 2022-02-01 11:36:40 +01:00
Sale Djenic 7a9784b854 refactor(settings-service): settings improved
Since we had 2 services dealing with the same `status-go` settings, this
commit merges them into a single one. Also we have new public methods
exposed what minimizes a possibility for error since a key for each setting
is kept in the service.
2022-02-01 11:36:23 +01:00
Sale Djenic 7c36e98cf3 chore(general): necessary changes applied after rebasing 2022-02-01 11:35:51 +01:00
Sale Djenic caf7fd2072 refactor(contacts-service): general improvement
- Signal's arguments updated
- Sent payload optimized
- Local nickname added to profile section contacts model
- Rest updated accordingly to above changes
2022-02-01 11:35:37 +01:00
Jonathan Rainville eee096dda7 chore: remove old contacts code 2022-02-01 11:35:24 +01:00
Jonathan Rainville e8eefd8f87 refactor: move all old usages of contacts to the new code 2022-02-01 11:35:24 +01:00
Jonathan Rainville cb7865bd9e refactor: move contact requests to new architecture
Fixes #4061

Most of the contact request code was already moved, but it wasn't hooked to the QML yet and also there were missing events and some code to improve.
2022-02-01 11:35:24 +01:00
Sale Djenic 80b94d6519 refactor(general): `nim_status_client.nim` file cleaned
Parts which are not refactored yet are moved to `AppController` and
marked there (a comment is added for a sake of clarification) that those
parts will be removed once we complete refactor phase.
2022-02-01 11:35:20 +01:00
Sale Djenic 1ccc98af98 refactor(general): old `AppService` is renamed to `StatusFoundation`
`AppService` is renamed to `StatusFoundation` cause it doesn't contain
any more anything related to services. And it is moved to other location
`/src/app/core`. It contains a foundation for the app.

This part will rarely change
2022-02-01 11:35:07 +01:00
Sale Djenic e72b2d1007 refactor(general): managing signals from `status-go` added
Signals which were part of the `status-lib` are now part of the desktop app.
New class `SignalsManager` is introduced which is a main point for receiving
signals from `status-go`.
2022-02-01 11:34:42 +01:00
Sale Djenic 4b882be8bd refactor(osnotification): os notification service updated
- os notification doesn't belong to core features so it's moved from there
- os notification service updated and read to be used as other service
- leftovers moved from `status-lib` that's its version is updated
- using os notification service is commented out in the old code
2022-02-01 11:34:38 +01:00
Sale Djenic a99422a00a refactor(general): core things moved to `core` section of the app 2022-02-01 11:34:23 +01:00
Sale Djenic 786c0b4041 refactor(general): global things moved to `global` section of the app 2022-02-01 11:34:00 +01:00
Sale Djenic 5c0bb9b0b9 refactor(wallet2): the old way of fetching crypto services asynchronous is removed 2022-02-01 11:34:00 +01:00
Sale Djenic 141b664a0c refactor(wallet2): async job for fetching crypto services moved to buy/sell controller
Async task for fetching crypto services is temporary moved because of other
changes we need to apply during the refactor phase. It will be moved to
appropriate service at the end.
2022-02-01 11:34:00 +01:00
Sale Djenic dafb457a49 refactor(chat-communities): items and model for users list added 2022-02-01 11:34:00 +01:00
Sale Djenic 0def67e783 refactor(contacts-service): added local name for a contact
Within this commit local name for a contact is added to `ContactsDto` which will
be used across the app.
- backend part for changing contact's username is added
- new signal under `SIGNAL_CONTACT_UPDATED` is introduced for the contacts service
- `saveContact` method of the contacts service updated so it saves contact
for a real now
- in order to be consistent across the app `userNameOrAlias` method is updated
so it includes locally set username for a contact
2022-02-01 11:33:56 +01:00
Sale Djenic 97fa526c5e refactor(messages-service): methods for mark all and mark certain messages as read added 2022-02-01 11:33:38 +01:00
Sale Djenic 5b58bbcc7a refactor(app-search): warnings "use {.base.} for base methods" are fixed 2022-02-01 11:33:38 +01:00
Sale Djenic c6820c9369 refactor(app-search): unused app search related code removed 2022-02-01 11:33:38 +01:00
Sale Djenic ff7aa01f90 refactor(app-search): app search chats/users names and images updated, search condition improved 2022-02-01 11:33:38 +01:00
Sale Djenic ab38614b08 refactor(contact-service): `ContactsDto` is `object` type instead `ref object` 2022-02-01 11:33:38 +01:00
Sale Djenic 4b6469c373 refactor(chat-communities): position field and `isCommunity` added to the chat section module
Position field added to a model/submodle of the chat section module.
`isCommunity` method is exposed to qml from the view of the section module.
2022-02-01 11:32:46 +01:00
Sale Djenic 9e60b4ecfe refactor(chat-communities): chat naming follows alias/ens naming 2022-02-01 11:32:46 +01:00
Sale Djenic 813f6d0062 refactor(chat-communities): hidden chats of Profile chat type are excluded from the model 2022-02-01 11:32:46 +01:00
Sale Djenic d67278b23e refactor(app-search): app search module added 2022-02-01 11:32:42 +01:00
Sale Djenic 9045b0bbc4 refactor(general): chat section modules notified about the section change 2022-02-01 11:32:32 +01:00
Sale Djenic fd3303a4e8 refactor(@desktop/chat-communities): pinned messages added
Option to pin/unpin message added on the backend side.
Pinned model added to the chat content module.
Message service updated accordingly.
2022-02-01 11:32:32 +01:00
Sale Djenic 9777191501 refactor(@desktop/chat-communities): messages added
Messages model added, not completely done.
Also convenient methods for add/remove reactions are added.
2022-02-01 11:32:32 +01:00
Sale Djenic 12f9282a59 refactor(@desktop/general): added modules `InputArea`, `Messages`, `Users`
Each `ChatSection` module contains as many `ChatContent` submodules as many chats
the section contains (a chat maybe either from the Chat section or Community section or
from the category of the Community section).

`ChatContent` consists of 3 submodules `InputArea`, `Messages`, `Users`, so far.
2022-02-01 11:32:32 +01:00
Sale Djenic 0fa88be513 refactor(@desktop/general): qml `ChatLayout` component added for the `Chat` section and for each community 2022-02-01 11:32:32 +01:00
Sale Djenic eca74532ac refactor(@desktop/chat-communities): asynchronous fetching messages 2022-02-01 11:32:32 +01:00
Sale Djenic d8dea2dc58 refactor(@desktop/chat-communities): initial model for the chat/community sections
Model used for list of chats in case of Chat section and used for
channels/categories/category channels is initially added. With an option for
setting active chat/channel/category (which are an Item type) and setting active
channel within a category (which is a SubItem type).
2022-02-01 11:32:31 +01:00
Sale Djenic b15c348931 refactor(@desktop/general): notifications set for certain app sections 2022-02-01 11:32:31 +01:00
Sale Djenic 6e3b065d34 refactor(@desktop/general): app sections handled within main module 2022-02-01 11:32:28 +01:00
Richard Ramos d713c6fe9f fix: display loading indicator depending on mailserver request status 2022-01-25 13:59:41 -04:00
Anthony Laibe 6915c19c84 feat: move create accounts to status-go 2022-01-24 10:44:31 +01:00
Boris Melnik f69db2c97b fix(PrivacyView): Fix relations between switches and line sensor and local settings. Add getter for profile images.
Closes: #4191
2022-01-16 22:15:05 +03: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
Anthony Laibe 8889bbdb08 fix(@wallet): tx history view
fixes #4385

Correctly display the date and if the node is an archival node
2022-01-10 15:58:36 +01:00
Pascal Precht cdd79a87e7 fix: make changing local nicknames of contacts work again
This fixes #4173 again. The problem is that changing the local nickname
of a contact now uses new APIs in Status Desktop which emit new events that
older code isn't aware off. Namely, the event handling in the chat section
doesn't get informed anymore that the contact has changed, so it won't update
the view accordingly.

This commit fixes it by subscribing to that newly introduced event
and then updating the view with the payload data.

Notice that this is a quick fix and will most likely be obsolete, once
the chat section has moved to the new architecture as well.

Fixes #4173
2022-01-05 10:37:43 +01:00
Richard Ramos a85ee8581a feat: show real sync date in "Fetch more messages" button 2022-01-03 21:12:28 +00:00
Richard Ramos f0ee4bb402 fix: code review 2022-01-03 13:01:06 +00:00
Richard Ramos c0108bd1bf chore: use TrustedMailServers from NodeConfig in mailserver cycle for wakuv1 2022-01-03 13:01:06 +00: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
Richard Ramos f5d53f9112 refactor: move provider logic to status-go 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 cebe20a152 fix: ensure the contact name contains an ens name
Fixes 4271
2021-12-10 12:44:05 +00:00
Anthony Laibe 60a3158cae feat(@desktop/settings): Add developer mode toggle 2021-12-10 10:20:58 +01:00
Jonathan Rainville 1a0fb268e3 fix(notifications): fix notification setup called too soon 2021-12-09 11:19:03 -05: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
Pascal Precht 7aa777f2e3 feat: preserve app window size after resize
This adds the functionality that the application window size is saved in the
app settings, so that it restores the same size the next time the application
is started.

Closes #4120
2021-12-02 15:45:24 +01: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 2d49da7331 feat: Allow to enable auto message 2021-11-29 14:46:38 +01:00
Sale Djenic a01fdd29dd fix(account-service): preparing account settings object updated 2021-11-24 13:15:15 +01:00
Sale Djenic 484748314f fix(general): online/offline selector updated
Fixes: #4049
2021-11-24 13:15:15 +01:00
Khushboo Mehta 7ee7ba5ebe fix(@desktop/profile): Custom picture is not applied everywhere in the app without restart
fixes #4099
2021-11-24 13:15:15 +01:00
Khushboo Mehta 7c7b2eb34b fix(@desktop/profile): changing language does not change it in UI
A call to the init of the language service was missing.
Calling it during boot process reoslves the bug.

fixes #4104
2021-11-24 13:15:15 +01:00
Sale Djenic de9b475dd5 refactor(contact-service): `ContactsDto` images issue fixed
This affects app search, now chats in location menu as well as senders'
images of the displayed messages in the search result.
2021-11-24 13:15:15 +01:00
Sale Djenic f27a3cc8dc Change to the current `profileModule` 2021-11-24 13:15:15 +01:00
Sale Djenic 188d38be39 refactor(@desktop/general): identified user profile as new instance 2021-11-24 13:15:15 +01:00
Pascal Precht 338c7854b0 fix: ensure contact data is refetched when changes where made
Changes in contact data caused via calls to any contact related APIs wouldn't be
reflected in the UI because it doesn't re-fetch the updated state from status-go.

This commit makes the contactsService `fetchContacts` API public so it can be
used on the profile section control to re-fetch contact data when changes to
contacts have been emitted.
2021-11-23 14:01:26 -04:00
Alexandra Betouni f4a33036e6 fix(desktop/chat) Can't select emoji from the list
Setting's properties were moved to nim which doesn't
have support for arrays, thus properties recentEmojis,
hiddenCommunityWelcomeBanner,  hiddenCommunityBackUpBanners
and  whitelistedUnfurlingSites were not handled. Added
support for recentEmojis as well as the rest properties.

Closes #4102
2021-11-23 09:35:05 -05: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
Jonathan Rainville 0c84f5e90f chore(version): make the version changing more obvious 2021-11-19 10:06:40 -05:00
Richard Ramos a9a5469f72 fix
- missing account color and balance
- revoking permission on account change
- UI errors on message signing modal
2021-11-19 10:19:11 -04:00
Richard Ramos f9b08abd72 fix: review 2021-11-19 10:19:11 -04:00
Richard Ramos 1989ad7971 refactor!: provider transactions 2021-11-19 10:19:11 -04:00
Pascal Precht 14f75692c4 fix(Communities): ensure members count is updated when owner leaves community
When an owner of a community leaves its own community, we optimistically update the
members list in Status Desktop. The `LeaveCommunity` API that is called via status-lib
has been updated to correctly remove that member as well.

This depends on https://github.com/status-im/status-go/pull/2429

Fixes #4074
2021-11-18 11:05:06 +01: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
Richard Ramos 44e91df428 feat: add toggle for switching status-go DEBUG log level 2021-11-16 09:42:28 -04:00
Anthony Laibe df670bfcbb fix(desktop/wallet): new account with error 2021-11-16 10:07:15 +01:00
Jonathan Rainville 2d0c95feb3 fix: fix adding custom tokens
Fixes #4040 for real this time
2021-11-11 09:58:05 -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 50e8d0aa90 feat: prepare desktop for dogfooding
- Use go-waku fleet for rendezvous
- Use dns-discovery for obtaining fleet nodes
2021-11-09 15:54:20 -05:00
Jonathan Rainville 480219b823 fix(wallet): fix getting balance of custom tokens
Fixes #4040
2021-11-05 15:31:32 -04:00
Jonathan Rainville 894e57fbdb fix: context menu losing data and group info being empty sometimes 2021-11-05 14:42:44 -04:00
Sale Djenic d53548f68c fix(@refactoring/base_01): crash on recovering account
Fixes: #3953
2021-11-05 14:16:09 -04:00
Jonathan Rainville ffa9a93042 fix(wallet): fix gas estimation 2021-11-05 14:10:29 -04:00
Jonathan Rainville 9448cd7fd4 fix(wallet): fix account selector in the SendModal 2021-11-05 14:10:29 -04:00
Pascal Precht 7416294513 fix(Communities): ensure community channels have community color
Fixes #3985
2021-11-05 11:02:45 -04:00
Jonathan Rainville ac823079ac fix(profile): fix changing language
Fixes #4000
2021-11-05 11:02:45 -04:00
Jonathan Rainville cd428678f7 fix(profile): fix profile pic change and move it to new architecture
Fixes #3997
2021-11-05 11:02:45 -04:00
Anthony Laibe 64d2c03e40 fix(@desktop/wallet): display STT token by default on test nets 2021-11-05 11:02:45 -04:00
Pascal Precht 7fcd280fe0 fix(@desktop/wallet): ensure NFT background colors are rendered correctly
Also adjust margins of collectible items to adhere to designs.

Fixes: #3981
2021-11-05 11:02:45 -04:00
Jonathan Rainville 8dcc63bdf6 refactor: make tx history fetch async again 2021-11-05 11:02:45 -04:00
Jonathan Rainville 8aec0c62e7 refactor: re-enable async search of ENS names for contacts
Fixes #3986
2021-11-05 11:02:45 -04:00
Sale Djenic f788242c95 fix(@refactoring/base_01): button `I have a Keycard` displayed when it's not enabled 2021-11-05 11:02:45 -04:00
Sale Djenic 4c96bc70ed refactor(@desktop/general): dto should not be `ref object` 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 7be5572ede add privacy module 2021-11-05 11:02:45 -04:00
Iuri Matias 7c8f3f5923 add mnemonic module 2021-11-05 11:02:45 -04:00
Iuri Matias 4b10d26865 add language section & service 2021-11-05 11:02:45 -04:00
Richard Ramos be5ac485da remove old permissions file 2021-11-05 11:02:45 -04:00
Richard Ramos 50a3e5f346 refactor: dapps and permissions 2021-11-05 11:02:45 -04:00
Richard Ramos a156a8be1e fix: wrong service method signature 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
Jonathan Rainville 1d0b20b156 refactor: refactor contacts sub-section to the new architecture 2021-11-05 11:02:45 -04:00
Sale Djenic 8c3c4d7607 refactor(@desktop/general): code cleaned app after `accountSettings` and `globalSettings` moved to Nim
Since we have `accountSettings` and `globalSettings` available on both sides Nim
and qml, we don't need `src/app_service/service/local_settings/service` any more.
Indeed it has never been a service logically, but we made it as service according to
the old code base.

Accessing any of local setting instances is easy doable from any part of the app just
using `singletonInstance` and appropriate settings from it.
2021-11-05 11:02:45 -04:00
Sale Djenic 3f6bb66536 refactor(@desktop/general): `globalSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Sale Djenic f0b2ed6cca refactor(@desktop/general): `appSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Iuri Matias 4e3ecbf4b5 add profile section
add profile module

add boilerplate for profile section

add profile module

add profile module

fix variant

 use accounts service

get identityimage to work

cleanup

add other contacts services

add contacts service

make contact section compile with refactor

fix controller and service interfaces

add about section
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
Anthony Laibe 5b1510313a fix: loading service without error 2021-11-05 11:02:45 -04:00
Anthony Laibe a7a56cf471 refactor(@desktop/wallet): connect ui and account token 2021-11-05 11:02:45 -04:00
Anthony Laibe 6a1923abcf refactor(@desktop/wallet): Add walletaccount to more module 2021-11-05 11:02:45 -04:00
Anthony Laibe 4bc61134c4 refactor(@desktop/wallet): Connect list account and qml 2021-11-05 11:02:45 -04:00
Anthony Laibe 4bbf19c470 refactor(@wallet/desktop): bind new token list to qml 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 b7eaef8a84 refactor(@desktop/wallet): load account list 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 b01e20302b refactor(@desktop/wallet): build wallet account token 2021-11-05 11:02:45 -04:00
Anthony Laibe b050796fc8 refactor(@desktop/wallet): add visible property to token 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 5d523b739e refactor(@desktop/wallet): Add eventemitter 2021-11-05 11:02:45 -04:00
Anthony Laibe 072b36e672 Fix rebase 2021-11-05 11:02:45 -04:00
Anthony Laibe a876a4b9ce refactor(@desktop/wallet): Add wallet account service 2021-11-05 11:02:45 -04:00
Anthony Laibe 1828029ab2 refactor(@desktop/wallet): Add collection/item/collectibles module 2021-11-05 11:02:45 -04:00
Anthony Laibe c97138c1dd refactor(@desktop/wallet): Attach utils data to main account 2021-11-05 11:02:45 -04:00
Anthony Laibe 0b38ec2568 refactor(@desktop/wallet): Connect backend to collectible service 2021-11-05 11:02:45 -04:00
Anthony Laibe 20a636d912 refactor(@desktop/wallet): Init collectible service 2021-11-05 11:02:45 -04:00
Anthony Laibe 8203643f86 refactor(@desktop/wallet): Init transaction service 2021-11-05 11:02:45 -04:00
Anthony Laibe 27d92f32f9 refactor(@desktop/wallet): Add getToken and controller 2021-11-05 11:02:45 -04:00
Anthony Laibe d9b6153ed0 refactor(@desktop/wallet): add token service 2021-11-05 11:02:45 -04:00
Anthony Laibe 32cfe03880 refactor(@desktop/wallet): Add transaction model/item 2021-11-05 11:02:45 -04:00
Anthony Laibe 1088669a6e refactor(@desktop/wallet): Add account tokens model/item 2021-11-05 11:02:45 -04:00
Anthony Laibe 9e6a1bdf57 refactor(@desktop/wallet): Add token view/model/item 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 b2f2801d3d Missed "loginCompleted" signal added.
It will be removed at the end of refactoring phase, when everything is done,
but now we need it to init all parts of the app correctly.
2021-11-05 11:02:45 -04:00
Sale Djenic 07f1510dd3 Fixed issues after rebase to the `refactoring/base` branch. 2021-11-05 11:02:45 -04:00
Sale Djenic 162ced9c38 Local account settings is not part of the `local_settings` service any more,
cause it logically doesn't belong there as it is not a service. It is a global
instance, exposed to the UI (qml) part. Since it represents QSettings it should
be maintained from the single point.
2021-11-05 11:02:45 -04:00
Sale Djenic 37e9150021 Cleaning up the code, and removing leftovers 2021-11-05 11:02:45 -04:00
Sale Djenic 72197f86f5 Accounts service is cleared if on NodeStopped signal 2021-11-05 11:02:45 -04:00
Sale Djenic 11cdd608f3 Log out the app on NodeStopped signal 2021-11-05 11:02:45 -04:00
Sale Djenic 48a39e4569 keychain feature refactored 2021-11-05 11:02:45 -04:00
Sale Djenic 44ba3f43f7 Local account settings exposed to the UI 2021-11-05 11:02:45 -04:00
Sale Djenic 08e7fef491 keychain feature partly refactored 2021-11-05 11:02:45 -04:00
Sale Djenic 3e0d312fee Events class is forwarded instead of whole AppService 2021-11-05 11:02:45 -04:00
Sale Djenic c3a374c36a Local settings service moved to AppController.
Old ProfileController and related props moved to AppController in order
to have an usable app during refactoring of onboarding/login modules.
2021-11-05 11:02:45 -04:00
Sale Djenic 7568880f26 quick fix for `production is not defined` error 2021-11-05 11:02:45 -04:00
Sale Djenic 4f3ca4eb78 login process refactored 2021-11-05 11:02:45 -04:00
Sale Djenic 8974a8db5e selecting among multiple accounts on login added 2021-11-05 11:02:45 -04:00
Sale Djenic 30f11c06d4 onboarding process updated, import account feature handled 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 a945275d3f Registering context property moved from constructor to the load method for each module. 2021-11-05 11:02:45 -04:00
Sale Djenic cc20c234e0 Community section as an identified module's type is removed since community
section is nothing else but the special kind of chat section module type. The
rest of the code is updated accordingly.
2021-11-05 11:02:45 -04:00
Sale Djenic 05705f219d Module organization change due to Nim limitations.
Parent modules are exposed to submodules using their base class instead of
concepts, since using concepts is not possible to create a second level nested
modules.
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
¨Anthony a715c6b62e refactor(@desktop/ens): Keep only one ens view
Once refactoring with module this should probably be attached to main
or to something common to all module since it is accessed in low level part
of the app accross multiple section
2021-10-26 08:15:36 -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
Michele Balistreri 4aec7db317 add authenticate 2021-10-06 08:32:32 -04:00
Michele Balistreri 3016fd4ec1 make pairing work 2021-10-06 08:32:32 -04:00
Michele Balistreri 101e77cc14 continue flow implementation 2021-10-06 08:32:32 -04:00
Michele Balistreri 5cf58a78e5 implement pairing storage 2021-10-06 08:32:32 -04:00
Michele Balistreri ce1be698a6 handle signals and card states 2021-10-06 08:32:32 -04:00
Michele Balistreri a22d936df7 update Jenkinsfile 2021-10-06 08:32:32 -04:00
Michele Balistreri 7d8be3fc40 start implementing keycard onboarding flow 2021-10-06 08:32:32 -04:00
Michele Balistreri 03c0a85aee update Dockerfile, status-lib 2021-10-06 08:32:32 -04:00
Michele Balistreri 0535886e6c use status.keycard 2021-10-06 08:32:32 -04:00
Michele Balistreri 8f9d300312 add keycard-go to makefile 2021-10-06 08:32:32 -04:00
Michele Balistreri 1e4dc0acbf test connection/disconnection events 2021-10-06 08:32:32 -04:00
Michele Balistreri 303e40bdcf card connection prompt 2021-10-06 08:32:32 -04:00
Michele Balistreri 2a027d44d0 add insert card dialog 2021-10-06 08:32:32 -04:00
Michele Balistreri 3d46e62345 draft authentication dialogs 2021-10-06 08:32:32 -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 a5d48a20b3 feat: wakuV2 light client mode 2021-10-05 16:15:29 -04:00
Richard Ramos f3f0987d43 fix: wakuV2 mailserver cycle 2021-10-05 16:15:29 -04:00
Richard Ramos eac373600e fix race condition by setting the peers on init 2021-10-05 16:15:29 -04:00
Richard Ramos 4fa2f5c472 feat: connected/disconnected status with wakuV2 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
Richard Ramos d0514f366d feat: connected/disconnected status with wakuV2 2021-10-05 16:15:29 -04:00
Anthony Laibe 22e8c8a7ff fix(@desktop/profile): Split account and profile settings
Avoid to reveal which alias own which settings. The only settings
pre-login available is the storeToKeychain

Ideally we should also encrypt the profile settings
2021-10-01 10:29:05 -04:00
Anthony Laibe a44822d7f6 fix(@desktop/profile): Fix loading the correct settings
Since #e0c53b7012354023e367c33093598f7523063aa6 settings where loaded
according to the username while they should be loaded after the public
key

As the public key is only available once the login happened, it needs
to be set when the profile is being initialized
2021-10-01 10:29:05 -04:00
Anthony Laibe 3acabfd2a8 refactor: ensure settings is accessed via model 2021-09-30 16:37:07 +02:00
Michael Bradley, Jr c9319c3968 refactor: remove unused imports of nbaser and nim-base32
Closes #1268.

Another PR in the status-im/status-lib repo will be needed to close related
issue https://github.com/status-im/status-lib/issues/56.
2021-09-29 13:51:56 -04:00
Anthony Laibe 3fa328f8b8 Fix: loading bookmark from type 2021-09-29 11:57:01 -04:00
Alexandra Betouni 4ee21ada05 feat(desktop) Added image function in Style
Introduced Style.svg() Style.png() Style.emoji() and
Style.icon() in Style.qml. Those should be used to
set the source in Images instead of using relative
paths. Usage:
Image {
   source: Style.svg("check)
   ....

Also moved all Singletons inside a new "utils"
folder and made it a QML module, to use
import utils 1.0 instead of relative paths

Closes #3678
2021-09-28 15:28:00 -04:00
Anthony Laibe 1ae0b91014 refactor: gif store return object 2021-09-28 15:27:38 -04:00
Anthony Laibe 336ea968de refactor: browser use object 2021-09-28 15:25:57 -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
Richard Ramos 85250211ea feat: add mailserver request signals 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
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
Anthony Laibe 83a0ea391d feat(@desktop/wallet): Add chain id to internal API 2021-09-22 14:17:49 -04:00
Andrei Smirnov d6d4ae5c79 fix(@desktop/notifications): fixing wrong mentions counting 2021-09-21 11:08:38 -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 9204d495c6 update call to get contacts api 2021-09-20 12:42:32 -04:00
Khushboo Mehta 2515f12c3b fix(@desktop/chat): Push notification body contains only chat key when user is mentioned
fixes #3347
2021-09-20 12:42:32 -04:00
Anthony Laibe 442280f957 feat(@desktop/wallet2): Enable multi chain for collectible 2021-09-20 12:30:39 -04:00
Pascal Precht 1bca5ee174 fix(@desktop/chat): ensure replacement of mentions with pubkey works in communities
There were two issues why mentions didn't work in communities:

1. The function that replaces mentions with pubkey looked in the wrong place
2. The same function always prepented `userName` with `@` which isn't always necessary

This commit fix this by ensuring the replacement function looks in the community memberlist
instead of a messageList and also by checking if a `userName` already starts with a `@`
and only prepends it if not.

Fixes #3492
2021-09-20 09:58:26 -04:00
Anthony Laibe d804e15f27 fix(@desktop/contacts): Keep only one contacts list
fixes #3485
2021-09-20 09:52:24 -04:00
Michael Bradley, Jr 6625ae38be feat(desktop/profile): add link in advanced settings so log directory can be opened directly
Closes #3509.
2021-09-20 08:58:19 -04:00
Eric Mastro 9854a49a44 feat(wallet2): introduce saved addresses
Closes #3307.

WalletV2 view can be toggled between normal wallet view and the SavedAddresses view.

Users can load, add, edit, and delete saved addresses.

Favouriting a saved address is out of scope, as is sending to a saved addresses, drilling down in to a saved address, and supporting multiple networks.

Updates components that utilised the StatusMinLengthValidator component to support the changes made to StatusQ.

### Notes
1. Depends on status-go PR https://github.com/status-im/status-go/pull/2356
2. Depends on StatusQ PR https://github.com/status-im/StatusQ/pull/394.

# Conflicts:
#	src/app/wallet/v2/view.nim
#	ui/app/AppLayouts/WalletV2/WalletV2Layout.qml
2021-09-20 08:32:56 -04:00
Khushboo Mehta e6f8a79f67 fix(@desktop/communities): Fix for app doesn't preserve selected community chat
fixes #3486
2021-09-17 13:15:31 -04:00
Richard Ramos 214069cb25 feat: display mailserver interactions 2021-09-17 13:14:01 -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
Anthony Laibe 974e53f3cb feat(@desktop/wallet2): Add network select 2021-09-16 17:35:58 -04:00
Anthony Laibe 5ce06a94cc feat(@desktop/chat): download messages
fixes #3508
2021-09-16 16:37:58 -04:00
Richard Ramos dc8294b6bd fix: display current active mailserver
Fixes #3505
2021-09-16 16:29:33 -04:00
Khushboo Mehta b9073919cb feat(@desktop/wallet2): Added traits for the opensea Assets
fixes #3435
2021-09-16 15:39:10 -04:00
Richard Ramos 1db9e1b151 chore: remove unused imports 2021-09-16 14:56:25 -04:00
Richard Ramos 03eed589a9 feat: display logs in node management section 2021-09-15 16:04:28 -04:00
Alexandra Betouni 22994a4a14 feat(desktop/profile) adding password changed modal
Implemented new change password succcess confirmation
popup

Closes #3432
2021-09-15 15:20:33 -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 a4df3c644b Lock on DATADIR, not app dir 2021-09-15 12:18:09 -04:00
Andrei Smirnov 10de9fc0c1 Rebased 2021-09-15 12:18:09 -04:00
Pascal Precht 315c4014a7 fix(@desktop/profile): show ENS username in profile page if available
Closes #3424
2021-09-15 06:45:58 -04:00
Richard Ramos 8e80497cdc fix: set preferred username 2021-09-15 06:45:26 -04:00
Iuri Matias 3b4d6ade7d rename libstatus to statusgo_backend 2021-09-11 17:51:52 -04:00
Iuri Matias 17f8abb250 name utils import due to conflict 2021-09-11 08:45:49 -04:00
Khushboo Mehta 35e15f7ed0 feat(desktop/wallet): Adding Setttings tab in wallet 2
Added nim api's to get the account signing phrase

fixes #3303
2021-09-10 14:27:33 -04:00
Richard Ramos 285f54dab6 EIP1559 2021-09-10 13:42:19 -04:00
Richard Ramos daa0865885 refactor: moving OPENURI constant back from status-lib to app 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
Anthony Laibe 22831f124f feat(@desktop/wallet2): Fetch networks on wallet init 2021-09-09 17:49:23 -04:00
Andrei Smirnov 0528f5d933 Fixed link structure for 1-1 chats 2021-09-09 16:53:09 -04:00
Andrei Smirnov a3368b091e Fixing rebase. 2021-09-09 16:53:09 -04:00
Andrei Smirnov 03022742d8 feat(@desktop/Windows): status-im:// protocol support and installer fixes 2021-09-09 16:53:09 -04:00
Andrei Smirnov d80034e0c4 fix(@desktop/communities): processing response from InviteUsers call 2021-09-09 15:17:16 -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
Richard Ramos b4a209e17c fix: membership requests dissapearing on a community update
Fixes #3315
2021-09-08 14:55:15 -04:00
Sale Djenic 7c812c0961 refactor(@desktop/general): move Qt logic out of src/status library
Since `src/status` was Qt dependant part because of the following foundation files:
- /src/status/tasks/marathon/mailserver/controller.nim
- /src/status/signals/core.nim
- /src/status/tasks/marathon/mailserver/events.nim
- /src/status/tasks/qt.nim

and because logic related classes like:
- /src/status/chat.nim

this commit made that part Qt independant.

New layer `src/app_service` is introduced and above mentioned foundation files
are moved there. As well as corresponding logic for requested services.

Communication between logical parts on the high level is as follows:
- `src/app` => `src/app_service` => `src/status` => `src/app`
- `src/app` => `src/status` => `src/app`

Fixes: #3376
2021-09-08 14:09:21 -04:00
Sale Djenic 7bbfba7fb3 feat(@desktop/wallet2): implement buy crypto feature
If user wants to buy/sell crypto, popup modal list will be displayed so he may
choose which service to use for that action.

Fixes: #2120
2021-09-07 14:18:14 -04:00
Sale Djenic 2177e06d95 chore(@desktop/wallet2): wallet2 controller added
Wallet2 related classes added to `src/status` and `src/status/wallet2`.
`src/app/wallet/v2` classes updated accordingly.
2021-09-07 14:18:14 -04:00
Sale Djenic 71360d4362 chore(@desktop/general): json common properties moved to the more general location 2021-09-07 14:18:14 -04:00
Andrei Smirnov 3902ddf002 fix(@desktop/updates): using timeout when checking for new version 2021-09-07 10:27:48 -04:00
Anthony Laibe 4bef4533b6 fix(@desktop/chat): do not crash when deleting a message
fixes #3387
2021-09-07 10:27:05 -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
Andrei Smirnov 979fea1cee Bugfixes 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
Andrei Smirnov 68d34e5706 fix(@desktop/chat): edit channel modal to show up-to-date values 2021-08-31 14:33:56 -04:00
Sale Djenic 4916b8f552 fix(@desktop/chat): no identicon/profile picture shown and wrong timestamp format in search results
Icons added for messages senders in the search result, also community and chat
icons are colorized now.

Fixes: #3259
2021-08-31 14:23:59 -04:00
Andrei Smirnov 21059919b1 Reverted odd method removal. 2021-08-31 12:07:48 -04:00
Andrei Smirnov 8ae050b642 fix(@desktop/communities): changing contact nickname must be reflected in users list 2021-08-31 12:07:48 -04:00
Richard Ramos 1c7fa14903 fix: log error when an RPC exception is raised when releasing an ens 2021-08-31 12:04:03 -04:00
Richard Ramos efcbb023a6 fix: message when username is locked, and remove preferred username when released 2021-08-31 12:04:03 -04:00
Richard Ramos 80343446ec feat: release ENS names 2021-08-31 12:04:03 -04:00
Anthony Laibe e2ca49b097 perf(@desktop/chat): make mark all messages read async 2021-08-31 11:55:38 -04:00
Anthony Laibe 0d5cf71df5 perf(@desktop/chat): avoid query when switching chat
As we keep a local list of contact request and contact added
we should not need to query this data each time we switch chat as
we already have this data in memory.

This data should be maintained each time there is a change

fixes #1642

Also: Remove what seems to be duplicated and dead code about
getContactById
2021-08-31 11:55:38 -04:00
Anthony Laibe 9af32a1796 fix(@desktop/chat): Add new dedicated event for sending message 2021-08-26 16:53:38 -04:00
Richard Ramos f637067606 fix: code review 2021-08-26 16:38:47 -04:00
Richard Ramos 1969130fad feat: display bloom filter usage 2021-08-26 16:38:47 -04:00
Pascal Precht 88092e4966 feat(Communities): add support for drag reodering community categories 2021-08-26 15:39:39 -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
Anthony Laibe 94f6041ec5 feat(@desktop/chat): Align chat member and suggestion
Removed all computation of suggestion from qml
Reuse user list in order to populate the suggestion box

As a side effect, the suggestion are not serialized from qml to
nim

Remove InputArea which seems not used anymore
2021-08-24 14:56:20 -04:00
Richard Ramos 2142609eb1 fix: add register topics to the config 2021-08-23 15:47:03 -04:00
Anthony Laibe 77927da284 fix(@desktop/wallet2): Ensure app not crash when loading collectibles
fails
2021-08-23 15:06:50 -04:00
Iuri Matias 067ed7b255 display peer number in node tab 2021-08-23 15:06:12 -04:00
Anthony Laibe 98943f6d72 feat(@desktop/wallet2): New collectibles API 2021-08-20 16:17:19 -04:00
Andrei Smirnov 62ef00ee60 chore(@desktop): odd warnings 2021-08-20 15:02:26 -04:00
Andrei Smirnov 99bdfc65ed Addressed PR comments 2021-08-20 14:56:00 -04:00
Sale Djenic 06c10df134 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
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
Anthony Laibe b2051ebe87 fix(@desktop/chat): avoid to resend notification on scroll
In order to avoid re-sending notification on scroll, update
the channel joined time to now
2021-08-19 10:55:33 -04:00
Anthony Laibe 3fdd593f0f feat(@desktop/internal): Specific logfile per app start
fixes #3146
2021-08-19 10:53:43 -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
Alexandra Betouni f82a23e361 fix(desktop/chatmessages) fixed stickers can't be used as reply
Closes #2404
2021-08-17 11:41:06 -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 f440995462 Addressed PR feedback 2021-08-16 15:32:21 -04:00
Andrei Smirnov b7ca0aaf14 Addressed PR feedback 2021-08-16 15:32:21 -04:00
Andrei Smirnov 8310a36bde feat(@desktop): change password 2021-08-16 15:32:21 -04:00
Anthony Laibe d3fdd4a575 fix(@desktop/chat): Going from communities to chat reopen latest opened
chat

fixes #3195
2021-08-16 14:09:47 -04:00
Anthony Laibe 28a4362b64 feat(@desktop/profile): handle blocked contact
fixes #3047
2021-08-16 14:03:52 -04:00
Sale Djenic a530f65ada fix(@desktop/communities): `joinedCommunities` doesn't update underlying community
Counting mentions for community seems was not developed yet. That's added here in this commit, but
instead of using "mentionsCount" we introduced on the side of nim, I found that we're receiving
"unviewedMentionsCount", but only for new messages. I used it for this fix.

Counting mentions and requests per community added.

Fixes: #2972
2021-08-16 12:55:12 -04:00
Richard Ramos 50b6b59abf feat: add wallet v2 tab 2021-08-16 09:45:06 -04:00
Anthony Laibe 153cfeb138 fix(@desktop/onboarding): display the app, then init the profile 2021-08-13 12:55:12 -04:00
Richard Ramos 77c3e1b211 fix: delete 2021-08-13 12:30:57 -04:00
Andrei Smirnov c4104b9b32 fix(@desktop): crash on shutdown path 2021-08-12 17:34:24 +03:00
Anthony Laibe 69a6d06fea fix(@desktop/wallet): Use the new pending tx API for pending tx
fixes #3141
2021-08-11 12:07:00 -04:00
Andrei Smirnov 5a7aac0baf fix(@desktop): crash when transitioning from login|onboarding to the app state 2021-08-11 18:51:59 +03:00
Anthony Laibe 7f3810b67a fix(@desktop/onboarding): fix crash when restoring keys
fixes #3191
2021-08-11 13:25:27 +02:00
Anthony Laibe 992828b0c3 fix(@desktop/wallet): Total balance reflect real total
fixes #3054
2021-08-10 15:42:21 +02:00
Anthony Laibe ee84818c06 feat(@desktop/chat): Save favorites and recents gif 2021-08-10 15:31:19 +02:00
Iuri Matias 86688a7e59 move client.close to a finally 2021-08-06 15:14:30 -04:00
Iuri Matias 553a698900 add missing http client close() so it doesn't run out of files 2021-08-06 15:14:30 -04:00
Richard Ramos d1b46c0226 feat: selector for online or invisible state
Fixes #3126
2021-08-06 13:30:05 -04:00
Andrei Smirnov 51c5a8015d fix(@desktop): crash on shutdown 2021-08-06 12:42:18 -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 5e569865e4 feature(@desktop/chat): support jumping to search result message that is not currently loaded in memory
A crash leaving chat is fixed.

The issue was very hidden cause everything looks ok, at first glance, but not, the thing is that
"messages" exposed to qml were deleted from ChatsView and signals beginRemoveRows and
endRemoveRows were emitted for CatsView abstract list model instead for MessageView abstract list
model. That results in an app crash in some moments (not always reproducible, but often).

Fixes: #3005
2021-08-05 14:35:46 -04:00
Sale Djenic 83d6817f70 feature(@desktop/chat): support jumping to search result message that is not currently loaded in memory
Crash adding public chat which is caused by changes applied to this feature is fixed.

Fixes: #3005
2021-08-05 14:35:46 -04:00
Sale Djenic 5d8b02e057 feature(@desktop/chat): support jumping to search result message that is not currently loaded in memory
Feature added. Firstly we check if the searched message is already displayed and if yes simply jump
to it, if not then we are loading new 20 messages in the past using cursor and check if the
searched message's id is among those received messages. We do that in a loop till we find the
message we are searching for.

Fixes: #3005
2021-08-05 14:35:46 -04:00
Sale Djenic e62465d86f feature(@desktop/chat): support jumping to search result message that is not currently loaded in memory
Changes made here were necessary in order to have good base to requested develop feature.

- duplicated methods are removed
- loading messages either on start (initial loading) or loading more messages requested by
  scrolling in the chat view is now done in separate thread (asynchronous) instead as it was earlier,
  done in the main thread
- new file is added for storing async tasks for chat part only
- ChatModel (from status/chat.nim) is QObject instance now, so it may handle async job in a slot
- a job requested from the view is done in separate thread and view is notified about the changes
  using signal/slot mechanism

This is not refactoring, but minimal update to have clear situation for further changes

Fixes: #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 de661459cb feature(@desktop/chat): implement search on sqlcipher (status-go side)
Current code adapted to handle future changes on message search (like searching message in multiple
channels).

Memory leak which was happening in qml assigning (copying) MessageItem to qml variable messageItem
(where that qml variable messageItem was never deleted) is fixed.

Fixes: #2912
2021-08-05 14:35:46 -04:00
Richard Ramos b319eb988e fix: etherchains api parsing error 2021-08-05 12:29:06 -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
Sale Djenic 1573d7b928 feature(@desktop/chat): implement search on sqlcipher (status-go side)
Current code adapted to handle future changes on message search (like searching message in multiple
channels).

Memory leak which was happening in qml assigning (copying) MessageItem to qml variable messageItem
(where that qml variable messageItem was never deleted) is fixed.

Fixes: #2912
2021-08-04 15:49:50 -04:00
Anthony Laibe 728a97389d fix(@desktop/profile): remove chat when blocking contact
fixes #2708

When blocking a contact, if there is a chat open, close it
2021-08-03 16:47:33 -04:00
RichΛrd 46e3779020 fix: code review 2021-08-03 16:43:19 -04:00
Richard Ramos d34dafd525 fix: it should be possible to enter gas prices with decimals 2021-08-03 16:43:19 -04:00
Anthony Laibe b21e1d87c0 feat(@desktop/chat): Style gif widget component 2021-08-03 16:42:05 -04:00
Anthony Laibe c5051d4d4f feat(@desktop/chat): display gif with 3 columns 2021-08-03 16:42:05 -04:00
Anthony Laibe 9cd0f77e92 fix(@desktop/wallet): load collectible on initial account set
fixes #3121
2021-08-03 16:04:09 -04:00
Anthony Laibe 20b1bed309 chores(@desktop/chat): add guard when buying stickers
Call the same function as to when we do a transaction to validate
the argument
2021-08-03 16:03:51 -04:00
Richard Ramos eb9734a72d feat: bandwidth stats
Fixes #2935
2021-08-03 15:41:56 -04:00
Richard Ramos 1551c94135 fix: code review 2021-08-02 15:51:33 -04:00
Richard Ramos 9de0b95c3d fix: group member list 2021-08-02 15:51:33 -04:00
Jonathan Rainville 9f21740bae feat: add api to delete a community channel 2021-08-02 14:08:51 -04:00
Richard Ramos af6978a367 fix: various issues 2021-07-29 09:08:27 -04:00
Sale Djenic c8e3fd8735 Added code to apply default language before qml is loaded. 2021-07-28 12:32:30 -04:00
Sale Djenic c1b47f1c9c High cpu usage fix 2021-07-28 12:32:30 -04:00
Andrei Smirnov c621d5c2ac fix(@desktop): crash on login while getting a setting 2021-07-27 17:44:44 -04:00
Andrei Smirnov 15af3ae454 fix(@desktop): decoding error while getting networks json 2021-07-27 17:44:44 -04:00
Jonathan Rainville e2d91dc66b fix(act-center): multiple fixes to the activity center 2021-07-27 15:29:03 -04:00
Richard Ramos acdb4d3bcb fix: last seen timestamp and removing useless echo 2021-07-27 11:16:28 -04:00
Anthony Laibe a2db1deeda fix(@desktop/chat): revert the visible logic for fetch more messages
This is causing fetch more message to not be visible in other chat type
such as publich chat
2021-07-27 09:45:21 -04:00
Jonathan Rainville 7d169e85f2 fix(delete): disable deleting certain message types 2021-07-26 17:14:07 -04:00
Jonathan Rainville 6dc5e1177b fix(delete): fix deleting pins when deleting messages 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
Anthony Laibe a1ce2ba0da fix(@desktop/communities): Community chat colors stays up to date
fixes #2826

When fetching communities, the chat attached to it are not complete.
In this commit, we ensure that everytime we fetch a community, we update
its chat with the chat being loaded which contains all the data we need
to properly display a chat
2021-07-26 13:27:00 -04:00
Anthony Laibe 75c986cc77 fix(@desktop/onboarding): do not display keyid as address
fixes #3035
2021-07-26 13:17:34 -04:00
Anthony Laibe 5488abcbde fix(@desktop/chat): fix upload of image with special characters
fixes #3034
2021-07-23 17:11:42 -04:00
Jonathan Rainville 0455bcdcf1 fix: fix pin counter not updating for communities
Fixes #3014
2021-07-23 16:49:51 -04:00
Richard Ramos 55a11f016e fix: limit suggestions to member list in communities
Fixes #3021
2021-07-23 15:58:07 -04:00
Pascal Precht e097d2bfe7 fix(Communities): preserve category id when editing channels
As described in #3015, when editing channels that belong to a category of a community,
after saving them, they'll get kicked out of the category.

This is because we haven't passed the category id along the API that performs the
save operation.

This commit ensures we have access to a category chats' `categoryId` and send it
over to `editCommunityChat` RPC API provided by status-go

Fixes #3015
2021-07-23 15:48:21 -04:00
Anthony Laibe aec0130107 fix(@desktop/chat): prevent double addition of private chat 2021-07-23 15:40:36 -04:00
Anthony Laibe e88665f27a fix(@desktop/chat): hide notification when leaving/creating a group
fixes #2484
2021-07-23 15:37:23 -04:00
Anthony Laibe 58506fbd97 feat(@desktop/chat): Display gif popup next to emoji 2021-07-23 15:27:56 -04:00
Andrei Smirnov 2df8e938ae fix(@desktop/login): crash on login and login ux improvements 2021-07-23 15:13:45 -04:00
Andrei Smirnov b1be4d643b fix(@desktop/communities): pending membership counter 2021-07-23 14:45:07 -04:00
Anthony Laibe 076a5bc5b7 fix(@desktop/communities): mute/unmute communities
fixes #2880
2021-07-23 13:40:40 -04:00
Andrei Smirnov b3528bd717 fix(@desktop): missing context menu on SystemTrayIcon 2021-07-23 13:22:04 -04:00
Andrei Smirnov f73fbe3204 chore(@desktop): nim compilation warnings - unused imports 2021-07-23 13:19:37 -04:00
Richard Ramos b7747104ec fix: code review 2021-07-22 13:48:53 -04:00
Richard Ramos 07c399530b fix: load old user status, and fix code review obs. 2021-07-22 13:48:53 -04:00
Richard Ramos 7aaca9ec4d toggle switch to control if status should be broadcasted or not 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 c21f80e7da feat: select bloom filter level 2021-07-21 15:09:23 -04:00
Richard Ramos f4da94af6a refactor: node config 2021-07-21 15:09:23 -04:00
Richard Ramos d8053f5291 fix: getNodeConfig 2021-07-21 15:09:23 -04:00
Richard Ramos 42a31f66b3 update statusgo 2021-07-21 15:09:23 -04:00
Richard Ramos 2205d57636 fix: paths 2021-07-21 15:09:23 -04:00
Richard Ramos 5daf7894f5 go-waku store protocol 2021-07-21 15:09:23 -04:00
Richard Ramos 561991da67 Add wakuv2 fleets 2021-07-21 15:09:23 -04:00
Richard Ramos 26c17afb5d Using go-waku 2021-07-21 15:09:23 -04:00
Pascal Precht 5bf5095c3c refactor(communities): remove typo in `exportCommunity()` API 2021-07-21 12:18:02 -04:00
Jonathan Rainville aa87a3f7fe feat(activity): add 1-1 messages to activity center
Fixes #2830
2021-07-20 10:55:42 -04:00
Anthony Laibe 5f8a6f33fa fix(@desktop/chat): start chat after contact request accepted
fixes #2902
2021-07-20 10:30:18 -04:00
Jonathan Rainville 1621818ecf feat(link): handle group chat invite links
Fixes #2676
The group chat is still not usable. It is missing the feature to request access to the group chat.
2021-07-20 10:00:54 -04:00
Anthony Laibe a811ee215c fix(@desktop/chat): cannot unpin last message in modal
fixes #2659

1 - Change call from remove to deleteMessage
Remove were not updating the index and was causing the issue

2 - Erase the remove proc as the deleteMessage should always be used
2021-07-20 10:00:26 -04:00
Sale Djenic abf89fa399 chore(@desktop/general): use different icons for Windows/Linux and MacOS
Icons are updated, mac uses rounded rect log, win and linux circle logo.

Fixes: #2833
2021-07-19 13:37:56 -04:00
Anthony Laibe 4269b51ea6 feat(@desktop/wallet): display confirmation block count
fixes #2715
2021-07-19 13:33:32 -04:00
Anthony Laibe 8a4eeb14c0 fix(@desktop/communities): reaction are being displayed on pinned message
fixes #2838

This also fix the ability to add/remove a reaction to a pinned message
2021-07-19 13:18:59 -04:00
Andrei Smirnov 011b7804ef fix(@desktop/chat): mentions badge cleanup 2021-07-19 12:53:01 -04:00
Sale Djenic e9585e6209 feature(@desktop/communities): add loading state when import community
Toast message is added when user access an existing community using community's private key. Toast
message with message that importing community is in progress is displayed while community is being
imported and once it is imported toast is closed and new one, which will be closed in 4 seconds,
with message that community is imported is displayed.

Fixes: #2467
2021-07-19 12:27:45 -04:00
Anthony Laibe 9d4fa890b4 fix(@desktop/communities): update communities chat
fixes #2826
2021-07-16 17:59:10 -04:00
Sale Djenic ecb2bac6e5 fix(@desktop/chat): sign and send appears for both recipient and sender when sharing the address
The reason for this issue is a message where recipient accepted to share his address with sender.
In that message recipient's public key is set as a "from" property of a "Message" object and we
cannot determine which of two users has initiated transaction actually.

This is fixed checking if the "from" address from the "commandParameters" object of the "Message"
is contained as an address in the wallet of logged in user. If yes, means that currently logged in
user has initiated a transaction (he is a sender), otherwise currently logged in user is a
recipient.

We were just sending a transaction, without notifying message about that. Now we call
callPrivateRPC("acceptRequestTransaction".prefix, %* [transactionHash, messageId, signature])
and that notifies message about the change, but only on the sender side. Appropriate message
on the recipient side was not notified about the change. That need to be checked.
2021-07-16 17:41:22 -04:00
Richard Ramos 2f2b3726df feat: waku bloom filter mode switch 2021-07-15 09:41:39 -04:00
Andrei Smirnov cd423336e1 fix(@desktop): windows application unresponsive when fetching Status updates 2021-07-14 18:28:41 -04:00
Anthony Laibe 511c959121 fix(@desktop/chat): fix sticker/image notification with placeholder
fixes #2450
2021-07-14 18:27:38 -04:00
Anthony Laibe b31bd265c5 fix(@desktop/profile): chat confirmation notification
fixes #2637

When changing a contact, the notification about being able to chat was sent again.
Prevent this behaviour by ensuring the contact hasn't already been added
2021-07-14 18:17:55 -04:00
Pascal Precht d10ffd56ce fix: ensure Chat navbar tab button shows correct message count
The chat navbar tab button renders an indicator when there's unread messages
in any of the chats. It also renders a message count, which prior to this commit
equals to the number of total unread messages.

This however is not the desired behaviour. Instead, the count should be the total
number of unread one on one messages (DMs), plus the total number of mentions in any
chats the user is participating in.

This commiit ensures the correct message count is rendered. It also adds an "unread messages"
indicator to community buttons.

Closes #2869
2021-07-14 18:17:21 -04:00
Jonathan Rainville 3e33db039f fix(search): fix 1-1 name, pic, icon and symbol 2021-07-14 17:42:55 -04:00
Jonathan Rainville 6e218ad924 feat: add basic local chat search
Fixes #2771
2021-07-14 17:42:55 -04:00
Sale Djenic 47d1546893 fix(@desktop/chat): app crash when you leave a chat
The issue is happening randomly. I managed to catch it few times and hopefully fix it. Problem was
in leave proc in src/status/chat.nim cause we were sending activeChannelChanged signal from it what
started setting activeChannel to the value of the backToFirstChat variable, and while that process
was in progress setActiveChannelByIndex was called from activeChannel what caused another emit of
activeChannelChanged signal while the previous one was not completed. That caused new setting of
activeChannel with active channel index 0, what caused an app crash.

This is fixed by setting active channel to the first one from the list when we get a signal that
any channel from the list is removed. This way activeChannelChanged is broadcasted to the other
parts correctly.

Fixes: #2825
2021-07-14 16:15:40 -04:00
Anthony Laibe 869ae63518 fix(@desktop/profile): Unmuted chat from profile -> notification
fixes #2557
2021-07-13 17:20:13 -04:00
Sale Djenic 102a385943 fix(@desktop/chat): app crash when you accept contact request
This issue is being happened randomly, no general rule, in my case it happens often when you accept
first contact from the list immediately after the app start, but the ticket says that it happens
when you click accept while context menu is opened.

Two places were threat for this crash and both are fixed here:
- getChannel proc, direct access by index to Chat element of the chats sequence,
- setChatItem proc, where we actually were setting chatItem and accessing its property without
  checking if it is an empty object.

Fixes: #2837
2021-07-13 16:33:08 -04:00
Anthony Laibe 314d1833a2 fix(@desktop/wallet): Iterate over collectible with balance 2021-07-13 11:39:38 -04:00
Sale Djenic 4d148b5c78 fix(@desktop/wallet): app crash when signing token transaction with invalid password
The issue was accessing non existent property after parsing received response. That caused
app crash, fixed now.

Fixes: #2623
2021-07-12 17:01:11 -04:00
Andrei Smirnov 3bb5be8685 fix(@desktop/chat): navigating from Chats to Timeline shows wrong messages 2021-07-12 16:51:20 -04:00
Andrei Smirnov 0eab4009ba fix(@desktop/chat): crash when pinning a message for a chat with cleared history 2021-07-09 12:20:45 -04:00
Pascal Precht c675aff0f8 refactor(Communities): replace `CategoryList and `ChannelList` with StatusQ components
This commit replaces `CategoryList` and `ChannelList` with `StatusChatListAndCategories`,
`StatusPopupMenu` etc. provided by StatusQ.

It also removes components that lived inside Status Desktop but are no longer used
anywhere after the refactor.

Since StatusQ components are decoupled from UI model logic, we also needed to introduce
a new API retrieve a community category from within QML.

Closes #2805
2021-07-09 10:39:58 -04:00
Pascal Precht 23b103795a refactor(ContactsColumn): replace `ChannelList` with `StatusChatList`
Closes #2745
2021-07-09 10:39:58 -04:00
Richard Ramos 9e58563fcf feat: community userlist
Fixes #2810
Probably a big chunk of the code from this PR is going to be replaced by #2811
2021-07-08 14:14:27 -04:00
Sale Djenic 7fbccec227 fix(activity_center): Mark as read does not clear @ symbol in chat
Mark all mention notifications as read is fixed. Also mark as read one by one notification removes "@" from the appropriate channel along with the marking as read last mention notification for that channel. hasMention field which was bool is switched with mentionsCount field which is int, so we have evidention how many mentions were for each channel.

Fixes: #2788
2021-07-07 14:25:52 -04:00
Richard Ramos c5cc001ee1 fix: code review 2021-07-07 06:19:41 -04:00
Richard Ramos 2fcbe4ac16 feat: user list 2021-07-07 06:19:41 -04:00
Pascal Precht 189d761d20 fix(Status): import missing `utils` module
There's an API used in `provider.nim`, which is defined in `utils.nim` but utils aren't imported.
The usage of that API was introduced in 065bd26786 (diff-778feda87f0918b600d692bd16cdd1af92ae0611f81ae6557749e5f462636694R127)
2021-07-07 11:06:24 +02: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 cd44b8a606 feat: add group requests to the activity center
Fixes #2679
2021-07-06 12:51:43 -04:00
Richard Ramos 065bd26786 fix: code review 2021-07-06 11:58:47 -04:00
Richard Ramos 5f7f899c3b refactor: separate slots for sending eth and tokens 2021-07-06 11:58:47 -04:00
Richard Ramos fd976c770d fix: notifications 2021-07-06 11:30:07 -04:00
Richard Ramos 2c553f48f7 fix: issues 2021-07-06 11:30:07 -04:00
Richard Ramos c7750da267 feat: edit messages 2021-07-06 11:30:07 -04:00
Eric Mastro 77e501c478 fix(wallet): QML error when loading history
Fixes: #2725.

When clicking on the History tab for a wallet account, there was a QML error for `qrc:/app/AppLayouts/Wallet/WalletLayout.qml:113: TypeError: Property 'checkIfHistoryIsBeingFetched' of object HistoryTab_QMLTYPE_503(0x7fed35da2710) is not a function`. This must have been reintroduced when StatusQ objects were introduced. It has now been removed.

chore: change log level to warn for non-archival node
Previously, there was an error being logged for non-archival infura nodes being used (typically in dev). This log level has been reduced to a warning as the application still functions with non-archival nodes.
2021-07-06 11:28:00 -04:00
Richard Ramos 0f66508a79 fix: invalid keyuid being used with a newly generated account on first login 2021-07-06 11:06:23 -04:00
Andrei Smirnov 7255dcd256 Fixed: starting a group chat shouldn't show the section to fetch more messages. 2021-07-06 10:57:37 -04:00
Sale Djenic 6f55c51ff2 fix(wallet): Crash when enter -1 to Gas Selector
Validation check is updated, so user cannot enter zero or less than zero value for "gas amount limit" or "per-gas overall limit".
In gas.nim a crash prevention check is added.

Fixes: #2753
2021-07-06 10:46:07 -04:00
Sale Djenic a9fd4513aa fix(wallet): Clicking Request Address when sending -1 STT crashes the app
Validation check is updated, so user cannot enter zero or less than zero value in amount input field.
Also in utils.nim a crash prevention check is added so if we try to convert a less than zero float number to an unsigned number, app won't crash any more, but that casting will return a zero as unsigned int number.

Fixes: #2755
2021-07-06 10:45:25 -04:00
Andrei Smirnov 746d120479 Added $HEZ as default ERC-20 token. 2021-07-06 10:44:45 -04:00
Richard Ramos 516d1974b2 fix: pin messages counter and load 2021-07-06 10:44:20 -04:00
Jonathan Rainville 2e98724641 feat(community): add notification setting to community
Fixes #2421
2021-07-06 10:41:10 -04:00
Jonathan Rainville 60b6390581 chore: fix nim import warnings 2021-07-02 08:56:49 -04:00
Jonathan Rainville 10601710e9 fix(community): fix crash on going back to chats from community
Fixes #2504
2021-07-02 08:53:51 -04:00
Jonathan Rainville dfebe88be7 fix(communities): fix duplicated communities and joining through link
Fixes #2665
2021-07-02 08:51:48 -04:00
Richard Ramos ba2b553d7c refactor: Profile 2021-07-02 08:51:30 -04:00
Eric Mastro 4c0371144b fix: chat view shown after community creation
Fixes: #2686.

Previously, when using a new account, joining a chat then creating a community and then returning back to the chat would not show a chat at all and instead show the default chat view. This was due to the previous index not being set when there were no other channels in the chat.

This has been updated such that the previous channel index is set when switching from chat to community and no previous channel index has been set.

# Conflicts:
#	src/app/chat/view.nim
2021-06-29 07:56:51 -04:00
Jonathan Rainville b720a611c4 fix(wallet): fix loading of initial balances 2021-06-29 07:55:26 -04:00
Jonathan Rainville eb726a315c fix(hisotry): fix load more history button
Fixes #2754
2021-06-29 07:55:26 -04:00
Eric Mastro e281ec3871 fix(communities): re-joining of left communities
Fixes: #2649.

Upon receipt of status-go signals which included communities that have been left (`joined: false`), those communities were being rejoined automatically when they should not have been.

fix(communities): Invitation bubble button state updates
The community state inside of the invitation bubble was not reactive to any community actions (such as joining, leaving, updating). In addition, requesting to join a community changed the button’s text to “Pending”, but upon approval, the button’s state was not updating.

The component was setting an observed community in the Component.onCompleted event, which was occurring for all invitation bubbles, but because the community wasn’t bound correctly to the bubble, once a bubble  with a different community was encountered, the community in context of the bubble wasn’t updated and instead used a local copy. Once the community was bound correctly (to be reactive), the states started working correctly.

The invitation bubble has been simplied so that it has states instead of using lots of if/else statements inside of the property bindings. This simplified the component’s logic for things like onClick action and made it a lot easier to read and modify.
2021-06-29 07:52:47 -04:00
Iuri Matias f8e5b25a09 refactor: extract messages from chat view
refactor: extract messages from chat view

refactor: extract messages from chat view

refactor: extract messages from chat view

update references to messageView

fix setup

remove duplicated method
2021-06-22 15:12:01 -04:00
Jonathan Rainville 702f52f6ed fix(browser): fix browser undefined model 2021-06-22 12:59:11 -04:00
Jonathan Rainville 3ef403a022 feat(act-center): add community badge links to community and channel 2021-06-21 16:29:42 -04:00
RichΛrd 3b7b346c1b
fix: remove echo 2021-06-21 15:34:42 -04:00
Richard Ramos 157a53b02b fix: various
- Timeline updates were displaying the current active chat messages
- Cursor for existing chat messages was being overwritten
2021-06-21 15:31:31 -04:00
Iuri Matias d299e05e02 fix wrong setup of channel view which was causing app to crash 2021-06-18 12:12:01 -04:00
Iuri Matias 599bf731fb refactor: extract 'channels' to its own file 2021-06-18 12:12:01 -04:00
Iuri Matias 9aba9ae3c1 refactor: extract ens code from chat view 2021-06-17 16:29:35 -04:00
Iuri Matias 45b0e5e756 refactor: move input formatting code to its own file 2021-06-17 16:29:35 -04:00
Iuri Matias 6bcdb9ca54 refactor wallet views
add getSettings methods to src/status

fix issue with calling getSettings; document issue

remove most direct references to libstatus; document some common issues

remove most references to libstatus wallet

add mailserver layer to status lib; remove references to libstatus mailservers

remove libstatus accounts references

move types out of libstatus; remove libstatus types references

remove libstatus browser references

refactor libstatus utils references

remove more references to libstatus stickers

remove references to libstatus constants from src/app

remove more libstatus references from src/app

refactor token_list usage of libstatus

refactor stickers usage of libstatus

refactor chat usage of libstatus

remove libstatus references from the wallet view

remove logic from ens manager view

fix issue with import & namespace conflict

remove unnecessary imports

refactor provider view to not depend on libstatus

refactor provider view

refactor: move accounts specific code to its own section

fix account selection

move collectibles to their own module

update references to wallet transactions

refactor: move gas methods to their own file

refactor: extract tokens into their own file

refactor: extract ens to its own file

refactor: extract dappbrowser code to its own file

refactor: extract history related code to its own file

refactor: extract balance to its own file

refactor: extract utils to its own file

clean up wallet imports

fix: identicon for transaction commands
Fixes #2533
2021-06-17 16:11:01 -04:00
Iuri Matias d5dc7c29ca fix rebase issues 2021-06-17 11:11:36 -04:00
Iuri Matias ca990796a0 refactor provider view to not depend on libstatus 2021-06-17 11:11:36 -04:00
Iuri Matias 1b7799944e remove unnecessary imports 2021-06-17 11:11:36 -04:00
Iuri Matias 985532ce9a fix issue with import & namespace conflict 2021-06-17 11:11:36 -04:00
Iuri Matias 01dc488870 remove logic from ens manager view 2021-06-17 11:11:36 -04:00
Iuri Matias 80456eaa10 remove libstatus references from the wallet view 2021-06-17 11:11:36 -04:00
Iuri Matias a90aa4cc3a refactor chat usage of libstatus 2021-06-17 11:11:36 -04:00
Iuri Matias 2e8af89adf refactor stickers usage of libstatus 2021-06-17 11:11:36 -04:00
Iuri Matias 29e794b8cf refactor token_list usage of libstatus 2021-06-17 11:11:36 -04:00
Iuri Matias 000ddf0ddc remove more libstatus references from src/app 2021-06-17 11:11:36 -04:00
Iuri Matias 8bb2dbb82a remove references to libstatus constants from src/app 2021-06-17 11:11:36 -04:00
Iuri Matias f7a8b14bfb remove more references to libstatus stickers 2021-06-17 11:11:36 -04:00
Iuri Matias 482aac8e98 refactor libstatus utils references 2021-06-17 11:11:36 -04:00
Iuri Matias 6e99b769be remove libstatus browser references 2021-06-17 11:11:36 -04:00
Iuri Matias eab9d68aff move types out of libstatus; remove libstatus types references 2021-06-17 11:11:36 -04:00
Iuri Matias daed733ebb remove libstatus accounts references 2021-06-17 11:11:36 -04:00
Iuri Matias be696ad20f add mailserver layer to status lib; remove references to libstatus mailservers 2021-06-17 11:11:36 -04:00
Iuri Matias ceb7f85e4e remove most references to libstatus wallet 2021-06-17 11:11:36 -04:00
Iuri Matias e8de7e0c99 remove most direct references to libstatus; document some common issues 2021-06-17 11:11:36 -04:00
Iuri Matias 36c25aaab9 fix issue with calling getSettings; document issue 2021-06-17 11:11:36 -04:00
Iuri Matias 09f77177b0 add getSettings methods to src/status 2021-06-17 11:11:36 -04:00
Jonathan Rainville b1bcd539a2 feat: add replies to the activity center 2021-06-15 13:14:19 -04:00
Jonathan Rainville 5f7e277065 feat: make it possible to mark individual as read
Fixes #2663
2021-06-15 13:14:19 -04:00
Jonathan Rainville 0b00a426ae feat: add show more button to activity center
Fixes #2670
2021-06-15 13:14:19 -04:00
Jonathan Rainville 414b39d7e0 feat: add mentions to activity center and interactions
Fixes #2610
2021-06-15 13:14:19 -04:00
Eric Mastro 45286e179c fix: kick and re-invite user to group chat
Fixes: #2601.

Kicking a user and re-inviting them now correctly redisplays the join/decline options. Other combinations of User B leaving or declining an invitation are not handled. Please see the notes below for clarification.

Additionally, the group invite popup (that shows the list of members belonging to the group) correctly shows when a user is kicked or when a user leaves the group in real time. Previously, the popup needed to be reopened to display this.

fix: decline invitation crash
Declining a group invitation was crashing the app. This has been fixed.

### NOTES
1. In the case where User A invites User B to a group, but User B declines (or User B joins, then leaves), then from a status-go standpoint, User B is still part of the group, but the chat is marked as `active: false` for User B. This creates a situation where User B cannot re-join the group once s/he has declined the invitation. @cammellos mentioned there possibly will need to be a refactor of cab6281dc5/protocol/messenger.go (L1710) (which, by retaining User B as a member, effectively prevents the re-invitation) once “swipe to delete” is implemented on mobile. There is an activity center notification received for User B that is meant to allow re-joining of the group when the notification is accepted. The activity center notification received from status-go looks like the following:
```json
"activityCenterNotifications": [
      {
        "id": "0x0e342d33",
        "chatId": "e342d33f-dd05-4d7b-b14e-b5335e1a3ee9-0x043bf46aa874c377a34946eab67a32cf36c15907b328216dfce375d169fed7d81c21cada3229db1fd37c762d2c02702111a646657feca6621e2e948febcf378fb4",
        "name": "test-22",
        "type": 2,
        "lastMessage": null,
        "message": null,
        "timestamp": 1623305612000,
        "read": false,
        "dismissed": false,
        "accepted": false
      }
    ]
```
2021-06-11 11:03:16 -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 78f7bddb36 Remove community from list after being kicked/banned from it
Fixes #2517
2021-06-10 19:33:14 -04:00
Eric Mastro 0b0a542828 fix: loading of wallet history, display of tx datetime
Fixes: #2539.

Transaction history is now correctly being fetched from status-go as per mobile. Firstly, when accounts are added (ie as watch accounts), `wallet_checkRecentHistory` must be called first so that the status-go db is populated. After that, `wallet_getTransfersByAddress` can be called. On app load, when we run the `initBalance` logic, we are calling `wallet_getTransfersByAddress`, asking for the last 20 transactions with the `loadMore` parameter set to false. When the user navigates to the Wallet > History tab, they can then click “Load More” to fetch more transactions from status-go. Once the number of transactions returns false below the expected amount, the remaining transactions to fetch have been exhausted and the “Load More” button is disabled.

feat: add non-archival node warning to the UI to indicate to the user that they may not have complete results

feat: set active account to the added account
Once an account is added to the wallet, that newly added account is selected as the active account.

1. The “load more” button is active when new transactions that aren’t already displayed are returned from `wallet_getTransfersByAddress`. This is the only way to enable or disable the “Load more” button as status-go is not able to return information regarding whether or not there are more transactions to be fetched. The downside to this is that lets say the last page of transactions is returned, but there are no more pages left. These returned txs are not currently displayed, so the “load more” button will still be enabled. However, the next click of the button will return 0 results, thus disabling it. It’s effectively an extra click to get to the disabled state.
2. For more information on how the `toBlock` parameter operates for the `wallet_getTransfersForAddress` RPC call, see https://notes.status.im/XmENTrVRRaqhwE4gK0m8Mg?view.
2021-06-10 10:47:03 +10: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
Michael Bradley, Jr 816b2f0ee9 fix: on macOS remove -psn_... cli params before processing with confutils 2021-06-03 14:01:06 -05:00
Iuri Matias e88f4aa170 fix: rename transactionHash to hash due to breaking changes in the api 2021-06-02 16:41:04 -04:00
Jonathan Rainville 6895dc6c6c fix: fix community crash when no chat is active
Fixes #2628
2021-06-02 12:04:55 -04:00
Eric Mastro 815abdc226 fix: Timeline view crash with SIGSEGV when loaded
Fixes: #2618.

The main culprit was that `self.pinnedMessagesList` did not contain the `self.activeChannel.id` because it was correctly upserted in `upsertChannel`.

To fix this, when calling `upsertChannel`, `self.pinnedMessagesList` was checked if it contained an entry for the upserted channel first before adding it to the list.

Nil checks were added to parsing the messages RPC response in case specific fields were not returned in the response.

In addition, a copy/paste error was fixed in `asyncMessageLoadTask`.
2021-06-02 11:54:56 -04:00
Jonathan Rainville 18b26a1c67 start of activity center function calls 2021-05-31 15:54:18 -04:00
Pascal Precht f138f93815 fix(Communities): disable chat input when active user is banned
Fixes #2507
2021-05-31 13:57:02 -04:00
Richard Ramos 0498613d28 fix: unread count 2021-05-31 10:29:10 -04:00
Jonathan Rainville 7b95031ee6 hide input field until mutual contacts and notify on contact accepted 2021-05-28 13:31:33 -04:00
Jonathan Rainville ecf8b241f0 feat: add setting to not receive contact requests 2021-05-28 13:31:33 -04:00
Jonathan Rainville 436cb42eae feat: add contact requests and handling of them 2021-05-28 13:31:33 -04:00
Eric Mastro 24d8e429b8 feat: edit communities
Allow editing of Community name, description, image, colour, and access.
2021-05-28 19:08:19 +10:00
Eric Mastro c415f3b989 fix: interrupt running sticker task when exiting
Fixes: #2318.

Currently, when exiting the app and the sticker packs task is being run, the app will wait for the sticker packs task to completely finish before exiting the app. This causes a beachball to be displayed and can cause a long delay while waiting for the task to finish.

This PR passes an interrupt signal to the sticker pack loading task in the threadpool thread. The task loads the interrupt on each iteration of its loop (each sticker pack to load) and also during the processing of each sticker pack (getting of sticker pack data). This allows the application to exit neatly.

fix: Handle shutdown of long-running (marathon) task before login
Currently, we wait for the “loggedIn” message to be passed to the marathon task runner before initialising the mailserver model. We were, however, blocking the thread until “loggedIn” was received, meaning that if “shutdown” was received (as it is when cmd+q is pressed), this message would be ignored and the application would have to be forced to quit.

This PR adds logic that not only listens for the “loggedIn” message, but also for the “shudown” message. Once the “shutdown” message is received, the marathon worker thread exits.
2021-05-27 16:19:10 +10:00
Richard Ramos fb47d73e79 fix: set nickname without creating a contact
Fixes #2589
2021-05-26 18:10:46 -04:00
Jonathan Rainville c8cc65506b fix(CommunityRequest): fix request list emptying after accepting
Fixes #2474
2021-05-26 15:27:49 -04:00
Jonathan Rainville 0fe7da0480 feat(community): fetch community info from link
Fixes #2290
2021-05-26 15:27:49 -04:00
Jonathan Rainville c1f6afd799 fixes 2021-05-26 12:12:05 -04:00
Jonathan Rainville 8952d55028 update status-go to develop version 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 872aa7794c feat: edit categories 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 f86611303f feat: updated mailserver logic 2021-05-25 14:47:13 -04:00
Richard Ramos 62d7fc9853 feat: mailserver gaps 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
Eric Mastro 1387ba3157 fix: prevent crash checking pending transactions
There is an unknown state that the data dir seems to get in that causes the application to crash when checking pending transactions. This is fixed by checking if the pending transactions RPC result has a `”result”` field first before attempting to read it.

### NOTE:
Clearing the data directory fixed the issue for me, however I do not know what caused it in the first place. While the crash was happening, there was also an error appearing in the logs:
```
ERR 2021-05-18 15:40:47+10:00 rpc response error                         topics="rpc" tid=3893906 file=core.nim:24 methodName=wallet_getPendingTransactions payload=[] result="{\"jsonrpc\":\"2.0\",\"id\":0,\"error\":{\"code\":-32000,\"message\":\"no such column: transaction_hash\"}}"
```
After clearing the data dir, this error also went away.
2021-05-19 16:24:59 -04:00
Pascal Precht 2a706d2b09 feat(Communities): allow admins to ban users
Closes #2514
2021-05-18 15:27:29 -04:00
Richard Ramos 0b4c465f51 handle cases where the id is nil 2021-05-18 15:25:04 -04:00
Richard Ramos 0fa9064481 fix: add id to signature response
Fixes #2542
2021-05-18 15:25:04 -04:00
Pascal Precht 18ecb87e9b fix(Communities): don't list members in contacts to invite list
When inviting contacts to a community, Status Desktop suggests a list of
all contacts, even if contacts of that list are already members of the community.

This commit introduces a new flag to `ExistingContacts` component that
allows for configuring whether community members should be hidden or not

Fixes #2502
2021-05-18 15:24:50 -04:00
Richard Ramos 6fd7142cb5 feat: watch transactions with new wallet API 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 7d56e66a86 fix: check null 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
Richard Ramos 9493839b65 force messages to dissapear if a contact is blocked 2021-05-14 11:56:07 -04:00
Richard Ramos fdf6be5f64 feat: delete messages on block 2021-05-14 11:56:07 -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
Eric Mastro 590192ad9e fix: show suggestion profile pics for contacts only
Fixes: #2365.

Previously, suggestions for mentions were showing profile pics even for users who were not contacts. Now, profile pics are only shown for those users who are contacts. The user’s identicon is shown otherwise.

fix: user thumbnail not shown when no profile pic
When a user was a contact, but didn’t have a profile pic, an image would not be loaded and a ‘reload’ image would be shown instead. With this PR, if the user is a contact and they do not have a profile pic, their identicon will be shown instead.
2021-05-14 10:27:53 -04:00
Jonathan Rainville a0029ce270 refactor(ChatInput): refactor text formation to increase perfo and enbale undo 2021-05-14 10:27:47 -04:00
Eric Mastro ee1287b71d fix: prevent crash on generate account wrong password
Fixes #2448.

Currently, if a wrong password is entered when generating a wallet account, the app will crash due to attempting to decode a `GeneratedAccount ` from an rpc response containing only an error.

With this PR, we are detecting if an error is returned in the response, and if so, raising a StatusGoException. This exception is caught in the call chain, and translated in to a `StatusGoError` which is serialised and sent to the QML view, where it is parsed and displayed as an invalid password error in the input box.

refactor: remove string return values as error messages in wallet model
In the wallet model, we were passing back empty strings for no error, or an error as a string. This is not only confusing, but does not benefit from leaning on the compiler and strong types. One has to read the entire code to understand if a string result is returned when there is no error instead of implicitly being able to understand there is no return type.

To alleviate this, account creation fundtions that do not need to return a value have been changed to a void return type, and raise `StatusGoException` if there is an error encountered. This can be caught in the call chain and used as necessary (ie to pass to QML).

refactor: move invalid password string detection to Utils
Currently, we are reading returned view model values and checking to see if they include a known string from Status Go that means there was an invalid password used. This string was placed in the codebased in mulitple locations.

This PR moves the string check to a Utils function and updates all the references to use the function in Utils.
2021-05-14 10:27:37 -04:00
Pascal Precht 7329522a28 chore: add StatusQ as dependency
This commit does a couple of things:

- add StatusQ as a dependency (https://github.com/status-im/StatusQ)
  our emerging component library
- updates the rcc generation script to follow symlinks as well
- add qrc:/./StatusQ/src as import path

At the time of creating this commit `StatusQ` provides only the StatusIcon
component, but more will be added in the future.
2021-05-04 14:42:28 -04:00
Jonathan Rainville eac7009807 feat(community): fetch community info from link
Fixes #2290
2021-05-03 14:36:37 -04:00
Eric Mastro 0850835b34 fix: Send Message button not working in profile popup
Fixes: #2364

The Send Message button click event was erroring due to a refactor that had been done to allow for changing app sections.

This has been updated to follow the current way to change app sections.

fix: “Send Message” button crash in communities
This required switching from communities to normal view.

fix: crash when clicking channel link in community message
When a message in communities contains a link to another channel (ie #otherchannel), the search for this channel needed to be updated to also search for the channel by name, allowing for switching between channels within a community by message link. Additionally, when in a community, if the channel was located in a normal chat, it will switch the view to the normal chat after being found.
2021-04-29 12:36:58 -04:00
Jonathan Rainville 3a7c95967a feat: implement redesign of message replies
Fixes #2303
2021-04-29 12:35:59 -04:00
Jonathan Rainville 2c3449e676 chore: comment out StartWallet for the moment 2021-04-29 12:30:05 -04:00
Pascal Precht bceed7b7aa fix(Communities): receive community info after community import
This commit ensures that, once a community was imported, the application
will listen to the newly introduced `community.found` signal, which will be
emitted by status-go.

The signal exposes a `Community` object that is then used to add a
community item to the community list in the UI.

**This can only land after https://github.com/status-im/status-go/pull/2177 has landed first!**

Fixes #2024
2021-04-29 12:30:05 -04:00
Michael Bradley, Jr 02b26f3c28 build: launch nim_status_client directly in packaged builds for macOS
Remove the `nim_status_client.sh` launcher script and make related changes.
2021-04-28 07:15:44 -05:00
Jonathan Rainville fcc133e9d1 fix(Settings): fix QT settings not being saved on first start
Fixes #2312

This will reset the QT settings of all users, since we change from using the address to using the pubkey.
The reason for that is that the account address also called keyId is somehow not set correctly on first login. The pubkey stays constant on the other hand. So using the pubkey is better.
2021-04-27 15:27:48 -04:00
Richard Ramos 6fd68c10f3 fix: handle tokens with no decimals
Fixes #2432
2021-04-27 14:12:19 -04:00
Eric Mastro cf361de1e0 feat: show ENS name in notifications
Fixes: #2418.

Chat notifications for one-on-one chats were showing only a user’s alias and not their ENS name if they have one.

This PR now shows a user’s ENS name if they have one, or their alias if they don’t in one-on-one chat notifications.
2021-04-27 10:29:32 +02: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 86e69132c6 feat: add error handling to mark messages as seen logic 2021-04-20 14:44:27 -04:00
Pascal Precht aeedc87368 feat: introduce global settings
This commit introces global settings that apply across accounts used
inside the application. This is useful when settings like the selected
locale should b the same across all accounts.

Closes #2144
2021-04-19 13:53:14 +02:00
Eric Mastro e47092cfd0 feat: settings cache efficiency update
Current settings caching logic was inefficient when attempting to retrieve settings that contain the sensitive mnemonic. While those calls were limited to the login logic, each call would need to round trip to status-go to get all settings when they wanted to include sensitive data, as the cache was not being updated for these calls.

This PR updates the cache regardless if sensitive data is requested of not, effectively making the caching mechanism more efficient during login.
2021-04-15 17:02:28 -04:00
Eric Mastro 0a108dd849 feat: Add libstatus contacts caching
Fixes #2131.

After some heavy profiling, it became clear that sending of each message was causing a fetch to get all contacts from status-go. This was incurring a minimum of a 0.03s delay for each fetch, which was causing a bottleneck each time it was called for various operations throughout the codebase.

This code addds a layer of threadsafe caching to the contacts call, such that only the first call to contacts fetching will incur the delay, as well as every fetch after a contacts CUD operation.
2021-04-15 17:02:08 -04:00
Eric Mastro e7571bd2a4 feat: Add Methuselah and Mailserver long-running task
Fixes #2143.

Methuselah is the a task manager for long-running tasks. It allows fo registration of workers that will each run in their own thead. Each worker can pass messages to and recieve messages from the main thread.

MailserverWoker was also introduced which moves all mailserver model logic to a MethuselahWorker. All communication to/from the model is done via a MethuselahTask. Results of the task are returned to the main thread by way of `signal_handler`, which calls the QtObject slot specified in the task.

Mailsever also provides a way for the model to emit events inside of the worker. These events are forwarded to the main thread via the `receiveEvent` slot of the `MailserverController`.

Co-authored-by: Michael Bradley, Jr <michaelsbradleyjr@gmail.com>
2021-04-14 15:37:05 -04:00
Eric Mastro 0d677eb156 chore: change threadpool logs from debug to trace 2021-04-14 15:36:36 -04:00
Jonathan Rainville 1983fa79aa feat: improve ens search in wallet send by showing the result 2021-04-14 14:39:11 -04:00
Jonathan Rainville 438517a610 fix: fix missing channel identifier in new community chats
Fixes #2211
2021-04-14 12:33:45 -04:00
Jonathan Rainville ba500e5f73 fix: fix notifications not working for community chats
Fixes #2210
2021-04-14 12:33:45 -04:00
Pascal Precht 46fd32aaee feat: add SOCKS token to list of default tokens
Closes #2215
2021-04-14 10:46:49 +02:00
Jonathan Rainville 63b5c549b9 fix: fix invite button not setting Joined correctly
Fixes #2209
2021-04-13 17:50:32 -04:00
Pascal Precht 5ca9d66212 fix(Communities): ensure newly created community is opened 2021-04-13 15:21:00 -04:00
Richard Ramos 8543bf04d4 fix: code review 2021-04-06 14:31:06 -04:00
Richard Ramos 61555d610b fix: it's not necessary to leave chats 2021-04-06 14:31:06 -04:00
Richard Ramos 55ecb50f1b chore: autoremove chat groups 2021-04-06 14:31:06 -04:00
Richard Ramos 31f85787a6 fix: decline chat group invites if admin is not a contact 2021-04-05 12:02:05 -04:00
Richard Ramos 52b18c0c82 fix: leave chat groups 2021-04-05 12:01:45 -04:00
Eric Mastro 40dc428f63 fix: ens search hang
ENS search was executed in a task runner task. The task had a mistake during the copy/paste port from spawnAndSend.
2021-04-01 17:16:54 -04:00
Jonathan Rainville a01e851070 fix: fix being unable to put multiple spaces in a row 2021-04-01 17:07:25 -04:00
Jonathan Rainville 8b3ce83d00 fix: input box disappearing on communities
Fixes #2155
2021-03-31 16:53:08 -04:00
Jonathan Rainville 996b36714d fix: fix scroll speed on Windows 2021-03-30 16:02:10 -04:00
Jonathan Rainville a337b293da feat: show community context menu on Community button 2021-03-30 15:53:32 -04:00
Jonathan Rainville 147d93815f fix: fix unable to write to invite only community channels
This was caused by the fact that the canPost property was not exposed from the ChatItem model.
I'm actually not sure why it didn't show an error trying to call  a function that doesn't exist
2021-03-25 16:38:05 -04:00
Eric Mastro 2336aa4e6f fix: custom token validation for non-token addresses
When contract addresses that are not ERC-20 or ERC-721 were input, the token would be allowed to be added and would crash the app.

In addition, when an ERC-20 contract was deployed without a name and symbol, “Invalid ERC-20 address” would appear.

This PR adds error checking from the token detail lookup and reports the error back to the user in the modal. This prevents non-ERC-20/721 contracts from being able to be added to the app and prevents a crash.
2021-03-25 15:52:02 -04:00
Pascal Precht bb932ac35e fix(Timeline): remove "fetch more" fake message
Two fake messages are usually added to chat message lists inside a channel or
chat:

- One that imitates a chat identifier
- one that creates a button to fetch older messages

These two fake messages are added so it's ensured they show up at the beginning
of the chat.

The status timeline is also just a list of messages (filtered by a certain message
type), however there's no need to render these fake messages in this scenario.
That's why a `addFakeMessages` flag has been introduced which conditionally adds
those fake messages here: https://github.com/status-im/status-desktop/commit/3f012dbf0#diff-6aa545137319516beb03623bc6a9750e1d14a40c68d8868b5a672320fc4d680aR69

At some point, possibly around here (https://github.com/status-im/status-desktop/commit/8ee5abe57), the fake message for
the fetch more button has been reintroduced as default fake message.

This commit puts it back into the function so that it doesn't show up
inside the timeline view.
2021-03-24 14:41:43 -04:00
Michael Bradley, Jr 1200632989 feat: remove all remaining spawnAndSends
refactor: move threadpool task declarations inline with views

Co-authored-by: Michael Bradley Jr. <michaelsbradleyjr@gmail.com>
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2021-03-24 14:30:33 -04:00
Jonathan Rainville 7188579e46 fix: fix mention showing as pubkey and show styling 2021-03-24 14:16:55 -04:00
Jonathan Rainville 5d67a3f5f9 fix: fix sending three word names mentions not working 2021-03-24 14:16:55 -04:00
Jonathan Rainville 2a9f9118a1 fix: fix settings not being refetched when they had been edited before 2021-03-24 12:06:24 -05:00
Pascal Precht 20d0d162b5 fix(Contacts): ensure app doesn't crash when contact can't be resolved
There was a bug introduced https://github.com/status-im/status-desktop/commit/2ac67f95a where we'd rely on the
possibly resolved public key, which is passed to `generateAlias()`.

The public key is never guaranteed to be an actual key (if resolution fails,
it's a an empty string). Passing an empty string to `generateAlias()` causes
`status-go` to crash and we don't handle that error.

This commit ensures that we only attempt to generate an alias when we
indeed have a successfully resolved public key.
2021-03-22 15:49:38 -04:00
Eric Mastro b7124372e9 feat: stickers spawnAndSend to threadpool task
Move the remaining stickers spawnAndSend (obtainAvailableStickerPacks) into a threadpool task.

refactor: create a base class for tasks models to inherit from

NOTE: this branch is based off of `experiment/tasks-3` and should be rebased on master once that branch is merged.
2021-03-19 15:38:50 -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
Jonathan Rainville 62d10eba49 feat: show community invite component on community link 2021-03-17 16:09:23 -04:00
Jonathan Rainville 5581fca41d feat: show default unfurling for community links 2021-03-17 16:09:23 -04:00
Pascal Precht 9faf349b83 fix(libstatus): add safety check before accessing API response
We've introduced a regression in https://github.com/status-im/status-desktop/commit/f1e83f74b#diff-f35edd413addd14c1f81816d6b5ee2bcbdf85fa0e3295d324cb78c98e26d4327L364 where we check whether an RPC's `error` is `null`
and its `result` is not `null`.

This breaks the application with an illegal storage access,
 as in case of a successful API call, the response will have only a `result` key
 (even when it's `null`).

Since we haven't done anything with a possible `error` in the reponse even before
that change was made, this commit removes the `error` check and safe guards around
whether `result` exists.

Fixes #2062
2021-03-17 12:13:59 +01: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
Richard Ramos 4f4a3f1c30 feat: see stickers details when clicking on a sticker 2021-03-16 15:39:52 -04:00
Eric Mastro f1e83f74bc feat: drag and drop images
Allow up to 5 images to be dragged and dropped in to one-on-one chats and in the timeline. Can be combined with the existing upload button. The upload file dialog has been changed to allow multiple selections. Drag and dropped images adhere to the following rules, with corresponding validations messages:
- Max 5 image
- Image size must be 0.5 MB or less
- File extension must be one of [".png", ".jpg", ".jpeg", ".heif", "tif", ".tiff"]

Drag and drop and uploaded images are now also deduplicated.
2021-03-16 13:51:37 -04:00
Jonathan Rainville 7bb8a968c9 fix: fixes the ordering problem on deleting a channel
Fixes #2035
Also goes back to your first channel when deleting the current channel
2021-03-15 14:10:14 -04:00
Richard Ramos 3c024db15e fix: marking a mailserver as trusted is not necessary as this is done by status-go already 2021-03-11 10:35:31 -05:00
Pascal Precht 99dfd7b13a fix(Communities): ensure importCommunity API returns response
Prior to this commit we were ignoring the returned response of the
API call, making it impossible to work with it in case it's needed.
2021-03-11 10:00:05 -05:00
Pascal Precht 01d3369c64 fix(Communities): fallback to letter identicon if no image available
Prior to this commit, communities without an image would render invisible
in the navigation bar of the application. To avoid this, we're now falling
back to our StatusLetterIdenticon component, which renders the first letter
of the community name with the color of the community.
2021-03-11 10:00:05 -05:00
Jonathan Rainville 131685ecf5 fix: fix member popup layout and member not showing
Fixes #1949
2021-03-05 13:57:49 -05:00
Jonathan Rainville 5300dcac28 fix: fix getChannelById crashing on timeline call
Fixes #1987
2021-03-05 12:21:06 -05:00
Jonathan Rainville e94cfaec74 fix: fix member count not updating when inviting
Fixes #1949
2021-03-03 16:45:23 -05:00
Jonathan Rainville d1c6c0f9a9 fix: fix adding a second channel to a community disapearing
Fixes #1953
2021-03-03 16:45:23 -05:00
Jonathan Rainville 2f8d46fa76 fix: fix community channel color undefined issue 2021-03-03 16:45:23 -05:00
Jonathan Rainville e806ef9ff9 fix: fix clear chat and mute/unmute chat for communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville 84034d5dbf fix: fix channel color in communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville b33a7b8fcf fix: fix right clicking a channel in community
Fixes #1950
2021-03-03 16:45:23 -05:00
Jonathan Rainville e52f6daec9 feat: update to latest status go and add color to the community 2021-03-03 16:45:23 -05:00
Jonathan Rainville e28e98a394 fix: fix community rebase errors 2021-03-03 16:45:23 -05:00
Jonathan Rainville 35688e9740 feat: show unfurled link for status chats in 1:1 2021-03-03 16:45:23 -05:00
Jonathan Rainville f8704d7b64 feat: show unviewed count on the community button 2021-03-03 16:45:23 -05:00
Jonathan Rainville b76cb5682c fix: chats not updating on new messages in communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville c57356235b fix: fix calling setActiveChannel from QML 2021-03-03 16:45:23 -05:00
Jonathan Rainville da77487746 fix: fix invite to use new API and remove the double msg send 2021-03-03 16:45:23 -05:00
Jonathan Rainville 941e9565ab fix: going to the previous channel when the community has no channel 2021-03-03 16:45:23 -05:00
Jonathan Rainville b38d1df591 refactor: move communities functions to communities view in chat 2021-03-03 16:45:23 -05:00
Jonathan Rainville 807048522a fix: ste channels correctly when going back and forth to communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville f9817d4f52 feat: add community requests, permissions, ENS and more 2021-03-03 16:45:23 -05:00
Richard Ramos fb8380a861 Show login errors on the console 2021-03-03 15:45:36 -05:00
Pascal Precht 3615a16b70 fix(libstatus): make saveContact API memory safe(r)
In https://github.com/status-im/status-desktop/commit/31a9d1a6f we've fixed
a bug where a contact's thumbnail hasn't been passed to the `saveContact`
API.

Unfortunately, that fix wasn't memory safe. There are cases when a contact's
`identityImage` is `nil`, resulting in illegal storage access when accessing
a contact's thumbnail.

This commit fixes the issue by safe guarding around `identityImage` possibly
being `nil`.
2021-03-01 14:19:05 -05:00
Richard Ramos 358f647735 fix: delete mailserver topic on leaving channel 2021-02-25 15:42:46 -05:00
Jonathan Rainville 6bd8aa9504 fix: fix asset balances on new accounts 2021-02-25 15:42:33 -05:00
Richard Ramos 8ee5abe570 fix: chat identifier / fetch more messages order 2021-02-25 15:40:58 -05:00
Richard Ramos b43122d7f3 feat: use stacklayout for chat messages 2021-02-23 08:53:31 -05:00
Jonathan Rainville 98b3e64573 chore: update status-go version and update mailservers api 2021-02-22 10:01:19 -05:00
Jonathan Rainville 5327b7feea fix: fix mention not being removed 2021-02-22 09:58:28 -05:00
Pascal Precht 18ea9dc2cd fix: make reactions in 1-on-1 chats work
Turns out message reactions weren't functional in 1 on 1 chats.
Reaction signals come with a `chatId` that they correspond to, which is
then used to determine to channel and message list to apply/remove
the reaction to.

Inside of a 1 on 1 chat, the `chatId` of a reaction coming from the
will always be the pubKey of the the user that receives it.
A user however, usually doesn't store a chat item for her own pubKey
unless it's of type `Profile`.

This results in an illega storage access as reported in #1828

This commit fixes this bug by checking whether the reaction `chatId`
matches the user's `pubKey`. If that's the case, we know that the reaction
corresponds to the reaction's `fromAuthor` chat.

Fixes #1828
2021-02-22 09:58:07 -05:00
Richard Ramos b1b32d354d fix: TLS verification 2021-02-22 09:57:42 -05:00
staked-smart-ace 1ad506e746 Fixed dismissing issue when update contact's profile. Fixes #1761 2021-02-22 09:54:18 -05:00
staked-smart-ace 31a9d1a6f1 Fixed dismissing issue when update contact's profile. Fixes #1761 2021-02-22 09:54:18 -05:00
Richard Ramos 228e746421 fix: Disable ListenAddr as it is not necessary for running status-desktop 2021-02-18 17:55:50 -05:00
Richard Ramos 38eeaf111c fix: update image when switching account on login
Fixes: #1847
2021-02-18 16:40:33 -05:00
ace-smart 03353af634 Updated codes be more compacted. Fixes #1826 2021-02-11 10:15:29 -05:00
ace-smart 972cf9f138 Fixed the issue doesn't show nickname on profileview in 1:1 chat. Fixes #1826 2021-02-11 10:15:29 -05:00
Pascal Precht 8977ba4931 refactor: redesign PrivateChatPopup to match new designs
This commit introduces the new design and behaviour of the modal
that opens up when starting a new 1-on-1 chat.

Main changes include:

- New search UI/UX functionality of users and ENS resolutions
- Composed view of existing contacts and contacts to be searched
- Ability to add contacts from within the modal

Closes: #1747
2021-02-10 13:39:25 -05:00
Richard Ramos 2ac67f95aa fix: add contact using status ens name 2021-02-08 17:39:10 -05:00
Richard Ramos 366ebffbe7 fix: code review 2021-02-08 17:37:44 -05:00