Commit Graph

83 Commits

Author SHA1 Message Date
flexsurfer f89fd8ca54
move status-im under legacy (#18237) 2023-12-19 18:41:30 +01:00
Parvesh Monu d40f70dca4
Optimize chat screen navigation view (#18055) 2023-12-19 16:01:13 +05:30
Parvesh Monu 8ba9f45e44
Upgrade react-native-reanimated to 3.6.1 (#18216) 2023-12-18 09:44:53 +05:30
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
flexsurfer f79860fb97
move blob to rn, remove unused code, move images events to status-im2 (#18117) 2023-12-08 17:27:21 +01: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
Ibrahem Khalil 132e53844c
New TopBar animation (#17582) 2023-11-03 14:20:10 +02:00
Ibrahem Khalil 8296bda85b
Fix recent album not showing count (#17498) 2023-10-24 17:23:16 +03:00
Icaro Motta 7ae96e86f1
Enable ns sorting linter and clean+sort all namespaces (#17618) 2023-10-16 22:03:18 +00:00
flexsurfer ca88de162a
[#17435] migrate status-im.notifications (#17603) 2023-10-13 12:40:50 +02: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
Omar Basem e0f83384a2
Quo2 Wallet: Network Link (#17049)
* Quo2 Wallet: Network Link component
2023-08-23 12:53:45 +04:00
yqrashawn a6710f902f
feat: render all avatars using media server (#16193) 2023-08-15 09:59:40 +08: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
watson cebc50d409
Adjust identifiers page to do highlighting (#15752) 2023-06-27 14:45:10 +01:00
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
Jamie Caprani 2cbc94320d
feat: add parallax component (#16277) 2023-06-16 03:09:10 -07:00
Parvesh Monu bcc20c7458
Shell navigation and animations 2023-06-14 22:18:01 +05:30
flexsurfer cd69d0423a
fix (fn[]) usage in hiccup (#15713) 2023-04-25 15:13:14 +02: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
Parvesh Monu f0ca6372cd
Implement onboarding slide animation (#15489) 2023-03-28 20:57:54 +05:30
Omar Basem f640eb8c8f
feat: drag to dismiss lightbox (#15349)
* feat: drag to dismiss lightbox
2023-03-15 16:37:01 +04:00
flexsurfer 0fe6fea7e4
Improve home animations (#15247) 2023-03-13 19:47:04 +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
Omar Basem 8923408972
Landscape Mode (#15175)
* feat: landscape mode
2023-03-03 16:33:28 +04:00
Ajay Sivan aec1b5fafa
quo2 strength divider component (#15177) 2023-03-01 15:47:02 +00: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
Jakub Sokołowski 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
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
flexsurfer ed348e0871
cleaning (#14808)
cleaning, introduce react-native.red-black-tree and move messages list events
2023-01-18 12:16:33 +01:00
yqrashawn 02a1c3597f
feat: undo delete with toast (#14618) 2023-01-10 10:02:23 +08:00
Christoph Pader 6280a6c4d5
feat: implement quo2 bottom sheet component (#14209) 2022-12-28 15:23:58 +01:00
yqrashawn 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 37909c2d81
feat: toast component (#14376) 2022-12-20 21:52:28 +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
Parvesh Monu d4897de205
partially implement shell jump-to navigation (#14410) 2022-11-30 21:46:01 +05:30
Icaro Motta 73983b2abd
[#13967] Displays filtering tabs and read/unread filter (#14105) 2022-10-05 14:44:37 -03:00
Emil Konstantinovitz 09e4df3cf7
[#13579] Added integration test for opening one-to-one chat (#13984) 2022-09-12 13:32:55 -04:00
Erik Seppanen b05787b0b2
[13857] Extend integration tests to recover multiaccount from seed phrase 2022-09-07 14:45:48 -04:00
flexsurfer 1d87957b04
[#13517] UI Component - Message Input (#13620) 2022-09-06 11:19:05 +02:00
Jakub Sokołowski 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
Erik Seppanen c73ef111f8
[13857] Extend integration tests to recover multiaccount from seed phrase 2022-08-31 14:27:23 -04:00
Parvesh Monu 05219bd721
Implement react-native-hole-view (#13868) 2022-08-29 21:32:30 +05:30
Siddarth Kumar 8f7c89ba33
upgrade async storage version (#13846) 2022-08-24 19:51:49 +05:30
Erik Seppanen 959df25c02
[#13687] Extend integration tests to create a community 2022-08-12 14:18:49 +01:00
Andrea Maria Piana 901081a4cf
Allow running multiple integration tests 2022-08-10 12:11:22 +01:00
Parvesh Monu d9d3f2bb73
Implement React Native Reanimated V2 2022-06-28 23:51:23 +05:30
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 e4cba0f663
Add status-go tests
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-05-25 17:59:02 +01:00
andrey f39b688e89
google free and metrics free
Signed-off-by: andrey <motor4ik@gmail.com>
2022-05-19 07:22:23 +02:00