- user is able to see community without being a member
- invitation bubble always display "Go to Community"
- join community buttons are displayed in community view
main part of: #7072
This adds the UI plus all necessary models and signal handling to render
discord import progress in the desktop application.
It also introduces message handling for discord chat message types.
Requires status-im/status-go#2826 to function
Co-authored with @caybro
User should see `pending` state after he `join`s the community, even if
that community does not require explicit admin approval. That's because
currently, each member has to be accepted by admin, either automatically
or manually. That means, if admin is gone, no one will be ever joined to
community, even if this community states it does not require request to
join.
InvitationBubbleView.qml:
- rework view to use layouts properly
- add missing community identicon
Backend:
- remove local community requests on community join
- propagate SIGNAL_COMMUNITY_MY_REQUEST_ADDED to UI
fixes: #7139
Depends on statug-go favourite flag extension and merging of `favourites`
with `saved_address` tables and API
Additional changes:
- Remove duplicate name instead of ESN
Closes: #6546
- Added flow which covers `Setup a new Keycard with an existing account` from
the keycard settings part (though two sub-flows there are missing, `Unlock Keycard`
and `Authentication` cause we don't have them yet).
- Updated factory reset flow (part of shared module) that it can read and display metadata
from a keycard if they are set, with this update this flow is almost complete, we are missing
`Unlock Keycard` flow for it as well.
New procs added:
- accounts service `createAccountFromMnemonic`
- accounts service `convertToKeycardAccount`
- accounts service `verifyPassword`
- wallet service `fetchBalanceForAddress`
Keycard library from this commit brings new changes in terms of
signals being sent by the lib in case of reader is not plugged in,
card is not inserted, card is inserted, that means the following
signals are sent only when it's really needed:
`"{\"type\":\"keycard.flow-result\",\"event\":{\"error\":\"connection-error\"}}"`
`"{\"type\":\"keycard.action.insert-card\",\"event\":{\"error\":\"connection-error\"}}"`
`"{\"type\":\"keycard.action.card-inserted\",\"event\":{}}"`
This partially covers factory reset flow. The part where user is able to select which accounts
wants to remove/keep from/on a keycard will be added later once we add the keycard settings part
for storing those data to a keycard.
Fixes: #6790
Use new status-go function to update group chat details.
Changes in RenameGroupPopup to handle choosing colors and images.
Changes in EditCroppedImagePanel to handle background component.
Issue #5982
Keycard implementation affected onboarding/login flows.
- new user - first run - new keys into keycard
- new user - first run - import seed phrase into keycard
- old user - first run - login importing from keycard
- login the app using keycard
Fixes: #5972
Fixes#6251
Adds the "Respond to Contact Request" and "Contact Request Pending" options to the MessageContextMenu
Also fixes some small issues with contact verification where the state of the incoming request was not correct
- startup, login and onboarding modules merged into the single one
- `State` class introduced which is the base class for all states, every state
determines what is the next state in each of 3 possible actions, and what
is the previous state, if it has previous state
- `StateWrapper` class is introduced as a convenient way to expose
`State`'s props and deal with them on the qml side
- startup module maintains states as a linked list and there are few convenient
methods to move through the list `onBackActionClicked`, `onNextPrimaryActionClicked`
`onNextSecondaryActionClicked`, `onNextTertiaryActionClicked`
- redundant code removed
Fixes: #6473
Fixes#6220
Fixes the issue with the mutual contact icon showing when just added.
It also does a huge cleanup of the codebase to remove isContact and replace it with either isAdded, when we care only about if we added, or isMutualContact if we want the contact to be mutual
Also fixes an issue with the MessageContextMenu not reflecting the added state correctly.
We no longer send community invites to users, instead we just share the
community and let users request access.
That request will either be automatically or manually accepted by the owner/admin.
Depends on https://github.com/status-im/status-go/pull/2682Closes#5115
Removed code that removed messages marked as `repliedTo` in the corresponding service `handleMessagesUpdate` method.
It solves the following use case:
- New account, join public channel, replay massages shown there.
Fixes#6138
When histories are cleared on a paired devices, that clearance should be
synced and reflected in other paired devices as well.
This commit ensures desktop calls the correct API to clear histories,
which will then cause an implicit sync.
Partially addresses #5201
There are a bunch of settings which are synced an not handled by
desktop, one of them being the `profile-pictures-show-to` setting.
This commit introduces a new `SettingsFieldDto` so we can react to
message signals that include individual setting fields that originate
from syncing.
The first setting hanlded is the one mentioned above, so a new
application signal is introduced to inform the app that there was an
update in that particular setting, so it can re-render the view.
Partially addresses #5201
Bookmarks were only synced when devices were synced, but not when
bookmarks were added/removed/updated.
To account for this, there's are new messenger APIs in status-go
proposed here: https://github.com/status-im/status-go/pull/2709
Based on those APIs, desktop can now add/remove/update bookmarks and the
changes are automatically synced to other devices in real-time.
This commit also ensures that changes from other devices with regards to
bookmarks are handled and updated on the current device.
Partially addresses #5201
This fixes a bug where the new user status set by the logged in user
would not be broadcast because the corresponding setting would prevent
status-go from doing so.
The fix is done by always enabling broadcasting the user status, then
disabling it again right after setting, in case it was set to "offline".
This commit also ensures that, when current user status updates are
broadcast, the updates are handled across paired devices in real-time.
Partially addresses #5201
Added new option add / remove contacts in dropdown and created navigation to modify the loaded component in the toolbar.
Enabled addition of new members into a group chat by the admin.
Enabled removal of members of a group chat by the admin.
Added into `ChatContentView` components related to chat toolbar:
- `StatusTagSelector` and its corresponding logic
- Moved `StatusChatInfoButton` from toolbar to content view.
Added `esc` key event to leave the group chat add / remove panel.
Updated `StatusQ` link.
Closes#5522
This makes Status Desktop aware of the `mailserver.not.working` signal.
When emitted by status-go, desktop will show a popup that informs the
user about the connection failure.
Furthermore, users can then decide to either retry (same as just closing
the popup as retrying already happens by default), or pick another
pinned mailserver, for which they'll get redirected to the messaging
settings panel.
Closes#5166
This adds a checkbox to configure whether or not community members are
allowed to pin any message of a community channel, based on the newly
introduced `CommunityAdminSettings` that are introduced in https://github.com/status-im/status-go/pull/2668Closes#5662
- signal for adding notification to the Activity Center introduced
and emitted, but that part is not handled within this commit since
there are some details needed to be discussed in the PR#5334
- signal for displaying ephemeral app notification is introduced
and emitted, but that part is not handled within this commit since
we don't have yet ephemeral notificaiton in place.
Fixes#4902
overwritten
When communities are edited, status-go sends a signal with the community
description, to ensure the network is updated to the latest changes.
However, that community description doesn't include `communitySettings`.
When we then compose the `CommunityDto` object from that signal, it will have
a default certain settings to `false` which might actually be `true`.
The result is that data in memory is incorrect.
To ensure we don't run into this issue, we check whether the attached
settings have an id, if they don't, we know the settings do not
originate from the signal data, meaning we can use the settings we
already have.
This introduces the new signal types related to the community archive
protocol and makes Status Desktop listen to the download event which is
emitted by status-go every time history archives were downloaded.
If the downloaded archive covers data within the recent 7 days, it
causes Status Desktop to reload the corresponding chats.