This commit resolves a crash happened due to connection to
`SIGNAL_WALLET_ACCOUNT_TOKENS_REBUILT` when keycard sync
flow was run in the background.
Also updated the keycard synchronization process with the current state of
the application and is the first step of many which leads towards completion
of entire syncing feature.
Model with community tokens was moved to section_item - every section has its own model.
Every deployed smart contract is saved to database with "In Progress" state.
The app listenes to deployed transaction and updates contract state in database to "Failed" or "Deployed".
Corresponding model is updated.
Issue #9233
Fixes#9508
The issue was caused by some calls that try to update the activeSection's item, but during chat loading, the activeSection had the possibility of being empty, thus causing a crash.
The fix here is to create a LoadingItem and set it as active during the time the chats load (if the last active section was a community or chat). Then, the updates go to that Item and do nothing, but that's normal.
as we're dealing with local file URLs only here, we don't want to turn
the plus signs (`+`) into spaces (leads to failing to open the file,
emits an exception, crashes later on in our JS code)
Fixes#9538
Closing #9470
Adding Did You Know Splash Screen that will be shown when AppMain is completed.
The SplashScreen runs for 30 seconds and will randomly iterate through `fun messages` every 5 seconds.
- Bump status-go head that include the required specific changes
- fetch token balance (native or ERC20) and cache historical token quantity data
- fetch FIAT currency
- Extend presentation layer (NIM and QML) to account for API changes
- Remove timed request and other optimizations from the time of fetching
balance history every time instead of querying cache
- Add C++ integration debugging tests and update network chain configuration (outdated)
Closes: #8175
LinksMessageView component will receive the urls from nim as string and it will only forward the string to getLinkPreviewData slot implemented in nim together with some settings (supported img extensions and unfurling preferences)
On nim side the urls will be parsed and validated using the settings received from qml.
Images are now validated before sending them to the UI using the HEAD request.
Add Community Tokens testing UI with minting button, enabled by a Advanced Settings toggle.
Add minting module,view and needed models.
Add community_tokens service to call collectibles smart contract functions.
Issue #8921
Check box added to warn user if they want to add a path out of the
default Status' wallet derivation path. In case they do that, they are
not able to migrate such keypair to a Keycard.
Closes: #9118
- fix chat category/section height not being (re)set to 0 properly and
hidden
- restore the chat category header highlighting when it contains new
messages/mentions after the new flattened chat model refactoring
Fixes#9493
- make the `href` point to `#` to prevent Qt from resolving the empty URL
as if it were a relative link
- prepend the at sign (`@`) to the mention tag, just like Discord and
`@everyone` else :)
Fixes#9364
Due to changes done in https://github.com/status-im/status-go/pull/3133
we had to update procedure for adding migration keypair (which includes
local keystor files deletion for the accounts being migrated) and procedure
for account deletion, cause in order to delete local keystore file for the
acount which is being deleted, we have to provide a password now (states
only for non keycard accounts, keycard accounts use empty password).
For these source/dev builds:
- display "git master SHA" as the version number
- disable the "Check for updates" button
- use APP_VERSION in nim
Rationale: instead of updating git master VERSION text file manually each
time an official version is released, we will now mark source/dev builds
with the corresponding git commit hash and display that in the
Settings/About section
connect to the correct signal
the store node (aka mailserver) is no longer a dialog that would let the
user select a new available mailserver; we care about a working and
_active_ mailserver here
Fixes#9358
This adjust the front-end for the import tool by handling new
properties that have been added to the discord import progress signals.
Namely, the import is now done in chunks, so the progress signal
contains information about how many chunks have been processed.
This needs: https://github.com/status-im/status-go/pull/3134Closes#9262#9261
Fixes#9210
Adds the `TEST_ENVIRONMENT` that stops banners from showing and touch id to be activated (needs to be tested by someone on Mac).
Also improves the waiting time on verifying screens. Will undo that change if it becomes flaky.
To make sure your local tests still work well and hide the banner as well, make sure to put `TEST_ENVIRONMENT=1` in the suite settings' env vars
Happens occasionally that the app crashes during the profile keypair migration flow.
It happens cause during that flow in one moment the app gets locked, cause encryption
gets changed, but some parts of the app may still try to get some data from the db (as an
action for some async event or so). That action results as the app crash. In such cases
an exception will be thrown, but it needs to be handled in functions which are doing a call.
`fetchAccounts` is guarded in this commit, cause crash was initiated there, cause it didn't
handle a call appropriately using try/catch block.
A custom `IS_MACOS` constant introduced which represents os defined
macosx, cause for devs working on macos is easier to change a single constant
in a single place to simulate some how the app would behave in some cases on
other platforms.
For example if the dev is working on macos, it's not possible to simulate linux only or
win only features that way, but it's definitely possible to check if mac only features are
not visible on other platforms.
Old `state_factory` logic is splitted in three more files. Now it represents only
an interface, but implementation logic is placed in the following three files:
- `state_factory_general_implementation.nim`
- `state_factory_state_onboarding_implementation.nim`
- `state_factory_state_login_implementation.nim`
Because the context menu relied on `unparsedTex` it was unable to preserve the pubkey<->displayName conversion when
copying messages to the clipboard.
This commit fixes it by introducing a new `replacePubKeysWithMentions` utility
which is used when message items are initialized, resulting in `unparsedText`
to keep th`@`mentions around.
Closes#9168
Provide the needed data from the nim model directly to the delegate. This way whenever a delegate needs to display the data it doesn't need to reach the backend.
perf(chatScroll): Fix comments on Avoid calling the backend on delegate creation/binding
perf(chatScroll): Avoid calling the backend on delegate creation/binding - add TODO comment on senderColorHash default
perf(chatScroll): merge quotedMessageAuthor details
perf(chatScroll): Fix nim tests
perf(chatScroll): Fix merge error - messages_model.nim
Because we've switched to `QuotedMessage` as an attached payload to
messages to make message replies data more reliable, we lost some of
the author information in imported messages, that was available prior
to that move.
This commit introduces `quotedMessageAuthorDisplayName` and
`quotedMessageAuthorAvatar` to our model so it can be set in case
we can't retrieve contact details for a given message (which is always
the case for imported messages)
This commit should fix the crash we were facing with a successive import
of multiple wallet accounts. Usually happens if you migrate an account from
a Keycard into the app. But also a crash may randomly happen without any
activity.
Fixes: #9065
Adds the action to copy the right-clicked message's text.
It copies the unparsed text (no html).
For that, I had to add it in the MessageItem and expose it in the model.
I also fixed the copy MessageId action that didn't show + didn't work even if it would have shown.
Plus some small cleanups.
Adds `deleted` to the QuotedMessage object so that on the frontend, we can show "Delete message" only when we know the message was deleted.
Otherwise, when we don't know the quoted message, we show "Unknown message [...]"
New messages marker had a clock value of "0" before. Since all
messages are inserted based on the clock value, new messages marker
would cause other "0"-valued clock items to be inserted after it,
effectively making chat header being displayed in the middle of the
chat.
Setting new messages marker clock value to the clock of the message it
points to solves the issue.
fixes: #8955
We always take the plain text from the clipboard but even the plaintext
can contain HTML tags, so escape those and wrap the result in a `<div
style='white-space: pre-wrap'>foo</div>` container. That way we preserve
not only the linebreaks but also any whitespace or tags.
Fixes#8919
Generating addresses was done on the status-go side, but now since `ExportPublic`
flow from the keycard library supports deriving addresses for list of derivation paths
we're using it in the desktop app for `SetupNewKeycardNewSeedPhrase` flow.
Profile fetching (display name and identity images) implemented on the status-go side and
integrated in the desktop app.
Signal notifying about the progress while fetching backed up data from waku implemented on
the status-go side and integrated in the desktop app.
`I already use Status -> Enter a seed phrase` and `I already use Status -> Login with Keycard`
updated so they match figma now.
Fixes: #8467
If `activeSectionId` does point to section that is not restored
correctly (by any reason), then the app will crash. That's becasue code
assumes there is always an active section set and it will try to
reference null item in this case.
fixes: #8785
HTML doesn't know about TextEdit's wrapMode line count so
when text was a quote it was seeing it as single line thus
painting a singleline height quoteline.
Closes#8109
Fixes#7643
This adds the backend to resend. It then hooks the button to it.
This also adds a visual state for when we are sending. This gives a good indication that a message was sent.
Fixes#7512
The problem was twofold.
1. We didn't try to fetch the messages when we re-joined, since the cursor was not reseted
2. The messages are not longer in the DB since they get deleted on joining.
I fixed 1. by reseting the cursor on leave and calling fetch on spectate
I fixed 2. in the status-go PR so that we no longer delete the messages when leaving.
banner
@John-44 requested that we show the banner only for when messages are indeed
imported into the database, not necessarily already when the torrent data is being downloaded.
This commit ensures Desktop processes the newly introduced
`ImportingHistoryArchiveMessages` signal to render the banner introduced
in d5db1e6356
This needs: https://github.com/status-im/status-go/pull/2998
Status allows for importing communities via their private keys.
There's a requested feature that users should be able to import a community via
its public key as well.
This will behave differently as private keys won't give users ownership
of the communities. When importing via a (compressed) public key, Status
will try to fetch information about the community from the network. If it
finds such information, it'll load it into the app and create
a communitiy view from which users can then request access.
If it can't find a community or community information in the network,
the user will get a dedicated error message.
This commit also refactors the `ImportCommunityPopup` such that it uses
`StatusDialog` and updates the copy accordingly since importing via
public key is now possible as well.
Closes#8339
- rework the way social links are displayed/editted; we now only allow to
enter a so called "handle" and then substitute that in the final URL
template
- move the "icon" model role to NIM backend
This has several advantages:
- we display only the "handle" and don't have to elide some long URL
- we won't let users enter random URLs into their profile and spoof the
viewing part into clicking it
Additionally, make the social link "button" clickable -> navigate to the
target URL, and make the tooltip behave as "usual" (on mouse hover).
It may happen `asyncLoadMoreMessagesForChat` is called many times in a
row. Previously it did not check whether there is any pending fetch for
a given chat, which resulted in many same cursors fetches from status-go.
Furthermore, in this case, `lastUsedMsgCursor` ended up with the same
value as `msgCursor` resulting in wrong state where there are no more
messages to fetch.
- Simplified message loading code by introducing MessageCursor helper
type
- Ensured messages are not loaded twice for the same cursor
fixes: #8602
Fixes#4943
The custom OS notifications we have in place make it possible to click
the notification and go to the right place in the app, but it causes a
big issue in Windows; it breaks the tray icon, it becomes no longer
clickable.
The easy fix I did here is the go back to using the QML sendMessage
function. It works fine to send the notif and the tray icon keeps
working. The only downside is we lose context when clicking on the
notification, so it doesn't navigate to the chat.
IMO, this is a good tradeoff.
- 01: Keycard settings menu labelling - fixed in this commit
- 02: Modal title renaming - not developed yet
- 03: Additional decision diamond and flow - not developed yet
- 04: Modal title renaming - not developed yet
- 05: Modal title renaming - done in issue #7035
- 06: Copy change - fixed in this commit
Fixes: #8458
Fixes#8553
The torrent port was clashing with the release app since both of them have it on by default now. That was causing the messenger to fail on start.
This new PORT_SHIFT env var can be used to shift the port of the torrent service and wakuV2. No more need to use WAKUV2_PORT.
we can also add more ports that need shifting.
This enables opening multiple instances of the app very easily. Just increase PORT_SHIFT by one