This commit fixes an issue with taking pictures from camera, where
the check for image count was not checked.
Signed-off-by: andrey <motor4ik@gmail.com>
When selecting an image from camera roll we would immediately setting
the filepath with the raw image, process and later once it was processed
we would replace the file path.
On slow devices, the user might press send while the image is still
processing, causing the raw image to be sent, which might be discarded
as too large and never sent.
This commit changes the behavior so that we only set the uri once the
image is processed, it might add some delay, but the image should be
correctly sent.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
There's an issue reported on slow devices when sending a batch of
images.
All the requests are send concurrently, and the sending of messages is
processed concurrently in the background.
On slow devices or connection with slow upload speed this may result in
expired envelopes, as the POW calculation or the upload takes too long,
and either they never leave the device, or worse they reach the
mailserver but won't be stored because already expired on arrival.
This commit allows setting the max-images-batch config value, setting it
to 1 for release and keeping it to 5 for other builds.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Add inner border to image message
Add max batch size of 5
Disable camera roll more images
Use interop instead of aget
Add border as a separate layer
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Pods
Add headless js service
Handle Local Notifications react
CopyPaste driven implementation of java notification
pn demo
Show iOs push in foreground
Show icon in notification
Enable notifications on login
Get chain from status-go
Add UI for switching notifications
go go!
Fixup
Handle notification onPress
Android UI
Handle press iOs
Handle android press and validate
go update
Fix route params in universal link handler
Set show badge explicitly to false
Fix e2e
bump status go
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
On status-go side:
- new `strong-emph` node was added for strong emphasised text with triple
"*" and "_"
- `del` node got proper marshalling and can be recognised (works with single
and double "~")
On status react side:
- styles for `strong-emph` nodes
- styles for `del` (strikethrough) nodes
- unsuccessful attempt to use monospaced fonts for code/codeblock (we have a font
which is used as monospaced but doesn't support that property actually)
Fixes: #11305
The issue was due to the fact that the first condition was wrapped in a
when in fx merge, causing it to be ignored.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Cleanup http events
Add loaders
Add dapp flow
Fix tests
Fix dapp success event
Hide reward based on referrals metadata
New flows
Terms link
TX watcher event
Do not show success popup
Use new rewardable field from backend
Fix referral pulling
Update copy
Translate advertiser modal
Move modal styles into style ns
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Do not show referrals if contract is not available
Do not check contract for referral accept
Rename invite event namespace require
Remove dispatch from raw subs
Do nothing if there is no contract
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Rename events
Add router to handle all links
Use router in add new chat
Unify universal link and universal qr with router
Add icon for universal scanner
Update tests
Now routing is tested in routing PR
lint
Cleanup
QA fixes
Scan own profile
Handle more EIP
Fix wallet scanner
Fix stack for view profile in UL
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Remove picker panel from input
Clean pan state
Fixes#11031
Do not use pan state on android
iOs panel switching do not change height
Revert "Remove picker panel from input"
This reverts commit 0ab2c1544b70f8c491424376268f572696bd284a.
Change reactions space keeper method
Audio
Do not use accessory view on Android
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Add acquisition backend methods
Init referrals sharing UI
Add invite on home screen
Use i18n for strings
Lint
Update status go
Pull acquisition contract to get SNT amount
Use new invite component
f pulling
go
Use screen instead of bottom sheet
Handle android install referrer
Post referrer to backend if present
go go
Add async storage for referral decisions
Update with the stage backend
Update contract methods
Modal
UI
Full handling of advertiser type
UI
test
UI
Handle with universal link
Allow multiple acquisition per installation
Fix android bottom sheet
Do not call service if no click-id received
Disable invite in release
Parse query params for referrer
Adapt UI changes
Add push notification
update deps
Mock react-native-push-notification
Request push notifications permission on press accept
Store transaction to local storage and load it back on login
Separate acquisition into smaller ns
Add chat invite
Get referrer only on first install
fix string
Fix firebase crash
Handle outdate click-id
Cleanup business logic
Update contract
Revert pn
Minor update to advertiser modal copy
OLD - Welcome to Status! Here is some crypto to get you started
NEW - Here’s some crypto to get you started! Use it to get stickers, an ENS name and try dapps
OLD - By accepting you agree to the starter pack
NEW - By accepting you agree to the referral program
upgrade status-go
Add mainnet
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Fixes#10988
Allow public key and filter public chats
Make toolbar width 100
Clear new identity from search
QA issues fix
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
New input UI
Inverse panel height calculation
Remove old chat input
Better animations
fix for pasting text
Add buttons accessibility
Fix dark mode
Update react navigation to fix the keyboard issues
Force close bottom sheet
Unmount android bottom sheet when not visible
Reset bottom sheet height android
more fixes
more fixes
Add hidden audio icon
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Previously we used both "keycard" and "hardwallet" names for stuff
related to keycard. It can be confusing as "hardwallet" might be used
for other hardwallets in future.
Remove extra fn's
Long press animation cancel
Make select primary ens accessible
Add accessibility to controls components
Update e2e tests
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Having all keys related to specific multiacc in a separate dir will
simplify removing of the multiacc. Also it will allow adding of the same
account to different multiaccs.
Fix android password visibility change
Do not change secure-text-entry on android password visiblity
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Replace all the usage of the button without component
Use quo
Fix tests
List item in multiaccounts
Use list items in contacts
Fix welcome screen button
Experiment long press
Big list item
Remove old bottom sheet
Use bottom sheet
Keycard
Add error to list item
Stickers panel button
Images panel
Fix z-index in profile
Fix android crash
Fix signing list item
Try fixing test
iOs gas sheet keyboard
Disable root alert in e2e
keycard signing sheet height
Clean up bottom sheet events
Replace flat list in profile
Memorise the manual-close value for bottom sheet
Mailserver QR scanner
Fix e2e tests
E2e fix 2
Fix e2e 3
Remove extra fn
Reduce bridging time for animation
Trick android layout
Try hooks
Fix profile missing ens-name
Disable press on control in list-view
allow disabling animations in list item
Use simple list in wallet assets settings
TBD - this screen should be rewritten from scratch. Now on every interaction the full list is re-rendered, also it makes the wallet main screen to re-render.
Fix send sheet
Handle long press in main thread
UI fixes
perf
Update e2e
fix missing user name in image long press
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Add new switch component
Add all controls components
Use controls in list items
Delete leftover file
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Fixes#9803 --the height of the banner was cutting off banner messages spanning multiple lines
Due to the animation of the view surrounding the banner text, calculate the banner height, then re-render the banner with the updated height.
Render a view that wraps not only the message banner itself, but also a hidden (0-opacity and absolutely positioned) view with the banner text that calculates the height of the banner during the `on-layout` event. The banner height calculation causes the reagent atom value change to re-render the banner view with the udpated height.
1. There is an animation on the message banner. The "out" animation (ie when the banner is in the process of disappearing) seems to work correctly. However, there did not seem to be an "in" animation. I'm fairly confident these changes did not break any existing animations, however it's worth noting this so that others who are more familiar with the existing codebase may be in a better place to say otherwise.
2. Testing during changes was done by dispatching the `network-info-changed` event like so:
```
(re-frame/dispatch [::network-info-changed {:isConnected false}])
```
Co-authored-by: Pascal Precht <pascal@status.im>
Co-authored-by: Eric Dvorsak <eric@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
We didn't check for encoded characters in the URL.
Instead now first we decode the URL components, and then match against
the URLs.
We also make sure that there's no HTML in the link passed.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Accessibility hide password only input
Do not hide all other elements, as only password should be secured
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
This way we can use different token for e2e, release, and devel builds.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
As reported in #10127 there's an issue that the log level isn't properly
applied when changed through log settings UI.
Turned out that we're setting the log-level only once in the entire
lifetime of the application and that is during bootstrap.
When the log level is changed through the UI, we never actually update
the log level in the logger module.
To fix this, we just need to ensure that, whenever the log-level is changed,
we also call `log/set-level!` with the new level.
It should also be noted that, every time the log level is changed through
the UI, the user is logged out, so one place to update the logger is
after very successful login.
Fixes#10127
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
`multiaccount` was used only by simulated keycard, so it is removed
and will be retreived by accessing app-db directly. This is done because
simulated kk implementation should be compatible with real keycard and
thus can't require extra parameters.
This reverts commit db202f03bf.
Fix leftover get-ref for text input
Use uuid as a unique identifier for input
Generate a random uuid on mount, ensures that no stale ref are kept
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Replace all text-inputs with label
Fix tooltip
Replace search input
Replace white bg text inputs with Quo
Add placeholders
Clear quo text inputs on blur
Change seed phrase word count style
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
fix: only save the ENS username when the TX is confirmed
feat: show when ens registration are in progress, done or errored
feat: implement new design for the ENS registration
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
EXPERIMENTAL: uses reanimated lib so we can use reanimated buttons inside and have simultaneous handlers
Add react hooks
Use hooks
mocks
Use timing for drag transition
Use view on android
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
This commit does a few things:
Move collections top level
Move `messages`,`message-lists`,`pagination-info` from nested in
`chats` to top level at the db.
The reason for this change is that if any of the `messages` fields
change, any `sub` that relies on `chat` will be recomputed, which is
unnecessary.
Move chat-name to events
`chat-name` was computed dynamically, while it is now only calculated
when loading chat the first time around.
Remove `enrich-chats`
Enrich chats was doing a lot of work, and many subscriptions were
relying on it.
Not all the computations were necessary, for example it would always
calculate the name of who invited the user to a group chat, regardless
of whether it was actually used in the view.
This commit changes that behavior so that we use smaller subscriptions
to calculate such fields.
In general we should move computations to events, if that's not
desirable (there are some cases where we might not want to do that), we
should have "bottom/leaf heavy" subscriptions as opposed to "top heavy",
especially if they are to be shared, so only when (and if) we load that
particular view, the subscription is triggered, while others can be
re-used.
I have compared performance with current release, and there's a
noticeable difference. Opening a chat is faster (messages are loaded
faster), and clicking on the home view on a chat is more responsing
(the animation on-press is much quicker).
Change press animation ns
Add list item component
Fix pressable does not reset animation state
Improve long-press handling
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
This commit adds parsing of markdown in the chat subheader.
Because of the added complexity performance are impacted but I have
also noticed that on each loading of the chat screen we calculate
alias & identicon through status-go, so that has been changed so that
they are returned from status-go.
Overall performance is now roughly identical, tested loading 150
one-to-one chats.
Another issue that I've spotted is that some `subs` are unnecessarely
recalculated (`active-chats`), when unrelated fields changes. I will
address this in a separate PR that should improve performance.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
When a new content-type is introduced, before we shown
"Unhandled content-type". Now we instead pull text if it's present,
otherwise we still show "Unhandled content-type". This makes for a
smoother upgrade path when adding new content types.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Before we stored only the message-id and had a subscription pulling the
message from the database when replying to the message.
This broke once we implemented offloading of messages, as the message
might not be in the database anymore.
This commit fixes the issue by storing the full message in the database,
so in the event of it being offloaded it is still shown.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Changes:
- Drop a bunch of `watch-{android,ios}-*` tagets
- Replace them with one `run-clojure`
- Drop a bunch of `react-native-*` targets
- Replace them with one `run-metro`
- Replace `run-{android,ios}` with `run-{android,ios}`
- Drop `startdev-{android,ios,desktop}*` targets
- Drop `prod-build-{android,ios}` as deprecated
- Drop `src/status_im/android/core.cljs`
- Drop `src/status_im/ios/core.cljs`
- Move `lsof` tool to `default` shell
- Replace them with one `init` `src/status_im/core.cljs`
- Use `init` in one `shadow-cljs.edn` target `mobile`
- Use `mobile` target in `nix/mobile/android/jsbundle`
- Update instructions in `STARTING_GUIDE.md`
- Use `gradle` shell for `android-clean` target
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Xcode updates
Localization
Pods upgrade
Update package.json
Upgrade android
Fix gitignore
Add flipper
Do not enable flipper by default on ios
maven update
Remove outdated hermes
idk what it is, but it's outdated
show warning on build
gradle update
rebase
Update deprecated clipboard
nix
align e2e to rn upgrade
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
fix header title spacing
Remove translate animation
Add press for profile header
Rebase
Attempt to fix e2e
Add back button accessibility-label
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
When the account card is scrolled out of view a send/receive button group
appears at the bottom of the asset list; uses native animation to raise and
lower the button group into and out of view.
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
fix for universal link not opening properly when app was closed with
back button, returning nil instead of the url
Signed-off-by: yenda <eric@status.im>
- only show notifications when app is in background
- open the user chat upon tap on notification
- remove chat from notifications on tap or dismiss notification
- keep the service alive on host destroy
- enable local notifications
Add text component
Add header component
Change animated root ns
Add spacing design tokens
Add components preview
Add Readme
Add safe area components
Use reanimated from component library
Add colors tokens
Add inherit style for text
Add animated header component
A view with header which can be animated on scroll, used in walled, profile and contact screens
Persist previews navigation state
Rename component library into Quo
Document colors
Extend readme
Header handle long titles
Add InterStatus as monospace font
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Prior to this commit, deleted accounts would stay in the database but
set to `nil`. With this change accounts are properly removed from the database
when scheduled for deletion.
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
As discussed in #10326 and later in https://github.com/status-im/status-go/issues/1939, it turns out
that, when a user tries to add an account (from a seed phrase), while an account
with the same address (that the seed phrase would result in) exists in the application
state, the application would still go ahead and store the derived account in
status-go.
After that it still reports to the user that the 'Account already exits'.
This commit ensures that Status doesn't try to store the derived account when
the account already exists in the application database.
Fixes#10326
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
Usage of `Keycard.generateMnemonic` is removed from the code as we
always generate new multiaccounts on status-go side. Previously it was
misused and was called with intention of generation of mnemonic for an
existing keycard multiacc.
In some cases message confirmations might arrive out of order, before
status-go calls the callback for a sent message.
This commit changes the behavior so that confirmations out of order are
not ignored and they are checked when the callback for sending message
is called.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Fixes: #10297Fixes: #10274
Before if a reply was missing (for example if it the message replied to
arrived after the reply) status-react would subscribe to it dynamically
and use that. This caused some flickering issues when offloading the
messages from the database, as the message being replied to would be
offloaded and later loaded back again, triggering scroll and ending up
in a loop.
This commit changes the behavior so that status-go always adds the
reply to the message. In case the message being replied to arrives after
the reply, this will be included in the message update, and status-react
will replace it in the local storage.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
All leading and trailing whitespace is now removed from strings derived from QR
codes, both in the case of `get-qr-code-data` (real camera) and
`qr-test-view` (mock camera).
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
- wasn't able to reproduce the issue as it seems that all inputs are already
properly turned to lower case
- added :auto-capitalize :none property to the input field though to ensure
the keyboard doesn't force the user to start with an uppercase later
Signed-off-by: yenda <eric@status.im>
add a check on the function that adds the stateofus domain to
usernames. if the username already contains a domain, don't
concat stateofus domain to it
Signed-off-by: yenda <eric@status.im>
Prior to this commit `sign-message-completed` effect would always use
the `wrong-password` label for error handling. We now ensure that `wrong-password`
is only used in case the error in question has a code `5`, which is
associated to unmatching passwords.
In any other case we'll use the `message` attached to the `error`.
Fixes#8275
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
Fixes: #10249
We were using seconds instead of seconds, therefore the gap would always
end up as last.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Set font-size and line-height for text-input
Add min height to seed phrase
Min 3 lines for phrase fixes#10121
Increase touchable area for text-input
Fix wrong styles on mailserver inputs
Fix wallet wrong styling on text input
Make seed phrase centred on ios
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Add search for contacts
Add format name inside contact
Add back button on create group
Fix current contact name and alias
fixup
Update UI for group chat profile
Fix tests
Ui clean up
fix change group chat name
Add leave group chat option
Hide options if user has left the chat
Use modal for all required chat screens
Add dark mode to group chats
Fix offset 10 pt off screen on presentation modals
Wrap keyboard avoiding view with safe area offset
Keep only leave chat
Fix search input focus
Make edit name active when title not changed
Fix lint
review cleanup
QA review
Fix group chat inviter name
Fit flat list into container
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Changes:
- Includes `VERSION` file in source for `jsbundle` derivation
- Includes `BUILD_NUMBER` file and it's generation scripts
- Includes minimal `.git` files to make `git rev-parse --short HEAD` work
- Implements `ignoreVCS` for `mkFilter` to be able to include `.git` files
- Adds missing `git` and `bash` to `buildInputs` for `jsbundle` derivation
- Dropped `bash -c` from Clojure code calling `git`
Signed-off-by: Jakub Sokołowski <jakub@status.im>
If a message is hidden and is not currently loaded, it will not be
marked as read, resulting in the count being always positive. To avoid this
we always mark it as read, and from the backend we return whether it has
been marked as read or was already seen.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
In some instances when receiving messages from a mailsever in the chat
you are in, the flag `all-loaded?` would not be reset, meaning that
messages not in the current view would be added to the db, but would not be seen until actually
reloading the chat (go back home, open again).
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>