Compare commits

...
Author SHA1 Message Date
jo-mut 500a170e7f fix: show user avater on share screen 2024-02-06 16:13:49 +01:00
Anton Iakimov 07feff60ec fleets.json: remove go-waku fleets and update some other ENRs 2024-02-06 12:34:56 +01:00
Siddarth Kumar 59c07050b2 chore: remove hermes enable condition (#18723)
We recently disabled `hermes` for debug builds here -> https://github.com/status-im/status-mobile/pull/18675
A side effect of that is when we run `make nix-update-gradle` the `hermes` pom gets removed from `deps.list`
This pom is necessary for release builds.
Currently that pom exists in `deps.list` but someone may accidentally remove it when running `make nix-update-gradle`

In this commit we remove the conditional implementation of `hermes` or `jsc` in `build.gradle`
This ensures that the `hermes` pom we need during release builds is not removed from `deps.list`.

I also ran `make nix-update-gradle` just to be sure.
I compared the apk in this commit to other PRs and the size increased by 2MB.
A small price to pay so that the team can run Malli locally without crashing their debug app frequently.

I've added a FIXME comment in the code for when we want to cut back on bundle size later.
2024-02-06 16:57:05 +05:30
Lungu Cristian 431b6c36ca fix: collectibles scroll crash (#18658) 2024-02-06 13:15:23 +02:00
Yevheniia Berdnyk 2e7a9c82ff e2e: fix for deep/universal links test 2024-02-05 16:08:18 +02:00
Nikolay 32442945ee chore(wallet): connect remove account rpc request (#18601) 2024-02-05 04:29:25 -08:00
Nikolay 19ac0eea08 Collectible counter component #18632 (#18653) 2024-02-05 04:17:49 -08:00
Jamie Caprani 0964424a36 chore: remove old wallet signals and move signals to status-im ns (#18285) 2024-02-05 03:40:58 -08:00
Parvesh Monu b6ce60eccf Disable multiple button presses (#18478) 2024-02-05 15:26:14 +05:30
Omar Basem a6565b52ce fix: test networks short-name->id (#18692)
* fix: test networks short-name->id
2024-02-05 09:15:30 +04:00
John Ngei 154fbb156d added empty state illustrations image for pinned messages 2024-02-02 23:24:34 +01:00
John Ngei 9c884d1173 fixed: input field does not adjust its size to the scanned data from a QR code 2024-02-02 23:14:49 +01:00
Mohamed Javid 4dded72878 Wallet - Add support for Sepolia testnet and Rarible collectible provider (#18519)
This commit adds support for the Sepolia test network and Rarible collectible/collection provider.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-02-02 19:44:00 +05:30
Ulises Manuel c7bf9f00b5 [#18459] - Add cursor-based input to token-input (#18594) 2024-02-01 20:02:00 -06:00
Ulises Manuel b6ddd8b5ff [#18495] Fix token not ready for next screen (#18532)
* Fix exception thrown re-frame don't have the subs' value ready

* Make Token malli schema more lenient

*  Make `get-standard-crypto-format` able to work with `nil` values

*  Refactor token screen to move subscriptions inside render function

* Make token input reactive to on-swap

* Remove `crypto-currency?` atom to properly react to state changes

* Fix component tests
2024-02-01 17:51:12 -06:00
Yevheniia Berdnyk 3f9cd3a688 e2e: fixes 01.02 2024-02-01 20:36:51 +02:00
Mohsen 675897c9ab [#18313] feat: implement change profile picture (#18440) 2024-02-01 19:45:58 +03:30
Siddarth Kumar df76881c90 chore: disable hermes via gradle project env var (#18675)
fixes #18493

We enabled `hermes` for android in the `react-native` upgrade to `0.72.5`
Although things seemed fine but developers were seeing frequent crashes in their local environment.

After some investigation the crashes were traced to max native call stack depth in `hermes` engine.
Disabling `hermes` for local debug builds helps fix that issue.

This commit disables `hermes` by default with the help of a exporting an environment variable in the `make run-android` command.
It is annoying that this also modifies `android/gradle.properties` so we keep `hermesEnabled` as `false` there as well.
We also enable `hermes` when generating release builds so that we can take advantage of `hermes` engine in release builds.

We also add a log to print whether `hermes` is enabled or not. I think its helpful to have this so that we know whether `hermes` is enabled or not.
2024-02-01 20:56:18 +05:30
Brian Sztamfater e54932057d fix: reintroduce changes for sending erc20 token and collectibles (#18679)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-02-01 12:03:04 -03:00
Volodymyr Kozieiev a95f2a0f52 Implement menu on collectible preview page (#18651) 2024-02-01 12:48:48 +00:00
Icaro Motta 38dbd6687e Disable flag ACCOUNT_SELECTION_ENABLED by default (#18690) 2024-01-31 23:58:37 -03:00
Ajay SivanandIcaro Motta 4633fc22ed Show token permissions only for role permissions (#18549)
Token requirements that are not role permissions (currently channel permissions)
should not be displayed to the user while they see permissions to join.

Admin, Master, Owner or minted token permissions are not membership permissions,
but they still should be displayed so the user understand the role they will
assume after joining.

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>
2024-01-31 21:03:54 -03:00
Ibrahem Khalil 7e31e028fa Bring back enable-notifications onboarding screen static image (#18654) 2024-01-31 16:01:30 +02:00
Mohamed Javid 067b2d5afb [Fix] Wallet - Route not found (#18682)
This commit fixes the route not fetched bug on the Wallet send flow.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-31 16:45:21 +05:30
BalogunofAfrica e4ba0d3062 fix: android shadow (#18504) 2024-01-31 12:02:27 +01:00
Icaro Motta 11e49c0cc3 Fix community logo/name not rendered correctly (#18633) 2024-01-30 19:37:45 -03:00
BalogunofAfrica eda9464b6c fix(ios): button overlap (#18620) 2024-01-30 16:34:12 +01:00
frank 8f3385fc9f fix: endless logout (#18492) 2024-01-30 20:25:53 +08:00
Paul Fitzgerald 7eb4331de1 Chore(wallet): add bridge token page (#18560) 2024-01-30 03:22:45 -08:00
Anton Iakimov 46f01f5eb3 Revert "ci: don't fail on Diawi upload failure"
This reverts commit 36168256bf.
2024-01-30 11:42:04 +01:00
Shivek Khurana 0349b0ed3d 🎡 Don't scroll on press (#18662)
- Hack fix
- Scroll on press breaks something with FlatList
- Which causes some items to not render
- Could be related to scroll view inside scroll view
- But fixing this bug by compromising the UX a tiny bit
2024-01-30 08:32:20 +00:00
Siddarth Kumar f57a26b5f5 Remove hacks from darwin nix purge script (#18656)
## Summary
In this commit we : 
- instead of `cd` to `/Library/LaunchDaemons` and then attempting to `launchctl unload` the nixos plist files we just pass the full path to unload as seen in `nix` documentation here : https://nixos.org/manual/nix/stable/installation/uninstall.html#:~:text=Stop%20and%20remove%20the%20Nix%20daemon%20services%3A

- move killing a process by prompting for confirmation to a new shell script as per feedback from previous PR : https://github.com/status-im/status-mobile/pull/18192#discussion_r1439495310

- fix few small typos

## Platforms
- macOS
2024-01-30 09:00:26 +05:30
Lungu Cristian ab509da60e fix: profile image & customization color for share-qr-code (#18643) 2024-01-29 14:14:51 +02:00
Lungu Cristian 901818492d Replace unmaintained biometrics package (#18531)
* feat: added react-native-biometrics dependency

* chore: added malli schema to auth

* fix: malli schema

* feat: using react-native-biometrics

* fix: removed biometry not-enrolled error supression

* feat: added check for enabled biometric

* fix: biometrics error handling on ios

* chore: remove touch-id library

* chore: cleanup

* removed proj.list dep

* fix: gradle get_projects regex edge-case

Handles cases when the gradle project has a description, which shows up when running `gradle projects` as (`react-native-biometrics` - react-native-biometrics), breaking `make nix-update-gradle`. Here we're just adjusting the regex to ignore everything in the line after the closing (`).

* build: ran "make nix-update-gradle"

* chore: comment typo

* chore: replaced old lib in test mocks

* fix: addressed review comments

* fix: using event for standard-auth biometrics

* ref: using ex-cause for biometric error codes

* fix: removed promesa changes

* fix: auth slide biometric success not triggered
2024-01-29 13:33:46 +02:00
Ibrahem Khalil 302020653b Add lastOpenedAt and JoinedAt for communities (#18439) 2024-01-28 14:59:10 +02:00
Yevheniia Berdnyk 205b74cd34 e2e: remived xfail marks 2024-01-26 20:03:12 +02:00
mmilad75 be618bfafe Wallet: Disable long-press feature on tokens in watch-only accounts. #18597 (#18598)
* add functionality

* update condition
2024-01-26 21:30:01 +03:30
Ulises Manuel 550fa04e33 [#18512] incomplete list of collectibles (#18577)
* Fix var naming react-native-svg namespace

* Update collectible components to show SVGs

* Display collectibles containing collection images

* Show collectibles containing SVG animations as static images

* Reduce collectibles fetching priority

* Add support to visualize SVGs in collectible detail screen
2024-01-26 09:52:04 -06:00
yqrashawnandAjay Sivan 1acf8f0d07 feat: show highest permission role when join community (#18497)
* feat: get revealed accounts for joined community

Signed-off-by: yqrashawn <namy.19@gmail.com>

* Show token requirements only when membership permissions are present.

- Add membership-permissions? to community state.

* feat: show highest permission role in overview and req to join

Signed-off-by: yqrashawn <namy.19@gmail.com>

* feat: get highest perm role in addr for perms

Signed-off-by: yqrashawn <namy.19@gmail.com>

* feat: ui for address for perm drawer

* test: unit test and spec for handle-community

Signed-off-by: yqrashawn <namy.19@gmail.com>

* fix: for #18581

* refactor: based on PR feedback

- move <-rpc to data store
- `role->translation-key`
- highest-permission-role-text -> highest-role-text
- filter out nils for handle community test

Signed-off-by: yqrashawn <namy.19@gmail.com>

---------

Signed-off-by: yqrashawn <namy.19@gmail.com>
Co-authored-by: Ajay Sivan <ajayesivan@gmail.com>
2024-01-26 15:38:10 +08:00
Parvesh Monu d82bf3365d fix bottom tabs blur overlay color (#18621) 2024-01-26 11:44:58 +05:30
Jamie Caprani d8e0d1c36b chore: remove mock data from wallet and feature flag incomplete features (#18569) 2024-01-25 13:13:33 -08:00
Yevheniia Berdnyk ad7a95ed3d e2e: updated deep/universal links tests 2024-01-25 22:20:21 +02:00
Paul Fitzgerald cc24794b74 chore (shell): add indicators to share wallet qrs (#18523) 2024-01-25 19:00:18 +00:00
Omar Basem 1fb6c60f72 Wallet: network receiver preferences (#18583)
* wallet: network receiver preferences
2024-01-25 15:45:45 +04:00
Volodymyr Kozieiev 8999b2b9e8 Implement collectible image preview (#18449)
* Lightbox refactored and moved to common screens that can be reused
* Events renamed
* Unify constants namespace importing
2024-01-25 10:58:12 +00:00
mmilad75 ed7463132a The collectibles are not supported on Optimism and Arbitrum #18507 (#18562)
* add chain id to the request

* add tests

* fix lint issues

* remove OPENSEA_API_KEY

* move subscription to a helper method for chain-ids
2024-01-24 19:17:08 +03:30
Brian Sztamfater d20f10cf8b fix: fix slide button padding on transaction confirmation page (#18585)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-24 10:40:53 -03:00
Brian Sztamfater ebbae051bd fix: fix button color on input amount screen (#18572)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-24 10:27:00 -03:00
mmilad75 521f39b6fb No ability to enter/paste assets exceeds the users's balance #18526 (#18599)
* change functionality

* fix handle-swap

* fix lint issues

* update tests

* change error to error?

* change reset-input-error

* update tests

* fix lint issues
2024-01-24 16:37:47 +03:30
Siddarth Kumar ee1f93defb fix: xcbeautify usage without omitting crucial logs (#18605)
## Summary

I introduced `xcbeautify` inside `make run-ios` command which would sometimes skip spitting crucial logs to the terminal.
In cases where the `react-native-cli` would prompt me of a port being used by another metro server, those prompts would also never reach me since they were piped into `xcbeautify` essentially giving me the impression that `make run-ios` is still doing something when it was actually hung.

This is how `react-native-community/cli` looks for `xcbeautify` ->
https://github.com/react-native-community/cli/blob/main/packages/cli-platform-apple/src/commands/buildCommand/buildProject.ts#L139

This commit fixes the problem by exporting an env variable making `react-native-cli` aware that we have `xcbeautify` installed and this way we now get the full log output we were used to.
2024-01-24 15:28:42 +05:30
John Ngei 3665fe26da fixed: mute-icon when channel is muted 2024-01-24 00:25:16 +01:00
John Ngei 3ec7209fcc Update default wallet name
* updated default wallet name to 'Account 1'

https://github.com/status-im/status-go/compare/ea3e59ff...64c8ce2e

* updated status go
2024-01-23 23:44:47 +01:00
Paul FitzgeraldandAjay Sivan 195826a7f4 chore(quo): add component list item - network list to design system (#18547)
---------

Co-authored-by: Ajay Sivan <ajayesivan@gmail.com>
2024-01-23 11:41:20 -08:00
Ibrahem KhalilandYevheniia Berdnyk 5bb4f3632a [17514] Use OS emojis in emoji picker (#18397)
---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2024-01-23 14:41:43 +02:00
Mohamed Javid 4fe62553ca Wallet - Refresh tokens and prices (#18456)
This commit adds

- RPC call for start wallet which will signal the client to refresh data (tokens, prices, ...etc) every 10 minutes
- Refreshes tokens and prices every 10 minutes on receiving the "wallet-tick-reload" signal

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-23 17:59:29 +05:30
BalogunofAfrica cb586c8676 fix: make identifier carousel swipe-able (#18515) 2024-01-23 12:25:03 +01:00
Ibrahem Khalil fd50e4281c Add scroll view to profile tab (#18448) 2024-01-23 12:52:34 +02:00
Ulises Manuel dcbb080217 [#18458] Token input fixes (#18520)
* Add custom keyboard to token-input preview
* Fix token input flickering
2024-01-22 20:01:00 -06:00
Parvesh Monu 97d1b3faa1 fix cannot add existing ENS owned by user (#18567) 2024-01-23 04:42:56 +05:30
Nikolay 9c322397a2 chore(wallet): remove account confirmation UI (#18518) 2024-01-22 10:00:07 -08:00
Mohsen ca2b1d5c8e fix: remove quo preview from nightly builds (#18556) 2024-01-22 19:08:34 +03:30
Jamie Caprani 9a4bc7e250 feat(wallet): connect backend to transaction progress page (#18506) 2024-01-22 14:40:13 +00:00
Paul Fitzgerald c6dbfb6244 chore: add background color gradient to share qr code component (#18503) 2024-01-22 06:08:43 -08:00
Omar Basem 826ab6625e Wallet: token input conversion (#18539)
Wallet: token input conversion
2024-01-20 10:23:19 +04:00
Ulises Manuel a9ec2ca7ba Add support to display token images in token gated communities (#18174) 2024-01-19 20:51:50 -06:00
Parvesh Monu 1e11edc442 Remove last reagent atom from messages/view file (#18551) 2024-01-19 21:41:02 +05:30
codemaster bf8461f007 fix: wrong navigation bar color in transparent screens (#18451) 2024-01-19 07:19:58 -08:00
Mohamed Javid 5926426672 [Fix] Currency symbol on recovered profile (#18433)
This commit fixes the currency symbol not shown on the recovered profile.

--

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-19 20:03:28 +05:30
yqrashawn e871357b67 refactor: move perm/airdrop addrs into community (#18571)
Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-01-19 20:44:17 +08:00
Omar Basem 9f5e53cc63 wallet: fix address inconsistencies (#18558)
wallet: fix address inconsistencies
2024-01-19 15:45:17 +04:00
yqrashawn 61c0650cec fix: do not show community view until it's loaded (#18570) 2024-01-19 16:36:14 +08:00
Omar Basem 7cc570b6d0 wallet: fix route test net (#18553)
wallet: fix route test net
2024-01-19 07:47:37 +04:00
Brian Sztamfater e609e2ff6a fix: crash when selecting a collectible (#18541)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-18 16:05:09 -03:00
Alexander f8cdb3bd7b Style fix (#18191) 2024-01-18 16:23:42 +01:00
yqrashawn fe9a4eac59 feat: re-fetch community info in community overview and channel (#18465)
Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-01-18 22:05:31 +08:00
frank d934dc26ef Remove the invocation of wakuext_chatMentionReplaceWithPublicKey (#18533) 2024-01-18 21:33:37 +08:00
Mohamed Javid ed3cb42572 Wallet - Add token filter and prices fallback for fiat amount calculation (#18398)
This commit:

- Adds a filter to remove tokens with no name or symbol to prevent displaying tokens with no data
- Adds a fallback value (zero) for token fiat value calculation and to prevent crash on token price calculation

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-18 15:16:00 +05:30
John Ngei 8a4302c85a fixed: incorrect space between name and message card in selected message item 2024-01-18 00:59:18 +01:00
Ajay Sivan c888c512a2 Communities: Share airdrop address (#18505) 2024-01-17 10:23:20 -08:00
Lungu Cristian 72bf8a8702 fix: composer size when re-entering with unfinished multiline message (#18089)
fix: composer space when expanding after re-entering

fix: composer bottom shadow and maximized state atom

fix: removing composer bottom gradient style changes
2024-01-17 13:24:13 +02:00
mmilad75 49e9b4212b Wallet - Account switcher - add Share Account functionality #18376 (#18444)
* add share account functionality

* add share qr code address functionality

* rename file

* finalize code

* move logic to events and effects

* fix lint issues

* resolve comments

* change translation
2024-01-17 14:12:35 +03:30
Omar Basem 19aa78cc81 Wallet: loading networks (#18491)
Wallet: loading networks
2024-01-17 13:57:02 +04:00
John Ngei 02b8d2140a fixed: spacing between the header and illustration on biometrics page 2024-01-16 22:02:20 +01:00
Siddarth Kumar 72d8c4446f chore: tiny Makefile fixes (#18521)
Here we remove `yarn install` from `make component-test` and  `make component-test-watch` commands.
We also fix an extra `@` present ahead of `@scripts/check-metro-shadow-process.sh` inside `component-test-watch` command.
2024-01-16 23:30:42 +05:30
Siddarth Kumar 09bf6673cf chore: upgrade kotlinPluginVersion to 1.9.0 (#18487)
### Summary

We need to bump `kotlin` Plugin version to `1.9.0` because the `nixpkgs` upgrade will set default `gradle` version to `8.4`.
`gradle` version `8.4` comes with a base `kotlin` version of `1.9.0` which becomes incompatible with our existing version of `1.7`

Otherwise we get errors like this :

```
e: /Users/siddarthkumar/code/experiments/status-mobile/node_modules/@react-native/
gradle-plugin/src/main/kotlin/com/facebook/react/utils/TaskUtils.kt: (25, 7): Class
'kotlin.collections.CollectionsKt__CollectionsKt' was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 1.9.0, expected version is 1.7.1.
The class is loaded from /nix/store/3a228ppiiljfvsrxyq15h25chmiwsmbh-gradle-8.4/lib/gradle/lib/
kotlin-stdlib-1.9.10.jar!/kotlin/collections/CollectionsKt__CollectionsKt.class
.
.
.
```

needed for https://github.com/status-im/status-mobile/pull/18321

In this commit we set `kotlinPluginVersion` to `1.9.0` and update `gradle` dependencies.

#### Platforms
- Android
2024-01-16 21:18:15 +05:30
Brian Sztamfater 455a739318 feat: enable sending erc20 tokens (#18481)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-16 12:02:31 -03:00
Brian Sztamfater ac07109e86 feat: prepare events for sending collectible (#18473)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-16 11:48:46 -03:00
Parvesh Monu 248996ce6f Organize composer worklets (#18528) 2024-01-16 19:01:07 +05:30
yqrashawn a2bf23cc12 fix: handle deep link too early when onboarding (#18363) 2024-01-16 16:08:07 +08:00
Ulises Manuel 0fd7a4b581 Fix summary-tag style (#18474) 2024-01-15 20:42:05 -06:00
Jamie CapraniandPaul Fitzgerald 8d3883c709 feat(communities) enable user to share community channel (#18516)
Co-authored-by: Paul Fitzgerald <paulfitz99@gmail.com>
2024-01-15 12:16:42 -08:00
Omar Basem 8a16017859 Wallet: send token from drawer (#18429)
* feat: send token drawer
2024-01-15 20:57:55 +04:00
Omar Basem fa9b6edd30 Wallet: select-send-address event (#18501)
* Wallet: select-send-address event
2024-01-15 20:21:38 +04:00
Jamie CapraniandPaul Fitzgerald 3e787ff112 feat(shell): add share qr wallet accounts feature(#18511)
Co-authored-by: Paul Fitzgerald <paulfitz99@gmail.com>
2024-01-15 06:39:48 -08:00
Siddarth Kumar 92dcd1140b refactor native modules into separate modules (#18385)
The native module : `react-native-status` has always been 1 big fat file per platform which contained all of the native modules.

In case of Android it was `StatusModule.java`
This commit modularises it & attempts to thin out this 1 big file into these categories:
- `AccountManager.java`
- `EncryptionUtils.java`
- `DatabaseManager.java`
- `UIHelper.java`
- `LogManager.java`
- `NetworkManager.java`
- `Utils.java`

In case of iOS it was `RCTStatus.m`
This commit modularises it & attempts to thin out this 1 big file into these categories:
- `AccountManager.m`
- `EncryptionUtils.m`
- `DatabaseManager.m`
- `UIHelper.m`
- `LogManager.m`
- `NetworkManager.m`
- `Utils.m`

In this commit we also remove a lot of unused native code which has no reference on cljs side.
2024-01-15 18:57:35 +05:30
Anton Iakimov 36168256bf ci: don't fail on Diawi upload failure 2024-01-15 11:43:19 +01:00
John Ngei 6aa981d4a7 fixed dark border around the community logo on community page
This PR removes the dark border around the community logo on communities page 
reproducible only when the user has not yet joined the community
2024-01-12 18:37:23 +01:00
Ulises Manuel e3ab270933 #[16978] Select collectible to send (#18404)
* Show collectibles to send and add filter capabilities

Additionally,
* Replace the sub `:wallet/collectibles-per-account` by `:wallet/current-viewing-account-collectibles` since 
    it was only used for the current viewing account and simplified the code.
* Refactor the select-asset view.
* Generalize collectibles-tab view
* Add translations for "not found" state
2024-01-12 11:14:39 -06:00
flexsurfer 4165565956 fix subs leak (#18480) 2024-01-12 16:12:10 +01:00
Siddarth Kumar 57ee5cb654 fix: resolve to metro version which fixes crashes (#18475)
### Summary

Metro server often crashes with 
```
status-mobile/node_modules/nullthrows/nullthrows.js:9
  throw error;
  ^

Error: Got unexpected null
```

This commit resolves metro to a commit where this specific issue was fixed.
related PR in metro repo : https://github.com/facebook/metro/pull/1083
2024-01-12 20:32:31 +05:30
Ulises Manuel 5cc027a1f5 [#18461] Update guideline about apply-animations-to-style (#18462) 2024-01-11 19:17:07 -06:00
Icaro Motta a14e228e3a Fix: add back missing clj-kondo config files (#18472)
Fix our issues with auto-generated clj-kondo config files.

- To be extra precise, we now exclude ".clj-kondo/*" from being processed by
  clojure-lsp clean-ns.
- Formatted the .zprintrc file.

Fixes https://github.com/status-im/status-mobile/issues/17947
2024-01-11 20:19:55 -03:00
Icaro Motta 7e2c7abf30 Fix: incorrect props passed to RN's style prop (#18435)
Fix 3 errors in the onboarding screen about unsupported props passed to the style prop.

1x ERROR  Warning: Failed prop type: Invalid props.style key resizeMethod supplied to Image.
2x ERROR  Warning: Failed prop type: Invalid props.style key size supplied to Text.

Related guideline:
https://github.com/status-im/status-mobile/blob/563f1c588d1cdac31629da009a1c894133038d2d/doc/new-guidelines.md#dont-define-properties-in-styles-ns
2024-01-11 20:10:04 -03:00
Omar Basem ec2b95c370 Fix: Asset decimals on select asset screen (#18427)
* fix: assets decimals
2024-01-11 20:44:20 +04:00
Parvesh Monu 623d4a1476 fix improper use of current-chat-id and rename subs (#18389) 2024-01-11 17:20:37 +05:30
Roman Volosovskyi 09408e7811 Reanimate RPC stats screen 2024-01-11 11:04:07 +01:00
Siddarth Kumar 4eff9cc39c fix: don't show trace message when default is set (#18464)
`getEnvWithDefault.nix` prints a trace message in console when a default value is not set. 

In this commit we add a check to see if default value matches the value of that env var.
Otherwise we get log messages like these when running `make run-ios`

```
trace: getEnvWithDefault IOS_STATUS_GO_TARGETS 
(default: ios/arm64;iossimulator/amd64): ios/arm64;iossimulator/amd64
trace: getEnvWithDefault IOS_STATUS_GO_TARGETS 
(default: ios/arm64;iossimulator/amd64): ios/arm64;iossimulator/amd64
```

We also fix a tiny mistake in `make run-ios` status-go target by updating the delimiter to be a semi-colon instead of a comma.
2024-01-11 14:57:28 +05:30
Ulises Manuel 0f43daa836 [#18362] Add support for Reanimated inline styles in Reagent (#18381)
* Modify reanimated/view to support vectors contained in styles
* Add code examples of animated inline styles

Additionally,
*  Fix warning about reactive deref not supported in lazy-seqs
2024-01-10 20:09:32 -06:00
Siddarth Kumar fdfc06d6dd fix: random local make-run ios failures (#18446)
In this commit we build iOS `status-go` for both targets `amd64` and for `arm64` otherwise we get random failures when running `make run-ios`.
Maybe this was an impact of Xcode Upgrade Or RN Upgrade or MacOS Upgrade, it is not clear at the moment.
This will increase the time it took for iOS to be built locally, but it is better to be slow rather than have random build failures.
2024-01-10 22:25:08 +05:30
Brian Sztamfater 162c6dbf89 fix: route not found when attempting to transfer assets to additional eth account (#18325)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-10 12:49:45 -03:00
mmilad75andJamie Caprani da03989c88 Implement about tab on collectible page (#18269)
* add basics

* finalize component

* fix lint issues

* move color to props

* move variants to props

* change file structure

* working

* finalize loader

* fix lint issues

* fix style issues

* add tabs structure

* add basics

* draft codes

* draft

* make codes work after rebase

* fix lint issues

* remove Permissions tab

* revert codes

* finalize code

* fix lint issues

* revert podfile.lock

* create new reg-sub for traits and chain-id

* add real title and description for about tab

* resolve comments

* fix overview tab

* add tests

* resolve comments

---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2024-01-10 18:47:07 +03:30
Yevheniia Berdnyk 433be1daef e2e: fixes 10.01 2024-01-10 16:10:31 +02:00
Mohamed Javid 5a707c0dca Wallet - Initialize event, refactor networks data and bug fix (#18374)
This commit:

- Introduces new event ":wallet/initialize" to group events that need to be called on login
- Refactors wallet networks to use the nested structure in re-frame
- Fixes a bug when updating the testnet network preferences of an account the production network preferences update

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-10 18:47:24 +05:30
jakub eb53bbe4ec ci: fix handling of Android builds on Apple ARM64
Now that this PR has been merged:

* https://github.com/status-im/status-mobile/pull/16237

We need to handle ARM using an override.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-01-10 13:05:40 +01:00
jakub 257b0684ef nix: fix regex in clean.sh script
Repo used to be called `status-react`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-01-10 13:05:39 +01:00
Parvesh Monu 425ef64901 Refactor compose (#18339)
- Removed show-floating-scroll-down-button? reagent atom
- Created event for scroll-to-bottom-fn
- Renamed chat.ui/close-chat
2024-01-10 13:53:35 +05:30
Omar Basem 0e4c1b3c17 refactor: kotlinify log (#18337)
refactor: kotlinify log
2024-01-10 09:05:35 +04:00
Ajay Sivan 1eb9e87383 Move selected addresses for permissions to app db (#18430) 2024-01-09 19:45:17 -08:00
yqrashawn 61b0a2ecac fix: profile screen initial avatar alignment (#18426)
https://github.com/status-im/status-go/compare/debfe1ca...debfe1ca

Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-01-10 10:34:54 +08:00
frank 78576f4aeb fix: mark all notifications as read not work (#18107) 2024-01-10 10:04:49 +08:00
Ibrahem Khalil 9ff70ed990 Add internal-link component for #17116 (#18109) 2024-01-09 14:31:00 +02:00
Ibrahem Khalil 6d5ef17a31 Drop clj-kondo dir from linting (#18328) 2024-01-09 14:19:30 +02:00
Omar Basem 504d92fd57 Wallet: suggested routes list (#18388)
* wallet: suggested routes list
2024-01-09 15:12:11 +04:00
Omar Basem 3ff6013127 kotlinify thread pool (#18366)
chore: Kotlinify thread pool
2024-01-09 14:35:39 +04:00
Lungu Cristian fb13c3016d Biometrics in new settings (#18258)
* feat: added biometrics setting to new-settings

* fix: fix renaming issues from status-im2

* ref: addressed @cammellos' review comments

* fix: open password settings in a modal

* ref: addressed review comments

* fix: disabling biometric clears auth-method from keychain

* chore: quo/overlay seqs the childrend so need to add keys

* fix: don't pass the password unmasked between events to avoid leaks
2024-01-09 10:25:40 +02:00
Yevheniia Berdnyk 4c4ba97308 e2e: added check for deleted 1-1 chat history 2024-01-08 21:49:20 +02:00
Siddarth Kumar f992f4addd fix: boost checksum issue due to jfrog (#18434)
I tried doing a clean pod install and was faced with this : 

```
Installing Yoga (1.14.0)
Installing boost (1.76.0)

[!] Error installing boost
Verification checksum was incorrect, expected 
f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41, got 
5e89103d9b70bba5c91a794126b169cb67654be2051f90cf7c22ba6893ede0ff
```

related issue in react-native repo : https://github.com/facebook/react-native/issues/42180 

In this commit we patch the pod specs provided by react native to rely on `sourceforge` instead `jfrog` to get boost.
2024-01-08 23:55:36 +05:30
Mohsen b4d27d287a feat: implement edit profile and change name (#18270) 2024-01-08 18:27:07 +03:00
Parvesh Monu fb58d7205e Add dispatch-and-chill to navigation events (#18372) 2024-01-08 19:59:01 +05:30
Parvesh Monu 0208224741 fix delayed display of top bar in chat after sending messages (#18300) 2024-01-08 18:12:07 +05:30
Shivek Khurana b3a2f397f9 🔗 Enable explorer links in wallet->about (#18406) 2024-01-08 12:00:41 +00:00
jakub 5915dd42bd ci: upgrade CI hosts to Xcode 15.1
https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes
https://developer.apple.com/documentation/xcode-release-notes/xcode-15_0_1-release-notes
https://developer.apple.com/documentation/xcode-release-notes/xcode-15_1-release-notes

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-01-07 22:24:35 +01:00
Mohamed Javid a00e44d056 Show aggregated tokens and balance in Wallet home (#18275)
This commit adds the feature to show aggregated tokens and balances in the Wallet home.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-01-06 00:36:54 +05:30
Icaro Motta b4640dabb9 Run integration tests separately from unit tests (#18304)
- make test still exists, so if you have been using it, as well as make
  test-watch, they should all work exactly the same.
- [Changed] As part of the check stage, Jenkins will run Lint and Unit Tests
  in parallel. Integration Tests run later because running them at the same
  time as Unit Tests caused errors.
- [Added] "make unit-test" and "make unit-test-watch" run unit tests only.
  Watching all unit tests is faster now because we ignore integration tests and
  we only compile shadow-cljs :mock target once. We are at approximately 10-15s
  to re-run all unit tests after saving a watched file, depending on your
  hardware. If you change mocks.js_dependencies.cljs, you must re-run the make
  target.
- [Added] "make integration-test" and "make integration-test-watch" run
  integration tests only. These are much slower than the unit tests.

Fixes https://github.com/status-im/status-mobile/issues/18112
2024-01-05 15:47:03 -03:00
Jamie Caprani 9c62e63035 chore: organise chats context (#18373) 2024-01-05 09:39:01 -08:00
Brian Sztamfater fc72ba6a1e fix: fix height on account card component (#18329)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-05 14:11:11 -03:00
BalogunofAfrica 1919094b46 fix: community buttons (#18392) 2024-01-05 17:17:51 +01:00
Brian Sztamfater e7b92dcf25 fix: increase numbered keyboard touchable area (#18330)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-05 12:55:23 -03:00
Brian Sztamfater 4b3bc73239 fix: always navigate back to shell stack when closing watch account screen (#18324)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-05 12:38:58 -03:00
Jamie Caprani 947a1ef29c feat(wallet): add ability to send a token (#18242) 2024-01-05 07:04:39 -08:00
Ajay Sivan 4edb14bb5f Communities: Share Selective Account (#18382) 2024-01-05 05:34:43 -08:00
Omar Basem c6a7808049 Wallet: Utility Tests (#18371)
* Wallet: utility tests
2024-01-05 16:29:26 +04:00
yqrashawn be2d0feda3 fix: generate_profile_url crash when login (#18364)
* fix: generate_profile_url.cljs$core$IFn$_invoke$arity$2 crash when login

'status_im.common.universal_links.generate_profile_url.cljs$core$IFn$_invoke$arity$2' is undefined

update the function to a fixed arity function

* fix: schema/=> macro for :function schema

Signed-off-by: yqrashawn <namy.19@gmail.com>

---------

Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-01-05 20:08:13 +08:00
Ajay Sivan c91b4339dc Use text-combinations/page-top component in request to join sheet. (#18384) 2024-01-05 02:09:58 -08:00
Yevheniia Berdnyk 5a832871fe e2e: added checks for non-token gated community channels 2024-01-05 00:34:56 +02:00
Brian Sztamfater 205962f582 fix: error is shown when asset is selected on select assets screen (#18326)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-01-04 11:58:35 -03:00
Siddarth Kumar d64508a74a chore: convert RNSelectableTextInput to Kotlin (#18320)
### Summary

This commit adds `Kotlin` plugin to native module `react-native-status` and converts these files to `Kotlin` :
- `modules/react-native-status/android/src/main/java/im/status/ethereum/module/RNSelectableTextInputViewManager.java`
- `modules/react-native-status/android/src/main/java/im/status/ethereum/module/RNSelectableTextInputModule.java`

### Platforms
- Android
2024-01-04 17:09:24 +05:30
Yevheniia Berdnyk 85c928f862 e2e: enabled tests for pinning messages 2024-01-04 11:22:58 +02:00
Ulises Manuel 4ff5e4da8b [#17938] Collectibles per account (#18277)
* Update wallet events and subs to handle collectibles per account

Additionally,
 - Move collectibles related events to a new events namespace (`status-im.contexts.wallet.events.collectibles`).
 - Update tests to consider collectibles per account.

* Update collectibles tab to handle a current viewing account
2024-01-03 18:41:12 -06:00
Parvesh Monu fc591f303c fix unable to open add-new-contact screen if hardware button is pressed while qr scanner is open (#18296) 2024-01-03 18:24:58 +05:30
Omar Basem f2c69ab9a8 Wallet: crypto max decimals (#18267)
* wallet: crypto max decimals
2024-01-03 15:48:04 +04:00
Omar Basem 006b637b1b Quo: quiz item (#18306)
* Quo: quiz item
2024-01-03 15:36:17 +04:00
Jamie Caprani f016a9c33c chore: clean up contexts folder to only include larger feature sets (#18286) 2024-01-03 02:25:49 -08:00
Omar Basem 1ce76a4af6 Wallet: network preferences text description (#18319)
Wallet: network preferences text description
2024-01-02 13:45:21 +04:00
Alexander 4a9ca80bc2 Share screen design review (#18148)
* Share screen design review

* Small update

* Update

* Style fix
2024-01-02 10:23:38 +01:00
Ibrahem Khalil e392608697 Fix no message preview on long press on the reaction (#18292) 2023-12-30 11:25:01 +02:00
Siddarth Kumar d495bb6b57 Kotlinify StatusOkHttpClientFactory.java (#18318)
This commit converts  
`android/app/src/main/java/im/status/ethereum/StatusOkHttpClientFactory.java` to
`android/app/src/main/java/im/status/ethereum/StatusOkHttpClientFactory.kt`
2023-12-29 16:57:27 +05:30
Parvesh Monu 7af62c04eb Keep chat screen loaded (#17839) 2023-12-29 14:55:12 +05:30
Tetiana Churikova 169a092e7f e2e: wait for Join button to be available (#18316) 2023-12-28 16:31:54 +01:00
Siddarth Kumar 7a4d79179d chore: add Kotlin support (#18293)
This commit is a pre-requisite to upgrading `react-native` to `0.73.x`, now that react-native has completely moved their android code over from `Java` to `Kotlin` , it is also necessary for us to begin doing the same.

This commit converts just 2 files which are important at the moment.
- `android/app/src/main/java/im/status/ethereum/MainActivity.java`
- `android/app/src/main/java/im/status/ethereum/MainApplication.java`

I will can convert the remaining files in follow ups.
2023-12-28 20:20:25 +05:30
Ulises Manuel 107d1a80c9 Fix token images not being displayed (#18288)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-12-27 12:43:47 -03:00
Omar Basem 01e8c7e480 Wallet: about tab fixes (#18298)
* wallet: about tab fixes
2023-12-27 19:14:09 +04:00
Siddarth Kumar 0a1152bcc6 chore: bump react-native-webview to 13.6.3 (#18295)
We need to upgrade `react-native-webview` as a pre-requisite for upgrading `react-native` to `0.73.x`
else we face this issue while building iOS : https://github.com/react-native-webview/react-native-webview/issues/3233
2023-12-27 09:13:29 +05:30
Yevheniia Berdnyk 734abc221c e2e: tests fixes 2023-12-27 00:50:01 +02:00
Ajay Sivan bec51b7d0e Add :wallet/accounts-with-customization-color subscription (#18302) 2023-12-26 08:12:20 -08:00
Icaro Motta 0b4a1545ae Fix component tests, upgrade Jest & friends, and a few other goodies (#18276)
Fix all component tests after the latest RN upgrade.

Fixes https://github.com/status-im/status-mobile/issues/18157
Closes https://github.com/status-im/status-mobile/pull/18235

Dependency changes

- Upgraded Jest: from 26.6.3 to latest 29.7.0.
- Upgraded @testing-library/jest-native: from 5.3.0 to latest 5.4.3
- Upgraded @testing-library/react-native: from 11.5.4 to 12.4.2
- Removed explicit dependency on jest-circus, this is now the default test
  runner.
- Removed explicit dependency on jest-environment-node. This is handled by the
  package manager.
- Added jest-silent-reporter at version 0.5.0.

### Why component tests were failing?

Many tests were failing because we were using RN Testing Library (RNTL) in an
unreliable fashion. With the recent library upgrades, the unreliability was
excerbated. Other times, the tests were incorrectly arranging data.

### with-redefs does not work with async code

Generally speaking, with-redefs should not be used with async code, assume the
worst. The scope of the macro will cease to exist by the time the async code
runs. In many tests we were using with-redefs, then calling render, but for some
components that use use-effect, JS timers, animations, etc it's unreliable and
were the reason for failures.

It's easy to reproduce too:

```clojure
(defn foo []
  :foo)

(foo)
;; => :foo

(with-redefs [foo (constantly :bar)]
  (foo))
;; => :bar

(js/setTimeout
 (fn []
   (tap> [:calling-foo (foo)]))
 100)
;; Taps [:calling-foo :foo]
;; As you would expect, when running without with-redefs, it prints :foo.

;; So far so good, but whatch what happens with async code:

(with-redefs [foo (constantly :bar)]
  (js/setTimeout
   (fn []
     (tap> [:calling-foo (foo)]))
   100))
;; Taps [:calling-foo :foo]
;; ====> PROBLEM: Taps :foo, not :bar as one might expect
```

### Not waiting on wait-for

When test-helpers.component/wait-for is used, subsequent assertions/etc should
be done after the promise returned by wait-for is resolved. But remember to not
perform side-effects inside the wait-for callback (check out the docs
https://callstack.github.io/react-native-testing-library/docs/api#waitfor).
Most, if not all of our usages of wait-for were not waiting.

#### Improvement 1 - Silence Jest on demand

If you need to re-run component tests frequently, you may want to reduce the
output verbosity. By passing JEST_USE_SILENT_REPORTER=true to make
component-test or make component-test-watch you will see a lot less noise and be
able to focus on what really matters to you.

#### Improvement 2 - Selectively focus/disable tests

Because of our need to first compile CLJS to JS before running tests via Jest,
we couldn't easily skip or focus on specific tests. From this commit onwards, we
should never again have to change the list of requires in files core_spec.cljs.
Commenting out required namespaces gives a bad DX because it causes constant
rebasing issues.

#### Improvement 3 - Translations now work as in prod code (but only English)

Translations performed by *-by-translation-text can be done now without any
workaround under the hood. The query functions are now linted just like
i18n/label, which means static translation keywords must be qualified with :t/,
which is good for consistency.
2023-12-26 11:58:23 -03:00
Siddarth Kumar 46c5f42fad chore: add form-data package for DIWAI uploads (#18299) 2023-12-26 16:08:46 +05:30
Yevheniia Berdnyk 5d21b1f5ae e2e: fix for getting public key 2023-12-24 01:47:16 +02:00
Siddarth Kumar 49c6a44824 chore: update status-go version (#18253) 2023-12-23 10:08:49 +05:30
flexsurfer 31acb8e9c4 improve profile screen performance (#18281) 2023-12-22 16:59:12 +01:00
Jamie CapraniandPaul Fitzgerald eda8c0ccb0 fix(quo): truncation on wallet account card long name (#18259)
---------

Co-authored-by: Paul Fitzgerald <paulfitz99@gmail.com>
2023-12-22 15:48:57 +00:00
codemaster 7915ba85ab fix: theming toast component (#17918) 2023-12-23 01:29:50 +10:00
Yevheniia Berdnyk 1bd6898e1c apk name updated in e2e nightly jenkins file 2023-12-22 16:18:00 +02:00
Siddarth Kumar 10b97843ce feat: add xcbeautify to iOS shell (#18273)
I can't remember the number of times I have had to ask developers to run `make run-ios | xcbeautify` when debugging iOS build failures and they do not have `xcbeautify` installed on their environment.

`xcbeautify` helps make `xcodebuild` output more readable and to identify problems quickly.

This commit adds `xcbeautify` to iOS shell and to  `make run-ios` so that we get readable output by default.
2023-12-22 19:45:59 +05:30
Omar Basem 5eb0baa64d Wallet: best route UI (#18266)
* Wallet: best route UI
2023-12-22 09:40:43 +04:00
yqrashawn a4dc268bc3 feat: spectate community before join (#18070) 2023-12-22 10:21:10 +08:00
Ulises Manuel 5fa9c0cab6 [#17964] emoji screen performance (#18213)
* Fix `->` style in emoji-picker.data

* Make `temp-empty-symbol` component code safer to avoid app crashing

* fix `->` style in `emoji-picker.utils`

* Pass sheet-animating? ratom to bottom-sheet's content component

* Improve emoji picker performance
2023-12-21 15:44:33 -06:00
Omar Basem 4f9544d20c Wallet: receive screen (#18167)
* wallet: receive screen
2023-12-21 22:07:27 +04:00
flexsurfer ad8d537b9c move status-im from utils (#18249) 2023-12-21 18:16:59 +01:00
Yevheniia Berdnyk 5ec5838657 e2e: added validation of encoded data in community and profile urls 2023-12-21 19:00:29 +02:00
Jamie Caprani 4c3d1667ca chore: add outline for transacation-progress page (#18217) 2023-12-21 15:37:18 +00:00
Anton Iakimov 2d22ed810c ci: fix android-e2e nightly builds (#18261) 2023-12-21 14:36:16 +01:00
e59e34d0da Communities: Present the list of airdrop addresses (#18189)
Co-authored-by: Flavio Fraschetti <frasqueti@gmail.com>
Co-authored-by: Ajay Sivan <ajayesivan@gmail.com>
2023-12-21 01:27:59 -08:00
Mohamed Javid 60dfd6ce78 Added assets skeleton in wallet home and account screen (#18197)
This commit:

- Updates the "skeleton-list" component to support the "assets" type
- Adds the assets skeleton to the assets tab in the wallet home and account screen

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-21 13:28:52 +05:30
Ajay Sivan 4ca533a534 Move disabled component tests outside of require block to fix lint messup (#18265) 2023-12-20 22:18:59 -08:00
Tetiana Churikova ec41b30794 e2e: updated profile view (#18203) 2023-12-20 21:29:08 +01:00
Ulises Manuel 7cf31651b3 [#18083] Implement Page top component (#18163)
* Add container style and fix `:auto-complete` parameter in address-input

* Add container style to recovery-phrase input

* Add container style and accessibility-label to search-input

* Add page-top component and tests

* Add page top preview
2023-12-20 13:17:39 -06:00
Ajay Sivan 04184b41e5 Wallet/Account Permissions Quo Component (#18224) 2023-12-20 07:54:13 -08:00
Lungu Cristian d0e624afd7 Biometrics button on login screen (#18106)
* feat: login with biometry when switching accounts

* feat: biometry button on login screen

* fix: addressed review comments

* fix: biometry button background

* ref: moved biometrics constants to main constants file

* fix: hide biometric button when not enabled

* feat: standard_auth blur prop

* fix: leftover rename
2023-12-20 17:15:51 +02:00
Volodymyr Kozieiev bf55a2a974 Activity tab on collectible page (#18220) 2023-12-20 14:53:29 +00:00
Omar Basem 8225d91ee0 Wallet: home top insets
Wallet: home top insets
2023-12-20 18:23:27 +04:00
Mohsen f631e1fe9d [#17393] feat: add new setting ui (#18118) 2023-12-20 17:03:49 +03:00
Andrea Maria Piana 32cfd214ca Add fetch messages behind a toggle & some advanced settings
This PR does a few things:

1) Add fetch messages implementation on any kind of chat. It's behind a
   toggle (on by default) as design is still unsure whether we want it,
   but it's very useful for debugging.
2) Allow setting light client from mobile

It also partially remove node config management from the clojure part,
as it's better if that's not explicitly managed by clients.
Some parts are still relying on it but they are not functional
(keycard), while others are still using it and will need to be updated
eventually (syncing), in order to get rid completely of node config.

Sets fleet to shards.test

https://github.com/status-im/status-go/compare/90c31afe...1adcf02f
2023-12-20 13:04:29 +00:00
flexsurfer 800ca19c08 move keycard native module, removed outdated code (#18252) 2023-12-20 13:53:53 +01:00
mmilad75andJamie Caprani b70493691c Implement Link Card component (#18080)
* add basics

* finalize component

* add test structure

* add tests

* fix lint issues

* move color to props

* move variants to props

* change file structure

* working

* finalize loader

* fix tests

* fix lint issues

* fix style issues

* fix typos

* resolve comments

---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-12-20 14:07:04 +03:30
Ajay Sivan a40862c5a9 Disable component tests that use wait-for helper function (#18243) 2023-12-20 02:26:57 -08:00
Parvesh Monu 17c442a373 Add placeholder illustration in jump-to screen (#18229) 2023-12-20 14:56:33 +05:30
Parvesh Monu c74461db3a remove unused react-native-intersection-observer library (#18230) 2023-12-20 14:21:07 +05:30
yqrashawnandYevheniia Berdnyk 4bc5efb855 fix: universal link regex (#18020)
Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2023-12-20 11:25:09 +08:00
Yevheniia Berdnyk 711e64bc75 e2e: android14 2023-12-20 01:51:58 +02:00
flexsurfer 602b27105b FINAL BOSS! rename status-im2 to status-im (#18241) 2023-12-19 20:59:07 +01:00
flexsurfer f89fd8ca54 move status-im under legacy (#18237) 2023-12-19 18:41:30 +01:00
flexsurfer 842203a4d0 move community code to status-im2 (#18218) 2023-12-19 15:59:50 +01:00
Siddarth KumarandAnton Iakimov 36c2f4706f Fix crash on x86_64 emulators (#17773)
In this commit we bump jenkins lib tag to enable building e2e with 64bit 

Co-authored-by: Anton Iakimov <yakimant@gmail.com>
2023-12-19 20:11:25 +05:30
Brian Sztamfater a4f99de8d5 feat: implement getSuggestedRoutes in the wallet Send Flow (#18104)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-12-19 02:59:58 -08:00
Parvesh Monu d40f70dca4 Optimize chat screen navigation view (#18055) 2023-12-19 16:01:13 +05:30
Alexander 1df96ae3e0 Invite friends (#17570) (#18124)
* Invite friends (#17570)

* Small update

* Update

* Fix
2023-12-19 10:36:49 +01:00
Siddarth Kumar 771fb111e6 make purge script more robust for Darwin (#18192)
The existing purge script for Darwin would fail and stop at many stages.

This commit makes the script more robust to certain failures that were observed and documented in https://github.com/status-im/status-mobile/issues/16404
2023-12-19 08:46:19 +05:30
Mohamed Javid da61233302 Wallet - Watched Account UI Updates (#18190)
This commit:

- Updates the account switcher in the "page-nav" component to use "account-avatar" instead of "dropdown"
- Updates the account avatar (on the top right corner of the account screen) to display the watched account variant correctly
- Updates the accounts list in the account switcher to display the correct background for the watched account with the eye icon

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-18 23:31:36 +05:30
Jamie Caprani 8a869be01c chore(wallet): add images to select address page (#18119) 2023-12-18 03:55:42 -08:00
Siddarth Kumar 8d0bb7ba9e fix: modify permissions of all files to read (#18214)
`react-native-reanimated` generates write protected files during build time which are problematic because we copy over `node_modules` from `nix` store and when replacing them with new node modules we are manually asked to confirm this overwrite.

This used to happen before with `.cxx` files but now it also happens with `.so` files. 

This commit fixes those permissions.

partially fixes #18211
2023-12-18 14:38:34 +05:30
Siddarth Kumar d9a242fcab set make run-metro target to clojure (#18215)
The metro terminal no longer needs to have `android` target anymore.
I had to do this in https://github.com/status-im/status-mobile/pull/17241 

This commit sets the target of metro terminal back to `clojure`.

I tested building `android` and `iOS` on my MacOS and on my linux machines and found no side effect.
Now metro terminal is fast again.
2023-12-18 14:03:24 +05:30
Parvesh Monu 8ba9f45e44 Upgrade react-native-reanimated to 3.6.1 (#18216) 2023-12-18 09:44:53 +05:30
frank e06d8cb106 fix: App gets stuck on syncing process screen when scanning QR code v… (#18140)
* fix: App gets stuck on syncing process screen when scanning QR code via recovered profile with different passwords

* update comment
2023-12-16 10:25:39 +08:00
Ibrahem Khalil f8e935c58d Close chat when closing group chat details (#18149) 2023-12-15 20:28:30 +02:00
Ajay Sivan 5507ae4fa2 Community: Request to join - Show addresses shared (#18180) 2023-12-15 09:13:32 -08:00
Volodymyr Kozieiev 2a5c102b1c Add collectible menu (#18185) 2023-12-15 15:37:08 +00:00
Parvesh Monu 9e27a36f5e Fix empty chat in opened on pressing hashtag in a community channel (#18111) 2023-12-15 18:14:08 +05:30
Ibrahem Khalil 07d8bf0d19 Share community via URL with any privileges (#18131) 2023-12-15 14:29:13 +02:00
Ajay Sivan 31dea1ca13 Quo Wallet/Required-Tokens Component (#18164) 2023-12-14 23:54:42 -08:00
Omar Basem 6f3bf98e83 Wallet: share address (#18121)
* wallet: share address
2023-12-15 08:11:06 +04:00
Mohamed Javid ed53fecf47 Added support for different currencies in wallet accounts price calculation (#18078)
This commit:

- adds support for different currencies in token price calculation in the new wallet UI.
- fixes the token units and prices displayed in the individual account screen

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-15 01:08:16 +05:30
flexsurfer 16a52b38e8 move input events (#18183) 2023-12-14 16:24:36 +01:00
Ajay Sivan c1a17d9d53 Show component name in quo preview header (#18175) 2023-12-14 04:43:06 -08:00
Lungu Cristian e790f7177d Chat fixes based on design feedback (#18059)
* fix: chat header position when only a few messages

* fix: system_message add contact icon margin

* fix: fixed last grouped message vertical padding

* fix: show message user info on long press of grouped message

* feat: added mute button to chat's channel-actions

* fix: no custom color in message list background

* fix: composer placeholder color (light theme)

* draft: fix android initial chat position

* fix: scrolling chat to top changed content size

* fix: chat message list header animation and behavior

* fix: android initial chat state

* fix: adjusted the chat avatar animation position

* fix: chat content change with keyboard visible

* ref: small refactor and added some notes

* fix: removed broken require

* fix: mute label for channel chat

* fix: merge conflict fixes
2023-12-14 13:03:21 +02:00
Mohamed Javid b668e4dea4 [Feature] Wallet - Account Switcher for send flow (#18100)
This commit:

- adds another variant ("Select account" bottom sheet) of the account switcher for wallet - send flow
- adds watch-only? key in the account to prevent repetitive account type checks across the codebase

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-13 22:49:54 +05:30
Parvesh Monu 879a82c35f Add comment related to refactoring (#18171) 2023-12-13 22:05:00 +05:30
flexsurfer 0eb424bb74 Feature/clean metro logs remove old wallet UI (#18165) 2023-12-13 16:11:30 +01:00
andrey cc4a732f60 temporary disable quo spec 2023-12-13 13:27:58 +01:00
Mohsen 835e97d672 [#17518] fix: try again when sync has error outside the onboarding flow (#17890) 2023-12-13 14:40:33 +03:00
andrey 406904025d remove extra sub 2023-12-13 12:15:57 +01:00
Alexander cb3a19f98f #17945 Scanned address persists in ETH address textbox after reopening 'Add address to watch' screen (#17957) 2023-12-13 10:03:42 +01:00
Omar Basem 424a7b17b0 Wallet: Token item fixes (#18136)
* Wallet: token item fixes
2023-12-13 11:29:57 +04:00
Yevheniia Berdnyk 3ddb76faed e2e: fixes 2023-12-13 02:28:24 +02:00
Jamie Caprani 457c42c5f0 chore(wallet): add flow for selecting own accounts in send flows (#18071) 2023-12-12 05:38:21 -08:00
Nikolay 7564113cb5 feat(wallet) - implement network configuration on an account (#17862) 2023-12-12 05:22:51 -08:00
BalogunofAfrica f1bcc6259a feat: finish enable notifications (#18084) 2023-12-12 13:46:01 +01:00
Parvesh Monu 0dd63490f8 Remove toggle for disabling shell navigation 2023-12-12 17:55:29 +05:30
Ajay Sivan e5179d308b Add Test Networks Enabled option in settings (#17879) 2023-12-12 00:36:43 -08:00
codemaster fc8590a05f fix: no avatar for the first message in 1-1 chat (#18099) 2023-12-11 12:13:16 -08:00
andrey e31db856df ops 2023-12-11 20:47:57 +01:00
flexsurfer 5570181896 move reactions events (#18150) 2023-12-11 17:50:52 +01:00
Siddarth Kumar 761a7df06f upgrade react-native to 0.72.5 (#17241)
This commit does many things :
- Upgrade `react-native ` to `0.72.5`
- Upgrade `react-native-reanimated` to  `3.5.4`
- Upgrade `react-native-navigation` to `7.37.0`
- `ndkVersion` has been bumped to `25.2.9519653`
- `cmakeVersion` has been bumped to `3.22.1`
- `kotlinVersion` has been bumped to `1.7.22`
- `AGP` has been bumped to `7.4.2`
- `Gradle` has been upgraded to `8.0.1`
- Android `CompileSDK` and `TargetSDK` have been bumped to 33
- `@react-native-async-storage/async-storage` has been upgraded to `1.19.3`
- `@walletconnect/client` has been nuked
- some of the old `react-native-reanimated` code has been nuked
- `react-native-keychain` fork has been replaced with `8.1.2`

- On Android we are currently relying on `Hermes` Engine.
- On iOS we are currently relying on `JSC`
- We are not enabling new architecture for now (I have plans for that in the future) ref: https://github.com/status-im/status-mobile/issues/18138

IOS only PR : https://github.com/status-im/status-mobile/pull/16721
Android only PR : https://github.com/status-im/status-mobile/pull/17062

- `make run-metro` now has a target of `android` which was `clojure` earlier, this will increase the time it takes to start metro terminal but this is needed otherwise you will get a nasty error while developing for android locally.
2023-12-11 21:22:23 +05:30
BalogunofAfrica f155d95d92 fix: 1:1 chat concerns (#17795) 2023-12-11 14:42:41 +01:00
yqrashawn 72f518d70b feat: add encoded data for profile sharing url (#18019) 2023-12-11 20:35:39 +08:00
frank 9c6584f91b ignore /.clj-kondo/rewrite-clj/rewrite-clj/config.edn which is generated by lint-fix (#18141) 2023-12-11 20:01:09 +08:00
Ajay Sivan 3cd230fed0 Addresses to share cards (#18123) 2023-12-11 00:53:14 -08:00
Ibrahem Khalil 1eb7504c12 Community requests to join when admin is offline (#17941) 2023-12-09 15:28:33 +02:00
Ulises Manuel 0ba057ae9d [#17965] Create token component (#18018)
* Create token component

* Replace token images by new token component

The new component is being used in the following components:
 - token-input
 - network-amount
 - token-tag
 - summary-tag
 - context-tag
 - token-value
 - token-network
 - preview-list

* Rename token image file: eth-token -> eth

* Remove resources/get-token function
2023-12-08 14:13:11 -06:00
Ulises Manuel 8b919f4058 [#17896] Raw balances using big number (#17920)
* Add `utils.money/add` version able to work with `nil`s

* Store token raw-balance as big-number

* Improve account balance calculations using `utils.money` existing functions

* Update `:wallet/tokens-filtered` sub

* Make `prettify-balance` able to work with bignumbers
2023-12-08 13:40:26 -06:00
flexsurfer f79860fb97 move blob to rn, remove unused code, move images events to status-im2 (#18117) 2023-12-08 17:27:21 +01:00
Parvesh Monu 7a6f05a440 fix sometimes add contact screen is closed by itself after scanning QR code (#18101) 2023-12-08 18:53:56 +05:30
Ulises Manuel de4e233884 [#17974] text combinations - username component (#17987)
* Move docstring to be available while using `colors/resolve-color`
* Add text combinations - username component and tests
* Add username related svg icons
2023-12-07 17:44:24 -06:00
Jamie Caprani 55a99da2f5 feat: enable biometrics for standard-auth (#17992) 2023-12-07 08:44:16 -08:00
Yevheniia Berdnyk 6093d56c90 e2e: increased wait time for PN and CR 2023-12-07 18:04:45 +02:00
Parvesh Monu 9cf4556b9d fix app is not opened on the last viewed chat after reopening (#18090) 2023-12-07 17:44:13 +05:30
flexsurfer 536ebf56cb remove obsolete code (#18094) 2023-12-07 11:40:23 +01:00
Siddarth Kumar 3ad345519b nix: bump clang to 15 & patch Glog for CC,CXX flag (#18108)
After upgrading MacOS to Sonoma and Xcode to 15, pod install stage would fail with clang errors.
Turns out that react-native's configure glog script sets 2 additional flags, CC and CXX which conflicts with flags already set in nix iOS shell.

In this commit we :

- bump clang from 10.0.0 to 15.0.7
- patch glog configure script to avoid setting those flags

This fixes the iOS builds.
2023-12-07 15:36:08 +05:30
Omar Basem dc587e493f Wallet: generate new keypair UI (#18045)
* feat: new keypair flow ui
2023-12-07 09:43:36 +04:00
Omar Basem f692ae2222 Wallet: ENS (#18000)
* wallet: ens
2023-12-07 08:00:56 +04:00
frank aa89ebdb93 fix: Marking AC notification as read does not affect correspondent message in chat (#18058) 2023-12-07 10:16:25 +08:00
Brian Sztamfater 198a4d74a5 feat: transaction confirmation page ui (#17812)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-12-06 20:16:08 -03:00
Yevheniia Berdnyk 3b5fe36717 e2e: added test for edit/delete message when offline 2023-12-06 23:19:17 +02:00
Icaro Motta 03444ae4ff Request to join screen - show modal title and community context tag (#18077) 2023-12-06 18:10:47 -03:00
Icaro Motta 390bbdb6ec Add missing clj-kondo linter for nubank/matcher-combinators (#18091) 2023-12-06 13:39:47 -03:00
Flavio Fraschetti 2bc7b62324 Communities - Display community rules at request to join (#18082)
This update introduces a feature that displays community rules to users as they join.
2023-12-06 13:21:17 -03:00
Yevheniia Berdnyk 4376ee8908 e2e: disabled checks because of issues with restored contacts and channel links 2023-12-06 16:57:31 +02:00
Roman Volosovskyi 195f0cfa40 Mark mnemonic as shown on revealing it to the user 2023-12-06 13:51:38 +01:00
Omar Basem ab61d8d5c0 Wallet: Set color and emoji (#17906)
* wallet: set color and emoji
2023-12-06 16:02:53 +04:00
mmilad75 aaf0b8e423 Implement transaction progress component (#17933)
* copy codes

* refactor preview

* refactor deprecated codes in view

* change condition structure in view-internal

* comment unused codes

* refactor title

* fix title style

* fix icon style

* fix context tag

* fix icon and row

* refactor icon-internal

* rename network-state and network-type

* fix progress-container style

* fix progress-box-container style

* fix progress container naming and style

* change progress-bar component

* fix progress box component

* convert to functional component and bring back the animation

* fix progress box for arbitrum-optimism network

* fix text-steps

* fix status-row

* refactor code style

* refactor get-network-text

* resolve comment

* add translations

* remove btn-title prop

* fix dark mode border color

* fix dark mode icon color

* move interval to preview

* add tests ns

* add tests

* fix lint issues

* fix rendering issue

* fix lint issue

* add arbitrum and optimism as separate networks

* create const for progress percentage

* fix progress bar component and preview

* refactor text-steps

* refactor names

* fix lint issues

* rename arbitrum-progress-percentage and optimism-progress-percentage

* update tests

* convert hard-coded color to customization-color

* fix progress_bar tests

* separate state for each network

* add progress percentage for each network and refactor params of functions

* separate epoch number for  each network

* update tests

* fix lint issues

* refactor codes

* fix lint issues

* resolve comments

* add confirmation progress

* use confirmation-progress component in transaction-progress

* fix preview

* add tests

* fix lint issue

* resolve comment

* refactor networks

* change sending state style

* update tests

* fix lint issues

* remove unused code

* add helper for calculate counter step

* add assoc-props to view-networks

* change text-internal props order

* fix colors/resolve-color usage

* refactor view codes

* add get-networks to preview

* add max-value to progress bar style

* remove threading macros in the previews

* remove inline functional components in the previews

* remove optimism-arbitrum checks in the view

* fix lint issues

* add max-progress and min-progress to confirmation-progress

* refactor text-steps

* fix counter structure in transaction-progress

* fix counter structure in confirmation-progress

* fix resolve-color usage

* fix lint issue

* fix tests

* resolve comments

* fix color issue

* fix margins

* fix lint issue
2023-12-06 14:09:52 +03:30
BalogunofAfrica 7e14846f0b fix: use custom color for confirm select (#18068) 2023-12-06 05:10:08 +01:00
frank 5ebd133c63 group ens names with chain-id (#18001) 2023-12-06 10:04:39 +08:00
Icaro Motta 563f1c588d Improve test failure readability (#18049)
Problem: failed equality checks as in "(is (= expected actual))" will give a
single, long line of output that for anything but the simplest data structures
is unreadable by humans, and the output doesn't give a useful diff.

Solution: use library https://github.com/nubank/matcher-combinators and its test
directive "match?" which will pinpoint where two data structures differ. Then,
instead of "(is (= ...", use "(is (match? expected actual)". It works
beautifully.

The library offers other nice matchers, but the majority of the time match? is
sufficient.

Can we use another test runner like Kaocha? kaocha-cljs2
(https://github.com/lambdaisland/kaocha-cljs2) would be able to print better
test errors out of the box, among other features, but I have no clue if it would
work well or at all in our stack (in theory yes, but it's a larger piece of
work).
2023-12-05 17:20:54 -03:00
Yevheniia Berdnyk 6b612588c4 e2e: skipped checks with bugs 2023-12-05 20:54:09 +02:00
Parvesh Monu 6ef113e821 fix messages are marked as read automatically in 1-1/group chats after opening a link (#18066) 2023-12-05 22:27:03 +05:30
Jamie Caprani c25f44c2a0 chore: make new wallet UI default, move set currency to legacy settings, remove add eth network on wallet init (#18027) 2023-12-05 06:35:27 -08:00
frank d039864dca fix: Duplicate 'Contact Added' Notifications When Pair-Device User Accepts Request (#17975)
https://github.com/status-im/status-go/compare/4cc53630...d7e7792b
2023-12-05 19:12:31 +08:00
Alexander a4f1f23d3c Style fixes for pinned messages (#18061)
* Style fixes for pinned messages

* Small code style update
2023-12-05 11:31:45 +01:00
flexsurfer fe20fa4e99 move transport (#18062) 2023-12-05 09:35:17 +01:00
Omar Basem 5c30fd847a Wallet: account real data (#17821)
* wallet: account real data
2023-12-05 10:56:37 +04:00
John Ngei 64de325678 update scan qr code page
* update scan qr code page

* update scan qr code page

* fixed: populate the search input with new identity

* dismiss keyboard when scan qr page is activated
2023-12-05 02:56:27 +03:00
Volodymyr Kozieiev 489557c1a3 Match the changes in collectibles api in status-go (#18033) 2023-12-04 16:44:56 +00:00
Icaro Motta 439fdfa12c Rename effects to :effects.*/* and move them to separate namespaces (#18047) 2023-12-04 12:55:57 -03:00
Mohsen f695dbf115 [#17909] fix: unhandled error when app launched in offline mode (#17973) 2023-12-04 17:48:45 +03:00
flexsurfer 7c45b1e075 update deps (#18056) 2023-12-04 14:49:51 +01:00
flexsurfer 64453716b0 rename onboarding 2 (#18060) 2023-12-04 14:49:05 +01:00
Mohamed Javid 56d135f1f8 Implemented Wallet - Account Switcher (#18003)
This commit:

- Implements the Wallet Account Switcher for easy switching between wallet accounts
- Updates the About tab in the accounts screen to display the correct account address and derivation path along with the profile.
- Updates the account-item component to pass the state from the parent and refactors the depreciated color functions
- Moves the handle-bar in the bottom sheet to a standalone component 
- Adds customization-color in account-origin component

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-04 18:47:03 +05:30
Mohsen a7178a4950 [#17572] fix: 'Join Community' notification is not getting dismissed (#17834) 2023-12-04 15:24:06 +03:00
Siddarth Kumar 3cd302b271 fix: get rid of :redef-in-file warning (#18053) 2023-12-04 14:18:43 +05:30
yqrashawn 1e797273b6 fix: change system time backward break image server (#17989) 2023-12-04 16:12:50 +08:00
frank 8ff67bf344 fix: Cannot mark as read messages in communities (#18029)
* fix: Cannot mark as read messages in communities

* rename messenger-response to _messenger-response
2023-12-02 09:05:21 +08:00
Ulises Manuel 3fee21c73a [#17923] text combinations - standard title component (#17939)
* Simplify tag components by turning them to from-1

* Add standard-title component, preview screen and tests
2023-12-01 15:49:49 -06:00
Jamie Caprani f9f328107d chore: add ability to create watch address & some related ui changes on account page (#17868) 2023-12-01 04:29:01 -08:00
Yevheniia Berdnyk 04dee8be45 e2e: updated data for waku backup test 2023-12-01 12:28:26 +02:00
Alexander 52f7fc59ee Updated data-item, monospaced & aligned address (#18008)
* Upd

* Fix
2023-12-01 10:03:08 +01:00
Mohamed Javid b5202b4d28 [Feature] Added activity check on entered watch address (#17970)
This commit 
 - implements the activity check for the entered watch address.
 - added warning colors
 - fixes bottom inset in add address to watch screen

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-12-01 00:28:09 +05:30
Andrea Maria Piana 210cf64ce0 Fix panic syncing community token gated
https://github.com/status-im/status-go/compare/8a4c2d8d...8206ffc7
2023-11-30 13:49:47 +00:00
Lungu Cristian ed270b2162 Enabling biometry without password during sync (#17960)
* feat: added migration for the keychain hashed password

* feat: added sync biometry without password entry

* fix: biometry typo from develop

* ref: moved migration side-effects outside the event

* ref: some renaming for keychain migration

* ref: addressed @cammellos' review comments

* ref: removed unnecessary anon fn

* fix: addressed @ilmotta's review comments

* ref: removed theme from enable-biometrics

* ref: addressed J-Son89's review comments

* test: added tests for mask-data and hash-masked-password

* test: added schema to hash-masked-password and fixed test

* fix: forgot the threading

* ref: improved the masked data schema

* fix: no biometry error when canceled by user

* fix: biometry error wasn't propagated during login

* fix: alert dismiss button not passed properly

* fix: show biometrics NOT_ENROLLED error only once

* lint: removed unused require
2023-11-30 13:40:29 +02:00
Andrea Maria Piana d412fa3c63 Set up skeleton for communities request to join 2023-11-30 09:49:43 +00:00
Yevheniia Berdnyk b7f675aa5c e2e: fix for deep links test 2023-11-30 01:09:42 +02:00
Volodymyr Kozieiev bfa23c182f Add requirement for component tests (#18015) 2023-11-29 18:50:49 +00:00
Mohsen 6b721265af [#17986] feat: implement new settings ui, header section (#17991) 2023-11-29 20:54:11 +03:00
Jamie CapraniandRende11 589a581298 chore(wallet): add ui for send page (#17786) - merged in (#18017)
---------
Co-authored-by: Rende11 <artamonovn@gmail.com>
2023-11-29 05:12:21 -08:00
Yevheniia Berdnyk 0546a87e9a e2e: deep links tests added 2023-11-29 14:09:31 +02:00
Parvesh Monu e5ce7fed3a fix position of the last item in the community chat list and the position of the jump-to button (#17999) 2023-11-29 16:45:30 +05:30
Siddarth Kumar 58d5c3d7a5 don't restrict diawi upload for iOS release builds (#18016)
This commit removes the restriction of uploading iOS release builds to Diawi

Its helpful to have the status app uploaded to Diawi to test release builds on our iPhones.

The installer is very straightforward and makes life easier when we want to try out release builds.
2023-11-28 22:46:58 +05:30
Ibrahem Khalil 6ccea1ddb2 Continue button is invisible behind keyboard in Add Address To Watch … (#17940) 2023-11-28 18:38:06 +02:00
Alex Tumanov a9a17aaae8 Implement dropdown-input based on the original dropdown component (#17927) 2023-11-28 15:21:15 +00:00
Andrea Maria Piana 6d69c278cd Update key in tests 2023-11-28 10:57:10 +00:00
Yevheniia Berdnyk c7e230d070 e2e: changed test order 2023-11-28 12:05:47 +02:00
frank d309aa366d chore: specify light client mode for wakuv2 (#18002) 2023-11-28 14:48:58 +08:00
Jamie Caprani f124ca4252 chore(wallet): add common page-nav component for account switcher (#17946) 2023-11-27 09:16:31 -08:00
Brian Sztamfater 1385e27cf4 feat: select asset screen ui (#17780)
feat: select asset screen ui

Signed-off-by: Brian Sztamfater <brian@status.im>
2023-11-27 11:03:02 -03:00
Volodymyr Kozieiev f82d28c6c9 Show network info on collectible info page (#17980) 2023-11-27 12:29:12 +00:00
Omar Basem a2856cf1c3 Wallet: Emoji picker performance (#17891)
Wallet: Emoji picker navigation perf
2023-11-27 09:57:29 +04:00
Yevheniia Berdnyk e6a7c420a2 e2e: APK upload time limit increased 2023-11-23 12:34:30 +02:00
alwx 671aa67002 Detect image dimensions correctly 2023-11-23 09:28:38 +00:00
Omar Basem dbc8df251a Wallet: Keypair follow up (#17953)
* Wallet: Keypair follow up
2023-11-23 10:00:22 +04:00
Ulises Manuel 279993b658 Add channel-name component (#17903) 2023-11-22 15:54:52 -06:00
Volodymyr Kozieiev 0c1a18b444 Connect collectible overview page to backend (#17884) 2023-11-22 19:40:26 +00:00
Omar Basem 73e9f67dbd Wallet: illustrations (#17931)
* wallet: illustrations
2023-11-21 10:55:46 +04:00
Jamie Caprani 86c5505c94 chore(wallet): hook up qr scanner on watch only flow. (#17829) 2023-11-19 16:26:00 -08:00
Icaro Motta c1dcd7a764 Introduce malli library (#17867)
This commit is the foundational step to start using malli
(https://github.com/metosin/malli) in this project.

Take in consideration we will only be able to realize malli's full power in
future iterations.

For those without context: the mobile team watched a presentation about malli
and went through a light RFC to put everyone on the same page, among other
discussions here and there in PRs.

To keep things relatively short:

1. Unit, integration and component tests will short-circuit (fail) when
   inputs/outputs don't conform to their respective function schemas (CI should
   fail too).
2. Failed schema checks will not block the app from initializing, nor throw an
   exception that would trigger the LogBox. Exceptions are only thrown in the
   scope of automated tests.
3. There's zero performance impact in production code because we only
   instrument. Instrumentation is removed from the compiled code due to the
   usage of "^boolean js.goog/DEBUG".
4. We shouldn't expect any meaningful slowdown during development.

**What are we instrumenting in this PR?**

Per our team's agreement, we're only instrumenting the bare minimum to showcase 2 examples.

- Instrument a utility function utils.money/format-amount using the macro
  approach.
- Instrument a quo component quo.components.counter.step.view/view using the
  functional approach.

Both approaches are useful, the functional approach is powerful and allow us to
instrument anonymous functions, like the ones we pass to subscriptions or event
handlers, or the higher-order function quo.theme/with-theme. The macro approach
is perfect for functions already defined with defn.

**I evaluated the schema or function in the REPL but nothing changes**

- If you evaluate the source function, you need to evaluate schema/=> or
  schema/instrument as well.
- Remember to *var quote* when using schema/instrument.
- You must call "(status-im2.setup.schema/setup!)" after any var is
  re-instrumented. It's advisable to add a keybinding in your editor to send
  this expression automatically to the CLJS REPL, or add the call at the end of
  the namespace you are working on (similar to how some devs add "(run-tests)"
  at the end of test namespaces).

**Where should schemas be defined?**

For the moment, we should focus on instrumenting quo components, so define each
function schema in the same namespace as the component's public "view" var.

To be specific:

- A schema used only to instrument a single function and not used elsewhere,
  like a quo component schema, wouldn't benefit from being defined in a separate
  namespace because that would force the developer to constantly open two files
  instead of one to check function signatures.
- A common schema reused across the repo, like ":schema.common/theme" should be
  registered in the global registry "schema.registry" so that consumers can just
  refer to it by keyword, as if it was a built-in malli schema.
- A common schema describing status-go entities like message, notification,
  community, etc can be stored either in the respective
  "src/status_im2/contexts/*" or registered globally, or even somewhere else.
  This is yet to be defined, but since I chose not to include schemas for them,
  we can postpone this guideline.
2023-11-18 11:04:48 -03:00
Icaro Motta 17ebedd6b8 Fix: resolve our Clojure source dependencies first in the classpath (#17919)
In PR https://github.com/status-im/status-mobile/pull/17867 we have a namespace
named schema.core, but this namespace is taken by library prismatic/schema
already (see https://github.com/plumatic/schema/tree/master/src/cljc/schema), a
library used by our direct dependency on bidi 2.1.6. This leads to a broken
build where the ClojureScript compiler reports undeclared vars
(https://clojurescript.org/reference/compiler-options#warnings).

We change the order Java resolves dependencies via the classpath mechanism. We
now first resolve our own Clojure sources, and then project dependencies.
2023-11-18 08:50:11 -03:00
Jamie CapraniandUlises M 2e2d15adfb chore: add floating button page component (#17737)
Co-authored-by: Ulises M <ulises.ssb@hotmail.com>
2023-11-17 09:16:55 -08:00
Yevheniia Berdnyk 1d1d586223 e2e: added back status link opening 2023-11-17 18:09:57 +02:00
John Ngei 88dd5e04bb enable biometric when user signs in with syncing (#17627) 2023-11-17 17:58:51 +03:00
Lungu CristianandIbrkhalil 8f8c8dede2 Composer collapsing when editing canceled/done (#17785)
* fix: composer height when entering and canceling edit

* fix: blur the composer input when canceling edit

* fix: focusing animation and composer height after blur

* fix: input height when canceling edit while unfocused

* ref: removed arbitrary keyboard check

* fix: moved edit-mentions logic to use-edit to fix unresolved mention

* fix: composer edit should put the cursor at the end

* fix: (potentially) fixing the mention not resolved during edit

* fix: emoji-kb handler changing the height when default kb appears

* Fix text content when editing and reentering chat

* prevent composer when focusing on opening chat with edit/reply

* clean

* Clauxx comments

* Apply for reply

* Lintil soup = yummy

* refactor variable name

* Extract the focusing logic from the data setting logic

* Edge case

* fix: composer mention key & edit re-enter issues

* fix: reply cancel input blur and smooth reply focus

---------

Co-authored-by: Ibrkhalil <vampirekid017@gmail.com>
2023-11-17 11:32:31 +02:00
Yevheniia Berdnyk 2e0643fabe e2e: fixes 15.11 2023-11-16 15:54:35 +02:00
Flavio Fraschetti ec4046e543 Hide channel list at token-gated communities overview (#17901)
This commit hides the categorized channel list for token-gated communities overview.
2023-11-16 10:46:17 +00:00
yqrashawn 4a44161163 chore: lint require i18n-resources first in status-im2.core (#17905) 2023-11-16 11:10:40 +08:00
Icaro Motta b9353b1ccd Fix: actually run integration tests (#17900)
Integration tests weren't running since https://github.com/status-im/status-mobile/pull/17762 was merged a week ago.

This commit also allows individual integration test namespaces to run if you change the :ns-regexp option in shadow-cljs. This is quite handy, since they are relatively slow.

Fixes https://github.com/status-im/status-mobile/issues/17895
2023-11-15 19:51:09 -03:00
jakub 5ceb7c2215 tests/appium: use requests for fetching APK
Also add more context for the error.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-15 18:08:11 +01:00
jakub 2043e9353b tests/appium: refactor conftest.py to be more readable
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-15 18:08:10 +01:00
flexsurfer 7153e4da48 [#17854] [IOS] The tutorial video animation keeps playing after openi… (#17915) 2023-11-15 16:24:27 +01:00
Icaro Motta c7cba5b4d3 Fix: unable to join token-gated communities (#17894)
Fixes the bug by explicitly passing all available addresses to be revealed
to wakuext_requestToJoinCommunity and picking up the first available address
as the airdrop address. This is a temporary solution while we work on the
feature to allow users to choose which addresses to expose.

Fixes https://github.com/status-im/status-mobile/issues/17861

*Areas that may be impacted*: join community flows.

    ----------------------------------------------------------------------
    Community "Request to join" option is enabled.
    User holds more than X ETH.
    Anyone who holds <X> ETH is allowed to Become member in <COMMUNITY>.
    
    Expected: request to join is received by desktop client and accepted,
    mobile user joins the community.
    ----------------------------------------------------------------------
    
    ----------------------------------------------------------------------
    Community "Request to join" option is enabled.
    User holds less than X ETH.
    Anyone who holds <X> ETH is allowed to View and post in <CHANNEL>.
    
    Expected: request to join is received by desktop client and accepted, mobile
    user joins the community, but can't post in <CHANNEL>.
    ----------------------------------------------------------------------
    
    ----------------------------------------------------------------------
    Community "Request to join" option is enabled.
    No token permissions.
    
    Expected: request to join is received by desktop client and accepted,
    mobile user joins the community.
    ----------------------------------------------------------------------
2023-11-15 06:39:12 -03:00
Ulises Manuel 45df308dd0 [#17823] Refactor tokens data app-db (#17880)
* Refactor edit-account view and events:

 - Fix `(fn [])` code style.
 - Avoid overriding clojure.core/type by destructuring the `:type` key.
 - Split the toast callback to a different function.
 - `:wallet/save-account` receives `:on-success` instead of `:callback` to improve readability.

* Refactor app-db for `:wallet/tokens` & `:wallet/tokens-loading?`

- Remove the root sub `:wallet/tokens-loading?`, now it's in app-db in `[:wallet :ui :tokens-loading?]`.
- Remove the root subs `:wallet/tokens`, now the value is returned along with the account data by the sub
  `:wallet/accounts`, it's stored in app-db in `[:wallet :address "0x..." :tokens]`.
- Fix the format of the token data returned by the endpoint `"wallet_getWalletToken"` and the fn `js->clj`,
    - Addresses are no longer keywords (since keywords mustn't start with a number).
    - Keys are now kebab-case.
    - Chain-ids are no longer keywords, now they are integers.
- Update tests.

* Move logic to calculate `:wallet/balances` and change value returned

- Move logic to `status-im2.contexts.wallet.common.utils`
- The `:wallet/balances` value returned by the sub had the following structure:
  [{:address "0x1...", :balance 12345}
   {:address "0x2...", :balance 67890} ...]
  This required a helper function to get the balance for an address (`get-balance-by-address`)
  It has been changed to a map:
  {"0x1..." 12345
   "0x2..." 67890, ...}
  So now we don't need a helper function (just the hashmap itself or `clojure.core/get`).
- Because of the previous change, now the `get-balance-by-address` has been removed.
- The function `get-account-by-address` has zero uses, so it has been removed.
- The test for the sub has been updated.

* Create sub `:wallet/account-cards-data`

This sub returns a vector of maps to render the account cards in the wallet page.
This logic was previously in the `view` namespace, but it was completely calculated from
the subs `:wallet/accounts`, `:wallet/balances` and `:wallet/tokens-loading?`, so it was
clear that's a derived value.
2023-11-14 10:54:26 -06:00
Brian Sztamfater a74c934936 feat: implement summary tag component (#17858)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-11-14 11:50:58 -03:00
andrey c150070cfe remove empty files 2023-11-13 14:50:45 +01:00
Ibrahem Khalilandbalogunofafrica 1b745857e8 [17634] Start rendering syncing UI ASAP (#17755)
* Start rendering syncing UI ASAP

* Consolidating values

* fix: show syncing ui immediately

* fix: error validation

---------

Co-authored-by: balogunofafrica <balogunakanbi.k@gmail.com>
2023-11-13 12:15:53 +01:00
Omar Basem 87c9946092 Wallet: Keypair Screen (#17775)
* wallet: keypair screen
2023-11-13 14:43:43 +04:00
Omar Basem f3e47ac1a2 Wallet: watch address - select random color (#17859)
Wallet: randomize color picker
2023-11-13 14:25:44 +04:00
Yevheniia Berdnyk 83a7402210 e2e: fix for terminated session 2023-11-13 02:27:36 +02:00
Siddarth Kumar 3c297bf5b4 chore: ignore auto generated lint-fix files (#17783)
We get these 2 files auto generated locally as part of make lint-fix

`.clj-kondo/taoensso/encore/config.edn`
`.clj-kondo/taoensso/encore/taoensso/encore.clj`

We don't need them checked in its fine if they're ignored.
This commit adds these folders to `.gitIgnore`

- `.clj-kondo/taoensso/`
- `.clj-kondo/babashka/`
2023-11-10 18:12:03 +05:30
yqrashawn b4919261cb fix: nav conflicts when return from bg from link (#17853) 2023-11-10 09:15:02 +08:00
Icaro Motta ffeb06f36c Communities - Token gated community fixes (#17799)
- Fix: when there are only channel token permissions, don't show the text "You
  hold 0 of these:" because there are no requirements to show.
- Fix: do not show channel token permissions when the user wants to join a
  community. In other words: only "become admin", "become member", "become token
  master", and "become token owner" are taken in consideration.
- Fix: render correct channel lock icon in 3 states (no permission, with
  permissions and locked and with permissions and unlocked).
- Fix: Previously, before having joined a community, all channels had a lock
  icon closed, now the lock icon is only closed when there's a permission set,
  otherwise no icon is shown (the lock is never open before the user joins the
  community).
- Fix: small UI spacing fix, only display community tags component when there's
  at least one tag.
- Bonus fix: community Overview and Discover screens top bar had a regression,
  see the screenshots.

Fixes https://github.com/status-im/status-mobile/issues/17267

### Areas that may be impacted

- Community overview, before and after joining a community.

### Steps to test

Code tested using the Goerli network and with the testnet flag enabled in the
Desktop client. Out of scope: minted tokens.
2023-11-09 20:19:26 -03:00
flexsurfer 69f87ce8b0 [#17611] move status-im.utils.universal-links.core (#17855) 2023-11-09 21:22:15 +01:00
Andrea Maria Piana 27e27aa113 Add contribution status-go doc 2023-11-09 15:34:20 +00:00
Ajay Sivan e48a5c4e83 Quo community-stat component (#17851) 2023-11-09 04:39:42 -08:00
Mohamed Javid 595b1cfc40 [Fix] Move category selector height to emoji picker (#17844)
This commit moves the emoji categories selector height from the "showcase-nav" component to the "emoji-picker" as we should not use any "quo" ns (except "quo.core") inside the "status-im2" ns.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-11-08 23:56:56 +05:30
Volodymyr Kozieiev e573fc914a Respect status-go API changes for collectibles request (#17857) 2023-11-08 18:01:33 +00:00
Yevheniia Berdnyk 4eda8bb6b3 e2e: temp fix for opening a link in Status 2023-11-08 18:47:56 +02:00
Volodymyr Kozieiev bd6a9e577c Updated to status-go with fixed timeouts (#17831) 2023-11-08 15:08:52 +00:00
Mohamed Javid 6bb1779723 Implement edit account and refactor wallet accounts events & subs (#17798)
This commit updates the following:

- Allow users to create new wallet accounts without having to re-login (latest account data is fetched immediately)
- Updates the max length of the wallet account name to 20
- Updates the account cards in the wallet home screen to render the actual account colour
- Updates the (individual) account screen to show the correct color, emoji, name and address
- Allows users to edit account name, colour and emoji
- The rest of the wallet screens would see the updated account information immediately
- Fixes the color (uses profile color) of the context tag and button color in the authentication (enter password) bottom sheet
- Fixes the overflowing of the "+" card in the wallet home when there are two or more accounts.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-11-08 20:09:32 +05:30
codemaster 742c451000 fix: message content text alignment and spacing (#17606) 2023-11-08 05:40:26 -08:00
Alex Tumanov 569036c1d8 Add a button to address watch screen; (#17781)
Add account creation screen

remove icons

remove extra utility and create a new one that would use conventional way of getting an emoji

fix lint

Use button component instead of bottom-actions

Provide global customization color to buttons

Use conventional approach to extract account name

Move to another address

Move to another namespace

Refactor bottom-actions to have button props in maps

Update doc with new icon location

Add spaces between styles

Work on pr comments

Use :on-change-text instead of :on-change for input component
Subscribe to :profile/customization-color directly
Use bottom button from the create-or-edit-account wrapper

Remove extra code
Sort requires

Move ns to proper fileˆ

Fix styles
2023-11-07 16:40:24 +00:00
Brian Sztamfater 188f7f461e feat: address (mocked) suggestions (#17579)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-11-07 12:04:37 -03:00
Yevheniia Berdnyk 422004f146 e2e: fix for creating a new user 2023-11-07 14:43:30 +02:00
David Martin cb005afff2 Split up integration tests (#17762) 2023-11-07 16:47:02 +05:30
Dmitri Akatov a5bb95cd18 add translation linting to the "make lint" pipeline. (#17820) 2023-11-07 11:33:59 +01:00
frank 20ac5cfa41 use timesource(synced) to generate/validate server cert time (#17771) 2023-11-07 16:36:27 +08:00
Dmitri Akatov 1755780950 make clj-kondo hook's name match the fully qualified name of the symbol it's linting (#17817) 2023-11-07 07:10:36 +01:00
Omar Basem a6d7502455 Wallet: bridge screen (#17758)
* wallet: bridge screen
2023-11-07 07:22:38 +04:00
yqrashawn 701df811b0 feat: lint direct require quo component outside src/quo (#17828) 2023-11-07 10:21:58 +08:00
Dmitri Akatov b47c97a4fd Mark utils.re-frame/defn as deprecated (#17788)
Also suggest to use utils.re-frame/reg-event-fx instead of utils.re-frame/defn
2023-11-06 19:09:40 -03:00
Siddarth Kumar 4ac7f0bdda update docs & makefile for iPhone 13 (#17784)
The design team has now decided to keep iPhone 13 as the baseline standard instead of iPhone 11 Pro.

This commit updates the docs on pixel perfection and starting guide.
We also update the default simulator to iPhone 13 for `make run-ios`
2023-11-06 23:55:06 +05:30
Volodymyr Kozieiev 4490676398 Collectibles list on accounts page connected to backend (#17751)
* Collectibles list displayed
2023-11-06 16:39:49 +00:00
Ibrahem Khalil ee019f79f2 Show success toast when user joins community. (#17815) 2023-11-06 16:22:15 +02:00
Alexander dc571b6067 Getting rid of status-im.multiaccounts.core + removing three word random names (#17384) 2023-11-06 14:38:14 +01:00
Dmitri Akatov fb8a7d2d8e proper use of ens-username-owned-continue translation key (#17819) 2023-11-06 09:00:00 +01:00
Dmitri Akatov ac8458d304 remove outdated i18n-test namespace (#17816) 2023-11-06 08:59:34 +01:00
Dmitri Akatov c13b86b882 add Goerli network English translation (#17818) 2023-11-06 07:34:41 +01:00
Siddarth Kumar 609eb04cff stop package bot from complaining (#17810)
fix for warning : Address should end with .git for consistency.
2023-11-04 11:58:19 +05:30
Yevheniia Berdnyk f1de077d9d e2e: making 2 tests independent 2023-11-03 18:02:16 +02:00
Ajay Sivan aa6d44bee1 Adapt to status-go API Changes for Request to Join Community Flow (#17800) 2023-11-03 08:57:56 -07:00
jakub 2a4bb84e35 fix script path for resolving ANDROID_ABI_INCLUDE
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-03 15:10:08 +01:00
Ibrahem Khalil 132e53844c New TopBar animation (#17582) 2023-11-03 14:20:10 +02:00
Mohsen 8d3558f1c3 [#17647] fix: generate keys title overlap (#17752) 2023-11-03 14:35:42 +03:00
Alex Tumanov 0eef5204c8 Implement wallet user avatar to match designs (#17703) 2023-11-02 20:29:09 +01:00
Mohamed Javid 9a5ed62e1f [Refactor] selectors component (#17763)
This commit updates the following in the selectors component:

- Introduces the "type" prop (Figma 1-1 property) to the selectors component for easy switching between the selector types while using it on lists.
- Updates the component styles to use the "resolve-color" function as the "custom-color" function is deprecated
- Updates the component usage across the codebase

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-11-02 23:54:59 +05:30
flexsurfer e6068fd4c1 small ns changes (#17793) 2023-11-02 14:23:34 +01:00
Yevheniia Berdnyk 579b382c44 e2e: fix for edit message with a mention 2023-11-02 12:38:26 +02:00
yqrashawnandpavloburykh 859cb19886 fix(universal-link): more new link format, handle old link format (#17721)
Co-authored-by: pavloburykh <pavlo@status.im>
2023-11-02 15:31:49 +08:00
Omar Basem 2d92b515b8 Documentation: composer (#17756)
* Docs: composer
2023-11-02 08:53:22 +04:00
Icaro Motta 972e1eee01 Composer - Fix conflicting touchable and gesture (#17680)
Fix the unreliable swipe behavior of link previews in the chat composer. In many
occasions, we noticed the horizontal scroll wasn't being triggered properly or
not at all. In other occasions, the swipe gesture would incorrectly register a
press on the parent `Touchable` component.

Fixes https://github.com/status-im/status-mobile/issues/16599
2023-11-01 13:31:14 -03:00
Ibrahem Khalil 6c2b437e62 Follow up to fix color picker on wallet (#17748) 2023-11-01 15:18:53 +02:00
Nikolay 94a3e266a9 Edit derivation path (#17741) 2023-11-01 14:04:21 +01:00
Lungu Cristian 716007dc3c fix: removed bounce from lightbox text-sheet (#17664)
fix: improving UI and gestures

fix: expanding on press now works reliably

fix: center text and disable gestures for short messages

feat: added styling for one-lined messages

fix: small opacity fix

ref: small condition change

fix: horizontal swiping being unreliable with vertical scrolling

ref: reusing shared value from lightbox animations

fix: text-sheet bottom gradient not visible on android

fix: addressed qa issues 1,2,4

fix: zoomable-image stuck if moved vertically when full screen

clean: removed unused var

chore: removed unused require

fix: don't allow returning text-sheet down and up in one move

fix: text-sheet bar styling was wrong

fix: adjusted gradient animation with designs

fix: text-sheet bar opacity
2023-11-01 13:20:10 +02:00
Mohsen 233d1b3261 [#17288] refactor: migrate previews to new api (#17776) 2023-11-01 11:31:32 +03:00
Yevheniia Berdnyk 25381b601f e2e: test for sending image with camera 2023-10-31 23:23:04 +02:00
Ulises Manuel 4a874ce48d [#17023] Share qr code variants (#17736)
* Align docstring

* Create share-qr-code component

* Remove empty style file

* Implement common.share-qr-code including call to media server

* Add share-qr-code preview screen

* Use share-qr-code component in shell's share screen

* Add tests and some fixes
2023-10-31 12:35:28 -06:00
mmilad75 ca822ff51d Connect Wallet Home Page to backend - Accounts card (#17447)
* add functionality

* fix lint issues

* change class component to functional component

* fix refactor-data function

* rename events and fix reagent-render structure

* change rf/defn to re-frame/reg-event-fx

* convert camelCase to kebab-case

* refactor on-error callback

* refactor on-success callback

* replace merge with assoc and conj

* refactor calculate-balance structure

* rename reagent-render

* move calculate-balance into a sub

* use created sub in the view

* fix lint issues

* move calculate-balance function to wallet sub

* change on-success callback

* revert podfile.lock

* remove extra line

* add template for test

* edit calculate-balance and calculate-raw-balance

* add tests

* revert podfile.lock and fix lint issues

* rename refactor-data

* add toFixed to get-balance

* fix lint issues

* finalize code

* replace re-frame/reg-event-fx with rf/defn

* resolve comments

* remove use-fixtures in the test

* break down calculate-balance

* fix lint issues

* fix placeholder color

* move accounts to view-internal

* remove accounts param in wallet-2/get-wallet-token

* Connect Wallet Account Page to backend (basic) (#17700)

* pass address to wallet-accounts screen

* move get-balance-by-address to common/utils

* add functionality

* fix lint issues

* move logic to sub

* convert filter+first to some

* change code structure

* rename wallet-2 to wallet

* add tests

* fix lint issues

* fix style

* remove unused code

* remove view-internal defn

* fix lint issues

* fix networks param issue

* fix .toFixed issue
2023-10-31 21:48:21 +03:30
Yevheniia Berdnyk 88b3d7d2e6 e2e: fix for app closed after closing gallery 2023-10-31 12:04:46 +02:00
Yevheniia Berdnyk 90d3a5a39d e2e: test fixes 2023-10-31 02:21:52 +02:00
Mohamed Javid dd8beeb848 [Fix] "network-routing" component test (#17760)
This commit moves the "network-routing" component test to the quo ns from quo2 ns.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-30 20:51:31 +05:30
Ajay Sivan abbf29d4ca Remove all status-im.ui.components.react usages in status-im2 (#17750) 2023-10-30 06:37:28 -07:00
Parvesh Monu cebec10aa5 fix bottom message in the chat history is hidden behind the composer with an image in it (#17757) 2023-10-30 15:46:16 +05:30
Smoothieewastaken 55b233c528 docs: Fixed typos (#17749) 2023-10-30 08:06:52 +01:00
Omar Basem 68ad4fe086 Wallet: Address Text (#17732)
* Wallet: address text
2023-10-30 09:40:39 +04:00
Jamie Caprani 06c31f3a12 chore: add sub to get network info (#17650) 2023-10-27 03:54:58 -07:00
Lungu Cristian 954373105d Visual debugging of components (#17729)
* feat: debug/show components from the REPL

* ref: some renames and cleanup

* chore: removed comments/imports

* feat: added remount on every eval & small changes

* doc: added tip to debugging doc

* doc: formatting

* doc: more formatting

* fix: fixed docs and other review comments

* fix: moved & renamed into the dev.component-preview ns

* style: adjusted debugging readme spacing

* fix: removed trailing line
2023-10-27 13:14:01 +03:00
Mohsen 2aeafa30bd [#17423] fix: update sync flow (#17731) 2023-10-27 11:16:56 +03:00
Parvesh Monu 5920c35677 Fixed Some Grammatical Errors in README.md (#17716)
Author: Janumala Akhilendra <82641474+JanumalaAkhilendra@users.noreply.github.com>
2023-10-27 13:17:16 +05:30
Ulises Manuel 1f71883fa4 [#16755] - Network routing component (#17457)
* Add network routing component & animations
* Add basic tests and accessibility labels
2023-10-26 16:07:44 -06:00
Siddarth Kumar c9b3196203 improve make component-test robustness (#17743)
Many times devs run
`make component-test` or `make component-test-watch` when there is already a metro or clojure terminal running on their system.

This causes weird behaviour and it is advised to not run these commands together.

This commit prevents that and shows a warning.
2023-10-26 23:24:23 +05:30
mmilad75 6ebd5b421c Fix account-card component UI (#17589)
* add new type

* fix lint issues

* add tests

* refactor get-test-data function

* resolve comments

* fix imports

* resolve comments

* fix lint issues

* remove extra code

* fix height
2023-10-26 16:46:24 +03:30
Ibrahem Khalil 901644e023 Make color selector take full 0device width to match Figma and add dynamic width (#17465) 2023-10-26 13:20:40 +03:00
Mohsen df256bf2b4 [#17534] fix: Add contact scan QR screen back handler issue (#17694) 2023-10-26 12:38:47 +03:00
Jamie Caprani 56492949f1 feat (wallet): add ability to create new account (#17496) 2023-10-26 01:45:33 -07:00
frank ab2ad0ec12 Don't sync AC notifications, only decisions/state (#17600)
* fix outgoing contact request state not show correctly

* update status-go-version.json
2023-10-26 14:44:06 +08:00
Ibrahem Khalil fe2272b703 Fix Composer not focusing on edit/reply (#17640) 2023-10-26 05:43:49 +03:00
Icaro Motta c0b21aa315 Document how to auto-format Clojure files in VSCode with zprint (#17719)
Document how a VSCode user can configure their editor to auto-format
Clojure(Script) files that respect all the formatter (zprint) settings specified
in status-mobile/.zprintrc.

The result should be that on every file save, the file should be identically
formatted as if you used make lint-fix, at least the part about zprint. If
lint-fix does other things now or in the future that are outside the scope of
zprint, those won't be covered by the VSCode extension.
2023-10-25 23:19:56 -03:00
Nikolay 876b020a32 Token network component (#17667) 2023-10-25 13:35:42 -07:00
Mohsen 8ed7059aa9 [#17230] fix: fetch group member info (#17726) 2023-10-25 21:26:34 +03:00
Omar Basem 125c117bac wallet: token value drawer (#17730)
* wallet: token value drawer
2023-10-25 15:45:45 +04:00
Parvesh Monu 078976806a Don't display "Add Unknown as contact to send a Message" if chat is not loaded (#17704) 2023-10-25 16:38:01 +05:30
Omar Basem 07dd42a7d3 Wallet: Network Preferences drawer (#17710)
* Wallet: Network Preferences drawer
2023-10-25 14:55:17 +04:00
Ajay Sivan 3197adf855 Refactor tag preview screens to new api (#17549) 2023-10-25 03:19:37 -07:00
Ibrahem Khalil 8296bda85b Fix recent album not showing count (#17498) 2023-10-24 17:23:16 +03:00
flexsurfer ca2b3abb1c old wallet fixes (#17697) 2023-10-24 15:36:10 +03:00
Ibrahem Khalil b910f05286 Update react-native-camera-kit to latest beta to enable programmitcal zooming (#17708) 2023-10-24 11:48:36 +03:00
Mohsen c42fc5153d [#17288] refactor: migrate previews to new api (#17695) 2023-10-23 20:40:22 +03:00
codemaster 221c501279 fix: remove qa-only features(unicorn, skull) (#17594) 2023-10-23 22:33:09 +10:00
diana 071d8f0925 e2e: new link format 2023-10-23 11:26:53 +02:00
yqrashawn 04a7f76271 feat: support new universal/deep link format (#17480) 2023-10-22 09:50:48 +08:00
Icaro Motta ca6fd3df66 Upgrade Clojure libraries (#17690)
Upgrades and cleans up all production Clojure dependencies and 1 dev-only
dependency (com.taoensso/tufte).

- Remove warning "WARNING: update-keys already refers to:
  #'clojure.core/update-keys in namespace: io.aviso.exception"
- Remove hickory and mvxcvi/alphabase dependencies they are not used.
- Upgrade com.taoensso/tufte from 2.1.0 to 2.6.3
- Upgrade transit-cljs from 0.8.248 to 0.8.280
- Upgrade cljs-bean from 1.3.0 to 1.9.0
- Remove workaround for com.taoensso/timbre in shadow-cljs.edn
- Upgrade com.taoensso/timbre from 4.10 (Status fork) to 6.3.1
2023-10-20 20:47:23 -03:00
Lungu Cristian 337b1d77d0 fix: crash when selecting photos from cameraroll (#17691) 2023-10-20 22:19:44 +03:00
Yevheniia Berdnyk 17e9ce7513 e2e: added test for Add contact validation 2023-10-20 16:17:11 +03:00
Yevheniia Berdnyk 6436e82990 e2e: join community when node owner is offline 2023-10-20 16:05:21 +03:00
R Adithya KumarandLungu Cristian 7642adf32c [#17395] Temporarily disables image options in edit mode (#17488)
Co-authored-by: Lungu Cristian <lungucristian95@gmail.com>
2023-10-20 14:02:31 +03:00
jakub 2df7a7cf6d nix: do not exclude module files from Gradle deps
This is necessary for the React Native `0.72.5` build to work.
https://github.com/status-im/status-mobile/pull/17241

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-19 14:06:39 +02:00
flexsurfer 4a8a23a4c4 rename to wallet-legacy (#17673) 2023-10-19 13:50:55 +02:00
Ajay Sivan e71c167e8a Fix: Messages/Author component text overflow (#17414) 2023-10-19 00:48:42 -07:00
jakub 9d6ed9305b fix shebang for NixOS usage in scheck-nix-shell.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-18 22:17:25 +02:00
Flavio Fraschetti 3f1d52da8c Update README (#17674)
Add Status App Functionality Demo to docs
2023-10-18 14:33:05 +01:00
Mohamed Javid d5da921e1c Implement Edit Wallet Account Screen (base) (#17637)
This commit

- Adds the base Screen base for the Create/Edit Account/Address
- Adds the Wallet Edit Account screen
- Adds the gradient in the account options bottom sheet
- Adds a new key/prop "right-icon" in the data-item component to prevent overlapping with the icon used in the description and updates its usage.
- Updates the "section-label" component to receive "container-style" (this will prevent adding a wrapping view in the screens)

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-18 17:38:58 +05:30
Omar Basem f19ec2a93f Wallet: Buy Tokens drawer (#17654)
* Wallet: buy tokens drawer
2023-10-18 15:24:25 +04:00
Yevheniia Berdnyk 7da899e29f e2e: updated GH report and fixed 2 tests 2023-10-18 13:47:50 +03:00
frank b4b8eb08a6 local pair: optimised finding server cert (#17619)
https://github.com/status-im/status-go/compare/4cc53630...3326362b
2023-10-18 15:41:48 +08:00
Ulises Manuel b6e2e8cba4 [#16858] Input text multiline height (#17536)
* Fix preview screen receiving wrong parameter
* Fix input multiline style on iOS and counter label always showed
* Fix icon metadata and wrong values passed to svg icons
* Use quo/input in add contact sheet
2023-10-17 16:45:03 -06:00
jakub 495aee584e fix broken reference to yarn start in rn-start.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-17 23:47:19 +02:00
Siddarth Kumar 6924d9978d prevent changing deps outside of nix shell (#17662)
We've often seen cases of devs attempting to change  dependencies outside a nix-shell and run into weird side effects

This commit stops them from :

- updating pods outside a nix shell
- updating node deps outside a nix shell

This commit also cleanup unused scripts in package.json and adds a fake comment script.
2023-10-17 23:35:58 +05:30
Brian Sztamfater 5829eaf77b feat: scan account from QR (#17464)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-10-17 13:47:21 -03:00
Churikova Tetiana 6acae424d7 e2e: add new floating screen 2023-10-17 21:48:46 +05:30
Parvesh Monu e6e29a8521 Implement animations for discover communities screen 2023-10-17 21:48:46 +05:30
yqrashawn 4c2ae2338a chore: add lsp clean-ns in lint-fix (#17661) 2023-10-18 00:17:43 +08:00
flexsurfer 6f9bcd1bb1 rename quo2 (#17660) 2023-10-17 17:27:18 +02:00
jakub 6bbe930425 nix: pin Ruby at 3.1, fastlane shell for nix-update-gems
Since the `default` shell doesn't have Ruby, the `nix-update-gems`
target would incorrectly use the system Ruby instead of the one from Nix.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-17 16:59:49 +02:00
Vitaliy Vlasov 37dceb4df8 update status-go with filter-ping-peers-fix
https://github.com/status-im/status-go/compare/aded258c...abac55c7
Signed-off-by: Vitaly Vlasov <mail@vitv.ly>
2023-10-17 17:51:14 +03:00
Mohsen fc284f466f [#17507] fix: image placeholder issue in create-profile (#17645) 2023-10-17 17:28:00 +03:00
yqrashawn 428d79607e fix: long press & bg color animation for deleted message (#17428) 2023-10-17 13:29:47 +08:00
Omar Basem be6b02304b Wallet: Activity Tab (#17643)
* Wallet: activity tab
2023-10-17 08:00:22 +04:00
Icaro Motta 7ae96e86f1 Enable ns sorting linter and clean+sort all namespaces (#17618) 2023-10-16 22:03:18 +00:00
OMKAR MAKHARE 00e9ee556a Update README.md (#17651)
Replaced & with and
2023-10-16 18:35:41 +02:00
flexsurfer 27cd7d4edd remove quo lib (#17626) 2023-10-16 18:34:00 +02:00
Mohsen ff2dfe1a2f [#17533] fix: 'Sign in' page overlaps 'Main' page (#17608) 2023-10-16 17:57:47 +03:00
Alex Tumanov 024f053af8 implement bottom actions component (#17190) 2023-10-16 07:07:28 -07:00
flexsurfer b970b723a5 move legacy subs step 1 (#17648) 2023-10-16 15:47:20 +02:00
frank 18606c7329 remove SQLCipher dependency for ios (#17642) 2023-10-16 18:01:09 +08:00
Mohsen ea8b8d142b [#17288] refactor: migrate previews to new api (#17624) 2023-10-16 11:52:58 +03:00
Jamie Caprani dd20d8896f remove custom-color-by-theme method, add resolve-color method (#17567) 2023-10-16 01:20:37 -07:00
Icaro Motta 9078c3b61b Composer - Link previews - Adjust for upcoming API breaking changes in status-go (#17573)
Adapt the JSON RPC response to the new shape returned by `wakuext_unfurlURLs` on
v0.170.0. The changes were introduced PR
https://github.com/status-im/status-go/pull/4033. There are no behavioral
changes in the API as far as mobile is concerned at the moment.
2023-10-13 17:10:38 +00:00
jakub d01c337a2c nix: update Clojure dependencies to remove POMs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-13 15:23:42 +02:00
jakub d1442b306a nix: stop downloading POMs for Clojure dependencies
Clojure dependencies require only JARs to work. Downloading POMs is both
a waste of time, space, and bandwidth. In addition POMs create edge
cases that we would have to handle, an would rather avoid.

For example, the `guice` package which shows up in the classpath
includes a JAR named `guice-4.2.2-no_aop.jar`. The issue with that is
that there is no corresponding POM in the directory:
https://repo1.maven.org/maven2/com/google/inject/guice/4.2.2/

Either we have to make a special case for such packages, or we can just
skip POMs entirely and avoid the mess.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-13 15:23:41 +02:00
Omar Basem a2794a120a Wallet: Account Options (#17612)
* wallet: account options
2023-10-13 17:19:14 +04:00
BalogunofAfrica 65e37feb17 fix: chat over scroll (#17568) 2023-10-13 12:44:48 +01:00
flexsurfer ca88de162a [#17435] migrate status-im.notifications (#17603) 2023-10-13 12:40:50 +02:00
Brian Sztamfater edd6b8d62c feat: implement address list item component (#17617)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-10-12 14:59:34 -03:00
BalogunofAfrica 6f8a7bb151 fix: image preview padding (#17545)
* fix: image preview padding

* fix: clear icon

* fix: revert clear icon color
2023-10-12 17:13:04 +01:00
Jamie CapraniandRende11 1b348943be Quo2: add tags/ tiny tag component (#17613)
Co-authored-by: Rende11 <artamonovn@gmail.com>
2023-10-12 04:49:02 -07:00
Icaro Motta 7f960f9be5 Add custom linter for i18n/label translation keywords (#17610)
This commit adds a custom linter to verify i18n/label is called with a qualified
keyword, like :t/foo. More sophisticated linters are possible too.

We also set the stage for other developers to consider more lint automation
instead of manually reviewing conventions in PRs.

If you want to understand how to write custom linters, check out
https://github.com/clj-kondo/clj-kondo/blob/master/doc/hooks.md. You can fire
the Clojure JVM REPL in status-mobile and play with the clj-kondo hook too, it
works beautifully.

Why do we care? By making sure all translation keywords are qualified with "t",
it is trivial to grep or replace them because they're unique in the repo, and
can't be confused with other words if you search by ":t/<something>".

Note: It's a best practice to commit clj-kondo configuration from external
libraries in the .clj-kondo directory. The directory .clj-kondo/babashka is
auto-generated, that's why it was added.
2023-10-11 18:53:34 -03:00
Mohamed Javid 54e347eaea Bottom Sheet Fixes (#17609)
This commit fixes the following issues in the bottom sheet:

- the sheet is cut off at the bottom in the shell (dark blur) theme (the drawers in the onboarding/login flow)
- the incorrect background in the shell (dark blur) theme (the drawers in the onboarding/login flow)
Bug	
- the spacing at the bottom is doubled
- the gradient cover is not shown in the bottom sheet
- the spacing between the selected item and the bottom sheet
- the bottom sheet type in "Create Profile" and "Activity Center" screens

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-11 22:05:07 +05:30
John Ngei 5ceca3201d remove left over logs 2023-10-11 17:09:42 +03:00
Jamie Caprani b532966e85 chore: slider button - add error type, blur variant and fix small ui bug (#17473) 2023-10-11 03:39:26 -07:00
Yevheniia Berdnyk 272e8e80d8 e2e: fixed issue with naming 2023-10-10 17:24:28 +03:00
Volodymyr Kozieiev 919ee4b9ab wallet activity design followup fixes (#17590) 2023-10-10 14:54:26 +01:00
Omar Basem d664653921 Wallet: dApps Tab (#17587)
* feat: dapps tab
2023-10-10 16:28:05 +04:00
Mohsen 36dd828a55 [#17446] fix: Display name is not shown in chats after sync (#17591) 2023-10-10 14:36:40 +03:00
Omar Basem bcc175041a Wallet: About Tab (#17556)
* wallet about tab
2023-10-10 09:30:10 +04:00
Ibrahem Khalil d4cc0189d2 Disable scroll to the bottom button when composer is active. 2023-10-09 20:33:20 +03:00
Volodymyr Kozieiev 1770ff24ce Collectible details page (#17520)
Collectible details page
2023-10-09 14:18:43 +01:00
Lungu Cristian 265d9be6c2 Follow-up quo2 reaction selector components (#17304)
* ref: refactored react/react-selector/reactions-selector

feat: added preview multi-select descriptor

feat: finished component

ref: fixed linting

feat: added pinned styles to all reactions

lint: fixed linting

ref: preview customizer for reactions-selector

lint: fixed linting

fix: preview select bg

ref: destructured reaction

* feat: added pinned prop in chat messages

* fix: removed status_im2 require inside quo2 component

* fix: addressed review comments

* lint: fixed linting

* fix: added missing theme arg to theme-color

* chore: removed unnecessary FIXME

* fix: message reactions not working on press
2023-10-09 12:44:12 +03:00
Lungu CristianandYevheniia Berdnyk b432aab701 Changes to onboarding/new-to-status (quo/fonts/spacings/copy) (#17562)
* fix: changes to onboarding/new-to-status (quo/fonts/spacings/copy)

* e2e: updated button  locator

---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2023-10-09 10:45:28 +03:00
Ulises Manuel 1abd1e9420 [#16329] QR code variants (#17221)
* Rename wallet-user-avatar's `:color` prop to `:customization-color`
* Refactor QR code component and implement all variants
  - Improve preview screen
* Update QR code usages
* Remove `status-im2.common.qr-code-viewer.view/qr-code-view` component
to keep only one implementation.
* Remove the node dependency:
  "qrcode": "^1.4.1"
2023-10-08 17:42:58 -06:00
Ibrahem Khalil 4dc834b079 Faded first line of composer (#17489) 2023-10-07 11:12:10 +03:00
Mohamed Javid c6a9148e20 [Fix] SVG Icon color (#17561)
This commit fixes the "X" mark in the clear icon displayed in inputs and URL preview components by updating the props for "svg-icon" to add the "color" and "color-2" keys only if it's present and valid.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-07 13:20:44 +05:30
Yevheniia Berdnyk 7c1850b901 e2e: some fixes and moved old ui tests to a separate dir 2023-10-07 03:24:51 +03:00
BalogunofAfrica b88dcf1072 fix: back button on 1:1 chat (#17544)
* fix: back button on 1:1 chat

* fix: show close icon only for 1:1 and community chat

* fix: use close icon for only 1:1 chat
2023-10-06 12:47:29 +01:00
yqrashawn afbd890a04 fix: several bugs in 1.25 design feedback (#17548) 2023-10-06 15:32:33 +08:00
John Ngei 933a5a1a9e 1-1 chats bug fixes
* removed horizontal padding for separator line

* fixed: page-nav button backgrounds visibility

* updated top margin

* updated selected item top margin

* fixed: author and  message margins
2023-10-06 00:45:26 +03:00
Icaro Motta 6e897f0ea6 Migrate away from rf/defn and rf/merge (first step) (#17451)
This commit shows how to move away from rf/defn
https://github.com/status-im/status-mobile/blob/f12c7401d167d7adb81f97bdf9c0902b39ee37bc/src/utils/re_frame.clj#L1-L90
& rf/merge
https://github.com/status-im/status-mobile/blob/f12c7401d167d7adb81f97bdf9c0902b39ee37bc/src/utils/re_frame.cljs#L39-L85
and why we should do it.

## Problems

Before jumping to solutions, let's understand the problems first, in no order of
importance.

### Problem 1: Cyclic dependencies

If you ever tried to move event handlers or the functions used inside them to
different files in status-mobile, you probably stumbled in cyclic dependency
errors.

When an event is registered in re-frame, it is globally available for any other
place to dispatch. The dispatch mechanism relies on globally unique keywords,
the so called event IDs, e.g. :chat/mute-successfully. This means that event
namespaces don't need to require other event namespaces, just like you don't
need to require subscription namespaces in views.

rf/merge increases the likelihood of cyclic dependencies because they force
event namespaces to require each other. Although not as common, this happened a
few times with devs in the team and it can be a big hassle to fix if you are
unlucky. It is a problem we should not have in the first place (at least not as
easily).

### Problem 2: We are not linting thousands of lines of code

The linter (clj-kondo) is incapable of understanding the rf/defn macro. In
theory, we could teach clj-kondo what the macro produces. I tried this, but gave
up after a few tries.

This is a big deal, clj-kondo can catch many issues and will continue to catch
more as it continue to evolve. It's hard to precisely count how many lines are
affected, but `find src/ -type f -name 'events.cljs' -exec wc -l {} +` gives us
more than 4k LOC.

### Problem 3: Blocking RN's UI thread for too long

Re-frame has a routing mechanism to manage events. When an event is dispatched,
it is enqueued and scheduled to run some time later (very soon). This process is
asynchronous and is optimized in such a way as to balance responsiveness vs the
time to empty the queue.

>[...] when processing events, one after the other, do ALL the currently queued
>events. Don't stop. Don't yield to the browser. Hog that CPU.
>
>[...] but if any new events are dispatched during this cycle of processing,
>don't do them immediately. Leave them queued.
>
>-- https://github.com/day8/re-frame/blob/master/src/re_frame/router.cljc#L8-L60

Decisions were made (way back in 2017) to reduce the number of registered
re-frame events and, more importantly, to coalesce events into bigger ones with
the rf/merge pattern. I tried to find evidence of real problems that were trying
to be solved, but my understanding is that decisions were largely based on
personal architectural preferences.

Fast-forward to 2023, and we are in a situation where we have many heavy events
that process a LOT of stuff in one go using rf/merge, thus blocking the UI
thread longer than we should. See, for example,
[status-im2.contexts.profile.login.events/login-existing-profile](https://github.com/status-im/status-mobile/blob/3082605d1e9897da1b1784588aa22fdc65c84823/src/status_im2/contexts/profile/login/events.cljs#L69),
[status-im2.contexts.profile.login.events/get-chats-callback](https://github.com/status-im/status-mobile/blob/3082605d1e9897da1b1784588aa22fdc65c84823/src/status_im2/contexts/profile/login/events.cljs#L98),
and many others.

The following excerpt was generally used to justify the idea that coalescing
events would make the app perform better.

> We will reduce the the amount of subscription re-computations, as for each
> distinct action, :db effect will be produced and swapped into app-db only once
>
> -- https://github.com/status-im/swarms/issues/31#issuecomment-346345981

This is in fact incorrect. Re-frame, ever since 2015 (so before the original
discussions in 2017) uses a concept of batching to process events, which means
subscriptions won't re-run after every dispatched event, and thus components
won't re-render either. Re-frame is smarter than that.

> groups of events queued up will be handled in a batch, one after the other,
> without yielding to the browser (previously re-frame yielded to the browser
> before every single event).
>
> -- https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/releases/2015.md#050--2015-11-5

Here's a practical example you can try in a shadow-cljs :mobile REPL to see the
batching behavior in practice.

```clojure
;; A dummy event that toggles between DEBUG and INFO levels.
(re-frame/reg-event-fx :dummy-event
  (fn [{:keys [db]}]
    {:db (update-in db
                    [:profile/profile :log-level]
                    (fn [level]
                      (if (= "DEBUG" level)
                        "INFO"
                        "DEBUG")))}))

(def timer
  (js/setInterval #(re-frame/dispatch [:dummy-event])
                  50))

;; 1. In component status-im.ui.screens.advanced-settings.views/advanced-settings,
;; add a print call to see when it's re-rendered by Reagent because the
;; subscription :log-level/current-log-level will be affected by our dummy event.
;;
;; 2. Also add a print call to the subscription :log-level/current-log-level to
;; see that the subscription does NOT re-run on every dispatch.

;; Remember to eval this expression to cancel the timer.
(js/clearInterval timer)
```

If you run the above timer with 50ms interval, you'll see a fair amount of
batching happening. You can infer that's the case because you'll see way less
than 20 print statements per second (so way less than 20 recomputations of the
subscription, which is the max theoretical limit).

When the interval is reduced even more, to say 10ms (to simulate lots of
dispatches in a row), sometimes you don't see a single recomputation in a 5s
window because re-frame is too busy processing events.

This shows just how critical it is to have event handlers finishing as soon as
possible to relinquish control back to the UI thread, otherwise responsiveness
is affected. It also shows that too many dispatches in a row can be bad, just as
big event handlers would block the batch for too long. You see here that
dispatching events in succession does NOT cause needless re-computations.

Of course there's an overhead of using re-frame.core/dispatch instead of calling
a Clojure function, but the trade-off is clearly documented: the more we
process in a single event, the less responsive the app may be because re-frame
won't be able to relinquish control back to the UI thread. The total time to
process the batch increases, but re-frame can't stop in the middle compared to
when different dispatches are used.

Thus, I believe this rf/merge pattern is harmful as a default practice in an
environment such as ours, where it's desirable end-users feel a snappy RN app. I
actually firmly believe we can improve the app's responsiveness by not
coalescing events by default. We're also preventing status-mobile from taking
the most advantage from future improvements in re-frame's scheduler. I can
totally see us experimenting with other algorithms in the scheduler to best fit
our needs. We should not blindly reduce the number of events as stated here
https://github.com/status-im/status-mobile/pull/2634#discussion_r155243127.

Solution: only coalesce events into one pile when it's strictly desirable to
atomically update the app db to avoid inconsistencies, otherwise, let the
re-frame scheduler do its job by using fx, not rf/merge. When needed, embrace
*eventual app db consistency* as a way to achieve lower UI latency, i.e. write
fast and short events, intentionally use :dispatch-later or other timing effects
to bend the re-frame's scheduler to your will.

There's another argument in favor of using something like rf/merge which I would
like to deconstruct. rf/merge gives us a way to reuse computations from
different events, which is nice. The thing here is that we don't need rf/merge
or re-frame to reuse functions across namespaces. rf/merge complects re-frame
with the need to reuse transformations.

Instead, the solution is as trivial as it gets, reuse app db "transformers"
across events by extracting the logic to data store namespaces
(src/status_im/data_store). This solution has the added benefit of not causing
cyclic dependency errors.

### Problem 4: Clojure's language server doesn't understand code under rf/defn

Nowadays, many (if not most) Clojure devs rely on the Clojure Language Server
https://github.com/clojure-lsp/clojure-lsp to be more effective. It is an
invaluable tool, but it doesn't work well with the macro rf/defn, and it's a
constant source of frustration when working in event namespaces. Renaming
symbols inside the macro don't work, finding references, jumping to local
bindings, etc.

Solution: don't use rf/defn, instead use re-frame's reg-event-fx function and
clojure-lsp will understand all the code inside event handlers.

### Problem 5: Unit tests for events need to "test the world"

Re-frame's author strongly recommends testing events that contain non-trivial
data transformations, and we do have many in status-mobile (note: let's not
confuse with integration tests in status_im/integration_test.cljs). That, and
non-trivial layer-3 subscriptions should be covered too. The reasoning is that
if we have a well developed and tested state layer, many UI bugs can be
prevented as the software evolves, since the UI is partially or greatly derived
from the global state. See re-frame: What to Test?
https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/Testing.md#what-to-test.
See PR Introduce subscription tests
https://github.com/status-im/status-mobile/pull/14472, where I share more
details about re-frame's testing practices.

When we use rf/merge, we make unit testing events a perennial source of
frustration because too many responsibilities are aggregated in a single event.
Unfortunately, we don't have many devs in the team that attempted to write unit
tests for events to confirm my claim, but no worries, let's dive into a real
example.

In a unit test for an event, we want to test that, given a cofx and args, the
event handler returns the expected map of effects with the correct values
(usually db transformations).

Let's assume we need to test the following event. The code is still using the
combo rf/defn & rf/merge.

```clojure
(rf/defn accept-notification-success
  {:events [:activity-center.notifications/accept-success]}
  [{:keys [db] :as cofx} notification-id {:keys [chats]}]
  (when-let [notification (get-notification db notification-id)]
    (rf/merge cofx
              (chat.events/ensure-chats (map data-store.chats/<-rpc chats))
              (notifications-reconcile [(assoc notification :read true :accepted true)]))))
```

As you can see, we're "rf/merging" two other functions, namely ensure-chats and
notifications-reconcile. In fact, ensure-chats is not registered in re-frame,
but it's 99% defined as if it's one because it needs to be "mergeable" according
to the rules of rf/merge. Both of these "events" are quite complicated under the
hood and should be unit tested on their own.

Now here goes the unit test. Don't worry about the details, except for the expected output.

```clojure
(deftest accept-notification-success-test
  (testing "marks notification as accepted and read, then reconciles"
    (let [notif-1          {:id "0x1" :type types/private-group-chat}
          notif-2          {:id "0x2" :type types/private-group-chat}
          notif-2-accepted (assoc notif-2 :accepted true :read true)
          cofx             {:db {:activity-center {:filter        {:type types/no-type :status :all}
                                                   :notifications [notif-2 notif-1]}}}

          expected {:db         {:activity-center {:filter        {:type 0 :status :all}
                                                   :notifications [notif-2-accepted notif-1]}
                                 :chats           {}
                                 :chats-home-list nil}
                    ;; *** HERE ***
                    :dispatch-n [[:activity-center.notifications/fetch-unread-count]
                                 [:activity-center.notifications/fetch-pending-contact-requests]]}
          actual   (events/accept-notification-success cofx (:id notif-2) nil)]
      (is (= expected actual)))))
```

Notice the map has a :dispatch-n effect and other stuff inside of it that are
not the responsibility of the event under test to care about. This happens
because rf/merge forces the event handler to compute/call everything in one go.
And things get MUCH worse when you want to test an event A that uses rf/merge,
but A calls other events B and C that also use rf/merge (e.g. event
:profile.login/get-chats-callback). At that point you flip the table in horror
😱, but testing events and maintaining them should be trivial.

Solution: Use re-frame's `fx` effect.

Here's the improved implementation and its accompanying test.

```clojure
(defn accept-notification-success
  [{:keys [db]} [notification-id {:keys [chats]}]]
  (when-let [notification (get-notification db notification-id)]
    (let [new-notifications [(assoc notification :read true :accepted true)]]
      {:fx [[:dispatch [:chat/ensure-chats (map data-store.chats/<-rpc chats)]]
            [:dispatch [:activity-center.notifications/reconcile new-notifications]]]})))

(re-frame/reg-event-fx :activity-center.notifications/accept-success accept-notification-success)

(deftest accept-notification-success-test
  (testing "marks notification as accepted and read, then reconciles"
    (let [notif-1          {:id "0x1" :type types/private-group-chat}
          notif-2          {:id "0x2" :type types/private-group-chat}
          notif-2-accepted (assoc notif-2 :accepted true :read true)
          cofx             {:db {:activity-center {:filter        {:type types/no-type :status :all}
                                                   :notifications [notif-2 notif-1]}}}

          ;; *** HERE ***
          expected {:fx [[:dispatch [:chat/ensure-chats []]]
                         [:dispatch [:activity-center.notifications/reconcile [notif-2-accepted]]]]}
          actual   (events/accept-notification-success cofx [(:id notif-2) nil])]
      (is (= expected actual)))))
```

Notice how the test expectation is NOT verifying what other events do (it's
actually "impossible" now). Using fx completely decouples events and makes
testing them a joy again.

### Problem 6: Unordered effects

status-mobile still uses the legacy way to describe the effects map, which has
the problem that their order is unpredictable.

> Prior to v1.1.0, the answer is: no guarantees were provided about ordering.
> Actual order is an implementation detail upon which you should not rely.
>
> -- https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/Effects.md#order-of-effects

> In fact, with v1.1.0 best practice changed to event handlers should only
> return two effects :db and :fx, in which case :db was always done first and
> then :fx, and within :fx the ordering is sequential. This new approach is more
> about making it easier to compose event handlers from many smaller functions,
> but more specificity around ordering was a consequence.
>
> -- https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/Effects.md#order-of-effects

### Problem 7: Usage of deprecated effect dispatch-n

We have 35 usages, the majority in new code using dispatch-n, which has been
officially deprecated in favor of multiple dispatch tuples in fx. See
https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/api-builtin-effects.md#L114

### Problem 8: Complexity 🧙‍♂️

Have you ever tried to understand and/or explain how rf/merge and rf/defn work?
They have their fare share of complexity and have tripped up many contributors.

This is not ideal if we want to create a project where contributors can learn
re-frame as quickly as possible. Re-frame is already complicated enough to grasp
for many, the added abstractions should be valuable enough to justify.

Interestingly, rf/merge is a stateful function, and although this is not a
problem in practice, it is partially violating re-frame's spirit of only using
pure functions inside event handlers.

### Problem 9: Using a wrapping macro rf/defn instead of global interceptors

When rf/defn was created inside status-mobile, re-frame didn't have global
interceptors yet (which were introduced 3+ years ago). We no longer have this
limitation after we upgraded our old re-frame version in PR
https://github.com/status-im/status-mobile/pull/15997.

Global interceptors are a simple and functional abstraction to specify functions
that should run on every event, for example, for debugging during development,
logging, etc. This PR already shows this is possible by removing the wrapping
function utils.re-frame/register-handler-fx without causing any breakage.

## Conclusion

By embracing re-frame's best practices for describing effects
https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/FAQs/BestPractice.md#use-the-fx-effect,
we can solve long standing issues that affect every contributor at different
levels and bring the following benefits:

- Simplify the codebase.
- Bring back the DX we all deserve, i.e. Clojure Language Server and clj-kondo
  fully working in event namespaces.
- Greatly facilitate the testability of events.
- Give devs more flexibility to make the app more responsive, because the new
  default would not coalesce events, which in turn, would block the UI thread
  for shorter periods of time. At least that's the theory, but exceptions will
  be found.

The actions to achieve those benefits are:

- Don't use the macro approach, replace rf/defn with
  re-frame.core/reg-event-fx.
- Don't use rf/merge, simply use re-frame's built-in effect :fx.
- Don't call event handlers as normal functions, just as we don't directly call
  subscription handlers. Use re-frame's built-in effect :fx.

## How do we refactor the remainder of the code?

Some numbers first:

- There are 228 events defined with rf/defn in src/status-im2/.
- There are 34 usages of rf/merge in src/status_im2/.

## Resources

- Release notes where fx was introduced in re-frame:
  https://github.com/day8/re-frame/blob/39adca93673f334dc751ee2d99d340b51a9cc6db/docs/releases/2020.md#110-2020-08-24
2023-10-05 16:11:45 -03:00
Icaro Motta b73ac6b107 Upgrade clj-kondo and configure new linters (#17543)
- Upgrade clj-kondo to latest version to take advantage of new linters. From
  version 2023.04.14
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230414 to
  2023.09.07
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230907
- Use new linter ":unused-alias" and set at WARN level for the moment, because
  otherwise the PR would increase a bit too much, but it did catch many unused
  "require" aliases. Added in version 2023.09.07
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230907
- Use new linter ":case-symbol-test" and fix the reported errors, added in
  version 2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Use new linters ":equals-true", ":plus-one", and ":minus-one" and fix reported
  errors, added in version 2023.05.18
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230518
- Raise level from WARN to ERROR for linter "uninitialized-var".
- Explicitly add ":case-duplicate-test" to clj-kondo config, renamed in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Explicitly add ":case-quoted-test" to clj-kondo config, renamed in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Explicitly add ":deprecated-namespace" to clj-kondo config, added in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713

Fixes https://github.com/status-im/status-mobile/issues/17287
2023-10-05 15:50:57 -03:00
Anton Iakimov d80fb0b3de update status/wakuv2 fleets DNS discovery enrtree
https://github.com/status-im/status-go/compare/e1354016...9034f0a9

https://github.com/status-im/infra-misc/issues/171
2023-10-05 18:22:42 +01:00
Andrea Maria Piana ef80fc567f Update waku nodes
https://github.com/status-im/status-go/compare/e1354016...b8041fc8
2023-10-05 18:22:10 +01:00
Siddarth Kumar 7043e03dd4 Enter scan code tab in Syncing (#16852)
* feat: add enter scan code view

This commit adds the enter sync code UI.

Fixes : #16062

Design link : https://www.figma.com/file/V6nlpAWIf2e1XU8RJ9yQPe/Syncing-for-Mobile?node-id=675%3A179729&mode=dev

Review notes :
We do not make use of quo2/input here because currently that component does not allow stretching to fit in sync code which spans upto 3 lines.
2023-10-05 21:05:54 +05:30
Parvesh Monu c2833ae33d fix wrong counter color in jump-to screen (#17554) 2023-10-05 18:46:25 +05:30
Ibrahem Khalil a7f0566050 Copy update (#17487) 2023-10-05 14:04:08 +03:00
Omar Basem 1812cfb8dc fixes (#17519)
Fix onboarding UI
2023-10-05 08:26:44 +04:00
John Ngei d5a71e2ce0 updated selected item view
* updated selected-item view to match design

* fix show bottom margin on selected item on bottom sheet

* fixed image message dimensions

* fix: selected item view issues

* fix: reviews

* fix: bottom sheet shaking when item is selected
2023-10-05 01:42:53 +03:00
Icaro Motta aa2345d35c Reduce Clojure linter warning noise (#17491)
Change the make "lint" target default behavior to NOT show clj-kondo warnings.

In the CI, I kept the same behavior, i.e. show all warnings and errors
simultaneously.

Motivation:
When devs run make lint, most of the time, they don't want to see a long list of
warnings. Their focus is on the errors. Additionally, the majority of devs in
the mobile team see clj-kondo warnings in their editors of choice already.

We (some of us) believe the editor feedback/warnings are sufficiently noisy.

Add the following somewhere in your config files if you want to see
warnings.

    export CLJ_LINTER_PRINT_WARNINGS=true
2023-10-04 16:06:54 -03:00
Volodymyr Kozieiev b534b33a09 Doc updated with instruction how to view db content (#17535)
* Doc updated with instruction to view db content
2023-10-04 19:29:55 +01:00
omahs 69df5a7e2f fix: typos (#17484) 2023-10-04 16:54:32 +02:00
Omar Basem 191f5de6f1 Wallet: Create Account UI (2) (#17468)
* Wallet: create account UI (2)
2023-10-04 14:17:55 +04:00
Omar Basem df2b5147cd Wallet: Add address to watch (#17479)
wallet: add address to watch
2023-10-04 14:04:33 +04:00
Parvesh Monu 4235c71b2f Remove options to create community from mobile from release and nightly builds (#17495) 2023-10-04 15:12:16 +05:30
Mohamed Javid aef2f2cfed Implement wallet-networks type to the page-nav component (#17485)
This commit adds the wallet-networks type to the page-nav component.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-04 14:18:34 +05:30
BalogunofAfrica f065aa1c05 fix(identifier): emoji hash line height (#17386) 2023-10-04 08:44:44 +01:00
Vitaliy Vlasov fbe30d7b18 Update status-go to v0.167.6
https://github.com/status-im/status-go/compare/b3213172...e1354016
Signed-off-by: Vitaliy Vlasov <siphiuel@protonmail.com>
2023-10-04 01:16:25 +03:00
Brian Sztamfater 878a1cc285 feat: implement saved contact address list item component (#17400)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-10-03 15:51:11 -03:00
Mohsen 26ae434d07 [#17396] fix: Mention is displayed as public key in PNs (#17461) 2023-10-03 19:53:33 +03:00
Ibrahem Khalil 26a702799c [16845] Wrong buttons background color on community home screen's page nav (#17003) 2023-10-03 19:37:11 +03:00
Ibrahem Khalil f5038f8e24 Only count images in an album in photo selector (#17459) 2023-10-03 19:00:51 +03:00
Tetiana Churikova 5b765f873b e2e: small alignments (#17477) 2023-10-03 14:53:57 +02:00
Jinho Jang a13d3a175b Update ja.json (#17438) 2023-10-03 14:11:42 +02:00
Lungu Cristian dfc972079f fix: show hashtag in chat when replying/copying (#17374) 2023-10-03 11:55:22 +03:00
Lungu Cristian 1286188005 fix: show links inside activity-center mention (#17424) 2023-10-03 11:17:32 +03:00
Volodymyr Kozieiev 9fb37d3a48 Collection avatar component (#17462)
* Collection avatar component
2023-10-02 21:46:47 +01:00
Mohsen ee85d6d596 [#17288] refactor: migrate previews to new api (#17470) 2023-10-02 16:28:35 +03:00
Omar Basem d8d8a6c7a0 Quo2: Token Input followup (#17419)
* Quo2: token input followup
2023-10-02 09:01:39 +04:00
jakub f5f1e6302d ci: use new OpenSea API keys
They are split by both platform and build type.

Depends on:
https://github.com/status-im/status-jenkins-lib/pull/74

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-09-29 16:32:45 +02:00
Mohamed Javid 9c26a54006 Add network-dropdown to wallet-overview component (#17440)
This commit adds the "network-dropdown" component to the "wallet-overview" component.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-29 18:53:06 +05:30
codemaster ab868a6ae5 Implement switcher group messaging card (#16802) 2023-09-29 23:11:21 +10:00
Parvesh Monu 695bbcbe81 fix bottom tabs unread badge for group chats (#17454) 2023-09-29 17:59:35 +05:30
Mohamed Javid bf76ca167a Implement dropdown component and update it's usage across the codebase (#17412)
This commit: 

- Removes the existing dropdown component which uses the old button component under the hood
- Implements the Dropdown component
- Updates the usage in the page-nav component for types dropdown, token and wallet-networks
- Updates the usage in the photo selector bottom sheet
- Updates the usage in the Quo2 preview main screen

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-29 17:37:27 +05:30
Ulises Manuel af1942dff3 [#17220] - New 64 avatars size (#17283)
* Add 64 size for user-avatar

* Add 64 size for channel-avatar

* Add 64 size for account-avatar

* Add 64 size for wallet-avatar
2023-09-29 03:48:02 -06:00
yqrashawn 1c31127a6f fix: missing/empty user-avatar in component previews (#17430) 2023-09-29 15:30:04 +08:00
Ajay Sivan fe404ab005 Remove old quo code from status_im2 namespace (#17404) 2023-09-28 09:27:31 -07:00
Brian Sztamfater 8869271054 feat: implement account list item component (#17303)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-28 12:27:36 -03:00
Brian Sztamfater 5ea78084d1 feat: implement saved address component (#17398)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-28 12:13:49 -03:00
Mohsen ba57ab9ae4 [#17288] refactor: migrate previews to new api (#17420) 2023-09-28 15:26:15 +03:00
0522120c66 Standardized in-app authentication (#16916)
* chore: move password input to connected component
---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
Co-authored-by: frank <lovefree103@gmail.com>
2023-09-28 04:23:15 -07:00
Parvesh Monu 6b9b5fa300 Only use animated loading skeleton for ios (#17432) 2023-09-27 20:43:21 +05:30
Omar Basem 77733b3a65 Quo2: Color picker (#17405)
* Quo2: color picker
2023-09-27 15:34:16 +04:00
Volodymyr Kozieiev 79f7b6c6ba Transaction summary design followup fixes (#17360) 2023-09-27 11:54:41 +01:00
flexsurfer db787f9d4b remove status-im.utils.clocks (#17434) 2023-09-27 12:04:40 +02:00
flexsurfer a847f508f9 [#17410] migrate status-im.ethereum.core (#17422) 2023-09-27 11:57:51 +02:00
Lungu Cristian 4152b9318b Quo2: section label (#17219)
* feat: added section-label to quo2

* fix: addressed review comments

* ref: reorder and small change

* fix: blur only for dark and adjusted styling
2023-09-27 12:07:10 +03:00
codemaster 96f476fc2b feat: Implement quo2 code-snippet-preview component (#17235) 2023-09-27 07:41:52 +10:00
Yevheniia Berdnyk 70d6291c57 e2e: some todos and updates 2023-09-26 18:55:42 +03:00
Parvesh Monu 90cb5d3d88 fix group card remains in shell after leaving the group (#17417) 2023-09-26 20:33:56 +05:30
Ibrahem Khalil da5086aae2 [17377-17378] Fix reply view in activity center showing only one phot… (#17388) 2023-09-26 15:59:36 +03:00
Alex Tumanov baf3fb9bbd Remove test tmp folder before each new test run (#17263) 2023-09-26 13:49:24 +02:00
Flavio Fraschetti f12c7401d1 WIP: refactor notifications (#17413)
to accomplish #17288

migrated :

notifications

Issue Opened: A bug has been identified within the activity-logs component and is currently under investigation.
2023-09-25 19:04:03 +01:00
mmilad75 3082605d1e Handle account-card component pressed state bg color (#17234)
Handle account-card component pressed state bg color
2023-09-25 16:30:54 +03:30
Mohsen Ghafouri 1dfab2b416 [#17333] fix: disable ring for small avatar (#17385) 2023-09-25 15:47:38 +03:00
Mohamed Javid a9b63e0f22 Update "Preview List" component to use "Number Tag" for overflow item (#17257)
This commit updates

- the preview-list component to use "number-tag" for overflow items in the list as a follow-up of the PR Update "Preview list" component.

- the usage of the preview-list component in the context-tag (multiuser and multinetwork type) is updated as it was broken.

- the size APIs of preview-list and number-tag and their usage across the codebase to respect the new guidelines.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-25 17:28:20 +05:30
Jamie CapraniandUlises M f47a4a18e8 chore: add docs with size (#17279)
* chore: update guidelines for sizes

* chore: update to size uses in codebase to follow new convention

---------

Co-authored-by: Ulises M <ulises.ssb@hotmail.com>
2023-09-25 05:22:07 -06:00
flexsurfer 723573833e [#17357] move status-im.async-storage.core (#17380) 2023-09-25 12:45:39 +02:00
Ibrahem Khalil 53f40b55f2 Adjust PR template to add before/after (#17402) 2023-09-25 13:42:37 +03:00
Mohsen Ghafouri 6fd5a97b59 [#17288] refactor: migrate previews to new api (#17366) 2023-09-25 13:19:50 +03:00
Mohsen Ghafouri 848cac31ba [#17300] fix: syncing device indicator color and some alignment (#17340) 2023-09-25 11:55:54 +03:00
Omar Basem 7e646f7823 revert podfile (#17406) 2023-09-25 12:40:27 +04:00
flexsurfer b2cae88924 [#17383] migrate status-im.utils.types (#17389) 2023-09-25 09:32:55 +02:00
Omar Basem 1aadffd300 Quo2: keypair blur (#17294)
* quo2: keypair blur
2023-09-25 08:32:04 +04:00
Volodymyr Kozieiev 08689e568a Links to recorded meetings added to docs (#17399) 2023-09-22 16:42:58 +01:00
frank 7543dc9001 fix: identifier rings are displayed on avatars for users with a set ENS (#17346) 2023-09-22 21:51:54 +08:00
Parvesh Monu a99ae74da7 remove messages screen global states (#17365) 2023-09-21 21:21:42 +05:30
Parvesh Monu db41eb303d fix unread badges behavior on Jump-to screen (#17363) 2023-09-21 17:53:38 +05:30
frank e5ef15b531 Prevent Logged In Account Local Pairing / Syncing With Another Account (#17342) 2023-09-21 10:02:42 +08:00
Jamie Caprani e41fb03b6f adjust colors resolver to handle communities color (#17339) 2023-09-21 01:03:02 +02:00
Jamie Caprani 0ae1e9bc5a chore: updating theming in quo2 components and chat (#17199) 2023-09-21 00:41:00 +02:00
flexsurfer ddd0796381 [#17355] status-im.utils.image-processing (#17356) 2023-09-20 16:14:53 +02:00
flexsurfer 92cc49184d move messages legacy view (#17354) 2023-09-20 15:42:57 +02:00
Mohsen Ghafouri 41282a9f5d [#17309] fix: wrong cursor position in a pre-filled composer (#17329) 2023-09-20 16:24:03 +03:00
flexsurfer 5bb954f8a7 [#17351] remove status-im.utils.platform (#17352) 2023-09-20 14:17:52 +02:00
flexsurfer 6a169bd0bd [#17347] move [status-im.utils.http :as http] to status-im2 (#17350) 2023-09-20 14:16:07 +02:00
Siddarth Kumar a15c9788fe add support for Xcode 15 (#17343)
After upgrading to Xcode 15 make run-ios would fail with

```
 /Users/siddarthkumar/code/status-im/PR/status-mobile/ios/Pods/boost/boost/container_hash/hash.hpp:131:33: no template named 'unary_function' in namespace 'std'; did you mean '__unary_function'?
        struct hash_base : std::unary_function<T, std::size_t> {};
```

This commit fixes the issue and makes existing codebase compatible with newer Xcode.

reference issue in react-native repo : facebook/react-native#37748
2023-09-20 14:41:12 +05:30
Jamie Caprani 6279264ff1 chore: remove colors/dark? method from colors file and update uses (#17202) 2023-09-19 08:16:18 -07:00
frank cb9ae21cf2 process backedup(profile/settings) signal (#17306) 2023-09-19 22:05:59 +08:00
Jamie Caprani 6eb53ca2db fix: update use of setting-item component to match new api (#17244) 2023-09-19 05:05:07 -07:00
Tetiana Churikova 5d6800cee0 e2e: update cython and pyyaml (#17297) 2023-09-19 13:52:30 +02:00
frank d5af6b62a7 fix: display name not displayed after sync (#17311) 2023-09-19 17:18:38 +08:00
BalogunofAfrica f2366219a3 fix: carousel text overflow (#17293) 2023-09-19 09:15:50 +01:00
BalogunofAfrica 95e0715163 fix: intro screen carousel (#17269)
* fix: last slide showing for a split second

* fix: use scale resize-method to load image faster on android
2023-09-19 08:51:55 +01:00
Brian Sztamfater 9479f02b39 feat: wallet select address screen UI in empty state (#17248)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-18 16:17:11 -03:00
Parvesh Monu 9df1b854bd Remove use of camel-snake-kebab from shell worklet (#17310) 2023-09-18 16:51:39 +05:30
frank 442600bc28 use new API for ens name registration (#17127)
* use new API for ens name registration

https://github.com/status-im/status-go/compare/4cc53630...223d215e

* update status-go-version.json

* update status-go-version.json

* fix Error:Field validation for 'KeycardPairingDataFile' failed on the 'required' tag

* update status-go-version.json

* fix lint issue
2023-09-16 11:37:06 +08:00
Mohsen Ghafouri b73ea572ee [#17288] refactor: migrate previews (markdown, messages) to new api (#17280) 2023-09-15 19:53:30 +03:00
Siddarth Kumar a24ddbeefa address design feedback on profile share UI (#16257)
This commit adds UI Touchups to profile share screen according to a recent Design Review.
2023-09-15 18:02:13 +05:30
Mohsen Ghafouri a53ba0c4e1 [#17218] fix: android channel name ellipsize completely (#17262) 2023-09-15 14:52:26 +03:00
Volodymyr Kozieiev 4006495b22 fix keyword renaming performance (#17291) 2023-09-15 12:02:44 +01:00
frank 72b8979c79 add doc: How to catch crash on ios use xcode (#17278)
* add doc: How to catch crash on ios use xcode

* addressed feedback from @ilmotta and @siddarthkay
2023-09-15 12:04:11 +08:00
Omar Basem 4d9ebdb9f9 Quo2: Account list card blur (#17271)
* Quo2: account list card blur
2023-09-15 07:43:48 +04:00
Icaro Motta e2f837fcbc Raise clj-kondo linter levels (#17289)
Recently, we changed clj-kondo default fail-level from "warning" to "error", but
we missed the fact that we needed to raise the default level for all linters set
to "warning".
2023-09-14 11:28:43 -03:00
flexsurfer 07d1b13520 temporary remove "curated.communities.update" (#17286) 2023-09-14 15:57:29 +02:00
Lungu Cristian 5d4fbe7ef1 fix: quo2 reaction styles (size + colors) (#17224) 2023-09-14 12:21:11 +03:00
Mohamed Javid 0003800f05 Implement Emoji Picker (#17195)
This commit adds Emoji Picker in the app for usage in Message Composer and Wallet Account.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-13 23:08:13 +05:30
Icaro Motta dab4d953ec Fix incorrect usage of functional component (#17281)
Every keypress on an input field of the preview descriptor re-rendered the whole
functional component and the input focus was lost.

As we know from past issues, we should never use this pattern:

    (defn component
      []
      [:f>
       (fn []
         ...)])
2023-09-13 13:22:53 -03:00
Brian Sztamfater baa9dff237 feat: implement address input (#17191)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-13 10:26:29 -03:00
frank 9706111256 fix unable to reset pwd on ios (#17259) 2023-09-13 09:06:32 +08:00
Omar Basem 344c9ba9b7 Quo2: Settings item blur (#17258)
* quo2: settings item blur
2023-09-12 21:49:10 +04:00
Icaro Motta 6ea31695d6 Do not warn about subscriptions being used in non-reactive contexts (#17240)
Force re-frame to stop warning about subscriptions in non-reactive contexts
while executing subscription tests (i.e. unit tests using the macro
test-helpers.unit/deftest-sub).

The net result? No more hundreds of useless warnings in the output of make test.

    re-frame: Subscribe was called outside of a reactive context.
     See: https://day8.github.io/re-frame/FAQs/UseASubscriptionInAJsEvent/

The warning is actually useful in production code, but in a subscription test we
already know we're never inside a reactive context.
2023-09-12 11:58:06 -03:00
Yevheniia Berdnyk 2c52001e22 e2e: fixes 12.09 2023-09-12 16:46:49 +03:00
Volodymyr Kozieiev dd1f938e85 Transaction summary component (#17163)
* Transaction summary component
2023-09-12 14:44:40 +01:00
mmilad75 fcbe6fe2b4 Implement "Drawer top" component (#17196)
Implement "Drawer top" component
2023-09-12 12:03:15 +03:30
Flavio Fraschetti dfd91c0e5f Bump release to 1.25.0 (#17247) 2023-09-11 14:42:15 +01:00
Flavio Fraschetti 67ea362b83 bump-release-to-1.24.0 (#17246)
bump-release-to-1.24.0
2023-09-11 14:18:39 +01:00
frank a9c840b6ba fix: Sync is hanging in "syncing devices" stage (#17226) 2023-09-11 20:39:12 +08:00
Mustafa Ateş Uzun 599cf0fb24 fix: web-prefixes function (#17239) 2023-09-11 12:37:24 +02:00
Flavio Fraschetti 0842a97cac Fix: composer is separated from the footer #17238
This PR resolves the issue where Composer becomes detached from the footer during the chat history loading phase, specifically when the skeleton screen is displayed. Fixes #17237.
2023-09-11 11:12:46 +01:00
Ajay Sivan 7bb4f9cfe8 Title input component improvements (#17209)
- Add edit icon
- Fix disable style
2023-09-08 04:59:51 -07:00
yqrashawn 50a1e10136 fix: icon size in system message add new :size/s-24 icon-avatar (#17108) 2023-09-08 19:23:32 +08:00
yqrashawn b393d4e037 chore: update status go version for #17110 (#17222) 2023-09-08 11:04:36 +08:00
yqrashawnandFlavio Fraschetti a05156c645 Fix: User-avatar indicator size/position (#17110)
### Commit Summary
Figma https://www.figma.com/file/WQZcp6S0EnzxdTL4taoKDv/Design-System-for-Mobile?type=design&node-id=107-5264&mode=design&t=3IlYad4D0crAiVcf-4

Affected all avatars with status indicator
32x32

Signed-off-by: yqrashawn <namy.19@gmail.com>
Co-authored-by: Flavio Fraschetti <flavio@status.im>
2023-09-07 17:45:23 +01:00
Mohsen Ghafouri cd1bd1c211 [#17207] fix: incorrect mentions alignment in messages (#17212) 2023-09-07 19:25:03 +03:00
Andrea Maria Piana 50af7fb502 Hide featured communities when not fetched 2023-09-07 17:10:38 +01:00
Flavio Fraschetti 3d63854b03 Revise dev guidelines for code deprecation (#17177)
### Commit Summary
This pull request updates our coding guidelines to include a process for marking deprecated functions using metadata in ClojureScript.
2023-09-07 17:00:02 +01:00
Flavio Fraschetti a30a80f8a1 Replace old skeleton with new (#17169)
fixes #17103

### Follow up from #16865

This commit focuses on enhancing the user experience by replacing our legacy skeleton loaders with the latest version. Additionally, it introduces a refined approach for deprecating outdated components and functions to maintain a cleaner codebase.

### Key Changes

Replace existing skeleton loaders with the latest skeleton-list component for improved performance and usability.
Implement a standardized deprecation method, using either naming conventions or metadata annotations, for phasing out old components and functions.
2023-09-07 16:31:11 +01:00
Jamie Caprani 8036c219e8 chore: add transparent outline to notification in top-nav component (#17171) 2023-09-07 07:10:38 -07:00
flexsurfer a8e9b2486b Community logo and title are not aligned on the channels screen #17214 (#17215) 2023-09-07 15:29:35 +02:00
Anton Iakimov b7a090716d nix: set ios status-go targets 2023-09-07 14:15:30 +02:00
Omar Basem 36c87d3857 Quo2 Wallet: Settings Item (#17179)
* feat quo2: settings-item
2023-09-07 15:36:28 +04:00
Alexander c1c8c210e8 Top bar stability & animation improvements (#17170)
* Top bar stability improvements

Style updates

Style updates, bugfixes

* Display name update

* Style fix
2023-09-07 13:13:16 +02:00
Ajay Sivan b645686684 fix: profile input - input field position - Android (#17210) 2023-09-07 03:53:40 -07:00
Omar Basem bd8e332c68 Quo2: divider line (#17211)
* quo2: divider line
2023-09-07 13:50:19 +04:00
Omar Basem 2f13dfe22a New nav bar for preview screens (#17206)
* quo2: preview themes
2023-09-07 11:16:26 +04:00
Ajay Sivan e9d76c2a0b Handle long names in pinned messages (#17078)
Handle long names in all system messages variations
2023-09-06 08:17:31 -07:00
Yevheniia Berdnyk 7609a07cc2 e2e: fixes 6.09 2023-09-06 16:23:24 +03:00
Andrea Maria Piana 155f57ca6b Dont parse unused identicon 2023-09-06 14:09:37 +01:00
frank bf3ad02bb1 point status-go-version.json to the right commit (#17200) 2023-09-06 20:13:12 +08:00
Icaro Motta 0f71c18f57 Disable fn-deprecated warning during development (#17204)
Disable :fn-deprecated warnings from the Closure compiler for the mobile
shadow-cljs target during development. The compiler warnings are no longer
necessary, because we're managing deprecation via clj-kondo.

Without the compiler setting's change, every code reload will generate warnings
for each and every deprecated call in the repo, which can quickly grow to the
hundreds or more, thus making the terminal output horrendous to understand.

Also set clj-kondo's "fail-level" to "error" (the default is "warning").
2023-09-06 08:58:42 -03:00
Yevheniia Berdnyk 69aeffd943 e2e: removed deprecated metods usage 2023-09-06 12:48:57 +03:00
Yevheniia Berdnyk 726b76a290 e2e: split 1-1 chat test group 2023-09-06 12:30:17 +03:00
Yevheniia Berdnyk 56b13cbdca e2e: updated join communities flow 2023-09-06 12:17:08 +03:00
Samuel Hawksby-Robinsonandfrank d63b1240d7 Fix for Android error route ip+net: netlinkrib: permission denied (#17166)
* status-go branch update

https://github.com/status-im/status-go/compare/4cc53630...b9968a75

* comment start-searching-for-local-pairing-peers out

* revert status-go-version.json

---------

Co-authored-by: frank <lovefree103@gmail.com>
2023-09-06 15:24:40 +08:00
Brian Sztamfater b2840a77a5 feat: add custom color to wallet graph (#17149)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-05 11:05:54 -03:00
John Ngei 7d1098b5b3 Fix join communities design review bugs
* fix: join communities design review bugs

* updated design fixes
2023-09-05 15:53:59 +03:00
Mohsen Ghafouri 741e40094b [#16859] fix: community channel design review (#17178) 2023-09-05 14:40:05 +03:00
flexsurfer a1babada69 Onboarding screens (#17165)
* Broken back navigation on "Create profile" screen #17155
Onboarding screens layout is broken
#17152
Onboarding Flow - Layout issues in enable biometrics screen
#17151
Onboarding navigation issues
#17129
2023-09-05 13:19:15 +02:00
Siddarth Kumar 7ca17e537e chore: improve make show-ios-devices (#17180)
This commit removes the dependency of the IOS Target for `show-ios-devices` command.
We no longer need the IOS target because the default shell contains the `ios-deploy` library, which is used by this command already.
2023-09-05 14:55:25 +05:30
Yevheniia Berdnyk 37af9d9b97 e2e: updated community channel element 2023-09-05 01:48:49 +03:00
Ajay Sivan dfa30fd14f quo channel component refactor (#17070) 2023-09-04 08:39:23 -07:00
jakub f433956657 nix: refresh Gradle dependenncies using new setup
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-09-04 09:58:21 +02:00
jakub 83f622d349 nix: make fetching Gradle dependencies more generic
Before what we did was essentially guess what files might exist for any
given package. This approach mostly works, but not entirely.
This is especially problematic when dealing with weird edge case
packages like `react-native`, which you can read about here:

https://github.com/react-native-community/discussions-and-proposals/pull/508
https://github.com/react-native-community/discussions-and-proposals/blob/4a06fc64/proposals/0508-out-of-npm-artifacts.md#the-react-native-android-archive

In order to avoid as much the guessing aspect of fetching Gradle
dependencies we are using both HTML listsings of files and
`artifact-metadata.json` files that exist for more recent packages.

This way we can avoid having to add special edge cases that have been
found out when working on React Native 72 upgrade in:
https://github.com/status-im/status-mobile/pull/17062

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-09-04 09:57:53 +02:00
mmilad75 6809311191 Implement "Account origin" Component (#17147)
Implement "Account origin" Component
2023-09-01 20:41:57 +03:30
Yevheniia Berdnyk 5647bb4ac9 e2e: fixes navigation, long press and so on 2023-09-01 18:21:03 +03:00
Volodymyr Kozieiev f3f85f9911 Wallet activity component (#17141)
* Wallet activity component

* Component description added

* removed unnecessary piece

* lint fix

* Review notes

* fix issue with blur preview

* lint fix
2023-09-01 16:20:15 +01:00
diana 5e3255ea57 Docs update: required e2e 2023-09-01 15:26:26 +02:00
Parvesh Monu 77fc7a92d9 Don't display "Add Unknown as contact to send a Message" if chat is not loaded 2023-09-01 18:04:54 +05:30
Jamie Caprani 72455877bd fix: remove hole view code with error (#17164) 2023-09-01 05:11:13 -07:00
Icaro Motta 857c9c2f74 Unshadow remaining core & non-core vars (#17138)
Unshadows all remaining vars in status-mobile, including non
cljs.core/clojure.core ones. The only exceptions are cljs.core/type and
cljs.core/name (which happen quite often, so I'm not sure if it's worth
unshadowing them).
2023-09-01 11:54:53 +00:00
Icaro Motta 1ac7c2f965 Fix: missing community logo in Activity Center (#17159)
The bug was caused, again, by the fact that the component react-native/image
source was a string and it was not wrapped inside the map {:uri "..."}. The
bug was likely introduced by commit 255a3b9172

I decided to change react-native.image for good, similarly to what we do in
react-native/fast-image
(https://github.com/status-im/status-mobile/blob/ebd38295c6e5715a0ee04217b248ac69f9ddceab/src/react_native/fast_image.cljs#L21)
so we can prevent this type of bug in the future.

Fixes https://github.com/status-im/status-mobile/issues/17157
2023-09-01 11:31:19 +00:00
BalogunofAfrica d35dbff044 fix: use custom color for send button (#17146) 2023-09-01 10:47:21 +01:00
yqrashawn 7e9ba0768a fix: support new design ident ring width (#17034) 2023-09-01 16:35:46 +08:00
Jamie Caprani d462810a57 chore: move top nav to quo2 and align with figma (#17043) 2023-08-31 14:11:46 -07:00
Brian Sztamfater 1c730bc692 feat: implement interactive graphs (#17029)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-08-31 13:45:54 -03:00
Mohsen Ghafouri 62030497e5 [#17140] fix: AC tabs are flickering while scrolling them (#17145) 2023-08-31 16:46:53 +03:00
Anton Iakimov ebd38295c6 run-android: set build abis depending on connected devices abis 2023-08-31 13:01:24 +02:00
Siddarth Kumarandandresceballosm 2e63ee8baf feat: add tags - network tags component to quo2
Co-authored-by: andresceballosm <ceballosmarandres@gmail.com>
2023-08-31 02:55:17 -07:00
Ibrahem Khalil a218499f2a [16728] Allow message editing to save link previews (#17117) 2023-08-31 10:59:49 +03:00
Yevheniia Berdnyk e1616ae514 e2e: split community and activity center tests to reduce time 2023-08-31 01:24:01 +03:00
Andrea Maria Piana 70d8a90152 Show collapsed header in communities
Fixes: #16123

This commit changes the behavior when joining communities:

1) If the user hasn't joined a community, they will see the
   non-collapsed header.
2) If the user has already joined the community, they will see a
   collapsed version of the header, in order to have quicker access to
   the chats of the community without having to scroll a lot.

One edge case that is taken care of is the following:
1) User visits a community that has not joined, requests to join.
2) The user is on the community page when the state changes from
   not-joined -> joined.

In this case the user won't see the collapsed header until they leave
the community view (go back to home say and back to communities).

This is done in order to avoid some janky transition between the non
collapsed & collapsed version of the header.

This is slightly different from as mentioned in the issue "visiting the
page for the 2nd time", as that will require larger changes but it
should be an acceptable behavior, since most of the times they will have
to visit the overview to request access.
2023-08-30 21:06:13 +01:00
erikseppanen 8c02291c0b Add number tag component (#17134) 2023-08-30 13:29:59 -04:00
Andrea Maria Piana a00eb6292f Remove 3 words alias
https://github.com/status-im/status-go/compare/347d875a...bf748de2
2023-08-30 16:48:43 +01:00
frank b24dbe585b fix: Rounded edges of color sections of identity rings (#17135)
https://github.com/status-im/status-go/compare/4cc53630...347d875a
2023-08-30 21:28:04 +08:00
Ibrahem Khalil 9ab1b70e0e Pinned messages drawer comments (#16998) 2023-08-30 16:04:08 +03:00
Ibrahem Khalil 3162e2dd3e Design notes for pinned message (#16997) 2023-08-30 15:46:23 +03:00
Andrea Maria Piana 5807b34472 [Fixes: #16219] Correctly handle removal event when out of order
https://github.com/status-im/status-go/compare/d64633e3...bd2c38db
2023-08-30 13:19:34 +01:00
Mohsen Ghafouri bd36699d09 [#16550] fix: device type indicators in syncing screen (#17133) 2023-08-30 12:20:21 +03:00
Parvesh Monu 5dc874a4cd fix Chat input overlaps the last message on IPhone 14 (#17113) 2023-08-30 14:35:14 +05:30
Yevheniia Berdnyk 551ac22085 e2e: updated communities join flow (#17132) 2023-08-30 10:49:31 +02:00
Andrea Maria Piana ca7a519f89 Fix contract call for communities 2023-08-30 09:29:03 +01:00
Omar Basem a4717ae5d0 Feat: wallet create account screen UI (#17118)
* feat: wallet create account
2023-08-29 21:06:36 +04:00
BalogunofAfrica a47998a7a0 fix: resolve activity centre design feedback (#17105) 2023-08-29 16:55:11 +01:00
Flavio Fraschetti 141bf5a333 FF/animate-loading-skeleton (#16865)
New Animated skeleton loader
2023-08-29 15:15:32 +01:00
Mohsen Ghafouri 231272603d [#16861] fix: resolve discover communities design feedbacks (#17128) 2023-08-28 18:09:42 +03:00
Ulises Manuel 255a3b9172 Add missing context tags variants & fix API (#16962)
Add icon-name to group avatar

Add missing context-tags variants and fix the API to match figma

Updates context-tag previous uses

Update use of group-avatar api
2023-08-28 04:37:43 -07:00
Ulises Manuel 6156bfc472 [#16963] Refactor page nav and fix its API (#17031)
* Refactor page-nav and fix API

* Update and fix page-nav in scroll-page component

* Update page-nav uses in quo-preview

* Update page-nav uses in syncing

* Update page-nav uses in communities

* Update page-nav uses in wallet

* Update page-nav uses in onboarding
2023-08-28 02:44:53 -07:00
mmilad75 6870000490 Implement Data Item component (#16960)
Implement Data Item component #16960
2023-08-26 18:33:10 +03:30
Omar Basem 0ef7dc34e4 fix: composer cursor hidden (#17099)
* fix: iOS cursor in chat
2023-08-25 21:33:40 +04:00
Mohamed Javid 0f7e98cbe2 Update "Preview list" component (#17051)
This commit updates the "Preview list" component to support the following types (according to Figma):
- collectibles
- dapps
- accounts
- network
- tokens

Additionally, imports the images for wallet networks and dApps.
---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-25 21:41:03 +05:30
Mohamed Javid f4d6f64a66 [Feature] Implement "Showcase nav" component (#17100)
This commit implements the "Showcase nav" component which is needed for emoji picker development.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-25 21:16:26 +05:30
Yevheniia Berdnyk a416267094 e2e: appium upgrade 2023-08-25 17:32:54 +03:00
Mohsen Ghafouri 2358eb195b [#16846] fix: resolve communities home design feedbacks (#17089)
* [#16846] fix: resolve communities home design feedbacks

* [#16846] fix: ios card shadow cutoff, re #17098
2023-08-25 17:26:53 +03:00
Yevheniia Berdnyk 21be0ed16c e2e: fixes 25.08 2023-08-25 15:59:51 +03:00
Parvesh Monu 89d1bd3f6a fix Jump to button not responding in chat after app returns from background (#17085) 2023-08-25 15:11:18 +05:30
Ajay Sivan 5148a3c748 Quo divider-label component refactor (#17035) 2023-08-24 12:29:26 -07:00
8701f3545d [#16864] Design review: messages home (#17050)
---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-08-24 14:30:47 +02:00
Mohsen Ghafouri 26eeb43569 [#16846] fix: resolve glow issue in communities home (#17097) 2023-08-24 15:05:31 +03:00
Jamie Caprani 4d7b1baace chore: add Alex to wallet team (#17024) 2023-08-24 13:11:22 +02:00
Yevheniia Berdnyk 89c2b1c818 e2e: nightly fixes 23.08 2023-08-24 04:31:27 +03:00
Icaro Motta 17df7a0d35 DRY up preview screens (#17095)
Migrate 47 out of ~90 preview screens to use the new capabilities found in quo-preview.preview.
2023-08-23 20:56:34 +00:00
erikseppanen 0552713143 Add quo2 dApp component (#17074) 2023-08-23 16:31:28 -04:00
Omar Basem 3223c71526 Feat: wallet empty account UI (#17077)
* feat: wallet account empty
2023-08-23 21:10:46 +04:00
Omar Basem 914604bbe4 UI Fix: wallet graph gradient (#17093)
* fix: wallet graph gradient
2023-08-23 20:19:19 +04:00
Volodymyr Kozieiev 821e39a562 Network dropdown component (#16982) 2023-08-23 14:12:15 +01:00
Ibrahem Khalil 4cef868eab [16866] Action Drawer design review (#17033) 2023-08-23 15:58:23 +03:00
Anton Iakimov 34f7a48503 nix: map android arch to status-go builds
Fixes partially #15595
In order to build less targets, when not needed we introduce this
mapping logic.
If only specific ABI is required - status-go will have the same
arhitecuture.
2023-08-23 12:15:05 +03:00
Omar Basem e0f83384a2 Quo2 Wallet: Network Link (#17049)
* Quo2 Wallet: Network Link component
2023-08-23 12:53:45 +04:00
flexsurfer 8fe7fad540 Audio button does not disappear when changed to 'Send' button #17082 (#17083) 2023-08-22 20:39:44 +02:00
Yevheniia Berdnyk 4dd5d88f0f e2e: updated community tests 703086 and 702786 2023-08-22 21:15:14 +03:00
codemaster 27f11fcb2d fix: group-avatar component usage (#17041) 2023-08-22 23:46:10 +10:00
Ibrahem Khalil 8e7c6fe778 Make undread-indicator as last child of view (#17064) 2023-08-22 14:20:52 +03:00
Andrea Maria Piana 79daa4d529 [Fixes: #17027] Fix spacing between own messages 2023-08-22 09:43:34 +01:00
erikseppanen bdedccdda6 wallet overview: design review fixes (#17046) 2023-08-21 19:38:04 -04:00
Parvesh Monu cace2a32a0 Improve the floating shell button and fix its position in the screens (#16981) 2023-08-21 21:30:32 +05:30
Yevheniia Berdnyk 92403f5d30 e2e: fix for navigation issue 2023-08-21 16:37:48 +03:00
Omar Basem 4c9ccf3069 Quo2 Wallet: Keypair component (#17019)
* Quo2 Wallet: Keypair component
2023-08-21 16:25:50 +04:00
Omar Basem 50f3bb005e Quo2: Wallet Button and Wallet CTAs components (#17006)
* Quo2 Wallet: Button and CTAs
2023-08-21 16:01:34 +04:00
Parvesh Monu a45f353356 fix ios blur blue overlay (#17015) 2023-08-21 16:02:17 +05:30
Mohamed Javid e4a2ac9cce Add gradient background support in bottom sheet (#16986)
This commit adds Gradient Background in the bottom sheet which will be used in Wallet Account Actions, and Switcher bottom sheet.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-21 15:43:50 +05:30
Ibrahem Khalil bdfdf687a4 [16827] Disable transparent video looping (#17000) 2023-08-21 11:49:41 +03:00
Alexander 95ec35343c Background shown for [Continue] button on iOS when it shouldn't overlap the color picker (#17044)
* Background shown for [Continue] button on iOS when it shouldn't overlap the color picker

* kebab-case
2023-08-18 22:22:48 +02:00
diana e186f513ed Add design review to pipeline process doc 2023-08-18 15:54:42 +02:00
Yevheniia Berdnyk 774687bef6 e2e: updated test_group_chat_mute_chat to unmute by time 2023-08-18 16:00:55 +03:00
John Ngei 66e3b60703 Add members to open community
* add members to open community

* fix: join open community notification
2023-08-18 15:38:35 +03:00
John Ngei 99294fa8ea update empty state image illustrations to reflect the applied theme
* update empty state image illustrations to reflect the applied theme

* refactored the code to use theme provider
2023-08-17 23:46:01 +03:00
Mohamed Javid e11a761fcc Revert "chore: update group-avatar component (#17014)" (#17039)
This reverts commit 673b1afc3a.
2023-08-17 18:49:38 +05:30
yqrashawn 999588e67d fix: timbre log to react-native start console (#17032) 2023-08-17 20:51:20 +08:00
yqrashawn 9cae50dc88 fix: no ident ring in pinned msg (#17011) 2023-08-17 15:19:15 +08:00
Churikova Tetiana aecad2136e e2e: starting to-dos 2023-08-17 05:09:19 +03:00
codemaster 673b1afc3a chore: update group-avatar component (#17014)
We merge it without QA because it only changes the API and doesn't need design review because nothing has been changed 👍
2023-08-17 06:44:30 +10:00
Icaro Motta b0f748cb73 Refactor Quo preview (#16996)
Improvements to quo previews:

- Change quo-preview.preview code to be more aligned with our guidelines.
- Remove duplication when setting up preview screens in quo-preview.main. Now we
  only need to specify the :name and :component keys and fallback to a good
  default for "{:options {:topBar {:visible true}}".
- Auto-generate descriptor labels based on the key.
- Fix form field colors for dark & light, especially for Android.
- Redesigned form fields to look nicer 💄
- Create component that abstracts away the code for rendering the form fields
  and the preview area. This will aid us in creating more consistent looking
  preview screens and keep things DRY.

How do we use the new code?

Just as before, define a state binding and use it to build up the arguments of
the component. Then, use the preview/preview-container to wrap the component.
You can use certain props to control how the preview is styled, etc, but that's
about it.

    (def descriptor
      [{:type :text :key :label}
       {:key     :chevron-position
        :type    :select
        :options [{:key :left}
                  {:key :right}]}])
    
    (defn view
      []
      (let [state (reagent/atom {:chevron-position :left
                                 :label            "Welcome"})]
        (fn []
          [preview/preview-container {:state state :descriptor descriptor}
           [quo/divider-label @state]])))
2023-08-16 11:30:21 +00:00
Andrea Maria Piana d988296ecf Add next in line for communities 2023-08-16 12:16:32 +01:00
Andrea Maria Piana dc8a09ce75 Update wallet team members 2023-08-16 12:16:08 +01:00
Andrea Maria Piana 0dea703ca0 3 lines community description 2023-08-16 12:15:12 +01:00
Ibrahem Khalil 50134ebeff Fix jump to button showing inside composer (#16999) 2023-08-15 11:31:50 +03:00
yqrashawn a6710f902f feat: render all avatars using media server (#16193) 2023-08-15 09:59:40 +08:00
codemaster115 87a150cec1 fix: lint 2023-08-14 12:30:14 -05:00
codemaster115 98e2d8c6f1 fix: group-avatar component usage 2023-08-14 12:14:17 -05:00
codemaster115 43d72e0ba1 chore: add missing icon asset 2023-08-14 12:14:17 -05:00
codemaster115 5bb309ca30 fix: group-avatar icon 2023-08-14 12:14:17 -05:00
codemaster115 eaa089b78c chore: refactor using group-avatar component 2023-08-14 12:14:14 -05:00
codemaster115 9f12b4335c chore: update group-avatar component 2023-08-14 12:13:03 -05:00
codemaster115 7bc98fcc44 chore: update group-avatar component 2023-08-14 12:13:03 -05:00
Alexander da22f4a809 Use customization-color to inherit custom colour for notification dots / counter (#16947)
* Inherit custom colour for unread notification dots

* Code style update; notification-dot as a separate component

* Code style update; notification-dot as a separate component

* Removed leftovers

* Updates

* Lint fix
2023-08-14 16:27:36 +02:00
Omar Basem 961150ac30 Quo2 Wallet: Account list card (#16893)
* Quo2: account-list-card
2023-08-14 17:00:42 +04:00
Andrea Maria Piana 13e9db198f Pull images from status-go
Fixes: #16885

Images were not "prepared" before being sent to the frontend.

status-go PR: https://github.com/status-im/status-go/pull/3875

https://github.com/status-im/status-go/compare/1ca165c5...d61f983d
2023-08-14 12:33:02 +01:00
Andrea Maria Piana 9eaee8864c Update status-go docs 2023-08-14 10:23:12 +01:00
flexsurfer bf8b31d22d Add preview and counters for CR system messages #16898 (#16969) 2023-08-12 06:39:26 +02:00
Andrea Maria Piana 713cf8bf79 Update version to 0.163.6 2023-08-11 13:21:26 +01:00
Omar Basem 79994e2dbf Wallet Empty Home UI (#16965)
* feat: wallet empty home
2023-08-11 16:06:43 +04:00
frank 715fc13d46 https://github.com/status-im/status-go/compare/9896ec81...daa9ad4e
fix app crash during key generation
2023-08-11 12:46:01 +01:00
frank 1536ff8fa5 revert identity ring colours (#16938)
* revert identity ring colours
2023-08-11 09:30:53 +08:00
Yevheniia Berdnyk 625510d6c9 e2e: Added test for message with hashtag in communtiy channel 2023-08-10 18:09:25 +03:00
Yevheniia Berdnyk 8bab9f8f22 e2e: pulling geth log in teardown if setup is failed 2023-08-10 15:34:41 +03:00
Jamie Caprani 1cb16b4945 chore: add composer button to quo2 and use in app (#16902) 2023-08-10 04:27:25 -07:00
Jamie Caprani 302c54b6c4 Refactor some quo2 components to use best practices
* chore: update quo2 group avatar to best practices

* chore: update quo2 browser-input to best practices

* chore: update quo2 dynamic-button to best practices

* chore: update quo2 tabs to best practices

* chore: cleanup quo2 core file

* chore: use best practices in quo2 banner

* chore: use best practices in quo2 step
2023-08-10 03:59:13 -07:00
Andrea Maria Piana 87574ad78a Align text left in lightbox 2023-08-10 10:27:49 +01:00
Ibrahem Khalil 30175f5d8b feat: Account overview component (#16742) 2023-08-10 09:19:47 +03:00
Tetiana Churikova 5a3d886055 e2e: discover communities (#16957) 2023-08-09 18:14:42 +02:00
Icaro Motta 6550bc058d Document quo best practices and guidelines (#16901) 2023-08-09 11:32:36 -03:00
Alexander 528df179d9 "Your name" input field is dispositioned to the bottom on Create profile screen (Android) (#16923) 2023-08-09 16:06:28 +02:00
Jamie Caprani 6b4b9d99f4 chore: add basic flow for wallet development to begin 2023-08-09 05:45:48 -07:00
Andrea Maria Piana 016b38f15c Various fixes on messaging view 2023-08-09 12:16:35 +01:00
Anton Iakimov 6274bd7cb6 ci: run nightly e2e at 2am, not 4am 2023-08-09 11:43:57 +02:00
Anton Iakimov 2976830497 ci: cleanup e2e tests and builds from jenkins combined job 2023-08-09 11:16:31 +02:00
John Ngei 11c798817e show continue button background on scroll
This pr. add blur background on continue button on create profile screen should the button container cover the profile color picker when the keyboard is shown

* show button background on scroll

* fix show button on scroll different platforms

* fix: button container loading

* fix: button container background delay
2023-08-09 00:19:01 +03:00
Ulises Manuel Cárdenas 79bf4bb8d5 [#16437] Fix sync QR code not recognized after trying again (#16746)
* Add bind-component function to `react-native.navigation`

* Create helper function to use react-native-navigation lifecycle methods

* Fix sync QR code not recognized after trying again & refactor

* Add atom to manage callbacks when qr code scan fails
2023-08-08 11:53:05 -06:00
Parvesh Monu ff1ae2f4aa Add fallback letter on channel on the community card (#16863) 2023-08-08 18:34:36 +05:30
2869edafdd implement quo2 inputs - locked input component
Co-authored-by: tumanov-alex <uwontrememberthis@gmail.com>
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-08 05:16:06 -07:00
Mohamed Javid d143b1d0e9 [Quo2] Implement "Progress bar" component (#16905)
This commit implements the "Progress bar" component which is needed for wallet screen development.

Additionally, this commit adds a new test helper method "render-with-theme-provider" to test components in different themes.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-08 17:15:55 +05:30
frank bf502175f7 fix: process backup messages when recovering account from seed phrase (#16879) 2023-08-08 16:19:48 +08:00
Omar Basem d8680ecf29 Quo2 Wallet: Summary Info (#16881)
* feat: quo2 wallet - summary info
2023-08-08 08:58:53 +04:00
mmilad75andJamie Caprani 24c4cd1509 Implement Quo2 Numbered-Keyboard / Numbered Keyboard component #16606 (#16851)
* Implement Quo2 Numbered-Keyboard / Numbered Keyboard component

* fix lint

* fix margin bottom

* fix android issue

* retructure a bit

* refactor code

* resolve comments

* fix styles

---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-07 20:35:14 +03:30
Volodymyr Kozieiev 86e16564fa Fetching featured communities (#16829)
Featured communities updated from status-go signal
Community card skeleton now is a part of a component
2023-08-07 16:43:58 +01:00
Anton Iakimov d5c1ecc104 nix: switch status-im config to env vars, cleanup
To help with #15595 changes, refactoring is required.
In this PR we switch from config to env vars.
Doing some cleanup meanwhile.
2023-08-07 14:50:36 +02:00
flexsurfer bc18e8aac5 [#16254] Add new system messages in chat history when accepting a con… (#16775)
* [#16254] Add new system messages in chat history when accepting a contact request
2023-08-07 10:56:54 +02:00
Omar Basem 5b495927ef Quo2 Wallet: Token Value (#16880)
* feat: quo2 wallet - Token Value
2023-08-07 10:34:54 +04:00
erikseppanen 2819c20400 Quo2 wallet: add wallet overview (#16855) 2023-08-04 11:43:39 -04:00
Roman Volosovskyi 18347b44fe Set initial block range for a newly created account (again) 2023-08-04 15:40:34 +02:00
Mohamed Javid bad9aa9e20 [Fix] Crash on onboarding due to nil value (#16884)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-04 17:22:43 +05:30
Yevheniia Berdnyk e5b6378e15 e2e: updated tests with new communitites creation flow 2023-08-04 01:37:33 +03:00
Ulises Manuel Cárdenas 7ad378e9c8 [#16709] chat home banner animation (#16823)
* Small typo fix
* Move header-spacing & empty-state to common.home namespace
* Create common animated banner component for chats and communities
* Add animated banner to chats tab
2023-08-03 13:29:44 -06:00
Mohamed Javid f6ce63734c Update entry points for Quo2 Preview (#16843)
This commit adds two new entry points (button on the top right corner in the navigation bar) for the Quo2 preview screen without having to log in to the app:

- "New to Status"
- "login" 

Additionally, this commit updates the theme switcher to be sticky at the top of the Quo2 preview screen to quickly change the theme without having to scroll all the way top.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-03 23:49:01 +05:30
flexsurfer d9b54c47d3 simple quo groups (#16857) 2023-08-03 19:00:07 +02:00
Parvesh MonuandJamie Caprani 109061a112 Enable layout animations by default (#16832)
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-03 18:53:15 +05:30
Jamie Caprani 98085cd9c9 chore: adjust quo2 counter component to use customization-color internally (#16799)
* chore: refactor use of customization-color in quo2 counter

* chore: fix uses of counter to use custom colors in app
2023-08-03 04:57:39 -07:00
Mohamed Javid cccf5ed015 Update on-press on collectible component (#16837)
This commit adds the "on-press" prop to the "collectible" component which is required for navigating to other screens, such as the details screen when we will start building the wallet.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-03 14:28:14 +05:30
Omar Basem b0e45207df Quo2: Token Input (#16819)
* feat: quo2 token input (1/2)
2023-08-03 09:08:08 +04:00
frank 7b425c1a53 Add method for fast creation of communities (#16806)
* fast create community to test

* fix: in PR builds only token gated community is available

* update status-go-version.json
2023-08-03 08:59:28 +08:00
Yevheniia Berdnyk 049e958992 e2e: added test for markdown support (702809) 2023-08-02 21:53:03 +03:00
Yevheniia Berdnyk 3f433d6f19 e2e: group chat unread messages 2023-08-02 19:05:29 +03:00
Alexander da8ca36369 Top bar UI (design review) (#16820)
* Top bar UI (design review)

* Lint fix

* Show `Online`/`Offline` label only for non-group chats

* Fixed formatting
2023-08-02 17:26:06 +02:00
Jamie Caprani d26db932e8 Button Refactors Final Final (#16772)
* chore: remove use of override-background-color prop in button

* chore: update uses of quo2 button to align with figma

* chore: fix button preview screen

* fix: onboarding customization colors
2023-08-02 08:03:02 -07:00
Jamie Caprani ba859b163a Revert "Set initial block range for a newly created account" (#16842)
This reverts commit ad17c37dc1.
2023-08-02 07:35:13 -07:00
Anton Iakimov 08bca43f0f ci: create e2e nightly run on ci.status.im
Before removing e2e relaled tasks from ci.infra.status.im - let's have a job on devel Jenkins instance.
2023-08-02 15:18:45 +02:00
Roman Volosovskyi ad17c37dc1 Set initial block range for a newly created account 2023-08-02 11:40:59 +02:00
mmilad75 07336edef6 Implement Quo2 Numbered-Keyboard / Keyboard Key component (#16723)
* Implement Quo2 Numbered-Keyboard / Keyboard Key component

* add tests

* fix lint issues

* add derivation-path icon

* add tests

* refactor preview
2023-08-02 11:38:38 +03:30
Flavio Fraschetti 7c73b7ea12 Implement account_card and variants (#16801)
* Implement account_card and variants with tests
2023-08-01 18:00:03 +01:00
jakub 1a97731454 ci: fix use of release Infura key for E2E runs
Depends on: https://github.com/status-im/status-jenkins-lib/pull/71

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-08-01 18:18:53 +02:00
Brian Sztamfater 21807cb761 feat: implement wallet graph component (#16789)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-08-01 11:10:16 -03:00
Omar Basem b8d01c8bb9 Quo2 Wallet: network bridge (#16793)
* feat: quo2 network bridge
2023-08-01 14:44:14 +04:00
frank 99c10519c3 fixed: getting stuck on the "Keys saved" randomly (#16816)
* fixed: getting stuck on the "Keys saved" randomly
2023-08-01 18:23:45 +08:00
Mohamed Javid 81b8c7ca65 Implement Account Avatar Component (#16795)
This commit implements the "Account Avatar" component which is needed for wallet screen development.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-31 21:54:04 +05:30
Yevheniia Berdnyk 96ff8ab382 e2e: fix for creating second user 2023-07-31 15:39:37 +03:00
Omar Basem cf11743f87 Quo2: Network Amount (#16764)
* feat: network amount component
2023-07-31 14:53:27 +04:00
Mohamed Javid 162f02ea27 Implement gradient cover component (#16778)
This commit implements the "gradient cover" component which is needed for wallet screen development, and upgrades the "react-native-linear-gradient" library to "v2.8.0".

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-31 12:49:34 +05:30
Omar Basem 0ee0137c72 Camera extra features (#16781)
feat: camera extra features
2023-07-31 09:01:30 +04:00
Ulises Manuel Cárdenas 82645f5df4 [#16481] Fix unread badge in group chats (#16610)
* Small refactor & add customization color to `info-count` component
* Fix notification mark in group chats for no mentions, also notification alignment styles in the component
* Code style: `change > 0` for `pos?`
2023-07-28 13:33:07 -06:00
Ulises Manuel Cárdenas c4b142ea68 [#16446] Communities banner animation (#16567)
* Simplifies community banner and adds style property
* Add animation for communities banner card
* Moves value-in-range to `utils.number` and removes `bounded-val`
* Moves animated values to view namespace
* Make `community.banner` component themeable
2023-07-28 13:18:33 -06:00
Mohsen Ghafouri 3b8f66d2ec [#16377] feat: add calendar component in quo2 preview (#16783) 2023-07-29 00:26:15 +05:30
Icaro Motta b9890a9d44 Upgrade shadow-cljs and ClojureScript (#15417)
This commit upgrades Shadow CLJS from 2.11.16 (released on Feb/21) to latest
2.25.0 (Jul/23), so ~1.5 years worth of upgrades. By upgrading shadow we
can finally use the latest major Clojure version 1.11.x.

Why upgrade shadow?

- Shadow CLJS controls the ClojureScript version we can use. In order to use the
  latest major Clojure version we must upgrade Shadow CLJS.

- Shadow CLJS releases new versions very frequently, and if you take a look at
  its changelog https://github.com/thheller/shadow-cljs/blob/master/CHANGELOG.md, you'll see
  it had tons and tons of bug fixes over the years. I hope some of them help
  improve the DX for certain contributors who recently reported issues with
  it.

- Clojure 1.11 brings new features, bug fixes and even performance improvements
  (although I think the performance mostly impacts Clojure on the JVM). See the
  changelog https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-1110

Things that can be beneficial to us, or are interesting nonetheless:

- New :as-alias to be used in require, which is like :as but does not require
  the namespace to load. This means namespaced keywords using :as-alias can't
  cause circular dependency errors. This feature would very useful if we used
  namespaced keywords, but we don't, so...
  https://github.com/clojure/clojure/blob/master/changes.md#22-as-alias-in-require
- New macros run-test and run-test-var to run single test with fixtures and
  report.
- New iteration function, useful for processing paginated data.
  https://www.abhinavomprakash.com/posts/clojure-iteration/
- New update-keys function: applies a function to every key in a map.
- New update-vals function: applies a function to every value in a map.

Examples for update-vals and update-keys. They should perform better than the
common reduce-kv approach since they use a transient data structure.

    (let [m {:a 1 :b 2}]
      (update-vals m inc)) ; => {:a 2, :b 3}
    
    (let [m {:a 1 :b 2}]
      (update-keys m name)) ; => {"a" 1, "b" 2}

Why change namespaces within __tests__ directories?

Any namespace with the word --tests-- throws an error, like the one below. I
didn't bother investigating why, so I changed the guidelines to reflect the new
convention. It's probably related to the double dashes in the name.

    Namespace quo2.components.dividers.--tests--.divider-label-component-spec has a
    segment starting with an invalid JavaScript identifier at line 1
2023-07-28 13:40:54 -03:00
Siddarth Kumar ac3b3970f2 fix crash (#16812) 2023-07-28 21:10:12 +05:30
Siddarth Kumar 1c405d3ed9 chore: wire up startSearchForLocalPairingPeers (#16803)
This commit initialises the status-go method `startSearchForLocalPairingPeers` which in turn will produce logs that are important for peer discovery while local pairing and will produce logs important to detect local pairing crashes.
2023-07-28 15:22:58 +05:30
Jamie Caprani a8303dbe50 chore: remove uses of override theme prop (#16570) 2023-07-28 02:36:54 -07:00
Tetiana Churikova 43cba161d6 gh: add label to bug template (#16796) 2023-07-27 16:56:12 +02:00
Yevheniia BerdnykandChurikova Tetiana ce08131c01 e2e: new pub key (#16779)
Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-07-27 13:14:09 +02:00
Ulises Manuel Cárdenas 4f044765e1 [#16278] fix tips in white camera border (#16716)
* Remove unnecessary wrapper
* Fix border tips and refactor
* Add comment about using 1.9 width
2023-07-26 14:08:57 -06:00
Parvesh Monu 7cd9f76043 Fix UI freezing when image is opened from activity center (#16707) 2023-07-26 18:19:10 +05:30
Icaro Motta 238e35a281 Unshadow more Clojure core vars (#16777)
This is a continuation of https://github.com/status-im/status-mobile/pull/16500 (Lint
& fix some shadowed core Clojure(Script) vars).

Notes: As a reminder, the goal is to eventually disallow shadowing core Clojure
vars entirely, but to get there and avoid rebase hell and regressions, we need
to do in smaller steps, especially because we can't safely automate the process
of unshadowing vars.

We are already down from ~500 shadowed core vars to 350 in total.

Why is this PR is using names such as "s", "v" or "sym"? Names such as s or v
are the so called idiomatic names, and are listed in the Clojure Style Guide
https://guide.clojure.style/#idiomatic-names. I used them whenever I felt
appropriate. For the var cljs.core/symbol I opted to use sym, even though the
symbol in question is not necessarily a Clojure symbol, I think the alias
conveys the meaning well enough
(https://www.clojure.org/guides/learn/syntax#_symbols_and_idents).

New vars linted:

- comparator
- identity
- str
- symbol
- val

Outstanding shadowed vars include type, name, hash, comp.
2023-07-26 11:26:12 +00:00
Alexander 57c538e9d0 Update navigation bar to support dark mode (#16762)
* Dark mode top bar

* Fixes

* Style fix
2023-07-26 09:48:51 +02:00
Omar BasemandMilad e49a3ab5cd feat: category reorder component (#16719)
* feat: category reorder component

---------

Co-authored-by: Milad <mmilad.sanati@gmail.com>
2023-07-26 11:11:17 +04:00
Mohamed Javid 1721b40b3f Refactor toast component to use theme context (#16711)
This commit refactors the "Toast" component to use theme context for consistency across the codebase.

Each toast will have its theme provider, which will help the children to use the context properly without interfering with other toast's context.

The following components are refactored to use with-theme / theme-context as it is used in the "Toast":

- "text" component
- "user-avatar" component
- "icon" component
- "circle-timer" component

This commit also updates the icon keyword used in the ":toasts/upsert" event dispatch to respect icon guidelines.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-25 20:36:02 +05:30
mmilad75 ec6800216b Notification Centre - add Empty Content screen (#16715)
* Notification Centre - add Empty Content screen (#16715)
2023-07-25 18:06:00 +03:30
Alexander 15add24cd7 Show authout details in message preview of context drawer (#16765) 2023-07-25 15:34:32 +02:00
Parvesh Monu 28f790b436 fix missing duration value in muted chat button text (#16769) 2023-07-25 17:22:12 +05:30
Tetiana Churikova 9aafe61f5f gh: update templates (#16771) 2023-07-25 12:33:34 +02:00
frank 02d45fa06f discard backup message when recovering account (#16748)
* discard backup message when recovering account

* fix test failed

* update status-go-version.json
2023-07-25 15:03:57 +08:00
Yevheniia Berdnyk 99dc79842d e2e: nigthly fixes 24.07 2023-07-24 23:14:16 +03:00
Parvesh Monu 2a8e6cb304 Implement activity logs photos component (#16760) 2023-07-25 00:49:26 +05:30
Yevheniia Berdnyk eb3de978ce e2e: mute chats 2023-07-24 17:43:44 +03:00
Brian Sztamfater e672bf9163 feat: onboarding transition for new to status flow (#16554)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-07-24 10:17:36 -03:00
Omar Basem e33c877989 feat: camera screen (1/2) (#16569)
* feat: camera screen (1/2)
2023-07-24 16:46:43 +04:00
BalogunofAfrica c5a486622d feat: browser input (#16487) 2023-07-24 13:28:43 +02:00
flexsurferandYevheniia Berdnyk 00f39225ea Do not show biometrics onboarding screen if biometric is not available (#16744)
* fix biometric screen

* updated e2e

---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2023-07-24 13:06:35 +02:00
Ulises Manuel Cárdenas 0ac6817488 [#16551] - shared community name in switcher (#16576)
* Fix community tag text ellipsis
* Fix channel card overflow and ellipsis in switcher
2023-07-21 14:15:29 -06:00
Jamie Caprani 33d41dc5d5 Refactor Button and correct use of community color (#16536)
* chore: refactor button and add use for community colors

* chore: update color in button to work with community color

* chore: correct uses of button across app
2023-07-21 06:43:41 -07:00
Omar Basem 76eea91ba2 feat: category quo2 component (#16713)
* feat: category component
2023-07-21 10:13:36 +04:00
Churikova Tetiana 1b2ad33926 e2e: TimeoutException 2023-07-20 20:06:43 +03:00
Mohamed Javid 9731e7039c Refactor Bottom Sheet to use Theme Context (#16710)
This commit updates "Bottom Sheet" to use the theme (for theme provider) provided on the bottom sheet args when dispatching. This will ensure the theme is passed down to its child components where it can consume and render based on the theme.

Changes done:

In Bottom Sheet:
 - Fix Bottom Sheet to use the correct background colour (neutral-95) for dark mode (as per Figma)
 - Fix the Icon colour for danger in light mode
 - Updated Quo2 Preview to provide an option for the bottom sheet theme

In Action Drawer:
 - Refactor the Action Drawer component to consume theme context

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-20 19:43:17 +05:30
Mohamed Javid b14757b120 [Fix] Scroll to bottom on editing message (#16630)
This commit fixes (by skipping) the scroll to the bottom of messages when the user edits a message and sends it.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-20 16:57:09 +05:30
John Ngei 2317e856bf Mute community
* mute and unmute community

https://github.com/status-im/status-go/compare/dfdaa722...e6187aec

* mute and unmute community and all community chats

https://github.com/status-im/status-go/compare/dfdaa722...3abc86e4

* updated statu-go

https://github.com/status-im/status-go/compare/dfdaa722...919123e1

* refactored mute chat drawer

https://github.com/status-im/status-go/compare/d3e650d5...3af0b17c

* refactored mute chat drawer

https://github.com/status-im/status-go/compare/dfdaa722...3af0b17c

* fixing mute channels

* fixed mute community channels

* update community chats mute status

https://github.com/status-im/status-go/compare/dfdaa722...dc50ac21

* added mute and unmute community toast

https://github.com/status-im/status-go/compare/dfdaa722...c06f7a6c

* unmute community when atleast one community channel is unmuted

https://github.com/status-im/status-go/compare/dfdaa722...e691c475

* updated status-go

https://github.com/status-im/status-go/compare/b2e56f5d...c52718cd

* updated status-go version v0.162.5
2023-07-19 16:30:42 +03:00
flexsurfer 32f18c3d3c [#16703] The display name is not resolved in chats for user sender after relogin (#16704) 2023-07-18 10:04:42 +02:00
Andrea Maria Piana e99f6de434 Update version to 0.162.3 2023-07-17 15:53:14 +01:00
Parvesh Monu bb3b3061c6 fix navigation to community from discover communities screen (#16702) 2023-07-17 13:56:46 +05:30
Ibrahem Khalil 0067468d57 Fix failing mute till test (#16453) 2023-07-16 15:02:32 +03:00
Ibrahem Khalil b2cbed444c [161108] Optimize message styling when there's multiple mentions on top of each other (#16505) 2023-07-16 14:40:09 +03:00
Yevheniia Berdnyk 1d0186a12e fix for airplane mode 2023-07-15 00:17:17 +03:00
Parvesh Monu c0e4653129 hide mutual update's system messages (#16674) 2023-07-14 19:29:19 +05:30
Andrea Maria Piana 60f18fc6fb Update readme 2023-07-14 10:42:17 +01:00
Parvesh Monu b531dadf96 fix navigating to chat via the 'Jump to' button breaks composer (#16604) 2023-07-14 13:45:12 +05:30
Andrea Maria Piana 2b0ea01710 Avoid panic when config missing in community 2023-07-14 08:26:21 +01:00
Mohamed Javid 9f5e7ce3f9 Add flash toggle for the camera in sync screen (#16558)
This commit adds a flash toggle for the camera in the "Sign in" and "Scan sync code" screens.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-13 17:33:53 +05:30
Parvesh Monu a340e2a55c fix image long press issue and cropping (#16571) 2023-07-13 14:07:42 +05:30
Icaro Motta 88c4521321 Move status-im.utils.money to utils.money (#16573) 2023-07-12 18:26:04 +00:00
codemaster 645a5b312b fix: banner images/colors in shell (#16239) 2023-07-13 00:56:43 +10:00
Andrés Felipe Ceballos M c55f12ecf8 [#15950] Updated build-image-messages (#16518)
Author: andresceballosm <ceballosmarandres@gmail.com>
2023-07-12 18:34:29 +05:30
Icaro Motta 6c28e9349f Fix & optimize shadows foundation (#16553)
Rewrite the shadows foundation API:

- Fix (implementation & usages): theme changes were not causing shadows to be
  reevaluated.
- Optimization: define all possible shadow values at compile time. Good to
  reduce cycles on garbage collection since recreating the shadow map all the
  time is unnecessary and also to save cycles on computing colors since calls to
  colors/alpha are not memoized.
- API redesign: unify access to Design System shadows in a single function.

None of the actual shadow values changed.

Fixes https://github.com/status-im/status-mobile/issues/16526

API rationale
=============

The quo2.foundations.shadows namespace reflects what's in the Design System >
Foundations > Shadows https://www.figma.com/file/v98g9ZiaSHYUdKWrbFg9eM/Foundations?type=design&node-id=624-965&mode=design&t=CvIotdjbHKHcHjpd-0).
Figma users see these shadows in other components as "Shadow/Normal/Light/03".
Notice the shadow's weight is shown as a number (not the semantic name in Figma,
e.g. "intense", "strong"):

So to make things as easy as possible, I opted for exposing a single public
function named "get", which receives arguments in order of frequency of usage
and which expects shadow weights as numbers so that devs don't need to mentally
translate 1 to "soft", or 3 to "intense".
2023-07-12 11:35:14 +00:00
Icaro Motta 6170686e34 Rewrite Community List component (#16527)
Re-implements the component Community List according to guidelines
and, most importantly, fixes a bunch of issues and tries to achieve 100%
compatibility with Figma.

The new implementation is trying to mirror Figma properties as much as possible.

Fixes https://github.com/status-im/status-mobile/issues/16447

Changelog:

- Refactor to guidelines.
- Fix: original implementation in money/format-amounts had a bug caught by new
  unit tests ("1000000" was formatted incorrectly).
- Fix: Community permission tag correct background when theme is overridden and
  when blur is enabled.
- Fix: Notification dot uses correct colors for dark mode and blur variants.
- Fix: Community stats background when blur is enabled.
- Fix: Community stats icon color when blur is enabled.
- Add: The component's Quo preview screen is smarter and will only show form
  fields (aka descriptors) that are relevant for each component type (engage,
  discover or share).
- Add: replace hardcoded community statistics with an implementation that
  actually accepts real numbers and which are correctly formatted.
- Add: New Quo descriptor type number.
- Add: Component uses correct shadows according to foundations/shadows.
2023-07-12 11:14:24 +00:00
Mohamed Javid 72e56dcf75 [Fix] Login Validation Error (#16562)
This commit fixes the log-in validation issue due to not receiving the "node.login" signal from "status-go".

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-12 16:12:50 +05:30
Jamie Caprani 4801342a42 chore: add doc on pixel perfection (#16539) 2023-07-12 03:31:14 -07:00
Tetiana Churikova 7282ba04bc e2e: fixes shell nav (#16545) 2023-07-12 11:21:39 +02:00
Ibrahem Khalil 2e397f0065 [16524] Fix chevron icon showing when chat is muted (#16528) 2023-07-12 11:28:53 +03:00
Parvesh Monu bcb55a1ab3 Enable shell navigation (#16438) 2023-07-12 13:24:50 +05:30
Alexander 224d6c7cad Top bar fixes (#16506)
* Recent fixes

* More fix attempts (more successful now)

* Updates for `on-content-size-change`

* Lint fix

* Update

* View fixes
2023-07-11 20:30:22 +02:00
Mohamed Javid 126a8705cd [Fix] Seen state in Activity Center when it is open (#16541)
This commit fixes the seen state of notifications, if the user is in the Activity Center screen while receiving a new notification.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-11 20:59:17 +05:30
Jamie Caprani 3fce4816dc feat: add video and animation to generating keys page (#16415) 2023-07-11 07:26:40 -07:00
Omar Basem 704b160964 feat: album selector animation (#16533)
* feat: album selector animation
2023-07-11 15:16:24 +04:00
Ibrahem Khalil 7350c88920 [16467] Fix delete for me doesn't work on chat reopen (#16529) 2023-07-11 13:42:14 +03:00
Omar Basem 7392b9bf50 Lightbox opacity swipe animation, and margins (#16510)
* feat: lightbox animations
2023-07-11 13:41:34 +04:00
Ibrahem Khalil f5948fa016 [16543] Fix muting channel from inside and outside chat page (#16544) 2023-07-10 22:42:15 +03:00
Mohamed Javid 919fbf2091 [Fix] Profile colour in "Jump to" and "View profile" buttons (#16538)
This commit fixes the profile colour in the following screens:

- "View Profile" button on the "Add a contact" page
- "Jump to" button inside the chat
- "Jump to" button in the "Community Overview" screen

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-10 18:44:31 +05:30
Parvesh Monu 728d9d01c5 fix App is not opened on the last viewed chat with biometric login enabled (#16516) 2023-07-10 15:33:31 +05:30
Jamie Caprani 9ac14b6fac chore: update guidelines for figma api to match quo2 component api (#16454) 2023-07-10 02:45:39 -07:00
Brian Sztamfater 4414f8ffd3 fix: onboarding carousel screen overflows affecting navigation (#16514)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-07-07 12:55:38 -03:00
Andrea Maria Piana 1e8ea3fd16 Enable lightclient
https://github.com/status-im/status-go/compare/67050429...67050429
2023-07-07 15:40:24 +01:00
Icaro Motta 17f5ad79f4 Fixes for the Community Channel avatar component (#16379)
- Community channels may not have an emoji, and in such cases, it should fall
  back to a single letter. The component was recently updated in Figma after
  this concern was brought up to designers.
- The default (fallback) color to be used in the list of community channels
  should be the community color, not a default "primary-50" as was before. It's
  a subtle change because the colors are rendered at 10% transparency.
- Rewrote the channel-avatar component to follow guidelines.

Fixes:

- https://github.com/status-im/status-mobile/issues/16332
- https://github.com/status-im/status-mobile/issues/16327
2023-07-07 14:16:50 +00:00
Siddarth Kumar d76e64b1bb fix: profile redirect on newly created account (#16340)
This commit gets rid of the app-state check which is buggy,
The app-state becomes `active` after the universal link code has executed always resulting in the redirect not happening.
2023-07-07 19:21:00 +05:30
flexsurfer ac675e28eb [#16520] ENS setting is unavailable on PRs when test network is set (#16521) 2023-07-07 15:34:02 +02:00
Omar Basem 5755d2e21a Lightbox text sheet (#16471)
* feat: lightbox text
2023-07-07 17:10:04 +04:00
Rahul Pratap cf2a3bfce7 Fixed issues with styling in pinned messages panel. (#16498) 2023-07-07 17:16:12 +05:30
Siddarth Kumar dcda44fab6 fix: ellipsis on compressed-keys as per designs (#16492)
This commit does the following:

- Moves `get-abbreviated-profile-url` from shell share view into `utils.address` and update its usage.

- Adds `get-shortened-compressed-key` to `utils.address` and update the code using `get-shortened-key` to now use `get-shortened-compressed-key` instead.

- Adds test for newly introduced utils.
2023-07-07 16:31:17 +05:30
Yevheniia Berdnyk 362aa476ae e2e: fix for nightly apk upload (#16517) 2023-07-07 11:08:13 +02:00
Jamie Caprani 25b088833d chore: move button into view and style files (#16442)
* chore: move button into view and style files
2023-07-07 00:20:37 -07:00
flexsurfer 3395baa966 fix smthg test folder (#16519) 2023-07-07 08:46:54 +02:00
flexsurfer 4327653b0b [#16422] Merge profile and profile overview into one map in status-go (#16507)
* [#16422] Merge profile and profile overview into one map in status-go
2023-07-06 19:46:21 +02:00
Yevheniia Berdnyk 26dcc16ea6 e2e: fix for endless apk upload + teardown 2023-07-06 17:47:35 +03:00
Icaro Motta 9ed68ee7d1 Lint & fix some shadowed core Clojure(Script) vars (#16500)
It's well known that shadowing core Clojure vars can lead to unexpected bugs. In
fact, it's a common source of bugs in other languages too. In the status-mobile
repository there are, in total, 562 shadowed vars, ~500 are core vars. Excluding
the "old code" we still have 285 offenders.

In status-mobile I've already seen two bugs caused by shadowed vars, both with
the shadowed var "name". But probably other problems happened in the past, and
others will happen in the future if we don't do something about this. This PR is
also my response to my frustration trying to review PRs and checking for
shadowed vars, humans were not meant for that!

In this commit we are enabling ":shadowed-var" to lint certain (not all) core
vars as errors (not warnings). In future PRs we can gradually unshadow more
vars. For the record, name is shadowed 40 times in the new code and 130 in
total, and type is shadowed 93 times in the new code and 124 in total!

What about non-core vars, should we allow shadowing? There are ~70 non-core
shadowed vars. In my opinion, we should also lint and disallow shadowing
non-core vars, since it may cause the same kind of bugs of shadowing core vars.
But this decision can be left for another moment/issue, after we have fixed the
most prominent problem of shadowing core vars.

Which vars are unshadowed in this PR? I fixed 62 errors and unshadowed
cljs.core/iter, cljs.core/time, cljs.core/count, cljs.core/key,
clojure.core/key.

Resources:

- [clj-kondo linter: shadowed-var](https://github.com/clj-kondo/clj-kondo/blob/master/doc/linters.md#shadowed-var)
2023-07-06 10:28:07 +00:00
Parvesh Monu 4d7cf3e94e Replace placeholders on "Jump to" page (#16501) 2023-07-06 15:27:18 +05:30
flexsurfer 4decba8d00 multiaccounts refactoring S3, refactor keychain and touchid, move and refactor create/recover/login profile (#16448)
* multiaccounts refactoring S3 E1, refactor keychain and touchid,simplify app init flow, refactor biometric flow
* S3 E2 move and refactor create/recover/login methods
2023-07-06 11:25:57 +02:00
Ibrahem Khalil 229a806f12 [16079] Fix dark mode for communities and messages home (#16382) 2023-07-05 22:34:13 +03:00
Ibrahem Khalil abe653c086 [16469] Fix conditional of selection user's name in confirmation drawer (#16489) 2023-07-05 20:06:19 +03:00
AlexanderandOmar Basem f047665f75 Dynamically calculate composer height to adjust the spacing on the bottom of the list (#16235)
* fix: Android auto scrolling to bottom of chat

---------

Co-authored-by: Omar Basem <omarbasem.0101@gmail.com>
2023-07-05 18:30:27 +04:00
Tetiana Churikova ea3b090265 e2e: change numpocesses (#16494) 2023-07-05 14:59:36 +02:00
Tetiana Churikova c52bf965f7 e2e: more groups (#16483) 2023-07-05 11:55:40 +02:00
Ulises Manuel Cárdenas e260187cf5 [#16073] Password info box
* Refactor: Remove use of f-component

* Fix documentation drawer styles

* Refactor: move title styles to style ns

* Fix StaticSafeAreaInsets not being defined on component tests

* Fix bottom sheet height on Android
2023-07-04 17:08:47 -06:00
Ulises Manuel Cárdenas ca0915c940 #16111 - Toast animation & dismiss gesture
* Enable toast animations and refactor

* Add gesture-handler-root-HOC to detect toast's gestures on Android

* Add comment about flex 0 style
2023-07-04 16:25:08 -06:00
Ulises Manuel Cárdenas 2b4b357c32 [#16378] Fix channel unread counter space
* Makes `divider-label` styles more lenient

* Small refactor to `list-items.channel` component

* Fix styles for `channel-list-component`
  - Refactor `channel-list-component`
  - Add some missing `:style` keys in `status-im2.contexts.communities.overview.view`
  - Fix a warning related to using a `deref` in a `lazy-seq`

* Changes icon keyword namespace from `:main-icons` to `:i`
2023-07-04 16:11:56 -06:00
Icaro Motta 19ca8e28a5 Lint and fix missing trailing newlines (#16445)
Apply the Clojure Style Guide recommendation to end files with proper lines
(having a trailing newline character). See
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
2023-07-04 19:40:13 +00:00
Yevheniia Berdnyk 8978e92042 e2e: nightly fixes 2023-07-04 20:26:05 +03:00
Brian Sztamfater c2c79cc1ac feat: implement onboarding modal transition for sign in screen (#16167) 2023-07-04 12:43:08 -03:00
Parvesh Monu affd2a5e76 Implement static loading skeleton (#16474) 2023-07-04 16:55:22 +05:30
Yevheniia Berdnyk ef99bf2ad6 e2e: tests for reactions in community and group chats 2023-07-04 13:17:48 +03:00
Jamie Caprani 1f6f907d57 feat: add markdown list component to quo2 (#16411) 2023-07-03 13:08:19 -07:00
Jamie Caprani 97b254c514 chore: update use of theme in page-nav component (#16424) 2023-07-03 08:37:31 -07:00
Yevheniia Berdnyk ca2ed9d37e e2e: fixes for backup users and unread indicator tests 2023-07-03 15:55:05 +03:00
Jamie Caprani e64ff76e0b update theming for profile-input, empty state and predictive keyboard components (#16423)
* chore: remove override-prop from empty-state component

* chore: remove override-prop from profile-input and title-input components

* chore: remove override-prop from predictive-keyboard component
2023-07-03 04:26:33 -07:00
Mohamed Javid 88884064b1 Update Bottom sheet screen to use theme context (#16429)
This commit updates the `bottom-sheet-screen` component (which used `override-theme` from `screen-params` subs) to use the theme from the context provider.

The bottom sheet screen will pick the theme specified in the screen options (to override) as expected. If it's not specified, then it will fall back to the user's theme.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-03 13:00:41 +05:30
Anton Iakimov a6e6716311 ci: add shebang to jenkinsfiles 2023-07-02 09:11:54 +02:00
Anton Iakimov 07d037f2e1 nix: downgrade watchman to 4.9.0
watchman was upgraded significantly during the last #14944 (4.9.0 (Aug 16, 2017) to 2023.01.30.00 - 6 years between):
status-im/nixpkgs@4e9c02b

Probably causing developers to have "too many files open" issue #16341

This PR is an attempt to fix the issue by downgrading the watchman

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-07-02 08:46:28 +02:00
Andrea Maria Piana 36a72f2d63 Set nameserver on login 2023-07-01 08:39:12 +01:00
Jamie Caprani 4c0a8d9f6d chore: use with theme for step component (#16399) 2023-06-30 09:02:46 -07:00
Brian Sztamfater 2d860c363a feat: allow navigation inside different stacks (#16419)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-30 11:48:35 -03:00
Icaro Motta 186ac482ee Comment time bomb test out (#16452) 2023-06-30 12:47:24 +00:00
Andrea Maria Piana f015eb929a [Fixes: #16203] Fix delete for me replies images
https://github.com/status-im/status-go/compare/09c5223d...b058ab41
2023-06-30 11:14:49 +01:00
Volodymyr Kozieiev bca7ab7925 Use only counter (no unread indicator) for chats bottom bar tab (#16417) 2023-06-29 16:42:08 +01:00
Yevheniia Berdnyk 5f441dfa93 e2e: Reactions in 1-1 chats 2023-06-29 17:49:15 +03:00
Parvesh Monu 5d0aa6a2f7 fix App crashes when jump-to has group chat card (#16431) 2023-06-29 18:10:58 +05:30
flexsurfer d9f7510d13 key-storage cleanup (#16427) 2023-06-29 14:29:39 +02:00
Roman Volosovskyi b953ddb5af [#15944] Set installation name on account creation 2023-06-29 14:06:23 +02:00
Tetiana Churikova 3058ebe018 e2e: small adjustments (#16439) 2023-06-29 14:05:13 +02:00
frank a7ddda40c4 fix: ROW_NUMBER() not work on ios for some reason (#16426)
* fix: ROW_NUMBER() not work on ios for some reason

* update status-go-version.json

* update status-go-version.json

* update status-go-version.json
2023-06-29 19:11:15 +08:00
Tetiana Churikova ba8c08650b e2e: updated wait_to (#16416) 2023-06-28 14:27:57 +02:00
flexsurfer c5a7bf39d7 multiaccounts refactoring part1 (#16414) 2023-06-28 13:48:34 +02:00
Ibrahem Khalil e0a0c6331f [16352] [Bugfix] New message indicator not showing on bottom navigation for unmuted chats and another bug (#16380) 2023-06-27 19:44:28 +04:00
Parvesh Monu b5a96a254a Implement Swipe navigation for floating screen (#16390) 2023-06-27 21:02:54 +05:30
Rahul Pratap 6b0a51720e Update animation for onboarding carousel. (#16294)
* Update animation for onboarding carousel.

* Fixed issues with long press while swipe.

* Fixed issues after generating keys.
2023-06-27 20:45:13 +05:30
Jamie Caprani e0e693791f chore: small refactor to remove some uses of status-im in status-im2 (#16358) 2023-06-27 07:11:07 -07:00
watson cebc50d409 Adjust identifiers page to do highlighting (#15752) 2023-06-27 14:45:10 +01:00
jakub 1503f6b250 nix: use Darwin stat command explicitly
Otherwise if in Nix context we can accidentally use GNU stat which
results in a different output due to different command line flags:
```
[nix-shell:~/status-mobile]$ stat -Lf "%Sg" "/nix/store"
stat: cannot read file system information for '%Sg': No such file or directory
  File: "/nix/store"
    ID: 10000110000001a Namelen: ?       Type: apfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 242837545  Free: 199242283  Available: 199242283
Inodes: Total: 7971454780 Free: 7969691320
```
And it should be just owner group name or ID. Which in turn results in:
```
Unknown Nix installtion type!
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-27 13:25:41 +02:00
Jamie Caprani 46182ad308 chore: move activity centre and share into shell namespace (#16395) 2023-06-27 03:48:23 -07:00
Jamie Caprani fa698dbc30 feat: add parallax to biometrics page for whitelisted devices (#16296) 2023-06-27 02:50:27 -07:00
Ibrahem Khalil 79151ee85d Disable image description in lightbox (#16405) 2023-06-27 12:15:04 +03:00
Ibrahem Khalil 4c8671caa0 [15902] BUGFIX - Resolve public keys into the user's name in the confirmation drawer and image description (#16176) 2023-06-27 10:42:01 +03:00
Omar Basem 86219dbad8 feat: save image (#16268)
* feat: save image
2023-06-27 11:03:29 +04:00
Yevheniia Berdnyk cd32806c96 e2e: Updated error message in 702783 2023-06-27 02:52:28 +03:00
frank ab16ca34dd improve: enable collect logs before login (#16392) 2023-06-27 07:42:53 +08:00
Ulises Manuel Cárdenas e2b7a299b4 [#16322] Add carousel tap gesture
* Add tap gesture to carousel

* Updates uses of carousel

* Gestures only detected on carousel content instead of full screen on Android
2023-06-26 14:19:09 -06:00
Anton Iakimov 5dcd64c478 nix: fix Android SDK on Darwin with nixpkgs system override
Android SDK in nixpkg doesn't support `aarch64-darwin`, for details see
https://github.com/status-im/status-mobile/issues/12794

The workaround was to run terminal application with Rosetta or make with `aarch` tool.

This PR overrides system architecture to always be `x86_64` for Android shell and build targets ran by make.
CI is not affected as it runs `nix` directly.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-26 17:33:44 +02:00
Brian Sztamfater 6d6e6b1eff fix: calibrate duration of recorded audio (#15543)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-26 11:02:13 -03:00
Brian Sztamfater 60a8b944d9 fix: send user to settings if audio permission is rejected (#16049) 2023-06-26 10:35:13 -03:00
Brian Sztamfater 437cfa9a77 feat: add blur effect on scroll for buttons inside gallery view (#16319)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-26 10:19:54 -03:00
Andrea Maria Piana 36aefd0e5a Fix race condition on sending messages
https://github.com/status-im/status-go/compare/d3e650d5...f23cb406
2023-06-26 13:37:20 +01:00
Mohamed Javid ce82e87cd0 Update broken Status development link in ide-setup.md (#16391)
This commit updates the broken link of `Status development` in the `Start and connect the REPL` section of `ide-setup.md`.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-26 16:43:58 +05:30
Parvesh Monu 8f21cecf81 fix deleted message remains in preview at Jump to section (#16385) 2023-06-26 16:19:32 +05:30
Parvesh Monu 4a4974b541 Animate floating screen border radius (#16384) 2023-06-26 15:59:43 +05:30
Anton Iakimov 43ef6db7b9 js: remove unused visual tests and detox package #16372
After the nixpkgs upgrade we started to have Xcode command line tools installation popup on each make test, dtrace-provider was failing meanwhile: #16356

It appeared, that it was failing before the upgrade with different issue: #16356

dtrace-provider is a dependency for detox, which was added for visiual tests in #14329
These tests don't run.

This build issues didn't cause any problems, because it was not obligatary.
See NODE_DTRACE_PROVIDER_REQUIRE option, which can enforce this requirement.

See #16356 for more details.

In this PR we disable detox dependency for now.
And also Visual Tests.
2023-06-26 11:59:15 +02:00
Mohamed Javid 6f0d375e8a Refactor "How to pair" screen and add "Find sync code" screen (#16364)
This commit refactors the "How to pair" bottom screen (introduced in #15710) on Syncing page, to be reused in "Sign In" and "Sync new device" screens by moving the UI rendering functions to the common place.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-26 15:27:59 +05:30
flexsurfer 9826898b00 followupchanges #16355 (#16371) 2023-06-26 11:36:48 +02:00
Siddarth Kumar 1c50dc7067 nix: skip git-lfs checks failing on darwin
On macOS `git-lfs` checks fail sometimes and they also take a lot of time to execute.

```log
FAIL    github.com/git-lfs/git-lfs/v3/lfshttp   0.820s
FAIL
error: builder for '/nix/store/abd6spw876qvcmlpcwsljsnbpbnvx1fg-git-lfs-3.3.0.drv' failed with exit code 1;
       last 10 log lines:
       >          Error Trace:    certs_test.go:210
       >              Error:          Expected value not to be nil.
       >          Test:           TestCertFromSSLCAPathEnv
       >     certs_test.go:210:
       >               Error Trace:    certs_test.go:210
       >              Error:          Expected value not to be nil.
       >          Test:           TestCertFromSSLCAPathEnv
       > FAIL
       > FAIL    github.com/git-lfs/git-lfs/v3/lfshttp   0.820s
       > FAIL
       For full logs, run 'nix-store -l /nix/store/abd6spw876qvcmlpcwsljsnbpbnvx1fg-git-lfs-3.3.0.drv'.
```
Failures initially observed by me and @smohamedjavid and then today again reported by @yqrashawn

This commit adds a `nix` overlay that skips those checks
2023-06-26 10:49:32 +02:00
Yevheniia Berdnyk fc52d5f062 e2e: added attempts for MaxRetryError handling 2023-06-26 11:12:53 +03:00
flexsurfer e5e68e0e83 [#16092] Auto-rotate breaks UI on Android (#16370) 2023-06-26 06:58:03 +02:00
Ibrahem 125d3239de nix: build derivation from sources if cache fails
This is a workaround for a well known issue of Nix failing to download
bigger packages from Nix cache due to errors like this:
```
HTTP error 200 (curl error: Transferred a partial file)
```
or
```
HTTP error 200 (curl error: Stream error in the HTTP/2 framing layer)
```
From docs: https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-fallback

>If set to true, Nix will fall back to building from source if a binary
>substitute fails. This is equivalent to the --fallback flag. The default is false.

Realted: https://github.com/status-im/infra-ci/issues/17

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-25 23:34:59 +02:00
jakub 33e270fb1c scripts: disable pipefail when greping for SHA
Otherwise it fails early and doesn't work for branches.

I also refactored it a bit so the `pipefail` disbaling is local.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-24 15:55:58 +02:00
Anton Iakimov 7e56e35f56 nix: add missing Apple SDKs to fix make test on macOS
Fixes following error:
```
ld: framework not found IOKit
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [status_nodejs_addon.target.mk:175: Release/status_nodejs_addon.node] Error 1
```
The `make test` target started to fail on macOS after #14944.

This PR adds 2 Apple SDK frameworks to default shell: `IOKit` and `CoreServices`

The other 2 mentioned in `binding.gyp` are not added, but build is ok.

Resolves: https://github.com/status-im/status-mobile/issues/16356

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-24 10:56:21 +02:00
jakub 5e6d488a3e nix: fix cache usage by modifying global config
Otherwise Nix produces warnings like this:
```
warning: ignoring untrusted substituter 'https://nix-cache.status.im/', you are not a trusted user.
```
Since adding users to `trusted-users` essentially gives them `root`:

>Adding a user to trusted-users is essentially equivalent to giving that user root access to the system.
> — https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-trusted-users

A more kosher approach might be to just add the cache config itself globally.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-23 18:02:38 +02:00
Jamie Caprani 9767c3f3a5 chore:move jump-to functionality inside namespace for shell (#16361) 2023-06-23 16:39:42 +01:00
Jamie Caprani e5778ee300 feat: add new theming mechanism (#16191)
* chore: set react-dom to same version as react
2023-06-23 05:11:50 -07:00
flexsurfer 1591a5e2da [#16157] Pinned list button is absent when user is located at the top… (#16355) 2023-06-23 13:41:49 +02:00
Parvesh Monu 3bb3fefea7 Redirect to onboarding welcome screen if all profiles are removed (#16368) 2023-06-23 17:03:14 +05:30
jakub 33b2e12e3b android: fix Gradle deps, drop Flipper, upgrade Fresco
There are a few fixes here:

* Changes format of Gradle deps to `:buildEnvironment` and `:dependencies`:
    ```
    Cannot locate tasks that match '::buildEnvironment'. The path should not include an empty segment (try ':buildEnvironment' instead).
    ```
* Fix for GNU Parallel tool to use stdin for list of arguments:
    ```
    nix/deps/gradle/generate.sh: line 55: parallel: Argument list too long
    ```
* Update of Facebook Fresco dependencies from `2.2.0` to `2.5.0` to fix:
    ```
     > echo com.facebook.fresco:animated-gif:2.2.0 | ./go-maven-resolver > /dev/null
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:imagepipeline-native:2.2.0 O=false S=compile >
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:memory-type-native:2.2.0 O=false S=compile >
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:imagepipeline:2.2.0 O=false S=compile >
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:drawee:2.2.0 O=false S=runtime >
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:memory-type-java:2.2.0 O=false S=compile >
    finder.go:121: error: 'no pom data' for: <Dep ID=com.facebook.fresco:fbcore:2.2.0 O=false S=runtime >
    ```
* Remove Flipper to avoid pulling in Fresco `2.2.0` versions:
    ```
    +--- com.facebook.flipper:flipper-fresco-plugin:0.54.0
    |    +--- com.facebook.fresco:fresco:2.2.0 -> 2.5.0
    |    +--- com.facebook.fresco:flipper:2.2.0
    |    \--- com.facebook.fresco:stetho:2.2.0
    ```

Thanks for help from Sidarth.

Resolves: https://github.com/status-im/status-mobile/issues/16367

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-23 12:02:18 +02:00
Andrea Maria Piana 398810066d Add team member to decision (#16336) 2023-06-23 11:36:07 +02:00
Yevheniia Berdnyk 0cb525aade e2e: updated test_restore_multiaccount_with_waku_backup_remove_switch 2023-06-23 00:50:38 +03:00
Brian Sztamfater be245d5612 fix: close keyboard when start scrolling on chat (#16339)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-22 13:35:55 -03:00
Jamie Caprani 9ec4f91c9e chore: onboarding profile adjustments (#16291)
* remove b&w color as an option

* change system message for minimum display name length to match designs

* update display name validation to match desktop
2023-06-22 08:00:06 -07:00
jakub 7260c23e8e nix: downgrade from 2.14.1 to 2.13.4
Should resolve errors like this:
```
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-22 14:23:47 +02:00
Icaro Motta d300e88062 Fix incorrect background color in Community Overview screen (#16348)
Fixes the main issue #16313, but also other correlated bugs.

- Fix: quo2 component navigation.page-nav does not stretch out to the maximum
  available height when there are only 1 to ~6 community channels.
- Fix: options menu button didn't use the correct background color (it should
  have 40% transparency).
- Fix: Remove bottom-left & bottom-right rounded borders from the bottom of the
  page-nav container.
- Fix: Remove top-left & top-right rounded borders from the screen's header.
- Fix: Use correct background color in the page-nav, now neutral-95 instead of
  neutral-90.
2023-06-22 11:51:06 +00:00
Parvesh Monu 8a4cba56f6 Improve hot reloading (#16349) 2023-06-22 16:55:09 +05:30
Alexander 1953137068 Updated styles and layouts for messages (#16188)
* Messages style

* More styling

* Chat layout

* Formatting fix

* Fixes

* Updates

* Fix

* Styles for pinned messages

* Style fixes

* Style fixes
2023-06-22 11:47:30 +02:00
Ibrahem Khalil 88bb84bb3e [15128-followup] PR comments and cleanup (#16350) 2023-06-22 09:11:17 +03:00
Ibrahem Khalil 7aa40b8adf [14556, 14259] Allow users to mute community channels and to mute chats for specific duration (#15128) 2023-06-22 08:25:17 +03:00
frank db44ee67e6 init status-go logging once app start up (#16325)
https://github.com/status-im/status-go/compare/4cc53630...7da1ed38
2023-06-22 07:45:55 +08:00
Ulises Manuel Cárdenas 83a298f831 [#16335] - Add space before "Forgot password?"
* Add space before "Forgot password?"
* Improves error message
2023-06-21 17:17:01 -06:00
erikseppanen d91e67cae7 Add featured-community data (#16232) 2023-06-21 10:07:00 -04:00
jakub c4b13eb043 nix: use builtins to not depend on channels
We use `builtins.fetchTarball` to avoid having to first import a
`nixpkgs` from existing channels, which breaks if there are no channels.

Otherwise new Nix 2.14 version can result in:
```
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)
```
Which happens due to no default `nixpkgs` channel existing:
```
 > nix-channel --list

```
Resolves: https://github.com/status-im/status-mobile/issues/16342

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-21 15:36:08 +02:00
+2 60545a6608 fix: activity center notifications swipe style (#16222)
* fix: remove placeholder icons

* fix: swipe action button style

* lint fix

* fix: swipe action button space

* fix: lint

* Fix for two separate sections with different colors shown on the chat screen (dark mode)  (#16265)

* Fix for two separate sections with different colors shown on the chat screen (dark mode)

* lint-fix

* temporary hide mutual update's messages (#16290)

* chore: fix unit test for slide button (#16302)

* nix: upgrade interpreter from 2.11.1 to 2.14.1

This is a mild upgrade that should not cause any controversy.

You can read about changes here:
- https://nixos.org/manual/nix/stable/release-notes/rl-2.12.html
- https://nixos.org/manual/nix/stable/release-notes/rl-2.13.html
- https://nixos.org/manual/nix/stable/release-notes/rl-2.14.html

Relevant `infra-ci` change:
- https://github.com/status-im/infra-ci/commit/e4e9796f

The simplest way to upgrade to `2.14` your version locally is using:
```sh
nix-channel --update
nix-env -iA nixpkgs.nixVersions.nix_2_14 nixpkgs.cacert
sudo systemctl daemon-reload
sudo systemctl restart nix-daemon
```
For MacOS the instructions are a bit different:
https://nixos.org/manual/nix/stable/installation/upgrading.html

Keep in mind you should use `nixpkgs.nixVersions.nix_2_14` instead
of just `nixpkgs.nix` to avoid getting newer than `2.14`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: add upgrade script for Nix interpreter

Now developers can upgrade to current Nix version using just:
```sh
make nix-upgrade
```
For manual instructions see:
https://nixos.org/manual/nix/stable/installation/upgrading.html

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* fix switcher cards position in ios (#16301)

* Fix community tags and button spacing (#16292)

Linked to https://github.com/status-im/status-mobile/issues/16119, fixes
these issues:

- Clipped community tags. They should extend to the edge of the screen.
- Outdated information box message. Updated according suggestion in Figma
  https://www.figma.com/file/h9wo4GipgZURbqqr1vShFN/Communities-for-Mobile?type=design&node-id=7035-462899&t=wED97E4Mtv9v6OXf-0
- Add correct padding between community tags and the Request to join Community
  button.

* Add decision about team structure & wallet team

* [#16118] bottom nav tab notification color (#16236)

* [#16066] bottom sheet height (#16285)

* Update prettier config for the project. (#16303)

* Update prettier config for the project.

* Add prettier to make lint-fix.

* fix: placeholder icons for join community, identity verification request

* fix: lint

* Make profile photos visible by default (#16095)

* Fix incorrect channel option (#16314)

* e2e: tests fixes

* tests: fix type of shell used for linting

Otherwise Node modules are not installed.

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: upgrade nixpkgs to latest nixos-22.11

Notable upgrades:

* Bash `5.1` to `5.2`
* Git `2.37.3` to `2.40.1`
* Curl `7.85.0` to `8.0.1`
* OpenSSL `3.0.5` to `3.0.8`
* Go `1.18.6` to `1.18.9`
* NodeJS `18.9.1` to `18.16.0`
* Java `1.8.0_322` to `11.0.11`
* Ruby `3.1.2` to `3.1.4`
* Python `2.7.18` to `3.10.11`
* Clojure `1.11.1.1165` to `1.11.1.1273`
* Clj-kondo `v2022.10.05` to `v2023.04.14`
* Zprint `1.2.5` to `1.2.6`
* Bundler `2.3.22` to `2.4.13`
* Gradle `6.9.2` to `6.9.4`
* Android Platform Tools `33.0.2` to `33.0.3`
* Android SDK Tools to Android SDK Command-Line Tools

Removals:

* Zprint since the version in `nixpkgs` was newer than in overlay.
* Xcode wrapper definition was removed since my fixes were merged:
  - https://github.com/NixOS/nixpkgs/pull/204278
  - https://github.com/NixOS/nixpkgs/pull/228696

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* ci: build generic status-go and all shells

When discussing caching of `status-go` with Sid I noticed that the build
we cache daily created from our nightly build is different from the
build we create locally due to a single input.

In a release CI host we can see the IPFS URL is that of Infura:
```
 > find /nix/store -maxdepth 1 -name '*-status-go-*android' | tail -n1
/nix/store/2cc8ilhx5g3k2awbn4sla61n4cml2405-status-go-0.130.1-d2cce5e-android

 > RESULT=$(find /nix/store -maxdepth 1 -name '*-status-go-*android' | tail -n1)

 > nix show-derivation $RESULT | tr ' ' '\n' | grep IpfsGateway
github.com/status-im/status-go/params.IpfsGatewayURL=https://status-im.infura-ipfs.io/ipfs/
```
But for a local build the URL is the default, which is our own gateway:
```
 > nix-build --no-out-link -A targets.status-go.mobile.android
/nix/store/1p53m7a6y1kg3vcyd8d06scf3bsyn5rk-status-go-0.157.2-47711c4-android

 > RESULT=$(nix-build --no-out-link -A targets.status-go.mobile.android)

 > nix show-derivation $RESULT | tr ' ' '\n' | grep IpfsGateway
github.com/status-im/status-go/params.IpfsGatewayURL=https://ipfs.status.im/
```
This difference causes builds of `status-go` that get uploaded to our
Nix cache to not match what developers locally would build, which
results in a cache miss.

This changes the Nix cache CI jobs to instead of building only dependencies
(`buildInuts`) to simply build the generic versions of `status-go` without
nightly specific inputs.

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: fix applying nix.conf by using correct env var

According to this line from the docs:

>The system-wide configuration file sysconfdir/nix/nix.conf (i.e. /etc/nix/nix.conf),
>or $NIX_CONF_DIR/nix.conf if NIX_CONF_DIR is set. Values loaded in this file are not
>forwarded to the Nix daemon. The client assumes that the daemon has already loaded them.

https://nixos.org/manual/nix/stable/command-ref/conf-file.html#description

Our usage of `NIX_CONF_DIR` has been wrong for a while now.
The correct way of applying this config is using `NIX_USER_CONF_FILES`.

In addition the `extra-substituters` no longer exists in the docs.
Use of `trusted-substituters` is necessary according to:

>At least one of the following conditions must be met for Nix to use a substituter:
>
>- the substituter is in the trusted-substituters list
>- the user calling Nix is in the trusted-users list

https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-substituters

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* Upgrade `react-native-camera-kit` library to resolve camera issues in Sign In screen (#16248)

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>

* Update prettier script. (#16324)

* Update prettier script.

* Add target and component-spec to prettierignore.

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
Co-authored-by: Alexander <alwxndr@gmail.com>
Co-authored-by: flexsurfer <flexsurfer@users.noreply.github.com>
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>
Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Co-authored-by: Ulises Manuel Cárdenas <90291778+ulisesmac@users.noreply.github.com>
Co-authored-by: Rahul Pratap <rahulpsingh@users.noreply.github.com>
Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
Co-authored-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-21 22:54:35 +10:00
frank be52ff096d [15524] Support mentioning non Latin nicknames (#16320)
* fix #15524
2023-06-21 15:22:42 +08:00
Ibrahem Khalil 769d974eff Make reactions row scrollable (#16298) 2023-06-20 19:50:25 +03:00
Andrea Maria Piana 66cd3edf7f Use new login endpoint
https://github.com/status-im/status-go/compare/47711c4f...47711c4f

This commit changes the login endpoint so that it uses LoginAccount.
The main difference is that is consistent with the two others we use for
creation/importing, and this will override the networks and use the
secrets provided.
2023-06-20 16:51:15 +01:00
Rahul Pratap bb7ff3239d Update prettier script. (#16324)
* Update prettier script.

* Add target and component-spec to prettierignore.
2023-06-20 19:50:27 +05:30
Mohamed Javid b397411daa Upgrade react-native-camera-kit library to resolve camera issues in Sign In screen (#16248)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-20 18:50:05 +05:30
jakub 6f8dc27282 nix: fix applying nix.conf by using correct env var
According to this line from the docs:

>The system-wide configuration file sysconfdir/nix/nix.conf (i.e. /etc/nix/nix.conf),
>or $NIX_CONF_DIR/nix.conf if NIX_CONF_DIR is set. Values loaded in this file are not
>forwarded to the Nix daemon. The client assumes that the daemon has already loaded them.

https://nixos.org/manual/nix/stable/command-ref/conf-file.html#description

Our usage of `NIX_CONF_DIR` has been wrong for a while now.
The correct way of applying this config is using `NIX_USER_CONF_FILES`.

In addition the `extra-substituters` no longer exists in the docs.
Use of `trusted-substituters` is necessary according to:

>At least one of the following conditions must be met for Nix to use a substituter:
>
>- the substituter is in the trusted-substituters list
>- the user calling Nix is in the trusted-users list

https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-substituters

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-20 13:55:07 +02:00
jakub e08d3bd78d ci: build generic status-go and all shells
When discussing caching of `status-go` with Sid I noticed that the build
we cache daily created from our nightly build is different from the
build we create locally due to a single input.

In a release CI host we can see the IPFS URL is that of Infura:
```
 > find /nix/store -maxdepth 1 -name '*-status-go-*android' | tail -n1
/nix/store/2cc8ilhx5g3k2awbn4sla61n4cml2405-status-go-0.130.1-d2cce5e-android

 > RESULT=$(find /nix/store -maxdepth 1 -name '*-status-go-*android' | tail -n1)

 > nix show-derivation $RESULT | tr ' ' '\n' | grep IpfsGateway
github.com/status-im/status-go/params.IpfsGatewayURL=https://status-im.infura-ipfs.io/ipfs/
```
But for a local build the URL is the default, which is our own gateway:
```
 > nix-build --no-out-link -A targets.status-go.mobile.android
/nix/store/1p53m7a6y1kg3vcyd8d06scf3bsyn5rk-status-go-0.157.2-47711c4-android

 > RESULT=$(nix-build --no-out-link -A targets.status-go.mobile.android)

 > nix show-derivation $RESULT | tr ' ' '\n' | grep IpfsGateway
github.com/status-im/status-go/params.IpfsGatewayURL=https://ipfs.status.im/
```
This difference causes builds of `status-go` that get uploaded to our
Nix cache to not match what developers locally would build, which
results in a cache miss.

This changes the Nix cache CI jobs to instead of building only dependencies
(`buildInuts`) to simply build the generic versions of `status-go` without
nightly specific inputs.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-20 13:55:06 +02:00
jakub c97559793c nix: upgrade nixpkgs to latest nixos-22.11
Notable upgrades:

* Bash `5.1` to `5.2`
* Git `2.37.3` to `2.40.1`
* Curl `7.85.0` to `8.0.1`
* OpenSSL `3.0.5` to `3.0.8`
* Go `1.18.6` to `1.18.9`
* NodeJS `18.9.1` to `18.16.0`
* Java `1.8.0_322` to `11.0.11`
* Ruby `3.1.2` to `3.1.4`
* Python `2.7.18` to `3.10.11`
* Clojure `1.11.1.1165` to `1.11.1.1273`
* Clj-kondo `v2022.10.05` to `v2023.04.14`
* Zprint `1.2.5` to `1.2.6`
* Bundler `2.3.22` to `2.4.13`
* Gradle `6.9.2` to `6.9.4`
* Android Platform Tools `33.0.2` to `33.0.3`
* Android SDK Tools to Android SDK Command-Line Tools

Removals:

* Zprint since the version in `nixpkgs` was newer than in overlay.
* Xcode wrapper definition was removed since my fixes were merged:
  - https://github.com/NixOS/nixpkgs/pull/204278
  - https://github.com/NixOS/nixpkgs/pull/228696

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-20 12:53:06 +02:00
jakub fa59843804 tests: fix type of shell used for linting
Otherwise Node modules are not installed.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-20 12:20:54 +02:00
Yevheniia Berdnyk 5b5a29a2e1 e2e: tests fixes 2023-06-20 03:42:14 +03:00
Icaro Motta b1b30b889d Fix incorrect channel option (#16314) 2023-06-19 20:10:46 +00:00
Alexander 51cfdf3e59 Make profile photos visible by default (#16095) 2023-06-19 20:53:22 +02:00
Rahul Pratap c80992b6bf Update prettier config for the project. (#16303)
* Update prettier config for the project.

* Add prettier to make lint-fix.
2023-06-19 19:09:12 +05:30
Ulises Manuel Cárdenas 428616332b [#16066] bottom sheet height (#16285) 2023-06-19 15:22:45 +02:00
Ulises Manuel Cárdenas 2b465cb980 [#16118] bottom nav tab notification color (#16236) 2023-06-19 15:20:37 +02:00
Andrea Maria Piana 850ac3f9f8 Add decision about team structure & wallet team 2023-06-19 14:13:34 +01:00
Icaro Motta 60a39a58a6 Fix community tags and button spacing (#16292)
Linked to https://github.com/status-im/status-mobile/issues/16119, fixes
these issues:

- Clipped community tags. They should extend to the edge of the screen.
- Outdated information box message. Updated according suggestion in Figma
  https://www.figma.com/file/h9wo4GipgZURbqqr1vShFN/Communities-for-Mobile?type=design&node-id=7035-462899&t=wED97E4Mtv9v6OXf-0
- Add correct padding between community tags and the Request to join Community
  button.
2023-06-19 12:49:34 +00:00
Parvesh Monu 472a013cd0 fix switcher cards position in ios (#16301) 2023-06-19 16:41:40 +05:30
jakub 93cf54919f nix: add upgrade script for Nix interpreter
Now developers can upgrade to current Nix version using just:
```sh
make nix-upgrade
```
For manual instructions see:
https://nixos.org/manual/nix/stable/installation/upgrading.html

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-19 12:21:00 +02:00
jakub 5f50a8c39a nix: upgrade interpreter from 2.11.1 to 2.14.1
This is a mild upgrade that should not cause any controversy.

You can read about changes here:
- https://nixos.org/manual/nix/stable/release-notes/rl-2.12.html
- https://nixos.org/manual/nix/stable/release-notes/rl-2.13.html
- https://nixos.org/manual/nix/stable/release-notes/rl-2.14.html

Relevant `infra-ci` change:
- https://github.com/status-im/infra-ci/commit/e4e9796f

The simplest way to upgrade to `2.14` your version locally is using:
```sh
nix-channel --update
nix-env -iA nixpkgs.nixVersions.nix_2_14 nixpkgs.cacert
sudo systemctl daemon-reload
sudo systemctl restart nix-daemon
```
For MacOS the instructions are a bit different:
https://nixos.org/manual/nix/stable/installation/upgrading.html

Keep in mind you should use `nixpkgs.nixVersions.nix_2_14` instead
of just `nixpkgs.nix` to avoid getting newer than `2.14`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-19 10:58:56 +02:00
Jamie Caprani fdb042f4e9 chore: fix unit test for slide button (#16302) 2023-06-19 01:21:44 -07:00
flexsurfer 5214f34b31 temporary hide mutual update's messages (#16290) 2023-06-16 18:41:21 +02:00
Alexander 68b9ea47a8 Fix for two separate sections with different colors shown on the chat screen (dark mode) (#16265)
* Fix for two separate sections with different colors shown on the chat screen (dark mode)

* lint-fix
2023-06-16 15:48:52 +02:00
mmilad75 563a266803 Add reorder-item component (#16225) 2023-06-16 12:56:38 +02:00
Jamie Caprani 2cbc94320d feat: add parallax component (#16277) 2023-06-16 03:09:10 -07:00
Alexander d79086bb4c Disable audio messages (#16270)
* Remove audio messages

* Fix

* Fix
2023-06-16 11:47:24 +02:00
John Ngei a10c762aa6 onboarding syncing updates
* syncing screen updates

* centered qr-view-finder border within the containing border

* rounded border tips

* update icon color
2023-06-16 02:28:50 +03:00
Samuel Hawksby-Robinson c9c7b538c7 Added PR Review Policy (#16280)
* Added PR Review Policy

* Reformat of Policy section to headline with policy fundementals

* Renaming code owner to requester
2023-06-15 23:02:50 +01:00
Mohamed Javid 42040e4fc9 Update default iOS Simulator (#16289)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-15 23:37:11 +05:30
Siddarth Kumar 3e343d3264 get rid of slide-button.component-spec (#16293)
We're doing this to unblock other PRs
2023-06-15 23:25:25 +05:30
Lungu Cristian d43b73b566 Slide button component (bounty) (#16259) 2023-06-15 14:25:52 +02:00
Parvesh Monu 4f4489ee51 fix the activity center crash when replying with an image (#16281) 2023-06-15 17:36:48 +05:30
Brian Sztamfater 1ab57851d2 chore: add lefthook.yml to gitignore file (#16288)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-15 07:50:40 -03:00
Parvesh Monu 5f802ac6eb Animate home stack border radius (#16284) 2023-06-15 15:37:43 +05:30
Roman Volosovskyi b58a9beef2 [#16156] Fix top bar flashing 2023-06-15 11:25:53 +02:00
Icaro Motta 8fdfeb5e45 Various fixes for the Information Box component (#16272)
Fixes UI bugs described in
https://github.com/status-im/status-mobile/issues/16271, and it also rewrites
the component to follow our guidelines i.e. move code to style namespace, fix
docstring, add component specs, move to separate quo2 directory, etc.

This commit is part of the effort to fix the Community Overview screen.
2023-06-14 15:07:46 -03:00
Parvesh Monu ca2fc61061 Disable shell navigation
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2023-06-14 22:18:50 +05:30
Parvesh Monu bcc20c7458 Shell navigation and animations 2023-06-14 22:18:01 +05:30
Omar Basem fbe4b0a36c feat: Lightbox share images (#16224)
* feat: share images
2023-06-14 18:24:55 +04:00
flexsurfer eddbeb8896 [#15626] Bottom sheets stop opening if close the app with a bottom sheet open and with PNs enabled and reopen it (#16258) 2023-06-14 14:18:39 +02:00
Siddarth Kumar 350303256b upgrade react-native from 0.67.5 to 0.69.10 (#16016) 2023-06-14 07:17:41 +05:30
Yevheniia Berdnyk cfefc2d734 e2e: fixes 2023-06-14 02:50:41 +03:00
flexsurfer 2932bbea85 [#15836] Images not displayed in chat when received by user with app … (#16256) 2023-06-13 18:21:33 +02:00
Roman Volosovskyi 65e3b209f2 Fix slow scrolling on chat screen 2023-06-13 14:29:12 +02:00
Yevheniia Berdnyk 6f920afcf7 e2e: Fixes for jump-to 2023-06-13 06:24:21 +03:00
Parvesh Monu f38c85546f fix App crashes when pressing on community link (#16019) 2023-06-12 22:39:22 +05:30
Icaro Motta 204c8996a3 Implement dummy action drawers for community chats (#16227)
Implements the skeleton for all community channel drawer actions. This commit is
not concerned with the actual implementation of the actions, since that would
grow the scope a bit too much.

Partially implements https://github.com/status-im/status-mobile/issues/16178

Notes: I also updated the actions drawer component to accept a text aligned to
the right (this will be necessary to display the number of pinned messages in
the action drawer). In the Design System, the text is always hidden, and that's
my best guess as to why we didn't implement it. I talked to designers, and they
won't update the Design System Drawer action component
https://www.figma.com/file/WQZcp6S0EnzxdTL4taoKDv/Design-System-for-Mobile?type=design&node-id=1931-31188&t=hOK17fADEXTlnXPY-0)
for now, but we agreed the reference in Figma > Communities for Mobile
https://www.figma.com/file/h9wo4GipgZURbqqr1vShFN/Communities-for-Mobile?type=design&node-id=5483-193285&t=vOTiuhxD87zhmK2T-0)
is good enough.
2023-06-12 12:02:47 -03:00
Volodymyr Kozieiev a5c41612a0 Information about patching 3rd parties (#16249) 2023-06-12 13:17:48 +01:00
Ibrahem Khalil a1d9f45f2f [16137] Disable text description in lightbox for now (#16169) 2023-06-12 11:14:22 +03:00
frank 78d6db5bf0 chore: align changes to RequestAllHistoricMessagesWithRetries (#16244) 2023-06-12 15:22:04 +08:00
Mohamed Javid 9376da6c5c Prevent overflowing of chat name and message preview in the Chat List (#16210)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-09 21:36:38 +05:30
Brian Sztamfater d5c7f0261e fix: fixes error message on login page
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-06-09 16:45:05 +01:00
Omar Basem 9c1d73ffcf fix: top bar ios (#16234)
* fix: top bar overlapped by composer
2023-06-09 18:47:52 +04:00
Omar Basem ab44dce27b fix: bottom sheet padding (#16216)
* fix: bottom sheet padding
2023-06-09 17:03:00 +04:00
Rahul Pratap 573115c22e Update progress on swiping carousel. (#16154)
* Update progress on swiping carousel.

* Fixed feedbacks.
2023-06-09 17:53:06 +05:30
Omar Basem 83b35f0439 fix: shell button position in chat screen (#16190)
* fix: shell button position
2023-06-09 15:18:59 +04:00
Mohamed Javid 2df1b46975 [iOS] Perform preflight check for local network permission (#16150)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-09 15:55:15 +05:30
Parvesh Monu 9b52bba95d fix hole view usage for create profile picture (#16001) 2023-06-09 14:15:26 +05:30
Ibrahem Khalil a5f1028e67 [16082] Adjust height between messages to match designs (#16170) 2023-06-09 11:11:19 +04:00
Jamie Caprani 51ccd9fdcb chore: remove mock data from syncing (#16132) 2023-06-08 10:10:51 -07:00
Alexander 1594ff47f5 Layout updates/fixes for pinned messages bar (#16179)
* Blur under the pinned message bar

* Updated styles

* Code style update

* Style updates

* Updated z-index for composer mentions/suggestions

* Fixes for colors

* Positioning fix rollback

* Small code style update

* Formatting fix
2023-06-08 17:48:12 +01:00
Mohamed Javid c59de7dbf8 [Fix] Navigation to message reaction (#16218)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-08 21:47:10 +05:30
Yevheniia Berdnyk 032c254d19 e2e: Updated report 2023-06-08 15:47:36 +03:00
Ulises Manuel Cárdenas 0fcb8a33aa [#16078] - Add empty state component to messaging tabs 2023-06-08 06:21:32 -06:00
Mohamed Javid 4695ef65d0 [Update] Identifiers screen design (#16220)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-08 14:31:01 +05:30
frank eff5cb1f3e fix #16099 (#16177) 2023-06-08 15:20:32 +08:00
Yevheniia Berdnyk f3b5a9db67 e2e: Fixes for nightly failures 2023-06-08 05:06:43 +03:00
Volodymyr Kozieiev 5aa91359e1 Do not show group details when user is not a member of the group (#16134) 2023-06-07 17:01:50 +01:00
Omar Basemandpavloburykh a5455739c6 Add Images count to reply (#16194)
* fix: images reply count

---------

Co-authored-by: pavloburykh <pavlo@status.im>
2023-06-07 18:35:51 +04:00
Roman Volosovskyi 43ffe74a9c [#16198] No delay on removing contact from the list 2023-06-07 14:55:28 +02:00
flexsurfer ca35de2f72 [#16086] Messaging - Composer - Show current message for user context… (#16128) 2023-06-07 13:52:54 +02:00
Volodymyr Kozieiev 1047190d69 Messages read back button (#16186)
* Fixed messages being immediately read, Removed community edit action

* fix instant messages reading when chat left by community link

* fix tests
2023-06-07 12:21:34 +01:00
erikseppanen ba4e2f76da Design notes fixes: generate keys flow > profile name screen (#16000) 2023-06-06 10:54:29 -04:00
Icaro Motta 33999ad7cb Fixes for "I'm new to Status" screen (#16199)
Various fixes related to spacing in the "I'm new to Status" screen. Fixes
https://github.com/status-im/status-mobile/issues/16064

Out of scope:

- Bottom sheet in Android doesn't occupy the full available height. This problem
  exists in develop.
- Bottom sheet blur.
2023-06-06 10:36:48 -03:00
Alexander 68da5175c0 Correct top bar offsets and positions on Android + correct blur as a bonus (#16148)
* Correct top bar offsets and positions on Android

* Style fixes

* Style fixes
2023-06-06 12:47:17 +01:00
Anton Iakimov 0e08ba4ad1 ci: set e2e/status-app-prs timeout to 90 minutes (#16158) 2023-06-06 12:36:24 +02:00
Icaro Motta 0ae24070b0 Fixes for Request to Join Community bottom sheet (#16192)
Fixes a bunch of UI issues to match what's in Figma
https://www.figma.com/file/h9wo4GipgZURbqqr1vShFN/Communities-for-Mobile?type=design&node-id=1733-125697&t=3ssa500fwGvUqiTL-0.
Fixes https://github.com/status-im/status-mobile/issues/16117

- Fix typo in the Request to Join Communities' text.
- Fix bottom sheet handle colors. They had the incorrect transparency.
- Fix incorrect Request to Join bottom sheet top margin.
- Remove touchable opacity from disclaimer quo2 component. It should use
  touchable without feedback. This also fixes the problem on the on onboarding
  flow since both screens use the same disclaimer component.
- Add missing final disclaimer after accept/reject buttons.

Related to https://github.com/status-im/status-mobile/issues/16196
2023-06-06 06:31:43 -03:00
Ibrahem Khalil a4f8833547 [16147] Fix margin left for community icon when long pressing community 2023-06-06 12:55:30 +04:00
Ibrahem Khalil 74906cabb2 [16166] The reaction are not matched to the designs into the 'who sent' bottom sheet (#16168) 2023-06-06 10:45:36 +04:00
Ulises Manuel Cárdenas 4978c08447 [#16077] Add community illustrations
* Add empty state images
* Add empty state component for communities
2023-06-05 11:42:42 -06:00
Icaro Motta b385e5ab4b Support unfurling more websites (#16040)
Bumps status-go's version to point to the status-go branch in PR
https://github.com/status-im/status-go/pull/3530.

Fixes https://github.com/status-im/status-mobile/issues/15918
2023-06-05 08:31:27 -03:00
Omar Basem 8407cd66d1 Debug mode fix: photo selector (#16146)
* Debug mode fix: photo selector
2023-06-05 12:39:25 +04:00
flexsurfer ba2f037f48 [#16094] Messaging - In Chat - Implement Options Menu for 1-1 and com… (#16131) 2023-06-05 10:25:13 +02:00
Yevheniia Berdnyk eea737625d e2e: fixes for emoji and xfails added 2023-06-03 02:16:17 +03:00
Alexander 39ea12cf29 Fix for "Rendered more hooks than during the previous render" error on closing group chat/communty channel (#16145)
* "Rendered more hooks than during the previous render" error on closing group chat/communty channel

* Lint fix
2023-06-02 14:49:46 +01:00
Mohamed Javid c5166ac48e [Fix] Open app on push notification tap (#16136)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-02 18:03:27 +05:30
Omar Basem c5e6bd790d Lightbox refactoring (#16096)
* refactor: lightbox
2023-06-02 15:56:39 +04:00
Ulises Manuel Cárdenas b29d248a9b [#16077] Empty state component 2023-06-02 04:16:55 -06:00
Alexander 396ee208bf Chat Screen Top Bar UI + new UI for user details (#15204)
* Fixes

* Reformatting + fixes

* Functions rewrite

* f-function

* One more f-function

* Minor constants fixes

* Jump to button removal

* Footer insets fix

* Better loading indicator

* Review fixes

* Fixes for Android

* More fixes

* More fixes

* Fix

* Fixes for scaling

* Overscroll fixes

* Better empty view on Android

* Android fixes, scrolling fixes

* Value fix

* Code style fixes

* Fix for scroll indicator insets

* Fixes

* Accessibility-ids

* Code style fixes

* Footer fix

* Style update
2023-06-01 16:08:47 +01:00
Rahul Pratap adb50fa0ee Feature/15776 slideshow styles (#15933)
* Fixed issues with styling in the slideshow.

* Fixed design feedbacks.
2023-06-01 19:56:36 +05:30
Icaro Motta 5017e13013 Fix reaction images and implement Selectors > Reactions component (#16114)
Fixes reaction images and implements the component Selectors > Reactions that,
for some reason, wasn't implemented as a separate quo2 component as per
Figma https://www.figma.com/file/qLLuMLfpGxK9OfpIavwsmK/Iconset?type=design&node-id=942-218&t=cqTr12Q3zVHaLoap-0

Fixes https://github.com/status-im/status-mobile/issues/16045

Note: Reaction images in the Design System are not icons, so that's why you are
seeing a bunch of icons removed from icons2. The directory
resources/images/reactions already existed, and so I used images from that
directory instead.
2023-06-01 11:14:20 -03:00
Icaro Motta a6fe626d78 Fix reaction images and implement Selectors > Reactions component (#16114)
Fixes reaction images and implements the component Selectors > Reactions that,
for some reason, wasn't implemented as a separate quo2 component as per
Figma https://www.figma.com/file/qLLuMLfpGxK9OfpIavwsmK/Iconset?type=design&node-id=942-218&t=cqTr12Q3zVHaLoap-0

Fixes https://github.com/status-im/status-mobile/issues/16045

Note: Reaction images in the Design System are not icons, so that's why you are
seeing a bunch of icons removed from icons2. The directory
resources/images/reactions already existed, and so I used images from that
directory instead.
2023-06-01 11:13:38 -03:00
Alexander 8f92fe344a Disable translations - only use English for the moment until designs are stable and translations are correct (#16103) 2023-06-01 14:56:25 +01:00
frank 19a76c22d1 fix #16043 (#16126)
* fix #16043

* update status-go-version.json
2023-06-01 21:17:08 +08:00
Ulises Manuel Cárdenas c62204121d [#15759] - Add onboarding recovery phrase screen 2023-06-01 05:23:07 -06:00
flexsurfer a4bc18ee3f improve photo-selector and adjust according to the latest designs (#16053) 2023-06-01 10:35:57 +02:00
Siddarth Kumar 68e53e05bd Adjust padding for QR Images (#15975) 2023-06-01 13:59:12 +05:30
Mohamed Javid d142d58677 Local Pairing Updates (#16065)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-06-01 13:40:22 +05:30
Ibrahem Khalil 56dbb77ee5 [15660] Show who sent message reaction (#15677) 2023-06-01 09:21:33 +02:00
Icaro Motta 0dd3cb51fd Improve option to mark all notifications read (#16044)
- [x] Use correct icon to mark notifications as read
- [x] Add support for the disabled state in action drawer actions
- [x] Update quo2 preview `drawers` > `action-drawers`
- [x] Rewrite the action drawer component spec to use our test helpers

Fixes https://github.com/status-im/status-mobile/issues/14983
2023-05-31 21:25:19 -03:00
Omar Basem 9960a5c958 Fix: jumpy composer (#16051)
* fix: jumpy composer
2023-05-31 18:12:48 +04:00
flexsurfer fb4d484d7d bump reagent 1.2.0 (#16070) 2023-05-31 13:35:31 +02:00
Alexander 98067f8c8e Profile pic on communities and contacts screen (#16042) 2023-05-31 11:35:35 +01:00
Icaro Motta 9dad4716d6 Upgrade re-frame (#15997)
This commit upgrades re-frame to v1.3.0 (latest stable release), released ~9
months ago, in 2022-08-27. This is a solid upgrade, with no breaking changes as
far as I tested status-mobile. It's a great testament of re-frame's stability
and commitment to backwards compatibility, as are many Clojure libs.

Fixes https://github.com/status-im/status-mobile/issues/15963

The big, and truly relevant addition is the introduction of the :fx built-in
effect that was added ~3 years ago in Aug/2020 in v1.1.0.

Relevant changelog:

- Global interceptors are now supported (added in v1.0.0).
- reg-event-fx will just warn (not generate an error) if the effect map returned
  contains an unknown effect key.
- re-frame will now warn us when we are calling subscribe outside of a reactive
  context.
- "re-frame now guarantees that a :db effect, if present, will be actioned
  before any other sibling effects. re-frame continues to provide NO guarantees
  about the order in which other effects will be actioned."
  (https://day8.github.io/re-frame/releases/2020/#110-2020-08-24)
- There's syntactic sugar for trivial reg-sub declarations (added in v1.3.0).
  See the documentation for reg-sub for more details
  https://day8.github.io/re-frame/api-re-frame.core/#reg-sub
- "The built-in effect :dispatch-later can now take a single map value.
  Supplying a sequence of maps is now deprecated in favor of using multiple
  :dispatch-later effects within the new :fx effect."
  https://day8.github.io/re-frame/releases/2020/#111-2020-08-26
2023-05-31 06:08:34 -03:00
Omar Basem 2b701f9af0 refactor: zoomable component (#16022)
refactor: zoomable comp
2023-05-31 10:01:35 +04:00
jakub e8b956d4f4 ci: fix jsbundle target name for nix-cache build
Forgot to update this in:
https://github.com/status-im/status-mobile/pull/15924

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-30 18:28:53 +02:00
jakub f30d5b59ca ci: drop references to unused Coveralls
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-30 18:28:52 +02:00
Mohamed Javid 863dac6e6a [Fix] QR scanner scanning QR when user moved to next screen (#16012)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-30 21:28:57 +05:30
Omar Basem 9a4f8f97b9 fix send button z-index (#16024)
* fix: send button z-index
2023-05-30 16:46:22 +04:00
Roman Volosovskyi d395ca6cc6 Allign to latest accounts changes 2023-05-30 13:57:09 +02:00
Ajay Sivan 15211865fb fix: floating-shell-button (#16030) 2023-05-29 09:40:21 -07:00
Parvesh Monu 65eb0af191 fix emoji pin in community (#16041) 2023-05-29 17:24:06 +05:30
Parvesh Monu bbdac4e8c6 disable chat swipe back navigation in ios (#16035) 2023-05-29 15:41:10 +05:30
Mohamed Javid abcfaef1a1 [Fix] Error on opening "How to scan" bottom sheet (#16033)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-27 12:56:37 +05:30
Mohamed Javid 2d1b37ab7b [Fix] Nav bar in Syncing screen (#16014)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-26 21:58:18 +05:30
Roman Volosovskyi a18cf2f786 Old wallet 2023-05-26 09:14:45 +02:00
Mohamed Javid e14ed7a637 [Fix] "View Profile" button behaviour on keyboard open in "Add a contact" modal (#15978)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-26 00:32:45 +05:30
Ajay Sivan 682eb841ff fix: setup syncing timer not working (#15852) 2023-05-25 05:24:03 -07:00
Ajay Sivan b45632d2fd Bump release to 1.23.0 (#15999) 2023-05-25 04:48:57 -07:00
Mohamed Javid 877ee14bcc Add default customization color (#16026)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-25 16:53:26 +05:30
Omar Basem 7ec5117f54 fix mentions delay (#16025)
* fix mentions delay
2023-05-25 13:56:22 +04:00
Parvesh Monu b7cc54a356 fix pin image in community leads to error (#16017) 2023-05-25 14:01:42 +05:30
Volodymyr Kozieiev e1e596cf5f Bottom sheet background on Android changed to overcome issues with blur (#16009) 2023-05-24 19:58:47 +01:00
Omar Basem 0cc631ce2e refactor: lightbox screen (#15996)
* refactor: lightbox screen
2023-05-24 22:32:31 +04:00
Omar Basem 24eaec80bd Fix composer opacity on reenter screen (#16010)
* fix: composer opacity on re-enter screen
2023-05-24 22:10:33 +04:00
Ajay Sivan 7fc05bc069 new icons (#15937) 2023-05-24 05:59:55 -07:00
Omar Basem 45da1a28df fix calc lines (#16005)
fix composer `calc-lines`
2023-05-24 14:22:44 +04:00
jakub 6415c06398 ios: drop fastlane-plugin-clean_testflight_testers
We are not using it for anything, just wastes time and space.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-24 11:52:01 +02:00
flexsurfer 2c44882c35 clean old onboarding and communities (#15994) 2023-05-24 11:16:12 +02:00
jakub 2493b8ad4b ios: replace Diawi Fastlane plugin that disappered
For an unknown reason the original Diawi plugin for Fastlane has been
removed from GitHub and RubyGems pages and can no longer be used.

This replaces it with a Node.js script which does the same job.

I tried using `diawi` and `diawi-nodejs-uploader` but both had issues,
one of them being depending on far too many useless packages.

Resolves: https://github.com/status-im/status-mobile/issues/15951

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-24 10:55:38 +02:00
Volodymyr Kozieiev 56d0913d4b Show number of unread messages (#15987) 2023-05-23 17:00:20 +01:00
Brian Sztamfater a3ce2aa578 fix: audio recording bugs while scroll in chat
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-05-23 11:49:34 -03:00
flexsurfer 446d71063c new chat fixes and improvements, sheet modal screen improvements (#15993) 2023-05-23 16:46:16 +02:00
Icaro Motta b1aec54e4c Fix composer height overflow with extra content (#15989)
Fixes the maximum height overflow of the composer when there are images and/or
link previews (any *extra content* as we call it in the code).

Fixes https://github.com/status-im/status-mobile/issues/15949

Cause: The bug happened because the on-focus event of the composer happens
before subscriptions arrive, and thus it uses the incorrect max-height.

Fix: The fix makes the animation values of height, last-height, and saved-height
be truncated based on the newest calculated max-height, and they happen in a
separate use-effect, outside of the on-focus event.
2023-05-23 08:40:38 -03:00
Parvesh Monu cb19a31a5f fix profile picture on login screen (#15985) 2023-05-23 16:52:13 +05:30
frank 0890b1b1b5 fix: display name/nickname/ens which includes dash is not resolved in the chat when mentioned (#15990)
* fix: display name/nickname/ens which includes dash is not resolved in the chat when mentioned

* update status-go-version.json
2023-05-23 18:40:27 +08:00
yqrashawn 2191f68883 feat: add ident ring for login profile picture (#15942) 2023-05-23 14:10:01 +08:00
Icaro Motta d1941fe002 Animate link previews enter/leave (#15984) 2023-05-22 20:00:55 -03:00
Volodymyr Kozieiev 540e5be290 Design fixes for profile options (#15966)
design fixes for profile options
2023-05-22 16:07:39 +01:00
jakub 7e47057b2e ci: drop useless call to doGitRebasePR
It only blocks CI builds for no good reason when branch has not been
rebased recently, which has no real benefit as GitHub already enforces
not merging outdated PRs. It's just annoying and wastes time.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/68

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-22 15:40:32 +02:00
flexsurfer 86d5a3c4e6 clean old namespaces (#15980) 2023-05-22 14:49:01 +02:00
Mohamed Javid 6975d6ac48 [Fix] Chat list sort in home screen (#15974)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-22 18:16:17 +05:30
jakub e8ced0a714 github-bot: drop to-rebase-column-name
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-22 14:35:58 +02:00
Mohamed Javid c5d74dc758 [Fix] Keyboard Close on Forgot Password tap (#15968)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-22 18:02:00 +05:30
Churikova Tetiana 4fe2ccaa84 e2e: gallery test + links preview 2023-05-22 11:22:06 +02:00
flexsurfer d042f40e69 autocomplete password (#15979) 2023-05-22 11:09:19 +02:00
jakub 58d20967ae nix: use jsbundle derivation for iOS as well
For some unknown to me reason we are using a different Yarn call to
Shadow-cljs to generate the JSBundle for iOS builds, while the one
created by the Android derivation shoudl be exactly the same.

I'm changing the target to just be `make jsbundle` while keeping aliases
referencing old naming, and moving things around in `nix` folder to
reflect the fact that the derivation is no longer Android-specific.

Also, crucially, I've changed the `import` in `index.js` to use the
`./result/index.js` path, since that's what Nix creates. I'm not sure if
this clashes with any developer workflow that takes place locally, so
I'd appreciate some testing from developers.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/67

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-22 10:31:09 +02:00
andrey 6858884c83 [#15756] Token gated communities 2023-05-20 08:54:06 +01:00
Siddarth Kumar 78621207e1 (fix) prevent spamming of copy toast notifications (#15938) 2023-05-19 22:15:33 +05:30
John Ngei d3b4f60848 sync devices after sign in
* onboarding sync devices after scan to sign in

* using subscription to get the status of pairing progress

* update following reviews

* polished code following reviews

* fixed showing unknown devices
2023-05-19 19:17:38 +03:00
Rodrigo Hernandez 694591ad5c - initial component structure and styles (#15922)
feat: add quo2 settings-list component
2023-05-19 07:19:45 -07:00
John Ngeiandpavloburykh e8682ccbf6 home screen updates
* community home screen updates

* removed green border color on status indicator

* added accent color to plus button and jump-to button

* code reviews

* e2e: fix acc id new comm button

* resolved bugs

---------

Co-authored-by: pavloburykh <pavlo@status.im>
2023-05-19 16:08:52 +03:00
Mohamed Javid 3973e886f8 [Fix] Accessibility for single image in chat (#15964)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-19 18:26:45 +05:30
Ajay Sivan 7e8f1fac8a app locked screen design review changes (#15927) 2023-05-19 05:17:03 -07:00
Jamie Caprani 77ddd8688f chore: add spec test for keycard component (#15920) 2023-05-19 04:45:47 -07:00
Omar Basem 62945205a0 update hooks lib (#15956) 2023-05-19 14:31:57 +04:00
Ajay Sivan adc458d8ff fix: permission tag component locked state (#15928) 2023-05-19 02:51:30 -07:00
Omar Basem b4bb9c50fa fix (#15941) 2023-05-19 09:58:58 +04:00
Icaro Motta 19526508f2 New link previews (initial implementation) (#15891)
This is the introductory work to support the new requirements for unfurling
URLs (while the message is a draft) and displaying link previews (after the
message is sent). Refer to the related status-go PR for a lot more interesting
details https://github.com/status-im/status-go/pull/3471.

Fixes https://github.com/status-im/status-mobile/issues/15469

### Notes

- The old link preview code will be removed separately, both in status-go and
  status-mobile.
- I did the bulk of the work in status-go
  https://github.com/status-im/status-go/pull/3471. If you want to understand
  how this is all implemented, do check out the status-go PR because I heavily
  documented the solution, rationale, next steps, etc.

### Performance

Does the feature perform well? Yes, there's very little overhead because
unfurling URLs happen in status-go and the event is debounced. I also payed
special attention to use a simple caching mechanism to avoid doing unnecessary
RPC requests to status-go if the URLs are cached in the client.

I have some ideas on how to improve performance further, but not in this PR
which is already screaming for reviews.
2023-05-18 16:19:41 -03:00
Icaro Motta a17efa7299 Make json-rpc/call effect more in line with re-frame standards (#15936)
Changes effect :json/rpc-call to accept on-success and on-error parameters
either as functions OR as re-frame event vectors. The changes are 100% backwards
compatible.

## Why?

Re-frame is very explicit in its documentation and its architecture, saying that
event handlers should be pure. Calling re-frame.core/dispatch in event handlers
makes them sort of stateful.

> So, you can "get away with it". But it ain't pure.
>
> -- https://day8.github.io/re-frame/EffectfulHandlers/#90-solution

In status-mobile, arguably one of our most important effects (not to be confused
with event handlers) is :json-rpc/call, but at the moment, the on-success and
on-error values are expected to be stateful functions (e.g. usually used for
logging and dispatching subsequent events).

This creates two important problems:

1. The value returned by event handlers is more opaque and cannot be easily
   inspected (for example using tap>, log/debug or just println). If we try to
   inspect or log them, on-success and on-error will be printed as
   #object[Function].
2. Testing event handlers using :json-rpc/call becomes an exercise of
   frustration, because we can't simply compare the results of the event handler
   with a good expected value, which is one of the big selling points of testing
   pure functions.

### The testability of event handlers

> For any re-frame app, there's three things to test:
>
> - Event Handlers - most of your testing focus will be here because this is
>   where most of the logic lives
> - Subscription Handlers - often not a lot to test here. Only Layer 3
>   subscriptions need testing.
> - View functions - I don't tend to write tests for views.
>
> -- https://day8.github.io/re-frame/Testing/#what-to-test

So re-frame is saying event handlers should be pure, and that event handlers
should be tested.

In order to achieve the divine simplicity of testing event handlers as pure
functions, we need to make :json-rpc/call also accept on-success and
on-error as event vectors.

Good news is that there is a known pattern to solve this problem, e.g. used by
the library https://github.com/Day8/re-frame-http-fx.

The pattern is simple once we see it: behind the scenes, :json-rpc/call conj'es
the results of the RPC call into the event vectors on-success and on-error, and
:json-rpc/call dispatches the events itself. This eliminates the need for the
stateful dispatch call in event handlers.
2023-05-18 15:56:10 -03:00
frank c7bc16608a fix #15899 : failed to reset password (#15914)
* fix #15899 

https://github.com/status-im/status-go/compare/4cc53630...080d8ad3

* update status-go-version.json

* update status-go-version.json
2023-05-18 22:30:27 +08:00
Mohamed Javid 3c9ad509cd [Fix] Activity Center Empty Community Icons (#15907)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-18 16:38:18 +05:30
Siddarth KumarandChurikova Tetiana eea55b22d7 Dont check app-state for Android when evaluating universal links routing (#15896)
* Dont check app-state for android before routing PN

On Android devices, right after account creation and before a log out, the :app-state value in reframe db is set to background. The value becomes active after a log out and then log in which causes tapping on push notifications to do nothing.

This behaviour breaks E2E and hence in this PR, I remove the checking of this case only for Android platforms.
More work should be done to figure out why the app state event handler is behaving this way on Android but for now I would like to unblock E2E.

* e2e: remove xfailed tests

---------

Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-05-18 00:20:38 +05:30
Andrea Maria Piana 7efd1e5d6b Bump status-go version to 0.151.8 2023-05-17 18:24:42 +01:00
Omar Basem b264d25b69 fix: composer opacity (#15929) 2023-05-17 19:43:42 +04:00
Omar Basem 03f501ca7b fix: image flicker (#15932) 2023-05-17 15:52:23 +04:00
Ulises Manuel Cárdenas 6598873343 [#15779] Disable input and buttons while loggin in 2023-05-17 00:13:10 -06:00
Siddarth Kumar a60235abf3 (feat) : add share capabilities in shell (#15782)
fixes: #13439

Summary
- Update `quo2/qr-code` component to use `fast-image` instead of `rn/image`
- Adds profile tab in share section, wallet tab is marked as WIP
- Shows profile QR code along with link to user's profile and the user's emoji hash.
- profile link is shareable and copyable on tap.
- emoji hash is shareable and copyable on tap.
- fixed weird android issues
2023-05-16 21:57:34 +05:30
flexsurfer b5a8f0a127 [15611] Lock orientation (#15915) 2023-05-16 16:54:21 +02:00
Mohamed Javidandpavloburykh 7d0dfec22c Design Feedbacks on "Create profile password" screen (#15863)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
Co-authored-by: pavloburykh <pavlo@status.im>
2023-05-16 18:03:45 +05:30
Mohamed Javid 51fa99affa Add Accessiblity for Image Container in Chat (#15913)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-05-16 17:27:02 +05:30
codemaster 369aed389c feat: new keycard component (#15892) 2023-05-16 13:37:14 +02:00
jakub 10d9c34559 ci: fix Alchemy and Infura env vars for iOS
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-16 13:06:37 +02:00
jakub 8ccf2d1596 ci: fix missing Alchemy and Infura env vars
Depends on:
https://github.com/status-im/status-jenkins-lib/pull/65

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-16 11:20:29 +02:00
Churikova Tetiana 7ef466078a e2e: image test 2023-05-15 19:08:03 +02:00
Jamie Caprani 4b2d62ee1f chore: update ui for syncing page for onboarding and in profile (#15623) 2023-05-15 10:07:13 -07:00
flexsurfer 05073e7453 fix onboarding transition background color (#15900) 2023-05-15 16:28:08 +02:00
frank fa11c232cc update status-go-version.json (#15894) 2023-05-15 20:41:26 +08:00
Brian Sztamfater 3038ceeb82 fix: audio issue when sending app to background on Android and other fixes
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-05-15 09:19:06 -03:00
frank d2e38772b9 use debounce-and-dispatch to improve mention performance (#15887)
* use debounce-and-dispatch to improve mention performance

* increase time to 400ms

* decrease time to 300ms

* update status-go-version.json

* update status-go-version.json
2023-05-15 15:51:29 +08:00
Churikova Tetiana 409c0a9e60 e2e: small fixes 2023-05-12 14:25:32 +02:00
erikseppanen 4b98f0e8de Add 'How to scan' syncing screens (#15710) 2023-05-11 20:58:57 -04:00
Omar Basem 264b7ffab9 Fix mentions animation when disappearing (#15879)
* fix: suggestions list animation
2023-05-11 22:33:25 +04:00
Alexander c71224e73e Double-tap for communities & fix for 'Recent' tab not being shown as selected if message icon is double tapped (#15844)
* Updates

* Small namespace fix
2023-05-11 18:17:50 +02:00
Parvesh Monu 3c278ed06c fix window height sub leak (#15878) 2023-05-11 19:57:37 +05:30
Jamie Caprani d714dc1590 chore: restore label on im new to status page (#15876) 2023-05-11 07:09:03 -07:00
Ajay Sivan d2840885dd fix: app locked screen accent color (#15854) 2023-05-11 05:31:41 -07:00
Omar Basem 87247af86b Composer polishing (#15875)
* composer polishing
2023-05-11 15:35:42 +04:00
Mohamed Javid 159ad02e7a [Fix] Tapable area of user avatar in chat (#15840) 2023-05-11 14:33:35 +05:30
Alexander ce322c9537 Remove identicons, replace them with initials of a user (#15815)
* Remove identicon, replace it with initials of a user

* Lint fix
2023-05-11 10:05:20 +02:00
Omar Basem 13a1ee7479 Fix composer max height on some Android devices (#15871)
* fix: android keyboard height
2023-05-11 11:41:53 +04:00
yqrashawn c1f24fb1bb feat: doc info boxes while onboarding (#15697) 2023-05-11 10:00:36 +08:00
Parvesh Monu 4afe251086 Show correct error message while unlocking app (#15845) 2023-05-11 02:29:52 +05:30
jakub ac3eb3e660 nix: use SRI hashes for Gradle dependencies
This way we will use the same format as Nix logs and errors when a hash
changes, which avoids confusion.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-10 15:45:32 +02:00
Omar Basem 638ec98db5 fix: maximized composer incorrect bottom padding (#15865)
* fix: maximized composer incorrect bottom padding
2023-05-10 17:36:44 +04:00
jakub 78131c1028 ci: add Alchemy and Infura credentials in CI
Depends on: https://github.com/status-im/status-jenkins-lib/pull/64

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-10 12:57:04 +02:00
Volodymyr Kozieiev 5655efa448 Separate doc with debug tips (#15849)
Debugging basics
2023-05-10 10:38:59 +01:00
jakub c008c01bc1 ci: bump timeout for tests to 15 minutes
We've been seing longer runs on release CI for nightlies, possibly due
to more than 2 parallel builds running on one host.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-10 11:06:10 +02:00
Omar Basem 7e1af5b80d Composer polishing (#15857)
* refactor: composer
2023-05-10 12:17:24 +04:00
Ulises Manuel Cárdenas ee4bcf9116 Recovery phrase onboarding (#15831)
* Add missing tests for recovery phrase input
2023-05-09 21:55:09 -06:00
Ajay Sivan 1aff364595 fix: android blur view hash mismatch in some locations 2023-05-09 21:36:12 +02:00
Alexander 929ec6a453 'Unpin' option in 1-1 chat for deleted message (#15833) 2023-05-09 19:27:10 +02:00
Omar Basem 341497e98d feat: new composer complete 🎉 (#15818)
* feat: new composer
2023-05-09 21:03:19 +04:00
frank c275205bed Adapt to status-go backend changes for ConvertToKeycardAccount (#15846) 2023-05-09 20:51:08 +08:00
Parvesh Monu ebb110e6e3 fix Home-stack overlaps bottom tabs in Xiaomi devices on first run (#15821) 2023-05-09 16:03:13 +05:30
Ibrahem Khalil ab973076eb [15612] Only allow showing universal links after clicking start using status (#15786) 2023-05-09 10:49:25 +03:00
Volodymyr Kozieiev c78bdda717 Last message preview improvings (#15613) 2023-05-08 18:37:26 +01:00
jakub b7a138118a nix: update Gradle dependencies
Contains changes that should have been included in:
https://github.com/status-im/status-mobile/pull/15713

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-08 16:22:18 +02:00
jakub f03e11c877 nix: fix handling POMs without JARs
Otherwise we can get a failure like this:
```
Regenerating Nix files...
Found 40 sub-projects...
Found 609 direct dependencies...
Found 889 dependency URLs...
 ! Failed to fetch: https://repo.maven.apache.org/maven2/org/ow2/asm/asm-bom/9.5/asm-bom-9.5.jar
```
When using `make nix-update-gradle`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-08 15:48:19 +02:00
Omar Basem 6c5350573d refactor: remove images placeholder text (#15830)
* refactor: remove placeholder images text
2023-05-08 15:03:51 +04:00
Omar Basem 521765e312 fix: new-chat-insets (#15829) 2023-05-08 12:20:35 +04:00
Ajay Sivan 5f362f333f quo2 predictive keyboard component (#15806) 2023-05-05 20:41:57 +05:30
Ajay Sivan 6aae68ba04 fix: incorrect font-size in user-avatar(size: medium) (#15801) 2023-05-04 21:41:46 +05:30
Churikova Tetiana dbaaa54c83 e2e: remove/switch profiles 2023-05-04 16:27:55 +02:00
Brian Sztamfater e5913cc3ea feat: audio component
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-05-04 10:48:05 -03:00
Ajay Sivan 0226a92c07 quo2 documentation drawer component (#15674) 2023-05-04 19:15:13 +05:30
Roman Volosovskyi d7db401cb2 [#15798] Fix issue with android dev env by disabling flipper 2023-05-04 11:18:14 +02:00
Omar Basem 7e54aa0b0d New mentions design (#15799)
* feat: mentions new design
2023-05-04 13:12:42 +04:00
Alexander 4774b0f5e5 Fix for mention text overlaying message text when mention is added during message editing (Android) (#15778) 2023-05-03 18:26:37 +02:00
Siddarth Kumar 6aa38de7c7 set checked for communities disclaimer explicitly (#15804) 2023-05-03 21:24:19 +05:30
Omar Basem a973976123 New composer - add audio comp (#15790)
* feat: composer - add audio comp
2023-05-03 09:54:23 +04:00
Ajay Sivan 03aac0e4ce fix: quo2 title-input component selection style fix for android (#15717) 2023-05-02 17:01:09 +05:30
Siddarth Kumar fac368521b (fix) modify disclaimer component for on tap UX (#15757) 2023-05-02 15:55:49 +05:30
Omar Basem 51b9253734 revert podfile.lock (#15791)
* revert podfile.lock
2023-05-02 09:27:47 +04:00
Omar Basem 08e6b8164e feat: composer - edit message (#15772)
* feat: new composer - edit message
2023-05-01 20:39:07 +04:00
Parvesh Monu 9a8354f783 Improve dissmiss all overlays (#15773) 2023-04-28 20:52:34 +05:30
Churikova Tetiana 6c0c742676 e2e: align with new communities / cleanup 2023-04-28 13:56:31 +02:00
flexsurfer e0ed2a250b clean old code, remove public chat, implement drawers for home screens (#15766) 2023-04-28 13:42:38 +02:00
jakub 2f988fcd47 nix: disable sandboxing for xcodewrapper
Otherwise we see weird errors like this:
```
/nix/store/g0jijpgcb4q54zbvz5p8yvxcnb6lshnk-stdenv-darwin/setup: line 1391: /nix/store/sja8sqq4y5s9ijkb97i3pi2jrhsy40cz-xcode-wrapper-14.3/bin/xcodebuild: Operation not permitted
We require xcodebuild version: 14.3
error: builder for '/nix/store/d1dji0ywl851wgj9vv58ibpm32gq3wsm-xcode-wrapper-14.3.drv' failed with exit code 1;
       last 2 log lines:
       > /nix/store/g0jijpgcb4q54zbvz5p8yvxcnb6lshnk-stdenv-darwin/setup: line 1391: /nix/store/sja8sqq4y5s9ijkb97i3pi2jrhsy40cz-xcode-wrapper-14.3/bin/xcodebuild: Operation not permitted
       > We require xcodebuild version: 14.3
```
Related to: https://github.com/NixOS/nixpkgs/pull/228696

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-28 11:24:16 +02:00
frank ee71117111 remove unused code relate to old text-input component (#15765)
* remove unused code relate to old text-input component

* removed tow lines
2023-04-28 09:37:13 +08:00
Omar Basem 3e9d5dde54 Reimplement composer: add reply (#15736)
* feat: add composer reply
2023-04-27 20:20:00 +04:00
Siddarth Kumar 2eed30be8f (chore) : Improve QR code quo2 component (#15755)
This PR adds the ability to :

- Generate a QR by passing any url.
- See different error correction levels.
- Shows the media server url for that specific QR code.
- Moved media server URI generation logic to `image_server.cljs`
2023-04-27 19:25:49 +05:30
Parvesh Monu 8e49a06dbe fix UI freeze issue (#15761) 2023-04-27 17:26:33 +05:30
Roman Volosovskyi fb326bbf4e [#15741] Fix error on tapping pinned message 2023-04-27 10:23:16 +02:00
Jamie Caprani 52c6687608 feat: add identifiers screen to onboarding-flow (#15684) 2023-04-26 21:26:32 -07:00
frank cfefef6b75 fix [#15616] Sometimes mentions list does not appear after typing @ in chat input filed (#15622) 2023-04-27 11:37:01 +08:00
flexsurfer e6ba40ac17 fix quo hotreload (#15760) 2023-04-26 18:14:58 +02:00
flexsurfer efbf93f6e2 move status native module (#15749) 2023-04-26 18:14:14 +02:00
Mohamed Javid 6eb2029c51 Show "Kicked from community" notification in Activity Center (#15734)
* [Feature] Implement Community Kicked notification

* Status Go Update
2023-04-26 19:56:33 +05:30
Parvesh Monu 55bab9454a fix status bar font color (#15744) 2023-04-26 19:35:51 +05:30
flexsurferandChurikova Tetiana 0ca6ee3934 Request to join community screen is not scrollable on Android #15748 (#15750)
Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-04-26 13:33:00 +02:00
Parvesh Monu 0649c66dde fix device theme change listener in ios (#15724) 2023-04-26 16:41:11 +05:30
Roman Volosovskyi 1b0374a156 [#15655] Resolve messages with markdown on Jump To screen 2023-04-26 11:55:45 +02:00
yqrashawn f9eae4ef82 fix: always albumize outgoing image messages (#15735) 2023-04-26 14:26:37 +08:00
Icaro Motta 68f360bbf6 New component: Link Preview (#15732)
Fixes https://github.com/status-im/status-mobile/issues/15731

Figma > Design System > Links:
https://www.figma.com/file/WQZcp6S0EnzxdTL4taoKDv/Design-System-for-Mobile?node-id=5626-159413&t=ghr8u97I2GNX8YZY-0
2023-04-25 13:48:25 -03:00
Icaro Motta 30f0b436e9 Various fixes for Contact Request flows (2nd attempt) (#15685)
- Make sure status-mobile works well with the upcoming status-go changes in PR
  https://github.com/status-im/status-go/pull/3379.
- Replace calls to `wakuext_addContact` with `wakuext_sendContactRequest`. This
  is what's been aligned with the desktop team, as we will go on to remove
  `wakuext_addContact` in the near future.

Fixes https://github.com/status-im/status-mobile/issues/15679
2023-04-25 13:32:08 -03:00
Rahul PratapandAndrea Maria Piana 80bab6d338 Fixed styling issues for mention in the chat text (#15723)
Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2023-04-25 16:17:16 +01:00
Andrea Maria Piana 2438af4e00 Fix pinned messages & replies
https://github.com/status-im/status-go/compare/e8ceed11...213dc463

Both replies and pinned messages relied on subscribing their data from messages.

This worked only as long as we loaded the message in the database, so it would break say if another user replied to a message that wasn't in the current user view.

It also changes the way pinned messages are handled, before the notification was actually sent over the wire, but that's unnecessary, since it can be generated locally on both parts.
This is a bit of a breaking change with the previous version, since if you pin a message with this version, older version will not see a system message. this can be easily fixed by restoring the previous behavior of sending the message, but not sure it's worth it.

It also adds the ability to Delete message for everyone that have Deleted for me (discussed with John) and the ability of unpin messages that have been deleted for me.
2023-04-25 16:03:57 +01:00
jakub fd7797322f ci: fix missing SSH key for fetching ios certs
Otherwise builds fail with:
```
15:15:22  [16:15:22]: Cloning remote git repo...
15:15:22  [16:15:22]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
15:15:23  Cloning into '/tmp/d20230425-79805-70bge2'...
15:15:23  git@github.com: Permission denied (publickey).
15:15:23  fatal: Could not read from remote repository.
```
Depends on: https://github.com/status-im/status-jenkins-lib/pull/63

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-25 16:31:54 +02:00
flexsurfer cd69d0423a fix (fn[]) usage in hiccup (#15713) 2023-04-25 15:13:14 +02:00
Omar Basem 2fe4956f4d Gesture section list (#15727)
* feat: gesture section list
2023-04-25 15:20:52 +04:00
Icaro Motta 1e4a49fafe Integrate support for SVG icons and fix clear icon (#15691)
This commit solves the problem described in detail in issue #15606, but in
essence, it fixes the clear icon by integrating rudimentary support for SVG
icons.

Fixes https://github.com/status-im/status-mobile/issues/15606

- Hopefully, if SVG icons prove to be a solid solution, we can easily and
  progressively migrate PNG icons to SVGs, but for the moment, it was aligned
  with @flexsurfer
  https://github.com/status-im/status-mobile/issues/15606#issuecomment-1514631270
  that we'll only use SVG icons on demand.
- Note that it's possible to import SVGs directly via js/require by installing
  the library react-native-svg-transformer, but this approach is only good when
  we don't want/need color customization, which is rarely the case with icons
  where we want to change the foreground and/or background colors. I opted for
  rendering the SVG icon as hiccup to support color customization.
- Since icons are fully memoized, the app's performance is on the same ballpark
  as PNGs rendered with RN Image.
- It's possible to trim down SVGs by using a tool such as
  https://github.com/svg/svgo, but this is obviously outside the scope of this
  PR.
2023-04-24 14:28:19 -03:00
Omar Basem faa29a2946 feat: reimplement composer (#15639)
* feat: reimplement composer (1)
2023-04-24 17:40:15 +04:00
Alexander 5bf58bbaf8 Pinned messages UI issues (#15687)
* Pinned messages UI issues

* Fix

* Fixes
2023-04-24 15:31:07 +02:00
flexsurfer 4a42d20b0c update guidlines (#15686) 2023-04-24 14:38:11 +02:00
Ulises M e676b3dab4 Create recovery-phrase input 2023-04-24 12:44:52 +01:00
Ulises M d80021b6a3 Fix password disclaimer
add the erased blur property
2023-04-24 12:38:51 +01:00
Siddarth Kumar 8f3fbc22d4 move image-server out of status-im namespace (#15712) 2023-04-24 14:20:45 +05:30
Ibrahem Khalil 9ddea4805a Allow unpinning of deleted-for-you messages (#15572) 2023-04-23 19:13:37 +02:00
yqrashawn 4d029f06e8 feat: step component (#15711) 2023-04-21 20:53:58 +08:00
Roman Volosovskyi 3bad3324ae [#15210] Show user avatar in contact request toast 2023-04-21 11:48:01 +02:00
Mohamed Javid bfb074eca3 Community request to join changes (#15627)
Resolves  #15322 #15082 #15694
2023-04-21 15:06:58 +05:30
Brian Sztamfater b87b3083a3 Add accessibility-id for buttons 'Enable Biometrics' page
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-04-20 17:14:22 -03:00
jakub 3e8647d626 nix: add ios-deploy package to ios shell
Also adds an assertion that gives a better error when trying to use an
`ios` Nix shell on an unsupported operating system.

Resolves:
https://github.com/status-im/status-mobile/issues/15695

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-20 20:17:38 +02:00
John Ngei 9e5c7cdea5 fix: remove contact from mutual contact list after contact is blocked
* fix: remove contact from mutual contact list after contact is blocked

* remove our contact from remote user contact list when contact is blocked

https://github.com/status-im/status-go/compare/719af90f...9dea0aae
2023-04-20 20:46:48 +03:00
Jamie Caprani fa21c22fab chore: add generate code to new sync ui (#15584) 2023-04-20 05:34:30 -07:00
Mohamed Javid 7c54537cb3 [Fix] iOS crash on onboarding without biometrics (#15688) 2023-04-20 17:00:06 +05:30
Ibrahem Khalil 14653f387b [15569] Select recent tab on messages home when double tapping messages icon (#15604) 2023-04-20 11:14:32 +02:00
jakub 40bb07a99b ci: upgrade Xcode from 14.2 to 14.3
https://developer.apple.com/documentation/xcode-release-notes/xcode-14_3-release-notes

Related: https://github.com/status-im/infra-role-bootstrap-macos/commit/30656dc0

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-19 19:10:55 +02:00
Parvesh Monu 7f00f96b0c Change view-id as per the selected bottom tab and refactor subscriptions (#15636) 2023-04-19 19:09:37 +05:30
Alexander 3ca120ca94 Fix for multiple header spacings on onboarding screens (#15640)
* Fix for onboarding header spacing

* Style fixes; fix for enable-biometrics

* Style fixes

* Style fixes

* Update for functional components
2023-04-19 14:18:36 +02:00
Siddarth Kumar 46351543f1 Allow running debug iOS builds on physical device via CLI and Enable Automatic code signing for Debug builds (#15637)
This commit does the following :

- Adds a command in makefile to show connected iOS devices via make `show-ios-devices`
- Developers can then copy their connected iPhone's Device Name and use it to deploy debug builds
on the device by `make run-ios-device DEVICE_NAME="their-device-name"`
- Enables automatic code signing ( only for Debug scheme )
2023-04-19 16:20:26 +05:30
flexsurfer 05b8dd563e fix subs bug (#15680) 2023-04-18 19:30:39 +02:00
erikseppanen 5d0b739cc0 Update contact screen to new design (#15526) 2023-04-18 13:28:12 -04:00
Siddarth Kumar 8bf5abdf3d patch react-native script to not look for nvm (#15681) 2023-04-18 22:16:12 +05:30
Alexander a0f2481406 Measuring the proper sizes of images in chat (#15675)
* Measuring the proper sizes of images

* Style fix
2023-04-18 16:56:47 +02:00
Parvesh Monu 4fefa629fc Use static background screen for onboarding screens with dark overlay (#15666) 2023-04-18 16:25:33 +05:30
Parvesh Monu 41e2fffb87 fix app theme changes with PN enabled and the app closed (#15670) 2023-04-18 16:01:52 +05:30
Ulises Manuel Cárdenas 7c101716d7 Create search-input component (#15664) 2023-04-17 18:27:03 -06:00
Alexander 53cea00c67 Fix for "Pending requests" label not being shown in light mode (#15667)
* Fix for "Pending requests" label not being shown in light mode

* Smallish font weight update

* Color update
2023-04-17 20:40:48 +02:00
Parvesh Monu 512af400d7 fix status-bar font color (#15596) 2023-04-17 19:24:38 +05:30
R Adithya Kumar 45b501816a [#15518]Show disclaimer during password creation (#15650) 2023-04-17 13:49:32 +02:00
yqrashawn 9b756544fd feat: add in-app notification, refactor toast (#15642) 2023-04-17 14:01:25 +08:00
Ibrahem Khalil 8af7011eb4 [15128] Introduce muting for a specific duration (#15253) 2023-04-16 17:31:39 +02:00
Parvesh Monu f6d74df80b fix pressing jump-to in the community screen is navigating to home screen instead of shell (#15647) 2023-04-14 13:20:06 +05:30
Ulises Manuel Cárdenas 6c1929096c Add blur variants for context-tag (#15621)
- Split context-tags into context-tag.view & context-tag.style namespaces
- Fix context-tags preview screen & add blur option
2023-04-13 12:07:05 -06:00
Icaro Motta d902fb10d1 New component - URL Preview List (#15620)
Implements the URL Preview List component.

Fixes https://github.com/status-im/status-mobile/issues/15617

Notes
=====

The quo component view implements the pattern recently described by @ulisesmac.
See his great explanation here:
https://github.com/status-im/status-mobile/issues/15552#issuecomment-1492590074.

Steps to test: Go to `Quo2.0 Preview` > `links` > `url-preview-list`
2023-04-13 10:52:27 -03:00
Siddarth Kumar 270f5ab258 Add `extractNativeLibs' flag to reduce apk size (#15638) 2023-04-13 17:21:58 +05:30
jakub c3e52dbf47 ios: provide explicit NODE_ARGS in Nix shell
Some users have reported local `make run-ios` failures with errors like:
```
Command PhaseScriptExecution failed with a nonzero exit code
```
Where the actual error that can be found in `ios/logs/react-native-xcode.log` is:
```
node: bad option: --openssl-legacy-provider
```
Caused by a flag we apply to our pinned Node.js `18.9.1` to fix:
```
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
```
From: https://github.com/status-im/status-mobile/pull/15167

And the need for that should go away once we upgrade Node.js further.
But for now a decent fix is to not apply that flag directly in Xcode
config so as to avoid the `bad option` error when Xcode us called
outside of Nix context.

Fixes: https://github.com/status-im/status-mobile/issues/15631

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-13 09:36:42 +02:00
Ulises Manuel Cárdenas 73df442f40 Selector component improvements (#15541)
* Add missing color variants for selectors
* Rename test ns and replace rtl fns by helper ones
* Add missing disclaimer blur style in onboarding - create password
2023-04-12 12:28:33 -06:00
pavloburykh d11ce135a6 e2e: fix xpath for link preview 2023-04-12 14:35:40 +03:00
Siddarth Kumarandjakub 3bd4038089 Upgrade react-native from 0.63.3 to 0.67.5 (#15486)
* [IOS Only] react-native 0.63 to 0.67

* [Android Only] react-native 0.63 to 0.67

* bring back all the jenkinsfiles

* make auto-complete prop for text-input compatible

* [IOS Only] react-native 0.63 to 0.67

* [Android Only] react-native 0.63 to 0.67

* bring back all the jenkinsfiles

* nix: drop unnecessary set -x from status-go build

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* add explicity implementation line for soloader

And add deleteDebugFilesForVariant fix for libhermes.

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* use fast-image for link previews

* fix extra line in message composer on android

This elevation prop is un-necessary and causes an extra line to appear which looks like a border but its actually a shadow.

* don't use `fast-image` for url preview favicon

* fix audio record button interfering cancel android

This fix was not needed in react-native 0.63.4 but is needed after we upgraded to 0.67.5

* get rid of unused platform import

---------
Co-authored-by: Jakub Sokołowski <jakub@status.im>
2023-04-12 15:25:19 +05:30
Ibrahem Khalil 88b9aa14e8 [15504, 15408] Nickname flow (#15557) 2023-04-12 11:37:50 +02:00
Roman Volosovskyi d4bef47804 [#15545] Show proper user name in pinned message 2023-04-11 17:20:15 +02:00
Alexander fe4f4463c8 Fix design inconsistencies on onboarding notifications screen (#15523)
* Fix design inconsistencies on onboarding notifications screen

* Fixes

* Title as a separate component

* Lint-fix

* Post-review fixes

* File rollback

* File rollback

* Fixes

* Fixes
2023-04-11 16:44:38 +02:00
Jamie Caprani cddf127674 feat: add qr and share qr components to quo2 (#15583)
feat: add qr and share qr components to quo2
2023-04-11 02:35:51 -07:00
Ibrahem Khalil a46a3e2a93 Bump go version to work with latest status-go changes (#15614) 2023-04-11 10:11:06 +02:00
Icaro Motta bfc7a2d88b Implement new URL Preview component (#15607)
Fix https://github.com/status-im/status-mobile/issues/15592

Notes:

- The red border around the icon has been reported in issue
  https://github.com/status-im/status-mobile/issues/15606
- The loading state doesn't have a spinning icon on purpose. This will be done
  separately.
2023-04-10 22:02:39 -03:00
Ulises Manuel Cárdenas ccb20d7994 [#15578] fix code snippet 2023-04-10 12:24:22 -06:00
yqrashawn a261628b83 feat: support ens profile name in lock screen (#15554) 2023-04-10 12:23:40 +08:00
John Ngei e1bbf4bc75 redirect user to communities home after finishing onboarding 2023-04-08 02:45:55 +03:00
jakub bb73bc76a0 nix: bump nixpkgs to include fix for apksigner
Without this fix:
https://github.com/NixOS/nixpkgs/commit/d0c06fa3

The `apksigner` utility is unavailable on macOS:
```
error: Package ‘apksigner-33.0.1’ in .../pkgs/development/tools/apksigner/default.nix:86
is not supported on ‘x86_64-darwin’, refusing to evaluate.
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-07 18:05:50 +02:00
Ibrahem Khalil bb20c5848f [15383] Add the album count attribute to message body (#15487) 2023-04-07 17:49:56 +02:00
frank 9da9427488 Move mentions logic to status-go (#15428) 2023-04-07 17:01:13 +08:00
Mohamed Javid c3ed15f30d [Improvements] Syncing completed events check (#15574) 2023-04-06 22:29:14 +05:30
Mohamed Javid 3238f42039 [Fix] Remove AC request to join notification on community request cancellation (#15586)
* [Fix] Remove AC request notification on community request cancellation

* Status Go Version Bump
2023-04-06 19:53:43 +05:30
Mohamed Javid 0656ad8cb2 [Fix] QR Viewfinder overlap with segmented tabs in Sign in (#15568) 2023-04-06 17:15:54 +05:30
Alexander 5be2cd949b Patch react-native/Yoga to make it possible to build an app using Xcode 14.3 (#15589)
* Patch react-native/Yoga to make it possible to build an app using Xcode 14.3

* Update

* Update

* Comment update

* Comment update
2023-04-06 12:20:36 +02:00
Siddarth Kumar 4123fde91b fix chat layout breaking when combining normal text with code blocks (#15585) 2023-04-05 21:11:45 +05:30
Omar Basem e55a9326d6 fix: image desktop (#15562)
* fix: image desktop not opening
2023-04-03 18:31:29 +04:00
Parvesh Monu 6bdadd9f0d fix create profile issues (#15561) 2023-04-03 19:49:25 +05:30
Brian Sztamfater 79cd7f7df5 fix: add min 5 characters validation for display names
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-04-03 10:40:50 -03:00
jakub c5de054324 Revert "set signing to auto for debug builds (#15420)"
This reverts commit 3f3cbe98a4.
2023-04-03 08:52:09 +02:00
Ibrahem Khalil 7ed4bc5a5c Add accessibility id for community unread indicators (#15485) 2023-04-02 20:16:51 +02:00
flexsurferandChurikova Tetiana 103e154076 improve navigation and bottom sheet (#15467)
Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-03-31 16:13:27 +02:00
John Ngei abe4dc7ac1 Update communities discover screen
* Fix: discover communities missing data

* made community tags scrollable
2023-03-31 13:25:56 +03:00
Jamie Caprani 2ab491f12b chore: update to new ui on intro screen of syncing (#15450) 2023-03-31 02:49:36 -07:00
Andrea Maria Piana 6417d90e1c Bump version to 1.22.0 2023-03-30 17:30:05 +01:00
Parvesh Monu 21d409ce36 fix display name issues 2023-03-30 19:45:11 +05:30
Ibrahem Khalil d458bca193 Allow/Add mobile link previews for YouTube and Twitter (#15407) 2023-03-30 16:12:56 +02:00
Churikova Tetiana 4f2f8dea4c e2e: new onboarding 2023-03-30 15:15:42 +02:00
Andrea Maria Piana f744d761c0 Set log directory correctly
https://github.com/status-im/status-go/compare/bb6139ae...b38b3817
2023-03-30 13:54:29 +01:00
Jamie Caprani 7ad5e2181d chore: clean up ui for onboarding screens (#15470) 2023-03-30 04:05:42 -07:00
Andrea Maria Piana a10425e318 Save biometrics 2023-03-30 09:17:23 +01:00
frank 9c0ab739ea add simple validation for password, fix #15478 (#15503) 2023-03-30 08:01:22 +08:00
Omar Basem 0503f5cfc9 Image index fix (#15525)
* image index fix
2023-03-29 22:12:38 +04:00
yqrashawn a441156ff9 fix: crash on wallet view (#15502) 2023-03-29 19:50:29 +08:00
Alexanderandpavloburykh 006b11d508 Scrollable list of pinned messages (#15506)
* Scrollable list of pinned messages

* e2e: fix accessibility id

---------

Co-authored-by: pavloburykh <pavlo@status.im>
2023-03-28 20:23:30 +02:00
Parvesh Monu 8f0a990e71 fix user is not navigated to Sign in by syncing page (#15520) 2023-03-28 21:53:55 +05:30
Parvesh Monu f0ca6372cd Implement onboarding slide animation (#15489) 2023-03-28 20:57:54 +05:30
Brian Sztamfater 0f8aec00f2 Add guidelines for defining styles with apply-animations-to-style
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-03-28 11:58:06 -03:00
Roman Volosovskyi de86586208 [#15475] (issue 1) Prevent restoring of an existing multiacc 2023-03-28 12:43:48 +02:00
yqrashawn ac2d10bc5d fix: disable edit image message until it's implemented (#15496) 2023-03-28 17:04:01 +08:00
Ibrahem Khalil e825f930fa Add accessibility label for community options button (#15484) 2023-03-28 07:50:07 +02:00
frank 394dfde87b fixed #15446 (App crashes on syncing QR...) (#15464)
https://github.com/status-im/status-go/compare/4cc53630...458f2817
2023-03-28 12:27:22 +08:00
Alexander e4db23b0a9 Center input value within the field (#15472) 2023-03-27 23:00:33 +02:00
Ulises Manuel CárdenasandJamie Caprani 94ddbbcd2e Add checked? property, dark blur variant & tests to disclaimer component
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-03-27 14:06:09 -06:00
Parvesh Monu ac27314547 fix login/forget password button overlaps password input (#15488) 2023-03-27 22:08:05 +05:30
Icaro Motta 7a4b12acf4 Make component test helpers usable from the REPL (#15468)
This commit makes the test-helpers.component namespace loadable in the REPL,
plus other changes that allow for a reasonably enjoyable RDD (REPL-Driven
Development) workflow.

Why? I want to be able to get instant feedback when I render a component with
the RN Testing Library (RNTL), and only once I'm satisfied with my findings is
when I proceed to write/update the tests. This nearly instant feedback loop is
only feasible using the ClojureScript REPL, and I'd rather not endure long
recompilation cycles.

Note that by REPL I mean connecting to the CLJS REPL of the Shadow-CLJS :mobile
target.

Essentially, this is what this commit does:

- [x] Allow the test-helpers.component namespace to be evaluated in the REPL.
      This is now possible because I changed all functions that assumed js/jest
      existed with a guard clause using the CLJS macro exists?. Without the
      guard clauses, evaluating the namespace explodes due to stuff like
      js/jest.useFakeTimers that fail in compile time (it's a syntax sugar
      macro).
- [x] Change the family of functions to get the translation by text to either
      translate using i18n/label or translate with the dummy prefix tx:,
      depending if the code is running inside the Jest runtime or not.
- [x] Wrap remaining RNTL query functions, except for the find-* ones, since
      they don't work at all outside the Jest runtime.
- [x] All wrapped functions support the original arguments supported by RNTL.
      Arguments are always converted with clj->js.
- [x] All wrapped functions can optionally take a node (ReactTestInstance) as
      their first argument, otherwise the global screen object will be used.
      This is very important! See the explanation on section Doesn't RNTL
      recommend using the screen object?
- [x] Update Shadow-CLJS preloads, so that (in development) you can fire off the
      REPL and always be ready to call component test helpers. This is critical!

What else would be possible? Just an idea, but now that we can easily render
components using the same machinery provided by RNTL in the tests, we can
roughly implement Storybook's Play function
https://storybook.js.org/docs/react/writing-stories/play-function

Lesson learned: In the REPL, you may need to call
(re-frame.core/clear-subscription-cache!), otherwise you will experience
subscriptions returning the same value if their arguments are the same. For
example, I faced this while playing with the namespace
status-im2.contexts.communities.menus.community-options.component-spec. There
are better ways to solve this particular problem in the context of tests if we
use the tooling provided by day8.re-frame.test.

Doesn't RNTL recommend using the screen object? Indeed, it is recommended to use
the screen object instead of destructuring the results of RNTL render. It's just
easier and less error prone, but this only works reliably within the Jest
runtime, since it automatically cleans up rendered state after each test. When
using the REPL this is no longer the case, and I faced some errors, like Unable
to find node on an unmounted component, where RNTL would refuse to re-render
components, even if I explicitly unmounted them or called cleanup.

The only reliable solution I found was to store the result of render (a node)
and pass it to every subsequent call. This is not a workaround, it's officially
supported, but it's a tad less convenient. You can also not pass the node
reference and it should work most of the time.

Practical examples

Workflow suggestion: write your local experiments in the same namespace as the
component spec and within the comment macro. This way, you can have the Jest
watcher running and a REPL connected to :mobile, and they won't step on each
other. For the test watcher, I usually change quo2-core-spec or
status-im2.core-spec to only require what I'm interested, otherwise Jest
consumes way too many resources.

```clojure
;; Namespace quo2.components.colors.color-picker.component-spec
(h/test "color picker color changed"
  (let [selected (reagent/atom nil)]
    (h/render [color-picker/view {:on-change #(reset! selected %)}])
    (h/fire-event :press (get (h/get-all-by-label-text :color-picker-item) 0))
    (-> (h/expect @selected)
        (.toStrictEqual :blue))))

(comment
  (def selected (atom nil))
  (def c (h/render [color-picker/view {:on-change #(reset! selected %)}]))

  (h/fire-event :press (get (h/get-all-by-label-text c :color-picker-item) 0))

  ;; Options are passed down converted to JS types.
  (h/debug c {:message "Rendering header"})

  @selected ; => :blue
)
```

```clojure
;; Namespace quo2.components.tags.--tests--.status-tags-component-spec
(h/test "renders status tag with pending type"
  (render-status-tag {:status {:type :pending}
                      :label  "Pending"
                      :size   :small})
  (-> (h/expect (h/get-all-by-label-text :status-tag-pending))
      (.toBeTruthy))
  (-> (h/expect (h/get-by-text "Pending"))
      (.toBeTruthy)))

(comment
  (def c (render-status-tag {:status {:type :pending}
                             :label  "Pending"
                             :size   :small}))

  (h/get-all-by-label-text c :status-tag-pending))
```

```clojure
;; Namespace status-im2.contexts.communities.menus.community-options.component-spec
(h/test "joined and muted community"
  (setup-subs {:communities/my-pending-request-to-join nil
               :communities/community                  {:joined       true
                                                        :muted        true
                                                        :token-gated? true}})
  (h/render [options/community-options-bottom-sheet {:id "test"}])
  (-> (h/expect (h/get-by-translation-text :unmute-community))
      (.toBeTruthy)))

(comment
  (setup-subs {:communities/my-pending-request-to-join nil
               :communities/community                  {:joined       true
                                                        :muted        true
                                                        :token-gated? true}})
  (def c (h/render [options/community-options-bottom-sheet {:id "test"}]))
  (some? (h/get-by-translation-text c :invite-people-from-contacts)) ; => true
)
```
2023-03-27 11:54:56 -03:00
Brian Sztamfater 4e6dea6b36 feat: enable biometrics screen 2023-03-27 14:23:23 +01:00
Ulises M 899f89c800 Implement create password screens 2023-03-27 14:21:39 +01:00
Volodymyr Kozieiev b121678281 Fix mentions component remounting that forced user to click 2 times (#15474) 2023-03-27 12:29:09 +01:00
Roman Volosovskyi 7f87c007c1 [#15471] Add PreviewPrivacy to CreateAccountRequest 2023-03-27 09:57:07 +02:00
Churikova Tetiana 11726df060 e2e: add to run_in_parallel args handling 2023-03-26 20:57:06 +02:00
John Ngei 2f84cfd354 Onboarding notifications flow
* enable notifications onboarding

* added blurred background

* support navigate to previous screen
2023-03-25 01:40:36 +03:00
Parvesh Monu 7b60a5f867 Refactor app theme management (#15455) 2023-03-24 22:04:55 +05:30
Mohamed Javid 7d4be37111 [Feature] Sign in by scanning sync QR code (#15416) 2023-03-24 20:36:25 +05:30
Jamie Caprani 2f19badc6c Add seed phrase flow & customization color 2023-03-24 14:24:18 +00:00
Roman Volosovskyi 3b034265c0 [#15443] Show community name/description in message on Android 2023-03-24 12:53:13 +01:00
Churikova Tetiana 5fffc230c9 e2e: new community screens 2023-03-24 11:22:02 +01:00
Parvesh Monu 5c92b7eb1e remove navigate-to-nav2 event (#15454) 2023-03-24 11:14:17 +01:00
frank 45da51bea6 changes corresponding to refactor of local pair of status-go (PR #3248) (#15412) 2023-03-23 20:23:26 +08:00
Alexander 8d166a3a52 Fix for sender's name, profile icon, chat key, timestamp being lost for messages that contain images (#15426)
* Fix for sender's name, profile icon, chat key, timestamp being lost for messages that contain images

Lint fix

Lint fix

* Lint fix

* Text fix
2023-03-23 10:10:07 +01:00
Churikova Tetiana 401f7d7383 e2e: activity centre and more checks 2023-03-22 18:20:48 +01:00
erikseppanen c238ebe36e Add validation for when adding a contact (#15192) 2023-03-22 13:13:56 -04:00
Jamie Caprani a502da6ea4 https://github.com/status-im/status-go/compare/9c1c01c6...48eb7052 (#15401)
feat: add create profile to onboarding
2023-03-22 06:51:38 -07:00
Omar Basem f9255100a1 feat: bottom sheet screen (#15399)
* feat: bottom sheet screen
2023-03-22 17:31:20 +04:00
yqrashawn daa78b4171 fix: still need this fix to run-ios on m1 mac (#15439) 2023-03-22 21:13:51 +08:00
yqrashawn f2c8f21336 fix: reply with album (#15424) 2023-03-22 21:04:39 +08:00
Icaro Motta 554476ede9 Remove support for cancelling outgoing contact requests (#15415)
Removes the feature that allows users to cancel outgoing contact requests (possible spam vector). From now on, the user who sent the contact request will only be able to see the notification in the pending state. It seems this feature will be revisited in the future, but for now the agreement is to do the simplest thing and remove it.

Fixes https://github.com/status-im/status-mobile/issues/15357

Steps to test:

- Send CR from A to B.
- A should see a new notification in the pending state.
- B should receive a notification. If B accepts the CR, then A's pending CR disappears. If B declines the CR, then A's notification stays pending forever.

Note: As expected, A can swipe left->right to mark the outgoing pending notification as read or swipe right->left to delete it.
2023-03-22 08:59:32 -03:00
pavloburykh 8c358d4ae4 e2e: fix login
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2023-03-22 13:52:16 +05:30
Parvesh Monu 937c128c08 Onboarding app locked flow 2023-03-22 13:41:05 +05:30
Parvesh Monu 03cf4cec0e fix intro navigation (#15430) 2023-03-22 01:27:09 +05:30
Ulises Manuel Cárdenas 554f8aff09 Add input tests
Also fixes text align on non-multiline inputs
2023-03-21 12:28:02 -06:00
jakub d71cfd12c1 nix: unpatched Node modules for Gradle deps update
Otherwise we can end up with Gradle failing to find the dependencies
because we've patched away all entries referencing external repos.

Also made the regex in AWS parser a but more strict.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-21 15:21:58 +01:00
Omar Basem a5d767515d Remove 100ms delay when opening image (#15422)
* remove image delay
2023-03-21 17:57:26 +04:00
jakub c38fdec5b7 ci: upgrade Node.js from 16.17.1 to 18.9.1
The End-of-Life for Node.js 16 is set to 11th of September 2023.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-21 13:12:56 +01:00
Jamie Caprani ada7a02c21 chore: add skeleton for sign in with syncing flow 2023-03-21 09:42:31 +00:00
Siddarth Kumar 3f3cbe98a4 set signing to auto for debug builds (#15420) 2023-03-21 13:10:55 +05:30
Churikova Tetiana a74da63c32 e2e: activity center 2023-03-20 13:58:09 +01:00
Volodymyr Kozieiev 6d006c0ea9 Updated to status-go version without sending status problem (#15148) 2023-03-20 12:11:16 +00:00
Jamie Caprani f6f5dfbe03 chore: add skeleton flow for onboarding (#15334) 2023-03-17 05:19:39 -07:00
Roman Volosovskyi d608b88e26 [#14622] Show ugly network state icons and connection bottom sheet 2023-03-17 11:00:00 +01:00
Alexander 854e372f73 Long quoted message in the reply box is not cut, goes beyond reply box and overlapped by cancel button (#15382)
* Long quoted message in the reply box is not cut, goes beyond reply box and overlapped by cancel button

* Lint fix
2023-03-17 10:18:14 +01:00
yqrashawn 2e0fa29806 fix: mark :albumize? true when rebuild message (#15286) 2023-03-17 16:25:48 +08:00
Ulises Manuel Cárdenas 0e36190516 Fix input padding & add blur and override-theme properties
Add with-let formatting style
2023-03-16 12:59:34 -06:00
Brian Sztamfater 74da82c61a feat: implement new splash screen static version
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-03-16 12:57:32 -03:00
Omar Basem b70dd2fe67 fix: image typo (#15390) 2023-03-16 19:55:45 +04:00
Andrea Maria Piana b44e4c6d59 Add collapsing of categories (#15306)
https://github.com/status-im/status-go/compare/290579f7...44a0f5b7

Fixes: #15290

This commit adds collapsing of categories.
It also adds ordering of chats/categories as it was previously ignored.

It also removes the communities/enabled? flag as it's not used anymore,
and communities should always be enabled.
2023-03-16 10:17:50 +00:00
jakub a0697d9242 ios: upgrade Cocoapods to 1.12.0, drop ancient fix
Upgrading to Cocoapods and Gems should remove the need for this hack-fix.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-16 10:24:27 +01:00
yqrashawn 9723479634 refactor: chat message list context related (#15313) 2023-03-16 10:52:47 +08:00
Alexander dabe8285be Bugfixes for the style of "New to Status" screen (#15353)
* Bugfixes for the style of "New to Status" screen

* Updates
2023-03-15 20:02:26 +01:00
Ibrahem Khalil f981021a1f Code Improvements of 15048 (#15351) 2023-03-15 20:08:59 +02:00
Churikova Tetiana b5781a7a83 e2e: minor fixes 2023-03-15 16:49:37 +01:00
Icaro Motta e8556a9abf Show AC unread indicator with counter and seen state color (#15304)
- Display Activity Center unread badge with the unread counter.
- Use the new seen state stored in `status-go` to change the color of the
  notification.
- Performance: split the `top-nav` component into left and right section
  components and render the unread indicator in a separate component to not
  trigger the re-render of the entire `top-nav` (as was before).
  
Fixes https://github.com/status-im/status-mobile/issues/14851

Demo: https://user-images.githubusercontent.com/46027/224299978-770dd5f1-302b-4375-af2b-3cd181ffdc9d.webm

Notes
=====

- Fix/improve: `quo/counter` displayed `NaN` to the user if the input value was
  an empty string.
- In Figma, there's a border around the unread indicator. I didn't implement
  this because the ideal solution IMO involves changing the `quo/counter`
  component a little bit because the width of the component varies according to
  the content displayed (1, 9, 99, 100, etc) and I wanted to the right thing in
  a separate PR.

Design notes
============

There's an ongoing conversation with the Design team to decide what to do with
the gray indicator on top of the bell icon, since there's little contrast when
it's is in the `seen` state.

Platforms
=========

- Android
- iOS

Steps to test
=============

- Open Status
- Receive one or more notifications in the Home screen and check the unread
  indicator is blue and has a counter.
- Open the AC and close it, notice the unread indicator is now in the `seen`
  state. You can close the app and re-open and the state is persisted.
- Mark notifications as read/unread at will, check the unread counter is
  correct.
2023-03-15 12:41:34 -03:00
Omar Basem f640eb8c8f feat: drag to dismiss lightbox (#15349)
* feat: drag to dismiss lightbox
2023-03-15 16:37:01 +04:00
Alexander 8546727f84 Spacing between codeblocks and regular text + fixes for "edited at" message (#15307)
* Spacing between codeblocks and regular text + fixes for "edited at" message

Fixes

Post-review updates

* Lint fixes
2023-03-15 11:53:20 +01:00
Jamie Caprani de6a736c10 feat: add ability to cancel a request to join a community (#14973)
https://github.com/status-im/status-go/compare/80d350ad...5d818669
2023-03-14 16:14:37 -07:00
Roman Volosovskyi 61600a534b [#15152] SHow ENS name on adding contact via ENS name 2023-03-14 19:34:39 +01:00
Ibrahem Khalil 181e5c2266 Flexsurfers' comments on status-tags (#15345) 2023-03-14 18:46:35 +01:00
Icaro Motta 9473d3f40c Swipe gestures for Activity Center notifications with CTA (#15284)
Implements swipe actions for notifications with call to action (e.g. pending
contact requests, unverified identity verifications, etc).

Fixes https://github.com/status-im/status-mobile/issues/15118

According to the Design team, the goal is to deliver a consistent experience to
users, so whenever the user sees a notification with buttons, the same actions
can be taken via the swipe buttons.

Note: swipe buttons are using placeholder icons while the Design team works out
which ones to use

Additionally, a bunch of fixes:

- Fix: outgoing pending contact requests were not being removed from the UI when
  cancelled.
- Fix: Membership tab not showing unread indicator.
- Fix: dismissed membership notification not marked as read.
- Fix: dismissed membership notification was displaying decline/accept buttons.
  Regression came from changes in status-go related to soft deletion of
  notifications.
- Fix: incorrect check for the pending state of a contact request.
- Fixed lots of bugs for identity verification notifications, as it was
  completely broken. Unfortunately, somebody made lots of changes without
  actually testing the flows.
- Add basic error handling and log if accepting, declining or canceling contact
  requests fail.

The demo shows an identity verification with swipe actions to reply or decline.
[identity-verification-swipe-to-reply.webm](https://user-images.githubusercontent.com/46027/223565755-b2ca3f68-12e2-4e1e-9e52-edd52cfcc971.webm)

Out of scope: The old quo input is still in use in the identity verification
notification. This will eventually be solved by issue
https://github.com/status-im/status-mobile/issues/14364

### Steps to test

Notifications with one or more buttons (actions) are affected by this change,
because now the user can also swipe left/right to act on them.

- Membership notifications: private group chat. The following PR explains how to
  generate them https://github.com/status-im/status-mobile/pull/14785
- Contact requests, and community gated requests to join (Admin tab).
- Identity verifications. I believe the only way to test identity verification
  flows at the moment is to use the Desktop app, since initiating the challenge
  is not implemented in Mobile yet.
- Mentions and replies don't have new swipe buttons because they don't have call
  to action buttons throughout their lifecycle.

Steps to test identity verification flows:

#### Identity verification flow 1

- `A` and `B` are mutual contacts.
- `A` sends a verification request to `B`.
- `A` should not see any notification yet.
- `B` should receive an identity verification notification. `B` can either
  decline or reply.
- `B` declines and the status `Declined` is shown instead of buttons.
- `B` can now either swipe to toggle read/unread or swipe delete the
  notification.
- `A` should not receive any notification after `A` declined.

#### Identity verification flow 2

- `A` and `B` are mutual contacts.
- `A` sends a verification request to `B`.
- `A` should not see any notification yet.
- `B` should receive an identity verification notification. `B` can either
  decline or reply.
- `B` press `Reply` and a bottom sheet is displayed with a text input.
- `B` sends the reply/answer message and the status `Replied` is shown instead
  of buttons.
- `B` can now either swipe to toggle read/unread or swipe to delete the
  notification.
- `A` should receive a notification with the reply from `B`.
- `A` can either mark the answer as untrustworthy or accept it (trust it) via
  the normal buttons, as well as via the swipe left/right buttons.
- If `A` accepts the answer, then the status `Confirmed` is shown instead of
  buttons. On the other hand, if `A` marks as untrustworthy, then the status
  `Untrustworthy` is shown instead of buttons.
- `B` should receive no further notifications due to `A`s actions.
- `A` can now either swipe to toggle read/unread or swipe delete the
  notification.
2023-03-14 12:34:13 -03:00
Jamie Caprani e98ce54830 feat: add profile input to quo2 (#15323) 2023-03-14 06:52:15 -07:00
Alexander 4097aba39b Fetch details of user when adding a contact (#15070)
* Fixes

* Fixes

* Final fixes

* Lint fixes
2023-03-14 11:40:38 +01:00
Omar Basem 64dde1c9d1 feat: improve lightbox transition (#15315)
* feat: improve lightbox transition
2023-03-14 08:24:14 +04:00
flexsurfer 0fe6fea7e4 Improve home animations (#15247) 2023-03-13 19:47:04 +01:00
Ibrahem Khalil 4810e1d7bf Prevent #links to work except in community chats and allow redirection from channel to another when clicked (#15135) 2023-03-13 20:09:38 +02:00
Ulises Manuel Cárdenas 9e4d9a05a7 Add new onboarding screen - I'm new to status 2023-03-13 10:25:04 -06:00
Churikova Tetiana ee62ffdc2c e2e: AC actions 2023-03-13 14:29:26 +01:00
Jamie Caprani d8c110bf85 feat: add title input component to quo2 (#15133) 2023-03-11 08:29:11 -08:00
jakub ff3249c514 nix: add procps to default shell, and tcl for darwin
Cocoapod installations can fail with errors like:
```
tclsh /Users/jenkins/Library/Caches/CocoaPods/Pods/Release/SQLCipher/3.4.2-f9fcf/tool/addopcodes.tcl parse.h.temp >parse.h
./configure: line 11729: tclsh: command not found
./configure: line 12262: tclsh: command not found
./configure: line 12276: tclsh: command not found
```
If a pure shell is used. Also `pgrep` would be missing from a pure shell.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-10 16:19:11 +01:00
jakub 5380f83cab ci: ugprade Jenkins library to use narrow shell
Depends on:
https://github.com/status-im/status-jenkins-lib/pull/59

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-10 16:19:10 +01:00
Brian Sztamfater 7332f483a4 feat: integrate record audio component into composer
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-03-10 12:05:12 -03:00
Mohamed Javid f67f205fa9 Status Tag UI and usage update (#15282)
* [Feature][#15267] Status Tag UI Update

* [Fix] Typo in comment

* [Fix] Feedback from PR

* [Fix] Feedback from PR

* [Fix] Blur Type on Preview Screen

* [Fix] Blur Type on Preview Screen
2023-03-10 15:31:54 +05:30
Yevheniia Berdnyk bd54b05fd0 test_community_mentions_push_notification 2023-03-09 20:37:52 +02:00
jakub 73c32eacb3 ios: add README file to ios/logs directory
Allows us to get rid of the `.gitkeep` file.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-09 14:55:01 +01:00
jakub a073812a9f ios: create logs/ios folder in advance
Otherwise in some cases we can get:
``
.../Script.sh: line 6: ./logs/react-native-xcode.log: No such file or directory
Command PhaseScriptExecution failed with a nonzero exit code
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-09 13:50:19 +01:00
jakub 8cd5e3f6e3 ios: direct logs to ios/logs, archive on failure
This way people don't have to ask me for access to logs from CI hosts to
be acquired using SSH access, but instead they will be simply included
in Jenkins build artifacts.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-09 12:23:51 +01:00
Churikova Tetiana 8d7224d972 e2e: fix failures 2023-03-09 12:06:24 +01:00
flexsurfer 81212573d7 🧈 Transparent modal support 🧈 (#15268) 2023-03-09 10:37:10 +01:00
Parvesh Monu de8c294c9a fix android multi-account root initialization after app relaunch (#15292) 2023-03-08 23:31:41 +05:30
Ulises Manuel Cárdenas 8478ac74ab Refactor user-avatar & add tests 2023-03-08 11:07:37 -06:00
Parvesh Monu e9310a2ace fix mention turns into unknown in community (#15285) 2023-03-08 20:15:05 +05:30
Churikova Tetiana 0345871b66 e2e: block user test 2023-03-08 12:21:10 +01:00
Ibrahem Khalil 7a299b9b86 [15166] Show message edited status (#15190) 2023-03-08 12:42:12 +02:00
yqrashawn 5fe3029ad8 feat: allow group admin to delete others message (#15256) 2023-03-08 10:08:40 +08:00
Roman Volosovskyi c6e63ff5a5 [#15241] Proper system message on being not a member of a group 2023-03-07 09:35:36 +01:00
andrey 998b40ec4f podfile.lock 2023-03-06 15:57:26 +01:00
Jamie CapraniandChurikova Tetiana 2861190e5b New intro screen (#15127)
* feat: add new intro page

* e2e: new intro fix

---------

Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-03-06 06:42:30 -08:00
Churikova Tetiana 404ae82cfe e2e: fix deep link profile test
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2023-03-06 17:26:29 +05:30
Parvesh Monu 9ffefe74bb fix navigation to user profile 2023-03-06 17:16:49 +05:30
Vitaliy Vlasov 9959d537f3 Emoji hash is now in settings
Signed-off-by: Vitaliy Vlasov <siphiuel@protonmail.com>
2023-03-06 13:27:15 +02:00
John Ngeiandjo-mut 7a9018ae11 replaced mocked community-tags and images with real data
Co-authored-by: jo-mut <jo_ngei@Johns-MacBook-Air.local>
2023-03-06 13:57:58 +03:00
Parvesh Monu 8454ce2e11 Onboarding add background screen (#15231) 2023-03-06 16:07:07 +05:30
Parvesh Monu f314806b83 Improve profile card (#15264) 2023-03-06 14:24:34 +05:30
Omar Basem 16ffc23509 Lightbox improvements (#15243)
* feat: lightbox polishing and improvements
2023-03-06 08:35:36 +04:00
jakub 80a75c5232 nix: patch all Gradle configs of nodejs deps
Before we were patching only `build.gradle`, which is not the only type
of Gradle config file. If we do not cover them all we can encounter
errors about missing package because they will continue using remote
repositories instead of `mavenLocal()`, to which pass Nix store path.

We also need to cover `gradlePluginPortal()` to provide plugins.

This is also necessary for the React Native upgrade:
https://github.com/status-im/status-mobile/pull/15203

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-04 13:01:26 +01:00
jakub 20a0cc01f6 nix: refactor Gradle deps to be more generic
Refactoring the derivation that fetches all the POMs, JARs,
and AARs in order to make it more generic and easier to extend.
The main change is adding `files` key in `deps.json` which contains
a dict of all the files reletad to given package.

This way we can more easily include other files that might be available
for download, like AARs with ASC suffix, or `nodeps` JARs.

This is also necessary for the React Native upgrade:
https://github.com/status-im/status-mobile/pull/15203

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-04 12:41:29 +01:00
Ulises Manuel Cárdenas ff3ba6c0f0 Add new text input component 2023-03-03 15:03:38 -06:00
Mohamed Javid 3483bb1107 [Fix] Community Context for Mention or Replies Notification in Activity Center (#15234)
* [Fix] Community Context for Mention or Replies Notification in Activity Center

https://github.com/status-im/status-go/compare/ebc1fc33...71f778ec

* [Update] Status Go Version
2023-03-03 22:57:32 +05:30
Icaro Motta 1f1ab30a4e Use new RPC endpoints to fetch and count unread notifications (#15245)
There are endpoint changes in the status-go PR #3237
https://github.com/status-im/status-go/pull/3237) that will cause breakage in
the Mobile & Desktop clients. The Desktop team has already implemented the
changes and is waiting for Mobile to do the same.

The new endpoints are generally better, more ergonomic to use. There's also a
new endpoint to allow fetching multiple unread counters for all types of
notifications so we can finally remove the dreadful workaround in mobile calling
`status-go` 10+ times in a row.

- Fixes https://github.com/status-im/status-mobile/issues/15119
- Fixes https://github.com/status-im/status-mobile/issues/15229
2023-03-03 12:43:41 -03:00
Icaro Motta 064204256e Fix Activity Center popover not opening (#15239)
Fixes #15230 - The popover state in the app db must be discarded before trying to
open the Activity Center. This workaround is used in other parts of the app too.
It's ugly, but the only quick fix I found.

It's plenty obvious the popover component and all its surrounding logic should
be revisited in the future.
2023-03-03 10:34:55 -03:00
Omar Basem 8923408972 Landscape Mode (#15175)
* feat: landscape mode
2023-03-03 16:33:28 +04:00
Icaro Motta 52b87bab3e Redesign and simplify Activity Center app db (#15216)
Fixes #15215. Redesign the app db state for the Activity Center. Please, see the issue being fixed for more details about the problems being solved.

TL;DR: There's a lot less state to keep track and reconcile and way less nesting in the app db because we're only managing the state of the *current tab*, not all tabs.

Additionally:

- [x] While updating unit tests, found a bug on the sorting notifications' logic.
- [x] While updating unit tests, found a bug where notifications that are not of the type *contact request* were being removed from the app db.
- [x] Fixed regression where pressing on a notification would not open the chat.
- [x] Hardened unit tests.

#### Platforms

- Android
- iOS

##### Non-functional

- Less memory consumption.
- Faster reconciliation of notification coming from signals and from synchronous responses from RPC calls.
2023-03-03 09:17:35 -03:00
John Ngei 25d44b11f1 Fix: chat header height 2023-03-02 21:57:19 +03:00
Brian Sztamfater 9333692830 feat: remove wallet connect 1.0 (#15010) 2023-03-02 17:55:03 +01:00
jakub 4fe8b81bf6 ios: fix xcode using system Node.js version
As discovered in:
https://github.com/status-im/status-mobile/pull/15225

The attempt to fix this in:
https://github.com/status-im/status-mobile/pull/15180

But it doesn't appear to work, so instead I'm allowing an override of
`NODE_BINARY` variable and spetting it when defining the Nix shell.

The key things here are:

* Xcode injects its own paths into `PATH` which breaks Nix env.
* Combining Nix shells with `inputsFrom` does not inherit all vars.

It's important to set these variables in `shellHook` and not elsewhere.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-02 17:32:52 +01:00
Omar Basem 4dfd3af7f5 Album Reactions (#15208)
* feat: album actions
2023-03-02 20:11:17 +04:00
Icaro Motta 11b6702939 Fix (#15232) 2023-03-02 11:02:01 -03:00
Jamie Caprani 39c39915a7 chore: separate resources for old and new ui (#15108) 2023-03-02 14:25:01 +01:00
Ibrahem Khalil 01c058fecc [15127] Make reply and pinned banner react on edit (#15189) 2023-03-02 15:03:30 +02:00
Roman Volosovskyi 8f75874868 [#15042] Fix inconsistent contact request state on syncing 2023-03-02 12:45:37 +01:00
Icaro Motta 041622d98b Make popover delay configurable (#15225)
Make the popover delay in milliseconds configurable.

To open the Activity Center, 30ms delay seems to be more than enough. It's a quick fix because the current 250ms to open the AC gives the wrong impression to users (and confuses even us developers) who think the AC has a performance issue to open.

See issue https://github.com/status-im/status-mobile/pull/15222 for the full discussion.
2023-03-02 08:41:18 -03:00
yqrashawn 4190dfd26b feat: support community that all members allowed to pin (#15197) 2023-03-02 18:43:21 +08:00
flexsurferandChurikova Tetiana f731f75fca move profile tab (#15224)
* move profile tab

* e2e: new profile tab

* e2e: fix leftovers

* e2e: last

---------

Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-03-02 10:55:45 +01:00
Parvesh Monu 78682b823b fix root id of :init-root-fx (#15228) 2023-03-02 12:10:41 +05:30
Ulises Manuel Cárdenas 7d9709ee67 Improve chat Avatar (#15036) 2023-03-01 14:54:40 -06:00
Ajay Sivan aec1b5fafa quo2 strength divider component (#15177) 2023-03-01 15:47:02 +00:00
Jamie Caprani 5c67216b31 feat: add bottom sheet to see community rules (#15130) 2023-03-01 06:09:46 -08:00
Siddarth Kumar 0c9a195ca9 Improve QR code Handler mobile side PR (#15168)
* point to the relevant branch on status-go

https://github.com/status-im/status-go/compare/a9bfed21...6839f458

* update commit-sha1

* bump version to latest status-go
2023-03-01 18:15:49 +05:30
Churikova Tetiana 06192e7a24 e2e: outgoing CR + new UI 2023-03-01 12:36:49 +01:00
Omar Basem 4a6e42c6f9 fix: activity center closing animation (#15222)
fix: activity center closing animation
2023-03-01 15:12:16 +04:00
yqrashawn 2ce4a820d7 fix: deleted-by user name style (#15218) 2023-03-01 15:03:27 +08:00
jakub b72f0d4702 nix: fix Gradle nodeps JAR symlink filename
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-28 17:57:39 +01:00
frank b75e1304d8 added param deviceType (#15136) 2023-02-28 21:43:10 +08:00
Yevheniia Berdnyk c2782a26f7 paste from clipboard fix 2023-02-28 15:07:06 +02:00
flexsurfer fa03e91080 Sanitize quo2 namespace (#15207) 2023-02-28 13:59:09 +01:00
Omar Basem f9dda56310 fix: image dimensions on Android (#15211) 2023-02-28 16:20:00 +04:00
jakub 51276237f2 nix: include nodeps JARs in Gradle deps (#15212)
* nix: update gradle dependencies

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: include nodeps JARs in Gradle deps

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: include nodeps JAR for semver4j 0.16.4

Can cause failures like in some cases:
```
A problem occurred configuring project ':react-native-hole-view'.
> Could not resolve all files for configuration ':react-native-hole-view:classpath'.
   > Could not find semver4j-0.16.4-nodeps.jar (com.github.gundy:semver4j:0.16.4).
     Searched in the following locations:
         file:/nix/store/3n2pxsqa2izlx8c23s6jgqai0bqaklm1-status-mobile-maven-deps/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4-nodeps.jar
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-28 17:13:44 +05:30
flexsurfer c667d05929 bump status-go v0.133.2 (#15200) 2023-02-27 17:44:36 +01:00
Churikova Tetiana e1bcc8fec4 e2e: fix pinned messages 2023-02-27 16:39:39 +01:00
Jamie Caprani f84c2ec9f5 chore: add old edit option to communities options (#15131) 2023-02-27 05:49:37 -08:00
flexsurfer 80f063d0dd [#15056] Can't see display/ens/name when mentioning in community (#15085) 2023-02-27 12:51:53 +01:00
Parvesh Monu 69c3a72357 Navigation code cleanup (#15196) 2023-02-27 15:40:11 +05:30
yqrashawn c28b34ac08 fix: toast style on android (#15194) 2023-02-27 17:25:21 +08:00
yqrashawn b192e9efd4 fix: no delete-by ui for delete for me message (#15171)
issue 1 in https://github.com/status-im/status-mobile/issues/15115
2023-02-27 11:14:42 +08:00
jakub 6c7054b5b4 ios: fix lowercased variable name in Xcode config
In some cases might result in failures due to empty shebang:
```
Command PhaseScriptExecution failed with a nonzero exit code
```
Because the script file looks like this:
```
\#!
set -o errexit
export NODE_BINARY="node"
export NODE_ARGS=" --openssl-legacy-provider --max-old-space-size=16384 "

bash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./react-native-xcode.log 2>&1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-25 11:59:20 +01:00
Icaro Motta 1806cb792a Allow users to swipe to delete or swipe to toggle unread notification status (#15106)
Adds support for swiping left/right on some types of notifications. Swiping left
(from left to right) shows a blue button allowing the user to mark the
notification as read/unread. Swiping right (from right to left) shows a red
button, allowing the user to delete the notification for good.

Related PR in status-go https://github.com/status-im/status-go/pull/3201.

Fixes https://github.com/status-im/status-mobile/issues/14901
Fixes https://github.com/status-im/status-mobile/issues/14900

Technical notes
===============

How's the performance? It feels near native performance in a production release
in a mid-range smartphone. So I'd say it's pretty good, but let me know if you
find any issue.

- I refrained from trying to eliminate all code duplication in this PR. Some
  notifications will behave differently, especially the ones with call to
  action, so I ask you to please take that in consideration when reviewing. See
  https://github.com/status-im/status-mobile/issues/15118
- React Native Gesture Handler has a component named
  [Swipeable](https://docs.swmansion.com/react-native-gesture-handler/docs/api/components/swipeable/).
  I used it instead of writing a monstrosity 👹 of code in
  Reanimated to achieve the same results.
- RN Gesture Handler touchables are the only ones that work with the Swipeable
  component, so I used them and added vars to `react-native.gesture`.
- I had to manually interpolate the translation X of the buttons behind
  notifications because notifications are transparent. To make interpolation
  work with `Swipeable` it's mandatory to use RN `Animated.View` and not
  `Reanimated.View` (see next point).
- `Swipeable` expects us to pass functions that will receive RN
  `AnimatedInterpolation` instances and the rendering lifecycle does not work as
  usual. Hooks didn't trigger as expected, functional Reagent components didn't
  behave as expected, etc. This means `Reanimated.View` and its interpolation
  function is out of question. I did try for almost two days, nothing works.

Testing notes
=============

These are some of the manual tests I ran. There are more scenarios to cover
obviously. Assuming no unread notifications before each flow:

Contact request notification
============================

From the perspective of an user A:

1. Receive a contact request from a non-mutual contact B.
2. Verify the unread count is displayed over the bell icon.
3. Verify the unread count is displayed on the `Messages > Contacts` tab, as
   well as on the AC `Contact requests` tab.
4. Open the AC and before accepting/declining the contact request, check that
   you CAN'T swipe left or right.
5. Accept or decline the contact request.
6. Check the unread indicator disappears in all necessary places.
7. Press on the notification and see if you're redirected to the chat.
8. Go back to the AC and swipe left to mark as `Unread`. Notice that opening the
   chat marks the notification as `Read`. Also very important, notice that the
   `Messages > Contacts` tab will NOT show the *pending contact requests*
   section at the top. This is on purpose, given the notification is unread, but
   the user has already accepted/declined the contact request, hence it's not
   pending.
9. Swipe left againg to mark as `Read`. Check all unread indicators are updated.
10. Swipe right to delete the notification (it won't be displayed ever again).

Admin notification
==================

1. Generate an admin notification, e.g. a community owner receiving a request
   notification to join.
2. Verify the unread count is displayed over the bell icon, as well as the AC
   Admin tab.
3. Verify the community unread indicator is correctly displayed.
4. As an admin, open the AC and before accepting/declining the request, check
   that you CAN'T swipe left or right.
5. Accept or decline the membership request.
6. Check the unread indicator disappears accordingly.
7. Swipe left to mark as `Read`.
8. Swipe left to mark as `Unread`.
9. Swipe right to delete the notification (it won't be displayed ever again).

Mentions & replies
==================

Similar steps outlined for `Admin` notifications, but there's one important
difference. Mention and reply notifications don't require a call to action from
the user, so the user can swipe left/right **without** first having to do
anything on the notification (such as pressing on it). See issue
https://github.com/status-im/status-mobile/issues/15118

What about other types of notifications?
========================================

Swipe gestures for other notification types will be implemented in a separate
PR.
2023-02-24 21:22:31 -03:00
Churikova Tetiana 432f7bcd8c e2e: 1-1 chat, communities 2023-02-24 20:05:30 +01:00
jakub 26d618e305 ios: use sh in shellPath instead of absolute path
Otherwise Xcode uses system Node.js version which is different from Nix
version and can result in weird failures like:
```
admin@macm1-01.he-eu-fsn1.ci.devel:~/status-mobile % node --version
v16.19.0

admin@macm1-01.he-eu-fsn1.ci.devel:~/status-mobile % node --openssl-legacy-provider
node: bad option: --openssl-legacy-provider

admin@macm1-01.he-eu-fsn1.ci.devel:~/status-mobile % make shell
Configuring Nix shell for target 'default'...

[nix-shell:~/status-mobile]$ node --version
v16.17.1

[nix-shell:~/status-mobile]$ node --openssl-legacy-provider
Welcome to Node.js v16.17.1.
Type ".help" for more information.
>
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-24 13:30:28 +01:00
John Ngei fac2f952d0 Fix: scroll-page component sticky header height 2023-02-23 18:31:21 +03:00
yqrashawn e830f633d8 fix: toast style (#15170) 2023-02-23 20:18:44 +08:00
Michele Balistreri 6a58f9552d update keycard native module
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2023-02-23 11:11:20 +01:00
Omar Basem 00db44ab0d Zoomable Image (#15078)
* feat: zoomable image
2023-02-23 07:46:42 +04:00
Ajay Sivan 6ffed4ad47 quo2 profile-select component
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2023-02-23 01:41:56 +05:30
jakub e2169cbbd4 ios: use --openssl-legacy-provider with iOS builds
Fixes issue with following failure:
```
Failed to construct transformer:  Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:130:10)
    at stableHash (/Users/jenkins/workspace/status-mobile/platforms/ios/node_modules/metro-cache/src/stableHash.js:19:8)
    at JsTransformer.getCacheKey (/Users/jenkins/workspace/status-mobile/platforms/ios/node_modules/metro/src/JSTransformer/worker.js:471:7)
    at getTransformCacheKey (/Users/jenkins/workspace/status-mobile/platforms/ios/node_modules/metro/src/DeltaBundler/Transformer/getTransformCacheKey.js:39:29)
    at new Transformer (/Users/jenkins/workspace/status-mobile/platforms/ios/node_modules/metro/src/DeltaBundler/Transformer.js:147:28)
    at /Users/jenkins/workspace/status-mobile/platforms/ios/node_modules/metro/src/Bundler.js:54:29
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
```
https://roytuts.com/how-to-fix-err_ossl_evp_unsupported-in-react-js-application/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 18:48:03 +01:00
Ajay Sivan c8fd7121d3 quo2 password-tips component (#15157) 2023-02-22 14:50:56 +01:00
frank 0c96661583 use random tcp port for listen address for node (#15143) 2023-02-22 21:38:27 +08:00
Ajay Sivan d6c09d289c quo2 color-picker component (#15105) 2023-02-22 12:05:40 +01:00
jakub d5cc24fecf ci: add Xcode cleanup Jenkinsfile
Too often Xcode derived data and archives are clogging up hosts.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 09:21:59 +01:00
Ajay Sivan 20e16e2f42 fix: Community display image & cover image rendering fixes (#15047) 2023-02-22 07:11:15 +01:00
yqrashawn 3fc4c36ac6 fix: toast style (#15144) 2023-02-22 09:55:21 +08:00
Alexander 1b33aa4988 Outgoing contact requests (#14853)
* First thoughts/ideas

* Showing "Cancel contact request" button

* Fixes

* Restructuring, `retractContactRequest`

* Pending label

* Proper buttons for activity notifications

* New updates

* Returning back `activity-log` `items`

* Last changes in code

* Lint fix

* Lint fix (2)

* Style fixes

* Style fixes

* Code fixes

* Style fixes

* Fixes

https://github.com/status-im/status-go/compare/1d9d7343...0082f7e9

* Footer update

* Toasts done

* Formatting fix

* Go version update

* Fixes for deletion

* status-go-version.json

* Lint fix

* Fixes

* Lint fix

* status-go version

* status-go version
2023-02-21 22:45:54 +01:00
Alexander 888bf12856 Paste button (#15002)
* Paste button

* Lint fix

* str -> string

* Removing of redundant stuff

* Style fixes

* Style fixes

* Style fixes (android)

* Style fixes (android)

* The last style fix

* Styles

* Lint fix
2023-02-21 13:42:22 +01:00
Andrea Maria Piana c4aef97a6d [Fixes: #15093] Add support for mention @everyone
This commit adds support for displaying @everyone mention.
2023-02-21 12:19:02 +00:00
yqrashawn 46896ff7f4 ci: add component test (#15071) 2023-02-21 13:42:33 +08:00
Mohamed Javid 8ed64f810f Introduce marking all notifications as read in Activity Center (#14952)
* [Feature][#14902][#14917] Added marking all notifications as read

* [Fix] Lint Fix
2023-02-20 23:54:17 +05:30
Omar Basem 3fbb7cb0a7 feat: new text message (1) (#15005)
* feat: new text message
2023-02-20 19:14:03 +04:00
Andrea Maria Piana 58013db24c Add display name/ens to activity center 2023-02-20 10:33:35 +00:00
Andrea Maria Piana 172bf66436 Revert "Prevent #links to work except in community chats and allow redirection from channel to another when clicked (#15069)"
This reverts commit bc5f0ccda6.
2023-02-20 10:10:40 +00:00
Ibrahem Khalil bc5f0ccda6 Prevent #links to work except in community chats and allow redirection from channel to another when clicked (#15069) 2023-02-20 11:47:26 +02:00
Vitaliy Vlasov bea93f4a7a Fix for empty display-name (#15122) 2023-02-20 10:07:38 +01:00
Parvesh Monu fb155ea4bd fix new chat selected contact (#15124) 2023-02-20 14:25:06 +05:30
frank 900688dc15 feat: pass node config/kdf to status-go when local pairing (#15072)
https://github.com/status-im/status-go/compare/4cc53630...8ff91ba0
2023-02-17 21:40:27 +08:00
jakubandyqrashawn 0f8ad69319 Nix/upgrade zprint 1.2.5 (#15113)
* nix: upgrade zprint from 1.2.4 to 1.2.5

To address issue described in:
https://github.com/kkinnear/zprint/issues/273

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* chore: use zprint :multi-lhs-hang

* refactor: re-format clojure using zprint 1.2.5

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: yqrashawn <namy.19@gmail.com>
2023-02-17 20:10:00 +08:00
Yevheniia Berdnyk ad9b712bff Fix for connection error 2023-02-17 12:34:21 +01:00
Yevheniia Berdnyk f2277371f0 Updated pytest and pytest-xdist versions 2023-02-17 12:28:43 +01:00
yqrashawn 866ba63ab7 fix: delete message action logic (#14977) 2023-02-17 19:21:19 +08:00
Andrea Maria Piana ee5dcb3683 Fix contact request state 2023-02-17 10:22:17 +00:00
Vitaliy Vlasov 995d120d94 Use display-name in profile view
Signed-off-by: Vitaliy Vlasov <siphiuel@protonmail.com>
2023-02-17 11:33:16 +02:00
Jamie Caprani cbad7f4c87 feat: add drawer buttons to quo2 (#15062)
feat: add drawer buttons to quo2
2023-02-16 06:29:44 -08:00
Mohamed Javid 488db615c0 Get community-id from notification data for mentions and replies (#15100)
* [Chore] Get community-id from notification data

* [Chore] Updated name for community chat
2023-02-16 16:10:23 +05:30
Parvesh Monu 5cea66647e fix deep links to user profiles don't do anything on tap (#15089) 2023-02-15 23:27:34 +05:30
Andrea Maria Piana ab750c1829 Upgrade status-go to 0.131.4
https://github.com/status-im/status-go/compare/dea21f44...0b2f0ef2
2023-02-15 12:16:59 +00:00
Siddarth Kumar bbb07ff595 we should explicitly mention testing status-go in our docs (#15091)
* we should explicitly mention testing status-go
2023-02-15 17:06:55 +05:30
Alexander 1753ea0de0 Allow user to add contact by scanning their QR code (with a fake QR code reader) (#15076)
* Allow user to add contact by scanning their QR code

* Newline

* Small fix

* Fix
2023-02-15 10:41:48 +01:00
Ulises Manuel Cárdenas 8ff7a1630c [#15019] small option card component (#15077)
* Create small-option-card component

* Add preview screen

* Add mock-fn to test helpers

* Add component tests

* Move namespaces

* Change new section name

* Refactor tests

* Change test-ids by accessibility labels
2023-02-14 16:06:13 -06:00
Parvesh Monu 5e87d7eefd fix new chat button is not visible in small screen devices (#15079) 2023-02-14 16:57:30 +05:30
jakub cdada3fa23 ci: update ITSEncryptionExportComplianceCode
We were using old ID for the encryption compliance from old Org.
Because of this the iOS release builds failed at TestFlight upload:
```
Error: Asset validation failed Invalid Export Compliance Code.
The export compliance key value [1aa92c4d-6194-4d7d-b70a-16b48256b87e]
in the app's Info.plist doesn’t match the key value of the app’s export
compliance documentation.
To find the correct value, go to My Apps on App Store Connect. (90592)
```
Related:
- https://stackoverflow.com/questions/53326492/
- https://help.apple.com/app-store-connect/#/dev38f592ac9

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-14 10:33:58 +01:00
Ibrahem Khalil 4020b4fdef Fix pinned messages (#14787) 2023-02-14 10:50:09 +02:00
jakub ba89ac3fcf ci: fix Jenkins lib function for reading version
Otherwise we just get `UNKNOWN` in release filenames.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/56

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-13 18:05:11 +01:00
John Ngei a5571eae92 Fix: Communities home header flickering when user scrolls (#15060) 2023-02-10 17:06:49 +03:00
Alexander c12cab27f4 The [Cancel] and [Join] buttons are hidden within 'Join Community' overlay (#14971)
* The [Cancel] and [Join] buttons are hidden within 'Join Community' overlay

* Lint

* Fixes

* Lint fix
2023-02-10 13:59:36 +01:00
Siddarth Kumar d1514ec52d fetch emoji hash for profile (#14987)
* add emoji-hash to app-db post login
2023-02-10 16:32:46 +05:30
Churikova Tetiana c4264462b1 ci/e2e: make copying of nightly artifacts work
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-09 20:32:18 +01:00
flexsurfer b1d4368154 [#15046] Contacts in contact list are sorted by 3-random name (#15051) 2023-02-09 17:40:59 +01:00
Omar Basem 95380175a6 fix: image actions (#14996)
* fix: image actions and reactions
2023-02-09 07:18:49 +04:00
Andrea Maria Piana 574e69acae Bump version to 1.21.0 2023-02-08 17:50:26 +00:00
Andrea Maria Piana feae148ec8 Fix contact updates state recovery
https://github.com/status-im/status-go/compare/7360e072...dea21f44
2023-02-08 17:49:36 +00:00
jakub 8ebad39c25 ci: add cleanup step to all e2e Jenkins jobs
Otherwise we get multiple APKs in the `results` folder.
```
admin@linux-01.he-eu-hel1.ci.devel:/home/jenkins/workspace/status-mobile/e2e/status-app-prs % ls -l result
total 502236
-rw-r--r-- 1 jenkins jenkins 57334087 Feb  7 10:25 StatusIm-Mobile-230207-101618-991339-pr14988-x86.apk
-rw-r--r-- 1 jenkins jenkins 57080127 Feb  7 13:18 StatusIm-Mobile-230207-131114-098c05-pr14977-x86.apk
-rw-r--r-- 1 jenkins jenkins 57088322 Feb  7 14:19 StatusIm-Mobile-230207-141155-05cc4c-pr15002-x86.apk
...
```
And `utils.findFile()` just pick the first one alphabeticlly.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-08 18:26:45 +01:00
Brian Sztamfater 8cfc6ecb4f chore: add accessiblity ids to message status views
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-02-08 14:06:28 -03:00
Roman Volosovskyi cc348fda99 [#14962] Update AC notification on EditMessage 2023-02-08 16:43:40 +01:00
Volodymyr Kozieiev 5f119c4b3a added unread mentions counter 2023-02-08 13:01:04 +00:00
Parvesh Monu bf932e6825 Add jump-to button to community-overview screen (#15003) 2023-02-08 16:13:14 +05:30
Icaro Motta 0c59ed5ceb Improve guidelines (#15008)
- New section: Use [] instead of () in Reagent components: New section after
  this comment https://github.com/status-im/status-mobile/pull/15005#discussion_r1098220176
- Updated section "Don't use percents to define width/height": reworded to
  follow the style of the rest of the document.
- Update section "Accessibility labels": added example about avoiding dynamic
  labels.
2023-02-07 10:05:38 -03:00
jakub 875f9f1acc ci: fix absolute path of APK for e2e PR jobs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-07 13:07:23 +01:00
Icaro Motta 98b219191f Fix segmented tab component (#15001)
Fixes #14999 

Fix UI regression in the segmented tab component, introduced by PR https://github.com/status-im/status-mobile/pull/14883.

No area was impacted because segmented tabs are not used yet.
2023-02-07 08:27:27 -03:00
John Ngei f8b5b35063 Update community home scrolling to support sticky header and tabs (#14929)
* communities home sticky tabs

* Communities home screen scroll behaviours

* refactored scroll-page component
2023-02-07 12:58:38 +03:00
erikseppanen 7315dc8914 Support join.status.im links for adding a contact (#14964)
* Support join.status.im links for adding a contact (#14814)

* refactor tests, add caret to regex
2023-02-06 17:23:34 -05:00
jakub e61bd769a8 ci: fetch E2E APK from android-e2e jobs
Using `copyArtifacts()` is more reliable and faster then fetching APKs
based on URLs acquired by parsing GitHub comments from Jenkins builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-06 18:37:53 +01:00
Parvesh Monu b9ac26edd7 fix selected members are not shown on the group creation screen (#14991) 2023-02-06 22:13:45 +05:30
Parvesh Monu 739d10a9ef Add tests for bottom-tabs-notifications-data subscription (#14992) 2023-02-06 20:40:46 +05:30
jakub 361ddb338e ci: drop uploading e2e builds to SauceLabs
Since uploads to SauceLabs were dropped from `Fastfile` in:
https://github.com/status-im/status-mobile/pull/14969

Also dropped:
- Useless Diawi upload of APK
- Useless DO Spaces upload of IPA

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-06 15:15:51 +01:00
John Ngei 91d0e106f2 showing sticky bar on scrolling discover screen (#14825) 2023-02-06 15:41:34 +03:00
Churikova Tetiana 89039cd79a e2e: remove upload to sauce from fastlane and fix in e2e 2023-02-03 14:03:15 +01:00
Brian Sztamfater 0202af8070 feat: style delivery states
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-02-03 09:53:15 -03:00
frank 0472140f02 fix: Unable to add new contact on receiver device after local pairing until app relaunch (#14936) 2023-02-03 16:07:27 +08:00
Roman Volosovskyi e4722e05f3 [#14959] Reschedule messages deletion broadcast on new deletion 2023-02-02 18:13:47 +01:00
Volodymyr Kozieiev 77a798530d Unread indicator on community channel (#14960)
* Unread indicator on community channel
* Unread grey dot made a separate component
2023-02-02 17:09:37 +00:00
Parvesh Monu c2cfb4539f Remove top nav search button and add bottom padding for home list (#14966) 2023-02-02 19:16:54 +05:30
Roman Volosovskyi c38cb03956 [#14865] Add previews for youtube links with www subdomain 2023-02-02 13:08:37 +01:00
Churikova Tetiana c1e3a38cb2 e2e: saucelab new api + remove workarounds 2023-02-02 12:40:19 +01:00
Roman Volosovskyi db417cb3a3 fix compatibility with ConvertToKeycardAccount after recent changes 2023-02-02 12:15:38 +01:00
Omar Basem eed38fe082 Lightbox screen animations (#14954)
* lightbox screen animations
2023-02-02 15:03:59 +04:00
Icaro Motta 2dad2b67e8 Update style namespaces (#14941)
Update certain `style.cljs` files to more strictly follow our guidelines. Except for animations and theme colors, *style* functions should be pure.

It turns out `style` namespaces are well behaved and are almost perfectly following guidelines 🚀 

The motivation for the PR came from this thread https://github.com/status-im/status-mobile/pull/14925#discussion_r1090485454
2023-02-02 07:23:06 -03:00
Icaro Motta 8626cd3e6d Show unread indicator on Activity Center tabs (#14883)
Fixes https://github.com/status-im/status-mobile/issues/14852
Fixes https://github.com/status-im/status-mobile/issues/14882

Summary
=======

- [x] Fixes https://github.com/status-im/status-mobile/issues/14852
- [x] Fixes https://github.com/status-im/status-mobile/issues/14882
- [x] Refactors `tab` component to follow new guidelines.
- [x] Improves preview area for tabs to optionally show notification dots.
- [x] Refactors `tabs` component: break the component into smaller chunks;
remove duplication between scrollable & non-scrollable tabs; update outdated
docstring;
- [x] Adds accessibility labels to tabs.

Cutout with light theme on the background:
https://user-images.githubusercontent.com/46027/214553974-2b2e8c6e-71b8-46f3-ba75-a66cb4755490.png

Cutout with dark theme on the background:
https://user-images.githubusercontent.com/46027/214554602-d637d4d6-3b20-4aa8-a2ef-64836f4454bb.png

Cutout in non-scrollable tabs:
https://user-images.githubusercontent.com/46027/214555646-bbb85546-20d9-48bb-8273-716564fb5e0f.png

Notification dots in preview area:
https://user-images.githubusercontent.com/46027/214556532-10a044ae-9df5-4c86-be5f-447955276bfd.png
2023-02-01 13:10:57 -03:00
Alexander 9ded9da7e3 Fetch unread notification count only for supported notification types (#14923)
* Fetch unread notification count only for supported notification types
2023-02-01 15:36:33 +01:00
Omar Basem b8eab0c328 Photo selector and album selector screens (#14867)
* feat: photo & album selector screens
2023-02-01 17:01:03 +04:00
Omar Basem fb9309f700 Animated Header Flatlist (#14925)
* feat: animated header list (quo2)
2023-02-01 10:40:52 +04:00
yqrashawn a38ef22ca7 feat: support deleted by xxx (#14768) 2023-02-01 09:17:57 +08:00
Jamie Caprani 1f84128dd7 fix: hide buttons on community after joining (#14761) 2023-01-31 09:11:41 -08:00
Andrea Maria Piana 41124acf4d [Fixes: #14834] Fix backup of contacts
https://github.com/status-im/status-go/compare/7e1a894a...cefa0089
2023-01-31 15:45:32 +00:00
Jamie Caprani cbd920f070 chore: fix sorting of pinned messages (#14874) 2023-01-31 06:57:17 -08:00
Parvesh Monu 6bdd3ceded fix some of the app elements periodically stop responding on the android (#14935) 2023-01-31 19:13:02 +05:30
Volodymyr Kozieiev bfb2863774 Documentation updated (#14933) 2023-01-31 12:06:29 +00:00
frank 01523f3a1d fix: crashed after local pairing (#14931) 2023-01-31 17:23:38 +08:00
Churikova Tetiana 3692ad38dd e2e: fixes compressed keys 2023-01-30 21:48:41 +01:00
Ibrahem Khalil d7d256b139 [14677, 14673, 14672, 14671, 14664] Fix bottom sheet dismissal problems (#14791) 2023-01-30 22:33:12 +02:00
Andrea Maria Piana 0fd2783774 Update status-go and temporary fix for keycard 2023-01-30 16:45:23 +00:00
Andrea Maria Piana 6830f98f95 Add support for compressed keys
https://github.com/status-im/status-go/compare/fc03393e...caf3cc04
2023-01-30 16:11:09 +00:00
Erik Seppanen fac9e644a9 Lookup/add a contact from home screen (#14477) 2023-01-30 16:06:32 +00:00
Parvesh Monu d16baca64f fix pinned message for community channels (#14885) 2023-01-30 19:42:58 +05:30
Icaro Motta 55caf0230e Update empty state (#14916)
Fixes #14899

Updates the empty states according to latest design in Figma.
2023-01-27 15:24:30 -03:00
flexsurfer 6002672e7c [#14877] No ability to type the text into textbox if image is added [#14881] Input field is hidden in composer (#14911) 2023-01-27 16:40:04 +01:00
Mohamed Javid 85fc754104 [Fix] Added support for pinned message in reply notification (#14913) 2023-01-27 21:50:02 +08:00
Churikova Tetiana 6530713c3f e2e: communities fix 2023-01-27 10:48:52 +01:00
Roman Volosovskyi 1654c32ea0 [#14173] Fix incorrect pagination of notifications 2023-01-27 08:53:07 +01:00
Jamie Caprani 2e35939979 chore: add accesibility label 2023-01-26 16:50:20 +00:00
flexsurfer 8b358ab7ed [#14869] Options menu is hardly opened on longtap on messages containing image or links with enabled preview (#14908) 2023-01-26 17:12:26 +01:00
Parvesh Monu 48e5c5c0ec fix home-screen half-width (#14895) 2023-01-26 17:23:11 +05:30
Omar Basem b3f9a5944d add support for 120Hz animations (#14905)
feat: add support for 120hz animations
2023-01-26 13:28:03 +04:00
Roman Volosovskyi e94898c5ac [#14718] Fix profile photo in several places 2023-01-26 09:49:36 +01:00
Ibrahem Khalil f41c69ff4b [14681] Make checkbox select contacts correctly in new chat flow (#14790) 2023-01-25 21:50:00 +02:00
Volodymyr Kozieiev 7585767961 Remove test for join-existing-users-string (#14892) 2023-01-25 16:39:16 +00:00
Parvesh Monu 612c17a8db Add blur overlay for bottom tabs and shell top nav (#14783) 2023-01-25 20:08:11 +05:30
Roman Volosovskyi 146e41c8cc [#14669] Fix re-activation of deleted chat on old contact update 2023-01-25 13:14:53 +01:00
Volodymyr Kozieiev 3e93e353db Refactor mock data out of community page (#14799) 2023-01-25 11:35:10 +00:00
Churikova Tetiana 4e8ebc6d85 e2e: previews + uncommented pins 2023-01-24 21:27:02 +01:00
Ibrahem Khalil 7f2623a23e [14849] Only allow dragging inside bottom sheet when no handle is shown (#14850) 2023-01-24 20:27:57 +02:00
Parvesh Monu 080b13c304 fix some buttons are not responding after theme change (#14811) 2023-01-24 20:28:41 +05:30
Roman Volosovskyi df2dd56cfb [#14728] Fix sender avatar in reply 2023-01-24 12:04:24 +01:00
Brian Sztamfater bd3c724c66 feat: record audio complete flow
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-01-23 14:04:06 -03:00
Icaro Motta 206730a777 Show "Added to group chat" notifications (#14785)
Partially implements https://github.com/status-im/status-mobile/issues/14712
Fixes #14744

### Summary

This PR implements the first, among what will probably be many different kinds of membership notifications. For this PR, I started with implementing a particular flow for private group chats because it's already supported by `status-go` (albeit I had to make some changes, see [PR in status-go](https://github.com/status-im/status-go/pull/3088).

1. `A` and `B` are mutual contacts.
2. `A` creates a private group chat with `B` as member.
3. `B` sees the group chat in the app, but doesn't interact with it.
4. `B` reinstalls the app (remember to back up the seed phrase).
5. `A` mentions `B` in the group chat.
6. `B` should see a group chat notification, which can be accepted/declined.

- [x] Also fixes #14744

### Demo

In the video I'm simulating the steps outlined in the *Summary*, but using the approach described in *Steps to test*, because it's way easier to iterate during development.

[demo.webm](https://user-images.githubusercontent.com/46027/212470798-c135d229-948d-4ba5-98db-ee73cc5495cd.webm)

### Review Notes

Some changes had to be made in `status-go` ([PR](https://github.com/status-im/status-go/pull/3088)), namely:

- According to [Figma](https://www.figma.com/file/eDfxTa9IoaCMUy5cLTp0ys/Shell-for-Mobile?node-id=3806%3A586901&t=xLTAjLXjG1UtorpI-0), users should be able to see `accepted` group chat notifications. Until now, `status-go` hardcoded that `accepted` notifications would *not* be returned in query results, and so it would be impossible to show them to users. This was changed and now the RPC endpoint accepts an additional filter. The implementation on the backend is backwards compatible so as to not break Status desktop.
- The `Membership` tab needs to display various types of notifications (group chat, community, etc), but the membership type doesn't exist on the backend. To overcome this constraint, this PR makes the membership type a logical/virtual type, i.e. a Clojure set of types. `status-go` was changed to support querying for multiple notification types (also backwards compatible).

#### Platforms

- Android
- iOS

### Steps to test

Please, follow the steps described in the Summary and you should be able to test.

But during development, I followed these steps (recommended by @cammellos). I documented them here for reference.

1. Checkout `feature/e2e` in status-go. Apply the diff below.
2. `cd cmd/e2e && ./e2e`
3. This will create a temporary account automatically, let's call it `A`.
4. On another device, create account `B`.
5. Follow the steps documented in https://github.com/status-im/status-go/blob/bdc406ea2e6eb990ce5c0fed7ea2e84b63c92139/cmd/e2e/README.md#L2 in order for user `A` to create a group chat with `B` as member. Don't make `A` and `B` mutual contacts.
6. On `B`'s device, a notification should appear, and `B` should be able to accept or decline the "invitation" (actually *invitation* is another concept and related to another feature).

```diff
modified   cmd/e2e/main.go
@@ -283,6 +283,11 @@ func defaultNodeConfig(installationID string) (*params.NodeConfig, error) {
    nodeConfig.NetworkID = 1
    nodeConfig.LogLevel = "ERROR"
    nodeConfig.DataDir = "/ethereum/mainnet_rpc"
+        nodeConfig.HTTPEnabled = true
+        nodeConfig.HTTPPort = 8545
+        nodeConfig.HTTPHost = "localhost"
+        nodeConfig.HTTPVirtualHosts = []string{"localhost"}
+
         nodeConfig.APIModules = "wakuext,ext,waku"

    nodeConfig.UpstreamConfig = params.UpstreamRPCConfig{
modified   protocol/messenger_group_chat.go
@@ -26,17 +26,17 @@ func (m *Messenger) validateAddedGroupMembers(members []string) error {
        }

        contact, _ := m.allContacts.Load(contactID)
-		if contact == nil || !(contact.Added && contact.HasAddedUs) {
-			return ErrGroupChatAddedContacts
-		}
+                if contact == nil {
+                  contact, err = buildContactFromPkString(contactID)
+                  if err != nil {
+                    return err
+                  }
+                }
    }
    return nil
 }

 func (m *Messenger) CreateGroupChatWithMembers(ctx context.Context, name string, members []string) (*MessengerResponse, error) {
-	if err := m.validateAddedGroupMembers(members); err != nil {
-		return nil, err
-	}

    var response MessengerResponse
    logger := m.logger.With(zap.String("site", "CreateGroupChatWithMembers"))
```
2023-01-23 13:54:51 -03:00
Parvesh Monu b3a03119d1 Implement unread badge for bottom tabs (#14856) 2023-01-23 20:23:41 +05:30
flexsurfer d79d2e9d36 sanitize quo2 (#14859) 2023-01-23 14:41:55 +01:00
Jamie Caprani 098821d20b chore: get community img from real data (#14765) 2023-01-23 03:17:50 -08:00
Jamie Caprani 92a180c477 add shadows to foundations (#14839)
* chore: add shadows to foundations
2023-01-23 03:06:26 -08:00
Mohamed Javid 6722b45076 [Fix] Admin Notification marked unread after closing and reopening AC (#14824)
* [Fix][#14823] Admin Notification unread issue

* [Fix][#14823] Changed dispatch of event from the PR feedback

* [Fix][#14823] Organize dispatch of event from the PR feedback

* [Fix][#14823] Organize dispatch of event from the PR feedback
2023-01-23 18:56:58 +08:00
Andrea Maria Piana 897a5eb201 [Fixes: #14794] Use toast instead of old pin modal
Instead of using the old modal, we show a toast when the limit of 3
messages is reached.
2023-01-23 10:44:15 +00:00
Parvesh Monu d3667ad683 fix nil value in reanimated style crashing at runtime (#14855) 2023-01-23 15:55:24 +05:30
Ibrahem Khalil dc9454defa Fix using functions as identifiers (#14848) 2023-01-21 13:28:45 +02:00
Omar Basem 53495dc893 Images Album (2) (#14755)
* feat: images album (2)
2023-01-20 16:51:44 +04:00
Jamie Caprani 967c869486 chore: fix component tests and permission drawer preview (#14831) 2023-01-19 15:03:53 -08:00
flexsurfer f0272f2e77 move chat events (#14835) 2023-01-19 19:35:14 +01:00
Churikova Tetiana b8dfa6b645 e2e: offline messages + edit 2023-01-19 19:01:14 +01:00
Omar Basem 6c14fd1cb9 Scroll page animations (#14695)
* feat: scroll page animations
2023-01-19 16:46:05 +04:00
flexsurfer e8e8547879 cleanup setup (#14827) 2023-01-19 12:15:28 +01:00
flexsurfer 2899819e95 rollback user profile (#14828) 2023-01-19 12:02:05 +01:00
Alexander 27c8c5547c [#14689] Link previews in chat (#14771)
* Initial

* Link fetching

* Post-merge fix
2023-01-18 22:43:26 +01:00
Parvesh Monu b370514ef3 Improve community avatar for shell card (#14813) 2023-01-19 00:12:49 +05:30
Ulises Manuel Cárdenas ab1fd43f28 Add Collectible ui component (#14803) 2023-01-18 19:00:47 +01:00
Churikova Tetiana 4c33b43713 e2e: more fixes 2023-01-18 16:02:09 +01:00
flexsurfer d2e35fe928 move constants/config to status-im2 root and remove old constants/config (#14821) 2023-01-18 15:43:58 +01:00
flexsurfer d030e211e3 move i18n to utils (#14819) 2023-01-18 14:36:02 +01:00
flexsurfer ed348e0871 cleaning (#14808)
cleaning, introduce react-native.red-black-tree and move messages list events
2023-01-18 12:16:33 +01:00
Icaro Motta 9a60fc1600 Fix all type hint warnings (#14810) 2023-01-17 19:52:12 -03:00
Andrea Maria Piana 14c9a7c6ac [Fixes: #14777] Set dns nameserver to cloudflare 2023-01-17 09:22:48 +00:00
flexsurfer 685c95591c refactor and move composer to status-im2 (#14758)
refactor and move composer to status-im2
2023-01-16 17:20:10 +01:00
Siddarth Kumar d6c899be3d make sure nodejs uses a fixed timezone (#14793)
* make sure node uses the UTC timezone
  we have a few timebomb tests in the codebase that would break and making sure node specifies a timezone fixes them.
2023-01-16 16:34:15 +05:30
Ibrahem Khalil aa8f5b3d48 Disable starting a new chat for non mutual contact (#14726) 2023-01-14 12:57:45 +02:00
Churikova Tetiana 4960f5a59c e2e: fixes for mutual contacts 2023-01-13 19:22:51 +01:00
Mohamed Javid 2f52cb1f0c Show Admin Notifications in Activity Center (#14748)
* [Feature][#14713] Added Admin Notifications in Activity Center

* [Feature][#14713] Admin Notification UI fixes

* [Feature][#14713] Admin Notification PR Feedbacks

* [Feature][#14713] Admin Notification PR Feedbacks

* [Feature][#14713] Admin Notification accessiblity label update
2023-01-14 02:14:02 +08:00
Andrea Maria Piana 64ec49c9c4 Removed removed files and add untracked from linting
The linter would fail if there were removed files, as it would
try to lint them but would not find them.
Similarly, untracked files would not be linted.

This commit changes the behavior so that untracked files are linted and
removed files are ignored, that way we can run it before committing if
there are unstaged changes that include removed/untracked files.
2023-01-13 17:22:13 +00:00
jakub c9223cd988 ci: use arm64 macos hosts for iOS builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-01-13 13:44:05 +01:00
Churikova Tetiana c1c9fef7ec e2e: revert failed tests 2023-01-13 12:12:12 +01:00
Jamie Caprani 73c4be8dee Communities Join Screens - Implement all permutations of Context Drawer options (#14700) 2023-01-13 09:35:41 +00:00
Roman Volosovskyi bfdca0fb38 https://github.com/status-im/status-go/compare/d40290a6...d60c1d00
[#14574] Update chat clock on group event
2023-01-12 18:57:22 +01:00
jakub f446ab163e ci: upgrade Xcode from 13.4 to 14.2
Depends on:
https://github.com/status-im/infra-role-bootstrap-macos/commit/fefb0081

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-01-12 16:55:24 +01:00
jakub 0623355e84 fleets.json: drop decomissioned eth.test fleet
The fleet wasn't being used so it has been liquidated:
https://github.com/status-im/infra-eth-cluster/commit/de986014

Signed-off-by: Jakub Sokołowski <jakub@status.im>

make sure that "waku-nodes" is not pulled from fleets.json
2023-01-12 13:15:13 +01:00
Andrea Maria Piana 7a5871a03f [Fixes: #14623] Enable mutual contacts by default and show banner 2023-01-12 09:16:02 +00:00
Parvesh Monu 5c0bd33697 Improve switcher cards lifecycle (#14751) 2023-01-12 02:37:55 +05:30
Churikova Tetiana 220341e0be e2e: introduced failed due to issues tests in results 2023-01-11 13:58:11 +01:00
yqrashawn ceaa363f08 fix: not using layout animation, causing flickers on android (#14753) 2023-01-11 18:37:42 +08:00
Jamie Caprani 846d628a9d chore: use banner from quo library (#14629) 2023-01-11 00:59:00 -08:00
Alexander 9ed89ac97d Fix for tapping on new contact from contact list (#14737)
* Tapping on new contact from Contact list leads to empty chat with skeleton

* Code style fix

* Small removals of unused stuff
2023-01-10 19:26:23 +01:00
Alexander 43da198c3f Communities join screens - add toast after joining/leaving (#14735)
* Add toast after joining/leaving a community

* leftover removal

* Better code for adding toasts

* Fixes

* Lint fix
2023-01-10 19:10:26 +01:00
Omar Basem 55d11d1a18 New chat fix (#14739)
* new chat fix
2023-01-10 20:19:53 +04:00
frank d2e8c5b52c fix #14733 (#14734) 2023-01-10 23:15:12 +08:00
Parvesh Monu 115fb3f590 fix default shell for -include targets (#14738) 2023-01-10 18:36:38 +05:30
yqrashawn 02a1c3597f feat: undo delete with toast (#14618) 2023-01-10 10:02:23 +08:00
Alexander 6f10ff4d3e Switcher button in chat is back (#14717) 2023-01-09 18:37:54 +01:00
Churikova Tetiana e289ad8968 e2e: fixes + workarounds 2023-01-09 14:46:24 +01:00
John Ngei 043e218320 show selected list item context actions view (#14676)
* show selected list item context actions view

* show selected list item context actions view

* fixed showing thumnails on communities
2023-01-09 16:36:17 +03:00
John Ngei 1cdcd298b0 Scrollable tags (#14182)
* refactored scrollable-tags to share the same logic with scrollable-tabs

* refactored tabs component to support scrollable-behaviour
2023-01-08 22:40:59 +03:00
Ibrahem Khalil 4cdc166e41 Add accessibility labels for chat long press (#14685) 2023-01-06 14:39:14 +02:00
Alexander b358a23060 Adjusted border color on outline button (#14711) 2023-01-05 23:35:48 +01:00
Churikova Tetiana b158310057 e2e: workarounds 2023-01-05 18:01:57 +01:00
Parvesh Monu d6159ac269 Persist switcher cards (#14701)
https://github.com/status-im/status-go/compare/b4bdfd3d...d40290a6
2023-01-05 21:50:09 +05:30
Icaro Motta 7cf17b5d34 Move unit test helper namespace to src/test_helpers/ (#14716) 2023-01-05 11:58:37 -03:00
Icaro Motta bad796db90 Fix clojure.set and clojure.walk inconsistent namespace aliases (#14715) 2023-01-05 10:54:32 -03:00
Omar Basem 951fd43d10 Images Album (#14635)
* feat: images album
2023-01-05 16:31:32 +04:00
Siddarth Kumar bb4a4207df abstract running code in separate thread for native java modules (#14690)
This commit adds a new helper method `executeRunnableStatusGoMethod`
The helper method accepts arguments and calls the status go method in a new thread.
2023-01-05 14:42:39 +05:30
Mohamed Javid e30f895fe9 [Feature] Implement replies notification in Activity Center (#14656)
* [Feature][#14550] Added Replies UI in Activity Center

* [Fix][#14550] Removed underlay color from touchables in Replies UI in Activity Center

* [Fix][#14550] Comments from review

* [Fix][#14550] Comments from review

* [Feature][#14550] Added community support on tags in AC

* [Feature][#14550] Date utils test
2023-01-04 21:31:37 +08:00
Siddarth Kumar ec15232af8 Make sure mobile understands community share link by Desktop (#14679)
* we are now able to navigate to desktop communities

https://github.com/status-im/status-go/compare/b4bdfd3d...d2e95eee

In this commit we add support for various status-go methods in mobile :
- `multiformatSerializePublicKey`
- `multiformatDeserializePublicKey`
- `compressPublicKey`
- `decompressPublicKey`
- and my personal favourite `deserializeAndCompressKey`

When someone pastes a community joining share url into chat and taps on it, we check whether the community was generated on a desktop or mobile.
We need to do this because currently both the clients have different urls for joining a community.

Once we have identified that the url is generated via desktop we then convert that url to something that the mobile client is used to.
This enables the mobile client to view this community and interact with it.

However more work needs to be done in the future to ensure that mobile implements these compressed keys end to end, we need to get this feature in so that
by the time RC1 is released mobile client is able to join communities created by Desktop.
2023-01-04 18:24:11 +05:30
Churikova Tetiana 590c0629b6 e2e: new groups 2023-01-04 12:33:02 +01:00
Jinho Jang 944bfe2655 Update translation (#14483) 2023-01-04 12:18:26 +01:00
Parvesh Monu 63ace4da76 Improve switcher last content (#14626) 2023-01-04 03:32:51 +05:30
Matias Grote 697aa1c394 Add profile ui to quo_preview (#14652)
Add profile ui to quo_preview (#14652)
2023-01-03 20:23:16 +01:00
flexsurfer 228c596a9b cleanup and i18n revert (#14694) 2023-01-03 19:19:21 +01:00
Siddarth Kumar 3fa6112669 PR for to ensure native modules are compiled with java version 8 (#14693)
* explicitly mentioning which version of java to use
* fix indentation of closing bracket
2023-01-03 21:30:34 +05:30
Ibrahem Khalil 894be3e4e2 Reply showing unknown (#14682) 2023-01-02 22:08:40 +02:00
Omar Basem 8d08de3d4b Move photo selector to status-im2 (#14661)
* Move photo selector to status-im2
2023-01-02 08:04:03 +04:00
Churikova Tetiana 0a0b70c633 e2e: workarounds 2022-12-30 15:34:25 +01:00
Omar Basem b85eb4184a feat: group details screen (3.3) (#14654)
* feat: group details screen (3)
2022-12-30 18:14:24 +04:00
Ibrahem Khalil 13e59635c7 Add accessibility labels to mentions (#14667) 2022-12-30 15:25:49 +02:00
Ulises Manuel Cárdenas 5493d059b9 UI Component - Account (#14643)
* Implement accounts component
2022-12-30 10:44:21 +01:00
Parvesh Monu 110debc4c4 fix home stack height (#14639) 2022-12-30 09:04:37 +05:30
Jamie Caprani 1677574a6a migrate datetime to utils and finish i18n migration (#14604)
chore move datetime to common and update imports

 chore: move i18n tests and update imports, adjust i18n so translations are loading correctly
2022-12-29 13:56:11 -08:00
Ibrahem Khalil ef21312162 New chat flow (#14607) 2022-12-29 15:57:42 +02:00
Churikova Tetiana 8dac11544e e2e: activity centre 2022-12-29 14:49:35 +01:00
Ibrahem Khalil 77629fa7e1 Edit message issues (#14638) 2022-12-29 14:52:05 +02:00
Icaro Motta 915b8ebd9a New component Selector > Filter (#14650) 2022-12-28 12:21:15 -03:00
Christoph Pader 6280a6c4d5 feat: implement quo2 bottom sheet component (#14209) 2022-12-28 15:23:58 +01:00
Omar Basem b45261f2e5 Photo selector fix (#14646)
* fix: photo-selector
2022-12-28 14:40:13 +04:00
yqrashawn 4ce71e4d29 refactor: fix make lint and reformat (#14653) 2022-12-28 15:47:55 +08:00
yqrashawn 9ded8bfe97 chore: tweak zprint conf (#14645) 2022-12-28 10:05:24 +08:00
Jamie Caprani aca8c9250f add Non Token Gated - Manual Approval Required flow (#14513)
chore: add flow for closed community overview page
2022-12-26 16:05:03 -08:00
Mohamed Javid 99f7788c22 [Fix] Scroll To Index bug in Scrollable Tabs (#14641) 2022-12-27 00:13:24 +08:00
Volodymyr Kozieiev 9c7b69a2cd status-im/utils/fx replaced with utils/re-frame to avoid unambiguities (#14640) 2022-12-26 15:00:17 +00:00
flexsurfer a39e0f6fbd move messages to status-im2 (#14573)
* move messages to status-im2
2022-12-23 15:33:54 +01:00
Icaro Motta a8d392e4de Redirect user to Activity Center to manage pending contact requests (#14610) 2022-12-23 11:30:46 -03:00
Ibrahem Khalil d9e8fea14b Fix bottom spacing on image selector (#14612) 2022-12-23 10:33:01 +02:00
andrey 8ff32f4fc3 Revert "Group details screen (3) (#14494)"
This reverts commit e21b8d4396.
2022-12-23 07:32:23 +01:00
Omar Basem e21b8d4396 Group details screen (3) (#14494)
* group details screen (3)
2022-12-23 07:18:09 +04:00
Ibrahem Khalil 1af6d925d2 Message input issues (#14571) 2022-12-22 22:38:55 +02:00
Jamie Caprani 9937914594 feat: add banner component to quo2 (#14608) 2022-12-22 05:20:38 -08:00
yqrashawn e9252f5025 refactor: migrate json-rpc to status-im2.common.json-rpc.events (#14614) 2022-12-22 14:03:55 +08:00
Jamie Caprani 2610f27190 chore: add component tests (#14538) 2022-12-21 15:35:27 -08:00
Ibrahem Khalil 3dda878742 Add elevation to show image list (#14609) 2022-12-21 21:32:23 +02:00
pavloburykh 1fb41b2ca0 e2e: nightly fixes 2022-12-21 19:17:14 +02:00
Mohamed Javid 7c2d76d00f Channel name update in Context Tag (#14578)
* [Update][#14555] Channel name update in Context Tag

* [Update][#14555] Changes requested on Context Tag Component

* [Update][#14555] Changes requested on Context Tag Component
2022-12-21 20:03:58 +08:00
flexsurfer 270acefcf1 bump status-go v0.117.1a, fix empty chat (#14596) 2022-12-21 10:47:31 +01:00
Roman Volosovskyi 45e05b3f2b [#14545] Force update wakuv2 default configs 2022-12-21 10:24:37 +01:00
Ajay Sivan 9f1af8a9c2 fix: Chat scroll to bottom (#14570) 2022-12-21 10:14:38 +01:00
yqrashawn 69c90c25ab fix: fx merge error on ::json-rpc/call (#14594) 2022-12-21 16:43:38 +08:00
yqrashawn 388e5fae22 fix: toast component based on review (#14593) 2022-12-21 14:46:57 +08:00
yqrashawnandrefactor-only 0a8993bbf1 refactor: reformat all clojure code with zprint (#14589)
Co-authored-by: refactor-only <auto@status.im>
2022-12-20 22:45:37 +08:00
yqrashawn 39e29cfb5a feat: replace clj-fmt with zprint (#14520) 2022-12-20 21:57:49 +08:00
yqrashawn 37909c2d81 feat: toast component (#14376) 2022-12-20 21:52:28 +08:00
yqrashawn 01660765b7 refactor: delete message related code (#14548) 2022-12-20 21:42:50 +08:00
Brian Sztamfater c0c0742687 feat: record audio button
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-12-20 10:01:19 -03:00
Siddarth Kumar b074e9c58e moving security from status-im ns to root utils (#14567)
making a lint a fix

update old decision doc

fixing issues while poorly rebasing

fix incorrect ns imports
2022-12-20 17:56:21 +05:30
Icaro Motta 8cf95cdb30 New make target to run tests via REPL (#14576) 2022-12-20 09:07:00 -03:00
Omar Basem ba41d4b271 Photo Selector 2 (#14487)
* Photo Selector (2)
2022-12-20 07:36:06 +04:00
Guilherme Devincenzi 003b0ffb1e feat: add privacy options component (#14500) 2022-12-19 20:12:58 +01:00
Parvesh Monu dbd61a34a0 Update shell placeholder screen with new designs (#14572) 2022-12-19 14:51:53 +05:30
Yevheniia Berdnyk cbb6571954 e2e: Updated tests 702807 and 702808 2022-12-19 04:02:57 +02:00
Siddarth Kumar 7b72391e60 remove comment blocks which are not useful (#14563)
Adding a series of // characters (i.e., a "comment bar") above every method in an Objective-C file would not provide any real benefit, and would in fact be redundant, as the method list in Xcode already serves as a visual separator for methods in a class.
The #pragma mark directive,  is a more concise and effective way to add separators and group related methods in a class. We should use #pragma mark to create a separator line and add a heading to describe the methods in a particular section.
2022-12-16 22:39:39 +05:30
Icaro Motta 269d13e2f8 Move Activity Center to new app structure (#14554) 2022-12-16 10:45:00 -03:00
Siddarth Kumar fc07fbf787 UI for mobile to mobile local pairing - updated (#14514)
* ui for local pairing

lint-fix

removed un-necessary +

addressing some of the feedback on PR

more feedback + removing feature toggle from ui

getting rid of comments/log messages over here

tidy up logs

fix typos and more i18n stuff

swap % with a named parameter

getting rid of global state + lint-fix

get rid of un-used function

icon guidelines and more kebab case stuff :>

moving stuff to events and utils namespace

:main-icons -> :i :)

address feedback and adhere to guidelines etc

fixed the :t/ qualification

moree feedback :-D

referring status-im.utils.security for now

adding "cs" to constants

make tests pass

re-frame to rf

addressing feedback

moving icons to icons2 & renaming stuff

trying to make this file the way it was before

missed out on updating these references

getting rid of the icons moved to icons2

This reverts commit be8552c0d3daaf7a7333cfeaf304d97c86d50d3e.

fixing mistakes

getting rid of the s

* this rename makes sense to me

* adding an alias to the view

* fixed broken up namespaces
2022-12-16 18:40:56 +05:30
Ajay Sivan 621e41e6ab feat: Added Dividers Date Component to quo2 (#14546)
* feat: Added Dividers Date Component  to quo2
2022-12-15 17:18:54 +01:00
Andrea Maria Piana 3e3a365ffb Enable waku2 by default 2022-12-15 12:39:49 +00:00
Ibrahem Khalil 4e6a37fdd0 Message input issues (#14450)
Message input issues (#14450)
2022-12-15 10:49:54 +01:00
Icaro Motta 08fb0de7b0 Remove old Notification Center (#14533) 2022-12-14 18:00:32 -03:00
pavloburykh f47bc6e40e e2e: new community tests 2022-12-14 10:07:46 +01:00
Jamie Caprani 6a05d43b75 chore: add some component tests (#14511) 2022-12-13 14:19:20 -08:00
Volodymyr Kozieiev 68ea7cdfc5 Communities now correctly listed in pending/joined sections. (#14515) 2022-12-13 20:55:32 +00:00
Icaro Motta 5693df5a74 Lint namespace aliases (#14526) 2022-12-13 17:04:26 -03:00
flexsurfer c7a371c104 move messages screen to status-im2 (#14530)
* move messages screen to status-im2
2022-12-13 13:27:13 +01:00
Parvesh Monu 11d02c1057 fix unread badge and add back button accessibility id (#14525) 2022-12-13 14:56:46 +05:30
Churikova Tetiana c13be92505 e2e: new activity center flow 2022-12-09 13:58:54 +01:00
Icaro Motta ae10908984 Set Activity Center as the new default (#14492) 2022-12-09 09:52:18 -03:00
Jamie Caprani 53ef1ef4b5 chore: refactor scroll page component to be more generic (#14453)
chore: refactor scroll page component to be more generic
2022-12-09 04:07:21 -08:00
yqrashawn bd84a36582 feat: new delete message (#14232) 2022-12-09 15:35:41 +08:00
Roman Volosovskyi 9be8a5b961 Add peers stats screen 2022-12-08 13:28:09 +01:00
flexsurfer 5ca46fe805 Bug/composer background fix (#14502)
* [#14385] Chat view freezes if open/close chat multiple times (iOS)
2022-12-07 17:36:26 +01:00
jakub 2f1c236333 ci: update Apple dev team ID to update the org
We are trasnferring the Apple app to the new Switzerland based Apple
development organization/team from the old Singapore one, and to make
this work we also need to update the development team ID.

This should fix the following failure:
```
Could not find App ID with bundle identifier 'im.status.ethereum'
You can easily generate a new App ID on the Developer Portal using 'produce':
```
https://ci.infra.status.im/job/status-mobile/job/platforms/job/ios/854/console

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-07 10:45:14 +01:00
Yevheniia Berdnyk f2fa3a1886 Fixed test_group_chat_pin_messages and moved to PR tests 2022-12-06 23:16:55 +02:00
Parvesh Monu e6628bd346 fix app crashing on opening community channel (#14499) 2022-12-06 23:16:28 +05:30
Icaro Motta 6e272a96c8 Introduce subscription tests (#14472) 2022-12-06 13:36:05 -03:00
flexsurfer da0f0d3a81 move messages main screen to status-im2 (#14491)
* move messages main screen to status-im2
2022-12-05 14:22:06 +01:00
frank f7af7ca25d Allow owner/admin to delete messages of a community (#14366) 2022-12-02 20:13:02 +08:00
Christoph Pader f3ad8beb6d fix: channel list-item not clickable (#14469) 2022-12-02 11:45:26 +01:00
yqrashawn 2e68fb22f5 feat: add display-name in author component (#14473) 2022-12-02 14:42:16 +08:00
Christoph Pader f18044c9dc Implement Token Gating (#13899)
* feat: implement token gating component

* fix: add .calva to gitignore
2022-12-01 13:30:07 +00:00
Jamie Caprani 5947769881 chore: update action drawer with designer feedback (#14465) 2022-12-01 03:58:50 -08:00
Parvesh Monu d4897de205 partially implement shell jump-to navigation (#14410) 2022-11-30 21:46:01 +05:30
Jamie Caprani d948939ce3 fix: adjust community cards on discover page (#14444)
fix: adjust community cards on discover page
2022-11-30 01:58:44 -08:00
Yevheniia Berdnyk 1000cb79a2 Creating users and getting names in parallel 2022-11-29 18:09:39 +02:00
Mohamed Javid f55b646c20 [Chore] Use common for repeated code (#14454)
* [Chore] Use common for repeated code

* [Chore] Removed empty file
2022-11-29 22:47:35 +08:00
Mohamed Javid bc7578ae85 [Feature] Added Mentions in Activity Center (#14451)
* [Feature][#14352] Added mentions in Activity Center

* [Update][#14352] Update in namespace

* [Update][#14352] Code Style

* [Update][#14352] Created commons for AC and fix warning on text
2022-11-29 21:55:33 +08:00
Omar Basem 49e9738ff8 Group Details Screen (2) (#14427)
* feat: group details screen (2)
2022-11-29 10:41:19 +04:00
Brian Sztamfater 9e1412007f fix: edit message
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-11-28 10:21:50 -03:00
Icaro Motta c198133769 Update guidelines (#14445) 2022-11-28 09:58:36 -03:00
Jamie Caprani 6d5ff4aa92 chore: fix issues with e2e tests after refactors (#14440) 2022-11-28 03:17:12 -08:00
Jamie Caprani 0e614d51ef feat: add scrolling in community (#14281) 2022-11-28 02:24:31 -08:00
Icaro Motta 42de2a6384 Mark notifications as read based on call to action (#14439) 2022-11-25 16:10:29 -03:00
Ibrahem Khalil 3d71fdba98 [14429] Fix mentions (#14442) 2022-11-25 15:04:15 +02:00
Jamie Caprani 9de4417f03 chore: update nix config to reference babel.config.js file (#14436)
* chore: update nix config to reference babel.config.js file

* chore: update component test make command
2022-11-24 13:05:58 -08:00
Parvesh Monu 9e7db45d08 fix everyone is displaying as online in community channel and chat list (#14431)
also fixes issue with visibility status popover not opening
2022-11-24 19:45:27 +05:30
Omar Basem 14c243803f Photo Selector (1) (#14426)
* feat: photo-selector (1)
2022-11-24 15:29:54 +04:00
jakub e61889f16c ci: add missing suffix to android e2e builds
Fix for same naming of e2e and universal builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-24 10:23:28 +01:00
Parvesh Monu 1230594046 test build fix (#14435) 2022-11-24 14:50:57 +05:30
jakub 3fc1ba357e ci: bump jenkins lib to match desktop
Related to: https://github.com/status-im/status-desktop/pull/8420
Depends on: https://github.com/status-im/status-jenkins-lib/pull/53

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-23 19:48:55 +01:00
flexsurfer 3152cf0aa3 adjust navigation colors and small bugfixes (#14403)
* adjust navigation colors and small bugfixes
2022-11-23 17:30:11 +01:00
Jamie Caprani c6e8aad745 feat: add component tests using react-testing-library and jest (#14331) 2022-11-23 05:59:18 -08:00
flexsurfer bab0fc7ac0 move chats home (#14419)
* move chats home
2022-11-23 14:33:40 +01:00
frank 32d85d5059 Allow styling text in composer when selecting it with native actions (#14249) 2022-11-23 10:28:44 +08:00
Churikova Tetiana a9295ac17e e2e: test sections and fix 2022-11-22 17:44:28 +01:00
jakub 7dccbf2395 ci: separate buckets for mobile and desktop builds
Possible fix for slow upload speeds and failures caused by most probably
hitting per-bucket rate limits of DigitalOcean:

>- 500 total operations per second to any individual bucket.
>- 300 combined PUT, POST, COPY, DELETE, and LIST operations per second to any individual Space. We may further limit LIST operations if necessary under periods of high load.y

https://docs.digitalocean.com/products/spaces/details/limits/#rate-limits

Depends on: https://github.com/status-im/status-jenkins-lib/pull/52

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-22 16:55:59 +01:00
Brian Sztamfater 4a87122336 feat: author component
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-11-21 15:46:56 -03:00
Roman Volosovskyi d18c3ad102 [#14381] Wrap texts with view to ensure separate accessibility labels 2022-11-21 15:40:29 +01:00
Icaro Motta e53f58d8c0 Fix various Activity Log layout issues (#14405) 2022-11-21 11:19:50 -03:00
Omar Basem 5492fb472f Group Details Screen (#14377)
* feat: group details screen
2022-11-21 16:03:49 +04:00
flexsurfer c08d58577d move quo preview (#14409) 2022-11-21 11:03:07 +01:00
Yevheniia Berdnyk 946640339a e2e: pin messages in 1-1 and group chats 2022-11-21 06:49:53 +02:00
Jamie CapraniandErik Seppanen 72d43ba745 Visual tests setup (#14329)
feat: configuration setup for visual tests

Co-authored-by: Erik Seppanen <esep@protonmail.com>
2022-11-20 15:46:04 -08:00
Icaro Motta f4d9162ff8 Fix reconciliation for new filter type :all (#14401) 2022-11-18 06:15:39 -03:00
Omar Basem 73bbfa7d31 Fix Metro Warnings ⚠️ (#14389)
* fix: metro warnings ⚠️
2022-11-17 21:19:54 +04:00
Mohamed Javid 84da3128bf [Fix] Activity Centre UI bug (#14398)
* [Fix] Activity Centre UI bug

* [Fix] Namespace update for config

* [Chore] Moved navigation to Activity Center as reframe event

* [Chore] Code Format
2022-11-18 00:15:49 +08:00
flexsurfer 3777ebc36e move communities 2 (#14394) 2022-11-17 16:43:02 +01:00
Roman Volosovskyi 4c6b4e2d02 [#14388] Re-enable bug reporting 2022-11-17 15:01:45 +01:00
Roman Volosovskyi e469d97702 [#14372] Fix message content type on editing 2022-11-17 08:23:53 +01:00
Roman Volosovskyi cf753a0892 [#14381] Add accessibility lables for chat key and timestamp in message 2022-11-17 07:16:30 +01:00
Icaro Motta 0f7ccce3df Implement identity verification flow (#14365) 2022-11-16 16:46:04 -03:00
Mohamed Javid 509ffc2a01 [Feature] Added messages skeleton (#14072)
* [Feature][#14025] Added Messages Skeleton while loading messages

* [Improvements][#14025] Added animation to message skeleton

* [Improvements][#14025] Changed to Reanimated2 for message skeleton animation

* [Chores][#14025] Removed unused code

* [Improvements][#14025] Added preview screen for messages skeleton

* [Improvements][#14025] Style update for messages skeleton

* [Chore][#14025] Indentation for message skeleton

* [Improvements][#14025] On Layout calculation cleanup

* [Fix][#14025] Added Skeleton on New UI only

* [Chore] Moved Message Skeleton to new UI

* [Feature][#14025] Added Message Skeleton on message gap

* [TEMP][#14025] Added delay of preloading messages for testing

* [Lint][#14025] Lint fixes for Message Gap component

* [Chore][#14025] Reanimated namespace update

* [Chore][#14025] React native namespace update

* [Chore][#14025] Rollback preload messages
2022-11-17 00:43:58 +08:00
John Ngei e44d4c83c0 communites home screen context actions (#14371) 2022-11-16 17:48:18 +03:00
flexsurfer cc733a379c move communities (#14384) 2022-11-16 14:09:16 +01:00
flexsurfer 803328dc4c move switcher (#14378)
* move switcher
2022-11-16 12:00:16 +01:00
Roman Volosovskyi 255049c312 Fix uniq :key warning on opening chat 2022-11-16 10:46:32 +01:00
flexsurfer 31b6e076be new structure continue, move utils, move fx macro to re-frame utils n… (#14373)
* new structure continue, move utils, move fx macro to re-frame utils namespace
2022-11-16 09:09:25 +01:00
frank 433f9185c8 Use WakuNodes in ClusterConfig for Waku V2 (#14283) 2022-11-16 00:27:19 +08:00
Andrea Maria Piana 04408af45c Fix logout & upgrade status-go 2022-11-15 15:17:59 +00:00
Omar Basem ea7548d54a Confirmation Dialog (#14348)
* feat: confirmation dialog
2022-11-15 17:34:38 +04:00
Andrea Maria Piana c7ac53fdd0 Add icons & mentions/unread counts to community list 2022-11-15 13:03:48 +00:00
Roman Volosovskyi 48f86ff862 [#14311] Fix icons in message actions bottom sheet 2022-11-15 13:29:12 +01:00
Parvesh Monu f408035f5e Improve shell animations (#14341) 2022-11-15 16:45:43 +05:30
Parvesh Monu 1228f4aa26 Add accessibility to components (#14359)
- chat name text component
- quoted message text component
2022-11-15 16:41:56 +05:30
Christoph Pader 2f4d8accae feat: implement selectors with blurred background 2022-11-15 10:44:17 +01:00
andrey b8bfb2df80 new structure fixes 2022-11-15 10:33:32 +01:00
andrey 4654402feb new structure fixes 2022-11-15 06:56:33 +01:00
Parvesh Monu e8c44632ab fix community channel back button (#14358) 2022-11-15 03:29:03 +05:30
flexsurfer c7d5e90882 introduce new project structure (first step) (#14356)
* introduce new project structure
2022-11-14 19:16:55 +01:00
Roman Volosovskyi 4353c4a40c [#14245] Fix read/unread notifications filter 2022-11-14 13:40:20 +01:00
Icaro Motta a77f662948 Document new guidelines (#14309) 2022-11-14 07:15:49 -03:00
Omar Basem 57526a45ad Bottom sheet missing actions (#14332)
* feat: bottom sheets
2022-11-11 17:02:39 +04:00
Omar Basem 8fc853373b Rename :main-icons2 to :i (#14335)
* chore: rename icons
2022-11-11 15:45:54 +04:00
Andrea Maria Piana 5e814b7a03 Add display name 2022-11-10 20:00:49 +00:00
Omar Basem 61fd5fd791 Chat user dp (#14314)
* feat: chat-user-dp
2022-11-10 18:26:57 +04:00
Andrea Maria Piana 466dfe56d7 Fix emoji reactions 2022-11-10 13:48:12 +00:00
Andrea Maria Piana 8aee25509e Restore bottom sheet for chats 2022-11-10 13:46:27 +00:00
flexsurfer 8168d224d3 quo2 core (#14319)
* quo2 core
2022-11-10 12:10:16 +01:00
Andrea Maria Piana aca296030c Show bottom sheet when recovering account 2022-11-10 09:11:58 +00:00
yqrashawn f5a61d9a8b chore: fix can't remove node 0 error breaking react-devtools (#14316) 2022-11-10 16:42:41 +08:00
flexsurfer 3c1c8a120d cleanup quo2 2, remove status-im usage (#14308) 2022-11-10 09:10:43 +01:00
yqrashawn 3925de58b1 chore: lint against re-frame dispatch/subscribe in quo components (#14282) 2022-11-10 10:22:42 +08:00
Richard Ramos 0f6022a731 chore: set gowaku build tags for status-go
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-09 18:47:15 +01:00
John Ngei a1c1be8f8a updated communities home and discover screen (#14018) 2022-11-09 15:41:34 +03:00
Andrea Maria Piana 01eae4da9c upgrade react native to 0.63.5 2022-11-08 19:50:36 +00:00
Roman Volosovskyi 77d0084467 Attempt to fix too long prefix for notification types 2022-11-08 19:13:56 +01:00
flexsurfer 5907edccc8 cleanup quo2 (#14301)
* cleanup quo2
2022-11-08 18:30:17 +01:00
Churikova Tetiana add00a5609 e2e: configurable datacenter 2022-11-08 10:35:05 +01:00
Omar Basem f17f57cc5e Messages home items (#14256)
* feat: messages home items
2022-11-08 13:01:02 +04:00
frank 187d147dc7 fix #14236 Sometimes profile pictures don't load (#14257) 2022-11-07 16:58:29 +01:00
pavloburykh b378d88aaf e2e: deep_link tests 2022-11-04 16:54:13 +02:00
Ibrahem Khalil 3b69e5873e Add members key to the chat-preview flow to show count of members on chat preview (#14274) 2022-11-03 12:10:01 +03:00
Andrej Česen 5e5ed0a11e Add code-snippet component (#14275) 2022-11-03 10:55:33 +03:00
Ibrahem Khalil bca2258508 Format numbers helper (#14186)
format number to 100000 -> 100k/ 1000000000 -> 1b/ 1000000 -> 1m
2022-11-03 10:33:34 +03:00
flexsurfer 7b739dff45 New icons (icons2) not working in token-tag component #14277 (#14280) 2022-11-01 14:58:33 +01:00
du64 ab1dd7e794 Fix typo (replace backtick with apostrophe) (#14255) 2022-10-29 17:24:29 +02:00
Churikova Tetiana 0967582639 e2e: non-latin 2022-10-28 15:54:08 +02:00
Icaro Motta 91b237d3d3 Fix unbounded number of calls to fetch notifications (#14250) 2022-10-27 16:21:41 -03:00
Icaro Motta 69303cd7d1 Implement positive button state (#14252) 2022-10-27 16:03:18 -03:00
Andrea Maria Piana b774ecbcb4 Add chat actions in home screen
This commit adds the following chat actions on the home screen:

- Mute chat
- Delete chat
- View profile (one to ones only)
- Clear history

It adds also integration tests for muting and deleting a chat.

To accommodate multiple dividers in the bottom sheet, the interface has
been changed to accept a sequence of sequences, instead of a map.
2022-10-27 17:53:30 +01:00
Roman Volosovskyi b492ed2969 [#14230] Reset :current-chat-id on pressing back from chat screen 2022-10-27 15:01:10 +02:00
Mohamed Javid 6d557d735a Activity Center UI Fixes (#14244)
* [Fixes] Activity Center UI Issues

* [Chore] Lint Fixes
2022-10-27 20:20:03 +08:00
Roman Volosovskyi f29ed58445 [#14230] Load newly received messages on reopening chat (ISSUE 1) 2022-10-27 11:13:22 +02:00
Churikova Tetiana 1941591110 new ui e2e: reaction and text message in 1-1 2022-10-26 17:14:25 +02:00
Ibrahem Khalil a91e9dfb38 Fix message showing behind message composer (#14238) 2022-10-26 16:40:46 +02:00
Omar Basem c423aa7970 Unpin messages (#14204)
* feat: pinned messages new ui
2022-10-26 17:18:50 +04:00
Icaro Motta 910bafc5f4 Display contact verification requests and allow users to decline them (#14223) 2022-10-26 07:48:07 -03:00
Omar Basem 2ae57f7b21 Messages contact requests (#14221)
* feat: messages contact requests
2022-10-26 10:42:53 +04:00
Jamie Caprani 14a5edb24b fix: adjust selectors to designs (#14214) 2022-10-25 01:50:39 -07:00
Parvesh Monu 0ff6fb25f4 Shell & Bottom Tabs Migration (#14099)
* Shell & Bottom Tabs Migration

* Added accessibility ids for elements in the new UI
2022-10-24 18:35:06 +05:30
flexsurfer 38c95804ae move reaction-drawer and fix some icons2 (#14211)
* move reaction-drawer and fix some icons2
2022-10-21 16:13:26 +02:00
Roman Volosovskyi d281ef8e21 [#14120] Remove Ropsten and Rinkeby test networks 2022-10-21 13:20:40 +02:00
Jamie Caprani 0826ef57f2 feat: add leave community feature to redesign (#14169) 2022-10-21 02:06:53 -07:00
jakub 41f2c08736 android: use projectDir for VERSION file path
Otherwise Android Studio can't find the relative path because it uses
`/` as it's working directory. Which makes no sense.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-21 10:20:28 +02:00
yqrashawn 2bfc57281a docs: run tests in repl (#14206) 2022-10-21 16:02:30 +08:00
yqrashawn 0cbd3ec805 feat: deleted for me message UI (#14168)
* feat: delete for me message UI

delete and sync deleted for me messages immediately after leaving chat
view

Signed-off-by: yqrashawn <namy.19@gmail.com>

* fix: system message width/height

Signed-off-by: yqrashawn <namy.19@gmail.com>

Signed-off-by: yqrashawn <namy.19@gmail.com>
2022-10-21 13:12:40 +08:00
Omar Basem 1b6eaec719 Show pinned messages ui2 (#14184)
* show pinned messages new UI
2022-10-20 22:52:55 +04:00
jakub 93f5b2e32c nix: fix shadow-cljs on M1 by upgrading to 2.11.16
On M1 calling `shadow-cljs` fails with:
```
Execution error (UnsatisfiedLinkError) at java.lang.ClassLoader$NativeLibrary/load (ClassLoader.java:-2).
/private/var/folders/__/x311ykg17rqgq2wyl4kn1pdr0001yh/T/jna8753030888504535661.tmp:
    dlopen(/private/var/folders/__/x311ykg17rqgq2wyl4kn1pdr0001yh/T/jna8753030888504535661.tmp, 0x0001):
        tried: '/private/var/folders/__/x311ykg17rqgq2wyl4kn1pdr0001yh/T/jna8753030888504535661.tmp'
            (fat file, but missing compatible architecture (have (unknown,i386,x86_64), need (arm64e)))
```
This is due to an outdeted dependency on JNA 3.2.2, which is pulled in
by `hawk` package which up until release `2.11.16` was a `shadow-clj`
dependency which was removed because it was:

>Only used to be used on macOS since it was slightly faster than the default
>JVM implementation. However in Big Sur it seems to cause issues and break
>completely or just be a lot slower.

https://github.com/thheller/shadow-cljs/commit/f3b89b5a

Dropped the explicit dependency on `org.clojure/core.async` to avoid:
```
WARNING: The org.clojure/core.async dependency in shadow-cljs.edn was ignored.
Default version is used and override is not allowed to ensure compatibility.
```

Resolves: https://github.com/status-im/status-mobile/issues/14196

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-20 17:54:02 +02:00
andrey 99bd5d80ea fix icons2 2022-10-20 15:06:43 +02:00
Ibrahem Khalil 1aaa9acc80 Fix tab not selecting and Error: No protocol method IDeref.-deref defined for type string: (#14194)
* Fix laziness and let defined in render
2022-10-20 14:04:13 +02:00
flexsurfer 258f92c691 icons2 (#14190) 2022-10-20 13:47:24 +02:00
Churikova Tetiana 180df967e8 e2e: move to EU datacenter 2022-10-20 10:07:29 +02:00
Omar Basem 153dbb2de1 Messages home tabs new UI in ui2 (#14183)
* feat: messages home new ui
2022-10-20 08:54:27 +04:00
Roman Volosovskyi c017c01c53 [#11335] Use Pokt network as an infura replacement 2022-10-19 17:00:17 +02:00
Icaro Motta 5d775d93fa Use native binary for the clj-kondo linter (#14179) 2022-10-19 09:54:01 -03:00
pavloburykh b39f56722a e2e: new tests 2022-10-18 19:50:23 +03:00
frank 7ac2e1aa20 replace web3-utils methods usage by status-go (#13940)
Signed-off-by: frank <lovefree103@gmail.com>
2022-10-19 00:05:07 +08:00
Omar Basem 3aaa7e4c4e feat: edit/delete/reply for emoji/sticker/audio (#13808)
* feat: edit/delete/reply, fixed unnecessary changes
2022-10-18 17:20:27 +04:00
Mohamed Javid c6ac899b44 Feature/blur activity center background (#14165)
* [feature][#14131] Blur view background for Activity Center

* [Improvements][#14134] Force Dark Mode on Activity Center

* [Rollback][#14131] Message Content in Activity Center

* [Fix][#14131] Touchable overlay preventing scroll

* [Fix][#14131] Sticky Header in Activity Center

* [Fix][#14131] Removed unused imports

* [Fix][#14131] Naming of components

* [Fix][#14131] Formatting of code
2022-10-18 16:56:40 +08:00
flexsurfer 00fbb0dee6 Introduce new ui2 namespace, move chat to new namespace and remove new UI toggle from UI (#14156)
* enable new ui by default, introduce new ui2 namespace, move chat to the new namespace
2022-10-17 15:44:48 +02:00
Ibrahem Khalil 094a7421c1 Account avatar component (#13700) 2022-10-17 13:58:52 +02:00
Jamie Caprani 62c6a0ea72 feat: add drawers - action drawers component to quo2 library (#14157) 2022-10-17 03:14:39 -07:00
John Ngei 7f54427df4 Fix: refactored token token to fix a bug (#14152) 2022-10-17 11:18:24 +03:00
Parvesh Monu ac9fb2fe4d fix ens name turns into public key while editing message (#14149) 2022-10-14 17:35:36 +05:30
yqrashawn 509b8bf3e1 fix: remove strict equal check on timer in delete for me test (#14159)
fix #14155
2022-10-14 11:06:41 +02:00
frank a74a44e492 Allow dApps to suggest change of RPC (EIP-3085 EIP-3326) (#13716) 2022-10-14 10:32:55 +02:00
Omar Basem af3ba74e30 feat: pinned messages new ui (#14147)
* feat: pinned messages new ui
2022-10-13 22:27:56 +04:00
Omar Basem 5492d502fc feat: autocomplete mentions new ui (#14142)
* feat: autocomplete mentions new ui
2022-10-13 21:59:19 +04:00
Parvesh Monu 7368478033 Implementation of Floating Shell Button (#14154) 2022-10-13 16:59:34 +05:30
yqrashawn bc050af9ed feat: delete for me logic without UI (#14007) 2022-10-12 21:21:20 +08:00
jakub d6a8f912ea nix: upgrade nixpkgs to latest nixos-unstable
Notable upgrades:

* Go `1.17.11` to `1.18.6`
* NodeJS `16.15.0` to `16.17.1`
* Clojure `1.11.1.1139` to `1.11.1.1165`
* Ruby Gem `3.2.26` to `3.3.20`
* Bundler `2.3.9` to `2.3.22`
* Git `2.36.1` to `2.37.3`
* Curl `7.83.1` to `7.85.0`
* OpenSSL `1.1.1o` to `3.0.5`
* PatchELF `0.14.5` to `0.15.0`
* Android SDK Platform Tools `33.0.1` to `33.0.2`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-12 11:07:57 +02:00
jakub 6a23f64550 nix: re-add step to call bundler install
Was removed in:
https://github.com/status-im/status-jenkins-lib/pull/48

But only causes issues when version of Ruby Gems change.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-12 11:07:56 +02:00
jakub 4bbacf542c fastlane: update gems
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-12 11:07:55 +02:00
Ibrahem Khalil 6991f213af [#13569] Page Nav (#13773) 2022-10-11 15:01:28 +02:00
flexsurfer 35eae4587b clean deps and fix warnings (#14141) 2022-10-11 12:20:37 +02:00
Parvesh Monu 46fd30597a Implementation of Dynamic Button Component (#14127) 2022-10-11 14:10:54 +05:30
Icaro Motta af5f979443 [#13968] Fetch and reconcile notifications by type and read status (#14125)
- Extract tabs component from the main screen component to reduce rendering cost when switching tabs.
- Display empty state component when there are no notifications.
- Fix screen flickering due to quickly flushing and filling the db state.
- Display top bar as a sticky header.
- Namespace icon keywords.
- Correctly sorts notifications during reconciliation.
- Remove warning about children without unique key.
2022-10-10 16:33:42 -03:00
Omar Basem adfb0ddb5d feat: reply to message new ui (#14098)
* feat: reply to messsage new ui
2022-10-10 19:55:02 +04:00
Mohamed Javid 0a282b3a47 [Feature] Added floating button to scroll down in chat (#14129)
* [Feature][#14063] Added floating button to scroll down in chat

* [Fix][#14063] Crash on pressing floating button to scroll down in chat
2022-10-10 22:33:53 +08:00
Roman Volosovskyi 5f98e96d23 Use a single geth.log file for all networks on iOS 2022-10-09 16:09:18 +02:00
Churikova Tetiana 823fce2457 e2e: exception and new custom network 2022-10-07 00:31:34 +02:00
Jamie Caprani 1d5e1479f7 chore: add components to communities overview (#14108) 2022-10-06 09:32:45 -07:00
erikseppanen c2c281d9c6 [13939] Implement system message into quo2 components (#14061) 2022-10-06 10:59:39 -04:00
Parvesh Monu 1f6ebbb5e8 remove ens banner component (#14112) 2022-10-06 12:31:07 +05:30
Icaro Motta 73983b2abd [#13967] Displays filtering tabs and read/unread filter (#14105) 2022-10-05 14:44:37 -03:00
Ibrahem Khalilandjakub 390ac858dc Update starting guide doc (#14107)
* Update starting guide doc

* Fix bad placement of tut

* formatting and style fixes

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* add adb link

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
2022-10-05 15:39:28 +02:00
John Ngei 69c49a5557 Renamed filter-tag/filter-tags to tag/tags and refactored token-tag tag to match figma naming (#14028) 2022-10-05 15:22:36 +03:00
Churikova Tetiana 2ed3b50663 e2e: dbs, improvements 2022-10-04 17:46:18 +02:00
Roman Volosovskyi 8dd75205f3 [#14021] Add goerli geth.log to logs archive on iOS 2022-10-04 13:33:33 +02:00
jakub 081f1a2115 ci: bump jenkins lib to use generalized nix library
Necessary so other repos can use the Nix functions.

Realted to:
https://github.com/status-im/nwaku/pull/1216

Depends on:
https://github.com/status-im/status-jenkins-lib/pull/50

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-03 15:43:11 +02:00
Parvesh Monu 99b2809532 Implementation of Top Nav Component (#14094) 2022-10-01 02:55:41 +05:30
Roman Volosovskyi 7f1e83672e [#13992] Delete account only after moving keys to keyacard 2022-09-30 11:20:32 +02:00
Jamie Caprani faaf6d5f94 feat: add disclaimer component to quo 2 library (#14084)
* feat: add disclaimer component to quo 2 library

* chore: move state of selectors to be internal
2022-09-29 08:28:32 -07:00
jakub 0e3b645695 scripts/fdroid-pr.sh: fix version name log message
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-29 12:54:48 +02:00
jakub bcf919fcbb nix: use android-sdk shell for fdroid-pr target
Also renamed `android-env` shell to `android-sdk` to be more descriptive.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-29 12:54:47 +02:00
Parvesh Monu f7fedf1338 fix quo2 colors and button component (#14083) 2022-09-29 13:51:22 +05:30
Jamie Caprani 7f71c01460 feat: implement selectors for quo2 (#14078)
* feat: implement selectors for quo2
2022-09-28 08:19:32 -07:00
Ibrahem Khalil b4d95b240d [issue-13557] Network breakdown and Network amount components (#13781) 2022-09-28 13:01:35 +02:00
Jamie Caprani 260f342bb7 fix: channel list mute icon now showing (#14079) 2022-09-28 02:14:38 -07:00
Parvesh Monu 20ac0eb2c7 Implemention of quo2 bottom-nav-tab (#14077) 2022-09-28 01:27:06 +05:30
Roman Volosovskyi 30e7ad585a [#14059] Show effective gas price 2022-09-27 20:53:44 +02:00
Icaro Motta ca144fbe1b [#13965 #13966 #13969] Implement accept/decline/open chat for contact requests (#14073)
Notification reconciliation is now implemented, which means new notifications
are "merged" with existing app db notifications. The original implementation was
not compatible with the way notifications are fetched by read/unread status.

Unit tests were written to cover event handlers in the new
status-im.activity-center.core namespace. New test utilities were added for two
main reasons: 1) reduce test clutter to arrange data, and 2) to spy on effects
to make sure they are dispatched correctly.
2022-09-27 10:05:03 -03:00
Brian Sztamfater ba1ff91cdd fix: appearance switch resets to old ui when new ui is activated
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-09-26 12:06:42 -03:00
Brian Sztamfater 5fa203c6f2 feat: implement new message context drawer
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-09-26 12:01:35 -03:00
Jamie Caprani 1fb71bdfc8 Jc/add channel list item (#14040)
* feat: add list item - channel component to quo2 library

* fix: adjust size and position of icon for lock in channel avatar
2022-09-23 07:55:34 -07:00
pavloburykh 1d3a44b933 e2e: fixed 702185 2022-09-23 16:42:04 +03:00
pavloburykh 9fea5c9704 e2e: e2e fixes 2022-09-23 13:05:55 +03:00
Churikova Tetiana 9a1f0a337e e2e: web3 2022-09-23 11:17:24 +02:00
jakub fac5301ace docs/FDROID: not to create the PR as draft first
Otherwise F-Droid reviewers can merge the PR before we have a final
release version ready with all the fixes included.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-23 11:13:39 +02:00
pavloburykh 3d2c6a9333 e2e: new e2e and fixes 2022-09-22 16:55:13 +03:00
flexsurfer 5422c02da3 [#14056] Error '1.20.0 (20220922040832) is not a function' when opening About screen (#14058) 2022-09-22 15:51:08 +02:00
Parvesh Monu d707230b17 dismiss keyboard inside quo2 screen on pressing outside (#14055)
also, fixes New component preview area isn't using the full width available (#13913)
2022-09-22 18:25:01 +05:30
Parvesh Monu e582ba4169 Add expire time to ens banner (#14057) 2022-09-22 14:58:54 +05:30
flexsurfer 2266d87ade subs refactor (#14054) 2022-09-21 16:03:06 +02:00
Parvesh Monu 147958dd13 Allow disabling Hermes engine by passing flag while building app (#14041) 2022-09-21 14:56:26 +05:30
andrey 17fd6df773 Revert "subs refactor (#14049)"
This reverts commit c4eeda5df0.
2022-09-21 07:02:45 +02:00
Brian Sztamfater 6794273dbf Integrate reactions to messages in the new UI
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-09-20 16:31:45 -03:00
jakub c4da42b4d2 scripts/fdroid-pr.sh: fix typo in vars and directory
Doesn't affect functioning, but it's unsightly.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-20 20:23:47 +02:00
flexsurfer c4eeda5df0 subs refactor (#14049)
* subs refactor
2022-09-20 20:13:32 +02:00
jakub 17bb87bb87 nix: upgrade from 2.8.0 to 2.11.1
This also includes the fix for too low `LimitNOFILE`:
https://github.com/NixOS/nix/pull/6553

https://github.com/NixOS/nix/releases/tag/2.11.1

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-20 19:03:10 +02:00
Audrius Molis 36c4052039 Fix null pointer exception on password when migrating to a keykard by disabling the back button in process. (#13977) 2022-09-20 19:52:41 +03:00
Ibrahem Khalil 468d827aa2 [issue-13578] Dropdown component (#13866) 2022-09-20 18:32:58 +02:00
Siddarth Kumar f32781a8e9 add account-selector component to sandbox (#13816)
refactor to accomodate changes in colors ns

squashing everything

amending it

addressing feedback

using quo2/text component instead of rn/text

addressing feedback

fix namespaces

lint fix and removing unused resources

addressing design feedback

make lint happy

some animation progress in peaking accounts
2022-09-20 19:21:13 +05:30
Audrius Molis 8ba4f9ebae Migrate to API 31 for android (#14032) 2022-09-20 13:50:16 +03:00
jakub d97a7fb325 nix: drop KEYSTORE_PATH from extra-sandbox-paths
This is no longer necessary as we sign APKs in a separate step using the
`scripts/sign-android.sh` script, and this causes issues for F-Droid builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-20 12:11:47 +02:00
pavloburykh b47fdc6698 e2e: fixed failing e2e 2022-09-20 11:10:46 +03:00
Michele Balistreri 56cb2b747a bump keycard module
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2022-09-19 20:22:19 +02:00
Icaro Motta afbdb4c0b4 [#13964 #13962] Display contact requests (#14014) 2022-09-19 11:08:21 -03:00
Jamie Caprani 528d05eec1 fix: comment out context tag in communities redesign as its causing issues (#14029) 2022-09-19 11:57:40 +02:00
Parvesh Monu 0c83801209 Implementation of switcher cards (#13854) 2022-09-19 15:01:13 +05:30
Parvesh Monu 552c85d6c7 fix quo2 colors (#14006) 2022-09-19 14:34:45 +05:30
yqrashawn 6c135e2570 fix: remove annoying deref in lazy seq warning (#14033) 2022-09-19 10:04:02 +02:00
Mohamed Javid 8b809ec1bc [Feature][#13905] Added Divider Label Component
* [Feature][#13905] Added Divider Label Component

* [Improvements][#13905] Changed bg color for preview screen from Quo to Quo2

* [Fixes][#13905] Naming Conventions for Divider Label Component

* [Chore][#13905] Grouping for Divider-Label component

* [Chores][#13905] Component params cleanup

* [Fix] Removed unused namespace causing lint check to fail
2022-09-19 13:07:57 +08:00
Andrea Maria Piana bac2bb8b8e Use image server for all kind of images and integrate identity rings
https://github.com/status-im/status-go/compare/4cc53630...8c35fffd
2022-09-17 11:50:29 +01:00
frank 00a503bf84 Move abi-spec to status-go
https://github.com/status-im/status-go/compare/6f93913b...a182f3e6
2022-09-17 11:48:07 +01:00
Roman Volosovskyi 3e7f7232fb [#13933] Fix activity notification delition on message delition 2022-09-16 14:39:38 +02:00
Jamie Caprani 6992b625d6 feat: add ability to join open community in new-ui (#14001) 2022-09-15 07:44:16 -07:00
Mohamed Javid 5a55c6ccb2 [Feature][#13915] Added New Messages component
* [Feature][#13915] Added New Messages component

* [Feature] [#13915] Rename component new-messages to new-messages-header

* [Improvements][#13915] Using theme-colors for fetching light/dark colors

* [Improvements][#13915] Moved text to translations and added Quo2 colors for background

* [Fixes][#13915] Naming Conventions and Grouping for New Messages Component
2022-09-15 19:38:17 +08:00
jakub 38bbf84de4 ci: add wait for GitHub release to appear
Because somtimes upload is attempted so fast release doesn't exist yet:
```
+ github-release upload -u status-im -r status-mobile -t 1.20.0 -n StatusIm-Mobile-v1.20.0-cbe19b-arm64-v8a.apk -f pkg/StatusIm-Mobile-v1.20.0-cbe19b-arm64-v8a.apk
error: could not find the release corresponding to tag 1.20.0
```
https://ci.infra.status.im/job/status-mobile/job/release/job/release%252F1.20.x/

Depends on: https://github.com/status-im/status-jenkins-lib/pull/49

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-15 09:49:06 +02:00
jakub 74743630b7 ci: drop commonPrep function, call individual ones
This function did too many things, some of them unnecessary.

Requires: https://github.com/status-im/status-jenkins-lib/pull/48

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-14 16:43:59 +02:00
Ícaro Motta a489e07bd1 [#13895] Create new Activity Center screen (#13987) 2022-09-13 16:02:01 -03:00
Parvesh Monu 8205368e5c fix can't unpin message from popup (#13988) 2022-09-13 22:13:16 +05:30
Ibrahem Khalil aa0d9ba41f Channel avatar component (#13658) 2022-09-13 17:00:08 +02:00
Roman Volosovskyi 3e8ac1939e [#13981] Fix generate new key 2022-09-13 16:27:19 +02:00
flexsurfer b71853c92a [#13951] feat: merge favourites in saved addresses #2844 (#13993) 2022-09-13 15:51:31 +02:00
yqrashawn 9e2990152c fix: typography letter-spacing (#13960) 2022-09-13 15:24:09 +08:00
Ibrahem Khalil 94303a4a64 fix - add missing code for Lowest price component (#13985) 2022-09-12 20:01:41 +02:00
Emil Konstantinovitz 09e4df3cf7 [#13579] Added integration test for opening one-to-one chat (#13984) 2022-09-12 13:32:55 -04:00
Ibrahem Khalil f4bb6ec7d6 Lowest price component (#13645) 2022-09-12 19:22:16 +02:00
yqrashawn c0d136d140 fix: resolve token ens name in EIP-681 links from qr code (#13947) 2022-09-12 23:12:01 +08:00
Parvesh Monu e4feb36ccc Implement Preview lists component (#13830) 2022-09-12 17:44:20 +05:30
jakub 52a32861b1 ci: upgrade Xcode from 13.3.1 to 13.4
Xcode 14.0 is coming soon, and it's good to ugprade in smaller steps.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-12 12:31:06 +02:00
jakub 206deca961 nix: patch gomobile to sanitize xcrun output
This resolves issues with weird `status-go` build errors like:
```
cgo: C compiler "2022-09-07" not found: exec: "2022-09-07": executable file not found in $PATH
```
Such errors are caused by `xcrun` spewing warnings to `stdout`. The PR
to fix this issue permanently has been created but it might take a while
before it's merged.

Fix PR: https://github.com/golang/mobile/pull/84
Resolves: https://github.com/status-im/status-mobile/issues/13949

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-12 12:22:37 +02:00
yqrashawn d77c5f1be7 fix: messages gap component style (#13950) 2022-09-12 17:55:11 +08:00
Roman Volosovskyi 3fc5c89865 [#13855] Fix contact request decision status on Sync All 2022-09-09 13:53:47 +02:00
Jamie Caprani 994ec65218 chore: restructure quo2 menu page (#13959) 2022-09-09 02:25:37 -07:00
Icaro Motta bc40e5cb4b Correctly handle titles spanning more than 1 line 2022-09-09 00:39:44 -03:00
Icaro Motta 3060be023e Let the preview area extend to the max width available 2022-09-09 00:39:44 -03:00
Icaro Motta 8502834500 Improve activity log component
Also makes hot reload optional with environment variable
SHADOW_AUTOBUILD_ENABLED.
2022-09-09 00:39:32 -03:00
Churikova Tetiana 7cc3ea2af4 e2e: remove web3 dependencies 2022-09-08 16:27:38 +02:00
Jamie Caprani 28963acb09 feat: add community overview page (#13945) 2022-09-08 04:10:03 -07:00
jakub 079074abde ci: do not upload release builds to Diawi
Otherwise the upload fails with `400 Bad Request` due to size:
```
bundler: failed to load command: fastlane (/Users/jenkins/.bundle/ruby/2.7.0/bin/fastlane)
/Users/jenkins/.bundle/ruby/2.7.0/gems/rest-client-2.1.0/lib/restclient/abstract_response.rb:249:in `exception_with_response': 400 Bad Request (RestClient::BadRequest)
```
Because release builds are over 100 MB:
```
 > ls -l StatusIm-Mobile-v1.20.0-59567a.ipa
-rw-r--r-- 1 jakubgs jakubgs 104M Sep  7 15:50 StatusIm-Mobile-v1.20.0-59567a.ip
```
And the Diawi free account limit is 75 MB:
https://www.diawi.com/features-services

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-08 09:50:14 +02:00
Erik Seppanen b05787b0b2 [13857] Extend integration tests to recover multiaccount from seed phrase 2022-09-07 14:45:48 -04:00
Jamie Caprani 33aa595877 chore: restructure quo2 components (#13948) 2022-09-07 11:09:06 -07:00
Jinho Jang 402496b4dc Update translation (#13938) 2022-09-07 14:03:20 +02:00
Audrius Molis f524b47b8c Reduce recording time to 1 minute (#13944)
Signed-off-by: Audrius Molis <masta@dr.com>

Signed-off-by: Audrius Molis <masta@dr.com>
2022-09-07 13:19:12 +03:00
Parvesh Monu d7bbe1ceec fix keycard redundant screen (#13922) 2022-09-07 15:24:33 +05:30
Roman Volosovskyi 8b01a4ac6c [#13894] Update activity indicator on removed contact request 2022-09-06 20:34:58 +02:00
Roman Volosovskyi b9015c529b [#13894] Update activity indicator on removed contact request 2022-09-06 16:46:30 +02:00
Parvesh Monu 2909014e86 keycard confirm seed phrase screen remove back button (#13934) 2022-09-06 18:55:37 +05:30
Ibrahem Khalil d4b7e5c8b6 Fix crash when selecting avatar in context tags (#13923) 2022-09-06 13:11:19 +02:00
Ibrahem Khalil da62e0c533 [13524] React component (#13631) 2022-09-06 12:39:56 +02:00
Churikova Tetiana fed73ffa83 e2e: update six 2022-09-06 12:07:16 +02:00
flexsurfer 1d87957b04 [#13517] UI Component - Message Input (#13620) 2022-09-06 11:19:05 +02:00
Siddarth Kumar 7f50b56c26 fix icon missing regression (#13907)
This was a tricky one :P

removing un-necessary check of new-ui?

this is a better solution

The core issue was that when new-ui? was passed instead of the actual value just the key was passed
2022-09-06 13:27:39 +05:30
omahs 0495a9a0ba Fix: typos (#13937)
Fix: typos
2022-09-06 08:46:49 +02:00
Jamie Caprani 4a926a1943 chore: refactor communities code for reusabilty (#13921) 2022-09-05 15:39:12 -07:00
Parvesh Monu 409f81a6f5 fix ios keycard recovery pin error (#13924) 2022-09-06 03:53:12 +05:30
Ibrahem KhalilandParvesh Monu 0300070c5a RE: User avatar component (#13839)
* User avatar component

Rebase

* clean

* Add icons

* fix keycard account shown as regular account on theme change while login (#13918)

* rebase

* clean

* clean

Co-authored-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2022-09-05 21:34:41 +02:00
Parvesh Monu a5ef9940da fix keycard account shown as regular account on theme change while login (#13918) 2022-09-05 21:17:39 +05:30
jakub 337a4d7d1c hooks: fix newline injection on MacOS
Because MacOS `sed` just needs newlines to be escaped differently.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-05 14:57:25 +02:00
jakub 8fe5e5f73c hooks: use AWK instead of jq for better portability
Some systems don't have jq installed, and using something like
`nix-shell` in the shebang would make this script noticeably slower.

We're not using `grep` because it lacks `-P` flag on MacOS.

Resolves: https://github.com/status-im/status-mobile/issues/13322

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-05 14:57:24 +02:00
Churikova Tetiana 7e94f534b6 e2e: update libs for Python 3.10 2022-09-05 14:08:43 +02:00
yqrashawn ccd26dcfd0 refactor: go through clj-kondo warnings (#13929) 2022-09-05 18:52:39 +08:00
jakub 1a3e89ea7a Revert "[13857] Extend integration tests to recover multiaccount from seed phrase"
This reverts commit c73ef111f8.

This test has been introduced in:
https://github.com/status-im/status-mobile/pull/13896/files

And has caused `status-go` segmentation faults:
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x7fb109afac12]

goroutine 17 [running, locked to thread]:
github.com/status-im/status-go/services/ens.(*Service).Stop(...)
    github.com/status-im/status-go/services/ens/service.go:39
github.com/status-im/status-go/node.(*StatusNode).Cleanup(0xc004a89380)
    github.com/status-im/status-go/node/status_node_services.go:587 +0x112
github.com/status-im/status-go/api.(*GethStatusBackend).cleanupServices(...)
    github.com/status-im/status-go/api/geth_backend.go:1175
github.com/status-im/status-go/api.(*GethStatusBackend).Logout(0xc000e6b4a0)
    github.com/status-im/status-go/api/geth_backend.go:1146 +0xb9
github.com/status-im/status-go/mobile.Logout()
    github.com/status-im/status-go/mobile/status.go:398 +0x25
main.Logout()
    ./main.go:132 +0x19s
```
2022-09-05 11:01:02 +02:00
jakub 3f47fb6bf6 ci: use pipefail to actually catch test errors
Because otherwise when piping optput to `tee` the exit code that
affects the result of the whole `sh` call is the last command in the pipe.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-05 10:24:26 +02:00
yqrashawn bf346147e9 feat: add messages gap component (#13860) 2022-09-05 15:58:35 +08:00
jakub 6fa1729384 ci: tests build does not save any artifacts
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-01 16:17:48 +02:00
jakub 718e6cdbb3 ci: disable sandbox for status-go iOS builds
Otherwise we get weird failures like these:
```
clang-11: error: cannot use 'cpp-output' output with multiple -arch options
clang-11: error: invalid argument '-mmacos-version-min=10.12' not allowed with '-miphoneos-version-min=8.0'
clang-11: error: invalid argument '-mmacos-version-min=10.12' not allowed with '-miphoneos-version-min=8.0'
```
Depends on: https://github.com/status-im/status-jenkins-lib/pull/47

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-01 16:17:47 +02:00
Erik Seppanen c73ef111f8 [13857] Extend integration tests to recover multiaccount from seed phrase 2022-08-31 14:27:23 -04:00
jakub 70bf8452f7 ci: save and show both stdout and stderr
By using the `|&` operator we send both to `tee`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-31 18:46:03 +02:00
Roman Volosovskyi 916d29e5c5 nhttps://github.com/status-im/status-go/compare/86054875...b87ecb20
[#13889] Ignore group chat color when not specified
2022-08-31 18:17:23 +02:00
Parvesh Monu bc57298e07 fix Adding/removing user from contacts duplicating their messages in profile (#13897) 2022-08-31 21:10:01 +05:30
Parvesh Monu 698e548c6d fix no icon for ETH in 1-1 transaction messages (#13898) 2022-08-31 20:49:33 +05:30
John Ngei 04b69181f2 New communities redesign (#13607)
* communities redesign

* added communnities screen for membership status

* updated communities redesign

* communities home redesign

* Removed unnecessary files

* Updated communities redesign
2022-08-31 15:49:57 +03:00
flexsurfer 5d9bcb3adb fix old stickers (#13901) 2022-08-31 12:54:30 +02:00
jakub ca8b721135 nix: fix order of iOS shell components
Possible fix for errors like:
```
bundler: failed to load command: fastlane (/Users/jenkins/.bundle/ruby/2.7.0/bin/fastlane)
/Users/jenkins/.bundle/ruby/2.7.0/gems/fastlane-2.205.2/fastlane_core/lib/fastlane_core/ui/interface.rb:153:in `shell_error!': [!] Shell command exited with exit status 51 instead of 0. (FastlaneCore::Interface::FastlaneShellError)
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-30 09:27:49 +02:00
jakub badf72af9f ios: bump Fastlane from 2.205.2 to 2.209.1 and pods
Also refresh Xcode project integration.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-30 09:27:48 +02:00
Erik Seppanen 45e47ad3d9 Extend integration tests to back up seed phrase (#13804) 2022-08-29 14:32:20 -04:00
Parvesh Monu 05219bd721 Implement react-native-hole-view (#13868) 2022-08-29 21:32:30 +05:30
Churikova Tetiana 327d456f69 notes: updated release notes 2022-08-29 13:54:45 +02:00
jakub 70da680c1b ci: fix keystore used when validating APK
Necessary to avoid validation errors due to missing release keystore.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/46
Issue: https://github.com/status-im/infra-ci/issues/63

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-29 12:46:19 +02:00
andrey c56ebf74c1 1.20.0 release notes 2022-08-29 12:37:00 +02:00
andrey 1b77e15570 1.20.0 2022-08-29 11:23:05 +02:00
Jinho Jang c80f45b4a1 Update translation for 1.20 (#13729)
* Update translations

* temporary remove some translations for f-droid
2022-08-29 10:56:32 +02:00
Ibrahem KhalilandIbrahem Khalil 8352f622d6 [13562] Wallet user avatar component (#13681)
* wallet user avatar component

Conflicto

Clean

Mergo

* linting

Clean

* rename is-theme-dark?

* Conflicts resolve

Clean

* Linting

* comments

Clean

* rename colors

* Clean

* Lint

* Remove whitespace

* Clean

* Clen

* Improve colors and used quo2.text

Rebase

* Consistent coloring

Coloring

* Rebase

Rebase

* [13565] icon-avatar component (#13692)

* icon-avatar component

Rebase

* Add more colors

Clean

Clean

* Linting

Rebase

* clean podfile.lock

* Revert podfile

* Conflicto solvado

Add 20% opacity colors

* Comments

* Refactor to another folder

* Improve colors

* Lint

* Merge develop

Co-authored-by: Ibrahem Khalil <33176106+vampirekiddo@users.noreply.github.com>

Clean

Merge

Co-authored-by: Ibrahem Khalil <33176106+vampirekiddo@users.noreply.github.com>
2022-08-27 12:12:24 +02:00
Ibrahem KhalilandIbrahem Khalil 43861e0c15 [13565] icon-avatar component (#13692)
* icon-avatar component

Rebase

* Add more colors

Clean

Clean

* Linting

Rebase

* clean podfile.lock

* Revert podfile

* Conflicto solvado

Add 20% opacity colors

* Comments

* Refactor to another folder

* Improve colors

* Lint

* Merge develop

Co-authored-by: Ibrahem Khalil <33176106+vampirekiddo@users.noreply.github.com>
2022-08-27 11:16:04 +02:00
jakub 5df202753f drop unused coveralls configuration and CI steps
Depends on: https://github.com/status-im/status-jenkins-lib/pull/45

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-26 21:37:59 +02:00
jakub 1b8aea87b2 ci: use different IPFS gateway for release builds
https://github.com/status-im/status-go/compare/f43f43cc...86054875

Depends on: https://github.com/status-im/status-jenkins-lib/pull/44

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-26 20:02:27 +02:00
jakub 0a4d181477 ci: extrac Lint and Tests to separate job
This way we can make PRs depend only on successful tests, and not whole
builds for all platforms, which take 10 minutes or more.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-26 15:47:32 +02:00
Jamie Caprani 47a31ae0aa feat: add token tag component (#13599) (#13644) 2022-08-25 06:48:29 -07:00
Churikova Tetiana 976f58606c e2e: fixes 2022-08-25 13:29:41 +02:00
Roman Volosovskyi cdcaa68395 [#13835] Fix Generate keys button 2022-08-25 12:23:20 +02:00
Ibrahem Khalil 2b3d59e8c1 Issue-13813: Use new endpoints for browser (#13827)
* Bump browswer endpoints

https://github.com/status-im/status-go/compare/f43f43cc...924820c1

Rebase

Rebase

* Bump endpoints

* Bump status-go

https://github.com/status-im/status-go/compare/f43f43cc...f43f43cc

Rebase

* typo
2022-08-24 23:31:20 +02:00
Roman Volosovskyi 8e3258769e [#13672] Sync contact request decision 2022-08-24 17:11:23 +02:00
Siddarth Kumar 8f7c89ba33 upgrade async storage version (#13846) 2022-08-24 19:51:49 +05:30
Churikova Tetiana 62a4c40afa e2e: report fixes 2022-08-24 12:07:10 +02:00
Jamie Caprani 53770725e5 feat: add token overview component (status-im#13555) (#13767) 2022-08-23 21:14:46 +05:30
Parvesh Monu 53008b17a6 fix quo2 preview in release builds (#13829) 2022-08-22 15:58:45 +05:30
Andrea Maria Piana 526835fcf0 Use test dir 2022-08-19 16:50:22 +01:00
Siddarth Kumar be8db33349 refactor to accept background-color property (#13764)
Refactoring copyable-text component to accept background-color property.

Fix case of nil

Trying to sign
2022-08-19 20:50:45 +05:30
siddarthkay 2c1bfcd092 Add management for wallet connect sessions 2022-08-19 12:35:13 +01:00
diana 78b0bf0bda e2e:fix nightly 18/08 2022-08-18 17:15:10 +02:00
Erik Seppanen 0f23346172 Fix indentation
Signed-off-by: Erik Seppanen <esep@protonmail.com>
2022-08-17 08:18:22 -04:00
Erik Seppanen 94f73d2673 [#13791] Extend integration tests to create a new wallet account
Signed-off-by: Erik Seppanen <esep@protonmail.com>
2022-08-16 14:00:03 -04:00
Brian Sztamfater 51ab735e57 feat: edit message redesign
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-08-16 13:01:59 -03:00
Roman Volosovskyi 24ef84b890 Fix disappearing of the last notification when paired 2022-08-15 13:05:13 +02:00
Erik Seppanen 959df25c02 [#13687] Extend integration tests to create a community 2022-08-12 14:18:49 +01:00
Parvesh Monu f1f9fa105c Implement ENS Banner View
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2022-08-11 22:07:16 +05:30
Parvesh Monu c1ca92959c Information box component 2022-08-11 21:48:05 +05:30
Parvesh Monu 230005fd1b Info message component 2022-08-11 02:45:41 +05:30
Roman Volosovskyi b06d63d200 Remove contact request notification from activity center when request is canceled 2022-08-10 13:44:05 +02:00
Andrea Maria Piana 901081a4cf Allow running multiple integration tests 2022-08-10 12:11:22 +01:00
jakub 95af16f6ae generate-keystore: fix Permission denied error
MacOS permissions are stupid:
```
 > ls -l /dev/stderr
lr-xr-xr-x  1 root  wheel  0 Jun 20 20:45 /dev/stderr -> fd/2
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-10 02:21:13 +02:00
jakub 5903cf73fb nix: stop passing watchman socket to Nix builds
This passing of Watchman socket was implemented in order to avoid this:
```
Error: EMFILE: too many open files, watch
    at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:204:21)
Emitted 'error' event on NodeWatcher instance at:
    at NodeWatcher.checkedEmitError (/private/tmp/nix-build-status-mobile-build-nightly-android.drv-0/node_modules/sane/src/node_watcher.js:143:12)
    at FSWatcher.emit (node:events:527:28)
    at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:210:12) {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  filename: null
}
```
Which is caused by `jest-haste-map` used by `metro` starting to watch
the filesystem for file changes, which is pointless when doing a
one-off build using Nix.

But by setting `CI=true` we can make `metro` not start this waching of
files in the first place, removing the need for use of Watchman entirely.

By entirely dropping use of Watchman we also fix the following issue:
```
[cli] unable to talk to your watchman on /tmp/tmp-status-mobile-ABC/jenkins-state/sock! (Permission denied)
```
Which happens on multi-user Nix installations becuase the user that the
Nix build is executed as is not the same as the user that starts
Watchman and creates the socket file.

Issue: https://github.com/status-im/status-mobile/issues/13783

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-10 02:21:12 +02:00
pavloburykh b565cbf85e e2e: fixed system back button click 2022-08-09 17:51:35 +03:00
Parvesh Monu a94797710a fix send button remains active in chats after sending reply containing a mention (#13774) 2022-08-08 22:18:59 +05:30
Andrea Maria Piana 6fb4969a0d Add context tags 2022-08-08 10:59:52 +01:00
phrohdoh d664535e65 fix: quo haptic impact light key (#13772) 2022-08-08 10:21:17 +02:00
flexsurfer e39277b739 custom networkid fix (#13765) 2022-08-05 16:24:33 +02:00
jakub 8ec2f23203 nix: pass OPENSEA_API_KEY via saveAccountAndLogin
Here the injection of OpenSea API key was done at compile time:
https://github.com/status-im/status-mobile/commit/aa72ac57

But this makes `status-go` builds impure, and also prevents them from
being extracted from `status-mobile` into `status-go` repo.

Instead we pass the `OPENSEA_API_KEY` env variable to JS bundle at build
time, which is then passed to `status-go` via the
`Statusgo.saveAccountAndLogin` call in `saveAccountAndLogin`:
https://github.com/status-im/status-mobile/blob/51174f84/modules/react-native-status/android/src/main/java/im/status/ethereum/module/StatusModule.java#L323-L327

Which sends `NodeConfig` that also contains `WalletConfig` which can
include `OpenseaAPIKey`:
```go
type WalletConfig struct {
    Enabled       bool
    OpenseaAPIKey string `json:"OpenseaAPIKey"`
}
```
https://github.com/status-im/status-go/blob/0135cc15/params/config.go#L510-L514

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-05 14:23:33 +02:00
Parvesh Monu ff1818d191 fix visibility drop-down alignment in new ui (#13760) 2022-08-04 23:07:03 +05:30
Parvesh Monu 13bacd4a1e fix error when switching dark/light mode while splash screen is shown (#13759) 2022-08-04 23:05:20 +05:30
Ícaro Motta cdbd85f116 [#13690] Fix visibility status color (#13747) 2022-08-04 11:48:47 +02:00
Brian Sztamfater 647dfc7e21 Reply component in chat input & quoted message redesign
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-08-03 12:17:39 -03:00
yqrashawn a08c7ff22e feat: add repl support for cljs test (#13754) 2022-08-03 16:14:20 +02:00
yqrashawn 71211ee7b9 fix: set max option not work when send from qrcode (#13733) 2022-08-03 16:13:37 +02:00
Roman Volosovskyi c5bcb0123f [#13647] Update all setting on pairing with a new wallet account 2022-08-03 12:36:58 +02:00
flexsurfer f7b6a9065f fix tests (#13755) 2022-08-03 10:38:53 +02:00
Parvesh Monu 971d3ce818 Move automatic status updates timeout to status-go (#13602)
https://github.com/status-im/status-go/compare/4aa34139...60a49fc7
2022-08-03 04:53:23 +05:30
pavloburykh a18deec330 e2e: removed messages under today check in 5315 2022-08-02 18:00:54 +03:00
yqrashawn 98ca311a97 feat: lottie splash screen (#13714)
[#13714] feat: lottie splash screen
2022-08-02 12:48:12 +02:00
jakub 005acc946d drop unused zenhub github actions workflows
As far as I know we don't use Zenhub for anything anymore.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-01 16:11:38 +02:00
Parvesh Monu 8c9ccbb116 Switcher blurred background view (#13717) 2022-08-01 15:21:09 +05:30
yqrashawn d3235e4174 fix: typo (#13739) 2022-07-29 13:46:57 +02:00
Churikova Tetiana 8d96877e04 e2e: simpledapp on goerli 2022-07-29 10:03:51 +02:00
frank 8217cff62e fixes #13121, improve ethereum.send (#13724) 2022-07-28 16:37:51 +02:00
erikseppanen 1377ba3c1a Update IDE_SETUP.md (#13734)
Add IDE section for emacs
2022-07-28 15:29:52 +02:00
jakub d21dc7be79 github-bot: add TO REBASE column to config
Related to: https://github.com/status-im/status-mobile/issues/13497
Required by: https://github.com/status-im/status-github-bot/pull/55

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-27 17:05:24 +02:00
Parvesh Monu a2a76e99a2 fix bookmarks not syncing (#13727) 2022-07-27 20:20:47 +05:30
jakub c27a74e378 nix: quote path uses to avoid issues with spaces
This is most important on MacOS, but in general is a good idea.

Resolves:
https://github.com/status-im/status-mobile/issues/13715

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-27 16:11:28 +02:00
Yevheniia Berdnyk 46e5def13d Fixed xfail report and changed results posting 2022-07-25 23:37:15 +03:00
flexsurferandpavloburykh 8a29830625 [#13493] Can not switch to xDai chain (#13709)
* [#13493] Can not switch to xDai chain

* e2e: removed comments from xDai part of test 695890

Co-authored-by: pavloburykh <pavlo@status.im>
2022-07-25 12:59:12 +02:00
diana 694986682a e2e: new critical pairing tests 2022-07-22 18:47:26 +02:00
audriu 798c604848 Fix sync of blocked contacts (#13712)
https://github.com/status-im/status-go/compare/4aa34139...4aa34139

Signed-off-by: Audrius Molis <masta@dr.com>
2022-07-22 16:41:27 +03:00
pavloburykh 202a11961f e2e: replaced rinkeby by mainnet user in 702360 2022-07-22 16:09:26 +03:00
pavloburykh 001ad91009 e2e: removed xfail marks and replaced ropsten by goerly ens user 2022-07-22 15:45:29 +03:00
Churikova Tetiana 28a2113874 Goerli contracts, go-version bump: https://github.com/status-im/status-go/compare/3a46b051...3cd92fda 2022-07-20 16:03:42 +02:00
Parvesh Monu a07bc82c37 Fix community channel ens names are not resolved (#13675) 2022-07-19 19:13:41 +05:30
jakub 7d8a6b42e4 github: update repo name in issue templates
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-18 21:42:55 +02:00
jakub b42f3e14d5 github-bot: fix repo and job to be status-mobile
Fixes: https://github.com/status-im/status-mobile/issues/13685

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-18 21:42:54 +02:00
Andrea Maria Piana c15b143232 Check public key when sending a message
https://github.com/status-im/status-go/compare/6df20331...3a46b051
2022-07-18 20:19:45 +01:00
jakub 1f7fd17ff1 rename status-react to status-mobile
This way the name of the repo makes at least some sense and
matches the `status-desktop` repo naming.

Also updated `status-jenkins-lib` since it also contained
references to `status-react` repo and job names.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-17 14:46:16 +02:00
frank 61cb54fb8e fixes #13642: Cannot sign in on claim.lens.xyz
Signed-off-by: Parvesh Monu <parvesh.dhullmonu@gmail.com>
2022-07-15 20:32:53 +05:30
pavloburykh db45da3cdb e2e: removed unneeded send button click due to bugfix 2022-07-15 14:43:09 +03:00
Parvesh Monu f7459056bf Clear chat inputs after sending contact request (#13665) 2022-07-14 19:16:42 +05:30
Brian Sztamfater 22f92677fa Base chat dedesign
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-07-14 09:45:11 -03:00
Parvesh Monu 236bbff493 Implement react-native-blur for android (#13663) 2022-07-14 17:27:04 +05:30
jakub 578e542a66 ci: use newly added disableConcurrentBuilds
https://github.com/jenkinsci/workflow-job-plugin/pull/200
Removes the need to use our own convoluted implementation:
https://github.com/status-im/status-jenkins-lib/blob/17c1d0ea/vars/jenkins.groovy#L6-L27

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-13 20:27:20 +02:00
pavloburykh d299c65720 e2e:fixed id, added mark xfail to blocked contacts tests 2022-07-13 15:59:43 +03:00
Parvesh Monu 08194b3c89 fix status-bar color for new ui (#13641) 2022-07-13 17:12:02 +05:30
Audrius Molis ec69ad6544 Remove old coverage status badge
Signed-off-by: Audrius Molis <masta@dr.com>
2022-07-13 10:42:40 +03:00
Churikova Tetiana 96b170a19d e2e: more logging 2022-07-12 17:14:32 +02:00
pavloburykh 12ba82844a e2e: new medium pairing tests 2022-07-11 14:20:11 +03:00
Brian Sztamfater ca98539d98 Revert "Base implementation for chat redesign"
This reverts commit ec3b4c032d.

Signed-off-by: Brian Sztamfater <brian@status.im>
2022-07-07 13:01:09 -03:00
Audrius Molis 33f6daff33 Remove blocker from contacts of user that he has blocked
https://github.com/status-im/status-go/compare/d17b076b...6df20331

Signed-off-by: Audrius Molis <masta@dr.com>
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-07 12:42:05 +02:00
Brian Sztamfater ec3b4c032d Base implementation for chat redesign
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-07-06 13:43:13 -03:00
Vitaliy Vlasov 54b18b4cf9 Wallet sync for generated accounts
Signed-off-by: Vitaliy Vlasov <siphiuel@protonmail.com>
2022-07-06 19:40:00 +03:00
Michele Balistreri ca3db6b889 more reliable address comparison
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2022-07-05 18:18:49 +02:00
pavloburykh b136602322 e2e: fixed initial account name 2022-07-05 15:12:01 +01:00
Andrea Maria Piana 38af9e82d8 Add status-tags component 2022-07-05 15:11:57 +01:00
Michele Balistreri 2fcade5053 bump Keycard SDK
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2022-07-04 17:43:16 +02:00
Nikolayandartamonov.nikolay 13ae5dcc8c [#13395] Add some stylings for RPC stats page. (#13609)
Co-authored-by: artamonov.nikolay <nikolay.artamonov@arrival.com>
2022-07-02 13:11:59 +02:00
pavloburykh 934cecbdd6 e2e: mutual contact requests basic tests 2022-07-02 10:51:33 +03:00
Churikova Tetiana 89396bd93b Changes from status-go:
https://github.com/status-im/status-go/compare/22669d04...63d61197
2022-07-01 16:25:46 +02:00
Yevheniia Berdnyk ab1eb22f3a Bold text for xfail 2022-06-30 03:39:12 +03:00
Andrea Maria Piana 8a36ee8761 [Fixes: #13582] Increase cooldown on sending request 2022-06-29 16:48:17 +01:00
Parvesh Monu 7c3980a04e fix chat view margin (#13588) 2022-06-29 00:45:23 +05:30
Parvesh Monu 1047c26f69 Switcher and Bottom Tabs Animations and UI Performance Improvements
- Migrated Switcher animations to Reanimated V2
- Added bottom tabs & Stacks Animations
- Improved bottom tabs, tab changing performance
- Polished android & IOS UI
2022-06-28 23:51:24 +05:30
Parvesh Monu d9d3f2bb73 Implement React Native Reanimated V2 2022-06-28 23:51:23 +05:30
Churikova Tetiana d2aac6c905 e2e: fixes nightly failures 2022-06-28 17:54:14 +02:00
pavloburykh ff190c177a e2e: new tests automated 2022-06-27 16:37:17 +03:00
erikseppanen e9c0decd68 [#12566] Remove legacy dependency on mailserver password (#13511) 2022-06-27 13:40:18 +02:00
Churikova Tetiana 9f9b896eb7 e2e: ENS purchase in dapp 2022-06-22 16:27:46 +02:00
jo-mut 78033eedc9 Fix: share images bug that freezes app
Signed-off-by: jo-mut <johnmutuku628@gmail.com>
2022-06-21 00:10:57 +03:00
jakub 61653888f8 nix: upgrade gomobile to 2022-05-04 version
Possible fix fix failing `status-go` builds:
https://github.com/status-im/status-react/issues/13346

Other notable upgrades:

* NodeJS `16.15.1` to `16.15.0`
* Yarn `1.22.18` to `1.22.19`
* Clojure `1.11.1.1113` to `1.11.1.1139`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-20 19:01:14 +02:00
Yevheniia Berdnyk e0373146da Possible fix for Sauce ConnectionResetError (#13501) 2022-06-20 18:28:23 +03:00
Andrea Maria Piana 7f8ad610f4 Handle backward compatibility in contact requests
https://github.com/status-im/status-go/compare/efa14805...22669d04
2022-06-20 10:46:34 +01:00
Audrius Molis 855f1aab03 Stop tracking VSCode config
Signed-off-by: Audrius Molis <masta@dr.com>
2022-06-20 10:35:37 +03:00
Yevheniia Berdnyk 62a3ed6138 Fix for stopping sauce sessions in teardown 2022-06-17 03:59:58 +03:00
Churikova Tetiana 25057b3968 e2e: nightly flaky fixes 2022-06-16 17:30:24 +02:00
Peter Strömberg 81f37e0a63 Update IDE setup docs, adding Calva
Signed-off-by: Audrius Molis <masta@dr.com>
2022-06-16 16:29:56 +03:00
flexsurfer 08fa0e6db9 feat: move eth_call to status-go #13323 (#13481) 2022-06-15 11:06:45 +02:00
Churikova Tetiana a141c75634 e2e: xfail mark 2022-06-14 17:03:36 +02:00
Audrius Molis 2325f6f59e Synchronise Sticker Pack setting fields
https://github.com/status-im/status-go/compare/772b8496...efa14805

Signed-off-by: Audrius Molis <masta@dr.com>
2022-06-14 17:25:49 +03:00
flexsurfer a93a3b6878 fix close chat on tab (#13472) 2022-06-14 15:15:33 +02:00
Parvesh Monu 430f322f95 Include UI toggle for all builds (#13464) 2022-06-13 21:15:59 +05:30
Andrea Maria Piana 707cf82b8b Use status-go settings for contact requests
https://github.com/status-im/status-go/compare/09ba88c1...cc80f575
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-13 13:50:21 +01:00
pavloburykh cbba1372b3 remove explicit join from group tests 2022-06-09 16:56:04 +03:00
frank 51174f8488 Use LoginWithConfig method to log in (#13414) 2022-06-09 14:42:36 +02:00
Ibrahem Khalil cc2b6ab80c Fixes #12192 -- Disable fetching more messages when status nodes are … (#13450)
* Fixes #12192 -- Disable fetching more messages when status nodes are disabled
2022-06-09 14:36:05 +02:00
Parvesh Monu beeb72a9d5 fix message sent state for audio and emoji messages (#13459) 2022-06-09 17:08:20 +05:30
jakub 789b24e3a4 nix: add script for adding missing Gradle packages
This handles the usual case where a missing Gradle version causes the
call to `make nix-update-gradle` to fail since call to Gradle also fails.

This is simpler than getting a dev to run commands manually.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-09 13:07:51 +02:00
flexsurfer f64a62e82d leave group chat fix (#13463) 2022-06-09 11:41:22 +02:00
Andrea Maria Piana 9bcbb580e1 Add login integration test
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-08 13:43:32 +01:00
Andrea Maria Piana aa71b830bc [Fixes: #13398] Remove explic join group chat
https://github.com/status-im/status-go/compare/ed67cc2a...09ba88c1

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-08 11:58:49 +01:00
jakub 6dd1577b8a nix: cleanup status-go mobile build derivation
While working on Nix builds for `go-waku` I figured this derivation
could use some cleanup, to make it shorter and more readable.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-07 23:34:35 +02:00
Andrea Maria Piana 785386987b [Fixes: #13416] resize image in status-go as well, alert user if fails
https://github.com/status-im/status-go/compare/869942c0...ed67cc2a

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-07 16:06:54 +01:00
Andrea Maria Piana ef8a7f3fd8 Use pre-install hook for generating node bindings
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-06 13:40:53 +01:00
Audrius Molis 366f235e31 Hide invitation link to group chats
Signed-off-by: Audrius Molis <masta@dr.com>
2022-06-03 16:02:24 +03:00
flexsurfer fe7a23b7f6 [#13355] Long time (5-15 sec) for loading chat messages (#13425)
https://github.com/status-im/status-go/compare/1bfde4c4cc69292875ae9fdc41a8b4bd29e95a7a...d35fab771a2dc44907768627ad862006483a7a18n
2022-06-03 13:38:22 +02:00
flexsurfer 5b7d0f81d4 fast image loading indicator (#13431)
* fast image loading indicator
2022-06-03 13:37:27 +02:00
Churikova Tetiana b18547c16e e2e: fix failures 2022-06-03 12:31:56 +02:00
jakub f402f67b09 nix: nixpgs upgrade, Android SDK fixes, Coreutils 9.1
Notable version changes:

- Coreutils `9.0` to `9.1`
- OpenSSL `1.1.1n` to `1.1.1o`
- NodeJS `16.14.2` to `16.15.1`
- Clojure `1.11.1.1107` to `1.11.1.1113`
- Ruby `2.7.5p203` to `2.7.6p219`
- Cocoapods `1.11.0` to `1.11.3`
- Git `2.35.1` to `2.36.1`
- Curl `7.82.0` to `7.83.1`
- Android SDK Platform Tools `31.0.3` to `33.0.1`

Most important is the Coreutils upgrade to 9.1 which includes a fix for
iOS builds on new M1 ARM64 processors:
https://github.com/status-im/status-react/issues/12799

Also fixes broken Android SDK builds on Linux due to `auto-patchelf-hook` change:
https://github.com/NixOS/nixpkgs/pull/163924

I've fixed this in `nixpkgs` PR:
https://github.com/NixOS/nixpkgs/pull/173376

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-03 10:33:41 +02:00
Parvesh Monu 12437e6b7c Fix App getting stucked on logout (#13427)
https://github.com/status-im/status-go/compare/1bfde4c4...869942c0
2022-06-02 22:38:48 +05:30
jakub b3a74ad7a5 use 8 char commits SHAs for status-go diff link
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-02 13:24:10 +02:00
jakub 7bf77efc87 add newline when creating status-go diff link
Otherwise Fugitive plugin in Vim complains about it.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-06-02 13:18:46 +02:00
flexsurfer 8ed1797f44 [#13433] Input field in chat view is not cleared after logging out (#13438) 2022-06-02 12:16:18 +02:00
Churikova Tetiana 117810cf44 e2e: final groups 2022-05-31 17:38:36 +02:00
jakub e2fabd2386 makefile: use default nix shell for building android
Otherwise `watchman` utility is unavailable for MacOS.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-31 12:03:21 +02:00
jakub 5d9a29b3c8 nix: cleanup of unused variables
Mostly achieved by running via `nix-linter`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-31 12:03:20 +02:00
jakub bcf3e3205a nix: lock Go builders at 1.17.x
If we keep using specific `buildGo117Package` we can easily forge to
upgrade when we bump the Go compiler itself. By locking those explicitly
in `overlay.nix` we make sure they all get bumped together.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-31 12:03:19 +02:00
Parvesh Monu 8820f458c9 fix can't share deep link from profile on ios (#13420) 2022-05-31 15:29:28 +05:30
Brian Sztamfater 91f444ba80 Support mutual contact requests
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-05-31 09:23:24 +01:00
pavloburykh 3f4a424169 fixed ids for qr scan tests 2022-05-30 15:49:20 +03:00
Churikova Tetiana bc91512b71 e2e: nav fixes 2022-05-30 13:49:30 +02:00
flexsurfer a4b169efa3 [#13357] 'Unknown Not a contact' screen with endless spinner when starting new 1-1 or public chat / opening it via push notification (#13379) 2022-05-30 13:37:13 +02:00
Andrea Maria Piana e4cba0f663 Add status-go tests
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-05-25 17:59:02 +01:00
Parvesh Monu 1ccb01532e Implementation of new UI toggle (#13384) 2022-05-25 21:55:17 +05:30
Jinho Jang 8aee3cfbbd Update translations and add Hindi (#13373) 2022-05-25 07:32:14 +02:00
Mohamed Javid 7c4897f251 [feature] [#13099] Automatic RPC usage refresh (#13364)
* [feature] [#13099] Automatic RPC usage refresh
2022-05-24 14:23:48 +02:00
yevh-berdnyk 872a732c31 Test steps for groups 2022-05-24 05:57:24 +03:00
Churikova Tetiana 2ff57ec8cd e2e: all medium 2-driver e2e refactored 2022-05-23 17:30:24 +02:00
pavloburykh f41aa5bdea e2e: permissions-scan-qr group 2022-05-23 17:51:51 +03:00
jakub acfa73ab43 nix: build unsigned Android APK, sign separately
This has several benefits:

* Less abuse of `extra-sandbox-paths` Nix option
* Less inputs to the Android release build derivation
* Easier for users to sign the build themselves
* Simplification of `scripts/release-android.sh`
* Preparation for building using Nix Flakes

The only two remaining credentials passed via `extra-sandbox-paths` is
the Infura and OpenSea API keys, and there is no way around that other
than passing them via Nix arguments, but that would cause them to end up
in `/nix/store` as part of `.drv` files.

I'm also renaming `release-fdroid` to `build-fdroid` to be consistent.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/42

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-21 11:10:11 +02:00
flexsurfer 8a01d02135 re-frisk 1.6.0 (#13380) 2022-05-20 12:31:54 +02:00
Parvesh Monu fa9a718c56 fix navigation default options overwrite (#13378) 2022-05-20 14:04:53 +05:30
Churikova Tetiana d31fca96a9 e2e: community, history nodes, profile 2022-05-19 15:41:44 +02:00
Parvesh Monu 1c8a805647 fix chat image long press issue (#13371) 2022-05-19 16:13:40 +05:30
andrey f39b688e89 google free and metrics free
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-19 07:22:23 +02:00
Vitaliy Vlasov 95be83756b Sync wallet accounts
https://github.com/status-im/status-go/compare/a244d776571cc73ea34d7a700cc5db36166ce832...a244d776571cc73ea34d7a700cc5db36166ce832
2022-05-18 17:59:18 +03:00
jo-mut b9f7e8758d share image messages to other apps
Signed-off-by: jo-mut <johnmutuku628@gmail.com>
2022-05-18 17:24:03 +03:00
jakub 43f7aaf8b1 nix: limit jobs used by parallel to update Gradle
Otherwise on some devices with with good connecitons rate limiting might
cause failures to fetch POMs or JARs and in result failing the whole update.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-18 11:03:29 +02:00
jakub 372942ba8a nix: fortify the nix-update-gradle process
This fixes two issues with the `nix-update-gradle` target:

* It now fails when a JAR is missing which used to be ignored.
* It ignores dependencies that have no JARs, like Eclipse plugins.

This makes the process more robust, since we can see something is
missing right away, and a developer may re-run the process to take
account of possible temporary networking failures or rate limiting.

It also slims down the size of the `deps.json` by removing dependencies
which contribute no actual JARs or AARs to the build process.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-17 20:04:04 +02:00
yevh-berdnyk 7991bbe958 KeyError 2022-05-17 06:22:03 +03:00
jakub b2695e0b24 nix: fix purge.sh script on Darwin platform
Darwin lacks `userdel` and Nix users don't appear in `/etc/passwd`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-16 20:18:23 +02:00
andrey 2d6872976e discover token from status-go
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-16 16:00:44 +02:00
diana c3e599721f e2e: medium activity center 2022-05-16 11:07:23 +02:00
Churikova Tetiana 1354f5a1f4 e2e: medium pairing 2022-05-12 20:44:21 +02:00
Churikova Tetiana b83fe64b0f e2e: nightly fix for user 2022-05-11 20:23:59 +02:00
Audrius Molis 4909ec9854 Add settings and stickers synchronization
https://github.com/status-im/status-go/compare/640793fe85d9a9eef9eb3712cda1c5a1ceea401a...a244d776571cc73ea34d7a700cc5db36166ce832

Signed-off-by: Audrius Molis <masta@dr.com>
2022-05-11 17:42:31 +03:00
andrey 09d393dabe [#13331] Back button changes in chat view when scrolling (iOS)
[#13330] Wallet buttons are overlapped with tabs buttons in the individual wallet account view (iOS)

Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-11 16:22:29 +02:00
jakub 8d62680abe ci: use improved method to get APK architectures
Detecting APK architectures using `apkanalyzer` tool
rather than just guessing based on build type.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/41

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-11 14:57:00 +02:00
andrey 6448c24e14 call rpc cleanup
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-11 11:41:56 +02:00
Churikova Tetiana 1f164c811d e2e: launching by groups 2022-05-10 18:03:44 +02:00
Parvesh Monu b1606704f7 fix nickname not setted on adding contact (#13341)
* fix nickname not setted on adding contact

* QA changes
2022-05-10 19:48:44 +05:30
pavloburykh 81a8ed95a7 e2e: fix test_sticker_1_1_public_chat 2022-05-10 13:01:50 +03:00
Parvesh Monu 2a81814992 Switcher & navigation 2 foundation (#13167) 2022-05-10 15:08:19 +05:30
Churikova Tetiana bcdb3c4194 e2e: group chats 2022-05-09 21:43:01 +02:00
andrey 54c3030971 https://github.com/status-im/status-go/compare/640793fe85d9a9eef9eb3712cda1c5a1ceea401a...0048aaebcc7859a6f0dd7cdf0266fe029f3066fcn
[#13173] move stickers business logic to status-go

Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-09 15:51:05 +02:00
jakub d765dd1f60 ci: use nix copy instead of nix-copy-closure
Also use `ssh-ng://` protocol implementation instead of `ssh://`.
Might fix the following error:
```
error (ignored): error: reached end of FramedSource
error: sized: unexpected end-of-file
error: unexpected end-of-file
```
For more details see: https://github.com/NixOS/nix/issues/6495

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-09 13:21:46 +02:00
jakub 777d0581ce nix: upgrade from 2.6.1 to 2.8.0
Minor upgrade done to match the version deployed in CI due to a bug
with `nix-copy-closure` which broken Nix cache jobs:
https://github.com/status-im/infra-ci/issues/49

This will not force upgrade on developes, nor require any `make nix-purge`.
If however and upgrade is wanted it can be simply done with `nix upgrade-nix`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-07 11:24:58 +02:00
jakub 6f45b5c8e8 ci: upgarde to Xcode 13.3.1
App store now requires all applications to be built with XCode 13:
https://developer.apple.com/news/?id=2t1chhp3

Related: https://github.com/status-im/infra-ci/issues/48

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-06 19:27:22 +02:00
yevh-berdnyk e219aaf2b0 Fixed adding results to TestRail 2022-05-06 17:48:30 +03:00
Churikova Tetiana 44a449660a e2e: fixes 2022-05-06 16:07:16 +02:00
yevh-berdnyk 9891469c6f Changed adding TR results 2022-05-06 13:57:24 +03:00
pavloburykh 5e9738bb7d e2e refactoring: added test_deeplink_chat_profile medium group 2022-05-05 16:46:12 +03:00
Churikova Tetiana 39e3a82228 e2e: fix failures
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-05 13:52:48 +02:00
Churikova Tetiana 23a3825237 e2e: fix for ... 2022-05-05 12:32:20 +02:00
andrey 98f78ba50b [#13203] feat: move fetch prices to status-go 2022-05-05 12:32:20 +02:00
jakub 1b5f08d680 Gradle: drop unavailable JCenter Bintray from config
This repository has been shut down a year ago:

* https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
* https://testfairy.com/blog/jcenter-and-bintray-is-shutting-down-what-to-do/

And yet we still keep references to it in the Gradle config.

Resolves: https://github.com/status-im/status-react/issues/13320

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-05 11:50:50 +02:00
Churikova Tetiana 411fd843ca e2e: numprocesses and fixes 2022-05-04 18:27:42 +02:00
jakub 1e8d85983e nix: upgrade Nixpkgs, Go and Node.js
Notable software upgrades:

- Go `1.16.8` to `1.17.3`
- NodeJS `12.22.7` to `16.14.2`
- OpenJDK `8u272-b10` to `8u322-ga`
- Clojure `1.10.3.1029` to `1.11.1.1107`
- Git `2.33.1` to `2.35.1`
- CMake `3.18.1` to `3.22.3`
- Curl `7.79.1` to `7.82.0`
- GNU Awk `5.1.0` to `5.1.1`

The Go upgrade is done in advance of upgrade to `1.18.1`.
The Node.js upgrade is done since `12.x` security support [is over](https://endoflife.date/nodejs).

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-04 16:51:32 +02:00
Daniel Fernandes 960e338f48 Fixes status-im#13263
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-04 12:57:57 +02:00
andrey 8ac0823eef placeholder icons 2022-05-04 10:31:09 +02:00
andrey 1964200332 white line android fix
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-03 13:19:14 +02:00
jakub 2bab1325d8 ci: fix nix sandbox filename by adding random string
By using just the timestamp we increase the probability of hitting a
race condition with another build due to same filename of sandbox file.

Depends on: https://github.com/status-im/status-jenkins-lib/pull/40

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-27 15:07:26 +04:00
jakub d459f6c318 nix: upgrade Gems, Pods, and Gradle dependencies
This is done to help with debugging dependency issues in:
https://github.com/status-im/status-react/pull/13303

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-27 11:57:19 +04:00
Andrea Maria Piana 51b3358d91 Bump version to 0.98.5
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-04-26 12:59:47 +01:00
yevh-berdnyk acf7d1a1ad Updated TR report and failed tests ids for rerun 2022-04-25 16:36:03 +03:00
Roman Volosovskyi f6f80be30a [#13283] Fix syncing of adding contact after removal 2022-04-25 11:18:18 +02:00
Vitaliy Vlasov fbfab9fd3b Profile picture sync
Signed-off-by: Vitaliy Vlasov <siphiuel@protonmail.com>
2022-04-22 13:16:05 +03:00
Roman Volosovskyi 0c3097abb2 [#13257] Fix sync devices sorting 2022-04-19 12:51:20 +02:00
yevh-berdnyk fd6b14fccc Updated GH and TR reports
Signed-off-by: yevh-berdnyk <ie.berdnyk@gmail.com>
2022-04-15 00:55:40 +03:00
Roman Volosovskyi 60ce2ea5d7 https://github.com/status-im/status-go/compare/3050106595104c16083a8a155d7b2167e7fda798...9de4eb3c8af4b50e74ca70760053432365dbc873
[#13198] Backup deleted community
2022-04-14 19:37:55 +02:00
Churikova Tetiana b53b7b331a e2e: cleanup 2022-04-14 10:49:17 +02:00
jakub 87b87e0d95 android: drop com.android.vending.CHECK_LICENSE perm
This blocks submissions to F-Droid repository, and is not necessary.

https://stuff.mit.edu/afs/sipb/project/android/docs/google/play/licensing/adding-licensing.html
https://developer.android.com/google/play/licensing/client-side-verification#manifest-permission
https://raccoon.onyxbits.de/blog/android-permissions-explained-com-android-vending-check_license-210

As far as I cn tell this permission might be coming from [react-native-blob-util](https://github.com/RonRadtke/react-native-blob-util):
https://github.com/RonRadtke/react-native-blob-util/blob/e5a0bc274673d3bfcc08ad49d2218d0a9780c5b3/android/src/main/AndroidManifest.xml#L4-L5

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-14 10:37:16 +02:00
Parvesh Monu 31c5e708fe Fix yarn issue with rn-emoji-keyboard (#13270) 2022-04-13 16:24:38 +05:30
Churikova Tetiana 3447032d59 e2e: pairing group 2022-04-12 11:24:03 +02:00
pavloburykh 71526e9bd9 added resolve_ipns case to browser group 2022-04-12 12:02:31 +03:00
pavloburykh fec8e00645 e2e: resolved conflicts 2022-04-11 14:32:26 +03:00
jakub 0311983751 ci: upgrade Nix from 2.3.12 to 2.6.1
Due to changes in how Nix handles Git refs we need to specify
`refs/tags/` prefix in `package.json` to avoid the following error:
```
fatal: couldn't find remote ref refs/heads/v2.0.3-status-v6
error: program 'git' failed with exit code 128
```

I also had to rewrite some logic in `nix/scripts/source.sh` in order to
take account of single-user and multi-user installations.
We default to multi-user for Darwin, but not for any other OS due to
discovered issues with `nix-daemon` socket on Arch and open file limits.

I also rewrote `nix/scripts/setup.sh` and `/nix/scripts/purge.sh` to support
different types of installations. Both single-user and multi-user, as some
operating systems have issues with multi-user installations.

Resolves: https://github.com/status-im/status-react/issues/12832
Depends on: https://github.com/status-im/status-jenkins-lib/pull/37

Related changes:
* https://github.com/status-im/infra-ci/commit/84947b9f
* https://github.com/status-im/infra-ci/commit/bb98f5f3
* https://github.com/status-im/infra-ci/commit/f75d524d
* https://github.com/status-im/infra-ci/commit/d1fc92cd
* https://github.com/status-im/infra-ci/commit/87c4091e
* https://github.com/status-im/infra-ci/commit/8d6b6b3f
* https://github.com/status-im/infra-ci/commit/c4f13285
* https://github.com/status-im/infra-ci/commit/38ac698d

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-11 12:26:54 +02:00
jakub da76200433 nix: fix setup.sh script when running on MacOS
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-11 11:10:28 +02:00
Churikova Tetiana 56a1df03f0 e2e: 1 more group 2022-04-08 18:31:12 +02:00
Siddarth Kumar 2ddf4cf924 set image max width to avoid overflow (#13211)
squashed and merged
2022-04-08 21:11:43 +05:30
Parvesh Monu 6314038634 Add release notes for 1.19 (#13213) 2022-04-07 21:12:42 +05:30
Parvesh Monu ef95a59b0a Improve notifications life-cycle (#13248) 2022-04-06 23:06:17 +05:30
yevh-berdnyk cde0abd238 sauce sessions check 2022-04-06 14:26:02 +03:00
Roman Volosovskyi c9441b2db7 [#13201] Fix handling of favourits syncing 2022-04-05 18:13:06 +02:00
Churikova Tetiana 6aae08241d e2e: ens group 2022-04-05 17:24:03 +02:00
Roman Volosovskyi 4036e21f17 [#13235] Fix opening of the last shown chat with activated local notifications 2022-04-05 10:50:18 +02:00
andrey ba38f3ec74 turn off new wallet design
Signed-off-by: andrey <motor4ik@gmail.com>
2022-04-04 19:31:35 +02:00
andrey 12e3b74651 wallet redesign 2022-04-04 16:14:14 +02:00
Churikova Tetiana 784cb491ab e2e: nightly navigation fixes 2022-04-01 17:18:58 +02:00
Roman Volosovskyi 346574a494 [#13233] Proper message after clearing history in pubchat 2022-04-01 16:26:36 +02:00
diana 78864c099f e2e: backup tests for different user types 2022-04-01 12:17:15 +02:00
Parvesh Monu fd9b010662 Don't unmute contact while adding (#13237) 2022-04-01 14:36:50 +05:30
Churikova Tetiana 092b0ed427 e2e: 1-1 chat groups 2022-03-31 23:21:03 +02:00
Roman Volosovskyi 7a964fde29 [#13230] Show default syncing interval 2022-03-31 17:23:55 +02:00
siddarthkay c40094f2f9 squash and sign
lint fix

remove unused import and debug backgrounds

set width boundaries for long usernames in activity

fix lint and pass width from view

updated spacing to accommodate iphoneX

Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-30 15:43:13 +02:00
andrey c4036aee09 [#13181] Cannot delete images or audio messages
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-30 15:42:31 +02:00
Parvesh Monu d086b86fd0 don't allow mentioning non-member contacts in public chat (#13227) 2022-03-30 00:25:46 +05:30
Churikova Tetiana 99c35da72a e2e: chat group in medium + testrail 2022-03-29 15:45:31 +02:00
Parvesh Monu fd89e73e07 fix screen orientation on android (#13218) 2022-03-28 21:36:23 +05:30
jakub 91e85a28f9 scripts/update-status-go: support commit SHA1
In some rare cases we might want to supply an exact commit rather than a
branch name or a git tag.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-03-28 17:44:16 +02:00
andrey d2bec183fd [#13220] ENS warning is not shown for affected multiaccounts after upgrade
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-28 13:28:33 +02:00
Samuel Hawksby-Robinson 79a5dcf61a Fix/torrent migration (#13217)
* bump status-go version to 0.97.2 (#13215)
https://github.com/status-im/status-go/compare/a3c60528ef6e077761a9beb7dd9c530123b7315f...e4acca1cc540b196f52f0bead9d3be2630440275

* bump status-go version to 0.97.3
2022-03-25 19:24:31 +00:00
Andrea Maria Piana d296da1c34 fix community preview
https://github.com/status-im/status-go/compare/9f7fc78def512929499bc2fa610f3b0e0ea1835b...a3c60528ef6e077761a9beb7dd9c530123b7315f
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-03-25 09:26:18 +00:00
Parvesh Monu b1dc1d871f quo2 counter component (#13182) 2022-03-25 01:31:13 +05:30
Parvesh Monu e4caa8f61a Bump release to 1.19.0 2022-03-24 15:00:59 +05:30
Samuel Hawksby-Robinson 21b21bb8ff Handle sync-settings
https://github.com/status-im/status-go/compare/f0d3e0419da9357a07b2ed97a2741095798812dd...9f7fc78def512929499bc2fa610f3b0e0ea1835b

Signed-off-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2022-03-23 21:35:59 +00:00
Churikova Tetiana 070bdc47ba e2e: more fixes 2022-03-23 17:28:16 +01:00
Churikova Tetiana 2d259db42d fastlane: update screenshots 2022-03-23 17:24:06 +01:00
Parvesh Monu 97bc388ad6 fix empty community in the community list (#13199) 2022-03-23 21:53:23 +05:30
jinhojang6 0a18f36623 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-23 16:05:45 +01:00
Andrea Maria Piana 9485fe9ecf Backup communities
https://github.com/status-im/status-go/compare/12ccff417d95a0aef9736b811ea00341390dd1d5...f0d3e0419da9357a07b2ed97a2741095798812dd
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-03-23 14:48:38 +00:00
Churikova Tetiana 4b487f81f6 e2e: fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-03-22 19:11:41 +01:00
jakub cd24bc013f nix: fix call to status-go derivation
New argument added to pass the `secretsFile` was not added here:
https://github.com/status-im/status-react/pull/13144

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-03-22 11:01:10 +01:00
Roman Volosovskyi aa72ac5747 [#13016] Pass opensea key from env
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-21 13:59:35 +01:00
andrey c650fa99d8 [#13171] "Update to latest version ..." in case of replying to image message
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-21 11:21:04 +01:00
Audrius Molis 1b9e139255 Fix sed command to work on mac
Signed-off-by: Audrius Molis <masta@dr.com>
2022-03-21 11:35:00 +02:00
Brian Sztamfater a7b0764759 Implement Wallet Connect 1.0
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-03-20 20:40:31 -03:00
Andrea Maria Piana 60cfca1107 Move mailserver logic to status-go
https://github.com/status-im/status-go/compare/598b83757cc8b27e3374e50de02187eacf0d4280...d60a6713fe2a0ed0fdf03a0777a8cfa7391d7c56
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-03-19 09:01:21 +00:00
andrey c69b640810 comment out go hook 2022-03-18 09:31:45 +01:00
siddarthkay b0cc30d606 Squashed fix lint and store author width to its own variable
making sure that long usernames are broken in two lines

fixed nickname timestamp overlapping issue

Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-17 11:56:24 +01:00
Brian Sztamfater bd7da02c25 Implement Wallet Connect 2.0
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-03-17 03:46:38 -03:00
jo-mut ece2605cb9 Refactored: edit community chats different screen segments
Signed-off-by: jo-mut <johnmutuku628@gmail.com>
2022-03-17 01:30:40 +03:00
jo-mut 407454859b Refactored: edit community chats different screen segments 2022-03-16 19:59:03 +03:00
andrey 12221ea067 [#13164] Warning 'Registration process has finished in invalid state' is shown for any ENS while typing it in profile
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-15 09:09:56 +01:00
Churikova Tetiana 2ae875f82a e2e: browser group 2022-03-14 17:20:06 +01:00
Audrius Molis 8e85d15a86 Only create git hook whet it is absent
Signed-off-by: Audrius Molis <masta@dr.com>
2022-03-14 11:57:14 +02:00
andrey 9e126a7399 tabs component
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-11 13:12:13 +01:00
andrey a0254c0fa8 button component 2022-03-11 13:07:22 +01:00
andrey 72a0df6332 text component 2022-03-11 13:07:21 +01:00
Audrius Molis 08da76c22a Disable chat input for chats with blocked users
Signed-off-by: Audrius Molis <masta@dr.com>
2022-03-10 20:44:48 +02:00
Parvesh Monu 66482863c1 fix screen opens twice on app reopening in ios (#13157) 2022-03-10 19:20:50 +05:30
Churikova Tetiana a3f4673177 e2e: nightly fixes 2022-03-09 17:38:29 +01:00
Churikova Tetiana 55915a9176 e2e: tx users 2022-03-07 22:17:39 +01:00
pavloburykh 891d1e6360 improvements of testing gap 2022-03-07 20:24:49 +02:00
Audrius Molis 1eb956d562 Add changelog from status-go on upgrade #13090
Signed-off-by: Audrius Molis <masta@dr.com>
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-03-07 12:46:49 +01:00
Parvesh Monu cf606b921a remove deprecated react-native-dark-mode dependency (#13136) 2022-03-04 19:34:17 +05:30
Parvesh Monu e6f552e785 Fix ios simulator error when notifications enabled (#13145) 2022-03-03 15:54:33 +05:30
Churikova Tetiana 7f007f204f exclude tx 2022-03-01 18:00:51 +01:00
andrey a2497c81e7 [#13116] Load audio messages from http server
Signed-off-by: andrey <motor4ik@gmail.com>
2022-03-01 17:07:40 +01:00
Parvesh Monu 5fd7e35d99 add remote notifications preferences (#13129) 2022-03-01 01:29:40 +05:30
John M. Ngei a71ad6e1a8 stop showing notifications for muted chats
Signed-off-by: John M. Ngei <johnmutuku628@gmail.com>
2022-02-25 22:16:46 +03:00
Roman Volosovskyi e8e70143d2 [#13104] Fix deadlock on syncing all data 2022-02-23 21:17:44 +01:00
Churikova Tetiana 0769528dcd e2e: kk + nightly fixes 2022-02-23 16:56:39 +01:00
andrey aaf655abe4 [#13086] stateofus.eth ENS username is not connected with chat key after purchasing
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-23 13:24:51 +01:00
Churikova Tetiana c59089c7d3 e2e: wallet+send tx 2022-02-22 15:26:46 +01:00
Churikova Tetiana 37108c8ee3 e2e: fix communities 2022-02-17 17:55:37 +01:00
pavloburykh f220e0fed8 e2e: test gap in public chat 2022-02-17 15:46:29 +02:00
frank 606c3c05e7 Sync bookmarks
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-02-17 13:37:39 +00:00
diana 6cb48834ae e2e: automate backup of contacts 2022-02-17 13:52:33 +01:00
frank 7b7a86284b Sync clear history
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-02-17 12:44:55 +00:00
Churikova Tetiana cf734032f2 e2e: fix accesibility #13028
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-02-14 15:38:45 +01:00
Parvesh Monu 36c7d8e4ca Implementation of remote android notifications (#13028) 2022-02-14 17:27:33 +05:30
Marco Süß a8e4363e6b always use english for fallback text
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-14 09:04:35 +01:00
jinhojang6 bcf20c358c Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-14 09:02:34 +01:00
Churikova Tetiana d77701537a e2e: fix ens and tx tests 2022-02-11 18:05:06 +01:00
Michele Balistreriandandrey 52afbf46ee get images over HTTPS with self-signed certificate
Co-Authored-By: andrey <motor4ik@gmail.com>
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2022-02-10 18:41:10 +01:00
Parvesh Monu 9850dd5160 fix ens resolve issue while following deep link (#13080) 2022-02-10 00:21:47 +05:30
Parvesh Monu e59a2663f7 fix activity center unique constraint error (#13088) 2022-02-09 19:00:32 +05:30
Roman Volosovskyi e1e709220e [#12193] Stop showing fetch more button for cleared history 2022-02-09 09:53:36 +02:00
Roman Volosovskyi d5c865d092 [#9480] Fix cutting of the last char in blockquote 2022-02-08 21:17:02 +02:00
Audrius Molis f0302e7cbf [status-im#12603] Show short hash near build number in About page
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-08 15:34:56 +01:00
Roman Volosovskyi 8f52b9b63c [#12816] Better meesage on insufficient balance to cover fee 2022-02-08 15:29:02 +02:00
Churikova Tetiana 82916de15c e2e: 2 onboarding groups
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-02-04 18:18:15 +01:00
andrey 8ed9accbeb [#13070] No wallet is shown when switching on BSC network
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-04 14:52:32 +01:00
andrey c1a338c2dd [#13068] No error "Profile not found" if entering invalid public key in New chat field
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-04 10:36:10 +01:00
Churikova Tetiana 3745a8e2fe e2e: fixed missing geth
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-02-02 16:26:15 +01:00
Roman Volosovskyi 9fb81c3894 [#12783] Improve order of mailserver requests 2022-02-02 11:21:21 +02:00
andrey 8e560d313d [#13007] Move ENS logic to status-go
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-01 13:26:05 +01:00
andrey c0e30b459f [#13006] Use token list from status-go
Signed-off-by: andrey <motor4ik@gmail.com>
2022-02-01 13:23:24 +01:00
Churikova Tetiana b63117845a e2e: fixes, umbrella issue update
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-01-31 18:50:42 +01:00
Parvesh Monu fd894dc339 fix gradle google free variable (#13064) 2022-01-31 16:12:46 +05:30
andrey dc8cbcde56 [#13059] 'Cannot read property' error on scanning invalid key
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-31 09:39:52 +01:00
Churikova Tetiana 4bf393ec3d e2e refactoring: group and public chat 2022-01-27 21:58:28 +01:00
jakub b1780a7128 docs: add list of nix deps update make targets
Important now that we're onboarding more new devs.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-01-27 21:42:05 +01:00
andrey 82f7fbf7e4 [#12071] Some ENS names starting with 0x are not picked up as universal links
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-26 17:10:09 +01:00
andrey a6eee856cf [#13046] No value in 'Gas amount limit' field in NFT dapps by default
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-26 17:07:56 +01:00
andrey 136a6313cd [#13047] Profile QR code overlaps share menu during sharing (IOS)
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-26 06:57:26 +01:00
Churikova Tetiana 6a8f7a07bf e2e: skip AttributeError
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-01-25 12:20:21 +01:00
Roman Volosovskyi c6eb964b7c [#13034] Replace 'etherscan' with 'block explorer' in translations 2022-01-25 10:45:10 +02:00
Roman Volosovskyi 93d4dc8cb5 [#13038] Add error message to email template on crash 2022-01-24 16:55:47 +02:00
Churikova Tetiana 7bbb882ffa e2e: shared steps for session 2022-01-24 12:40:02 +01:00
Parvesh Monu 012b3e396e Fix advanced notifications translation (#13027) 2022-01-21 19:58:20 +05:30
Roman Volosovskyi bf92c51ce4 [#12919] Allow adding emoji to group intro message if it exceeds limit 2022-01-19 17:36:32 +02:00
Roman Volosovskyi eefc2ede81 [#12989] Use higher base fee value for default tx fee calculation 2022-01-19 14:14:05 +02:00
andrey 111064f747 [#13016] "No collectibles available" at attempt to get any existing collectibles
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-01-18 16:38:58 +00:00
Churikova Tetiana cfab672f63 e2e: more fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-01-17 20:24:25 +01:00
Parvesh Monu 69221695b3 fix alert dialog background color (#13010) 2022-01-18 00:45:40 +05:30
Roman Volosovskyi c44e5bbb67 [#12919] Allowing adding emoji in status input even if it exceeds limit 2022-01-17 19:01:07 +02:00
Parvesh Monu 826dd32c40 Add group members to mentionable list and format code (#12994) 2022-01-17 18:47:09 +05:30
Churikova Tetiana 04b7357646 e2e: fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-01-14 17:55:39 +01:00
Michele Balistreri 2c38c74c16 * update react-native-webview
* more robust send-to-bridge

Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2022-01-14 13:49:06 +03:00
andrey eb7a6ce45a [#12991] Error when trying to edit 'per-gas price limit' on 1inch.exchange
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-13 11:05:23 +01:00
jakub 525577ab17 ci: specify nix version via agent label
Will make it easier and safer to upgrade Nix on CI hosts.

Also added architecture since we are starting to mix those.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-01-12 18:21:28 +01:00
Jonathan Ferreira (Johny) 83a7d3fafc Add/Fix rebase overwritten event (#12960)
* Add/Fix rebase overwritten event

* Remove membership invitation only option

* Fix lint findings

* Replace if w/ when condition

* Remove left over code

* Add/Fix rebase overwritten event

* Remove left over code

* Add correct message to community info
2022-01-12 14:05:44 +00:00
Churikova Tetiana 4318bb6431 github: update release umbrella issue
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2022-01-11 15:50:38 +01:00
andrey c466f96326 [#12535] Human Readable data display when signing using eth_signTypedData_v3
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-11 14:47:53 +01:00
andrey 130308fa8a [#12920] Unable to perform swap on 1inch.exchange if initial swap was cancelled by closing bottom sheet
Signed-off-by: andrey <motor4ik@gmail.com>
2022-01-11 14:47:22 +01:00
Churikova Tetiana a858918b80 Merge branch 'tests/pr-critical-high' into develop 2022-01-10 15:50:37 +01:00
Brian Sztamfater d5b8cde8e2 Add UBI token to the list of default tokens
Signed-off-by: Brian Sztamfater <brian@status.im>
2022-01-10 11:46:34 -03:00
Churikova Tetiana e5a30eaf1d e2e: critical or high in prs 2022-01-10 15:19:26 +01:00
Parvesh Monu b0fd58e9cb fix membership requests on synced devices (#12971) 2022-01-10 17:56:30 +05:30
Shivek Khurana eeb8db00f7 🔁 SWAP UI
CLJ Refactor x Hydra are cool. Add modal

Swap UI

Swap token input and gas slider in place

Asset selector sheets

WIP

Selector events

Tabs are back

Hide Swaps behind ff, add cards and modals for advanced settings

Fix lint issues

Signed-off-by: Shivek Khurana <shivek@status.im>
2022-01-05 23:57:51 +05:30
Churikova Tetiana 3499cdc123 e2e: update ci and made first group 2021-12-29 18:02:58 +01:00
Parvesh Monu 44b8a4c0f4 fix community invite link is not resolved (#12956) 2021-12-28 16:38:42 +05:30
Michele Balistreri e45f959c27 support PUK and seed recovery during onboarding
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-12-27 20:35:33 +03:00
Roman Volosovskyi cd86a1065b [#12936] Add accessibility-id to message timestamp 2021-12-27 13:44:21 +02:00
Parvesh Monu ffba396e4d fix distortion of app theme due to change in system theme (#12934) 2021-12-27 15:24:45 +05:30
Du Cheng 961692251c [#12930] Remove public chat references 2021-12-24 21:10:10 +02:00
Parvesh Monu 94fde74b88 Reorder community chats and categories using drag and drop (#12854) 2021-12-24 21:04:44 +05:30
Roman Volosovskyi 5402c217df [#12913] Properly handle syncing of pubchat delition/installation after offline 2021-12-24 17:03:34 +02:00
Parvesh Monu 4588dafe02 Open user profile from membership requests (#12950) 2021-12-24 20:27:30 +05:30
Parvesh Monu edbb06a7c3 Add community members to mentionable list (#12926) 2021-12-24 20:25:00 +05:30
Roman Volosovskyi 29a7e4dc1c [#12918] Show history gaps only in public chats and communities 2021-12-24 13:40:01 +02:00
Roman Volosovskyi de3c08ba18 Add sync history for 2 mins option for testing purposes 2021-12-21 21:42:42 +02:00
Churikova Tetiana e5ff46fdd5 e2e: fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-12-21 14:58:41 +01:00
4486 changed files with 193138 additions and 100882 deletions
-5
View File
@@ -1,5 +0,0 @@
{
"presets": [
"module:metro-react-native-babel-preset"
]
}
+119 -171
View File
@@ -1,63 +1,55 @@
status-im.utils.build/warning-handler
status-im.utils.build/get-current-sha
status-im.ethereum.resolver/name
status-im.chat.constants/spacing-char
status-im.chat.constants/arg-wrapping-char
status-im.ios.core/init
status-im.ui.components.camera/aspects
status-im.ui.components.camera/capture-targets
status-im.ui.components.camera/set-torch
status-im.ui.components.camera/request-access-ios
status-im.chat.models.message-content/stylings
status-im.chat.models.message-content/actions
status-im.chat.models.message-content/blank-string
status-im.chat.models.message-content/sorted-ranges
status-im.ethereum.mnemonic/words->passphrase
status-im.native-module.core/listener
status-im.native-module.core/multiaccount-reset
status-im.native-module.core/extract-group-membership-signatures
status-im.native-module.core/sign-group-membership
status-im.native-module.core/update-mailservers
status-im.ethereum.abi-spec/bytes-to-hex
status-im.android.core/init
status-im.chat.models.message/transport-keys
status-im.utils.datetime/week
status-im.utils.datetime/time-ago
status-im.utils.datetime/format-date
status-im.utils.datetime/get-ordinal-date
legacy.status-im.utils.build/warning-handler
legacy.status-im.utils.build/get-current-sha
status-im.constants/spacing-char
status-im.constants/arg-wrapping-char
legacy.status-im.ios.core/init
legacy.status-im.ui.components.camera/aspects
legacy.status-im.ui.components.camera/capture-targets
legacy.status-im.ui.components.camera/set-torch
legacy.status-im.ui.components.camera/request-access-ios
legacy.status-im.chat.models.message-content/stylings
legacy.status-im.chat.models.message-content/actions
legacy.status-im.chat.models.message-content/blank-string
legacy.status-im.chat.models.message-content/sorted-ranges
legacy.status-im.ethereum.mnemonic/words->passphrase
native-module.core/listener
native-module.core/multiaccount-reset
native-module.core/extract-group-membership-signatures
native-module.core/sign-group-membership
native-module.core/update-mailservers
legacy.status-im.ethereum.abi-spec/bytes-to-hex
legacy.status-im.android.core/init
legacy.status-im.chat.models.message/transport-keys
legacy.status-im.utils.datetime/week
legacy.status-im.utils.datetime/time-ago
legacy.status-im.utils.datetime/format-date
legacy.status-im.utils.datetime/get-ordinal-date
reagent.dom/render
reagent.dom/unmount-component-at-node
reagent.dom/dom-node
reagent.dom/force-update-all
status-im.multiaccounts.create.core/get-new-key-code
status-im.ethereum.decode/string
status-im.ui.screens.network.views/mainnet?
status-im.data-store.chats/event->string
status-im.mailserver.constants/seven-days
status-im.mailserver.constants/connection-timeout
status-im.hardwallet.card/install-applet
status-im.hardwallet.card/install-cash-applet
status-im.multiaccount.login.data-test/all-contacts
status-im.multiaccount.login.data-test/multiaccounts
status-im.multiaccount.login.data-test/get-chats
status-im.multiaccount.login.data-test/transport
status-im.multiaccount.login.data-test/topics
status-im.utils.utils/clear-timeout
status-im.utils.handlers/logged-in
status-im.multiaccounts.model/credentials
status-im.multiaccounts.login.core/contract-fleet?
status-im.multiaccounts.login.core/fetch-nodes
status-im.utils.config/rpc-networks-only?
status-im.utils.config/waku-enabled?
status-im.utils.pairing/has-paired-installations?
status-im.tribute-to-talk.core-test/user-cofx
quo.gesture-handler/tap-gesture-handler
quo.gesture-handler/pan-gesture-handler
quo.gesture-handler/long-press-gesture-handler
quo.gesture-handler/pure-native-button
quo.gesture-handler/createNativeWrapper
quo.gesture-handler/animated-raw-button
quo.gesture-handler/states
legacy.status-im.multiaccounts.create.core/get-new-key-code
legacy.status-im.ethereum.decode/string
legacy.status-im.ui.screens.network.views/mainnet?
legacy.status-im.data-store.chats/event->string
legacy.status-im.mailserver.constants/seven-days
legacy.status-im.mailserver.constants/connection-timeout
legacy.status-im.hardwallet.card/install-applet
legacy.status-im.hardwallet.card/install-cash-applet
legacy.status-im.multiaccount.login.data-test/all-contacts
legacy.status-im.multiaccount.login.data-test/multiaccounts
legacy.status-im.multiaccount.login.data-test/get-chats
legacy.status-im.multiaccount.login.data-test/transport
legacy.status-im.multiaccount.login.data-test/topics
legacy.status-im.utils.utils/clear-timeout
legacy.status-im.utils.handlers/logged-in
legacy.status-im.multiaccounts.model/credentials
legacy.status-im.multiaccounts.login.core/contract-fleet?
legacy.status-im.multiaccounts.login.core/fetch-nodes
status-im.config/rpc-networks-only?
status-im.config/waku-enabled?
legacy.status-im.utils.pairing/has-paired-installations?
legacy.status-im.tribute-to-talk.core-test/user-cofx
mocks.js-dependencies/action-button
mocks.js-dependencies/camera
mocks.js-dependencies/dismiss-keyboard
@@ -86,75 +78,36 @@ mocks.js-dependencies/react-navigation-bottom-tabs
mocks.js-dependencies/react-native-haptic-feedback
mocks.js-dependencies/mock
quo.previews.main/init
status-im.chat.models.message-list-test/descending-range
status-im.chat.models.message-list-test/random-range
status-im.ethereum.eip165/supports?
status-im.utils.hex/valid-hex?
status-im.multiaccounts.core/chat-send?
status-im.hardwallet.simulated-keycard/install-cash-applet
status-im.hardwallet.simulated-keycard/sign-typed-data
status-im.utils.core/safe-read-message-content
status-im.ui.components.react/native-modules
status-im.ui.components.react/progress-bar
status-im.utils.fs/move-file
status-im.utils.fs/read-dir
status-im.utils.fs/mkdir
status-im.utils.fs/unlink
status-im.utils.fs/file-exists?
quo.animated/code
quo.animated/eq
quo.animated/neq
quo.animated/greater-or-eq
quo.animated/not*
quo.animated/or*
quo.animated/and*
quo.animated/add
quo.animated/sub
quo.animated/multiply
quo.animated/abs
quo.animated/min*
quo.animated/max*
quo.animated/set
quo.animated/start-clock
quo.animated/stop-clock
quo.animated/bezier
quo.animated/linear
quo.animated/set-value
quo.animated/clock
quo.animated/debug
quo.animated/log
quo.animated/event
quo.animated/on-change
quo.animated/cond*
quo.animated/block
quo.animated/call*
quo.animated/timing
quo.animated/spring
quo.animated/clamp
quo.animated/with-spring
quo.animated/with-timing
quo.animated/re-timing
quo.design-system.colors/white
quo.design-system.colors/black
status-im.transport.core-test/messages
status-im.ethereum.core/sidechain?
status-im.ethereum.core/network-with-upstream-rpc?
status-im.ethereum.core/current-address
status-im.ethereum.core/network->network-name
status-im.ethereum.core/estimate-gas
quo.core/animated-header
quo.core/safe-area-provider
quo.core/safe-area-consumer
quo.core/safe-area-view
status-im.utils.universal-links.core/open!
status-im.transport.filters.core-test/member-2
status-im.ui.screens.chat.ttt/one-to-one-chat-description-container
status-im.ethereum.ens/ttl
status-im.ethereum.ens/addr-hash
status-im.ethereum.ens/name-hash
status-im.ethereum.ens/ABI-hash
status-im.ethereum.ens/pubkey-hash
status-im.network.core/get-network
legacy.status-im.chat.models.message-list-test/descending-range
legacy.status-im.chat.models.message-list-test/random-range
legacy.status-im.ethereum.eip165/supports?
legacy.status-im.utils.hex/valid-hex?
legacy.status-im.multiaccounts.core/chat-send?
legacy.status-im.hardwallet.simulated-keycard/install-cash-applet
legacy.status-im.hardwallet.simulated-keycard/sign-typed-data
legacy.status-im.utils.core/safe-read-message-content
legacy.status-im.ui.components.react/native-modules
legacy.status-im.ui.components.react/progress-bar
react-native.fs/move-file
react-native.fs/read-dir
react-native.fs/mkdir
react-native.fs/unlink
react-native.fs/file-exists?
legacy.status-im.ui.components.colors/white
legacy.status-im.ui.components.colors/black
legacy.status-im.ui.components.core/animated-header
legacy.status-im.ui.components.core/safe-area-provider
legacy.status-im.ui.components.core/safe-area-consumer
legacy.status-im.ui.components.core/safe-area-view
legacy.status-im.utils.universal-links.core/open!
legacy.status-im.transport.filters.core-test/member-2
legacy.status-im.ui.screens.chat.ttt/one-to-one-chat-description-container
legacy.status-im.ethereum.ens/ttl
legacy.status-im.ethereum.ens/addr-hash
legacy.status-im.ethereum.ens/name-hash
legacy.status-im.ethereum.ens/ABI-hash
legacy.status-im.ethereum.ens/pubkey-hash
legacy.status-im.network.core/get-network
status-im.constants/desktop-content-types
status-im.constants/blocks-per-hour
status-im.constants/one-earth-day
@@ -189,49 +142,44 @@ status-im.constants/debug-metrics
status-im.constants/scan-qr-code
status-im.constants/ipfs-proto-code
status-im.constants/swarm-proto-code
status-im.multiaccounts.update.publisher/publish-update!
status-im.utils.async/task-queue
status-im.utils.async/async-periodic-run!
status-im.desktop.core/app-root
status-im.desktop.core/init
status-im.chat.models-test/test-db
quo.design-system.spacing/padding-vertical
status-im.utils.money/percent-change
status-im.utils.platform/isMacOs?
status-im.utils.platform/isNix?
status-im.utils.platform/isWin?
status-im.utils.platform/android-version>=
status-im.utils.debounce/clear-all
status-im.transport.db/create-chat
status-im.utils.priority-map/priority-map
status-im.utils.priority-map/priority-map-by
status-im.utils.priority-map/priority-map-keyfn
status-im.utils.priority-map/empty-message-map
status-im.wallet.choose-recipient.core/use-default-eth-gas
status-im.ui.components.animation/decay
status-im.ui.components.animation/remove-all-listeners
status-im.ui.components.animation/stop-animation
status-im.ui.components.animation/animated
status-im.ui.components.animation/add
status-im.ui.components.animation/subtract
status-im.ui.components.animation/get-layout
status-im.wallet.transactions-test/uri-query-data
quo.react-native/touchable-highlight
status-im.utils.name/shortened-name
status-im.ui.components.button.haptic/trigger
status-im.contact.db/filter-dapps
status-im.contact.db/filter-group-contacts
status-im.contact.db/legacy-pending?
status-im.utils.transducers-test/preview-call-1
status-im.utils.transducers-test/preview-call-2
status-im.utils.types/to-string
status-im.chat.db/datemark?
status-im.chat.db/gap?
status-im.chat.db/map->sorted-seq
status-im.utils.snoopy/status-module-filter
status-im.utils.snoopy/websocket-filter
status-im.utils.snoopy/touches-filter
status-im.utils.snoopy/native-animation-filter
status-im.utils.snoopy/keyboard-observer-filter
status-im.utils.multihash/hex
status-im.utils.multihash/decode-array
legacy.status-im.multiaccounts.update.publisher/publish-update!
legacy.status-im.utils.async/task-queue
legacy.status-im.utils.async/async-periodic-run!
legacy.status-im.desktop.core/app-root
legacy.status-im.desktop.core/init
legacy.status-im.chat.models-test/test-db
legacy.status-im.ui.components.spacing/padding-vertical
legacy.status-im.utils.money/percent-change
utils.debounce/clear-all
legacy.status-im.transport.db/create-chat
legacy.status-im.utils.priority-map/priority-map
legacy.status-im.utils.priority-map/priority-map-by
legacy.status-im.utils.priority-map/priority-map-keyfn
legacy.status-im.utils.priority-map/empty-message-map
legacy.status-im.wallet.choose-recipient.core/use-default-eth-gas
legacy.status-im.ui.components.animation/decay
legacy.status-im.ui.components.animation/remove-all-listeners
legacy.status-im.ui.components.animation/stop-animation
legacy.status-im.ui.components.animation/animated
legacy.status-im.ui.components.animation/add
legacy.status-im.ui.components.animation/subtract
legacy.status-im.ui.components.animation/get-layout
legacy.status-im.wallet.transactions-test/uri-query-data
legacy.status-im.utils.name/shortened-name
legacy.status-im.ui.components.button.haptic/trigger
legacy.status-im.contact.db/filter-dapps
legacy.status-im.contact.db/filter-group-contacts
legacy.status-im.contact.db/legacy-pending?
legacy.status-im.utils.transducers-test/preview-call-1
legacy.status-im.utils.transducers-test/preview-call-2
legacy.status-im.utils.types/to-string
legacy.status-im.chat.db/datemark?
legacy.status-im.chat.db/gap?
legacy.status-im.chat.db/map->sorted-seq
legacy.status-im.utils.snoopy/status-module-filter
legacy.status-im.utils.snoopy/websocket-filter
legacy.status-im.utils.snoopy/touches-filter
legacy.status-im.utils.snoopy/native-animation-filter
legacy.status-im.utils.snoopy/keyboard-observer-filter
legacy.status-im.utils.multihash/hex
legacy.status-im.utils.multihash/decode-array
+1
View File
@@ -0,0 +1 @@
{:lint-as {babashka.fs/with-temp-dir clojure.core/let}}
+1
View File
@@ -0,0 +1 @@
{:hooks {:macroexpand {sci.core/copy-ns sci.core/copy-ns}}}
+9
View File
@@ -0,0 +1,9 @@
(ns sci.core)
(defmacro copy-ns
([ns-sym sci-ns]
`(copy-ns ~ns-sym ~sci-ns nil))
([ns-sym sci-ns opts]
`[(quote ~ns-sym)
~sci-ns
(quote ~opts)]))
+76 -13
View File
@@ -1,13 +1,76 @@
{:lint-as {status-im.utils.views/defview clojure.core/defn
status-im.utils.views/letsubs clojure.core/let
reagent.core/with-let clojkure.core/let
status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
quo.react/with-deps-check clojure.core/fn
quo.previews.preview/list-comp clojure.core/for
status-im.utils.styles/def clojure.core/def
status-im.utils.styles/defn clojure.core/defn
taoensso.tufte/defnp clojure.core/defn}
:linters {:invalid-arity {:skip-args [status-im.utils.fx/defn]}
;;TODO remove number when this is fixed
;;https://github.com/borkdude/clj-kondo/issues/867
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY number]}}}
{:config-paths ["status-im"]
:lint-as {legacy.status-im.utils.views/defview clojure.core/defn
legacy.status-im.utils.views/letsubs clojure.core/let
reagent.core/with-let clojure.core/let
legacy.status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
utils.re-frame/defn clj-kondo.lint-as/def-catch-all
quo.react/with-deps-check clojure.core/fn
quo.previews.preview/list-comp clojure.core/for
legacy.status-im.utils.styles/def clojure.core/def
legacy.status-im.utils.styles/defn clojure.core/defn
test-helpers.unit/deftest-sub clojure.core/defn
taoensso.tufte/defnp clojure.core/defn}
:linters {:case-duplicate-test {:level :error}
:case-quoted-test {:level :error}
:case-symbol-test {:level :error}
:clj-kondo-config {:level :error}
:cond-else {:level :error}
:consistent-alias {:level :error
:aliases {clojure.set set
clojure.string string
clojure.walk walk
malli.core malli
malli.dev.pretty malli.pretty
malli.dev.virhe malli.virhe
malli.error malli.error
malli.generator malli.generator
malli.transform malli.transform
malli.util malli.util
schema.core schema
taoensso.timbre log}}
:deprecated-namespace {:level :warning}
:docstring-blank {:level :error}
:equals-true {:level :error}
:inline-def {:level :error}
:invalid-arity {:skip-args [legacy.status-im.utils.fx/defn
utils.re-frame/defn]}
:loop-without-recur {:level :error}
:minus-one {:level :error}
:misplaced-docstring {:level :error}
:missing-body-in-when {:level :error}
:missing-clause-in-try {:level :error}
:missing-else-branch {:level :error}
:not-empty? {:level :error}
:plus-one {:level :error}
:redundant-do {:level :error}
:redundant-let {:level :error}
:refer-all {:level :error}
:shadowed-var {:level :error
;; We temporarily use :include to define an
;; allowlist of core Clojure vars. In the
;; future, as we progressively fix shadowed
;; vars, we should be able to delete this
;; option and lint all vars.
:exclude [type name]}
:single-operand-comparison {:level :error}
:syntax {:level :error}
:unbound-destructuring-default {:level :error}
:uninitialized-var {:level :error}
:unknown-require-option {:level :error}
:unreachable-code {:level :error}
:unresolved-namespace {:level :error}
;; TODO remove number when this is fixed
;; https://github.com/borkdude/clj-kondo/issues/867
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY
number
legacy.status-im.test-helpers/restore-app-db]}
:unresolved-var {:level :error}
:unsorted-required-namespaces {:level :error}
:unused-alias {:level :warning}
:unused-binding {:level :error}
:unused-import {:level :error}
:unused-namespace {:level :error}
:unused-private-var {:level :error}
:unused-referred-var {:level :error}
:use {:level :error}}
:config-in-ns {mocks.js-dependencies {:linters {:clojure-lsp/unused-public-var {:level :off}}}}}
+2
View File
@@ -0,0 +1,2 @@
{:lint-as {malli.experimental/defn schema.core/defn}
:linters {:unresolved-symbol {:exclude [(malli.core/=>)]}}}
@@ -0,0 +1,4 @@
{:linters
{:unresolved-symbol
{:exclude [(cljs.test/is [match? thrown-match?])
(clojure.test/is [match? thrown-match?])]}}}
@@ -0,0 +1,5 @@
{:lint-as
{rewrite-clj.zip/subedit-> clojure.core/->
rewrite-clj.zip/subedit->> clojure.core/->>
rewrite-clj.zip/edit-> clojure.core/->
rewrite-clj.zip/edit->> clojure.core/->>}}
+8
View File
@@ -0,0 +1,8 @@
{:hooks
{:analyze-call
{utils.i18n/label utils.i18n/label
test-helpers.component/get-all-by-translation-text utils.i18n/label
test-helpers.component/get-by-translation-text utils.i18n/label
test-helpers.component/query-all-by-translation-text utils.i18n/label
test-helpers.component/query-by-translation-text utils.i18n/label}}
:linters {:status-im.linter/invalid-translation-keyword {:level :error}}}
+26
View File
@@ -0,0 +1,26 @@
(ns utils.i18n
(:require [clj-kondo.hooks-api :as hooks]))
(defn label
"Verify call to `utils.i18n/label` pass the translation keyword qualified with `t`."
[{:keys [node]}]
(let [[_ translation-key-node & _] (:children node)]
(when (and (hooks/keyword-node? translation-key-node)
(not= "t" (-> translation-key-node hooks/sexpr namespace)))
(hooks/reg-finding! (assoc (meta translation-key-node)
:message "Translation keyword should be qualified with \"t\""
:type :status-im.linter/invalid-translation-keyword)))))
(comment
;; Valid
(label {:node (hooks/parse-string "(i18n/label :t/foo {:var \"hello\"})")
:cljc false
:lang :cljs
:filename ""
:config {}
:ns ""
:context nil})
;; Invalid
(label {:node (hooks/parse-string "(i18n/label :foo)")})
)
+1
View File
@@ -0,0 +1 @@
{:hooks {:analyze-call {taoensso.encore/defalias taoensso.encore/defalias}}}
@@ -0,0 +1,16 @@
(ns taoensso.encore
(:require
[clj-kondo.hooks-api :as hooks]))
(defn defalias [{:keys [node]}]
(let [[sym-raw src-raw] (rest (:children node))
src (if src-raw src-raw sym-raw)
sym (if src-raw
sym-raw
(symbol (name (hooks/sexpr src))))]
{:node (with-meta
(hooks/list-node
[(hooks/token-node 'def)
(hooks/token-node (hooks/sexpr sym))
(hooks/token-node (hooks/sexpr src))])
(meta src))}))
+7 -5
View File
@@ -2,10 +2,9 @@ CACHED_WEBVIEWS_ENABLED=1
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=mainnet_rpc
DEV_BUILD=1
ERC20_CONTRACT_WARNINGS=0
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
FLEET=status.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
MAILSERVER_CONFIRMATIONS_ENABLED=1
@@ -22,13 +21,16 @@ STATUS_GO_ENABLE_NIMBUS=0
KEYCARD_TEST_MENU=0
QR_READ_TEST_MENU=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
ENABLE_QUO_PREVIEW=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
COLLECTIBLES_ENABLED=1
COMMANDS_ENABLED=1
TWO_MINUTES_SYNCING=1
SWAP_ENABLED=1
STICKERS_TEST_ENABLED=1
LOCAL_PAIRING_ENABLED=1
TEST_STATEOFUS=1
FAST_CREATE_COMMUNITY_ENABLED=1
+9 -9
View File
@@ -1,11 +1,10 @@
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=testnet_rpc
ERC20_CONTRACT_WARNINGS=1
DEFAULT_NETWORK=goerli_rpc
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.staging
FLEET=status.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
LOG_LEVEL=debug
MAILSERVER_CONFIRMATIONS_ENABLED=0
PAIRING_POPUP_DISABLED=1
PFS_ENCRYPTION_ENABLED=1
@@ -22,14 +21,15 @@ COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=1
QR_READ_TEST_MENU=1
ENABLE_ROOT_ALERT=0
ENABLE_REFERRAL_INVITE=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
VERIFY_ENS_CHAIN_ID=3
VERIFY_TRANSACTION_CHAIN_ID=5
VERIFY_ENS_CHAIN_ID=5
TEST_STATEOFUS=1
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
TWO_MINUTES_SYNCING=1
STICKERS_TEST_ENABLED=1
LOCAL_PAIRING_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=1
+10 -10
View File
@@ -1,12 +1,11 @@
CACHED_WEBVIEWS_ENABLED=1
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=testnet_rpc
ERC20_CONTRACT_WARNINGS=0
DEFAULT_NETWORK=goerli_rpc
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
FLEET=status.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
LOG_LEVEL=debug
MAILSERVER_CONFIRMATIONS_ENABLED=1
MAINNET_WARNING_ENABLED=1
PFS_ENCRYPTION_ENABLED=1
@@ -21,17 +20,18 @@ STATUS_GO_ENABLE_NIMBUS=0
COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=0
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
VERIFY_ENS_CHAIN_ID=3
VERIFY_TRANSACTION_CHAIN_ID=5
VERIFY_ENS_CHAIN_ID=5
TEST_STATEOFUS=1
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
TWO_MINUTES_SYNCING=1
ENABLE_QUO_PREVIEW=1
STICKERS_TEST_ENABLED=1
LOCAL_PAIRING_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=1
+3 -5
View File
@@ -1,9 +1,8 @@
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=mainnet_rpc
ERC20_CONTRACT_WARNINGS=0
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
FLEET=status.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
MAILSERVER_CONFIRMATIONS_ENABLED=1
@@ -13,14 +12,13 @@ PFS_TOGGLE_VISIBLE=1
POW_TARGET=0.002
POW_TIME=1
SNOOPY=0
KEYCARD_TEST_MENU=0
RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=0
MAX_IMAGES_BATCH=5
BLANK_PREVIEW=0
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=0
+3 -4
View File
@@ -1,9 +1,8 @@
DEBUG_WEBVIEW=0
DEFAULT_NETWORK=mainnet_rpc
ERC20_CONTRACT_WARNINGS=0
ETHEREUM_DEV_CLUSTER=0
EXTENSIONS=0
FLEET=eth.prod
FLEET=status.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=
MAILSERVER_CONFIRMATIONS_ENABLED=1
@@ -13,11 +12,11 @@ PFS_TOGGLE_VISIBLE=0
POW_TARGET=0.002
POW_TIME=1
SNOOPY=0
KEYCARD_TEST_MENU=0
RPC_NETWORKS_ONLY=1
PARTITIONED_TOPIC=0
ENABLE_ROOT_ALERT=1
MAX_IMAGES_BATCH=1
ENABLE_REFERRAL_INVITE=0
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
COLLECTIBLES_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=0
+1 -1
View File
@@ -1 +1 @@
layout node
layout node
+3 -3
View File
@@ -1,4 +1,4 @@
module.exports = {
root: true,
extends: '@react-native-community',
};
root: true,
extends: '@react-native',
};
+1 -1
View File
@@ -43,4 +43,4 @@ As a <user|developer|...>, I want to <task> so that <goal>.
[comment]: # (if on Android please replicate bug whilst running adb logcat)
```
...
```
```
+4 -5
View File
@@ -1,8 +1,8 @@
---
name: Bug Report
about: Bug Report
name: MVPBug Report
about: MVPBug Report
title: ''
labels: bug
labels: 'E:Mobile Bug MVP'
assignees: ''
---
@@ -22,8 +22,7 @@ assignees: ''
### Reproduction
1) Open Status
2)
1.
### Additional Information
+16 -15
View File
@@ -10,7 +10,7 @@ Issue to manage mobile release <version>
### Scope
[comment]: # (Add milestone from github)
https://github.com/status-im/status-react/milestone/
https://github.com/status-im/status-mobile/milestone/
- release notes:
- release branch:
@@ -27,11 +27,11 @@ Upgrade (e2e):
### Process
#### 1) Kick-off
- [ ] 1. Translation PRs is merged before cutting branch (Jinho)
- [ ] 2. Prepare scope of visible changes based on commits history, started from previous release branch cut ([example]( https://notes.status.im/1.14-release-notes?view))
- [ ] 3. Update [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) with release notes (make PR based on previous step)
- [ ] 4. Create release branch using this [guide](https://github.com/status-im/status-react/blob/develop/doc/RELEASE_GUIDE.md), bump VERSION (merge created PR ([example](https://github.com/status-im/status-react/pull/12504) ) to develop) and get successful release builds (so, testing can be started)
- [ ] 2. Prepare scope of visible changes based on commits history, started from previous release branch cut ([guide](https://notes.status.im/how-to-prepare-release-notes))
- [ ] 3. Update [RELEASES.md](https://github.com/status-im/status-mobile/blob/develop/RELEASES.md) with release notes (make PR based on previous step)
- [ ] 4. Create release branch using this [guide](https://github.com/status-im/status-mobile/blob/develop/doc/RELEASE_GUIDE.md), bump VERSION (merge created PR ([example](https://github.com/status-im/status-mobile/pull/12504) ) to develop) and get successful release builds (so, testing can be started)
- [ ] 5. Based on release scope, ask for comms (Jonny)
- [ ] 6. Make sure that assets (screenshots, video) in stores are up to date. If should be updated, ask @cammellos for help
- [ ] 6. Make sure that assets (screenshots, video) in stores are up-to-date, more info [here](https://notes.status.im/how-to-update-assets)
#### 2) Testing
[comment]: # (Section will be maintained by QA)
@@ -53,14 +53,15 @@ Upgrade (e2e):
#### 3) Submission
- [ ] 1. Release notes written and added (500 character limit for updates (Android) and PR for [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) is ready to be merged (from 1.3 step)
- [ ] 2. Submit beta version for Android (Open Testing in Play Store)
- [ ] 3. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
- [ ] 4. Play store content reviewed and updated
- [ ] 5. Privacy policy reviewed and updated (ask in channel)
- [ ] 6. Countries to be excluded (ask in channel)
- [ ] 7. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
- [ ] 8. Prepare PR for F-droid build ([instruction]( https://github.com/status-im/status-react/blob/develop/doc/FDROID.md))
- [ ] 1. Prepare PR for F-droid build ([instruction]( https://github.com/status-im/status-mobile/blob/develop/doc/FDROID.md))
- [ ] 2. Release notes written and added (500 character limit for updates (Android) and PR for [RELEASES.md](https://github.com/status-im/status-mobile/blob/develop/RELEASES.md) is ready to be merged (from 1.3 step)
- [ ] 3. Submit beta version for Android (Open Testing in Play Store)
- [ ] 4. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
- [ ] 5. Play store content reviewed and updated
- [ ] 6. Privacy policy reviewed and updated (ask in channel)
- [ ] 7. Countries to be excluded (ask in channel)
- [ ] 8. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
#### 4) Before publishing
- [ ] 1. Translations for comms available (marketing, ask in the channel)
@@ -71,6 +72,6 @@ Upgrade (e2e):
- [ ] 1. Notify marketing to push comms and blog post (Jonny + get review on blog from QA team)
- [ ] 2. Publish release to app store and playstore
- [ ] 3. Final push to update prod site https://status.im/, [instructions](https://github.com/status-im/infra-docs/blob/master/articles/status_release_upload.md) (Jakub - requires credentials to upload)
- [ ] 4. Add the link to the post about the release and publish the release: https://github.com/status-im/status-react/releases (Jakub)
- [ ] 5. Merge PR for updating [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) (from 1.3 step)
- [ ] 4. Add the link to the post about the release and publish the release: https://github.com/status-im/status-mobile/releases (Jakub)
- [ ] 5. Merge PR for updating [RELEASES.md](https://github.com/status-im/status-mobile/blob/develop/RELEASES.md) (from 1.3 step)
+30
View File
@@ -0,0 +1,30 @@
---
name: Wont fix Report
about: to facilitate future handling, identify and address non-urgent issues that won't be prioritized in the near future
title: ''
labels: likely_wont_fix
assignees: ''
---
## Problem
#### Expected behavior
#### Actual behavior
### Reproduction
1.
### Additional Information
- Status version: release
- Operating System: Android, iOS
[comment]: # (Please, add logs/notes if necessary)
+6
View File
@@ -63,4 +63,10 @@ Documentation change PR (review please): https://github.com/status-im/status.im/
<!-- (PRs will only be accepted if squashed into single commit.) -->
### Before and after screenshots comparison
| Figma (if available) | iOS (if available) | Android (if available)
| --- | --- | --- |
| Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. |
status: ready <!-- Can be ready or wip -->
+2 -2
View File
@@ -9,8 +9,8 @@ project-board:
test-column-name: 'E2E Tests'
automated-tests:
repo-full-name: 'status-im/status-react'
job-full-name: 'end-to-end-tests/status-app-prs'
repo-full-name: 'status-im/status-mobile'
job-full-name: 'status-mobile/e2e/status-app-prs'
kickoff-column-name: 'E2E Tests'
github-team:
-17
View File
@@ -1,17 +0,0 @@
name: Zenhub integration assigned
on:
issues:
types:
- assigned
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: status-im/zenhub-automations@master
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
-15
View File
@@ -1,15 +0,0 @@
name: Zenhub integration branch
on:
create:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: status-im/zenhub-automations@master
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
-17
View File
@@ -1,17 +0,0 @@
name: Zenhub integration milestoned
on:
issues:
types:
- milestoned
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: status-im/zenhub-automations@master
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
-20
View File
@@ -1,20 +0,0 @@
name: Zenhub integration PR
on:
pull_request:
branches: [ develop ]
types:
- ready_for_review
- opened
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: status-im/zenhub-automations@master
if: github.event.pull_request.draft == false
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
+30 -5
View File
@@ -7,6 +7,8 @@
# Xcode
#
/ios/.xcode.env.local
/component-spec
result/
build/
*.pbxuser
@@ -34,13 +36,17 @@ project.xcworkspace
**/android/.project
**/android/.settings/org.eclipse.buildship.core.prefs
local.properties
*.hprof
.cxx/
*.keystore
!debug.keystore
# Atom
.tags*
# VS Code
.vscode/ipch/
.vscode/settings.json
.vscode/
workspace.code-workspace
# node.js
#
@@ -95,12 +101,12 @@ doo-index.html
# Status
Statusgo.framework
Statusgo.xcframework
#ios
/ios/Pods/
/ios/logs/
/ios/StatusIm.xcworkspace
/ios/react-native-xcode.log
/ios/set_xcode_version.log
.ruby-version
status-e2e/
@@ -168,4 +174,23 @@ project.clj
##appium
test/appium/report/
result.xml
result.xml
test/appium/tests/users.py
##node bindings
/bin/
/lib/
## visual tests
/artifacts
/.calva/
## component-tests
*.log
## local xcode env introduced in react-native 0.69
.xcode.env.local
## git hooks
lefthook.yml
+1
View File
@@ -0,0 +1 @@
{:clean {:ns-inner-blocks-indentation :keep}}
+4 -4
View File
@@ -1,10 +1,10 @@
{
"include": [
"target/test/status_im/**"
"target/test/legacy/status_im/**"
],
"exclude": [
"target/test/status_im/test/**",
"target/test/status_im/ui/**"
"target/test/legacy/status_im/test/**",
"target/test/legacy/status_im/ui/**"
],
"report-dir": "./coverage-report",
"all": true,
@@ -14,4 +14,4 @@
"exclude-after-remap": false,
"extension": [".js"],
"reporter": ["lcovonly"]
}
}
+10
View File
@@ -0,0 +1,10 @@
*
!*.js
!*/
*.clj-kondo
*.shadow-cljs
modules
result
target
component-spec
/app
+8 -5
View File
@@ -1,6 +1,9 @@
module.exports = {
bracketSpacing: false,
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
};
arrowParens: 'always',
printWidth: 120,
semi: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'all',
useTabs: false,
};
+12
View File
@@ -0,0 +1,12 @@
{
"editor.formatOnSave": true,
"clojure.format.enable": false,
"[clojure]": {
"editor.defaultFormatter": "rflagreca.vscode-clj-zprint"
},
"vscode-clj-zprint.IgnoreExternalFiles": false,
"vscode-clj-zprint.CommunityFormatting": false,
"vscode-clj-zprint.OptionsMap": "",
"vscode-clj-zprint.width": "",
"vscode-clj-zprint.Styles.UseOnlyTheseStyles": false
}
-10
View File
@@ -1,10 +0,0 @@
{
"files.associations": {
"*.android": "groovy",
"*.ios": "groovy",
"*.linux": "groovy",
"*.macos": "groovy",
"*.windows": "groovy",
"*.nix-cache": "groovy",
},
}
+60
View File
@@ -0,0 +1,60 @@
;; -*- mode: clojure -*-
;; vi: ft=clojure
{:width 105
:remove {:fn-force-nl #{:noarg1-body}}
:style
[;; community style https://github.com/kkinnear/zprint/blob/main/doc/reference.md#community
:community
;; no comma in map
:no-comma
:custom-justify
;; respect all newlines https://github.com/kkinnear/zprint/blob/main/doc/reference.md#respect-nl
:respect-nl
;; respect blank line https://github.com/kkinnear/zprint/blob/main/doc/reference.md#respect-bl
:respect-bl
;; hang multiline left-hand-thing https://github.com/kkinnear/zprint/issues/273
:multi-lhs-hang]
:fn-map
{"reg-sub" :arg1-pair
"h/describe" :arg1-body
"h/describe-skip" :arg1-body
"h/describe-only" :arg1-body
"h/test" :arg1-body
"h/test-skip" :arg1-body
"h/test-only" :arg1-body
"global.describe" :arg1-body
"global.test" :arg1-body
"list-comp" :binding
"defview" :arg1-body
"letsubs" :binding
"with-let" "let"
"reg-event-fx" :arg1-pair
"reg-fx" :arg1-pair
"testing" :arg1-body
"deftest-sub" :arg1-body
"wait-for" :arg1-body
"with-deps-check" :arg1-body
"schema/=>" :arg1-body
"->" [:noarg1-body
{:list {:constant-pair? false :force-nl? false}
:next-inner-restore [[:list :constant-pair?]]}]
"set!" "reset!"
"assoc-when" "assoc"
"assoc-some" "assoc"
"conj-when" "conj"
"conj-some" "conj"}
:style-map
{:no-comma {:map {:comma? false}}
:custom-justify
{:doc "Justify everything using pre-1.1.2 approach"
:binding {:justify? true :justify {:max-variance 1000}}
:map {:justify? true :justify {:max-variance 1000}}
:pair {:justify? true :justify {:max-variance 1000}}}}}
+202 -81
View File
@@ -1,4 +1,4 @@
.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm
.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-rm
help: SHELL := /bin/sh
help: ##@other Show this help
@@ -14,17 +14,17 @@ WHITE := $(shell tput -Txterm setaf 7)
YELLOW := $(shell tput -Txterm setaf 3)
RESET := $(shell tput -Txterm sgr0)
HELP_FUN = \
%help; \
while(<>) { push @{$$help{$$2 // 'options'}}, [$$1, $$3] if /^([a-zA-Z\-]+)\s*:.*\#\#(?:@([a-zA-Z\-]+))?\s(.*)$$/ }; \
print "Usage: make [target]\n\nSee STARTING_GUIDE.md for more info.\n\n"; \
for (sort keys %help) { \
print "${WHITE}$$_:${RESET}\n"; \
for (@{$$help{$$_}}) { \
$$sep = " " x (32 - length $$_->[0]); \
print " ${YELLOW}$$_->[0]${RESET}$$sep${GREEN}$$_->[1]${RESET}\n"; \
}; \
print "\n"; \
}
%help; \
while(<>) { push @{$$help{$$2 // 'options'}}, [$$1, $$3] if /^([a-zA-Z\-]+)\s*:.*\#\#(?:@([a-zA-Z\-]+))?\s(.*)$$/ }; \
print "Usage: make [target]\n\nSee STARTING_GUIDE.md for more info.\n\n"; \
for (sort keys %help) { \
print "${WHITE}$$_:${RESET}\n"; \
for (@{$$help{$$_}}) { \
$$sep = " " x (32 - length $$_->[0]); \
print " ${YELLOW}$$_->[0]${RESET}$$sep${GREEN}$$_->[1]${RESET}\n"; \
}; \
print "\n"; \
}
HOST_OS := $(shell uname | tr '[:upper:]' '[:lower:]')
# This can come from Jenkins
@@ -32,19 +32,26 @@ ifndef BUILD_TAG
export BUILD_TAG := $(shell git rev-parse --short HEAD)
endif
# We don't want to use /run/user/$UID because it runs out of space too easilly
export TMPDIR = /tmp/tmp-status-react-$(BUILD_TAG)
# this has to be specified for both the Node.JS server process and the Qt process
# We don't want to use /run/user/$UID because it runs out of space too easilly.
export TMPDIR = /tmp/tmp-status-mobile-$(BUILD_TAG)
# This has to be specified for both the Node.JS server process and the Qt process.
export REACT_SERVER_PORT ?= 5001
# Fix for ERR_OSSL_EVP_UNSUPPORTED error.
export NODE_OPTIONS += --openssl-legacy-provider
# The path can be anything, but home is usually safest.
export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
# Our custom config is located in nix/nix.conf
export NIX_CONF_DIR = $(PWD)/nix
export NIX_USER_CONF_FILES = $(PWD)/nix/nix.conf
# Location of symlinks to derivations that should not be garbage collected
export _NIX_GCROOTS = /nix/var/nix/gcroots/per-user/$(USER)/status-react
export _NIX_GCROOTS = /nix/var/nix/gcroots/per-user/$(USER)/status-mobile
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,STATUS_GO_SRC_OVERRIDE
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,\
BUILD_TYPE,BUILD_NUMBER,COMMIT_HASH,\
ANDROID_GRADLE_OPTS,ANDROID_ABI_SPLIT,ANDROID_ABI_INCLUDE,\
STATUS_GO_SRC_OVERRIDE,STATUS_GO_IPFS_GATEWAY_URL
# Useful for Andoird release builds
# Useful for Android release builds
TMP_BUILD_NUMBER := $(shell ./scripts/version/gen_build_no.sh | cut -c1-10)
# MacOS root is read-only, read nix/README.md for details
@@ -77,12 +84,16 @@ nix-gc-protected:
@echo -e "$(YELLOW)The following paths are protected:$(RESET)" && \
ls -1 $(_NIX_GCROOTS) | sed 's/^/ - /'
nix-upgrade: SHELL := /bin/sh
nix-upgrade: ##@nix Upgrade Nix interpreter to current version.
nix/scripts/upgrade.sh
nix-gc: export TARGET := nix
nix-gc: nix-gc-protected ##@nix Garbage collect all packages older than 20 days from /nix/store
nix-store --gc
nix-clean: export TARGET := default
nix-clean: ##@nix Remove all status-react build artifacts from /nix/store
nix-clean: ##@nix Remove all status-mobile build artifacts from /nix/store
nix/scripts/clean.sh
nix-purge: SHELL := /bin/sh
@@ -97,7 +108,7 @@ nix-update-clojure: export TARGET := clojure
nix-update-clojure: ##@nix Update maven Nix expressions based on current clojure setup
nix/deps/clojure/generate.sh
nix-update-gems: export TARGET := default
nix-update-gems: export TARGET := fastlane
nix-update-gems: ##@nix Update Ruby gems in fastlane/Gemfile.lock and fastlane/gemset.nix
fastlane/update.sh
@@ -114,16 +125,22 @@ _fix-node-perms: ##@prepare Fix permissions so that directory can be cleaned
$(shell test -d node_modules && chmod -R 744 node_modules)
$(shell test -d node_modules.tmp && chmod -R 744 node_modules.tmp)
_tmpdir-mk: SHELL := /bin/sh
_tmpdir-mk: ##@prepare Create a TMPDIR for temporary files
$(TMPDIR): SHELL := /bin/sh
$(TMPDIR): ##@prepare Create a TMPDIR for temporary files
@mkdir -p "$(TMPDIR)"
# Make sure TMPDIR exists every time make is called
_tmpdir-mk: $(TMPDIR)
-include _tmpdir-mk
_tmpdir-rm: SHELL := /bin/sh
_tmpdir-rm: ##@prepare Remove TMPDIR
rm -fr "$(TMPDIR)"
_install-hooks: SHELL := /bin/sh
_install-hooks: ##@prepare Create prepare-commit-msg git hook symlink
@ln -s -f ../../scripts/hooks/prepare-commit-msg .git/hooks
-include _install-hooks
# Remove directories and ignored files
clean: SHELL := /bin/sh
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
@@ -137,22 +154,25 @@ purge: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
watchman-clean: export TARGET := watchman
watchman-clean: ##@prepare Delete repo directory from watchman
watchman watch-del $${STATUS_REACT_HOME}
watchman watch-del $${STATUS_MOBILE_HOME}
pod-install: export TARGET := ios
pod-install: ##@prepare Run 'pod install' to install podfiles and update Podfile.lock
cd ios && pod install; cd --
FLEETS_FILE := ./resources/config/fleets.json
update-fleets: ##@prepare Download up-to-date JSON file with current fleets state
curl -s https://fleets.status.im/ \
| jq --indent 4 --sort-keys . \
> resources/config/fleets.json
| sed 's/"warning": "/"warning": "DO NOT EDIT! /' \
> $(FLEETS_FILE)
echo >> $(FLEETS_FILE)
keystore: export TARGET := keytool
keystore: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
keystore: ##@prepare Generate a Keystore for signing Android APKs
$(KEYSTORE_PATH): export TARGET := keytool
$(KEYSTORE_PATH):
@./scripts/generate-keystore.sh
keystore: $(KEYSTORE_PATH) ##@prepare Generate a Keystore for signing Android APKs
fdroid-max-watches: SHELL := /bin/sh
fdroid-max-watches: ##@prepare Bump max_user_watches to avoid ENOSPC errors
sysctl fs.inotify.max_user_watches=524288
@@ -168,7 +188,7 @@ fdroid-fix-tmp: ##@prepare Fix TMPDIR permissions so Vagrant user is the owner
fdroid-build-env: fdroid-max-watches fdroid-nix-dir fdroid-fix-tmp ##@prepare Setup build environment for F-Droud build
fdroid-pr: export TARGET := android
fdroid-pr: export TARGET := android-sdk
fdroid-pr: ##@prepare Create F-Droid release PR
ifndef APK
$(error APK env var not defined)
@@ -185,44 +205,41 @@ xcode-clean: ##@prepare Clean XCode derived data and archives
#----------------
release: release-android release-ios ##@build Build release for Android and iOS
release-android: export BUILD_ENV ?= prod
release-android: export BUILD_TYPE ?= nightly
release-android: export BUILD_NUMBER ?= $(TMP_BUILD_NUMBER)
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
release-android: export ANDROID_APK_SIGNED ?= true
release-android: export ANDROID_ABI_SPLIT ?= false
release-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
release-android: keystore ##@build Build release for Android
scripts/release-android.sh
build-fdroid: export BUILD_ENV = prod
build-fdroid: export BUILD_TYPE = release
build-fdroid: export ANDROID_ABI_SPLIT = false
build-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
build-fdroid: ##@build Build release for F-Droid
@scripts/build-android.sh
release-fdroid: export BUILD_ENV = prod
release-fdroid: export BUILD_TYPE = release
release-fdroid: export ANDROID_APK_SIGNED = false
release-fdroid: export ANDROID_ABI_SPLIT = false
release-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
release-fdroid: ##@build Build release for F-Droid
sed -i -e '$$aGOOGLE_FREE=1' .env.release
scripts/release-android.sh
build-android: export BUILD_ENV ?= prod
build-android: export BUILD_TYPE ?= nightly
build-android: export BUILD_NUMBER ?= $(TMP_BUILD_NUMBER)
build-android: export ANDROID_ABI_SPLIT ?= false
build-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
build-android: ##@build Build unsigned Android APK
@scripts/build-android.sh
release-android: export TARGET := keytool
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
release-android: keystore build-android ##@build Build signed Android APK
@scripts/sign-android.sh result/app-release-unsigned.apk
release-ios: export TARGET := ios
release-ios: export IOS_STATUS_GO_TARGETS := ios/arm64
release-ios: export BUILD_ENV ?= prod
release-ios: watchman-clean ##@build Build release for iOS release
@git clean -dxf -f target/ios && \
$(MAKE) jsbundle-ios && \
xcodebuild -workspace ios/StatusIm.xcworkspace -scheme StatusIm -configuration Release -destination 'generic/platform=iOS' -UseModernBuildSystem=N clean archive
release-ios: watchman-clean ios-clean jsbundle ##@build Build release for iOS release
xcodebuild \
-scheme StatusIm \
-configuration Release \
-workspace ios/StatusIm.xcworkspace \
-destination 'generic/platform=iOS' \
-UseModernBuildSystem=N clean archive
jsbundle-android: SHELL := /bin/sh
jsbundle-android: export TARGET := android
jsbundle-android: export BUILD_ENV ?= prod
jsbundle-android: ##@jsbundle Compile JavaScript and Clojurescript into app directory
# Call nix-build to build the 'targets.mobile.android.jsbundle' attribute and copy the.js files to the project root
nix/scripts/build.sh targets.mobile.android.jsbundle && \
mv result/* ./
jsbundle-ios: export TARGET := ios
jsbundle-ios: export BUILD_ENV ?= prod
jsbundle-ios: ##@jsbundle Compile JavaScript and Clojure into index.ios.js
yarn shadow-cljs release mobile
jsbundle: SHELL := /bin/sh
jsbundle: export BUILD_ENV ?= prod
jsbundle: ##@build Build JavaScript and Clojurescript bundle for iOS and Android
nix/scripts/build.sh targets.mobile.jsbundle
#--------------
# status-go lib
@@ -236,6 +253,10 @@ status-go-ios: SHELL := /bin/sh
status-go-ios: ##@status-go Compile status-go for iOS app
nix/scripts/build.sh targets.status-go.mobile.ios
status-go-library: SHELL := /bin/sh
status-go-library: ##@status-go Compile status-go for node-js
nix/scripts/build.sh targets.status-go.library
#--------------
# Watch, Build & Review changes
#--------------
@@ -254,11 +275,19 @@ run-re-frisk: ##@run Start re-frisk server
# TODO: Migrate this to a Nix recipe, much the same way as nix/mobile/android/targets/release-android.nix
run-android: export TARGET := android
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
# https://github.com/status-im/status-mobile/issues/18493
run-android: export ORG_GRADLE_PROJECT_hermesEnabled := false
# INFO: If it's empty (no devices attached, parsing issues, script error) - for Nix it's the same as not set.
run-android: export ANDROID_ABI_INCLUDE ?= $(shell ./scripts/adb_devices_abis.sh)
run-android: ##@run Build Android APK and start it on the device
npx react-native run-android --appIdSuffix debug
SIMULATOR=
SIMULATOR=iPhone 13
# TODO: fix IOS_STATUS_GO_TARGETS to be either amd64 or arm64 when RN is upgraded
run-ios: export TARGET := ios
run-ios: export IOS_STATUS_GO_TARGETS := ios/arm64;iossimulator/amd64
run-ios: export XCBeautify=$(shell which xcbeautify) # for react-native-cli to pick this up and to auto format output
run-ios: ##@run Build iOS app and start it in a simulator/device
ifneq ("$(SIMULATOR)", "")
npx react-native run-ios --simulator="$(SIMULATOR)"
@@ -266,59 +295,151 @@ else
npx react-native run-ios
endif
show-ios-devices: ##@other shows connected ios device and its name
xcrun xctrace list devices
# TODO: fix IOS_STATUS_GO_TARGETS to be either amd64 or arm64 when RN is upgraded
run-ios-device: export TARGET := ios
run-ios-device: export IOS_STATUS_GO_TARGETS := ios/arm64;iossimulator/amd64
run-ios-device: ##@run iOS app and start it on a connected device by its name
ifndef DEVICE_NAME
$(error Usage: make run-ios-device DEVICE_NAME=your-device-name)
endif
react-native run-ios --device "$(DEVICE_NAME)"
#--------------
# Tests
#--------------
lint: export TARGET := clojure
lint: ##@test Run code style checks
yarn clj-kondo --confg .clj-kondo/config.edn --lint src && \
TARGETS=$$(git diff --diff-filter=d --cached --name-only src && echo src) && \
clojure -Scp "$$CLASS_PATH" -m cljfmt.main check --indents indentation.edn $$TARGETS
# Get all clojure files, including untracked, excluding removed
define find_all_clojure_files
$$(comm -23 <(sort <(git ls-files --cached --others --exclude-standard)) <(sort <(git ls-files --deleted)) | grep -E '((\.clj-kondo\/status-im)|(src).*\.clj[sc]?$$)|((\.clj-kondo\/(status-im|config))|(src).*\.edn$$)|shadow-cljs\.edn')
endef
lint: export TARGET := clojure
lint: export CLJ_LINTER_PRINT_WARNINGS ?= false
lint: ##@test Run code style checks
@sh scripts/lint/re-frame-in-quo-components.sh && \
sh scripts/lint/direct-require-component-outside-quo.sh && \
sh scripts/lint/require-i18n-resource-first.sh && \
clj-kondo --config .clj-kondo/config.edn --cache false --fail-level error --lint src $(if $(filter $(CLJ_LINTER_PRINT_WARNINGS),true),,| grep -v ': warning: ') && \
ALL_CLOJURE_FILES=$(call find_all_clojure_files) && \
scripts/lint/translations.clj && \
zprint '{:search-config? true}' -sfc $$ALL_CLOJURE_FILES && \
sh scripts/lint/trailing-newline.sh && \
node_modules/.bin/prettier --write .
# NOTE: We run the linter twice because of https://github.com/kkinnear/zprint/issues/271
lint-fix: export TARGET := clojure
lint-fix: ##@test Run code style checks and fix issues
clojure -Scp "$$CLASS_PATH" -m cljfmt.main fix src --indents indentation.edn
ALL_CLOJURE_FILES=$(call find_all_clojure_files) && \
zprint '{:search-config? true}' -sw $$ALL_CLOJURE_FILES && \
zprint '{:search-config? true}' -sw $$ALL_CLOJURE_FILES && \
clojure-lsp --ns-exclude-regex ".*/\.clj-kondo/.*|.*/src/status_im/core\.cljs|.*/src/test_helpers/component_tests_preload\.cljs$$" clean-ns && \
sh scripts/lint/trailing-newline.sh --fix && \
node_modules/.bin/prettier --write .
test: export TARGET := clojure
test: ##@test Run tests once in NodeJS
shadow-server: export TARGET := clojure
shadow-server:##@ Start shadow-cljs in server mode for watching
yarn shadow-cljs server
_test-clojure: export TARGET := clojure
_test-clojure: export WATCH ?= false
_test-clojure:
ifeq ($(WATCH), true)
yarn install && \
yarn shadow-cljs compile mocks && \
nodemon --exec "yarn shadow-cljs compile test && node --require ./test-resources/override.js $$SHADOW_OUTPUT_TO" -e cljs
else
yarn install && \
yarn shadow-cljs compile mocks && \
yarn shadow-cljs compile test && \
node --require ./test-resources/override.js target/test/test.js
node --require ./test-resources/override.js "$$SHADOW_OUTPUT_TO"
endif
coverage: ##@test Run tests once in NodeJS generating coverage
@scripts/run-coverage.sh
test: export SHADOW_OUTPUT_TO := target/test/test.js
test: export SHADOW_NS_REGEXP := .*-test$$
test: ##@test Run all Clojure tests
test: _test-clojure
test-watch-for-repl: export SHADOW_OUTPUT_TO := target/test/test.js
test-watch-for-repl: export SHADOW_NS_REGEXP := .*-test$$
test-watch-for-repl: ##@test Watch all Clojure tests and support REPL connections
yarn install
rm -f target/test/test.js
yarn shadow-cljs compile mocks && \
concurrently --kill-others --prefix-colors 'auto' --names 'build,repl' \
'yarn shadow-cljs watch test --verbose' \
"until [ -f $$SHADOW_OUTPUT_TO ] ; do sleep 1 ; done ; node --require ./test-resources/override.js $$SHADOW_OUTPUT_TO --repl"
test-unit: export SHADOW_OUTPUT_TO := target/unit_test/test.js
test-unit: export SHADOW_NS_REGEXP := ^(?!status-im\.integration-test).*-test$$
test-unit: ##@test Run unit tests
test-unit: _test-clojure
test-integration: export SHADOW_OUTPUT_TO := target/integration_test/test.js
test-integration: export SHADOW_NS_REGEXP := ^status-im\.integration-test.*$$
test-integration: ##@test Run integration tests
test-integration: _test-clojure
android-test: jsbundle
android-test: export TARGET := android
android-test:
cd android && ./gradlew test
component-test-watch: export TARGET := clojure
component-test-watch: export COMPONENT_TEST := true
component-test-watch: export BABEL_ENV := test
component-test-watch: export JEST_USE_SILENT_REPORTER := false
component-test-watch: ##@ Watch tests and re-run no changes to cljs files
@scripts/check-metro-shadow-process.sh
rm -rf ./component-spec
nodemon --exec 'yarn shadow-cljs compile component-test && jest --config=test/jest/jest.config.js --testEnvironment node ' -e cljs
component-test: export TARGET := clojure
component-test: export COMPONENT_TEST := true
component-test: export BABEL_ENV := test
component-test: export JEST_USE_SILENT_REPORTER := false
component-test: ##@test Run component tests once in NodeJS
@scripts/check-metro-shadow-process.sh
rm -rf ./component-spec
yarn shadow-cljs compile component-test && \
jest --clearCache && jest --config=test/jest/jest.config.js --testEnvironment node
#--------------
# Other
#--------------
geth-connect: export TARGET := android-env
geth-connect: export TARGET := android-sdk
geth-connect: ##@other Connect to Geth on the device
adb forward tcp:8545 tcp:8545 && \
build/bin/geth attach http://localhost:8545
ios-clean: SHELL := /bin/sh
ios-clean: ##@prepare Clean iOS build artifacts
git clean -dxf -f target/ios
android-clean: export TARGET := gradle
android-clean: ##@prepare Clean Gradle state
git clean -dxf -f ./android/app/build; \
[[ -d android/.gradle ]] && cd android && ./gradlew clean
android-ports: export TARGET := android-env
android-ports: export TARGET := android-sdk
android-ports: ##@other Add proxies to Android Device/Simulator
adb reverse tcp:8081 tcp:8081 && \
adb reverse tcp:3449 tcp:3449 && \
adb reverse tcp:4567 tcp:4567 && \
adb forward tcp:5561 tcp:5561
android-devices: export TARGET := android-env
android-devices: export TARGET := android-sdk
android-devices: ##@other Invoke adb devices
adb devices
android-logcat: export TARGET := android-env
android-logcat: ##@other Read status-react logs from Android phone using adb
android-logcat: export TARGET := android-sdk
android-logcat: ##@other Read status-mobile logs from Android phone using adb
adb logcat | grep -e RNBootstrap -e ReactNativeJS -e ReactNative -e StatusModule -e StatusNativeLogs -e 'F DEBUG :' -e 'Go :' -e 'GoLog :' -e 'libc :'
android-install: export TARGET := android-env
android-install: export TARGET := android-sdk
android-install: export BUILD_TYPE ?= release
android-install: ##@other Install APK on device using adb
adb install result/app-$(BUILD_TYPE).apk
+33 -32
View File
@@ -2,54 +2,61 @@
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80"/>](https://play.google.com/store/apps/details?id=im.status.ethereum)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"/>](https://f-droid.org/packages/im.status.ethereum/)
[<img src="doc/github_badge.png" alt="Get it on Github" height="80"/>](https://github.com/status-im/status-react/releases)
Join us in creating a browser, messenger, and gateway to a decentralized world. Status is a free (libre) open source mobile client targeting Android & iOS built entirely on [Ethereum](https://ethereum.org/) technologies. That's right, no middle men and `go-ethereum` running directly on your device.
[Get it on Github](https://github.com/status-im/status-mobile/releases)
Join us in creating a browser, messenger, and gateway to a decentralized world. Status is a free (libre) open source mobile client targeting Android & iOS built entirely on [Ethereum](https://ethereum.org/) technologies. That's right, no middlemen and `go-ethereum` running directly on your device.
[![Getting started with Status](https://i.imgur.com/C0aZZEL.jpg)](https://www.youtube.com/watch?v=oDCSEmS9c3o "Getting started with Status")
## Why?
We believe in a medium of pure free trade, economies with fair, permission-less access and a world without intermediaries. We want to create policies that can exist between friends or scale globally, we want to communicate securely and be uninhibited by legacy systems.
We believe in a medium of pure free trade, economies with fair, permission-less access and a world without intermediaries. We want to create policies that can exist between friends or scale globally, we want to communicate securely and be uninhibited by legacy systems.
We want to take responsibility for our data, the way we conduct ourselves privately and promote this way of life to a mass audience.
We want to take responsibility for our data, and the way we conduct ourselves privately and promote this way of life to a mass audience.
We want deep insights into our own economies so we can make informed, data-driven decisions on how to make our lives better. The Ethereum blockchain, Smart Contracts, Swarm and Whisper provides us a path forward.
We want deep insights into our own economies so we can make informed, data-driven decisions on how to make our lives better. The Ethereum blockchain, Smart Contracts, Swarm and Whisper provide us with a path forward.
If this interests you, **help us make Status a reality** - anyone can contribute and we need everyone at any skill level to participate.
## How to Contribute?
Go straight to the [docs](https://status.im/docs) or [join our chat](https://join.status.im/chat/public/status) and choose what interests you:
Go straight to the [docs](doc/) and choose what interests you:
- **Developer**
Developers are the heart of software and to keep Status beating we need all the help we can get! If you're looking to code in ClojureScript or Golang then Status is the project for you! We use React Native and there is even some Java/Objective-C too!
Want to learn more about it? Start by reading our [Developer Introduction](https://status.im/developer_tools/) which guides you through the technology stack and start browsing [beginner issues](https://github.com/status-im/status-react/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20). Then you can read how to [Build Status](https://status.im/technical/build_status/), which talks about managing project dependencies, coding guidelines and testing procedures.
- **Developer** Developers are the heart of software and to keep Status beating
we need all the help we can get! If you're looking to code in ClojureScript or
Golang then Status is the project for you! We use React Native and there is even
some Java/Objective-C too! Want to learn more about it? Start by reading our
[Developer Introduction](doc/starting-guide.md) which guides you
through the technology stack and start browsing [beginner
issues](https://github.com/status-im/status-mobile/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20).
Then you can read how to [Build
Status](doc/starting-guide.md), which talks about managing
project dependencies, coding guidelines and testing procedures.
Check out our [coding guidelines](doc/new-guidelines.md).
- **Community Management**
Metcalfe's law states that the value of a network is proportional to the square of the number of connected users of the system - without community Status is meaningless. We're looking to create a positive, fun environment to explore new ideas, experiment and grow the Status community. Building a community takes a lot of work but the people you'll meet and long lasting relationships you form will be well worth it, check out our [Mission and Community Principles](https://status.im/about)
- **Community Management**
Metcalfe's law states that the value of a network is proportional to the square of the number of connected users of the system - without community Status is meaningless. We're looking to create a positive, fun environment to explore new ideas, experiment and grow the Status community. Building a community takes a lot of work but the people you'll meet and the long-lasting relationships you form will be well worth it, check out our [Mission and Community Principles](https://status.im/about)
- **Specification / Documentation**
John Dewey once said "Education is not preparation for life; education is life *itself* ". Developers & Designers need guidance and it all starts from documentation and specifications. Our software is only as good as its documentation, head over to our [docs](https://status.im/docs) and see how you can improve what we have.
- **Specification / Documentation**
John Dewey once said, "Education is not preparation for life; education is life *itself* ". Developers and Designers need guidance and it all starts from documentation and specifications. Our software is only as good as its documentation, check out our [docs](doc/) and see how you can improve what we have.
- **Blog Writing**
Content is King, keeping our blog up to date and informing the community of news helps keep everyone on the same page. [Jump into our chat](https://join.status.im/chat/public/status) and discuss with the team how you can contribute!
- **Blog Writing**
Content is King, keeping our blog up to date and informing the community of news helps keep everyone on the same page.
- **Testers**
It's bug hunting season! Status is currently under active development and there is sure to be a bunch of learning, [build status from scratch](https://status.im/technical/build_status/) or if an android user check out our [nightly builds](https://status.im/nightly). You can shake your phone to submit bug reports, or start browsing our [Github Issues](https://github.com/status-im/status-react/issues). Every bug you find brings Status closer to stable, usable software for everyone to enjoy!
- **Testers**
It's bug-hunting season! Status is currently under active development and there is sure to be a bunch of learning, [build status from scratch](doc/starting-guide.md) or if an android user checks out our [nightly builds](https://status.im/nightly). You can shake your phone to submit bug reports, or start browsing our [Github Issues](https://github.com/status-im/status-mobile/issues). Every bug you find brings Status closer to stable, usable software for everyone to enjoy!
- **Security**
- **Security**
Status is a visual interface to make permanent changes on the Blockchain, it handles crypto-tokens that have real value and allows 3rd party code execution. Security is paramount to its success. You are given permission to break Status as hard as you can, as long as you share your findings with the community!
- **Evangelism**
Help us spread the word! Tell a friend *right now*, in fact tell **everyone** - yell from a mountain if you have to, every person counts! If you've got a great story to tell or have some interesting way you've spread the word about Status let us know about it in our [chat](https://join.status.im/chat/public/status)
## Status API
View our [API Docs](https://status.im/developer_tools/status_web_api.html) and learn how to integrate your DApp into Status. You can read more about how to add your DApp to Status [here](https://status.im/developer_tools/add_your_dapp.html).
- **Evangelism**
Help us spread the word! Tell a friend *right now*, in fact, tell **everyone** - yell from a mountain if you have to, every person counts! If you've got a great story to tell or have some interesting way you've spread the word about Status let us know about it in our [chat](https://join.status.im/chat/public/status)
## Give me Binaries!
You can get our Beta builds for both Android and iOS on our [website](https://status.im), through our [nightly builds](https://status.im/nightly/) or by [building it yourself](https://status.im/technical/build_status/).
You can get our Beta builds for both Android and iOS on our [website](https://status.im), through our [nightly builds](https://status.im/nightly/), or by [building it yourself](https://status.im/technical/build_status/).
## Core Contributors
@@ -60,14 +67,8 @@ Without the dedication of these outstanding individuals, Status would not exist.
## Contact us
Feel free to email us at [support@status.im](mailto:support@status.im) or better yet, [join our chat](https://join.status.im/chat/public/status).
Feel free to email us at [support@status.im](mailto:support@status.im).
## License
Licensed under the [Mozilla Public License v2.0](https://github.com/status-im/status-react/blob/develop/LICENSE.md)
## Testing Supported by
[![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=SFBWQ3k5R2tnT2t6UGsxU1h1U0g3VFlCNnoxVTRHYWNoTDhsb1laaTJZWT0tLUZMUm5sSVFBSU9qSWM1RUJvK1I3Z3c9PQ==--ad15ae7992b432b33743749d40318952415bd98f)](https://www.browserstack.com/automate/public-build/SFBWQ3k5R2tnT2t6UGsxU1h1U0g3VFlCNnoxVTRHYWNoTDhsb1laaTJZWT0tLUZMUm5sSVFBSU9qSWM1RUJvK1I3Z3c9PQ==--ad15ae7992b432b33743749d40318952415bd98f)
[![Coverage Status](https://coveralls.io/repos/github/status-im/status-react/badge.svg?)](https://coveralls.io/github/status-im/status-react)
Licensed under the [Mozilla Public License v2.0](https://github.com/status-im/status-mobile/blob/develop/LICENSE.md)
+272 -150
View File
@@ -1,36 +1,158 @@
## 1.20 Release notes
### Features
* Add session management for wallet connect by @cammellos in https://github.com/status-im/status-mobile/pull/13799
* [#13181] Cannot delete images or audio messages by @flexsurfer in https://github.com/status-im/status-mobile/pull/13210
* [#13230] Show default syncing interval by @rasom in https://github.com/status-im/status-mobile/pull/13234
* Add support for mutual contact requests by @cammellos in https://github.com/status-im/status-mobile/pull/13054
* Implement Information box and ens banner view by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13753
* Profile picture sync by @siphiuel in https://github.com/status-im/status-mobile/commit/fbfab9fd3bdbcfa6cdd9a24a6bce526da8252fd3
### Improvements
* Improve notifications life-cycle by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13248
* Simpledapp on Goerli by @churik in https://github.com/status-im/status-mobile/pull/13732
* Include share action on longpress image menu by @jo-mut in https://github.com/status-im/status-mobile/pull/13359
* fast image loading indicator by @flexsurfer in https://github.com/status-im/status-mobile/pull/13431
* [#13355] Long time (5-15 sec) for loading chat messages by @flexsurfer in https://github.com/status-im/status-mobile/pull/13425
* [Fixes: #13416] resize image in status-go as well, alert user if fails by @cammellos in https://github.com/status-im/status-mobile/pull/13422
* [#12566] Remove legacy dependency on mailserver password by @erikseppanen in https://github.com/status-im/status-mobile/pull/13511
* Wallet sync for generated accounts by @siphiuel in https://github.com/status-im/status-mobile/pull/13487
* feat: lottie splash screen by @yqrashawn in https://github.com/status-im/status-mobile/pull/13714
* [#13647] Update all settings on pairing with a new wallet account by @rasom in https://github.com/status-im/status-mobile/pull/13742
* Improve ethereum.send by @qfrank in https://github.com/status-im/status-mobile/pull/13724
### Redesign
* quo, Switcher Navigation by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13167
* Switcher and Bottom Tabs Animations and UI Performance Improvements by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13470
* feat: add token tag component (#13599) by @J-Son89 in https://github.com/status-im/status-mobile/pull/13644
* [13565] icon-avatar component by @ibrkhalil in https://github.com/status-im/status-mobile/pull/13692
* [13562] Wallet user avatar component by @ibrkhalil in https://github.com/status-im/status-mobile/pull/13681
* Reply component in chat input & quoted messages redesign by @briansztamfater in https://github.com/status-im/status-mobile/pull/13706
* Wallet redesign by @flexsurfer in https://github.com/status-im/status-mobile/pull/13172
* [Potential: #13596] Add status-tags component by @cammellos in https://github.com/status-im/status-mobile/pull/13597
* Chat views redesign by @briansztamfater in https://github.com/status-im/status-mobile/pull/13184
* Implementation of React Native Blur view for android by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13663
* feat: add token overview component (status-im#13555) by @J-Son89 in https://github.com/status-im/status-mobile/pull/13767
### Bug Fixes
* fix screen orientation on android by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13218
* Don't unmute contact while adding by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13237
* fix chat image long press issue by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13371
* [#13149] Timeline images stretch off screen by @siddarthkay in https://github.com/status-im/status-mobile/pull/13211
* [#13233] Proper message after clearing history in pubchat by @rasom in https://github.com/status-im/status-mobile/pull/13241
* [#13235] Fix opening of the last shown chat with local notifications by @rasom in https://github.com/status-im/status-mobile/pull/13252
* [#13201] Fix handling of favourits syncing by @rasom in https://github.com/status-im/status-mobile/pull/13253
* [#13257] Fix sync devices sorting by @rasom in https://github.com/status-im/status-mobile/pull/13282
* [#13283] Fix syncing of adding contact after removal by @rasom in https://github.com/status-im/status-mobile/pull/13292
* [#13263] Fix for ENS warning showing on custom domains by @daferna in https://github.com/status-im/status-mobile/pull/13312
* fix can't share deep link from profile on ios by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13420
* Fix sending logs from iOS by @bitgamma in https://github.com/status-im/status-mobile/pull/13619
* fix #13642: Cannot sign in on claim.lens.xyz by @qfrank in https://github.com/status-im/status-mobile/pull/13668
* [#13493] Can not switch to xDai chain by @flexsurfer in https://github.com/status-im/status-mobile/pull/13709
* fix bookmarks not syncing by @Parveshdhull in https://github.com/status-im/status-mobile/pull/13727
* fix: set max option not work when send from qrcode by @yqrashawn in https://github.com/status-im/status-mobile/pull/13733
* [#13835] Fix Generate keys button by @rasom in https://github.com/status-im/status-mobile/pull/13841
* Fix disappearing of the last notification when paired by @rasom in https://github.com/status-im/status-mobile/pull/13796
* [#13766] custom networkid fix by @ flexsurfer in https://github.com/status-im/status-mobile/pull/13765
## New Contributors
* @siddarthkay made their first contribution in https://github.com/status-im/status-mobile/pull/13185
* @daferna made their first contribution in https://github.com/status-im/status-mobile/pull/13312
* @smohamedjavid made their first contribution in https://github.com/status-im/status-mobile/pull/13364
* @ibrkhalil made their first contribution in https://github.com/status-im/status-mobile/pull/13450
* @PEZ made their first contribution in https://github.com/status-im/status-mobile/pull/13494
* @erikseppanen made their first contribution in https://github.com/status-im/status-mobile/pull/13511
* @Rende11 made their first contribution in https://github.com/status-im/status-mobile/pull/13609
* @yqrashawn made their first contribution in https://github.com/status-im/status-mobile/pull/13739
* @ilmotta made their first contribution in https://github.com/status-im/status-mobile/pull/13747
* @phrohdoh made their first contribution in https://github.com/status-im/status-mobile/pull/13772
* @J-Son89 made their first contribution in https://github.com/status-im/status-mobile/pull/13767
**Full Changelog**: https://github.com/status-im/status-mobile/compare/1.19.0...1.20.0
## 1.19 Release notes
### Features
* 💬 Re-open app on the last open chat ([details](https://github.com/status-im/status-mobile/issues/12782))
* 🪙 Support \$UBI token ([details](https://github.com/status-im/status-mobile/issues/12975))
* 🔔 Implementation of remote android notifications ([details](https://github.com/status-im/status-mobile/issues/12866))
* 🔁 Sync clear history on paired devices ([details](https://github.com/status-im/status-mobile/issues/13004))
* 📑 Synchronize browser bookmarks/favorites across devices ([details](https://github.com/status-im/status-mobile/issues/12961))
* 🔕 Add mute option to android ([details](https://github.com/status-im/status-mobile/issues/12890))
* 👛 Wallet Connect 2.0 integration ([details](https://github.com/status-im/status-mobile/issues/12546))
* 💰 Implement Wallet Connect 1.0 ([details](https://github.com/status-im/status-mobile/issues/12870))
* ⚙️ Sync settings ([details](https://github.com/status-im/status-mobile/pull/13053))
### Improvements
* Improve order of mailserver requests ([details](https://github.com/status-im/status-mobile/issues/12783))
* Load images from an https server ([details](https://github.com/status-im/status-mobile/issues/12855))
* Load audio messages from https server ([details](https://github.com/status-im/status-mobile/issues/13116))
* Show message timestamps on tap, remove from bubbles 🕙 ([details](https://github.com/status-im/status-mobile/pull/12915))
* support PUK and seed recovery during onboarding ([details](https://github.com/status-im/status-mobile/pull/12955))
* update react-native-webview ([details](https://github.com/status-im/status-mobile/pull/12987))
* Add group members to mentionable list ([details](https://github.com/status-im/status-mobile/pull/12994))
* always use english for fallback text ([details](https://github.com/status-im/status-mobile/pull/13019))
* Disable chat input for chats with a blocked user ([details](https://github.com/status-im/status-mobile/pull/13162))
* Handle timeouts on mailserver requests ([details](https://github.com/status-im/status-mobile/issues/13022))
* Human Readable data display when signing using eth_signTypedData_v3 ([details](https://github.com/status-im/status-mobile/issues/12535))
### Bug Fixes
* Bug/fix opensea api ([details](https://github.com/status-im/status-mobile/pull/13021))
* Show "Fetch more messages" only in public chats and communities ([details](https://github.com/status-im/status-mobile/pull/12927))
* Chats are not synced if delete and re-add them on the first device while the second device is offline ([details](https://github.com/status-im/status-mobile/issues/12913))
* fix distortion of app theme due to change in system theme ([details](https://github.com/status-im/status-mobile/pull/12934))
* Unable to perform swap on 1inch.exchange if initial swap was cancelled by closing bottom sheet ([details](https://github.com/status-im/status-mobile/issues/12920))
* Error when trying to edit 'per-gas price limit' on 1inch.exchange ([details](https://github.com/status-im/status-mobile/issues/12991))
* Allow adding emoji in status input even if it exceeds limit ([details](https://github.com/status-im/status-mobile/pull/12949))
* Allow adding emoji to group intro message if it exceeds limit ([details](https://github.com/status-im/status-mobile/pull/13024))
* Use higher base fee value for default tx fee calculation ([details](https://github.com/status-im/status-mobile/pull/13020))
* Profile QR code overlaps share menu during sharing (IOS) ([details](https://github.com/status-im/status-mobile/pull/13050))
* No value in 'Gas amount limit' field in NFT dapps ([details](https://github.com/status-im/status-mobile/pull/13051))
* Stop showing fetch more button for cleared history ([details](https://github.com/status-im/status-mobile/pull/13084))
* fix ens resolve issue while following deep link ([details](https://github.com/status-im/status-mobile/pull/13080))
* Fix deadlock on syncing all data ([details](https://github.com/status-im/status-mobile/pull/13128))
* Fix broken username and timestamp layout for long usernames ([details](https://github.com/status-im/status-mobile/pull/13174))
## 1.18.0 Release notes :package:
### Features
* 🚦Online status indicator <https://github.com/status-im/status-react/issues/12547>
* 👛 Add possibility to select wallet for ENS names <https://github.com/status-im/status-react/pull/12761>
* 🐞 Bug reporting and logs sharing improvements <https://github.com/status-im/status-react/pull/12773>
* 🍳 Simplify Keycard onboarding by using defaults for pairing password <https://github.com/status-im/status-react/issues/12685>
* 💾 Backup contacts via Waku <https://github.com/status-im/status-react/issues/12550>
* 🪙 Added ENS token <https://github.com/status-im/status-react/issues/12807>
* 🌠 Using react-native-fast-image for stickers <https://github.com/status-im/status-react/pull/12769>
* 🚦Online status indicator <https://github.com/status-im/status-mobile/issues/12547>
* 👛 Add possibility to select wallet for ENS names <https://github.com/status-im/status-mobile/pull/12761>
* 🐞 Bug reporting and logs sharing improvements <https://github.com/status-im/status-mobile/pull/12773>
* 🍳 Simplify Keycard onboarding by using defaults for pairing password <https://github.com/status-im/status-mobile/issues/12685>
* 💾 Backup contacts via Waku <https://github.com/status-im/status-mobile/issues/12550>
* 🪙 Added ENS token <https://github.com/status-im/status-mobile/issues/12807>
* 🌠 Using react-native-fast-image for stickers <https://github.com/status-im/status-mobile/pull/12769>
#### Message reliability improvements
* 𝌗 Show loading until all messages are processed <https://github.com/status-im/status-react/pull/12834>
* 💪🏼 More robust message confirmations handling <https://github.com/status-im/status-react/pull/12824>
* 📶 Allow sending messages when offline <https://github.com/status-im/status-react/issues/11889>
* 𝌗 Show loading until all messages are processed <https://github.com/status-im/status-mobile/pull/12834>
* 💪🏼 More robust message confirmations handling <https://github.com/status-im/status-mobile/pull/12824>
* 📶 Allow sending messages when offline <https://github.com/status-im/status-mobile/issues/11889>
#### Improvements on device pairing
* 🔔💻 Notification in activity centre now sync across devices <https://github.com/status-im/status-react/issues/12571>
* ✅💻 Sync read messages across devices <https://github.com/status-im/status-react/pull/12698>
* 🔔💻 Notification in activity centre now sync across devices <https://github.com/status-im/status-mobile/issues/12571>
* ✅💻 Sync read messages across devices <https://github.com/status-im/status-mobile/pull/12698>
#### Network settings improvements
* ✨ Add Binance Smart chain <https://github.com/status-im/status-react/pull/12809>
* ♏︎ Added custom network symbol <https://github.com/status-im/status-react/commit/c16b0860ec921a61c119857de27c6f29e301e4f6>
* 💰 Network fee on xDai chain <https://github.com/status-im/status-react/pull/12845>
* 📇 Support tx history (in a way) when on BSC chains <https://github.com/status-im/status-react/pull/12843>
* 🙅🏻 Remove POA network from the list <https://github.com/status-im/status-react/pull/12887>
* ✨ Add Binance Smart chain <https://github.com/status-im/status-mobile/pull/12809>
* ♏︎ Added custom network symbol <https://github.com/status-im/status-mobile/commit/c16b0860ec921a61c119857de27c6f29e301e4f6>
* 💰 Network fee on xDai chain <https://github.com/status-im/status-mobile/pull/12845>
* 📇 Support tx history (in a way) when on BSC chains <https://github.com/status-im/status-mobile/pull/12843>
* 🙅🏻 Remove POA network from the list <https://github.com/status-im/status-mobile/pull/12887>
### Bug Fixes
* Fix activity center community invite preview <https://github.com/status-im/status-react/pull/12803>
* Missing notifications for some contacts <https://github.com/status-im/status-react/issues/12776>
* Fixes scrolling issues on the 'Max priority fee' bottom sheet <https://github.com/status-im/status-react/issues/12530>
* Handle Keycard timeout on iOS 15 <https://github.com/status-im/status-react/pull/12826>
* Allow user to be reinvited to the same group after leaving <https://github.com/status-im/status-react/pull/12814>
* Fix for "TypeError: Network request failed" when switching to Goerli network <https://github.com/status-im/status-react/issues/11964>
* Fix for Spin of death on adding custom NFT token contract <https://github.com/status-im/status-react/issues/12365>
* Changing screen orientation results in breaking images / layout <https://github.com/status-im/status-react/issues/12858>
* Fix activity center community invite preview <https://github.com/status-im/status-mobile/pull/12803>
* Missing notifications for some contacts <https://github.com/status-im/status-mobile/issues/12776>
* Fixes scrolling issues on the 'Max priority fee' bottom sheet <https://github.com/status-im/status-mobile/issues/12530>
* Handle Keycard timeout on iOS 15 <https://github.com/status-im/status-mobile/pull/12826>
* Allow user to be reinvited to the same group after leaving <https://github.com/status-im/status-mobile/pull/12814>
* Fix for "TypeError: Network request failed" when switching to Goerli network <https://github.com/status-im/status-mobile/issues/11964>
* Fix for Spin of death on adding custom NFT token contract <https://github.com/status-im/status-mobile/issues/12365>
* Changing screen orientation results in breaking images / layout <https://github.com/status-im/status-mobile/issues/12858>
## 1.17
@@ -39,41 +161,41 @@
### Features
- 🖼️ Add ability to Share image from Status ([details](https://github.com/status-im/status-react/pull/12528))
- 🕵️ Private Profile Photos ([details](https://github.com/status-im/status-react/pull/11768))
- 🥥 Custom Emoji Thumbnails for Community Channels ([details](https://github.com/status-im/status-react/pull/12594))
- 🔄 Sync deleted chats ([details](https://github.com/status-im/status-react/pull/12662))
- 🔃 Sync removed/deleted/blocked contacts ([details](https://github.com/status-im/status-react/pull/12541))
- 💸 Allow overriding nonce when sending transaction ([details](https://github.com/status-im/status-react/pull/12679))
- 🗑️ Delete messages ([details](https://github.com/status-im/status-react/pull/12390))
- 🎨 NFT Support via OpenSea ([details](https://github.com/status-im/status-react/pull/12485))
- 🤳🏻 Enable collectibles and NFT as profile picture ([details](https://github.com/status-im/status-react/pull/12615))
- 🖼️ Add ability to Share image from Status ([details](https://github.com/status-im/status-mobile/pull/12528))
- 🕵️ Private Profile Photos ([details](https://github.com/status-im/status-mobile/pull/11768))
- 🥥 Custom Emoji Thumbnails for Community Channels ([details](https://github.com/status-im/status-mobile/pull/12594))
- 🔄 Sync deleted chats ([details](https://github.com/status-im/status-mobile/pull/12662))
- 🔃 Sync removed/deleted/blocked contacts ([details](https://github.com/status-im/status-mobile/pull/12541))
- 💸 Allow overriding nonce when sending transaction ([details](https://github.com/status-im/status-mobile/pull/12679))
- 🗑️ Delete messages ([details](https://github.com/status-im/status-mobile/pull/12390))
- 🎨 NFT Support via OpenSea ([details](https://github.com/status-im/status-mobile/pull/12485))
- 🤳🏻 Enable collectibles and NFT as profile picture ([details](https://github.com/status-im/status-mobile/pull/12615))
### Improvements
- Move pull to refresh to the account overview screen ([details](https://github.com/status-im/status-react/pull/12479))
- Add $RARE token to our default list ([details](https://github.com/status-im/status-react/pull/12521))
- Small UI Design Improvements ([details](https://github.com/status-im/status-react/pull/12544))
- Chats list performance ([details](https://github.com/status-im/status-react/pull/12554))
- Add push notification on group chat invite ([details](https://github.com/status-im/status-react/pull/12440))
- Contacts performance ([details](https://github.com/status-im/status-react/pull/12643))
- Add profile image in push notifications ([details](https://github.com/status-im/status-react/pull/12427))
- Enable UI for signing legacy txs on networks without eip1559 ([details](https://github.com/status-im/status-react/pull/12692))
- Doubled the character limit on timeline posts ([details](https://github.com/status-im/status-react/commit/a9333ad52ca71f512d5306f802927d0c20d63944))
- Move pull to refresh to the account overview screen ([details](https://github.com/status-im/status-mobile/pull/12479))
- Add $RARE token to our default list ([details](https://github.com/status-im/status-mobile/pull/12521))
- Small UI Design Improvements ([details](https://github.com/status-im/status-mobile/pull/12544))
- Chats list performance ([details](https://github.com/status-im/status-mobile/pull/12554))
- Add push notification on group chat invite ([details](https://github.com/status-im/status-mobile/pull/12440))
- Contacts performance ([details](https://github.com/status-im/status-mobile/pull/12643))
- Add profile image in push notifications ([details](https://github.com/status-im/status-mobile/pull/12427))
- Enable UI for signing legacy txs on networks without eip1559 ([details](https://github.com/status-im/status-mobile/pull/12692))
- Doubled the character limit on timeline posts ([details](https://github.com/status-im/status-mobile/commit/a9333ad52ca71f512d5306f802927d0c20d63944))
### Bugfixes
- Don't show notifications from self ([details](https://github.com/status-im/status-react/pull/12505))
- Request permissions before saving images ([details](https://github.com/status-im/status-react/pull/12516))
- Re-enable amount/fee validation on tx signing ([details](https://github.com/status-im/status-react/pull/12537))
- Fix browser history sorting ([details](https://github.com/status-im/status-react/pull/12497))
- Fix show/hide password on Android ([details](https://github.com/status-im/status-react/pull/12536))
- Fix connecting autofarm.network dapps with status wallet freezes ([details](https://github.com/status-im/status-react/pull/12529))
- RPC URL is lower-cased when entered in URL field when adding ([details](https://github.com/status-im/status-react/pull/12574))
- Allow retrieving of profile updates after removing contact ([details](https://github.com/status-im/status-react/pull/12581))
- Fetch history on receiving pubchat installation ([details](https://github.com/status-im/status-react/pull/12644))
- Can't send funds to multisig - Out of gas ([details](https://github.com/status-im/status-react/pull/12648))
- Fix handling errors on eth_gasPrice ([details](https://github.com/status-im/status-react/pull/12710))
- Don't show notifications from self ([details](https://github.com/status-im/status-mobile/pull/12505))
- Request permissions before saving images ([details](https://github.com/status-im/status-mobile/pull/12516))
- Re-enable amount/fee validation on tx signing ([details](https://github.com/status-im/status-mobile/pull/12537))
- Fix browser history sorting ([details](https://github.com/status-im/status-mobile/pull/12497))
- Fix show/hide password on Android ([details](https://github.com/status-im/status-mobile/pull/12536))
- Fix connecting autofarm.network dapps with status wallet freezes ([details](https://github.com/status-im/status-mobile/pull/12529))
- RPC URL is lower-cased when entered in URL field when adding ([details](https://github.com/status-im/status-mobile/pull/12574))
- Allow retrieving of profile updates after removing contact ([details](https://github.com/status-im/status-mobile/pull/12581))
- Fetch history on receiving pubchat installation ([details](https://github.com/status-im/status-mobile/pull/12644))
- Can't send funds to multisig - Out of gas ([details](https://github.com/status-im/status-mobile/pull/12648))
- Fix handling errors on eth_gasPrice ([details](https://github.com/status-im/status-mobile/pull/12710))
## 1.16
@@ -81,88 +203,88 @@
### Features
- EIP-1159 support ([#12369](https://github.com/status-im/status-react/pull/12369))
- Hide/show option for accounts in the wallet ([#12438](https://github.com/status-im/status-react/pull/12438))
- Delete accounts in wallet ([#12444](https://github.com/status-im/status-react/pull/12444))
- Enable keeping database when migrating account to keycard ([#12306](https://github.com/status-im/status-react/pull/12306))
- Replies from group chat in activity centre ([#12266](https://github.com/status-im/status-react/pull/12266))
- EIP-1159 support ([#12369](https://github.com/status-im/status-mobile/pull/12369))
- Hide/show option for accounts in the wallet ([#12438](https://github.com/status-im/status-mobile/pull/12438))
- Delete accounts in wallet ([#12444](https://github.com/status-im/status-mobile/pull/12444))
- Enable keeping database when migrating account to keycard ([#12306](https://github.com/status-im/status-mobile/pull/12306))
- Replies from group chat in activity centre ([#12266](https://github.com/status-im/status-mobile/pull/12266))
### Improvements
- Remove clear history from non-public chats ([#12384](https://github.com/status-im/status-react/pull/12384))
- Clearing push notifications on read (Android) ([#12464](https://github.com/status-im/status-react/pull/12464))
- Enable migration to keycard from signed-in state ([#11778](https://github.com/status-im/status-react/issues/11778))
- Remove clear history from non-public chats ([#12384](https://github.com/status-im/status-mobile/pull/12384))
- Clearing push notifications on read (Android) ([#12464](https://github.com/status-im/status-mobile/pull/12464))
- Enable migration to keycard from signed-in state ([#11778](https://github.com/status-im/status-mobile/issues/11778))
### Bug Fixes
#### Chat
- Fix Error when opening 1-1 chat in Activity center for blocked user ([#12399](https://github.com/status-im/status-react/pull/12399))
- Long press is long and it makes the message disappear entirely ([#12445](https://github.com/status-im/status-react/pull/12445))
- Sort pinned messages by time of pinning ([#12402](https://github.com/status-im/status-react/pull/12402))
- Screens with overlapping long usernames ([#12471](https://github.com/status-im/status-react/pull/12471))
- Fix Error when opening 1-1 chat in Activity center for blocked user ([#12399](https://github.com/status-im/status-mobile/pull/12399))
- Long press is long and it makes the message disappear entirely ([#12445](https://github.com/status-im/status-mobile/pull/12445))
- Sort pinned messages by time of pinning ([#12402](https://github.com/status-im/status-mobile/pull/12402))
- Screens with overlapping long usernames ([#12471](https://github.com/status-im/status-mobile/pull/12471))
#### Browser (Dapp)
- Fix some token swap errors in Uniswap ([#12417](https://github.com/status-im/status-react/pull/12417))
- Update react-native-webview for better SSL handling ([#12409](https://github.com/status-im/status-react/pull/12409))
- Fix some token swap errors in Uniswap ([#12417](https://github.com/status-im/status-mobile/pull/12417))
- Update react-native-webview for better SSL handling ([#12409](https://github.com/status-im/status-mobile/pull/12409))
#### Keycard
- App freezes until reopening when signing tx with frozen Keycard ([#12473](https://github.com/status-im/status-react/pull/12473))
- App freezes until reopening when signing tx with frozen Keycard ([#12473](https://github.com/status-im/status-mobile/pull/12473))
#### Wallet
- Allow to add assets with same name ([#12466](https://github.com/status-im/status-react/pull/12466))
- Update DATAcoin name ([#12454](https://github.com/status-im/status-react/pull/12454))
- Allow to add assets with same name ([#12466](https://github.com/status-im/status-mobile/pull/12466))
- Update DATAcoin name ([#12454](https://github.com/status-im/status-mobile/pull/12454))
## 1.15
### For iOS and Android
### Features
- New improved native navigation, its very fast :dash: [[details](https://github.com/status-im/status-react/pull/12141)]
- Pinned messages in chats :pushpin: [[details](https://github.com/status-im/status-react/issues/11699)]
- Add support for ETH2x-FLI ERC20 token ⚫ [[details](https://github.com/status-im/status-react/issues/11885)]
- Add support for HEZ ERC20 token ⚫ [[details](https://github.com/status-im/status-react/issues/12233)]
- Show number of unread mentions in public and communities chats :bell: [[details](https://github.com/status-im/status-react/issues/12061)]
- QR code scanner for browser :ticket: [[details](https://github.com/status-im/status-react/issues/12195)]
- Edit messages after sending :pencil2: [[details](https://github.com/status-im/status-react/issues/12067)]
- Allow password reset :abcd: [[details](https://github.com/status-im/status-react/pull/12245)]
- New improved native navigation, its very fast :dash: [[details](https://github.com/status-im/status-mobile/pull/12141)]
- Pinned messages in chats :pushpin: [[details](https://github.com/status-im/status-mobile/issues/11699)]
- Add support for ETH2x-FLI ERC20 token ⚫ [[details](https://github.com/status-im/status-mobile/issues/11885)]
- Add support for HEZ ERC20 token ⚫ [[details](https://github.com/status-im/status-mobile/issues/12233)]
- Show number of unread mentions in public and communities chats :bell: [[details](https://github.com/status-im/status-mobile/issues/12061)]
- QR code scanner for browser :ticket: [[details](https://github.com/status-im/status-mobile/issues/12195)]
- Edit messages after sending :pencil2: [[details](https://github.com/status-im/status-mobile/issues/12067)]
- Allow password reset :abcd: [[details](https://github.com/status-im/status-mobile/pull/12245)]
### Improvements
- Native modals and tabs :house_with_garden:
- Improved time to show login screen :timer_clock:
- New, human friendly, terms of use :pencil: [[details](https://github.com/status-im/status-react/issues/12206)]
- New, human friendly, terms of use :pencil: [[details](https://github.com/status-im/status-mobile/issues/12206)]
### Bug Fixes
- No contact request in Activity Center after 1-1 chat deleted of non-contact user :no_good: [[details](https://github.com/status-im/status-react/issues/12218)]
- No contact request in Activity Center after 1-1 chat deleted of non-contact user :no_good: [[details](https://github.com/status-im/status-mobile/issues/12218)]
## 1.14
### For iOS and Android
### Features
- Highlight posts that mention you ([details](https://github.com/status-im/status-react/pull/12146))
- Highlight posts that mention you ([details](https://github.com/status-im/status-mobile/pull/12146))
- Remove PUK and Pairing Code screen from Keycard onboarding
[details](https://github.com/status-im/status-react/pull/12155))
- Added unread messages count for messages with mentions in public chats ([details](https://github.com/status-im/status-react/pull/12152))
- Sync history setting allowing to sync chat history up to 1 month ([details](https://github.com/status-im/status-react/pull/12166))
[details](https://github.com/status-im/status-mobile/pull/12155))
- Added unread messages count for messages with mentions in public chats ([details](https://github.com/status-im/status-mobile/pull/12152))
- Sync history setting allowing to sync chat history up to 1 month ([details](https://github.com/status-im/status-mobile/pull/12166))
### Improvements
- "My profile" button for simplification of finding own public key ([details](https://github.com/status-im/status-react/pull/12044))
- Factory reset option is available on account creation and recovery flows ([details](https://github.com/status-im/status-react/pull/12055))
- Allow the creation of recovery/backup Keycard from the login interface ([details](https://github.com/status-im/status-react/pull/12115))
- Reset blocked and/or frozen Keycards ([details](https://github.com/status-im/status-react/pull/12127))
- Show cached balance ([details](https://github.com/status-im/status-react/pull/12134))
- "My profile" button for simplification of finding own public key ([details](https://github.com/status-im/status-mobile/pull/12044))
- Factory reset option is available on account creation and recovery flows ([details](https://github.com/status-im/status-mobile/pull/12055))
- Allow the creation of recovery/backup Keycard from the login interface ([details](https://github.com/status-im/status-mobile/pull/12115))
- Reset blocked and/or frozen Keycards ([details](https://github.com/status-im/status-mobile/pull/12127))
- Show cached balance ([details](https://github.com/status-im/status-mobile/pull/12134))
### Bugfixes
- Pending transactions are stored in the database and shown on history screen after re-login ([details](https://github.com/status-im/status-react/pull/12032))
- Pending transactions are stored in the database and shown on history screen after re-login ([details](https://github.com/status-im/status-mobile/pull/12032))
- Multiple fixes for keycard
- Fixes for resolving ENS name from chat key ([details](https://github.com/status-im/status-react/pull/12100))
- Fixes for resolving ENS name from chat key ([details](https://github.com/status-im/status-mobile/pull/12100))
## 1.13
@@ -170,7 +292,7 @@
### For iOS and Android
### Features
- New activity manager https://github.com/status-im/status-react/issues/11958
- New activity manager https://github.com/status-im/status-mobile/issues/11958
New chats and group chat invitation will appear in a new section, the activity center, where a user will be able to accept or decline the request.
https://www.figma.com/file/r59kCQxl6tlC0dHkcAJOpP/Action-center-MVP---Mobile?node-id=2%3A8012 (not fully implemented)
@@ -244,7 +366,7 @@ V1.11 also makes some improvements to the overall Status experience. Improved co
Update in the App Store or Google Play if you do not have auto updates enabled.
For the full changelog, see Github https://github.com/status-im/status-react/milestone/49?closed=1
For the full changelog, see Github https://github.com/status-im/status-mobile/milestone/49?closed=1
#### Added
- Add Giphy url support in chat
@@ -265,7 +387,7 @@ V1.11 also makes some improvements to the overall Status experience. Improved co
Update in the App Store or Google Play if you do not have auto updates enabled.
For the full changelog, see Github https://github.com/status-im/status-react/milestone/49?closed=1
For the full changelog, see Github https://github.com/status-im/status-mobile/milestone/49?closed=1
#### Added
- Migrate existing account to Keycard
@@ -440,7 +562,7 @@ Update in the [App Store](https://apps.apple.com/us/app/status-private-communica
The APK available is [here](https://status-im-files.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-v1.8.0.apk).
For the full changelog, see our [Github](https://github.com/status-im/status-react/commits/release/1.8.x).
For the full changelog, see our [Github](https://github.com/status-im/status-mobile/commits/release/1.8.x).
> [Verify APK link before publishing blog post]
>
@@ -450,7 +572,7 @@ This release fixes an issue with fetching ERC20 balance. It was due to a contrac
## 1.7.1
Full release commits: https://github.com/status-im/status-react/commits/release/1.7.1
Full release commits: https://github.com/status-im/status-mobile/commits/release/1.7.1
### Android + iOS
#### Excerpt
Several users have reported an issue in upgrading from release 1.6.1 to release 1.7. This update fixes the issue.
@@ -467,7 +589,7 @@ Retry failed migration
## 1.7
Full release commits: https://github.com/status-im/status-react/commits/release/1.7.x
Full release commits: https://github.com/status-im/status-mobile/commits/release/1.7.x
### Android
#### Excerpt (446 characters including spaces)
@@ -593,13 +715,13 @@ For the full changelog, see our Github
### Excerpt
This intermediate release, 1.4.1, includes bug fixes as well as UX and accessibility improvements. Most visibly, a gorgeous set of new icons, accessible input fields and toggling password entry visibility. Next to that the release includes updates to Notifications on Android, like being able to open Status, as well as close the notification service, directly from the notification banner.
For the full changelog, see our [Github](https://github.com/status-im/status-react/commits/release/1.4.x)
For the full changelog, see our [Github](https://github.com/status-im/status-mobile/commits/release/1.4.x)
### Full
While focused on building new features there are a few improvements we did not want to hold off on sharing. This intermediate release, 1.4.1, includes bug fixes as well as UX and accessibility improvements. Most visibly, a gorgeous set of new icons, accessible input fields and toggling password entry visibility. Next to that the release includes updates to Notifications on Android, like being able to open Status, as well as close the notification service, directly from the notification banner.
For the full changelog, see our [Github](https://github.com/status-im/status-react/commits/release/1.4.x).
For the full changelog, see our [Github](https://github.com/status-im/status-mobile/commits/release/1.4.x).
@@ -639,7 +761,7 @@ The final addition to v1.4 is the introduction of browser support for EIP 1139
Beyond that, version 1.4 includes some updates to the FAQ, extended translation support, and some fixes to ENS username displays, dark mode contrast, QR code scanner and more.
For the full changelog, see our [Github](https://github.com/status-im/status-react/commits/release/1.4.x).
For the full changelog, see our [Github](https://github.com/status-im/status-mobile/commits/release/1.4.x).
#### Added
- Keycard integration on Android
@@ -660,7 +782,7 @@ For the full changelog, see our [Github](https://github.com/status-im/status-rea
- Resolved error on scrolling account view
- Parse markdown in subheader chat list
- Banner to back up seed phrase tappable
- [Chat performance improvements](https://github.com/status-im/status-react/pull/10711)
- [Chat performance improvements](https://github.com/status-im/status-mobile/pull/10711)
- QR code scanning issue when scanning from join.status.im
@@ -676,7 +798,7 @@ In the future, we'd like to expand these to host more than 10 members. We'll emb
Lastly, we've changed our webview implementation over to the react-native-community package, to remain in sync with the React Native community and benefit from upstream improvements.
As always, we've also included a few nice fixes in this release. For the full changelog, [see our Github](https://github.com/status-im/status-react/commits/release/1.3.x).
As always, we've also included a few nice fixes in this release. For the full changelog, [see our Github](https://github.com/status-im/status-mobile/commits/release/1.3.x).
#### Added
@@ -691,8 +813,8 @@ As always, we've also included a few nice fixes in this release. For the full ch
- Persistant wallet value
- Update to all text input, increasing pressable areas
- Improved seed phrase text input on small screens
- Easier to find user's public key for sharing (https://github.com/status-im/status-react/pull/10207#event-3163431514)
- Shortened universal links (https://github.com/status-im/status-react/issues/10083)
- Easier to find user's public key for sharing (https://github.com/status-im/status-mobile/pull/10207#event-3163431514)
- Shortened universal links (https://github.com/status-im/status-mobile/issues/10083)
## 1.2
@@ -737,7 +859,7 @@ With further improvements to Waku in the pipeline, Status becomes accessible to
Biggest changes:
- Status now support importing private key and seed phrase inside multiaccount!
(https://github.com/status-im/status-react/pull/10100)
(https://github.com/status-im/status-mobile/pull/10100)
- all chat dialogs moved to bottom sheet
- added "Mark all as read" option
- unread badge is changed for public chat
@@ -746,41 +868,41 @@ More detailed:
ENS name improvements:
- https://github.com/status-im/status-react/pull/9952 - fixes ENS to new registry
- https://github.com/status-im/status-react/pull/9997 - Check for empty public key (for ENS names)
- https://github.com/status-im/status-react/pull/10007 - improve ENS display in Public chats
- https://github.com/status-im/status-react/pull/10022 - fix crash on long ENS names
- https://github.com/status-im/status-mobile/pull/9952 - fixes ENS to new registry
- https://github.com/status-im/status-mobile/pull/9997 - Check for empty public key (for ENS names)
- https://github.com/status-im/status-mobile/pull/10007 - improve ENS display in Public chats
- https://github.com/status-im/status-mobile/pull/10022 - fix crash on long ENS names
General improvements:
- https://github.com/status-im/status-react/pull/10027 - deep link handling (rename get.status.im to join.status.im)
- https://github.com/status-im/status-react/pull/9940 - changed navigation on logout
- https://github.com/status-im/status-react/pull/9917 - added search to currencies and assets
- https://github.com/status-im/status-react/pull/9941 - improvement on snackbar by considering login time (less "Offline", "Connected" after login)
- https://github.com/status-im/status-react/pull/9898 - added qr code reader for scanning QR when add watch-only address
- https://github.com/status-im/status-react/pull/9882 - Respond to FaceID failure callback
- https://github.com/status-im/status-react/pull/9915 - Make bottom sheet height dynamical
- https://github.com/status-im/status-react/pull/9931 - 2 lines for user name on intro screen
- https://github.com/status-im/status-mobile/pull/10027 - deep link handling (rename get.status.im to join.status.im)
- https://github.com/status-im/status-mobile/pull/9940 - changed navigation on logout
- https://github.com/status-im/status-mobile/pull/9917 - added search to currencies and assets
- https://github.com/status-im/status-mobile/pull/9941 - improvement on snackbar by considering login time (less "Offline", "Connected" after login)
- https://github.com/status-im/status-mobile/pull/9898 - added qr code reader for scanning QR when add watch-only address
- https://github.com/status-im/status-mobile/pull/9882 - Respond to FaceID failure callback
- https://github.com/status-im/status-mobile/pull/9915 - Make bottom sheet height dynamical
- https://github.com/status-im/status-mobile/pull/9931 - 2 lines for user name on intro screen
Chat improvements:
- https://github.com/status-im/status-react/pull/10056 - added "Mark all as read" feature
- https://github.com/status-im/status-react/pull/9993, https://github.com/status-im/status-react/pull/9999 - better handling of ENS names / chat keys when starting new chat
- https://github.com/status-im/status-react/pull/10117 - reworked unread message indicator in public chats
- https://github.com/status-im/status-react/pull/9868 - all chat dialogs are moved to bottom sheets
- https://github.com/status-im/status-mobile/pull/10056 - added "Mark all as read" feature
- https://github.com/status-im/status-mobile/pull/9993, https://github.com/status-im/status-mobile/pull/9999 - better handling of ENS names / chat keys when starting new chat
- https://github.com/status-im/status-mobile/pull/10117 - reworked unread message indicator in public chats
- https://github.com/status-im/status-mobile/pull/9868 - all chat dialogs are moved to bottom sheets
Performance improvements:
- https://github.com/status-im/status-react/pull/9995 - Offload chat messages
- https://github.com/status-im/status-react/pull/10120 - Android app UI is slow after background
- https://github.com/status-im/status-mobile/pull/9995 - Offload chat messages
- https://github.com/status-im/status-mobile/pull/10120 - Android app UI is slow after background
Issues fixed:
- https://github.com/status-im/status-react/issues/10002
- https://github.com/status-im/status-react/issues/8797
- https://github.com/status-im/status-react/issues/6839
- https://github.com/status-im/status-react/issues/9754
- https://github.com/status-im/status-react/issues/10044
- https://github.com/status-im/status-react/issues/10041
- https://github.com/status-im/status-react/issues/9886
- https://github.com/status-im/status-mobile/issues/10002
- https://github.com/status-im/status-mobile/issues/8797
- https://github.com/status-im/status-mobile/issues/6839
- https://github.com/status-im/status-mobile/issues/9754
- https://github.com/status-im/status-mobile/issues/10044
- https://github.com/status-im/status-mobile/issues/10041
- https://github.com/status-im/status-mobile/issues/9886
## 1.0
@@ -831,7 +953,7 @@ Acolytec3
• Improvements to wallet transaction flow UI
• Sticker market and two initial sticker packs
• Choice of wallet to use when interacting with Dapps
• [Proper markdown support](https://github.com/status-im/status-react/pull/9409#issue-338045622)
• [Proper markdown support](https://github.com/status-im/status-mobile/pull/9409#issue-338045622)
• ENS username setting option for use in chat
• Improved chat intro screen and public chat list
• Updated chat command flow, with additional privacy layer to be compatible with multiaccount
@@ -847,7 +969,7 @@ Acolytec3
• Algorithm for deriving public chat key changed, performance. (andrey review: pubkey or 3 word name?, not sure if Algorithm for deriving pubkey can be changed)
• Storage of app state moved to Status-go—performance improvements in chat load times
• Browser privacy mode enabled by default, option removed (EIP1102)
• Updates to EIP1102 for compatibility (https://github.com/status-im/status-react/pull/9629)
• Updates to EIP1102 for compatibility (https://github.com/status-im/status-mobile/pull/9629)
• Protocol breaking changes: removed transit encoding in favor of protobuf, for better performance and interoperability with other languages
• Roughly 45% improvement in how quickly chats load
• Profile screen cleaned up
@@ -911,17 +1033,17 @@ To get involved, you can find our current bounty issues on Gitcoin [LINK].
- Moved `Browser privacy Mode` toggle to the browser screen as new preference setting
- `Fetch more messages` button now retrieves up to 30 days of history in public chats
- Long press a chat for more options; no more swiping
- Fewer messages rendered before a chat is scrolled for better performance ([8191](https://github.com/status-im/status-react/pull/8191))
- Using checksummed addresses in wallet (EIP55) ([8121](https://github.com/status-im/status-react/issues/8121) and [4959](https://github.com/status-im/status-react/issues/4959))
- Fewer messages rendered before a chat is scrolled for better performance ([8191](https://github.com/status-im/status-mobile/pull/8191))
- Using checksummed addresses in wallet (EIP55) ([8121](https://github.com/status-im/status-mobile/issues/8121) and [4959](https://github.com/status-im/status-mobile/issues/4959))
- Scanning QR code from a DApp does not cause redirect
**Fixed**
- Browser crash when incorrect domain entered ([8239](https://github.com/status-im/status-react/issues/8239))
- ENS registration bug ([8249](https://github.com/status-im/status-react/issues/8249))
- Wallet balance updates correctly after Tx received ([8107](https://github.com/status-im/status-react/issues/8107))
- Browser crash when incorrect domain entered ([8239](https://github.com/status-im/status-mobile/issues/8239))
- ENS registration bug ([8249](https://github.com/status-im/status-mobile/issues/8249))
- Wallet balance updates correctly after Tx received ([8107](https://github.com/status-im/status-mobile/issues/8107))
- Support for EIP1577/`contenthash` field for ENS
- Numeric validation for `send`/`receive` chat commands ([1442](https://github.com/status-im/status-react/issues/1442))
- Allow to select chat item below plus button ([7859](https://github.com/status-im/status-react/issues/7859))
- Numeric validation for `send`/`receive` chat commands ([1442](https://github.com/status-im/status-mobile/issues/1442))
- Allow to select chat item below plus button ([7859](https://github.com/status-im/status-mobile/issues/7859))
## 0.12.0
@@ -983,11 +1105,11 @@ Reminder: On April 1st, we'll experiment with eliminating all centralized, third
- Improved UI performance (https://www.pivotaltracker.com/story/show/164245989)
**Fixed**
- Universal link to public chat bug (https://github.com/status-im/status-react/issues/7549)
- Beta warning popup (https://github.com/status-im/status-react/issues/7771)
- DApp offline error (https://github.com/status-im/status-react/issues/7188#issuecomment-474308724)
- Bug with QR code scanner for custom bootnodes (https://github.com/status-im/status-react/pull/7782)
- Error message when entering an incorrect custom mailserver (https://github.com/status-im/status-react/issues/7752)
- Universal link to public chat bug (https://github.com/status-im/status-mobile/issues/7549)
- Beta warning popup (https://github.com/status-im/status-mobile/issues/7771)
- DApp offline error (https://github.com/status-im/status-mobile/issues/7188#issuecomment-474308724)
- Bug with QR code scanner for custom bootnodes (https://github.com/status-im/status-mobile/pull/7782)
- Error message when entering an incorrect custom mailserver (https://github.com/status-im/status-mobile/issues/7752)
## 0.10.1 - Hot Fix
@@ -1034,9 +1156,9 @@ And that concludes the most significant changes of this release! For more, check
- Minor tweaks to chat UI
**Fixed**
- Status now works on restricted [ports](https://github.com/status-im/status-react/pull/7382)
- Status now works on restricted [ports](https://github.com/status-im/status-mobile/pull/7382)
- Overlap on small screens during log-in
- False mailserver connection error [removed](https://github.com/status-im/status-react/issues/7531)
- False mailserver connection error [removed](https://github.com/status-im/status-mobile/issues/7531)
- Premature sending of contact requests on Profile > Send message
- DApps on same host (i.e. IPFS) no longer share user-granted permissions
@@ -1106,7 +1228,7 @@ For the full list of changes, see below.
_Notes to call out_
- Privacy mode by default instructions
- Breaking change: no PNs for old versions after next mobile release - https://github.com/status-im/status-react/pull/6893
- Breaking change: no PNs for old versions after next mobile release - https://github.com/status-im/status-mobile/pull/6893
- Setting up device pairing
@@ -1133,7 +1255,7 @@ Fixed
- Transaction history fixes
- Updating enabled tokens before navigating to wallet
[All changes](https://github.com/status-im/status-react/compare/release/0.9.31...release/0.9.32)
[All changes](https://github.com/status-im/status-mobile/compare/release/0.9.31...release/0.9.32)
## 0.9.31
@@ -1164,7 +1286,7 @@ Fixed
- Restored missing transaction error messages
- Granting profile access applies per DApp rather than per host
[All changes](https://github.com/status-im/status-react/compare/release/0.9.30...release/0.9.31)
[All changes](https://github.com/status-im/status-mobile/compare/release/0.9.30...release/0.9.31)
## 0.9.30
+1 -1
View File
@@ -1 +1 @@
1.18.0
1.25.0
+94 -165
View File
@@ -1,115 +1,75 @@
apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
import com.android.build.OutputFile
import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
/**
* The react.gradle file registers a task for each build variant:
* - bundlePrJsAndAssets
* - bundleDebugJsAndAssets
* - bundleReleaseJsAndAssets
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node", "--max-old-space-size=8192"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
/*
* This is the configuration block to customize your React Native Android app.
* By default you don't need to apply any configuration, just uncomment the lines you need.
*/
project.ext.react = [
nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"],
entryFile: "index.js",
/* NOTE: Hermes engine is required for Android 64-bit builds running on 64 devices,
* to guard against a hang in the UI thread after invoking status-go.
* Also a clean and rebuild is required when changing this. */
enableHermes: true,
/* Disable 'The first definition was here.' warnings */
hermesFlagsRelease: ["-w"],
bundleInPr: true,
inputExcludes: ["android/**", "ios/**", "react-native/**", "src/**", "test/**"]
]
react {
/* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '..'
// root = file("../")
// The folder where the react-native NPM package is. Default is ../node_modules/react-native
// reactNativeDir = file("../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
// codegenDir = file("../node_modules/@react-native/codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
// cliFile = file("../node_modules/react-native/cli.js")
// NOTE: Uncomment if building RN from a fork
// configurations.all {
// exclude group: 'com.facebook.react', module: 'react-native'
// }
/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
apply from: "../../node_modules/react-native/react.gradle"
/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
nodeExecutableAndArgs = ["node", "--max-old-space-size=16384" ]
//
// The command to run when bundling. By default is 'bundle'
// bundleCommand = "ram-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]
}
/**
* Run Proguard to shrink the Java bytecode in release builds.
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore.
* The preferred build flavor of JavaScriptCore (JSC)
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
@@ -121,12 +81,8 @@ def jscFlavor = 'org.webkit:android-jsc:+'
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);
def enableHermes = hermesEnabled.toBoolean();
/**
* Exclude google library so we can publish to external android stores
*/
def googleFree = project.env.get("GOOGLE_FREE", false)
def getCommitHash = { ->
if (project.hasProperty("commitHash")) {
@@ -152,10 +108,14 @@ def getVersionCode = { ->
def getVersionName = { ->
new ByteArrayOutputStream().withStream { stdOut ->
// TODO: probably not used, cleanup
if (project.hasProperty("releaseVersion")) {
return project.releaseVersion
}
version = new File('../VERSION').text
/* Necessary because Android Studio uses wrong PWD.
* Is actually absolute directory path of this file. */
def configDir = project.projectDir.toString()
version = new File(configDir + '/../../VERSION').text
return version.replaceAll("\\s","")
}
}
@@ -176,13 +136,16 @@ def getEnvOrConfig = { varName ->
}
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
namespace "im.status.ethereum"
defaultConfig {
applicationId "im.status.ethereum"
minSdkVersion rootProject.ext.minSdkVersion
@@ -199,6 +162,7 @@ android {
}
}
}
/**
* Arbitrary project metadata
* https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html
@@ -234,23 +198,6 @@ android {
jumboMode true
javaMaxHeapSize "8g"
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
/* Caution! In production, you need to generate your own keystore file.
* See: https://facebook.github.io/react-native/docs/signed-apk-android */
release {
/* environment variables take precedence over gradle.properties file */
storeFile file(getEnvOrConfig('KEYSTORE_PATH').replaceAll("~", System.properties['user.home']))
storePassword getEnvOrConfig('KEYSTORE_PASSWORD')
keyAlias getEnvOrConfig('KEYSTORE_ALIAS')
keyPassword getEnvOrConfig('KEYSTORE_KEY_PASSWORD')
}
}
splits {
abi {
reset()
@@ -259,20 +206,26 @@ android {
universalApk true
}
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
debuggable true
versionNameSuffix "-SNAPSHOT"
signingConfig signingConfigs.debug
resValue "string", "build_config_package", "im.status.ethereum"
signingConfig signingConfigs.debug
}
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
if (getEnvOrConfig('ANDROID_APK_SIGNED').toBoolean()) {
signingConfig signingConfigs.release
}
signingConfig null
}
pr {
initWith release
@@ -280,10 +233,11 @@ android {
versionNameSuffix ".pr"
debuggable false
matchingFallbacks = ["release"]
// necessary to make react-native-config's code generation work
resValue "string", "build_config_package", "im.status.ethereum"
// necessary to make react-native-config's code generation work
resValue "string", "build_config_package", "im.status.ethereum"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
@@ -299,6 +253,7 @@ android {
}
}
aaptOptions {
// disable PNG optimization as for some reason it cannot be trusted to provide deterministic output (see https://f-droid.org/en/docs/Reproducible_Builds/)
cruncherEnabled = false
@@ -310,56 +265,30 @@ android {
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
// TODO Uncomment once Flipper does not cause webview crashes in Debug mode
// debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
// exclude group:'com.facebook.flipper'
// }
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
prImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
if (googleFree) {
implementation(project(':react-native-device-info')) {
exclude group: 'com.google.firebase'
exclude group: 'com.google.android.gms'
exclude group: 'com.android.installreferrer'
}
}
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation("androidx.core:core-splashscreen:1.0.0")
// we don't use hermes for debug but we need its pom file for release builds
// https://github.com/status-im/status-mobile/pull/18675
implementation("com.facebook.react:hermes-android")
// FIXME: implementing both hermes & JSC increases bundle size by ~ 2MB
implementation(jscFlavor)
// react-native-screens
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
implementation 'androidx.multidex:multidex:2.0.1' // only needed if minSdkVersion is less than 21 (https://developer.android.com/studio/build/multidex)
implementation project(':react-native-dialogs')
// Force using exact RN version instead of relying on gradle dependency resolution
// https://docs.gradle.org/current/userguide/introduction_dependency_management.html#sec:dependency_resolution
// NOTE: Uncomment if building RN from a fork
//compile ("com.facebook.react:react-native:0.55.4") { force = true } // From node_modules
implementation("androidx.appcompat:appcompat:1.1.0-rc01")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02")
implementation("androidx.multidex:multidex:2.0.1") // required by status-mobile/android/app/src/main/java/im/status/ethereum/MainApplication.java
implementation project(':react-native-blur')
implementation project(':react-native-status')
implementation project(':react-native-status-keycard')
implementation 'com.github.status-im:function:0.0.1'
implementation 'com.facebook.fresco:fresco:2.2.0'
implementation 'com.facebook.fresco:animated-gif:2.2.0'
implementation("com.github.status-im:function:0.0.1")
implementation("com.facebook.fresco:fresco:2.5.0")
implementation("com.facebook.fresco:animated-gif:2.5.0")
implementation("com.squareup.okhttp3:okhttp-tls:4.9.2")
implementation("com.google.prefab:cli:2.0.0")
}
def getLocalNDKDir = { ->
def rootDir = project.rootDir
def localProperties = new File(rootDir, "local.properties")
+7 -2
View File
@@ -2,7 +2,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
<uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:usesCleartextTraffic="true" />
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:usesCleartextTraffic="true" >
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false" />
</application>
</manifest>
@@ -1,73 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
* directory of this source tree.
*/
package im.status.ethereum;
import android.content.Context;
import com.facebook.flipper.android.AndroidFlipperClient;
import com.facebook.flipper.android.utils.FlipperUtils;
import com.facebook.flipper.core.FlipperClient;
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
// import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
// import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.network.NetworkingModule;
import okhttp3.OkHttpClient;
public class ReactNativeFlipper {
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
if (FlipperUtils.shouldEnableFlipper(context)) {
final FlipperClient client = AndroidFlipperClient.getInstance(context);
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
client.addPlugin(new ReactFlipperPlugin());
client.addPlugin(new DatabasesFlipperPlugin(context));
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
client.addPlugin(CrashReporterPlugin.getInstance());
// TODO Uncomment once Flipper does not cause webview crashes in Debug mode
// NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
// NetworkingModule.setCustomClientBuilder(
// new NetworkingModule.CustomClientBuilder() {
// @Override
// public void apply(OkHttpClient.Builder builder) {
// builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
// }
// });
// client.addPlugin(networkFlipperPlugin);
client.start();
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
// Hence we run if after all native modules have been initialized
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
if (reactContext == null) {
reactInstanceManager.addReactInstanceEventListener(
new ReactInstanceManager.ReactInstanceEventListener() {
@Override
public void onReactContextInitialized(ReactContext reactContext) {
reactInstanceManager.removeReactInstanceEventListener(this);
reactContext.runOnNativeModulesQueueThread(
new Runnable() {
@Override
public void run() {
client.addPlugin(new FrescoFlipperPlugin());
}
});
}
});
} else {
client.addPlugin(new FrescoFlipperPlugin());
}
}
}
}
+16 -11
View File
@@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto"
package="im.status.ethereum">
android:installLocation="auto">
<!-- non-dangerous permissions -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
@@ -17,11 +16,11 @@
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
@@ -29,17 +28,23 @@
android:allowBackup="false"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme"
android:theme="@style/Theme.AppSplash"
android:name=".MainApplication"
android:largeHeap="true"
android:usesCleartextTraffic="true">
android:usesCleartextTraffic="true"
android:extractNativeLibs="true"
android:requestLegacyExternalStorage="true">
<!-- After upgrading Android Gradle Plugin to 4.2.0 and above we must get rid of `extractNativeLibs="true"`
and use`useLegacyPackaging` flag in our app's `build.gradle`-->
<meta-data android:name="commitHash" android:value="${commitHash}"/>
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.AppSplash"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
android:resizeableActivity="false"
android:launchMode="singleTask">
<intent-filter>
@@ -57,14 +62,14 @@
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="join.status.im" />
<data android:scheme="https" android:host="join.status.im" />
<data android:scheme="http" android:host="status.app" />
<data android:scheme="https" android:host="status.app" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="status-im" />
<data android:scheme="status-app" />
<data android:scheme="ethereum" />
</intent-filter>
</activity>
@@ -1,262 +0,0 @@
package im.status.ethereum;
import android.content.Context;
import android.annotation.TargetApi;
import androidx.annotation.Nullable;
import android.app.AlertDialog;
import android.app.ActivityManager;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Looper;
import android.preference.PreferenceManager;
import androidx.core.app.ActivityCompat;
import android.util.Log;
import android.view.WindowManager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.provider.Settings;
import android.os.Bundle;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import com.facebook.react.ReactFragmentActivity;
import com.reactnativenavigation.NavigationActivity;
import com.facebook.react.modules.core.PermissionListener;
import org.devio.rn.splashscreen.SplashScreen;
import java.util.Properties;
import im.status.ethereum.module.StatusThreadPoolExecutor;
import im.status.ethereum.MainApplication;
public class MainActivity extends NavigationActivity
implements ActivityCompat.OnRequestPermissionsResultCallback{
@Nullable private PermissionListener mPermissionListener;
private static void registerUncaughtExceptionHandler(final Context context) {
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(final Thread thread, final Throwable t) {
// High priority, so don't use StatusThreadPoolExecutor
new Thread() {
@Override
public void run() {
Looper.prepare();
new AlertDialog.Builder(context)
.setTitle("Error")
.setMessage(t.toString())
.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
dialog.dismiss();
defaultUncaughtExceptionHandler.uncaughtException(thread, t);
}
}).show();
Looper.loop();
}
}.start();
}
});
}
private ActivityManager getActivityManager() {
return (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
}
private ActivityManager.MemoryInfo getAvailableMemory(final ActivityManager activityManager) {
final ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
return memoryInfo;
}
protected void configureStatus() {
// Required because of crazy APN settings redirecting localhost (found in GB)
Properties properties = System.getProperties();
properties.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
properties.setProperty("https.nonProxyHosts", "localhost|127.0.0.1");
}
private Intent createNotificationSettingsIntent() {
final Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName());
} else {
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setData(Uri.parse("package:" + getPackageName()));
}
return intent;
}
private void tryToEmit(String eventName, WritableMap event) {
try {
((MainApplication) getApplication()).getReactNativeHost()
.getReactInstanceManager()
.getCurrentReactContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("url", event);
} catch(Exception e) {/* we expect NPE on first start, which is OK because we have a fallback */}
}
@Override
public void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
if (intent.getDataString() != null && intent.getData().getScheme().startsWith("app-settings")) {
startActivity(createNotificationSettingsIntent());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
case Configuration.UI_MODE_NIGHT_YES:
setTheme(R.style.DarkTheme);
break;
case Configuration.UI_MODE_NIGHT_NO:
setTheme(R.style.LightTheme);
break;
default:
setTheme(R.style.LightTheme);
}
// Make sure we get an Alert for every uncaught exceptions
registerUncaughtExceptionHandler(MainActivity.this);
// Report memory details for this application
final ActivityManager activityManager = getActivityManager();
Log.v("RNBootstrap", "Available system memory "+getAvailableMemory(activityManager).availMem + ", maximum usable application memory " + activityManager.getLargeMemoryClass()+"M");
setSecureFlag();
SplashScreen.show(this, true);
// NOTE: Try to not restore the state https://github.com/software-mansion/react-native-screens/issues/17
super.onCreate(null);
if (!shouldShowRootedNotification()) {
configureStatus();
} else {
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setMessage(getResources().getString(R.string.root_warning))
.setPositiveButton(getResources().getString(R.string.root_okay), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
rejectRootedNotification();
dialog.dismiss();
configureStatus();
}
})
.setNegativeButton(getResources().getString(R.string.root_cancel), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
MainActivity.this.finishAffinity();
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
dialog.dismiss();
MainActivity.this.finishAffinity();
}
})
.create();
dialog.show();
}
Runnable r = new Runnable() {
@Override
public void run() {
System.loadLibrary("status-logs");
// when app is started but the Activity has been destroyed, the deep linking url event is
// not emitted when coming back to foreground. This is a workaround. If the problem is
// resolved in react-native this code should be removed
if (getIntent().getData() != null) {
WritableMap event = Arguments.createMap();
event.putString("url", getIntent().getDataString());
// on first start emit will (silently) fail, but the regular deep linking handler will work
tryToEmit("url", event);
}
}
};
StatusThreadPoolExecutor.getInstance().execute(r);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Intent intent = new Intent("onConfigurationChanged");
intent.putExtra("newConfig", newConfig);
this.sendBroadcast(intent);
}
private static final String REJECTED_ROOTED_NOTIFICATION = "rejectedRootedNotification";
private static final Integer FREQUENCY_OF_REMINDER_IN_PERCENT = 5;
private boolean shouldShowRootedNotification() {
if (RootUtil.isDeviceRooted() && BuildConfig.ENABLE_ROOT_ALERT == "1") {
if (userRejectedRootedNotification()) {
return ((Math.random() * 100) < FREQUENCY_OF_REMINDER_IN_PERCENT);
} else return true;
} else {
return false;
}
}
private boolean userRejectedRootedNotification() {
SharedPreferences preferences = getPreferences(0);
return preferences.getBoolean(REJECTED_ROOTED_NOTIFICATION, false);
}
private void rejectRootedNotification() {
SharedPreferences preferences = getPreferences(0);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(REJECTED_ROOTED_NOTIFICATION, true);
editor.commit();
}
private void setSecureFlag() {
final SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
final boolean setSecure = sharedPrefs.getBoolean("BLANK_PREVIEW", false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && setSecure) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
}
@TargetApi(Build.VERSION_CODES.M)
public void requestPermissions(String[] permissions, int requestCode, PermissionListener listener) {
mPermissionListener = listener;
requestPermissions(permissions, requestCode);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (mPermissionListener != null && mPermissionListener.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
mPermissionListener = null;
}
}
}
@@ -0,0 +1,236 @@
package im.status.ethereum
import android.annotation.TargetApi
import android.app.ActivityManager
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.PackageManager
import android.content.res.Configuration
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.preference.PreferenceManager
import android.provider.Settings
import android.util.Log
import android.view.WindowManager
import androidx.annotation.Nullable
import androidx.core.app.ActivityCompat
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.bridge.Arguments
import com.facebook.react.bridge.WritableMap
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint
import com.facebook.react.defaults.DefaultReactActivityDelegate
import com.facebook.react.modules.core.DeviceEventManagerModule
import com.facebook.react.modules.core.PermissionListener
import com.reactnativenavigation.NavigationActivity
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView
import im.status.ethereum.MainApplication
import im.status.ethereum.module.StatusThreadPoolExecutor
import java.util.Properties
class MainActivity : NavigationActivity(), ActivityCompat.OnRequestPermissionsResultCallback {
@Nullable
private var mPermissionListener: PermissionListener? = null
private var keepSplash = true
private val SPLASH_DELAY = 3200
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
protected fun getMainComponentName(): String {
return "StatusIm"
}
private fun registerUncaughtExceptionHandler(context: Context) {
val defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
// High priority, so don't use StatusThreadPoolExecutor
Thread.setDefaultUncaughtExceptionHandler { thread, t ->
Thread {
Looper.prepare()
AlertDialog.Builder(context)
.setTitle("Error")
.setMessage(t.toString())
.setNegativeButton("Exit") { dialog, id ->
dialog.dismiss()
defaultUncaughtExceptionHandler.uncaughtException(thread, t)
}.show()
Looper.loop()
}.start()
}
}
private fun getActivityManager(): ActivityManager {
return getSystemService(ACTIVITY_SERVICE) as ActivityManager
}
private fun getAvailableMemory(activityManager: ActivityManager): ActivityManager.MemoryInfo {
val memoryInfo = ActivityManager.MemoryInfo()
activityManager.getMemoryInfo(memoryInfo)
return memoryInfo
}
protected fun configureStatus() {
// Required because of crazy APN settings redirecting localhost (found in GB)
val properties = System.getProperties()
properties.setProperty("http.nonProxyHosts", "localhost|127.0.0.1")
properties.setProperty("https.nonProxyHosts", "localhost|127.0.0.1")
}
private fun createNotificationSettingsIntent(): Intent {
val intent = Intent()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
} else {
intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
intent.addCategory(Intent.CATEGORY_DEFAULT)
intent.data = Uri.parse("package:$packageName")
}
return intent
}
private fun tryToEmit(eventName: String, event: WritableMap) {
try {
(getApplication() as MainApplication).getReactNativeHost()
.getReactInstanceManager()
.getCurrentReactContext()
?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
?.emit("url", event)
} catch (e: Exception) { // we expect NPE on first start, which is OK because we have a fallback
}
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
if (intent.dataString != null && intent.data!!.scheme!!.startsWith("app-settings")) {
startActivity(createNotificationSettingsIntent())
}
}
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen();
setTheme(R.style.DarkTheme)
// Make sure we get an Alert for every uncaught exceptions
registerUncaughtExceptionHandler(this)
// Report memory details for this application
val activityManager = getActivityManager()
Log.v("RNBootstrap", "Available system memory " + getAvailableMemory(activityManager).availMem + ", maximum usable application memory " + activityManager.largeMemoryClass + "M")
setSecureFlag()
// NOTE: Try to not restore the state https://github.com/software-mansion/react-native-screens/issues/17
super.onCreate(null)
if (!shouldShowRootedNotification()) {
configureStatus()
} else {
val dialog = AlertDialog.Builder(this)
.setMessage(resources.getString(R.string.root_warning))
.setPositiveButton(resources.getString(R.string.root_okay)) { dialog, which ->
rejectRootedNotification()
dialog.dismiss()
configureStatus()
}
.setNegativeButton(resources.getString(R.string.root_cancel)) { dialog, which ->
dialog.dismiss()
finishAffinity()
}
.setOnCancelListener {
it.dismiss()
finishAffinity()
}
.create()
dialog.show()
}
val r = Runnable {
System.loadLibrary("status-logs")
// when app is started but the Activity has been destroyed, the deep linking url event is
// not emitted when coming back to foreground. This is a workaround. If the problem is
// resolved in react-native this code should be removed
if (intent.data != null) {
val event = Arguments.createMap()
event.putString("url", intent.dataString)
// on first start emit will (silently) fail, but the regular deep linking handler will work
tryToEmit("url", event)
}
}
splashScreen.setKeepOnScreenCondition { keepSplash }
val handler = Handler()
handler.postDelayed({ keepSplash = false }, SPLASH_DELAY.toLong())
StatusThreadPoolExecutor.getInstance().execute(r)
}
override fun onDestroy() {
super.onDestroy()
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val intent = Intent("onConfigurationChanged")
intent.putExtra("newConfig", newConfig)
sendBroadcast(intent)
}
private val REJECTED_ROOTED_NOTIFICATION = "rejectedRootedNotification"
private val FREQUENCY_OF_REMINDER_IN_PERCENT = 5
private fun shouldShowRootedNotification(): Boolean {
if (RootUtil.isDeviceRooted() && BuildConfig.ENABLE_ROOT_ALERT == "1") {
return if (userRejectedRootedNotification()) {
(Math.random() * 100) < FREQUENCY_OF_REMINDER_IN_PERCENT
} else true
} else {
return false
}
}
private fun userRejectedRootedNotification(): Boolean {
val preferences = getPreferences(0)
return preferences.getBoolean(REJECTED_ROOTED_NOTIFICATION, false)
}
private fun rejectRootedNotification() {
val preferences = getPreferences(0)
val editor = preferences.edit()
editor.putBoolean(REJECTED_ROOTED_NOTIFICATION, true)
editor.commit()
}
private fun setSecureFlag() {
val sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this)
val setSecure = sharedPrefs.getBoolean("BLANK_PREVIEW", false)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && setSecure) {
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
}
@TargetApi(Build.VERSION_CODES.M)
override fun requestPermissions(permissions: Array<String>, requestCode: Int, listener: PermissionListener) {
mPermissionListener = listener
super.requestPermissions(permissions, requestCode)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
if (mPermissionListener != null && mPermissionListener!!.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
mPermissionListener = null
}
}
}
@@ -1,93 +0,0 @@
package im.status.ethereum;
import androidx.multidex.MultiDexApplication;
import android.util.Log;
import android.content.Context;
import android.webkit.WebView;
import java.lang.reflect.InvocationTargetException;
import com.facebook.react.PackageList;
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
import com.facebook.react.ReactApplication;
import cl.json.RNSharePackage;
import com.facebook.react.ReactNativeHost;
import com.reactnativenavigation.NavigationApplication;
import com.reactnativenavigation.react.NavigationReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactInstanceManager;
import java.util.List;
import im.status.ethereum.keycard.RNStatusKeycardPackage;
import im.status.ethereum.module.StatusPackage;
import im.status.ethereum.pushnotifications.PushNotificationPackage;
public class MainApplication extends NavigationApplication {
private final ReactNativeHost mReactNativeHost = new NavigationReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(statusPackage);
packages.add(new ReactNativeDialogsPackage());
packages.add(new RNStatusKeycardPackage());
packages.add(new PushNotificationPackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(
Context context, ReactInstanceManager reactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/*
We use reflection here to pick up the class that initializes Flipper,
since Flipper library is not available in release mode
*/
Class<?> aClass = Class.forName("im.status.ethereum.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
@@ -0,0 +1,61 @@
package im.status.ethereum
import android.webkit.WebView
import androidx.multidex.MultiDexApplication
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.bridge.JSIModulePackage
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint
import com.facebook.react.modules.network.OkHttpClientProvider
import com.reactnativenavigation.NavigationApplication
import com.reactnativenavigation.react.NavigationReactNativeHost
import cl.json.RNSharePackage
import com.reactnativecommunity.blurview.BlurViewPackage
import im.status.ethereum.keycard.RNStatusKeycardPackage
import im.status.ethereum.module.StatusPackage
import im.status.ethereum.pushnotifications.PushNotificationPackage
import im.status.ethereum.StatusOkHttpClientFactory
class MainApplication : NavigationApplication() {
private val mReactNativeHost = object : NavigationReactNativeHost(this) {
override fun getUseDeveloperSupport(): Boolean {
return BuildConfig.DEBUG
}
override fun getPackages(): List<ReactPackage> {
val statusPackage = StatusPackage(RootUtil.isDeviceRooted())
val packages = PackageList(this).getPackages()
packages.add(statusPackage)
packages.add(RNStatusKeycardPackage())
packages.add(PushNotificationPackage())
packages.add(BlurViewPackage())
return packages
}
override fun getJSMainModuleName(): String = "index"
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
}
override fun getReactNativeHost(): ReactNativeHost {
return mReactNativeHost
}
override fun onCreate() {
super.onCreate()
OkHttpClientProvider.setOkHttpClientFactory(StatusOkHttpClientFactory())
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1")
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
DefaultNewArchitectureEntryPoint.load()
}
}
}
@@ -0,0 +1,88 @@
package im.status.ethereum
import android.util.Log
import com.facebook.react.modules.network.OkHttpClientFactory
import com.facebook.react.modules.network.OkHttpClientProvider
import okhttp3.OkHttpClient
import okhttp3.tls.HandshakeCertificates
import java.io.ByteArrayInputStream
import java.lang.RuntimeException
import java.lang.reflect.Field
import java.lang.reflect.Method
import java.security.cert.CertificateFactory
import java.security.cert.X509Certificate
import im.status.ethereum.module.StatusPackage
class StatusOkHttpClientFactory : OkHttpClientFactory {
companion object {
private const val TAG = "StatusOkHttpClientFactory"
private const val SLEEP_DURATION = 500L // milliseconds
}
override fun createNewNetworkModuleClient(): OkHttpClient? {
val certPem = getCertificatePem().takeIf { it.isNotEmpty() }
?: return logAndReturnNull("Certificate is empty, cannot create OkHttpClient without a valid certificate")
val cert = try {
induceSleep()
// Convert PEM certificate string to X509Certificate object
CertificateFactory.getInstance("X.509")
.generateCertificate(ByteArrayInputStream(certPem.toByteArray())) as? X509Certificate
?: return logAndReturnNull("Certificate could not be parsed as non-null")
} catch (e: Exception) {
return logAndReturnNull("Could not parse certificate", e)
}
val clientCertificates = try {
induceSleep()
// Create HandshakeCertificates object with our certificate
HandshakeCertificates.Builder()
.addPlatformTrustedCertificates()
.addTrustedCertificate(cert)
.build()
} catch (e: Exception) {
return logAndReturnNull("Could not build HandshakeCertificates", e)
}
return try {
OkHttpClientProvider.createClientBuilder()
.sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager)
.build()
} catch (e: Exception) {
logAndReturnNull("Could not create OkHttpClient", e)
}
}
private fun getCertificatePem(): String {
return try {
// Create OkHttpClient with custom SSL socket factory and trust manager
StatusPackage.getImageTLSCert().takeIf { !it.isNullOrBlank() }
?: logAndReturnEmpty("Certificate PEM string is null or empty")
} catch (e: Exception) {
logAndReturnEmpty("Could not getImageTLSCert", e)
}
}
private fun induceSleep() {
try {
// induce half second sleep because sometimes a cert is not immediately available
// TODO : remove sleep if App no longer crashes on Android 10 devices with
// java.lang.RuntimeException: Could not invoke WebSocketModule.connect
Thread.sleep(SLEEP_DURATION)
} catch (e: InterruptedException) {
Log.e(TAG, "Sleep interrupted", e)
}
}
private fun logAndReturnNull(message: String, e: Exception? = null): Nothing? {
Log.e(TAG, message, e)
return null
}
private fun logAndReturnEmpty(message: String, e: Exception? = null): String {
Log.e(TAG, message, e)
return ""
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@@ -1,16 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/backgroundColor">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:scaleType="fitCenter"
android:src="@drawable/launch_logo"/>
</FrameLayout>
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
app:lottie_rawRes="@raw/launching_animation"
app:lottie_autoPlay="true"
app:lottie_loop="true"
/>
</FrameLayout>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="alert_background">#141414</color>
<color name="alert_text">#ffffff</color>
</resources>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="alert_background">#ffffff</color>
<color name="alert_text">#000000</color>
<color name="splash_background">#09101C</color>
<color name="splash_status_bar_color">#ffffff</color>
</resources>
@@ -0,0 +1,13 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.AppSplash" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/splash_background</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/splash_logo</item>
<item name="windowSplashScreenAnimationDuration">1000</item>
<!-- Status bar and Nav bar configs -->
<item name="android:statusBarColor" tools:targetApi="l">@color/splash_background</item>
<item name="android:windowLightStatusBar">false</item>
<item name="postSplashScreenTheme">@style/DarkTheme</item>
</style>
</resources>
@@ -8,6 +8,7 @@
<item name="android:forceDarkAllowed">true</item>
<item name="android:windowTranslucentStatus">false</item>
<item name="android:statusBarColor">?attr/backgroundColor</item>
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
</style>
<style name="LightTheme" parent="AppTheme">
@@ -21,4 +22,10 @@
<item name="backgroundColor">#000000</item>
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="AlertDialogTheme" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="android:textColor">@color/alert_text</item>
<item name="android:textColorPrimary">@color/alert_text</item>
<item name="android:background">@color/alert_background</item>
</style>
</resources>
+2
View File
@@ -3,5 +3,7 @@
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
<uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
</manifest>
+3 -1
View File
@@ -3,5 +3,7 @@
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
<uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
</manifest>
</manifest>
+19 -24
View File
@@ -4,26 +4,30 @@
* Project-wide gradle configuration properties for use by all modules
*/
ext {
RNNKotlinVersion = "1.4.31"
// kotlin_version is needed for react-native-camera-kit library
kotlin_version = project.kotlinPluginVersion
RNNKotlinVersion = project.kotlinPluginVersion
RNGH_kotlinVersion = project.kotlinPluginVersion
buildToolsVersion = project.buildToolsVersion
minSdkVersion = Integer.valueOf(project.minSdkVersion)
compileSdkVersion = Integer.valueOf(project.compileSdkVersion)
targetSdkVersion = Integer.valueOf(project.targetSdkVersion)
supportLibVersion = project.supportLibVersion
gradlePluginVersion = project.gradlePluginVersion
kotlinVersion = project.kotlinPluginVersion
ndkVersion = "25.2.9519653"
}
buildscript {
repositories {
flatDir { dirs "libs", "${rootDir}/app/libs" }
google()
jcenter()
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
// WARNING: Do not place your application dependencies here!
// They belong in the individual module build.gradle files.
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.ext.kotlinPluginVersion}"
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
}
}
@@ -44,27 +48,18 @@ subprojects {
allprojects {
beforeEvaluate {
if (System.env.STATUS_GO_ANDROID_LIBDIR == null || System.env.STATUS_GO_ANDROID_LIBDIR == "") {
throw new GradleException('STATUS_GO_ANDROID_LIBDIR environment variable is not valid!')
}
if (System.env.STATUS_GO_ANDROID_LIBDIR == null || System.env.STATUS_GO_ANDROID_LIBDIR == "") {
throw new GradleException('STATUS_GO_ANDROID_LIBDIR environment variable is not valid!')
}
}
repositories {
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
jcenter()
// for geth, function, and status-go
// Android JSC is installed from npm
maven { url("$rootDir/../node_modules/jsc-android/dist") }
// For geth, function, and status-go
flatDir { dirs "libs", System.env.STATUS_GO_ANDROID_LIBDIR }
maven { url "https://www.jitpack.io" }
google()
mavenCentral()
maven { url 'https://mvnrepository.com/artifact/com.github.gundy/semver4j'}
}
}
+20 -12
View File
@@ -21,14 +21,14 @@
# $keytool -genkey -v -keystore ./status-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias status
# Version requirements used throughout the Gradle scripts
kotlinVersion=1.3.50
minSdkVersion=23
compileSdkVersion=30
targetSdkVersion=30
buildToolsVersion=31.0.0
minSdkVersion=24
compileSdkVersion=33
targetSdkVersion=33
buildToolsVersion=33.0.0
supportLibVersion=28.0.0
# This should match version from nix/mobile/android/maven-and-npm-deps/maven/default.nix
gradlePluginVersion=3.5.4
# This should match version from nix/pkgs/aapt2/default.nix
gradlePluginVersion=7.4.2
kotlinPluginVersion=1.9.0
android.useAndroidX=true
android.enableJetifier=true
@@ -41,14 +41,22 @@ KEYSTORE_KEY_PASSWORD=password
# By default we build a mostly universal APK
ANDROID_ABI_SPLIT=false
# Some platforms are excluded though
ANDROID_ABI_INCLUDE=armeabi-v7a;arm64-v8a;x86
# F-Droid builds need to be unsigned
ANDROID_APK_SIGNED=true
ANDROID_ABI_INCLUDE=armeabi-v7a;arm64-v8a;x86;x86_64
org.gradle.jvmargs=-Xmx8704M
versionCode=9999
commitHash=unknown
# Flipper
FLIPPER_VERSION=0.54.0
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
# https://github.com/status-im/status-mobile/issues/18493
hermesEnabled=false
+3 -2
View File
@@ -12,9 +12,10 @@ apply from: file("../node_modules/@react-native-community/cli-platform-android/n
include ':react-native-nfc-manager'
project(':react-native-nfc-manager').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-nfc-manager/android')
include ':app'
include ':react-native-dialogs'
project(':react-native-dialogs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-dialogs/android')
include ':react-native-status'
project(':react-native-status').projectDir = new File(rootProject.projectDir, '../modules/react-native-status/android')
include ':react-native-status-keycard'
project(':react-native-status-keycard').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-status-keycard/android')
include ':react-native-blur'
project(':react-native-blur').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/blur/android')
includeBuild('../node_modules/@react-native/gradle-plugin')
+1 -1
View File
@@ -1,4 +1,4 @@
{
"name": "StatusIm",
"displayName": "StatusIm"
}
}
+19
View File
@@ -0,0 +1,19 @@
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: ['react-native-reanimated/plugin', '@babel/plugin-transform-named-capturing-groups-regex'],
env: {
test: {
presets: [
'@babel/preset-react',
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
},
},
};
+38
View File
@@ -0,0 +1,38 @@
{
"variables": {
"module_name%": "status_nodejs_addon",
"module_path%": "./lib/binding/"
},
"targets": [{
"target_name": "<(module_name)",
"sources": [
"./modules/react-native-status/nodejs/status.cpp"
],
"xcode_settings": {
"MACOSX_DEPLOYMENT_TARGET": "10.7"
},
"libraries": [
"<!(pwd)/result/libstatus.a"
],
"conditions": [
["OS=='mac'", {
"libraries": [
"-framework IOKit",
"-framework CoreFoundation",
"-framework CoreServices",
"-framework Security"
]
}]
]
}, {
"target_name": "action_after_build",
"type": "none",
"dependencies": ["<(module_name)"],
"copies": [
{
"files": [ "<(PRODUCT_DIR)/<(module_name).node" ],
"destination": "<(module_path)"
}
]
}]
}
+31 -68
View File
@@ -1,7 +1,11 @@
library 'status-jenkins-lib@v1.3.3'
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
pipeline {
agent { label 'linux' }
agent { label 'linux && x86_64 && nix-2.14' }
options {
timestamps()
@@ -14,7 +18,11 @@ pipeline {
artifactNumToKeepStr: '10',
))
/* Allows combined build to copy */
copyArtifactPermission('/status-react/*')
copyArtifactPermission('/status-mobile/*')
/* Abort old PR builds. */
disableConcurrentBuilds(
abortPrevious: isPRBuild
)
}
parameters {
@@ -29,59 +37,29 @@ pipeline {
LANG = "en_US.UTF-8"
LC_ALL = "en_US.UTF-8"
LANGUAGE = "en_US.UTF-8"
TARGET = 'android'
TARGET = "android${utils.isE2EBuild() ? "-e2e" : ""}"
BUILD_ENV = 'prod'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
FASTLANE_DISABLE_COLORS = 1
/* coverage report identification */
COVERALLS_SERVICE_NAME = "jenkins"
COVERALLS_SERVICE_JOB_ID = "${JOB_NAME}#${BUILD_NUMBER}"
}
stages {
stage('Prep') {
steps {
script {
btype = utils.getBuildType()
print "Running ${btype} build!"
jenkins.abortPreviousRunningBuilds()
/* Cleanup and Prep */
commonPrep(btype)
utils.symlinkEnv()
println("Build Number: ${utils.genBuildNumber()}")
}
}
}
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
steps {
script {
/* We want the build result to be uploaded */
catchError(
message: 'Linting check failed!',
buildResult: 'FAILURE',
stageResult: 'FAILURE'
) {
sh 'make lint'
}
}
}
}
stage('Tests') {
steps {
script {
sh 'make test'
}
}
}
} }
stage('Build') { stages {
stage('Bundle') {
steps {
script { apks = android.bundle() }
}
}
} }
stage('Bundle') {
steps {
script { apks = android.bundle() }
}
}
stage('Sign') {
steps {
script { apks = android.sign(apks) }
}
}
stage('Parallel Upload') {
@@ -92,37 +70,22 @@ pipeline {
} }
}
stage('Upload') {
steps {
script {
def urls = apks.collect { s3.uploadArtifact(it) }
/* return only the universal APK */
if (urls.size() > 1) {
env.PKG_URL = urls.find { it.contains('universal') }
} else { /* if no universal is available pick first */
env.PKG_URL = urls.first()
}
jenkins.setBuildDesc(APK: env.PKG_URL)
/* e2e builds get tested in SauceLabs */
if (utils.isE2EBuild()) {
env.SAUCE_URL = android.uploadToSauceLabs()
}
if (utils.isNightlyBuild()) {
env.DIAWI_URL = android.uploadToDiawi()
}
steps { script {
def urls = apks.collect { s3.uploadArtifact(it) }
if (urls.size() > 1) { /* Return only the universal APK. */
env.PKG_URL = urls.find { it.contains('universal') }
} else { /* If no universal is available pick first. */
env.PKG_URL = urls.first()
}
}
jenkins.setBuildDesc(APK: env.PKG_URL)
} }
}
}
}
stage('Cleanup') {
steps {
sh 'make purge'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
always { sh 'make _fix-node-perms' }
always { sh 'make purge' }
}
}
+13 -25
View File
@@ -1,4 +1,5 @@
library 'status-jenkins-lib@v1.3.3'
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
@@ -17,7 +18,7 @@ pipeline {
}
/* WARNING: Defining parameters here with the ?: trick causes them to remember last value. */
parameters {
parameters {
choice(
name: 'BUILD_TYPE',
description: 'Makefile target to build. Optional Parameter.',
@@ -33,7 +34,7 @@ pipeline {
stages {
stage('Prep') {
steps { script {
println "Current JOB: ${env.JOB_NAME}"
println("Current JOB: ${env.JOB_NAME}")
/* just for a shorter access */
btype = utils.getBuildType()
} }
@@ -41,13 +42,13 @@ pipeline {
stage('Build') {
parallel {
stage('iOS') { steps { script {
ios = jenkins.Build('status-react/platforms/ios')
ios = jenkins.Build('status-mobile/platforms/ios')
} } }
stage('Android') { steps { script {
apk = jenkins.Build('status-react/platforms/android')
apk = jenkins.Build('status-mobile/platforms/android')
} } }
stage('Android e2e') { steps { script {
apke2e = jenkins.Build('status-react/platforms/android-e2e')
stage('Tests') { steps { script {
jenkins.Build('status-mobile/platforms/tests')
} } }
}
}
@@ -55,9 +56,7 @@ pipeline {
steps { script {
sh('rm -f pkg/*')
jenkins.copyArts(ios)
//jenkins.copyArts(iose2e)
jenkins.copyArts(apk)
jenkins.copyArts(apke2e)
sha = "pkg/${utils.pkgFilename(ext: 'sha256')}"
dir('pkg') {
/* generate sha256 checksums for upload */
@@ -71,9 +70,9 @@ pipeline {
/* object for easier URLs handling */
urls = [
/* mobile */
Apk: utils.pkgUrl(apk), Apke2e: utils.pkgUrl(apke2e),
iOS: utils.pkgUrl(ios), /*iOSe2e: utils.pkgUrl(iose2e),*/
Diawi: utils.utils.getEnv(ios, 'DIAWI_URL'),
Apk: utils.pkgUrl(apk),
iOS: utils.pkgUrl(ios),
Diawi: utils.getEnv(ios, 'DIAWI_URL'),
/* upload the sha256 checksums file too */
SHA: s3.uploadArtifact(sha),
]
@@ -91,22 +90,11 @@ pipeline {
build(job: 'website/status.im', wait: false);
break;
case 'release':
github.publishReleaseFiles(repo: 'status-react');
github.publishReleaseFiles(repo: 'status-mobile');
break;
}
} }
}
stage('Run e2e') {
when { expression { btype == 'nightly' && params.PUBLISH } }
steps { script {
e2eApk = utils.getEnv(apke2e, 'SAUCE_URL')
build(
job: 'end-to-end-tests/status-app-nightly',
parameters: [string(name: 'APK_NAME', value: e2eApk)],
wait: false
)
} }
}
}
}
@@ -126,7 +114,7 @@ def List genChoices(String previousChoice, List defaultChoices) {
* - A user explicitly specified a value
* Since release builds create and re-create GitHub drafts every time. */
def Boolean getPublishDefault(Boolean previousValue) {
if (env.JOB_NAME.startsWith('status-react/release')) { return true }
if (env.JOB_NAME.startsWith('status-mobile/release')) { return true }
if (previousValue != null) { return previousValue }
return false
}
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
triggers {
// Nightly at 2am
cron 'H 2 * * *'
}
parameters {
string(
name: 'BRANCH',
description: 'Name of the branch to checkout and build.',
defaultValue: 'develop',
)
}
options {
timestamps()
disableConcurrentBuilds()
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '30',
))
}
stages {
stage('Build') {
steps {
script {
apk_build = jenkins.Build('status-mobile/platforms/android-e2e')
apk_build_number = apk_build.getNumber().toString()
}
}
}
stage('Run e2e') {
steps {
build(
job: 'status-mobile/e2e/status-app-nightly',
parameters: [
string(name: 'APK_BUILD_NUMBER', value: apk_build_number),
string(name: 'BRANCH', value: env.BRANCH),
]
)
}
}
}
}
+32 -64
View File
@@ -1,7 +1,11 @@
library 'status-jenkins-lib@v1.3.3'
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
pipeline {
agent { label 'macos && x86_64 && xcode-12.5' }
agent { label 'macos && arm64 && nix-2.14 && xcode-15.1' }
parameters {
string(
@@ -22,7 +26,11 @@ pipeline {
artifactNumToKeepStr: '10',
))
/* Allows combined build to copy */
copyArtifactPermission('/status-react/*')
copyArtifactPermission('/status-mobile/*')
/* Abort old PR builds. */
disableConcurrentBuilds(
abortPrevious: isPRBuild
)
}
environment {
@@ -41,51 +49,24 @@ pipeline {
stage('Prep') {
steps {
script {
btype = utils.getBuildType()
print "Running ${btype} build!"
jenkins.abortPreviousRunningBuilds()
/* Cleanup and Prep */
commonPrep(btype)
utils.symlinkEnv()
println("Build Number: ${utils.genBuildNumber()}")
}
}
}
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
steps {
script {
/* We want the build result to be uploaded */
catchError(
message: 'Linting check failed!',
buildResult: 'FAILURE',
stageResult: 'FAILURE'
) {
sh 'make lint'
}
}
}
}
stage('Tests') {
steps {
script {
sh 'make test'
}
}
}
} }
stage('Build') { stages {
stage('JSBundle') {
steps {
script { ios.jsbundle() }
}
}
stage('Bundle') {
steps {
script { api = ios.bundle() }
}
}
} }
stage('JSBundle') {
steps {
script { ios.jsbundle() }
}
}
stage('Bundle') {
steps {
script { api = ios.bundle() }
}
post {
failure {
archiveArtifacts 'ios/logs/*'
}
}
}
stage('Parallel Upload') {
@@ -96,31 +77,18 @@ pipeline {
}
}
stage('Upload') {
steps {
script {
env.PKG_URL = s3.uploadArtifact(api)
jenkins.setBuildDesc(IPA: env.PKG_URL)
/* e2e builds get tested in SauceLabs */
if (utils.isE2EBuild()) {
env.SAUCE_URL = ios.uploadToSauceLabs()
} else {
env.DIAWI_URL = ios.uploadToDiawi()
}
}
}
steps { script {
env.DIAWI_URL = ios.uploadToDiawi()
env.PKG_URL = env.DIAWI_URL
jenkins.setBuildDesc(IPA: env.PKG_URL)
} }
}
}
}
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make purge'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
always { sh 'make _fix-node-perms' }
always { sh 'make purge' }
}
}
-116
View File
@@ -1,116 +0,0 @@
library 'status-jenkins-lib@v1.3.3'
pipeline {
agent { label params.AGENT_LABEL }
parameters {
string(
name: 'NIX_CACHE_HOST',
description: 'FQDN of Nix binary cache host.',
defaultValue: params.NIX_CACHE_HOST ?: 'cache-01.do-ams3.nix.ci.statusim.net'
)
string(
name: 'NIX_CACHE_USER',
description: 'Username for Nix binary cache host.',
defaultValue: params.NIX_CACHE_USER ?: 'nix-cache'
)
}
environment {
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* we source .bash_profile to be able to use nix-store */
NIX_SSHOPTS = "-o StrictHostKeyChecking=no source .profile;"
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
}
options {
timestamps()
disableConcurrentBuilds()
/* Prevent Jenkins jobs from running forever */
timeout(time: 300, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '20',
daysToKeepStr: '30',
))
}
stages {
stage('Setup') {
steps { script {
nix.shell('nix-env -i openssh', sandbox: false, pure: false)
/* some build targets don't build on MacOS */
uname = sh(script: 'uname', returnStdout: true)
} }
}
stage('Build status-go') {
steps { script {
def platforms = ['mobile.android', 'mobile.ios']
if (uname != "Darwin") {
platforms.removeAll { it == "ios" }
}
platforms.each { os ->
nix.build(
attr: "targets.status-go.${os}.buildInputs",
sandbox: false,
link: false
)
}
} }
}
stage('Build android jsbundle') {
steps { script {
/* build/fetch things required to produce a js-bundle for android
* (e.g. maven and node repos) */
nix.build(
attr: 'targets.mobile.android.jsbundle',
sandbox: false,
pure: false,
link: false
)
} }
}
stage('Build android deps') {
steps { script {
/* build/fetch things required to build jsbundle and android */
nix.build(
attr: 'targets.mobile.android.release.buildInputs',
sandbox: false,
pure: false,
link: false
)
} }
}
stage('Build nix shell deps') {
steps { script {
/* build/fetch things required to instantiate shell.nix for TARGET=all */
nix.build(
attr: 'shells.default.buildInputs',
sandbox: false,
link: false
)
} }
}
stage('Upload') {
steps { script {
sshagent(credentials: ['nix-cache-ssh']) {
nix.shell("""
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
-not -name '*.links' -and -not -name '*-status-react-*' \
| xargs nix-copy-closure -v \
--to ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST}
""",
pure: false
)
}
} }
}
}
post {
always { script {
nix.shell('nix-store --optimize', pure: false)
nix.shell('nix/scripts/clean.sh', pure: false)
} }
}
}
+94
View File
@@ -0,0 +1,94 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
pipeline {
agent { label 'linux && x86_64 && nix-2.14' }
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 15, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '20',
artifactNumToKeepStr: '10',
))
/* Abort old PR builds. */
disableConcurrentBuilds(
abortPrevious: isPRBuild
)
}
parameters {
string(
name: 'BUILD_TYPE',
description: 'Specify build type. Values: pr / e2e / nightly / release',
defaultValue: 'pr',
)
}
environment {
LANG = "en_US.UTF-8"
LC_ALL = "en_US.UTF-8"
LANGUAGE = "en_US.UTF-8"
TARGET = 'tests'
BUILD_ENV = 'prod'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
LOG_FILE = utils.pkgFilename(ext: 'log', arch: 'tests')
}
stages {
stage('Checks') {
parallel {
stage('Lint') {
steps {
sh """#!/bin/bash
set -eo pipefail
make lint CLJ_LINTER_PRINT_WARNINGS=true 2>&1 | tee ${LOG_FILE}
"""
}
}
stage('Unit Tests') {
steps {
sh """#!/bin/bash
set -eo pipefail
make test-unit 2>&1 | tee -a ${LOG_FILE}
"""
}
}
}
}
stage('Integration Tests') {
steps {
sh """#!/bin/bash
set -eo pipefail
make test-integration 2>&1 | tee -a ${LOG_FILE}
"""
}
}
stage('Component Tests') {
steps {
sh """#!/bin/bash
set -eo pipefail
make component-test 2>&1 | tee -a ${LOG_FILE}
"""
}
}
stage('Upload') {
steps {
script {
env.PKG_URL = s3.uploadArtifact(LOG_FILE)
}
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
always { sh 'make purge' }
}
}
+44 -10
View File
@@ -1,16 +1,29 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
parameters {
string(
name: 'NETWORK',
description: 'Name of test network to use.',
defaultValue: 'ropsten',
name: 'APK_BUILD_NUMBER',
description: 'platform/e2e build number for apk artifact',
)
string(
name: 'APK_NAME',
description: 'Filename of APK uploaded to SauceLabs.',
name: 'KEYWORD_EXPRESSION',
description: 'This will run tests which contain names that match the given string expression (Optional)',
defaultValue: '',
)
string(
name: 'BRANCH',
description: 'Name of the branch to checkout and build.',
defaultValue: 'develop',
)
string(
name: 'TR_CASE_IDS',
description: 'IDs of the TestRail case, separated by a comma (Optional)',
defaultValue: '',
)
}
@@ -18,8 +31,19 @@ pipeline {
disableConcurrentBuilds()
}
stages {
stage('Fetch') {
steps { script {
copyArtifacts(
projectName: "status-mobile/platforms/android-e2e",
filter: 'result/*-x86_64.apk',
selector: specific(env.APK_BUILD_NUMBER),
)
apk_path = "${env.WORKSPACE}/${utils.findFile('result/*-x86_64.apk')}"
} }
}
stage('Setup') {
steps { script {
dir('test/appium') {
@@ -27,6 +51,7 @@ pipeline {
}
} }
}
stage('Test') {
steps {
withCredentials([
@@ -48,17 +73,23 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test accounts secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
--numprocesses 15 \
--numprocesses 8 \
--rerun_count=2 \
--testrail_report=True \
-m testrail_id \
-m "not upgrade" \
--network=${params.NETWORK} \
--apk=${params.APK_NAME}
-m \"new_ui_critical or new_ui_medium\" \
-k \"${params.KEYWORD_EXPRESSION}\" \
--apk=${params.APK_URL ?: apk_path}
"""
}
}
@@ -82,5 +113,8 @@ pipeline {
)
}
}
cleanup {
sh 'make purge'
}
}
}
+64 -25
View File
@@ -1,3 +1,6 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
@@ -8,42 +11,66 @@ pipeline {
description: 'Name of the branch to checkout and build.',
defaultValue: 'develop',
)
string(
name: 'NETWORK',
description: 'Name of test network to use.',
defaultValue: 'ropsten',
)
string(
name: 'TEST_MARKERS',
description: 'Marker expression for matching tests to run.',
defaultValue: 'critical or high',
)
string(
name: 'APK_NAME',
description: 'Filename of APK uploaded to SauceLabs, path, or URL.',
)
string(
name: 'PR_ID',
description: 'ID of the Pull Request triggering this build.',
)
string(
name: 'TR_CASE_IDS',
description: 'IDs of the TestRail case, separated by a comma. (Optional)',
name: 'APK_URL',
description: 'Optional, set if job require APK to be downloaded from URL.',
)
string(
name: 'KEYWORD_EXPRESSION',
description: 'This will run tests which contain names that match the given string expression (Optional)',
defaultValue: '',
)
string(
name: 'TR_CASE_IDS',
description: 'IDs of the TestRail case, separated by a comma (Optional)',
defaultValue: '',
)
/* FIXME: Remove this no longer relevant argument */
string(
name: 'APK_NAME',
description: 'OBSOLETE ARGUMENT TO BE REMOVED',
defaultValue: 'DUMMY',
)
/* Commented to use TEST_MARKERS values from job params
string(
name: 'TEST_MARKERS',
description: 'Marker expression for matching tests to run.',
defaultValue: 'new_ui_critical',
)
*/
}
options {
disableConcurrentBuilds()
timeout(time: 90, unit: 'MINUTES')
}
stages {
stage('Checks') {
stage('Prep') {
steps { script {
if (params.APK_NAME == null) { error("APK_NAME parameter not set!") }
if (params.PR_ID == null) { error("PR_ID parameter not set!") }
currentBuild.displayName = "PR-${params.PR_ID}"
if (params.PR_ID == null) {
error("PR_ID parameter not set!")
}
} }
}
stage('Fetch') {
when { expression { !params.APK_URL } }
steps { script {
copyArtifacts(
projectName: "status-mobile/prs/android-e2e/PR-${params.PR_ID}",
/* WARNING: This copies the latest available artifact. */
selector: lastWithArtifacts(),
)
apk_path = "${env.WORKSPACE}/${utils.findFile('result/*.apk')}"
} }
}
stage('Setup') {
steps { script {
dir('test/appium') {
@@ -51,13 +78,15 @@ pipeline {
}
} }
}
stage('Test') {
steps { script {
currentBuild.displayName = "PR-${params.PR_ID}"
/* for managing optional arguments */
def extraPytestOpts = ''
if (params.TR_CASE_IDS != '') {
extraPytestOpts = "--run_testrail_ids='${params.TR_CASE_IDS}'"
} else {
extraPytestOpts = "-m \"${params.TEST_MARKERS}\""
}
withCredentials([
@@ -84,17 +113,22 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test account secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
--numprocesses 15 \
--numprocesses 8 \
--rerun_count=2 \
--testrail_report=True \
-m "${params.TEST_MARKERS}" \
--network=${params.NETWORK} \
--apk=${params.APK_NAME} \
--build=PR-${params.PR_ID} \
-k \"${params.KEYWORD_EXPRESSION}\" \
--apk=${params.APK_URL ?: apk_path} \
--build=PR-${params.PR_ID}-${utils.timestamp()} \
--pr_number=${params.PR_ID} \
${extraPytestOpts}
"""
@@ -103,4 +137,9 @@ pipeline {
} }
}
}
post {
cleanup {
sh 'make purge'
}
}
}
+51 -16
View File
@@ -1,20 +1,28 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
parameters {
string(
name: 'NETWORK',
description: 'Name of test network to use',
defaultValue: 'ropsten',
)
string(
name: 'APK_NAME',
description: 'Filename of APK uploaded to SauceLabs (base for upgrade, usually release build)',
name: 'APK_URL',
description: 'URL of APK to be tested(base for upgrade, usually release build)',
)
string(
name: 'APK_NAME_UPGRADE',
description: 'Filename of APK of upgraded application (installed on top of base)',
name: 'APK_URL_UPGRADE',
description: 'URL of APK of upgraded application (installed on top of base)',
)
string(
name: 'KEYWORD_EXPRESSION',
description: 'This will run tests which contain names that match the given string expression (Optional)',
defaultValue: '',
)
string(
name: 'TR_CASE_IDS',
description: 'IDs of the TestRail case, separated by a comma (Optional)',
defaultValue: '',
)
}
@@ -24,6 +32,17 @@ pipeline {
stages {
stage('Prep') {
steps { script {
if (params.APK_URL == null) {
error("APK_URL parameter not set!")
}
if (params.APK_URL_UPGRADE == null) {
error("APK_URL_UPGRADE parameter not set!")
}
} }
}
stage('Setup') {
steps { script {
dir('test/appium') {
@@ -31,8 +50,14 @@ pipeline {
}
} }
}
stage('Test') {
steps {
steps { script {
/* for managing optional arguments */
def extraPytestOpts = ''
if (params.TR_CASE_IDS != '') {
extraPytestOpts = "--run_testrail_ids='${params.TR_CASE_IDS}'"
}
withCredentials([
usernamePassword(
credentialsId: 'test-rail-api',
@@ -52,22 +77,29 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test accounts secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
-m upgrade \
--numprocesses 15 \
-m "upgrade" \
-k \"${params.KEYWORD_EXPRESSION}\" \
--numprocesses 4 \
--rerun_count=2 \
--testrail_report=True \
--network=${params.NETWORK} \
--apk=${params.APK_NAME} \
--apk_upgrade=${params.APK_NAME_UPGRADE}
--apk=${params.APK_URL} \
--apk_upgrade=${params.APK_URL_UPGRADE} \
${extraPytestOpts}
"""
}
}
}
}
} }
}
post {
@@ -86,5 +118,8 @@ pipeline {
)
}
}
cleanup {
sh 'make purge'
}
}
}
+2 -1
View File
@@ -1,4 +1,5 @@
library 'status-jenkins-lib@v1.3.3'
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'macos' }
+138
View File
@@ -0,0 +1,138 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label params.AGENT_LABEL }
parameters {
string(
name: 'NIX_CACHE_HOST',
description: 'FQDN of Nix binary cache host.',
defaultValue: params.NIX_CACHE_HOST ?: 'cache-01.do-ams3.nix.ci.statusim.net'
)
string(
name: 'NIX_CACHE_USER',
description: 'Username for Nix binary cache host.',
defaultValue: params.NIX_CACHE_USER ?: 'nix-cache'
)
}
environment {
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* we source .bash_profile to be able to use nix-store */
NIX_SSHOPTS = "-oStrictHostKeyChecking=no"
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
NIX_STORE_CMD = '/nix/var/nix/profiles/default/bin/nix-store'
NIX_SSH_REMOTE = "ssh://${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST}?remote-program=${env.NIX_STORE_CMD}"
}
options {
timestamps()
disableConcurrentBuilds()
/* Prevent Jenkins jobs from running forever */
timeout(time: 120, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '20',
daysToKeepStr: '30',
))
}
stages {
stage('Setup') {
steps { script {
nix.shell('nix-env -i openssh', sandbox: false, pure: false)
/* some build targets don't build on MacOS */
os = sh(script: 'uname', returnStdout: true).trim()
arch = sh(script: 'arch', returnStdout: true).trim()
} }
}
stage('Build status-go') {
steps { script {
def platforms = ['mobile.android', 'mobile.ios', 'library']
if (os != 'Darwin') { platforms.removeAll { it == 'mobile.ios' } }
/* FIXME: "'x86_64-darwin' with features {} is required to build" */
if (arch == 'arm64') { platforms.removeAll { it == 'mobile.android' } }
platforms.each { platform ->
/* Allow for Android builds on Apple ARM. */
env.NIXPKGS_SYSTEM_OVERRIDE = nixSysOverride(os, arch, platform)
nix.build(
attr: "targets.status-go.${platform}",
sandbox: false,
link: false
)
}
} }
}
stage('Build android jsbundle') {
steps { script {
/* Build/fetch deps required for jsbundle build. */
nix.build(
attr: 'targets.mobile.jsbundle',
sandbox: false,
pure: false,
link: false
)
} }
}
stage('Build android deps') {
steps { script {
/* Allow for Android builds on Apple ARM. */
env.NIXPKGS_SYSTEM_OVERRIDE = nixSysOverride(os, arch, 'android')
/* Build/fetch deps required to build android release. */
nix.build(
attr: 'targets.mobile.android.release.buildInputs',
sandbox: false,
pure: false,
link: false
)
} }
}
stage('Build nix shell deps') {
steps { script {
def shells = ['android', 'ios', 'fastlane', 'keytool', 'clojure', 'gradle']
if (os != 'Darwin') { shells.removeAll { it == 'ios' } }
/* FIXME: "'x86_64-darwin' with features {} is required to build" */
if (arch == 'arm64') { shells.removeAll { it == 'android' } }
/* Build/fetch deps required to start default Nix shell. */
shells.each { shell ->
/* Allow for Android builds on Apple ARM. */
env.NIXPKGS_SYSTEM_OVERRIDE = nixSysOverride(os, arch, shell)
nix.build(
attr: "shells.${shell}.buildInputs",
sandbox: false,
link: false
)
}
} }
}
stage('Upload') {
steps { script {
sshagent(credentials: ['nix-cache-ssh']) {
nix.shell("""
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
-not -name '*.links' -and -not -name '*-status-mobile-*' \
| xargs nix copy --to ${NIX_SSH_REMOTE}
""",
pure: false
)
}
} }
}
}
post {
always { script {
nix.shell('nix-store --optimize', pure: false)
nix.shell('nix/scripts/clean.sh', pure: false)
} }
}
}
def nixSysOverride(os, arch, target='android') {
return (
os == 'Darwin' &&
arch == 'arm64' &&
target =~ /.*android$/
) ? 'x86_64-darwin' : ''
}
+2 -1
View File
@@ -1,4 +1,5 @@
library 'status-jenkins-lib@v1.3.3'
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent { label 'linux' }
+1
View File
@@ -1,3 +1,4 @@
#!/usr/bin/env groovy
/**
* This job runs daily and executes `pod repo update` on MacOS
* This is done to avoid issues with out of date repo causing errors like:
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.8.5'
pipeline {
agent {
label 'linux'
}
triggers {
cron('H 5 * * *')
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 15, unit: 'MINUTES')
/* Disable concurrent jobs */
disableConcurrentBuilds()
/* Don't keep more than 50 builds */
buildDiscarder(logRotator(numToKeepStr: '10'))
}
stages {
stage('Get Nodes') {
steps { script {
stagePerNode = nodesByLabel('macos').collectEntries {
["${it}" : generateNodeCleanupStage(it)]
}
} }
}
stage('Clean Xcode') {
steps { script {
parallel stagePerNode
} }
}
}
}
def generateNodeCleanupStage(nodeLabel) {
return { stage(nodeLabel) {
node(nodeLabel) {
dir('/Users/jenkins/Library/Developer/Xcode') {
sh 'rm -fr Archives DerivedData'
}
}
} }
}
-166
View File
@@ -1,166 +0,0 @@
## "@react-native-community/netinfo": "^3.2.1"
no known issue while updating version
used to monitor network information (connected, expensive, connection type)
## "bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status"
used to work with big numbers in JS
BN.js (used in web3-utils) doesn't support decimals, though we could work without decimals
should be replaced by JSBI https://github.com/GoogleChromeLabs/jsbi/blob/master/README.md
see web-utils issue: https://github.com/ethereum/web3.js/issues/2171
## "buffer": "^5.4.2"
required by bignumber.js otherwise there is a compilation error
## "chance": "^1.1.0"
used to generate guids and random values in `status-im.utils.random`
## "create-react-class": "15.6.2"
fixed version because even bugfix update causes compilation error with current version of react-native (0.59)
internal react library, used by figwheel for instance but also probably react
## "emojilib": "^2.4.0"
used for emojis
## "eth-phishing-detect": "^1.1.13"
used to check if URL is known for phishing
## "hi-base32": "^0.5.0"
used only in `status-im.browser.core` to convert base58 hash into base32 hash
TODO: could be replaced by a simple implementation of ascii to base32
## "i18n-js": "^3.3.0"
used to manage translations
## "identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status"
TODO: switch to latest upstream version, fork is seriously outdated and changes have been merged to master long time ago
used to generate identicons
## "qrcode": "^1.4.1"
used to generate QR code
## "react": "16.8.3"
react library, update based on react-native recommendation
## "react-dom": "16.4.2"
react library, update based on react-native recommendation
## "react-native": "git+https://github.com/status-im/react-native.git#v0.59.10"
react-native
TODO: forked because of specific markdown handling, should be bountied to be turned into a library so we can go back to upstream version
## "react-native-background-timer": "^2.1.1"
used to have setTimeout and setInterval that don't trigger yellow warning about long timeouts
## "react-native-camera": "git+https://github.com/status-im/react-native-camera.git#v1.1.5-1-status"
used to read QR code and take profile picture
TODO: update version, this one doesn't work with Android (done in react-native upgrade branch)
## "react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1"
used to fetch config values from env
TODO: not sure fork usage is justified
## "react-native-dialogs": "^1.0.5"
used to show dialogs but only in android in list selection `status-im.ui.components.list-selection`, iOS uses action-sheet
TODO: see if we should actually remove it
## "react-native-fetch-polyfill": "^1.1.3"
used to be able to put a timeout on fetch request
TODO: check if the fetch timeout is actually aborting the request or only ignoring the callback on the response, if it
doesn't then this is useless and we are better of using a simple seTimeout
## "react-native-fs": "^2.14.1"
used for some filesystem related functions, for instance to get no-backup directory in `status-im.utils.platform`
## "react-native-gesture-handler": "1.3.0"
library used by react-navigation
use version recommended by react-navigation
## "react-native-image-crop-picker": "^0.18.2"
used for profile picture
## "react-native-image-resizer": "git+https://github.com/status-im/react-native-image-resizer.git#1.0.##-status"
used for profile picture
## "react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-status"
used for storing password when user saves password
TODO: check if fork is necessary, merge with upstream?
## "react-native-languages": "^3.0.2"
TODO DEPRECATED, should be replaced with https://github.com/react-native-community/react-native-localize
used to get user language and interact with i18n.js
## "react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v3.0.8_status"
used to send email to support when phone is shaked
## "react-native-screens": "1.0.0-alpha.22"
used by react-navigation
TODO: update once bug is fixed for Android that causes crash when app is back from background after being put in background with hardware backbutton press
## "react-native-shake": "^3.3.1"
used to send email to support when phone is shaked
## "react-native-splash-screen": "^3.2.0"
used to make splash screen during initial loading
## "react-native-status-keycard": "^2.5.7"
used for keycard
## "react-native-svg": "9.7.1"
used for svg icons, mostly collectibles are using svg
TODO: updating requires a pod update on iOS
## "react-native-touch-id": "^4.4.1"
used for touch-id identification
## "react-native-webview": "git+https://github.com/status-im/react-native-webview.git#v8.0.7_3"
used for browser
## "react-navigation": "3.11.0"
used for native navigation
fixed because even bugfix version upgrade causes runtime errors with current version of react-native
## "web3-utils": "^1.2.1"
used for some abi encoding primitives
## "rn-emoji-keyboard": "https://github.com/status-im/rn-emoji-keyboard"
Used for taking emoji input, for custom emoji thumbnails for community channels
-148
View File
@@ -1,148 +0,0 @@
# Description
This document describes how to update Status APK builds for the [F-Droid](https://f-droid.org/) Android application catalogue.
# Intro
In simplest terms F-Droid requires a YAML file that defines the steps necessary to create a universal unsigned APK build. This is achieved by submitting a new app versions into the `metadata/im.status.ethereum.yml` file in the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository.
The app builds defined this way run on servers that generate the unsigned APKs using the [fdroidserver](https://gitlab.com/fdroid/fdroidserver) software. The [server setup](https://f-droid.org/en/docs/Build_Server_Setup/) is quite involved but is not necessary unless you want to run your own instance. Normally the applications defines in `fdroiddata` are built by servers maintained by [the F-Droid volunteers](https://f-droid.org/en/contribute/).
First release of Status app was merged in [fdroid/fdroiddata#7179](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/7179).
:warning: __WARNING__: Once changes are commited into `fdroiddata` repo they __cannot be changed__.
# Adding New Versions
There are two ways - automated and manual - described below.
## Automated
The script will analyze a provided APK, update the metadata file based on that information, and commit the change to [`fdroiddata`](https://gitlab.com/fdroid/fdroiddata) repo. The creation of merge request is manual.
#### Requirements:
- GitLab account
- Forked copy of the [`fdroiddata`](https://gitlab.com/fdroid/fdroiddata) repo
- Link to the release published
#### Steps
1. Use the F-Droid PR update script via `make`:
```sh
make fdroid-pr APK=StatusIm-Mobile-v1.16.0-ef34af.apk
```
The script also accepts a URL.
2. Add a fork repo:
```sh
git remote add john https://gitlab.com/john/fdroiddata.git
```
3. Push:
```sh
git push john status-im/v1.16.0
```
4. [Create a PR via the GitLab interface.](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
## Manual
You can find our configuration file at [`metadata/im.status.ethereum.yml`](https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/im.status.ethereum.yml)
The file defines all the necessary metadata like `SourceCode`, `Website`, or `License`, but the most important key is `Builds`, which looks like this:
```yml
Builds:
- versionName: 1.12.0
versionCode: 2021022512
commit: cfb825a11b61d312af8cb5d36686af540c31f481
sudo:
- cd build/im.status.ethereum
- make fdroid-build-env
init: nix/scripts/setup.sh
output: result/app-release-unsigned.apk
scanignore:
- android/build.gradle
scandelete:
- ios
build: make release-fdroid BUILD_NUMBER=$$VERCODE$$
```
It contains a list of objects defining each release of the application. In order to add a new release simply copy a previous release object and adjust the following values:
* `versionName` - String version like `1.12.0`.
* `versionCode` - Android `versionCode`. Normally it is generated from timestamp at build time.
* `commit` - Specific commit SHA1 from which the given release was built.
The `versionCode` should be the same as the one in build that was uploaded to Play Store.
It can be found in the build logs or by using:
```
> make shell TARGET=android
> apkanalyzer manifest version-code StatusIm-Mobile-v1.12.0.apk
2021022512
```
At the bottom of the file you should also update the following keys:
* `CurrentVersion` - Same as the new `versionName` added
* `CurrentVersionCode` - Same as the `versionCode` added
Then submit a merge request to the [fdroid/fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository.
:warning: __WARNING__: Currently GitLab PR builds will fail due to running as `root` instead of `vagrant` and failing to install Nix.
# Checking Builds
The simplest way to test if the app builds via F-Droid is to use the Docker image:
https://gitlab.com/fdroid/docker-executable-fdroidserver
Which is available under `registry.gitlab.com/fdroid/docker-executable-fdroidserver:latest`.
Because we use Nix to build the mobile app we need to slightly modify the image with this `Dockerfile`:
```Dockerfile
FROM registry.gitlab.com/fdroid/docker-executable-fdroidserver:latest
ARG BUILDER_UID=1000
ENV BUILDER_USER=vagrant
RUN useradd -u $BUILDER_UID $BUILDER_USER
RUN mkdir -m 0755 /nix /home/$BUILDER_USER \
&& chown -R $BUILDER_USER /nix /home/$BUILDER_USER
```
Build it using:
```
docker build --build-arg=BUILDER_UID=$UID -t statusteam/docker-executable-fdroidserver:latest .
```
Then clone the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) and [fdroidserver](https://gitlab.com/fdroid/fdroidserver) repos and use it to test the build of a specific Status Android app version: `1.12.0`
```
git clone https://gitlab.com/fdroid/fdroidserver
git clone https://gitlab.com/fdroid/fdroiddata
docker run --rm \
-u $UID:$GID -e USER=vagrant \
-v $PWD/fdroiddata:/repo \
-v $PWD/fdroidserver:/fdroidserver \
statusteam/docker-executable-fdroidserver:latest \
build im.status.ethereum
```
We have to create a user and specify the UID because Nix cannot run as `root` and that is the default user for the F-Droid Docker image. By adding our own user and setting the UID we also make it possible to mount folders like `fdroiddata` and `fdroidserver`.
You can specify a `--verbose` flag for `build` command for additional information.
You can provide `--storage-opt size=30G` flag if Docker complains about running out of space.
You should also run `lint` and `rewritemeta` for the App ID to verify and fix the YAML metadata formatting.
# Details
The original research was done in [#8512](https://github.com/status-im/status-react/issues/8512).
Normally F-Droid server wants to run Gradle itself, but we do not specify the `gradle` key in order to run `make release-fdroid` ourselves in `build` step. We also add `android/build.gradle` to `scanignore` to avoid F-Droid trying to use Gradle directly.
The Android metadata like description or screenshots is [loaded from our repository](https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#fastlane-structure) based on the Fastlane [`supply`](https://docs.fastlane.tools/actions/supply/) tool folder structure for updating Google Play store metadata.
Once the PR is merged it may take a few days for the F-Droid server farm to build and deploy the new version to their site and app. You can look up the current state of builds [here](https://f-droid.org/wiki/index.php?title=Special:RecentChanges&days=7&from=&hidebots=0&hideanons=1&hideliu=1&limit=500) and look for your App ID and a `deploy` change after it.
# F-Droid Build
F-Droid requires submitted applications to be free of non Open Source software. For this reason we need to exclude certain Google libraries at build time.
This is achieved by setting `GOOGLE_FREE=1` in the `.env.release` file. This affects two things:
1. [Clojure code conditional](../src/status_im/acquisition/core.cljs) which stops use of `get-referrer`.
2. [Gradle build configuration](../android/app/build.gradle) by excluding Google libraries.
Both are affected by the `.env` file and both are required.
-15
View File
@@ -1,15 +0,0 @@
# new icons
## Export icons
![](./export-icons.gif)
1. Export from figma 2 pngs 2x and 3x put them in `./resources/images/icons`
2. if necessary, rename file so that filename contains only lower case chars, e.g. `"Icon-Name@2x.png"` should be renamed to `"icon_name@2x.png"`.
3. In the app `icon_name.png` still can be accessed as `icon-name`, so in order to use can add the next code:
```clojure
;; icon_name.png
[vector-icons/icon :icon-name {:color ...}]
```
2x@2x
4. If you want paltform specific icon use `.android` or `.ios` suffixes. Example `icon_name@2x.android.png`.:w
-147
View File
@@ -1,147 +0,0 @@
# Using IntelliJ IDEA and Cursive
## Table of Contents
- [Install Cursive](#install-cursive)
- [Getting Cursive to understand `status-react`](#getting-cursive-to-understand-status-react)
- [I get a lot of `cannot be resolved`](#i-get-a-lot-of-cannot-be-resolved)
- [REPL!](#repl)
- [Connecting to REPL to IntelliJ](#connecting-to-repl-to-intellij)
- [Connecting REPL and IntelliJ to `status-react`](#connecting-repl-and-intellij-to-status-react)
## Install Cursive
See https://cursive-ide.com/userguide/index.html
## Getting Cursive to understand `status-react`
- Add this file to the root of the `status-react` project dir
- https://gist.github.com/Samyoul/f71a0593ba7a12d24dd0d5ef986ebbec
- Right click and "add as leiningen project"
<img src="images/IDE_SETUP/1_fake_project_file.png" width=75% />
## I get a lot of `cannot be resolved`
Are you getting problems where you get a lot of `cannot be resolved` on everything?
<img src="images/IDE_SETUP/2_resolve.jpeg" width=75% />
See https://cursive-ide.com/userguide/macros.html
- opt+enter (on macOS)
- resolve defview as fn and letsubs as let
- move selection on resolve and hit enter
- and select defn for defview and let for letsubs
## REPL!
### Connecting to REPL to IntelliJ
I had a number of problems connecting to REPL, the solution is as follows:
At the top of IntelliJ IDEA click on the `Add Configuration...` option:
<img src="images/IDE_SETUP/3_REPL_1.png" width=75% />
This will load the following menu:
<img src="images/IDE_SETUP/4_REPL_2.png" width=75% />
Click on the `+` icon in the top left corner of the menu.
Select `Clojure REPL > Remote`
<img src="images/IDE_SETUP/5_REPL_3.png" width=75% />
Which will load the following menu
<img src="images/IDE_SETUP/6_REPL_4.png" width=75% />
Enter the below options:
- Name = status-react
- Display Name = status-react
- Connection type = nREPL
- Connection details
- Host = 127.0.0.1
- Port = 7888
<img src="images/IDE_SETUP/7_REPL_5.png" width=75% />
Press `OK`
Now the below option will be visible.
Press the green run button
<img src="images/IDE_SETUP/8_REPL_6.png" width=75% />
You should now see an dialog with the following message:
```shell
Connecting to remote nREPL server...
Clojure 1.10.1
```
To confirm you have a working connection with REPL enter the following command in the input box below the output:
```shell
(prn 1)
```
Which should output
```shell
(prn 1)
1
=> nil
```
See below:
<img src="images/IDE_SETUP/9_REPL_7.png" width=75% />
### Connecting REPL and IntelliJ to `status-react`
**The important next step is telling REPL the context in which to interact with the code.**
Do the following:
Ensure you have 3 terminals running the following
- `make run-clojure`
- `make run-metro`
- `make run-ios` / `make run-android`
[See the STARTING GUIDE for details](STARTING_GUIDE.md#development)
Next go back to the REPL input and enter the following commands:
```clojure
(shadow/watch :mobile)
(shadow/repl :mobile)
```
See Below
<img src="images/IDE_SETUP/10_REPL_8.png" width="75%" />
Which should switch the clj file type target to cljs as shown above
Finally you are ready to test REPL.
Create a sample function to evaluate something simple like `(prn "I'm working")`, move your cursor to one of the outer parentheses. Right or `control` click and select the `REPL` option. From there select `Sync files in REPL` and then `Send '...' to REPL'`.
<img src="images/IDE_SETUP/11_REPL_9.png" width="75%" />
Alternatively you can use the shortcut commands `⇧⌘M` to sync your files and `⇧⌘P` to send the statement to REPL. You may also need to switch the REPL namespace to match the current file, which can be done manually from the dialogue box or using the `⇧⌘N` shortcut key.
Following the above should give you the below result:
<img src="images/IDE_SETUP/12_REPL_10.png" width="75%" />
🎉 Tada! Working! 🎉
---
For additional details on issues you may face when setting up REPL with Cursive [see this document](https://notes.status.im/9Gr7kqF8SzC_SmYK0eB7uQ?view#Connecting-Cursive--IntelliJ-IDEA-to-REPL-Problems)
+63
View File
@@ -0,0 +1,63 @@
## Getting Started
[Starting Guide](starting-guide.md)
[IDE Setup](ide-setup.md)
## Development Process
[Coding guidelines](new-guidelines.md)
[Release Checklist](release-checklist.md)
[Release Guide](release-guide.md)
[Merging PR process](merging-pr-process.md)
[PR Review Policy](pr-review-policy.md)
[Working on PR together with QA team](pipeline_process.md)
[Debugging](debugging.md)
[Patching](patching.md)
[Creating a pixel perfect UI](pixel-perfection.md)
[Contributing to status-go](status-go-changes.md)
## Testing
[How to run local tests](testing.md)
[End-to-end tests (e2e) overview](how-to-launch-e2e.md)
[Component tests (jest) overview](component-tests-overview.md)
## Project details
[status-go introduction (recorded meeting)](https://drive.google.com/file/d/1B7TljmTZ8fHkqJH8ChU1Cp4FGDFM03gq/view)
[re-frame usage (recorded meeting)](https://drive.google.com/file/d/1qv_E0CEGzQpu_zGXD0gCTU5EvhC2k8Jy/view)
[status app functionality demo](https://drive.google.com/file/u/0/d/1PmwsMLTLDNNIdv5_6wvMOwoj2PfT50c6/view)
## Misc
[Importing icons from Figma into project](export-icons.md)
[Updating Status APK builds for the F-Droid Android application catalogue](fdroid.md)
[Troubleshooting for known errors](troubleshooting.md)
## Outdated:
[Old guidelines](codebase-structure-and-guidelines.md)
[Post mortem analysis](post-mortem.md)
-21
View File
@@ -1,21 +0,0 @@
#### Before submission
- [ ] Feature or improvements release? (Feature release needs more lead time and assets for comms)
- [ ] Sign off by QA
- [ ] App store listing content reviewed and updated ([copy](https://docs.google.com/spreadsheets/d/1fLDr3BD1dcg0dolvLiozXoZU27IQirjBzn0h4_QS2u0/edit#gid=0), [images](https://www.dropbox.com/sh/6baklctvxy3nuoo/AACG9kYIVdt2qREW76rP8SP-a?dl=0) )
- [ ] Play store content reviewed and updated
- [ ] Release notes written and added (500 character limit for updates (Android), no Android references for App store)
- [ ] Comms timeframe agreed on (Mon/Tue ping when both submissions are in)
- [ ] Privacy policy reviewed and updated
- [ ] App translations for key features merged and tested
- [ ] Countries to be excluded
- [ ] Changes to our FAQ made
#### Before publishing
- [ ] Translations for comms available
- [ ] Promotional content ready
- [ ] Update Draft with release on https://github.com/status-im/status-react/releases
- [ ] Add release to DO store and [update site](https://notes.status.im/s/status-release-upload#) (Jakub - requires credentials to upload)
#### At time of publishing
- [ ] validate draft release on github release page https://github.com/status-im/status-react/releases
- [ ] update https://github.com/status-im/status-react/blob/develop/RELEASES.md with release notes
-115
View File
@@ -1,115 +0,0 @@
# Description
This document explains some of the steps that are involved in releases.
# Release process
## Coordination
All the coordination is done in the `#release` channel on discord.
Release readiness can be tracked by watching an appropriate milestone at [milestones](https://github.com/status-im/status-react/milestones) section in github.
When release is building you can check the progress in a testrail. Ask @churik for access if you don't have it
## Preparing branches
Special branches should be created at the start of a release process. That can be done manually or with the script
### Prepare branches with the script
You can use the script to cut a release branch. No arguments needed, the new release version will be deducted automatically:
`scripts/cut-release.sh`
Upon script call two branches will be created:
- `release/a.b.x`
- `chore/update-release-to-$version`
The first one is the main release branch. All bugfixes should be cherry-picked from `develop` to it. Jenkins treats that branch specially and prepares release builds from it.
The second branch only updates the `VERSION` file and all you need to do is to merge it to `develop`. If you have the `gh` command installed, `cut-release` script will automatically create a PR for this.
### Prepare branches manually
#### Create a branch
First, we need to create a release branch cut from develop.
The name of the branch should be `release/a.b.x` where `x` is actually `x`, not a variable, and `a` and `b` are the `MAJOR` and `MINOR` version of the app.
For example, valid branch names are:
`release/1.12.x` or `release/3.12.x`
#### Update version
We need to update the `VERSION` file to reflect the release we want to build.
## Building
Jenkins will automatically build this branch and create release candidates.
Those will go through the QA process and the QA team will let us know when
tested successfully.
## Bugfixes before an app is released
Because both `status-react` and `status-go` might have newer commits that we don't want to include, bug fixes should be applied separately to develop and the release branch.
The best workflow is to send a PR to develop, get it merged, and the cherry-pick on the
release branch.
It is a release manager's responsibility to cherry-pick bugfix from `develop` to release branch. In order to do this, you should be a part of a `release group` on github. Contact @jakubgs to be added.
If cherry-picking not practical for some reason (i.e develop has diverged significantly from release)
other workflows are possible.
To change status-go, a similar workflow applies.
First checkout the tag used in `status-go-version.json` of release branch.
`git checkout v0.62.3`
Create a branch on status-go named: `release/vx.y.z+hotfix.w` where (make sure branch name is not the same as the tag)
`x` is the `MAJOR` version
`y` is the `MINOR` version
`z` is the `PATCH` version
`w` is the `HOTFIX` version
For example valid names are:
`release/v0.62.3+hotfix.2`
`release/v1.3.4+hotfix.4`
Once the branch is ready to use and tested successfully, tag the branch:
`git tag v0.62.3+hotfix.2`
Push the branch and then the tag to origin:
`git push --set-upstream origin release/v0.62.3+hotfix.2`
`git push origin v0.62.3+hotfix.2`
Switch to status-react release branch, and cherry pick the commit you need.
Once that's done, update the status-react release branch with the new tag:
`make shell`
`scripts/update-status-go.sh v0.62.3+hotfix.2`
And commit and push the changes
# Hotfix process
The hotfix process is basically identical to the workflow of a bugfix:
1) Add the changes on status-react
2) Make sure you use a hotfix branch for status-go (unless we are happy to release from develop)
3) Update the `VERSION` in status-react
# PlayStore Metadata Updates
This section is relevant only for the marketing team, no developer participation is required.
You can update Play Store release metadata using `fastlane android upload_metadata`.
But that requires credentials necessary for accessing Play Store API. The simpler way is to edit files contained within [`fastlane/metadata`](metadata) and run the following CI job:
https://ci.status.im/job/status-react/job/tools/job/update-playstore-metadata/

Some files were not shown because too many files have changed in this diff Show More