Refactor code to use the token identity instead of token code
Removed the debugging activity view as now we have the API integrated
in the history view
Fixed the activity type in the activity entry
Closes: #11025
Fixes#10410
Adds the permission model to the curated communities model.
Also fixes the assetsModel and collectiblesModel used by the community portal, because it was using the basic Chat Store created in AppMain, but that store doesn't have the assets model.
Fixes#11041
Fixes the bug where going to a muted channel with a mention doesn't mark it as read. This was because the QML doesn't call mark as read when a channel doesn't have unviewed messages. That was because our Nim code put 0 as unviewedMessageCount when a channel is muted.
I changed it so that channels always have the value from status-go. No more conditions on the Nim side. Now the condition is on the QML side. So we hide the badge in QML instead. That also means that showing the number of unviewed message, even in a muted channel works.
I also fixed a bug where we counted muted messages on app restart for the normal badge. Usually it didn't cause issues, because it's rare that you had messages in a muted channel and nothing else. You'd also have unread messages in an unmuted channel. so you'd go there, read it, and it would then update the parent badge.
While testing this issue, I discovered that we in fact count muted channels for the parent badge.
So i fixed it in this one too.
So while chats don't have any Nim code for muted chats, sections do, because status-go doesn't really give us that information.
Bumps status-go to include the new API.
Add a new RecipientsModel to the activity controller.
Extends the activity Controller with API to access and manage data in
the RecipientsModel.
Resolving addresses to names remains to be implemented.
Updates #10025
Handle 'new transfers' event for activity view
to load transactions. It is a temporary solution until integration of
sequential transfer fetching is properly done with activity filter
Bump status-go with the refactoring of hasMore and add offset
Add support for continuously loading activity in the wallet API.
Extend the debugging demo with continuously loading
Closes#10994
Bump status-go to include the async API changes
Handle the wallet-activity-filtering-done event
Propagate the has more flag
Extend the debugging UX
Update #10994
Detect the MIME type using `QMimeDatabase` from the actual content and
save it in that same format using `QSaveFile`, as `QImage` does NOT
support saving a GIF
Fixes#10747
This is an improved version to check wether a user has permission to
join a community and updating the join community view accordingly.
We now asynchronously do all the checks in status-go and process
a single result upon token permission updates, additions and deletions.
Depends on: https://github.com/status-im/status-go/pull/3494Closes#10481#4939
Prior to this change, the control node would try to fetch the community
token data from its database entries.
However, when a community has been recovered from importing an account
via seedphrase, the database for community tokens will be empty.
So it's better to retrieve the contract addresses from the community
description's metadata (which should always be there).
This change determines the community token from the community metadata.
- when the user drops a remote URL (e.g. from a webbrowser), detect it
and download it before passing onto the "image_resizer"
- since the "dos_image_resizer" now handles both data and URLs, we can
simply forward the `imageUrl` to it
- detect an invalid (empty) result from "dos_image_resizer" and don't
try to send such an image
- getFileSize: NIM version would crash on non-existing or remote files
- isValidImageUrl: properly detect file extensions when the URL contains
a query (eg "file.jpeg?width=1000&height=600")
* feat(Chat): Display MutualStateUpdate system messages in 1-to-1 chats
* feat(ActivityCenter): Add AC notification when a user get removed by another contact
* fix: crutch fixing segfault on contact removal
Fixes#10501
The problem was that didn't have access to the updated contact from status-go after banning or unbanning, so we just changed the banned property, but there is more that gets changed in the backend, like `removed` being set to `true` as well.
With this fix, when you unban someone, you go back to a fresh start, as **non** contact, so you need to send a request again. That was the state you got if you restarted the app, so "re-sync" the state with status-go.
Another issue was on the frontend (QML). When banned, and after restarting to get the right state, the unban button would be disabled and the Add contact request button would show, which is not good. We only want to send requests when unbanned.
Bumps status-go HEAD to include required changes
Updates Nim filter components and APIs to follow API changes in
status-go
Complete the debugging code
Add TODO placeholders to be completed in follow up PRs: collectibles ...
General improvements and refactoring
Closes#10634
Add the possibility of retrieving the data of wallet activity based
on the given filter criteria.
Major changes:
- Bump status-go with the new equivalent API
- Add temporary developer tools
- Debugging ActivityView QML component to test filter and display
the activity
- Add activity Nim package and synchronous controller and model
Considerations
- Have the model synchronous for the first iteration and then move to
async while implementing the fetching mechanism
- Use QtObject instances in the model instead of roles over items as
agreed with the team
- Simplify the implementation by having a simple presentation layer
using backend (service also in the future)
- Small required fixes and improvements
Closes: #10633
Updates #10366
Bump status-go HEAD that removes deletion of pending multi-transactions
in status-go
Previous implementation was relying on the fact that all pending
transactions are also multi-transactions, which it seems not to be
the case (e.g. ens, airdrop collectible)
Also tried to extend the deletion of multi-transactions to status go
but it was causing crashes for minted/dropped tokens.
Updates #10474
- replace qml owners model with Nim one
- get token owners from wallet service
- keeping owners cache in community_tokens/service and refresh every 10 minutes
Issue #10254
Fixes#10340
Fixes a race condition when receiving a message in a channel that doesn't exist yet (for example in a delete 1-1 chat).
What happens is that the status-go signal contains both the message and the chat. Both are handled by different services, so there was a race between the two of them. If the chat service handled the chat first, then the message was added correctly, but in the case of the message service handling it first, it would try to add the message to a chat that doesn't exist yet, so it wouldn't work.
I also cleaned the ChatUpdateArgs by removing the messages arg that was not used anywhere and also was a bit counter-intuitive. Why did a Chat arg have messages?
was deleted
This is needed because there's cases where the deletion of a permission
might cause the current user to no longer be eligible to join
a community.
Community has the follwoing permissions:
- own 2 ETH and 1 FOO_NFT or
- own 1 FOO_NFT
User owns: 1 FOO_NFT
^ The above would make the user eligible to request access to join.
Now if the community removes the second permission, the user now no
longer fulfills the requirements so we need to ensure the UI
permits the user to request access.
Rebuilding the permissions model (including its token criteria) sets the
necessary flags in the UI automatically.
There are a bunch of notification related settings that cause RPC
calls when read from the UI in QML/Qt.
This is bad because whenever the view tries to read a notification
setting it causes an RPC call and then rerenders the view. This happens
pretty much every time a new signal arrives in the client.
To account for that we now fetch all notification settings once and mark
the service as initialized so it know when to simply return cached
values. The cache is updated when the notification settings change.
Fixes#10493
Fixes#10076
Reverts the refactor that makes getChannelGroups (ie getChats) not return chats (now it does return all chats too).
That way, we actually have the right mentions and unread count when receiving new messages
Also fixes an issue where mentions and unread count would get reset to 0 when getting a community update, because the signal doesn't have enough info
Also:
test(suite_communities): Fixed community related tests
- A new intermediate popup is now displayed when user clicks on `Create New Community` button from `Community Portal`.
- Reformulated `tst_communityPermissions` since now it is a default option without the need of activating it from experimental feature's section.
Closes#10115
disable retranslation, display a confirmation dialog and apply the
language change after app restart
rationale: the way the retranslation works internally is that it force
reevaluation of _all_ QML bindings which:
- might lead to crashes (immediately or later)
- lots of warnings printed to console, some bindings can get broken as a result
- not all UI is correctly retranslated on the fly (we have lots of places
where we assign the text imperatively via JS code), so these wouldn't
appear translated before app restart anyway
Fixes#7823