Add sticker popup
Add send sticker message
Add ability to select sticker pack and show stickers for pack with scroll
1. Sticker history
2. Install sticker packs
3. Sticker market
1. Sticker packs are installed on app start up until installation of sticker pack functionality is added
2. Optimisations such as preloading images to be done so that sticker images are not downloaded each time.
There's still some things that needs to be done (possibly in future commits):
[ ] Asset icons need to be determined so they can be displayed along the transaction
[ ] Transaction values need to be converted to decimal values
[ ] Date-time formatting
[ ] Grouping of transactions by days
display real contacts on profile
query contacts
add contact in form
fixes
fixes
display contacts
cleanup
cleanup
remove echo
refactor to use profile instead of contact model
Move the onboarding/login state machine to the top level in main.qml, so that logout events can trigger new states.
Add Loader to statemachine so that each component is lazy-loaded. Initial tests saved 50MB of memory on startup.
Currently, logging out, then logging back in to the same or different account results in a doubling-up of chats/messages/wallet accounts. These need to be reset, however I need help doing that and it would delayed and blown out this PR further. This reset has been done for Onboarding and Login, but needs to be done for chats, wallet, mailservers, etc.
Decode multihash content identifier (CID) using `libp2p` libraries. Makes some assumptions that we only handle `ipfs-ns` codec hashes and that the sticker hash starts with `e3xxxxyy`, where xxxx is essentially ignore and yy indicates the cid codec.
- unify the "build-..." targets
- enable a debug build by default, to simplify development
- bump vendor/DOtherSide
- avoid DOtherSide checks for docs/tests-specific tools like Doxygen
- switch to an in-place build for DOtherSide
- silence the DOtherSide build when V=0, make it more verbose with V=1
- don't delete checked out submodules in the "clean" target
- update build instructions in the README
- centralise Nim compiler options in a top-level "config.nims" (except
`-d:debug` which needs to be on the command line)
update total fiat balance so it can auto update
update account list when needed
force update of asset list
add account in the model
add 0x0 address instead of invalid one
ensure asset list is updated
- unify the "build-..." targets
- enable a debug build by default, to simplify development
- bump vendor/DOtherSide
- avoid DOtherSide checks for docs/tests-specific tools like Doxygen
- switch to an in-place build for DOtherSide
- silence the DOtherSide build when V=0, make it more verbose with V=1
- don't delete checked out submodules in the "clean" target
- update build instructions in the README
- centralise Nim compiler options in a top-level "config.nims" (except
`-d:debug` which needs to be on the command line)
- fix: Change displayed login key to whisper public key (starts with 0x04)
- fix: remove key displayed on login accounts as this value is not passed to use from status-go's openAccounts
- feat: add selected account view when entering password for login and generating an account (same UI as importing a key)
In ebd29d9ffd we've introduced a regression where
the channel list didn't expose the chat's chatType to the view, causing 1-on-1 chats
identicons to break.
This commit reintrodruces the chatType to the view.
simply chat views by reacting to model events
abstract join event from join event call; react to join channel event
remove unneded if else
move left channel to event
refactor getChannelColor
refactor getChannelColor
rename sendMessage method
cleanup
move random color to channels list
remove toChatType
remove toChatType
display a sticker when a content type sticker message is received
display a sticker when a content type sticker message is received
display a sticker when a content type sticker message is received
display sticker
fix height and default value
cleanup
cleanup
cleanup
use constants for the content type
Add login functionality. If node accounts exist in status-go (keystores in ./data dir), then show the Login screen. Otherwise, show the Onboarding screen (generate keys screen).
Update nim-stew to latest version.
Change references to Address to the common type Account to prevent repeating of types.
Distinguish between unknown and unhandled signals.
Pass signals through to subscribers regardless if the signal type is known (in case the SignalSubscriber handles it with string comparison or other).
Update serialization as much as possible
Latest nim-stew updates allow type inheritance during de/serialization
default views for when there is no chat opened + chat links
add channel component
update other layouts
fix problem with alias
add test channels
fix merge conflict
Uninherited `ProfileController` and `OnboardingController` from `SignalSubscriber` as they were not listening for signals from the node.
Added an `onSignal` dummy method in `WalletController` to make the compiler happy. The main app is assuming this is a `SignalSubscriber` but it is unclear if it being used (maybe it's a WIP).
Previously, the displayed key for generated accounts was displaying the public key of the account, and not the whisper account. This has been fixed.
Futher work has gone in to strongly-typing a lot of the responses from status-go and removed a lot of the manual string parsing.
Simplified types and type-conversions by using the `nim-serialization` library.
Add node model; simplify more; simplify callRPC
refactor wallet to use asset model
move some of wallet logic away from the controller
move ChatMessage to model
move chatItem model
organize models folder
simplify chat message and chat item
rename messageList to message_list
simply addresses in the controller
rename mailservers list
refactor how profile is set
refactor/simplify profile view
refactor/simplify adding mailservers
rename wallet view
simplify wallet assets
rename nodeView to view
extract channel list view
extract channel list view
refactor channel list / chats view
move signals out of app folder
simplify callRPC
add raw rpc method and make node section use it
add node model
move accounts model inside onboard controller (for now)
make events usage consistent among models and controllers; separate model events from app events
simplify controllers and views, make everything more consistent
refactor wallet to use asset model
move some of wallet logic away from the controller
move ChatMessage to model
move chatItem model
organize models folder
simplify chat message and chat item
rename messageList to message_list
simply addresses in the controller
rename mailservers list
refactor how profile is set
refactor/simplify profile view
refactor/simplify adding mailservers
rename wallet view
simplify wallet assets
rename nodeView to view
extract channel list view
extract channel list view
refactor channel list / chats view
move signals out of app folder
address code reviews
The "accountsReady" event now passes the account information for the account that was logged in, which helps pass the correct account info to Profile and is available for other modules that may need it.
This will become particularly useful once the login functionality is implemented.
Generates 5 random accounts with identicons, allows user to enter password, then stores the account and logs in to the statusgo node.
Add EventEmitter that notifies nim_status_client.nim once node has started and is logged in (likely needs some refactoring to include the eventemitter in the base controller class).
Add QML StateMachine for the onboarding view.
Add nimcrytpo, uuids, eventemitter, isaac dependencies via submodules.
Add button to Intro view to randomly gen account.
Onboarding carousel completed
Redo folder restructuring
NOTES:
1. nim_status_client binary is output to `./bin/nim_status_client`, so you'll need to update your workflow to run this file. README has been updated to reflect this. Also, if you're running VSCode, instructions for code reload were added.
2. All `ui` files now live in `ui/`
3. All lib files (ie `libstatus`) now live in `lib/`
4. Removed the Qt Creater user project file as this is unique to each user
5. Moved the project file to `ui/`, so just open up the `ui` folder in Qt creator and it should locate the project file
6. `-d:release` removed from compilation as it wasn't needed
7. Broke up main.qml in to the main app and onboarding components, however this should be broken down further into more reusable components
8. Click "Get started" to show chat
Format some files using nimpretty