Commit Graph

111 Commits

Author SHA1 Message Date
Jakub Sokołowski 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
Parvesh Monu 05219bd721
Implement react-native-hole-view (#13868) 2022-08-29 21:32:30 +05:30
yqrashawn 98ca311a97
feat: lottie splash screen (#13714)
[#13714] feat: lottie splash screen
2022-08-02 12:48:12 +02:00
Jakub Sokołowski 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
Jakub Sokołowski 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
Parvesh Monu 236bbff493
Implement react-native-blur for android (#13663) 2022-07-14 17:27:04 +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
Jakub Sokołowski 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
andrey f39b688e89
google free and metrics free
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-19 07:22:23 +02:00
Jakub Sokołowski 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 Sokołowski 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
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 Sokołowski 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
Jakub Sokołowski 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
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 36c7d8e4ca
Implementation of remote android notifications (#13028) 2022-02-14 17:27:33 +05:30
Michele Balistreri 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
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 437d58f827
use react-native-fast-image for stickers
Signed-off-by: andrey <motor4ik@gmail.com>
2021-11-17 15:44:27 +01:00
Jakub Sokołowski f448f014f6
nix: update gradle dependencies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-16 11:25:07 +01:00
Jakub Sokołowski 43da5a60fe
nix: make url2json.sh parse POM content for packaging
Otherwise we can download a JAR when an AAR is necessary.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-16 11:12:06 +01:00
Jakub Sokołowski 3f7b985e1a
nix: update gradle dependencies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-10-26 15:40:25 +02:00
Michele Balistreri 5246617c69
target SDK 30
support scoped storage from Android 10

better permission handling on iOS 14

Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-09-13 10:17:51 +03:00
Jakub Sokołowski 0d403739f9
nix: upgrade go-maven-resolver to 1.1.1, add more repos
I've noticed issues with the https://repository.sonatype.org/ Maven repository we were using.
They appear to have purged their storage of a lot of packages, including our own for example:
https://repository.sonatype.org/content/groups/sonatype-public-grid/com/github/status-im/

For this reason I've release a new version of `go-maven-resolver` that includes two more Maven repos:
- https://plugins.gradle.org/m2
- https://jitpack.io

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-30 18:49:55 +02:00
andrey 5f719ac95b
react native navigation
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-14 20:03:49 +02:00
Jakub Sokołowski 6d43f34cf8
nix/deps/gradle: include Gradle targets with numbers in names
This fixes an issue first detected in:
https://github.com/status-im/status-react/pull/12141

Which resulted in dependencies being ignored for `react-native-nagivation`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-25 14:33:41 +02:00
andrey 93ed7c15bd
[#11809] Upgrade react-native-device-info to 7.4.0
Also update gradle dependencies with transitive deps.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:20 +01:00
Jakub Sokołowski 293fd5fae1
nix: add missing cljfmt dependencies to nix/deps/clojure
It seems like this worked before purely because the `cljfmt` library was
already in the `~/.m2` cache folder. This issue was noticed when I
cleaned up the `~/.m2` folder on one Jenkins slave host and the Lint stage
started randomly failing.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 16:42:38 +01:00
Jakub Sokołowski 37cf8ffe72
nix: update clojure dependencies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 13:23:35 +01:00
andrey 9648f741b4
cleaning 3
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 16:16:54 +01:00
andrey fa4521d2e7
react native config latest version with pods, fixes react-native-config compiling issue by moving it to pods [#11657]
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-19 17:14:06 +01:00
andrey abac5247bf
RN 63 and xcode12
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:41:38 +01:00
Jakub Sokołowski 939ce8bef5
nix: Upgrade Android SDK, use nixpkgs master
This makes use of the refactoring of Android SDK done in:
https://github.com/NixOS/nixpkgs/pull/89775

Which allows us to drop the use of our own fork of `nixpkgs`.

Android Upgrades:
* Build Tools - `29.0.2` to `30.0.3`
* Platform Tools - `29.0.6` to `30.0.5`
* NDK Bundle - `21.0.6113669` to `21.3.6528147`

Other Upgrades:
* Git - `2.28.0` to `2.29.2`
* Go - `1.14.7` to `1.14.13`
* Clojure - `1.10.1.645` to `1.10.1.763`
* NodeJS - `12.18.3` to `12.20.1`
* Yarn - `1.22.4` to `1.22.10`
* OpenJDK - `8u265-ga` to `8u272-b10`
* PatchElf - `0.11` to `0.12`
* CoreUtils - `8.31` to `8.32`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-13 15:35:59 +01:00
Gheorghe Pinzaru 6342163152
Add react-native-fast-image for external assets
Use fast image in link previews

Mock fast image in tests

Update nix android deps

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-25 15:03:59 +03:00
Jakub Sokołowski c62abf10c1
nix: add docs about NodeJS modules, small refactor
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 20:47:23 +01:00
Jakub Sokołowski f0d9f2ac54
nix: add a way to deal with new gradle version to docs
Also adjusted the `generate.sh` script and split stuff into separate function
to make it easier to run specific stages of the generation process.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-27 14:56:42 +01:00
Michele Balistreri 4384d979e7
update Keycard SDK, remove workaround
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2020-11-09 20:10:58 +01:00
Gheorghe Pinzaru 00ec94b73c
Bump navigation libs
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-01 10:18:12 +03:00
Gheorghe Pinzaru 793579885a
Add universal QR scanner via common router
Rename events

Add router to handle all links

Use router in add new chat

Unify universal link and universal qr with router

Add icon for universal scanner

Update tests

Now routing is tested in routing PR

lint

Cleanup

QA fixes

Scan own profile

Handle more EIP

Fix wallet scanner

Fix stack for view profile in UL

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-11 10:24:15 +03:00
andrey 2d8b0107e3
replace camera library
Signed-off-by: andrey <motor4ik@gmail.com>
2020-08-10 17:54:14 +02:00
Gheorghe Pinzaru 3c42360b30
Add referral program under feature flag
Add acquisition backend methods

Init referrals sharing UI

Add invite on home screen

Use i18n for strings

Lint

Update status go

Pull acquisition contract to get SNT amount

Use new invite component

f pulling

go

Use screen instead of bottom sheet

Handle android install referrer

Post referrer to backend if present

go go

Add async storage for referral decisions

Update with the stage backend

Update contract methods

Modal

UI

Full handling of advertiser type

UI

test

UI

Handle with universal link

Allow multiple acquisition per installation

Fix android bottom sheet

Do not call service if no click-id received

Disable invite in release

Parse query params for referrer

Adapt UI changes

Add push notification

update deps

Mock react-native-push-notification

Request push notifications permission on press accept

Store transaction to local storage and load it back on login

Separate acquisition into smaller ns

Add chat invite

Get referrer only on first install

fix string

Fix firebase crash

Handle outdate click-id

Cleanup business logic

Update contract

Revert pn

Minor update to advertiser modal copy

OLD -  Welcome to Status! Here is some crypto to get you started
NEW - Here’s some crypto to get you started! Use it to get stickers, an ENS name and try dapps

OLD - By accepting you agree to the starter pack
NEW - By accepting you agree to the referral program

upgrade status-go

Add mainnet

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-03 15:25:34 +03:00
tbenr 86700f2b5c
audio messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-07-29 10:09:31 +02:00
Gheorghe Pinzaru 0f07f3eecb
Update image resizer
Do not resize images in camera roll

request permission on camera roll

fix images e2e

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-20 11:54:31 +03:00
Jakub Sokołowski 112132aa94
drop all desktop related files and references
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-08 10:26:51 +02:00
Jakub Sokołowski 98280dc45b
make go-maven-resolver fail when any resolution fails
Before errors like this:
```
finder.go:91: error: 'no pom data' for: <Dep ID=com.afollestad.material-dialogs:commons:0.9.6.0 O=false S= >
```
Would be printed to `stderr` but exit code would not be non-zero.

Now the whole `make nix-update-gradle` target should fail if any
dependency resolution fails.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-18 12:10:08 +02:00
Andrey Shovkoplyas f659cbf242
camera roll 2020-06-01 11:34:13 +02:00
Jakub Sokołowski 2f65cedd2d
nix: replace grep and sed with AWK for parsing Gradle deps
The mess with regexes is hard to read and think about which is why it
had bugs with handling some Gradle formats.

It also lowers further the number of dependencies pulled from 785 to 744.

Changes:
- Added `gradle_parser.awk` script for getting dependencies from Gradle
- Changed the `deps.urls` file to contain full URLs to POMs
- Dropped the `deps.urls.old` part since `get_urls.sh` no longer exists
- Added `CLR` for learing line to `scripts/colors.sh`
- Wrote a new `nix/deps/gradle/README.md`
- Re-generated `nix/pkgs/go-maven-resolver/deps.nix`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-25 19:34:56 +02:00
Jakub Sokołowski d0216674da
nix: use go-maven-resolver to fix nix-update-gradle
This Go package was implemented by me to avoid having to use Mavan or
Gradle to resolve all the dependencies for Nix:
https://github.com/status-im/go-maven-resolver

The Go tool is essentially a slightly smarter and more efficient version
of the `get_urls.sh` script, which was mostly slow due to the `mvn
dependency:list` calls and slow HTTP requests.

This takes down the `make nix-update-gradle` target to under 2 minutes
on my machine.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-24 18:08:05 +02:00
Jakub Sokołowski 0bec573eb3
nix: don't use gradle to patch node modules
Before in order to create `deps.nodejs-patched` the `deps.gradle` would
also have to be downloaded in order to patch `build.gradle` files with
path to the Gradle dependencies in Nix store.

It turns out just replacting lines referencing `mavenCentral()`,
`google()`, and `jcenter()` in `repositories` block is enough to make
Gradle properly fetch dependencies from repo provided via the command
line `-Dmaven.repo.local='${deps.gradle}` option.

This should reduce the required size for shells that don't use Gradle.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-20 10:50:29 +02:00
Jakub Sokołowski 604362958b
nix: always use patched node_modules in shells
Becuase `clojure` shell used unpatched `node_modules` while the
`android` shell used the patched version when starting these shells
the `node_modules` would keep being switched between them wasting time.

Changes:
- Move `nix/tools/patchNodeModules.nix` to `nix/deps/nodejs-patched`
- Make `nix/deps/nodejs-patched` a normal derivation without extra arguments
- Use `deps.nodejs-patched` in `nix/mobile/android` shell
- Use `deps.nodejs-patched` in `nix/shells.nix` node shell
- Use `with pkgs` to reduce arguments in `nix/mobile/android/release.nix`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-18 13:54:26 +02:00
Jakub Sokołowski 73a8992db7
nix: refactor loading of node.js modules
Changes:
- Drop `nix/mobile/android/maven-and-npm-deps/default.nix`
- Replace it with much simpler `nix/tools/patchNodeModules`
- Move Gradle patching tool to `nix/pkgs/patch-maven-srcs`
- Simplify it by using `gradle.deps` and patched node modules separately
- Change `TARGET` for `release-android` to `default`
- Move `mobile/reset-node_modules.sh` to `scripts/node_modules.sh`
- Move `nix/mobile/android/targets/release-android.nix` to `nix/mobile/android/release.nix`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-15 16:19:27 +02:00
Jakub Sokołowski 5607540ac1
nix: data in nix/deps/gradle should be JSON
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 17:24:59 +02:00
Jakub Sokołowski 6746b7d932
nix: data in nix/deps/clojure should be JSON
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 16:02:17 +02:00
Gheorghe Pinzaru d133f57678
Remove source-map android debug
Update flipper version android

Disable source maps ios

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-05-14 15:43:06 +03:00
Jakub Sokołowski ed4d0a1ed9
nix: refactor updating Gradle dependencies
changes:
- Moved Gradle deps setup to `nix/deps/gradle`
- Dropped `nix/mobile/android/maven-and-npm-deps/maven`
- Used GNU Parallel to optimize `nix/deps/gradle/generate.sh`
- Move Maven+Node shell setup from `release-android.nix` to Android shell
- Moved AAPT2 patching to `nix/pkgs/aapt2`
- Drop `patchPhase` and `gradlew` use from `release-android.nix`
- Simplify symlinking `{mobile,desktop}/js_files/*`
- Add new `nodejs` shell and merge it with `clojure` and `gradle`
- Re-created Gradle deps files with new scripts:
  - `nix/deps/gradle/proj.list`
  - `nix/deps/gradle/deps.list`
  - `nix/deps/gradle/deps.urls`
  - `nix/deps/gradle/deps.nix`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:30 +02:00
Jakub Sokołowski 45f1d58832
nix: simplify android release build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:23 +02:00
Jakub Sokołowski df25f09159
nix: move yarn2nix setup to nix/deps/nodejs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:23 +02:00
Jakub Sokołowski 381b2462a4
nix: put clojure deps under pkgs.deps.clojure
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:23 +02:00
Andrey Shovkoplyas d3860508ca
hot reload and re-frisk 1.3.1
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-05-04 11:22:19 +02:00
Jakub Sokołowski 6aba34b82d
fix parsing of maven package cache
Depending on Maven version the file that contains name of repository
will be named _remote.repositories or _maven.repositories.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-05-04 10:40:08 +02:00
yenda d5ef218584
use shadow-cljs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: yenda <eric@status.im>
2020-04-30 15:43:46 +02:00