When we started with refactor we had to somehow separate "new"
and "old" signals that's why most of signals had prefix "new-", now
since we don't collide any more with "old" signal names (since we
removed all old code) we are free to sort out that signals naming,
what this commit does.
- non active chats/channels are made bold if there are new messages inside them
a dot badge is added to the chat/community section if it's needed in that case
- for non active chats/channels count badge is added if there are new mentions
inside them, a count badge is added to the chat/community section if it's needed in
that case
- selecting chat/channel marks messages from it as read and update its displaying
and dot/count badge of chat/community section accordingly
Fixes#4403
Within this commit apart of `ChatContextMenuView` and `MessageContextMenuView`
some other things are fixed:
- pinned messages model (`asyncFetchChatMessagesTask`), which was corrupted most
likely by resolving conflicts
- `pinned by` part of the pinned messages
- set/remove local nickname for a contact
- contacts in a message list and pinned by name, contact in a pinned message list
and pinned by name, one to one chat details and chat tool bar are updated in a way
that they are responsive to the contact's updates
- pinned messages updated received from remote (from the `status-go`) is handled
Fixes#4366
- load more messages on scroll up for chat/channel added
- sending messages improved in terms of adding new messages to
appropriate position
- scroll to message added on the qml side
- qml connected to the sending message success/failed signals
- admin flag exposed to qml for chat/channel
- `CreateChannelPopup` updated
- `createPopup` function added to the `Global` singleton
- `PinnedMessagesPopup` component moved to `AppMain` and shared
among components beneath
- `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
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.
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.
- `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
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.
- Signal's arguments updated
- Sent payload optimized
- Local nickname added to profile section contacts model
- Rest updated accordingly to above changes
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.
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`.
- 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
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
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).
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
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.
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
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.
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
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.
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.
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
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
- 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
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.
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