Compare commits

..
Author SHA1 Message Date
Serhy d1a3a27226 [Fixes: #12191] Fix muting chat 2021-06-07 13:23:08 +03:00
Serhy d72feed968 Bump release to 1.14.0 2021-06-02 14:34:15 +03:00
Andrea Maria Piana e4e9556303 set depreacted metamask fields
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-02 13:18:29 +02:00
Serhy 3207300e02 Tests execution ordering
Signed-off-by: Serhy <sergii@status.im>
2021-06-02 13:22:00 +03:00
Andrea Maria Piana f0d739291e Add community link in description
Fixes: #12179
Fixes: #12133
Fixes: #12131

This commit adds a community link in the description that can be copied and
shared by the user.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-02 12:18:13 +02:00
jinhojang6 f26c3090c6 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-01 13:45:06 +02:00
Andrea Maria Piana 505b290c6e [Fixes: #12140] Don't show gap after 30 days and allow user to set sync period
This commit adds a setting in sync section so that user can select the
amount of days the can sync.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-01 13:08:20 +02:00
Andrea Maria Piana 508060f18d Fix community toggle
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-01 13:02:31 +02:00
Andrea Maria Piana a3cb837266 Fix group chat gaps 2021-06-01 13:02:20 +02:00
Andrea Maria Piana ae3df0c730 Exclude blocked contacts from list 2021-06-01 13:02:20 +02:00
Andrea Maria Piana d6a999043e dont show gaps in timeline/profile chats 2021-06-01 13:02:19 +02:00
Andrea Maria Piana 58d994706f Hide option to select community type
Fixes: #12147

Hide option to select community type
2021-06-01 13:02:18 +02:00
Michele Balistreri 213c288cc1 handle hash-message failure correctly
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-31 16:41:02 +02:00
Michele Balistreri 114e704b78 fixed various styling issues
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-31 12:38:40 +02:00
Serhy 4cd6ada534 Update e2e to check ther is no blocked user in mentions
Signed-off-by: Serhy <sergii@status.im>
2021-05-31 12:10:24 +03:00
Churikova Tetiana 1bdbf3e403 e2e: mentions + new e2e + unread mentions
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-28 17:42:54 +02:00
Andrea Maria Piana ef13b4d210 [Fixes: #12061] Add unread mentions count
Fixes: #2061

This commit adds an unread mentions count in 3 places:

1) Public chats
2) Communities in home
3) Communities chats

The logic is that if you have unread mentions, it will show you the
count of messages with unread mentions, while if you have only unread
messages, you will see a blue dot.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-28 16:50:53 +02:00
Andrea Maria Piana 8926a7ad4e Allow importing db from script
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-28 12:58:40 +02:00
Michele Balistreri 65d76ba9c8 remove puk/pairing step from onboarding
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-27 14:02:15 +03:00
Serhy 399e7d399b Update e2e with more checks
Signed-off-by: Serhy <sergii@status.im>
2021-05-27 13:35:15 +03:00
Serhy 69a50ff9ab Update kk test with additional check
Signed-off-by: Serhy <sergii@status.im>
2021-05-26 11:44:54 +03:00
Andrea Maria Piana 152407b903 [Fixes: #12060] Highlight posts that mention you
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-26 08:40:41 +02:00
jakub e30ca97184 nix: drop references to nix-cache-cn.status.im
See:
https://github.com/status-im/infra-ci/commit/faaf051b

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-25 17:53:47 +02:00
Roman Volosovskyi 011de1b8ae Tracing of nested fx handlers on :trace logging level 2021-05-25 16:26:51 +03:00
jakub 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
Churikova Tetiana e5b7fb13a1 e2e: 3 last upgrade tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-25 13:46:28 +02:00
Michele Balistreri b67ecacd8b fix #10793 and #11060
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-25 13:38:40 +03:00
Roman Volosovskyi 58d358125c [wallet] Show cached balance before fetching latest 2021-05-25 10:26:57 +03:00
Andrea Maria Piana f5baee5039 [Fixes: #12136] Fix endless spinner on group chat invitation
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-24 15:55:49 +02:00
Volodymyr Kozieiev 2b0c498613 Edit community
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-24 16:26:42 +03:00
Michele Balistreri 177b905291 remove unreliable card check
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-24 12:24:40 +03:00
Michele Balistreri 4217f558a8 add reset with mnemonic on frozen/blocked cards
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-21 15:41:52 +03:00
Andrea Maria Piana a71468f425 Allow toggling communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-21 13:09:19 +02:00
Andrea Maria Piana dd5c30b7a0 Move mailserver logic/gaps/ranges to status-go
This commit moves most of the mailserver logic to status-go.

- Filters are now removed and not passed to the client anymore
- Ranges have been removed
- Gaps are now messages with a different content type
- Upsert/Save chat has been removed and instead we have more specific
endpoints such as CreatePublicChat/CreateOneToOneChat/CreateProfileChat
- Creation of timeline/profile chat has been moved to status-go

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-21 07:44:21 +02:00
Brian Sztamfater 929925af39 Resolve username to ENS right after 1-1 chat opened after username search from 'Start new chat' by ENS
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-05-19 12:00:37 -03:00
Churikova Tetiana 880321ccc4 e2e: paring upgrade test
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-19 14:34:29 +02:00
Michele Balistreri 1bff966679 correctly resume keycard setup after cancel
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-19 13:11:39 +03:00
Michele Balistreri f770045f89 show notifications and welcome screen for keycard
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-18 19:14:38 +03:00
Michele Balistreri 72df44da6c allow creation of recovery cards from logged-out state
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-18 14:09:11 +03:00
Churikova Tetiana 273b0064e2 e2e: upgrade - dapps, wallet
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-18 10:39:27 +02:00
guylouis 9dcf3cde93 added v1.13 release note
Signed-off-by: andrey <motor4ik@gmail.com>
2021-05-18 10:09:14 +02:00
Churikova Tetiana b6623ae1c3 e2e: merge too granular e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-14 11:20:14 +02:00
Churikova Tetiana 2618201bb3 ci: make e2e stage depends on publish param
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-12 20:42:30 +02:00
Roman Volosovskyi ba3e229d6f make target for clearing xcode's derived data dir 2021-05-12 16:39:29 +03:00
Michele Balistreri 8cb0ad9285 add signTypedData_V4 to Keycard and update status-go
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-12 13:48:05 +03:00
Roman Volosovskyi 6c7d689a7c fix building for ios simulator from cli/xcode 2021-05-11 12:42:52 +03:00
Serhy 6a71a1e798 Update e2e to merge emoji long tab in another test
Signed-off-by: Serhy <sergii@status.im>
2021-05-11 12:25:59 +03:00
Volodymyr Kozieiev 3469aca1d8 Remove fastlane metadata because no one use it
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-11 12:09:42 +03:00
Michele Balistreri 427209c960 removes flow related flags when cancelling
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-11 09:09:52 +03:00
Tetiana Churikova b71617e490 update bug report: add missing brackets
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-10 17:35:52 +02:00
Tetiana Churikova ba8c943046 update bug-report
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-07 14:48:52 +02:00
Serhy ef042bdc0b Accept-Reject chats from activity center test
Signed-off-by: Serhy <sergii@status.im>
2021-05-07 13:14:57 +03:00
Volodymyr Kozieiev 8628cbbf76 Update release guide
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-06 15:58:58 +03:00
Michele Balistreri 0b8509949a add factory reset option on new Keycard account
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-06 13:26:45 +03:00
Roman Volosovskyi a7660754fb Allow to enter bip39 password on account recovery 2021-05-05 12:06:55 +03:00
Churikova Tetiana ec528f98cc e2e: upgrade - commands, audiomessage
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-03 17:07:23 +02:00
jakub dd0031f68e ci: add PR numbers to filenames of artifacts
This is useful for QA team when they download multiple builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-02 22:19:03 +02:00
Churikova Tetiana be37b1683e e2e: fix for progress bar and testrail for e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-30 18:41:14 +02:00
Churikova Tetiana 710e55002b e2e: 1 upgrade test
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-30 11:55:43 +02:00
Serhy 19eda04c90 Test activity cener with only-contacts setting
Signed-off-by: Serhy <sergii@status.im>
2021-04-29 14:00:33 +03:00
jakub cf9f160de9 ci: nicer artifact filenames for release builds
Depends on: https://github.com/status-im/status-jenkins-lib/pull/24

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-28 17:25:39 +02:00
Roman Volosovskyi 3dfa7beacd [wallet #12000] Check tx history in 2/3/5/10/20 minutes on buy crypto 2021-04-28 17:10:38 +03:00
Brian Sztamfater 4dacc95de6 Include a 'My Profile' button in the Start New Chat dialogue
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-27 16:44:03 -03:00
andrey 448782b3d3 small chat perf impr
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-27 16:36:11 +02:00
Roman Volosovskyi 693c41850c [wallet] Store pending transactions 2021-04-27 12:25:18 +03:00
andrey 1bd62f1199 [#12033] Can't open Status tab after upgrade from 1.12 to 1.13 if the tab has never been opened before upgrade
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-23 16:47:15 +02:00
Roman Volosovskyi 2ed25a9f51 fix warning on intro screen 2021-04-23 16:48:37 +03:00
Churikova Tetiana 3b6f3b77cc e2e fix PNs
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-23 14:59:33 +02:00
Volodymyr Kozieiev 67b646dcca status-go cleanup
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-22 17:10:42 +03:00
andrey d59c9205ea [#12011] Invisible messages in public and group chats if they were received while user was on another screen
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-21 13:10:19 +02:00
andrey c2212af3ff [#12014] Skip 'Accept and join' view when navigating back from public chat joined from referral
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-21 13:08:36 +02:00
andrey da9e6686c6 [#12008] "Community information is not found" after opening community view from home
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-20 17:44:28 +02:00
Andrea Maria Piana f7ab1ff20c Bump release to 1.13.0
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-20 17:55:36 +03:00
Andrea Maria Piana 956bb813d4 Make cut release executable 2021-04-20 11:07:48 +02:00
Andrea Maria Piana 807dabf5b2 Load message on-component-did-mount
I have changed the behavior of loading notifications:

Before it would always use the same function and check for `cursor !=
""`.
This worked on most cases, but sometimes the user would jump back to the
home view without doing any clean up, so cursor would be `""` and it
would not load any notification anymore.

Now the two functions are split in initial load, and load-more.

Initial load is called on component-did-mount so we don't have to worry
about where the user is coming from. We also avoid multiple firing of
the events by checking `loading?`, so it does not result in duplicated
notifications.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-20 11:06:19 +02:00
Churikova Tetiana 3b652adaf3 e2e: align with chat optimization
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-19 20:23:31 +02:00
andrey c22ffb1032 [#11994] No chats on Home screen after reopening the app if appearance doesn't match the device settings (dark/light mode)
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-19 18:53:29 +02:00
andrey 2494c61f85 [#11991] No unread message indicators after navigation back to 'Chats' main view via tap on Chats tab button 2021-04-19 18:53:19 +02:00
andrey 073371c4ed chat list optimization 2021-04-19 18:53:19 +02:00
Andrea Maria Piana db848a1f19 Add permission handling & enable HW acceleration on webview
This extend adding permissions to a separate webview used for buying
crypto.
It also removes a fix with hardware acceleration, as the camera does not
work if disabled.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 18:26:18 +02:00
Brian Sztamfater 85a01f5404 Add support for SOCKS token
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-19 11:17:37 -03:00
andrey adaf77ba1b v4
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 14:52:30 +02:00
andrey 7f839f952d eth_sign support 2021-04-19 14:50:44 +02:00
Volodymyr Kozieiev b29912f7f7 community links unfurling
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-19 15:44:32 +03:00
Roman Volosovskyi fab241f6ac Pevent incorrect usage of fx/defn inside fx/merge
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 12:51:37 +02:00
jakub 594c83013c ci: upgrade jenkins lib to 1.2.12 to generalize GH release
This is required to also ad GitHub releases to `status-desktop`.

Also renamed `status-react-jenkins` to `status-jenkins-lib` for clarity.

Depends on: https://github.com/status-im/status-react-jenkins/pull/23

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-19 11:47:34 +02:00
jakub 2e94e0e765 ci: rename folder to match status-desktop naming
Part of re-organization related to release builds for desktop.

See:
- https://github.com/status-im/status-react/pull/11992
- https://ci.status.im/job/status-desktop/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-19 11:47:25 +02:00
andrey 05ed28b9a2 re-frisk 1.5.0 2021-04-19 11:45:43 +02:00
Serhy f4530d4d03 activity center: align e2e
Signed-off-by: Serhy <sergii@status.im>
2021-04-19 11:39:43 +03:00
Shivek Khurana ed4e227144 Add a long running task to transfer events to Go when the user logs in, rename interceptors namespace to core, send events in batches, capture s/on-will-focus, capture navigate-to-cofx, stop long running task if any event fails validation, not quite ready yet, needs more testing
Remove redudant println, don't stop the task in case of a bad event, just reject that batch, capture navigate-to-cofx events with an effect, capture parts of screens/on-will-focus event

Fix lint

Shorten comment widths, update  to use less brackets, call events reset once, double run safety for long running task

Call onboard after stopping

Reset periodic-tasks-chan to  on close, formatting

Get rid of redundant inline function

Update go version to point to 0.75.1

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-19 10:59:23 +05:30
andrey 93ce02b547 [#11958] Add activity center 2021-04-16 20:45:20 +02:00
Andrea Maria Piana 5bb849f9c1 Add messages from contacts only 2021-04-16 20:45:19 +02:00
jakub 310a1ad5f1 drop scripts/tag-release.sh in favor of scripts/cut-release.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-16 16:14:57 +02:00
Andrea Maria Piana a90d8a1439 Add release guide & script to cut release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-16 16:12:37 +02:00
Michele Balistreri acbd240070 add change pairing code functionality
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-16 13:09:01 +03:00
Roman Volosovskyi c77b350d77 [wallet #11811] Show transfers with unspecified chaiId 2021-04-15 17:42:52 +03:00
jinhojang6 2cf0a60977 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-15 13:56:59 +02:00
jakub 711389365c doc: update update-playstore-metadata job link
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 16:14:16 +02:00
jakub ef5031a4aa ci: update Google Play JSON credential name
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 14:04:39 +02:00
jakub ab7e9795ce ci: use status-im-auto cred for e2e PR jobs
Trying to clean up duplicate credentials.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 13:50:22 +02:00
jakub 7eca3c42d7 ci: add Jenkinsfile for pod repo updates
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 13:48:00 +02:00
Volodymyr Kozieiev e307b4faa6 Fixed error on login with attempt to save wrong key into account
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-14 11:14:12 +03:00
Roman Volosovskyi 4129ca1597 [wallet #11898] Fix disappearing tokens after adding a new account 2021-04-14 11:09:17 +03:00
Brian Sztamfater 31ba933917 Improved Start New Private Chat interface
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-13 16:57:47 -03:00
Michele Balistreri eea5b4eb0f add change PUK functionality
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-13 18:21:21 +03:00
Brian Sztamfater d1016669bb Remove self-mentions
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-13 11:22:52 +02:00
Serhy 4ca7c0b989 Jenkins URL to rerun tests
Signed-off-by: Serhy <sergii@status.im>
2021-04-13 11:16:25 +03:00
andrey f6e480344d do not render not active screen
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-13 08:40:02 +02:00
Shivek Khurana 5eed7bd560 Disable Medium.com unfurling
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-12 14:51:12 +05:30
andrey 87f86d3b7b bump re-frisk 1.4.0 2021-04-12 08:36:54 +02:00
jakub 8890f25f96 ios: update gems, fastlane 2.164.0 to 2.179.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 10:23:37 +02:00
jakub 651065f0a6 ios: fix saving stderr logs from react-native-xcode.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 09:50:14 +02:00
jakub b27a53bdee nix: fix order of starting iOS shell hooks
Fixes the `'Statusgo.h' file not found` error.

Resolves: https://github.com/status-im/status-react/issues/11951

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 09:50:13 +02:00
Roman Volosovskyi 2116847fc6 [wallet] cleanup 2021-04-08 23:58:55 +03:00
barukimang 965438bc87 fixed broken urls readme and contributing pages
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-07 19:06:30 +02:00
Shivek Khurana 90ad5f2f77 In key management section, the mnemonic was not being trimmed, which lead to issues
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-05 18:02:49 +05:30
Michele Balistreri f0827ff624 add creation of backup keycards
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-02 17:11:36 +03:00
Samuel Hawksby-Robinson be0ad943ea Anon metrics transfer
Saving my initial noodling

Saving my initial noodling

Filtering working much better, data collection working better

Added jsonrpc call params

Added transformations ns and funcs

whitelisting the new rpc method

Addressed PR feedback

Minor fix for the on-failure log/error

lint fix

manual lint fix

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-01 17:07:18 +05:30
Roman Volosovskyi 937efc9f4f [wallet #11944] Watch confirmation of sent tx when syncing is disabled 2021-04-01 11:31:54 +03:00
Andrea Maria Piana 116b4d8812 Add community notifications on android & IOS
[Fixes: #11806]
[Fixes: #11877]

Features added

An admin should receive a notification on android if a community request is made
Clicking on the push notification will take you to the list of requests
Changes to push notifications
Push notification for messages are grouped by chat, similarly to discord. Only the first notification in a chat will alert, the next will be "silent" notification. Meaning you will see the message but it will not alert. This is consistent with discord/whatsapp.
Clicking on a transaction notification will take you to wallet (not sure it was doing that before, but it might have)
Changed the behavior of the notification toggle, before Notifications and wallet transactions were separate, meaning you could have wallet transaction and Notifications disabled and you'd still receive transactions notifications. Now you need to have Notifications enabled to receive wallet transactions. Eventually we will have an option to toggle message notifications.

Technical details

Removes headless tasks, they were not used
Message notifications are passed unchanged to java, we still check if the chat is in the foreground, but no modifications are made to the notification object. This should get us closer to avoid clojure completely.
Merged the two notifications implementation (NewMessageSignalHandler and PushNotificationHelper). We should split maybe off in more meaningful classes, but there's less code duplication now, and it can be re-used for non-chat (communities) notifications.
Parsing of text for message notifications is done in status-go
Signal is not passed to status-react if notifications are not enabled

Next step

To completely remove notification code from status-react the following are required:

Java needs to be alerted of which chat is in the foreground and whether the app is in the foreground
Transaction notification body message need to be created in status-go
Notification signal needs to be stopped in Java

Limitations

If the name of a contact changes, the notification will not change, once is displayed, it won't be modified
2021-03-31 21:45:08 +02:00
Roman Volosovskyi 460685212a [wallet] Finetuning RPC calls for new accounts 2021-03-31 16:08:25 +03:00
guylouis 46655dbd48 Added v1.12 release notes
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-31 12:10:01 +02:00
Samuel Hawksby-Robinson f970834536 Added ToC, Tidied Troubleshooting, Added images to avoid future 404s
Removed superfluous check

Adjusted images to be 50% the page width

Image width 75%

Finished off REPL section

Signed-off-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2021-03-30 23:18:37 +01:00
Samuel Hawksby-Robinson a4836120e6 Added a doc for IDE setup
Based on https://notes.status.im/9Gr7kqF8SzC_SmYK0eB7uQ?view, hopefully this document can help some poor soul in the future. I have a little more work to do but I'm interested in whether this kind of document would be welcome in the repo
2021-03-30 22:57:46 +01:00
Roman Volosovskyi a364ce1906 [wallet] Optimized watching for tx confirmation
Update e2e
2021-03-30 22:16:38 +03:00
Brian Sztamfater 0c55f1208b Move react-native-status to a pod dependency
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-30 10:54:00 +02:00
Serhy da6860d693 pdate in balance related tests
Signed-off-by: Serhy <sergii@status.im>
2021-03-29 13:56:56 +03:00
andrey 94235aa703 navigate to login when error
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-29 12:18:48 +02:00
Samuel Hawksby-Robinson 5da9efebe3 Removed region from on-ramping we don't want it (#11920)
* Removed region from on-ramping we don't want it

* Updated status-go version

* revert change make ios made to keycard version

* Updated status-go version

* Updated status-go version

* Updated status-go version
2021-03-25 14:27:10 +00:00
andrey 3de7c37d90 chat input performance improvements
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-25 14:44:57 +01:00
Roman Volosovskyi 7c4c520712 [wallet #11860] Show preloaded tx history when app is offline 2021-03-24 17:48:40 +02:00
Andrea Maria Piana a8ae933604 Revert "Anon metrics transfer"
This reverts commit 2abd430e02.
2021-03-24 16:05:31 +01:00
Samuel Hawksby-Robinson 2abd430e02 Anon metrics transfer
Saving my initial noodling

Saving my initial noodling

Filtering working much better, data collection working better

Added jsonrpc call params

Added transformations ns and funcs

whitelisting the new rpc method

Addressed PR feedback

Fix lint

Add reasons to why txf ns exists

Transform event instead of the contexts

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-03-24 15:33:29 +05:30
Andrea Maria Piana a99e7f660f Add banning of users in communities
This commit adds bannning of users in communities for on-request and
invitation only communities.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-03-24 09:31:54 +01:00
jakub 8268346dfa fdroid: small fixes for docs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-23 13:33:30 +01:00
andrey f5df7805ee [#11864] Loopring smart contract bug
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-22 17:47:12 +01:00
Churikova Tetiana 5b08242102 e2e: refactor test browsing
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-19 19:53:45 +01:00
Roman Volosovskyi f8983ab147 [wallet #11902] Handle chain id mismatch 2021-03-19 18:22:32 +02:00
andrey 067c69cca4 [#11904] update swarm gateway
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-19 12:53:02 +01:00
Michele Balistreri 77e6f83e2e handle multiple paired keycards with the same account
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-03-18 16:24:31 +03:00
Churikova Tetiana 4e0ec35ea5 e2e: added delivered for group chats and check for PNs
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-17 14:41:22 +01:00
andrey 66a4ab5aef [#11883] Unread indicator re-appears for received message after relogin
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 14:30:38 +01:00
andrey 9d7dcc6ae7 [#11880] Open user profile when tapping on user icon in 1-1 chat
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 11:20:10 +01:00
jakub 46f8d9fdbf docs: update format of F-Droid metadata
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-17 11:18:39 +01:00
andrey b22acc3da2 [#11882] Replace #status with #support in Profile > Need help
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 10:56:45 +01:00
Roman Volosovskyi e5f9de828d [wallet] Nonce range cache 2021-03-16 20:45:09 +02:00
Andrea Maria Piana 3f9817b977 upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-03-16 13:51:21 +01:00
andrey 503028cb4e fixed timeline load more, fixed message confirmation status
fixed group chat invitation

Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-16 09:35:22 +01:00
andrey c7cc9e27a9 [#11797] Communities issues
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 18:08:50 +01:00
Churikova Tetiana 313181ddb3 e2e: extend kk account creation
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-15 16:06:27 +01:00
Roman Volosovskyi a07c65d173 [wallet] Store last fetched balance and nonce in db 2021-03-15 16:36:18 +02:00
jinhojang6 1431cf80e1 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 15:09:38 +01:00
jinhojang6 1aba1f8000 Add the #status-arabic public chat
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 12:33:54 +01:00
andrey 76b1e2a007 bump re-frisk
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-12 13:01:59 +01:00
andrey 25d5672355 messages improvements 2021-03-12 12:07:15 +01:00
Roman Volosovskyi f572f5ef5e Add RPC usage stats screen 2021-03-10 14:18:52 +02:00
andrey 51178ab1b2 [#11843] "Enable all" is disabled after relogin for 3 or 4 chat link previews after relogin
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-08 15:21:26 +01:00
andrey a9124d0fd2 fix pods
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-08 13:52:52 +01:00
Churikova Tetiana ee4f6ead12 e2e: fix balance updating
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-08 09:53:43 +01:00
Michele Balistreri 5fecdd7830 keycard account removal and card reset
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-03-08 09:13:26 +03:00
Andrea Maria Piana 49b78c0cea Dont push notification if chat is not in cofx
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-05 16:10:28 +01:00
andrey aee782d468 [#11822] Own status updates are shown on other user profiles 2021-03-05 16:09:09 +01:00
Roman Volosovskyi ff02219080 [#11842] Fix login after restoring existing account 2021-03-05 14:51:07 +02:00
Roman Volosovskyi 9c7c796e02 [wallet] Avoid requesting of token balances on account creation 2021-03-05 08:16:50 +02:00
Roman Volosovskyi 843c015d56 [#11823] Fix balances fetching on recovering kk multiacc 2021-03-04 18:09:28 +02:00
Serhy 174329d098 User profilepic display setting test
Signed-off-by: Serhy <sergii@status.im>
2021-03-04 11:39:01 +02:00
andrey 0491038b09 1.12.0 2021-03-03 14:03:39 +01:00
jinhojang6 ac6a4af207 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 13:59:59 +01:00
andrey 106e9112e0 [#11395] Inapp Keycard upsell MVP
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 12:20:17 +01:00
andrey c625e95d5e [#11815] GNT to GLM Migration was not implemented
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 12:18:06 +01:00
Roman Volosovskyi 580ecfedc1 [wallet] RPC calls optimzations for new accounts 2021-03-03 10:55:18 +02:00
jakub 4cc99c6bb8 nix: fix name fo config value for unsigned build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 18:26:42 +01:00
jakub 6a764869a0 doc/FDROID.md: add explanation of Android build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-02 16:58:02 +01:00
jakub aff335b305 gradle: Exclude Google libraries when GOOGLE_FREE=1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:37 +01: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 c57974d9ff nix: upgrade go-maven-resolver to v1.1.0
This release adds support for resolving transitive dependencies.
https://github.com/status-im/go-maven-resolver/releases/tag/v1.1.0
https://github.com/status-im/go-maven-resolver/pull/5

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:19 +01:00
Churikova Tetiana a7f9a98f48 e2e: checking balance on mobile network
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-02 12:59:26 +01:00
jakub c703e45105 docs: update instructions in doc/FDROID.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:41 +01:00
jakub 8376fedb4b make: add release-fdroid and fdroid-nix-dir targets
With these targets added we can simplify the format of the F-Droid YAML
metadata file which defines how to run `status-react` builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:34 +01:00
jakub d0d8815d4a readme: add "Get it on ..." badges
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:34 +01:00
Shivek Khurana fa9fceb75d Fix the top margin on keystorage views
Fix lint

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-03-02 16:16:41 +05:30
jakub 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
andrey 9b6b337453 [#11764] Data that was added before pairing devices is not synced anymore across synced devices
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 16:26:20 +01:00
jakub 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 4f9e38930e Revert "[#11395] Inapp Keycard upsell MVP"
This reverts commit 99e99b0e
2021-03-01 12:12:09 +01:00
andrey 99e99b0e81 [#11395] Inapp Keycard upsell MVP 2021-03-01 12:07:46 +01:00
Churikova Tetiana 83630b28bb e2e: migration and message statuses
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-26 16:29:11 +01:00
Gheorghe Pinzaru c7009ff6f7 Add request/approve communites
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-26 15:38:19 +01:00
Brian Sztamfater c2f513f67e [#11743] Fix crash on network change
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-26 15:35:47 +01:00
Roman Volosovskyi 37284051dc PNs for transaction messages 2021-02-25 10:51:19 +02:00
guylouis c1315eca90 Update RELEASES.md with v1.11 notes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-24 11:23:11 +01:00
guylouis 9f9370f72d Update RELEASE_CHECKLIST.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-24 11:22:31 +01:00
Churikova Tetiana 61da0db9c9 e2e: previews in lomks
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-23 21:40:03 +01:00
Michele Balistreri 325a860916 faster keycard login
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-02-23 20:15:24 +03:00
Volodymyr Kozieiev a383cfa39a Delivered messages have double-check icon in private chats
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-02-23 18:47:40 +02:00
Serhy d5e1d3fe65 New e2e test to set image from Galary and Photo
Signed-off-by: Serhy <sergii@status.im>
2021-02-23 15:15:42 +02:00
jakub f0d79f3af0 ci: adjust behavior of PUBLISH to be true for releases
Otherwise release builds never create the GitHub draft releases.
Not unless a user explicitly stats a build with `PUBLISH: true`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-23 13:45:25 +01:00
Michele Balistreri 09ac3e6a9e use the currently selected account for signing messages/typed data
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-02-22 13:37:09 +03:00
Churikova Tetiana f3c85c1e7a e2e: several fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-19 14:47:45 +01:00
Andrea Franz 505171cf87 enable Keycard on iOS
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2021-02-19 10:26:16 +01:00
Churikova Tetiana f9c3747768 e2e:-5 critical e2e and fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-18 16:13:40 +01:00
andrey 9648f741b4 cleaning 3
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 16:16:54 +01:00
andrey e493a2b79c [#11395] Inapp Keycard upsell MVP
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 13:19:08 +01:00
Churikova Tetiana 8698e13fa1 e2e: nightly fixes and py upgrade
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-17 12:07:45 +01:00
Andrea Maria Piana 452e54fc19 Add buy crypto banner
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-17 10:25:45 +01:00
Churikova Tetiana 4f094c174d e2e: connecting status handling
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-16 16:45:52 +01:00
andrey 7c04bb9076 [#11716] Implement new Connectivity dialogues and remove 'Offline' snackbars
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-16 16:25:49 +01:00
Andrea Maria Piana 8d3fa3c3d7 Fix images being dropped in profile channels
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-16 10:02:47 +01:00
andrey 32393c9091 [#11704] Android 11 flatlist performance degradation
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-15 14:51:53 +01:00
Andrea Maria Piana 35f152c479 Add our.status.im and medium.com link unfurling
Fixes: #11739
Fixes: #11738

Adds unfurling for our.status.im and medium.com

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-15 13:50:51 +01:00
Andrea Maria Piana 37b36d38c7 update statusgo
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-15 10:36:16 +01:00
Churikova Tetiana 1a77891273 e2e: fix for duplicating chats
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-11 09:56:50 +01:00
Andrea Maria Piana 63893ff575 Handle eth_accounts exception
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 18:08:22 +01:00
Andrea Maria Piana 226aacdeac Only scale if width/height is positive
Fixes: #11728
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 16:45:35 +01:00
Roman Volosovskyi a37dbb57d6 [wallet] Merge blocks ranges 2021-02-09 16:48:00 +02:00
jinhojang6 4fdfa3e008 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 14:02:40 +01:00
Churikova Tetiana 8d510be72e small nightly fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-09 11:16:19 +01:00
andrey 72d592a5a6 hide increase gas/cancel temporary for 1.10 2021-02-09 08:53:44 +01:00
Andrea Maria Piana 1075dfcb8b Release 1.11.0 2021-02-08 16:10:26 +01:00
Shivek Khurana 49d4b15761 Add tenor and giphy.com support
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-08 16:09:22 +01:00
Churikova Tetiana a7f9998d6c e2e: nightly fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-08 14:18:22 +01:00
Serhy b2be539374 When no chat on screen is expected
Signed-off-by: Serhy <sergii@status.im>
2021-02-05 19:47:18 +02:00
Roman Volosovskyi 3685f6a500 [#11117] Move PNs to status-go 2021-02-05 17:03:34 +02:00
Serhy 9a51a46869 Webview camera permission
Signed-off-by: Serhy <sergii@status.im>
2021-02-05 14:19:30 +02:00
Andrea Maria Piana 0867b972c3 Don't rely on contacst for one-to-one mentions, and remove cursor
[Fixes: #11670]
[Fixes: #11671]

This commit fixes 2 issues.

One issue was due to removing tribute to talk, which added in the
`contacts` map any user you open a chat with, and some code relied on
this behavior.

The second issue was likely due to a react native upgrade which might
have fixed a bug but caused a different issue, which resulted in the
text disappearing when cursor was set.

I have removed that (it was only used on android) and everything seems
to be working correctly, but not so sure about this one.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-04 17:54:00 +01:00
jakub d946d473c6 fastlane: use Apple Store Connect API for CI builds
Because our CI Apple account still has 2FA disabled in order for it to
be usable in Jenkin it is now failing with an error that seems unrelated
to 2FA.

The recommended way of doing Apple authentication for CI are App Store
Connect API JWTs. The API appears to support both pushing builds as well as
updating metadata and other tasks like refreshing of provisioning
profiles.

Fixes: https://github.com/status-im/status-react/issues/11713
Issue: https://github.com/fastlane/fastlane/issues/18098
Docs: https://docs.fastlane.tools/app-store-connect-api/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-04 15:10:07 +01:00
Churikova Tetiana 7e8a68ec67 e2e: refactoring commands, wait for balance, find trans
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-04 13:54:06 +01:00
Shivek Khurana 39b0a6bb44 Restrict changes to translations file only
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-02-03 17:00:28 +05:30
Roman Volosovskyi 00ad3e9e1f [#11674] Make sure token balances are fetched on mobile network 2021-02-03 12:45:05 +02:00
Churikova Tetiana 781360a1cf e2e: fix opensea
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-02 17:15:28 +01:00
andrey c76567c20f [#11703] No way to sign in to opensea 2021-02-02 17:15:18 +01:00
Churikova Tetiana 6d38386c11 e2e: update PyYAML and urllib3
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-02 16:57:13 +01:00
Churikova Tetiana 522d03b846 e2e: chat_management + wallet_management
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-02 12:00:17 +01:00
Churikova Tetiana b73fcba395 improve logging, get rid of 2 e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-28 17:09:40 +01:00
Andrea Maria Piana 741e9e834b Avoid concurrent access to contact
In some instances when fetching messages for a timeline the app would
crash as a map was accessed concurrently without locking.
This fixes the issue.

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-28 14:49:14 +01:00
Churikova Tetiana ad006b018c test_recover + test_sign_in
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-28 13:59:59 +01:00
andrey 56c4ffc39f [#11690] Invisible digits in Request transaction dialog in 1-1 chat on Android
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-28 13:57:39 +01:00
Churikova Tetiana d31ed933a0 e2e: reduce amount, continue review
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-27 17:22:16 +01:00
andrey 6469ff912a [#11651] No spinner when pressing "Fetch more messages" in public chat + white toggles in Sync settings on Android
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-27 16:49:57 +01:00
Serhy ff961bbfe8 Fix e2e fails in develop
Signed-off-by: Serhy <sergii@status.im>
2021-01-27 12:25:05 +02:00
Andrea Maria Piana eba6b63258 Fix topic issue, remove ttt, add db export/import
There were a few issues with topic management:

- Topics/ranges were saved one-by-one, which cause an out of memory
error on some devices
- Topics that were not listened to were saved, and therefore requested
from the mailserver, which caused long syncing time

It also removes tribute to talk and add export/import methods

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-26 12:46:21 +01:00
Roman Volosovskyi 9bf4da1edd [wallet] Avoid unnecessary balance checks 2021-01-26 11:53:54 +02:00
Churikova Tetiana c2f8f012a8 e2e: global refactoring
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-25 18:44:24 +01:00
Roman Volosovskyi 6c4097f521 [wallet #11570] Handle non archival RPC node 2021-01-25 15:41:50 +02:00
andrey 35671226e4 remove outdated :initial-props
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-25 10:38:34 +01:00
andrey 08b9cfcf52 [#8284] Remove unnecessary permissions [Android]
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-21 16:23:54 +01:00
andrey 0087a66df8 bump re-frisk 2021-01-21 15:25:54 +01:00
Anton Danchenko 3042a4b696 upgrade xdist to latest version
Signed-off-by: Serhy <sergii@status.im>
2021-01-21 12:51:11 +02:00
andrey cb66886aab [#11665] Youtube-link preview is resized incorrectly in chat view for videos with short title
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-21 11:16:53 +01:00
andrey af2b053fa9 disable fast refresh on ios and bump re-frisk
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-20 11:44:24 +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
jakub b33c086966 nix: set ANDROID_SDK_HOME to a tmp directory
This fixes issues with Gradle complaining about lack of `~/.android`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-19 14:08:59 +01:00
andrey 4704cef3da handle error from infura
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-19 11:52:57 +01:00
andrey 329182fdbe [#11643] Display profile picture only of users I have added to contacts
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-18 10:14:41 +01:00
shivekkhurana 5c3133adb6 Key management screen in place
Key phrase screen in place

Added flow in a Rich comment, added storage screen, added Keycard upsell banner

Validate seed against selected multiaccount

Vvalidate seed against multiaccount

Connected migration flow to Keycard onboarding flow, unable to finish because an event called generate-and-load-key is not being emitted with the flow I made

Fixed state that was needed to start the recovery process, also removed seed-phrase from app-db when onboarding starts

Moved strings to translations in key storage views

Upsell banner bg theme, accordion data, choose-storage next bug, Hide keys managment option for Keycard accounts and from multiaccounts list screen.

Added test for subscription function

Tests for keystore move checkbox and seed phrase input

Fix translations/en.json after merge conflict, add test for seed-phrase input, seed-against-key-uid validation and state setup for redirect to Keycard screens

Update validate fn to mock mnemonic import and cascading changes

Fix linting errors

Fix seed key-uid mismatch popup, reduce styles and remove redundant views

Add dot menu in place of access-existing-keys button on login page

Make multiaccount redirect test more terse

Remove dangling comma from translations/en.json

Fix var that was missed during rebase

fx/merge and extra newline fixes

Removed nil? check, tests pass

Unknown error popup

Redirect Keycard banner to https://keycard.tech

Remove unused sub and fix linting

Fix issue#4 - Unable to enter new seeds

Hide back and disable hardware back on Keycard onboarding intro if the user is coming from migration flow. Fixes issue#1 raised by Diana.

Set state so show wallet balances show up auto magically. Fixes issue#3.

Update tests to capture recovering state

Center align sign in button since the left button was deleted.

Changes suggested by Andrey

Add top margin to Keycard intro only when user comes key storage

Hide manage key storage on ios

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-01-14 22:35:48 +05:30
andrey f28f479256 react native config on ios
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 14:17:01 +01:00
Roman Volosovskyi daf7791d86 [wallet #11535] Show PNs right after enabling 2021-01-14 13:54:46 +02:00
Roman Volosovskyi 73ca49aad5 [#11599] Smaller kk dev menu items
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-14 10:11:20 +01:00
Churikova Tetiana 7cf42b292b Merge branch 'develop' of github.com:status-im/status-react into develop 2021-01-14 10:04:33 +01:00
Frank Tang 2687d7ab9a added github.com to white list of link preview
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:46:58 +01:00
andrey abac5247bf RN 63 and xcode12
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:41:38 +01:00
jakub 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
jakub eb1f1bf587 nix: fix building of status-go forks with different GH owner
Resolves: https://github.com/status-im/status-react/issues/11637

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-13 15:16:07 +01:00
andrey 46d430b69c [#11626] Group chat subtitle shows 'no members'
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-13 12:21:48 +01:00
Serhy e4d175ef93 Revert 11624
Signed-off-by: Serhy <sergii@status.im>
2021-01-13 12:24:32 +02:00
hesterbruikman 25c5106284 Correction
Removed: Auto scan for tokens of primary Ethereum account upon recovery
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-13 10:38:10 +01:00
andrey 3fd36c6904 [#11627] Add GRT erc20 token in our default list of supported tokens in the wallet
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 18:13:00 +01:00
Frank Tang fe6f75e1b7 fix: No "Delete" option for a group chat from the home screen if user has been removed from it
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 13:46:36 +01:00
snyk-bot 6410de803e fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055461
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055462
2021-01-12 13:45:27 +01:00
dependabot[bot] 9d2e2e26ad Bump lxml from 4.6.1 to 4.6.2 in /test/appium
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.1...lxml-4.6.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-12 13:45:11 +01:00
snyk-bot 6c935057c5 fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055461
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055462

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-12 12:38:11 +01:00
Serhy d68f7679df Update saucelabs endpoint
Signed-off-by: Serhy <sergii@status.im>
2021-01-12 11:38:57 +02:00
andrey 346ff25843 [#11610] App crashes on Android with GiFDecoder error
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 10:35:37 +01:00
Andrea Maria Piana 2e7875cfef Fix wrong greater than sign on mailserver connection
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-12 10:03:14 +01:00
andrey d6f2792622 [#11606] Favorites - when changing the name of a favorite, the past name appears quickly when saving it
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 16:46:20 +01:00
andrey 2af23bcb2e intro wizard indicator fix
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 16:45:21 +01:00
jinhojang6 e0b01d2fed Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 10:32:49 +01:00
jakub 9889e80bbd ci: parametrize publishing, make BUILD_TYPE a choice
This changes the behavior of mobile combined builds to not publish
the results of `nightly` or `release` builds unless `PUBLISH`
parameter is set to `true`.

It also makes the `BUILD_TYPE` into a dropdown choice field with
pre-defined values, like `manual` or `e2e`.

Changes:
- Add parameter definitions for `BUILD_TYPE` and `PUBLISH`
- Move uploading of `latest.json` to `Publish` stage
- Make `Publish` stage optional based on the `PUBLISH` parameter

Requires: https://github.com/status-im/status-react-jenkins/pull/21

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-08 12:54:17 +01:00
hesterbruikman e0e497d3d0 Adding 1.10 App/Play store release content (#11581)
* Adding 1.10 App/Play store release content

* Removes Cancel and Speed up tx

As discussed, the feature is not yet reliable for public release. On occasion the nonce cannot be overwritten, resulting in 2 pending transactions.
2021-01-07 09:43:45 +01:00
hesterbruikman abc63af4a8 Create RELEASE_CHECKLIST.md
Moving file to repo to replace hackmd notes doc

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-04 09:29:00 +01:00
Frank Tang b5b16f1278 [Fixes: #10978] Endless loading public chat name
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-04 09:26:55 +01:00
Roman Volosovskyi 767bd46bff Allow non alphanumeric branch names in scripts/update-status-go.sh 2020-12-31 12:50:26 +02:00
Roman Volosovskyi 8e288aea56 [#11379] Add a watch only account from an ENS name 2020-12-30 18:18:24 +02:00
Churikova Tetiana 4f4f6cf29e fixed testrail reports and e2e nightly
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-29 18:48:04 +01:00
Andrea Maria Piana d8235d9e17 Add milestoned to actions 2020-12-29 09:54:29 +01:00
Andrea Maria Piana 5d02472f89 Add next column to zenhub 2020-12-29 09:30:04 +01:00
Frank Tang f306b084da [Fixes: #11586] Every element in a seq should have a unique :key
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-29 09:12:50 +01:00
Andrea Maria Piana 6099262c98 [Fixes: #11579] Add only certain fields to multiaccount on login
`multiaccounts` has some fields that should not be overriden
(`save-password`), so we expliciltly `assoc` only certain fields.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 17:09:22 +01:00
Andrea Maria Piana 37ccc6f825 Hide option to increase gas on keycard
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 15:19:24 +01:00
Andrea Maria Piana 33e58dbca9 Whitelist link previews client side
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 09:37:02 +01:00
Andrea Maria Piana d8f1944b27 Hide community banner
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 09:36:22 +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
Gheorghe Pinzaru 8948dcb736 Fix android text overflow
Fixes #11575

Move the overflow handler to separate view

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-24 16:58:51 +03:00
hesterbruikman 52823d7f59 Create releases.md (#11463)
* Create releases.md

File that captures release notes for App store ad Play store. Informs users of relevant additions, changes, fixes.

* Update and rename releases.md to RELEASES.md

As suggested, removing checklist to keep in a separate file and using capitals for the title
2020-12-24 13:43:29 +01:00
jinhojang6 eff60c69d5 Update translations
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-24 08:24:48 +01:00
Andrea Maria Piana b30149d9f2 Bump version to 1.10.0 2020-12-24 08:23:44 +01:00
Andrea Maria Piana 2ca39daa59 Communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 17:23:11 +01:00
Gheorghe Pinzaru 35c2c226df Remove redundant overflow hidden on messages
Fixes #11439

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-23 14:27:30 +03:00
Andrea Maria Piana 5b801b95fa [Fixes: #11557] Resend contact picture when changed
Fixes: #11557

Resend contact picture when it is changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 09:43:51 +01:00
Andrea Maria Piana b5a6f1b78f Add nix purge command and change the behavior of nix clean
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 09:08:46 +01:00
Gheorghe Pinzaru 2571e44de0 Referrals add screen with join public-chat
Update strings

Check if transaction has receipt on login

Notification on accept

Add large icon

Unify notifications for referral

Fix duplicate path for acquisition

Fix accept notification and visibility

Small fixes

Do not show notifications when not rewardable

Add home item

Show referral on lets go button

Fix list item on home

Hide messages on accept

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-22 15:33:02 +03:00
Churikova Tetiana 7f22912f1e e2e: bookmarks
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-21 16:38:58 +01:00
Roman Volosovskyi aac7a97e13 [#11502] Handle tx fetching failure 2020-12-21 17:05:00 +02:00
Michele Balistreri eaf463395a shorter pairing codes for Keycard
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2020-12-21 17:07:25 +03:00
Gheorghe Pinzaru 8342972059 Android tabbar replace elevation with border
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-21 15:02:18 +03:00
Churikova Tetiana 98a8359db3 e2e: new tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-18 10:05:40 +01:00
Andrea Maria Piana 9fe7ddaf0b [Fixes: #11545] Don't update browser if nil
Fixes: #11545
Fixes: #11544

The two issues were caused by the same bug, essentially if
`navigation-state-changed` event was fired (it's debounced) when the tab
had been closed, the browser would be updated with a `nil` id, causing
all sort of issues as it had not history etc.

This commit ensures that no changes are made if the browser is nil.

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-18 10:05:00 +01:00
Gheorghe Pinzaru 5643c4d537 Add profile pictures
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-17 14:12:07 +01:00
Gheorghe Pinzaru 09822e142b Add async storage wrapper
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-16 14:08:13 +03:00
Gheorghe Pinzaru 86d7b79175 Add buy crypto banner UI
Store in local storage banner preference

Add i18n
2020-12-16 14:08:05 +03:00
Andrea Maria Piana 4e5ba2c533 Fix watching accounts for transaction in chat messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-15 16:40:26 +01:00
Volodymyr Kozieiev b197d54e47 Switched to status-go where reaction resends under the hood if sending failed
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-12-15 16:59:13 +02:00
Churikova Tetiana 1b9bd8b017 e2e: fixed browser tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-14 18:53:39 +01:00
Roman Volosovskyi 879f441b7d [#11499] Fix multiple notifications for a single erc20 transfer 2020-12-14 13:34:20 +02:00
Frank Tang 8e882dda21 [Fixes: #11074] only validate whether group name is blank
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-14 10:58:40 +01:00
Churikova Tetiana 905aa26705 e2e: browser1.0
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-11 18:09:31 +01:00
andrey 3241d3273e [#11469] Browser bookmarks
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-11 16:55:42 +01:00
Churikova Tetiana efc4f6c750 e2e: fix fetching from offline
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-10 17:09:24 +01:00
Roman Volosovskyi c33e2be76b [wallet] Watch txs history while app is in the background (Android only) 2020-12-10 18:02:49 +02:00
Andrea Maria Piana 8748280279 [Fixes: #10777] Always convert value to string
When calling `SendTransaction` sometimes the value would be a string
(most cases), sometimes the value would instead big a `BigInt`, which
would be serialized to an integer, and status-go would be unable to
parse it as it expects values to be a string.
This commit makes sure that values are always serialized as string
before sending them over.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-10 08:26:38 +01:00
Andrea Maria Piana 1b4dcb7103 [Fixes: #11520] Rotate mailservers on error conditions
If a mailserver request is failing we disconnect at the 3rd attempt.

Though once we are disconnected, we connect again to the same mailserver
based on ping time.

This commit changes the behavior so that mailservers are penalized if
they are returning errors.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-10 08:26:00 +01:00
Churikova Tetiana 5259de7423 e2e:nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-09 18:01:36 +01:00
Serhy e167773258 Update tests and get balance method
Signed-off-by: Serhy <sergii@status.im>
2020-12-08 18:47:56 +02:00
snyk-bot 57c0e835e2 fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-1014645

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-08 15:56:04 +01:00
Roman Volosovskyi 7055c46a60 [#11507] Fix e2e tests 2020-12-07 15:37:16 +02:00
Andrea Maria Piana 2f1e5c819e [Fixes: #11518] Fix dependabot directory
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-07 12:14:16 +01:00
Andrea Maria Piana 2df5eccff0 [Fixes: #9851] Allow setting ens & transaction verify url, and fix
pending transaction

This commit fixes an issue where pending transactions would be marked as
confirmed in commands, due to the fact that we would default to pending
if no transaction was in the database.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-07 11:19:12 +01:00
Serhy a70b07e83d Interact with ropsten web3 to send assets
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-04 21:16:58 +01:00
Churikova Tetiana 8a97331779 e2e: testrail report
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-04 21:10:01 +01:00
Andrea Maria Piana fdf91cff80 [Fixes: #8280] Remove unused transport security entries
Removes not used security transport entries from ios

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-04 12:42:01 +01:00
Andrea Maria Piana f04042c643 [Fixes: #10801] Send chat messages in order
Chat messages are now sent in order using a different endpoint
`sendChatMessages`.
Text should always be displayed after images.

This is not implementing a Caption field, that would require either a
protocol change or leverage the `text` in the message.
It applies for both normal chats and timelines.

Move also all inputs under `chat/inputs` so we avoid re-renders as
`chats` has changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-03 18:29:40 +01:00
Churikova Tetiana fd5be21207 e2e: TODO resolve
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-03 14:10:42 +01:00
jakub 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 458ef05740 bump jenkins library to 1.2.8 to add keychain password
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 19:34:10 +01:00
andrey 609a7120b6 flatlist render changes
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-02 16:04:15 +01:00
jakub b62ff59f16 ci: make GitHub build links use CDN for downloads
Should speed up downloads for some geographical locations.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 15:53:17 +01:00
Serhy c381fc2e2f E2e for mentions is chat
Signed-off-by: Serhy <sergii@status.im>
2020-12-02 16:04:55 +02:00
andrey d2493c0725 [#11470] Statuses issues
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-02 10:39:07 +01:00
Andrea Maria Piana b9f896f4e3 Don't allow multiple pop ups to be shown
This commit makes sure that we don't display multiple pop ups when
mailserver connection has failed.
It also fixes the navigation to avoid being stuck on Profile tab.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-02 09:50:23 +01:00
Jonathan Rainville 7e069ed342 fix: linting and variable name 2020-12-02 09:49:47 +01:00
Jonathan Rainville b2cdc59670 fix: fix mailserver popup showing after canceling it
Fixes #10065
After clicking cancel, the popup is `dismissed`, so it will not appear again
Selecting a new mail server sets `dismissed` as false, so the error can appear again
2020-12-02 09:49:46 +01:00
Andrea Maria Piana a6e08f0d8e fix typo on branch name 2020-12-02 09:12:42 +01:00
Andrea Maria Piana 0e6d191e58 Point to master for easier testing 2020-12-02 08:55:47 +01:00
Andrea Maria Piana 852838f777 add assigned 2020-12-02 08:42:24 +01:00
jakub 32efcb06a0 nix: make status-go version regex even more lax
In release `1.7.0` we had an issue with `status-go` version `v0.62.3.hotfix.3`
not matching [Semantic Versionig](https://semver.org/#spec-item-11) so a fix was
introduced in https://github.com/status-im/status-react/pull/11331 that made the regex a bit more lax.

Again in `1.9.0` we had the same issue and the release not appears as `develop`
instead of the actual `status-go` version, which this time was `0.63.8+hotfix.2`.
Notice the `+` instead of `-` or `.` before `hotfix.2`.

I've added `+` to allowed characters after the 3 digit standard version format.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-01 20:18:03 +01:00
Churikova Tetiana 179e389e37 align e2e 11478
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-01 16:15:00 +01:00
Andrea Maria Piana a4716cc494 [Fixes: #9181] Reset edit mailserver on add pressed
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-01 14:44:34 +01:00
Roman Volosovskyi 92aaa194a8 [wallet] Pull to refresh tx history 2020-11-30 16:13:55 +02:00
Andrea Maria Piana 64840f74a7 [Fixes: #11351] Pass topics when querying the mailserver
Currently we are still using a bloom filter when querying mailserver.
This commit changes the behavior so that topics are used instead.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-30 12:08:08 +01:00
Andrea Maria Piana bd281e6c9f Upgrade workflows 2020-11-30 12:01:24 +01:00
Andrea Maria Piana e8350414f3 Use our own fork for actions 2020-11-30 10:31:24 +01:00
Andrea Maria Piana ae900a4cd9 Add action for creating branches 2020-11-30 10:14:38 +01:00
Andrea Maria Piana 46cd4aa893 Create zenhub-pr.yml
Create action for zenhub-pr
2020-11-30 10:12:02 +01:00
jakub 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
Churikova Tetiana f47c816ce0 fix e2e and align to new 11465
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-26 18:34:22 +01:00
andrey 88889930ae :accessibility-label :message-image
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-26 17:57:22 +01:00
andrey e2717ade98 [#11438] Add "sent" message confirmations 2020-11-26 17:57:10 +01:00
andrey f9095a492e [#11214] Add option for user to increase the gas payment for a pending transaction
[#11215] Add option for user to cancel a pending transaction.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-26 14:51:18 +01:00
Churikova Tetiana 1f7e40cede updated libs + e2e fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-25 18:58:29 +01:00
Roman Volosovskyi 7bfaa9255c [wallet history] Stop watching each new block 2020-11-25 16:44:16 +02:00
Serhy 166bdbf798 Update mailserver locator
Signed-off-by: Serhy <sergii@status.im>
2020-11-23 14:17:11 +02:00
shivekkhurana ecc41bebe0 Moved text-input props to their own functions, renamed get-suggestions to get-user-suggestions
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-23 16:33:08 +05:30
shivekkhurana 4cb058f1ca Add notes on testing, translations, merging and starting Refrisk
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-23 11:23:31 +05:30
shivekkhurana a55dd51064 Rename mailserver to history nodes on settings screen, changed en.json to reflect changes.
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-20 16:43:36 +05:30
Andrea Maria Piana d260ea9e03 [Fixes: #11452] Don't allow more than x pictures if taken from camera
This commit fixes an issue with taking pictures from camera, where
the check for image count was not checked.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-20 10:15:03 +01:00
Andrea Maria Piana 36f90fc567 Dont send unprocessed images
When selecting an image from camera roll we would immediately setting
the filepath with the raw image, process and later once it was processed
we would replace the file path.
On slow devices, the user might press send while the image is still
processing, causing the raw image to be sent, which might be discarded
as too large and never sent.

This commit changes the behavior so that we only set the uri once the
image is processed, it might add some delay, but the image should be
correctly sent.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 16:17:11 +01:00
Andrea Franz 22c6635d93 show tx data in keycard web3 request screen
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2020-11-19 11:28:25 +01:00
Andrea Maria Piana ae2d9b996c Limit max batch of images
There's an issue reported on slow devices when sending a batch of
images.

All the requests are send concurrently, and the sending of messages is
processed concurrently in the background.
On slow devices or connection with slow upload speed this may result in
expired envelopes, as the POW calculation or the upload takes too long,
and either they never leave the device, or worse they reach the
mailserver but won't be stored because already expired on arrival.

This commit allows setting the max-images-batch config value, setting it
to 1 for release and keeping it to 5 for other builds.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 09:13:06 +01:00
Andrea Maria Piana 7c9bb5b21c Fix bug when coming back from background
Fixes: #11441
Fixes: #11416

The issue was due to a nil pointer exception with the
localNotificationService.
Upon upgrade it would be disabled and therefore it would not be
available.
This was due to the fact that initialization comes from the database and
not from status-react, so on upgrade it would not be available.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 08:17:53 +01:00
Andrea Maria Piana 80ac4a8dc2 Remove status-core from codeowners
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 07:12:05 +01:00
andrey e30962ca75 [#11446] Can't sell item on opensea
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-18 17:27:20 +01:00
Churikova Tetiana 2bcc832cca fix ru date short values
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-17 17:35:31 +01:00
jakub 0b8c673094 ci: fix iOS signing, use same keychain name
Using different temporary keychains does not work if we do not set
`default_keychain=true`, because `codesign` then can't find the cert:
```
error: No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID
```
But if we set `default_keychain=true` then we cause a race condition
when the keychain is deleted by a parallel job while another is using it
as its default.

For this reason we have to use a static keychain name and keep it
between builds.

I tried disabling `default_keychain=true` in #11378 but it worked only
because the default user keychain already had the cert.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-17 10:16:32 +01:00
jinhojang6 dbabcc223e Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-16 17:09:07 +01:00
andrey 9f7ad853f0 [#11411] App is crashed on account creation after navigating to access key and back
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-16 17:04:02 +01:00
Churikova Tetiana 28d3cf03d9 fix 6305 e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-16 15:49:14 +01:00
andrey 7b46c445a7 [#11383] Status Updates : Add reactions and copy to clipboard
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 14:15:15 +01:00
andrey cf911aa246 [#11236] Deeplink to public chat on onboarding
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 14:12:14 +01:00
Volodymyr Kozieiev a91bdfb047 Don't make inability to unfurl url a user's problem
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-16 13:57:40 +02:00
andrey 61105e15f6 fix ens content resolution
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 12:31:00 +01:00
Gheorghe Pinzaru 13c81a34b3 Add pinch to zoom deps
Add image interactions

Add image preview to timeline

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-14 21:56:46 +03:00
shivekkhurana fbb606b859 Escape address so newlines and spaces don't interfere
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-13 20:11:48 +05:30
shivekkhurana 30753f8766 Make right item occupy entire space instead of left one. Make left grow if nothing on right.
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-13 20:09:53 +05:30
Churikova Tetiana 6b4f2901ae reduce number of parallel sessions
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-13 15:29:35 +01:00
Gheorghe Pinzaru 40e2839793 Exclude google deps based on env
Export all vars from .env

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-13 11:05:28 +03:00
Churikova Tetiana d14f232abf status e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-12 18:43:49 +01:00
Churikova Tetiana 8310749696 fix e2e nightly
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-11 16:42:22 +01:00
Roman Volosovskyi fac4f0c871 [#10798] Fix unviewed counter on receiving response 2020-11-11 15:04:17 +02:00
Roman Volosovskyi ae3936eff2 [#11240] Clarify assets Status wallet supports 2020-11-10 22:17:56 +02:00
Churikova Tetiana 920000c3e8 e2e: failures
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-10 18:10:04 +01:00
andrey b3a3a753d2 fix timeline non contacts
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-10 15:45:07 +01:00
andrey e5ada29ed8 [#11384] Status Updates : Open profile when tapping on username or avatar
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-10 13:44:46 +01:00
Roman Volosovskyi 35381a55c0 [#10239] Remove "Fetch last 24 hours" option 2020-11-10 13:33:53 +02:00
Serhy 473c5135b2 Update number of parallel sessions to align with Sauce
Signed-off-by: Serhy <sergii@status.im>
2020-11-09 21:32:20 +02: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
andrey b1ea04900e [#11398] Error at attempt to sign typed message in simpledapp.eth
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 17:43:35 +01:00
Churikova Tetiana 627e1d0e14 e2e align new wallet cards
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-09 16:44:51 +01:00
Churikova Tetiana f7d7c282cd nightly e2e fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-09 16:40:22 +01:00
tbenr 07e36096cc new-account-cards
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 16:38:00 +01:00
Gheorghe Pinzaru 6311077cec Don't crash if token is missing referrals
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-09 13:41:53 +03:00
andrey 6d104d60e2 [#11382] Status Updates: Add URL unfurling
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 11:27:53 +01:00
Gheorghe Pinzaru 72591f576d Update to Quo Readme
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-09 10:28:41 +03:00
Roman Volosovskyi 6eb840c8b2 [#10362] Allow receiving old messages after rejoining a pubchat 2020-11-06 17:37:18 +02:00
andrey f1d070ed82 [#11333] personal_sign method does not work in status
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-06 15:51:19 +01:00
Churikova Tetiana 9e466976dc align e2e timeline
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-06 14:24:31 +01:00
andrey ee61244770 timeline
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-06 14:23:02 +01:00
jakub 34c6292af4 fastlane: disable default_keychain to avoid race condition
If we run parallel job and a job sets a temporary keychain into a
default than another job can assume that is the user default.

The result is that one of the jobs will attempt to set a non-existent
temporary keychain into the default keychain.

This happens when we call `Fastlane::Actions::DeleteKeychainAction`:
https://github.com/fastlane/fastlane/blob/2.164.0/fastlane/lib/fastlane/actions/delete_keychain.rb#L21

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-05 16:09:32 +01:00
shivekkhurana 0d82dab5c5 Fix scroll issue
Signed-off-by: shivekkhurana <khuranashivek@gmail.com>
2020-11-05 20:26:42 +05:30
Michele Balistreri 206ce8849f closes #11373
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-05 14:20:04 +01:00
Andrea Maria Piana 7cef533a8a [Fixes: #11349] Split large messages in batches
When sending messages in quick succession, it might be that multiple
messages are batched together in datasync, resulting in a single large
payload.

This commit changes the behavior so that we can pass a max-message-size
and we split the message in batches before sending.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-05 12:49:53 +01:00
Roman Volosovskyi e7807202c9 [#11354] Add error alerts on denying access 2020-11-04 17:11:47 +02:00
Roman Volosovskyi d17f7c67b9 [#10957] Fix slow assets list 2020-11-04 14:05:35 +02:00
Roman Volosovskyi 82aca6bd76 [#10771] Fix loading of tx history before 10000000th block 2020-11-04 11:26:31 +02:00
Churikova Tetiana c7b3efe6ad new e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-03 17:57:36 +01:00
Serhy d8713fe3c7 Fix more e2e
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-03 16:30:25 +01:00
Serhy 6f86f73ac6 Update e2e 2020-11-03 16:30:16 +01:00
andrey b7948b9869 navigate to home when press chat tab on chat screen 2020-11-03 16:30:16 +01:00
Andrea Maria Piana d380186051 Upgrade status-go to 0.63.0
No functional changes, just removing code that is unused

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 11:20:35 +01:00
Andrea Maria Piana a91fa39547 [Fixes: #11355] Fix crash on logout
On shutdown the app was calling `PeersCount`, but sometimes the server
would be unavailable, resulting in a call to a nil pointer.

Upgrades status-go version with the fix.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 10:01:03 +01:00
jakub 3b780f4ff2 fastlane: Create temporary Keychain for iOS signing
This is a new approach to signing the iOS app by using a temporary
Keychain created only for that specific build and unlocked in advance.

By doing it this way we can avoid issues with `errSecInternalComponent`
appearing when there is no UI to open a Keychain password prompt when
running build in CI. I've described this problem in details in:
https://github.com/fastlane/fastlane/issues/15185

Thanks to `codesign:` partition ID being added to key partition list by
Fastlane `match` when importing a Keychain this approach now works:
https://github.com/fastlane/fastlane/pull/17456

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-03 00:03:38 +01:00
Churikova Tetiana d8eb33e330 e2e fixes+new check
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-02 20:20:21 +01:00
Volodymyr Kozieiev 0b5be54fea Allow group creation without contacts
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-02 20:10:22 +02:00
Volodymyr Kozieiev f99b2aa401 Link preview generation
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-02 15:28:31 +02:00
Roman Volosovskyi 27ad8f07c3 Trim url before opening in browser 2020-11-02 13:09:06 +02:00
Gheorghe Pinzaru 7402718e68 Use custom color for disabled state of controls
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-02 10:34:59 +03:00
Churikova Tetiana 3ac8f0c5fd e2e refactoring
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-30 15:51:15 +01:00
Gheorghe Pinzaru cf4bef8268 Add pick multiple images
Add inner border to image message

Add max batch size of 5

Disable camera roll more images

Use interop instead of aget

Add border as a separate layer

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-30 12:46:00 +03:00
Gheorghe Pinzaru fe5b5ab4bc use ens for rinkeby contract
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-29 15:42:56 +03:00
Gheorghe Pinzaru 050f20cfae Add local notifications for transactions
Pods

Add headless js service

Handle Local Notifications react

CopyPaste driven implementation of java notification

pn demo

Show iOs push in foreground

Show icon in notification

Enable notifications on login

Get chain from status-go

Add UI for switching notifications

go go!

Fixup

Handle notification onPress

Android UI

Handle press iOs

Handle android press and validate

go update

Fix route params in universal link handler

Set show badge explicitly to false

Fix e2e

bump status go

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-29 15:40:58 +03:00
Churikova Tetiana 10dcee3e05 nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-28 22:36:06 +01:00
Churikova Tetiana ce20eddb99 profile e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-28 17:19:37 +01:00
andrey eae66c967e my status
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-28 14:42:59 +01:00
jakub 973bdb61b3 nix: make status-go matching regex more lax
We had an issue where the `1.7.0` release was using the `v0.62.3.hotfix.3`
version of `status-go` which didn't match the regex we use to verify
if the specified version is a valid version according to [Semantic Versioning](https://semver.org/).

You can check the current regex here: https://regex101.com/r/OeTQCv/3

I also added a trace message to show when we mark a build as `develop`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-26 13:02:50 +01:00
andrey 663f5f41a0 [#11323] Turn off "Block screenshots" by default in nightly and PRs build
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-26 12:03:21 +01:00
Roman Volosovskyi ba3ca2c818 Remove chitchat duplication in general list 2020-10-23 19:48:58 +03:00
Churikova Tetiana 95aa500119 collectible e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-23 16:20:23 +02:00
Serhy 2cf4be4b34 Add test to send Max tokens from wallet
Signed-off-by: Serhy <sergii@status.im>
2020-10-23 11:30:14 +03:00
Roman Volosovskyi 5232432ec5 [#7788] Clear mailserver details after deletion 2020-10-23 11:06:04 +03:00
Roman Volosovskyi dca26b3350 [#11317] Prevent joining to pubchats with upper case letter in topic 2020-10-22 17:12:17 +03:00
jakub 466d279e2a nix: Increase stalled-download-timeout to 1 hour
Might help with issues described in: https://github.com/status-im/infra-ci/issues/17.

Details: https://github.com/NixOS/nixpkgs/issues/65015#issuecomment-662675716

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-22 12:43:01 +02:00
jakub 250b4d4646 upgrade fastlane 2.154.0 to 2.164.0
It's been a while and a fix for an issue I've reported a long time ago
has been merged in https://github.com/fastlane/fastlane/pull/17456. With
this fix we should see less iOS signing issues appearing as `errSecInternalComponent`.

This should also enable me to try a fix I proposed in
https://github.com/fastlane/fastlane/issues/15185 which consists of
creating a temporary unlocked keychain for each build.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-22 12:42:52 +02:00
Roman Volosovskyi 320d81432f Fix exception on my-profile screen (#11313 leftover) 2020-10-22 12:23:57 +03:00
Roman Volosovskyi 70526f9429 Markdown updates
On status-go side:
- new `strong-emph` node was added for strong emphasised text with triple
  "*" and "_"
- `del` node got proper marshalling and can be recognised (works with single
  and double "~")

On status react side:
- styles for `strong-emph` nodes
- styles for `del` (strikethrough) nodes
- unsuccessful attempt to use monospaced fonts for code/codeblock (we have a font
  which is used as monospaced but doesn't support that property actually)
2020-10-21 22:23:46 +03:00
Roman Volosovskyi 9691626992 [#11189] Backward compatible ENS registrar 2020-10-21 14:28:11 +03:00
Churikova Tetiana e52f6b8753 e2e for mentions, gr chats, fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-20 18:20:37 +02:00
jinhojang6 04cd74e57d Update translation
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-19 16:12:45 +02:00
Andrea Maria Piana b826a34f27 Fix coming back from offline
Fixes: #11305

The issue was due to the fact that the first condition was wrapped in a
when in fx merge, causing it to be ignored.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-19 16:07:29 +02:00
jakub 81cfc83ed3 nix: add info about NDK bundle download issues
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-19 12:07:00 +02:00
andrey ff3f171646 1.8.0 2020-10-16 15:56:29 +02:00
andrey 3ae85cacd5 [#11041] Hardly visible username on replies in dark mode
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-16 15:54:16 +02:00
Gheorghe Pinzaru 36f9436e12 Fix group chat invitation actions based on state
Fix decline button color and Check if user was removed from group invite

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-16 15:39:33 +03:00
Andrea Maria Piana 8c42e717c1 Change settings on toggle
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-16 12:13:32 +02:00
shivekkhurana cf0cd283a6 Add new UI for mailserver selection, Add feature to disable mailserver usage 2020-10-16 12:13:15 +02:00
Gheorghe Pinzaru 316c6038d7 Fix webview toggle crash ios
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-15 13:57:49 +02:00
Andrea Maria Piana f5034a4dfa [Fixes: #11290] Increase group size to 20
Increases the maximum size of a group chat to 20.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-15 13:53:01 +02:00
Roman Volosovskyi cf58a84838 [#11192] Prevent replacing of mention with pubkey inside markdown 2020-10-14 22:20:48 +03:00
Churikova Tetiana dcd2655860 nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-14 14:24:37 +02:00
Serhy 9e0b8e76cf Update refresh webview test
Signed-off-by: Serhy <sergii@status.im>
2020-10-14 13:03:24 +03:00
jinhojang6 40a26f4e10 Upate translation
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-14 10:53:13 +02:00
jinhojang6 094cf61915 Update Spanish Playstore title and description
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-13 14:14:08 +02:00
Roman Volosovskyi c238b6bca5 upgrade react-native-webview 2020-10-09 17:13:18 +03:00
jakub 908b5f723c nix: add support for INFURA_TOKEN var for Android build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-08 17:55:24 +02:00
jakub 085ae22be1 disable pipefail for update-status-go.sh
This caused a silent failure due to usage of grep matching.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-08 14:49:02 +02:00
Gheorghe Pinzaru 0368895edf Allow to enabled debug
Optimistic update

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-08 13:57:37 +03:00
andrey 905699b686 [#11283] Blank view when open yearn.finance in Status WebView
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-08 12:16:30 +02:00
andrey b198084b78 [#11263] Entering "0x" in the Recipient throws an error
[#11262] Wallet "Done" and "Add to favorites" only appears when the input box is focused

Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-07 19:43:54 +02:00
Churikova Tetiana 2e7c377343 one more fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-07 19:42:58 +02:00
Churikova Tetiana 9f36bd44b2 fix e2e with scan tokens 2020-10-07 18:07:42 +02:00
Churikova Tetiana 4e9b1001df fix accessibility 2020-10-07 15:10:13 +02:00
andrey e602f0493d do not show zeros for token balances, and fetch all tokens only when creating new account 2020-10-07 11:44:01 +02:00
Andrea Maria Piana 85991d2272 Set infura token and update snx/synth contract
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-07 10:01:39 +02:00
Churikova Tetiana f3ed1e370a new e2e+fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-06 16:50:07 +02:00
jakub bdbc48764e add F-Droid update README file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:23:17 +02:00
Andrea Maria Piana c74a5a5215 [Fix: #11228] Dont drop messages if smaller than 4096
There was an issue with counting characters in status-go that meant that
unicode characters were double counted.

That issue is now fixed. It's still not going to be 100% accurate as
in some languages characters are displayed together if they come one
after the other, but this PR should make it much safer.
To overcome this we could cap the UI input to something a bit lower
(3000 characters for example) and that should give us some room.

This commit includes a migration of the database fixing an issue with
long filenames on desktop.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:18:08 +02:00
jakub c4cac2cef7 fix availability of INFURA_TOKEN for Android build
The env variable `INFURA_TOKEN` is used at build time of JS bundle, not
the final APK file. We never passed the `secretsFile` to the
derivation for JS bundle so it never saw the `INFURA_TOKEN`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-05 16:36:05 +02:00
Andrea Maria Piana 966f6de31a Fix infura token
Setting a top-level closure-defines does not have any effect,
it needs to be for some reason inside each environment.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-05 16:22:14 +02:00
jakub 93ed3eb7ff ci: add public download url to build description
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-01 17:32:10 +02:00
jakub bc12c90d2e update-status-go: fix case where two matching refs exist
Before it was possible to break the format of `status-go-version.json`:
```
 > git ls-remote https://github.com/status-im/status-go v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e    refs/heads/release/v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e    refs/tags/v0.62.3.hotfix.3
```
Which would result in `commit-sha1` key being set to two commits insted of one.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-01 14:40:30 +02: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 5458c7b2db Allow recovering to see referral flow
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-01 10:17:23 +03:00
Gheorghe Pinzaru 92fae99cf7 Hide referrals nightly 2020-10-01 10:16:36 +03:00
andrey 9cd1e08aaa upgrade shadow
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-01 08:53:10 +02:00
Roman Volosovskyi 6cf3a6a98e [#11212] Mention suggestions based on names parts 2020-09-30 14:02:49 +03:00
jakub c866082cde ci: use more buckets for different builds
* `status-im-releases` for release builds
* `status-im-nightlies` for nightlies

I want to reserve the `status-im` bucket for use with the site.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-09-28 20:10:14 +02:00
Roman Volosovskyi 22ca98b0f8 [#11216] Fix moving cursor after pressing mention suggestion on samsung device 2020-09-28 17:59:03 +03:00
Roman Volosovskyi b5f7a62b14 Fix some UI warnings 2020-09-25 15:13:51 +03:00
andrey abe6e97728 override custom tokens
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 14:03:44 +02:00
Churikova Tetiana 6940adf1cb disable collectible e2e
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 11:58:20 +02:00
andrey e55cb6b47b [#11218] Hard code fix for SUPR NFT support
Drop collectibles details support
2020-09-25 11:58:09 +02:00
andrey ccd034e7a6 add images
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 11:42:17 +02:00
andrey f2da0cbbdb [#11222] Add aUSDC token and optimize search for Aave (LEND) (aka Ethlend) 2020-09-24 16:05:07 +02:00
andrey 1c6da59611 1.7.0 2020-09-23 18:17:46 +02:00
andrey d9bac4a493 [#10667] Upgrade eth-phishing-detect library
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-23 18:17:06 +02:00
jinhojang6 ebf3016644 Update translation
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-23 18:06:42 +02:00
Roman Volosovskyi 345ae359aa [#11179] Nicknames in mention suggestions 2020-09-23 18:34:03 +03:00
Churikova Tetiana b8298dce44 e2e fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-23 14:56:31 +02:00
Gheorghe Pinzaru 1969f9dfe0 Parse childrens in reply text
Fixes #11161

Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-23 07:43:44 +02:00
andrey 8eed842c62 [#11136] Warning to users sending ERC20 directly to smart contract
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 17:24:36 +02:00
andrey b32367a9b2 [#11185] Add UNI, COMP, AAVE, BAL, AKRO tokens
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 16:46:27 +02:00
andrey 7fb243f9f1 [#10060] Wrong ERC20 decimal rounding in "Set max"
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 16:02:56 +02:00
andrey 6b08194a19 [#11194] Change #status-spanish to #status-espanol
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 14:34:13 +02:00
Roman Volosovskyi 55278828e6 Update mention suggestions on selection change 2020-09-22 14:40:00 +03:00
andrey 99755d08e9 fix labels 2020-09-22 12:10:56 +02:00
andrey e95025333f fix android
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 10:23:35 +02:00
andrey ff790d4152 wallet favourites 2020-09-22 10:23:26 +02:00
Churikova Tetiana 6454df4734 e2e wallet fixes
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 10:22:12 +02:00
andrey 25dbf1fd61 [#9484] Reintroduce back collapsing of long messages in chats
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-21 18:05:25 +02:00
Roman Volosovskyi 0448edb509 Highlighted mentions in input 2020-09-21 13:10:54 +03:00
Churikova Tetiana 44e3076022 nightly e2e fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-18 17:30:03 +02:00
Roman Volosovskyi 1009b71908 [#11160] Hide blocked users from mention suggestions 2020-09-17 22:32:58 +03:00
Roman Volosovskyi 80faac0ca7 [#11152] Resolve self mentions in group chat 2020-09-17 17:19:24 +03:00
Roman Volosovskyi b43f9e0dfd [#11173] Open profile on tapping self mention 2020-09-17 17:17:25 +03:00
Gheorghe Pinzaru 20b5ad9ebb Always use waku
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-09-17 15:19:32 +02:00
Andrea Maria Piana e2071dc968 [Fixes: #11170] Move some pn settings to advanced
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-09-17 15:07:53 +02:00
Serhy 1b1f3c4c9f e2e fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-16 18:08:30 +02:00
andrey 889d4c16a4 [#11163] No margin between "Block this user" button and main tabs panel on user profile view on iOS 2020-09-16 18:08:17 +02:00
Serhy ae0504cbfa Update test to copy formatted text messages
Signed-off-by: Serhy <sergii@status.im>
2020-09-16 18:28:46 +03:00
Volodymyr Kozieiev a95520067f Added ui for asking webview page permissions
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-09-16 12:17:45 +03:00
Churikova Tetiana 56aec16793 nicknames e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-15 18:04:52 +02:00
andrey 0594548617 [#11150] Chat icons are black in dark mode
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-15 14:30:54 +02:00
Gheorghe Pinzaru f7ec945c56 Force transparent color for timestamp android
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-09-15 10:00:57 +03:00
jinhojang6 13e46c2fb0 Update translation
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-14 17:45:08 +02:00
andrey 301f1c8cf2 fix tokens validation
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-14 16:06:52 +02:00
andrey 1e5288a016 fix local nicknames 2020-09-14 12:22:46 +02:00
andrey 59e226bab2 fix local names , mute chat translation, replace null crash
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-14 11:58:45 +02:00
Churikova Tetiana 32cb09c9c6 fix some false failures
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-11 16:29:04 +02:00
Roman Volosovskyi 16fecc2ac6 Mentions suggestions 2020-09-10 22:07:56 +03:00
Andrey Shovkoplyas 0675d0d8d7 ios pn
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-09-10 14:12:18 +02:00
Roman Volosovskyi f9df0f367f Get rid of form-2 subs in defview 2020-09-10 13:58:02 +03:00
Roman Volosovskyi 5aa33fc9c0 [mentions] Fix mention appearance in reply and quoted message 2020-09-10 12:51:34 +03:00
Churikova Tetiana 754b826629 accept agreement remove + group invite e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-10 11:35:36 +02:00
Roman Volosovskyi 72daf93a75 [mentions] Open profile tab instead of user profile view on pressing own mention 2020-09-08 16:23:23 +03:00
andrey 89ad4f59d0 [#10179] Create invite link for group chat
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-07 13:32:24 +02:00
andrey 4304a5dd97 [#11046] Add local contact names
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-07 11:42:35 +02:00
Churikova Tetiana fea916590a marks and new checks in e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-04 17:58:34 +02:00
jinhojang6 1a98219690 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-04 17:56:51 +02:00
Serhy 3181a7dc20 E2e tests for audio message
Signed-off-by: Serhy <sergii@status.im>
2020-09-04 18:29:39 +03:00
Churikova Tetiana fed52fe309 new e2e and GH report changes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-09-02 20:21:30 +02:00
jakub eac77f84c2 nix: upgrade nixpkgs
Significant updates:
- Git: `2.25.1` to `2.28.0`
- Make: `4.2.1` to `4.3`
- Glibc: `2.30` to `2.31`
- PatchElf: `0.9` to `0.11`
- GoLang: `1.14.0` to `1.14.7`
- NodeJS: `v12.16.2` to `v12.18.3`
- Clojure: `1.10.1.507` to `1.10.1.645`
- OpenJDK: `8u242-b08` to `8u265-ga`
- GoMobile: `20200329` to `20200622`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-09-02 18:06:23 +02:00
Nathan Handler 080584dc2e Add Orchid ERC-20 Token (OXT)
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-02 14:44:12 +02:00
andrey be25ecd4ea [#10974] ENS resolving for IPNS names.
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-02 14:39:41 +02:00
Александар Симић 2be70cca9a Aligning react versions
When starting the project the following would be spat out:

NPM dependency "react" has installed version "16.11.0"

"16.13.0" was required by jar:file:/Users/alex/.m2/repository
/reagent/reagent/0.10.0/reagent-0.10.0.jar!/deps.cljs

I've bumped up the version in package.json to to match the one being
pulled in by reagent.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-02 12:44:26 +02:00
Александар Симић b2a79b3e89 Update nREPL to the latest stable
With the update of Emacs CIDER 0.26.1, it expects to have the latest
cider-nrepl dependency to be at 0.25.3 otherwise it throws an error
when connecting to the project's REPL.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-02 11:27:52 +02:00
Gheorghe Pinzaru fdf8d11913 Use monospace font for address and public-key
Swap monospace header

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-31 15:51:39 +03:00
Churikova Tetiana 399be0686c e2e enabled
Signed-off-by: andrey <motor4ik@gmail.com>
2020-08-31 10:52:47 +02:00
andrey 0cb554f5c6 [#11113] Can't send image without description in 1-1 and group chats 2020-08-31 10:52:28 +02:00
jinhojang6 2901f4c7cf Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-31 09:36:41 +02:00
Volodymyr Kozieiev 0ab227eef8 Restrict message size on input
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-08-27 12:53:04 +03:00
Gheorghe Pinzaru 17c408bd06 Use different acquisition gateway based on chain
Do not persist empty tx

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-26 14:15:10 +03:00
Churikova Tetiana 716c968a23 new e2e + accessibility
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-25 16:44:05 +02:00
Gheorghe Pinzaru 8adc32a5c9 Simplify tabbar animation
Fixes #11086

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-25 10:17:45 +03:00
Roman Volosovskyi 2934de9b8c [mentions] Replace all mentions with public keys before sending message 2020-08-24 21:29:12 +03:00
Gheorghe Pinzaru 001789f761 Update translation strings for referrals
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-24 11:28:21 +03:00
Gheorghe Pinzaru 8d8057036a Hide placeholder timestamp with opacity
Fixes #11084

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-24 11:27:37 +03:00
Churikova Tetiana 151ef4a952 e2e false failures fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-20 14:02:00 +02:00
andrey 9b0bf60e60 1.6.0 2020-08-20 13:51:05 +02:00
Volodymyr Kozieiev 6bef1182c6 Subheader generation refactored for better performance
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-08-20 14:21:09 +03:00
Gheorghe Pinzaru f17b401bbc Update UI for referrals flow
Cleanup http events

Add loaders

Add dapp flow

Fix tests

Fix dapp success event

Hide reward based on referrals metadata

New flows

Terms link

TX watcher event

Do not show success popup

Use new rewardable field from backend

Fix referral pulling

Update copy

Translate advertiser modal

Move modal styles into style ns

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-20 13:44:12 +03:00
Gheorghe Pinzaru 25721688db Debounce next in onboarding
Fixes #11043

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-20 13:26:27 +03:00
Churikova Tetiana 485dd99e52 fix and universal QR e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-19 17:18:26 +02:00
Gheorghe Pinzaru c644ab3501 Resolve contract by ens name
Do not show referrals if contract is not available

Do not check contract for referral accept

Rename invite event namespace require

Remove dispatch from raw subs

Do nothing if there is no contract

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-19 17:10:27 +03:00
Volodymyr Kozieiev ac4f65be97 Fix crash when passcode disabled
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-08-18 18:35:46 +03:00
Gheorghe Pinzaru b737051e3c Use the new intent link for private chat
Fixes #11080

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-18 16:15:32 +03:00
Gheorghe Pinzaru 1e7061acc2 Fix topbar in new contact
Fixes #11091

Fix more nav handlers keys

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-18 15:47:26 +03:00
jinhojang6 cc0076048d Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-18 14:33:15 +02:00
Andrea Maria Piana e52f9fa43f upgrade status-go & always call start/stop methods
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-08-18 14:16:15 +02:00
Churikova Tetiana d5fc93aa55 fixes for e2e + new ids for elements
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-18 12:38:48 +02:00
Roman Volosovskyi c2277cbbe5 [#9986] Allow to disable fetching of tx history on mobile network 2020-08-15 21:34:37 +03:00
Churikova Tetiana d22a87b77c e2e fixes + e2e reaction
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-14 18:08:24 +02:00
Gheorghe Pinzaru 4e44bed8d6 Replace all usage of topbar with Quo
QR

Invert border boolean

Update e2e

Fix another e2e

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-14 14:22:40 +03:00
Gheorghe Pinzaru 62fe9f3d6a Clear home filter when opening chats
Fixes #11015 Fixes #11013

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-12 17:45:40 +03:00
Churikova Tetiana f128c0ceed new e2e and fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-11 18:12:21 +02:00
Roman Volosovskyi 7d19de4e69 [mentions] Open profile on pressing mention in message 2020-08-11 13:10:04 +03:00
Gheorghe Pinzaru feb8dfce07 Enable Quo Preview in dev app
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-11 11:21:54 +03:00
Gheorghe Pinzaru 9c37eac6f4 Use i18n for biometric auth types
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-11 10:59:15 +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 7bb7b48db7 Fix chat text input animation lags
Remove picker panel from input

Clean pan state

Fixes #11031

Do not use pan state on android

iOs panel switching do not change height

Revert "Remove picker panel from input"

This reverts commit 0ab2c1544b70f8c491424376268f572696bd284a.

Change reactions space keeper method

Audio

Do not use accessory view on Android

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-10 16:40:50 +03:00
jakub eeff44eea7 ci: fix Android release builds not splitting ABIs
This was caused by Groovy script logic not checking `params.BUILT_TYPE`.

Related: https://github.com/status-im/status-react-jenkins/pull/14

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-10 14:48:23 +02:00
andrey f9fb4d6974 eip-1193 fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-08-10 11:00:32 +02:00
jakub 68722340c9 nix: add missing args to gcroots.sh script
This should fix the following error showing up on MacOS:
```
error: assertion ((__lessThan  0)  ((builtins).stringLength  watchmanSockPath))
failed at /Users/jenkins/repos/status-react/nix/mobile/android/watchman.nix:8:9
```
Which was caused by flags like `--argstr` not being passed.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-06 15:12:37 +02:00
jakub f904d7b543 nix: add --console=plain to gradle call
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-06 14:34:07 +02:00
jakub 7a80eca73c jenkin: fix GitHub releases
Specifically filenames and the diff link.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-06 14:28:21 +02:00
jakub 2161192e76 nix: simplify build of gomobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-06 14:28:15 +02:00
Gheorghe Pinzaru 0319854e83 Home show search when input is focused or has content
Fixes #11017

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-06 13:55:39 +03:00
Churikova Tetiana dd67533ecd regression e2e fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-08-06 12:53:01 +02:00
Gheorghe Pinzaru 2371dcbc60 Show gfycat in new chat search
fixes #11027

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-06 09:58:29 +03:00
Gheorghe Pinzaru 72726e2b0b Fix ens name hash exception for bad names
Fixes #11022

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-06 09:17:20 +03:00
jakub 95997530c6 jenkins: increase iOS build timeout to 25 minutes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-04 10:34:32 +02:00
jakub 7c0488372d upgrade Gems, Fastlane from 2.146.1 to 2.154.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-04 09:25:52 +02:00
andrey 3419dc3cbe 1.5.0 2020-08-03 15:34:05 +02:00
Volodymyr Kozieiev d5015e4d25 Switched to updated version of WebView that asks for permissions
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-08-03 15:51:34 +03: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
Churikova Tetiana d0ce6f11d8 align e2e with reactions
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-31 14:56:57 +02:00
Gheorghe Pinzaru 1c308c2d01 Emoji reactions
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-07-31 13:43:10 +02:00
jakub 933c0f8f8c nix: allow XCode versions 11.5 and higher
This is kinda hacky, but is simple enough since the version check uses grep.

For details see:
https://github.com/status-im/nixpkgs/blob/status-mods/pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-31 13:04:47 +02:00
jinhojang6 8b99e992ad Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-31 11:15:22 +02:00
Roman Volosovskyi e96fc90199 [#10976] Fix crash on kk login with enabled fingerprint 2020-07-30 21:11:02 +03:00
Gheorghe Pinzaru 8652f899e0 [#10988] Add entry point to start new chat from search results
Fixes #10988

Allow public key and filter public chats

Make toolbar width 100

Clear new identity from search

QA issues fix

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-30 13:47:34 +03:00
Churikova Tetiana 56364ea70c e2e for PN and set max
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-29 17:58:39 +02:00
jakub 788d0d5cc5 add ANDROID_APK_SIGNED to make unsigned builds for F-Droid
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-29 10:12:38 +02:00
jakub 517a1be27c nix: disable Gradle daemon for builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-29 10:12:31 +02:00
jakub 8bb99743a7 nix: set GRADLE_USER_HOME to a temp dir
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-29 10:12:31 +02:00
jakub 0be5f5d8d0 nix: enable build-use-sandbox for Android
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-29 10:12:30 +02:00
tbenr 86700f2b5c audio messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-07-29 10:09:31 +02:00
andrey 2cc8c9822f image reply fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-29 09:55:36 +02:00
andrey a968149ecc fix scan qr window
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-29 09:55:03 +02:00
Roman Volosovskyi 10a814764d [#10195] Delete multiaccount 2020-07-28 15:42:40 +03:00
andrey 4254dbcb26 [#10975] Missing translation on Keycard login page
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-28 11:27:39 +02:00
andrey 6c5daaa1c8 set max button in dark mode
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-27 18:25:42 +02:00
jinhojang6 ceb09dc0e7 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-27 08:29:29 +02:00
Gheorghe Pinzaru 5b5096a6d7 Shrink left button in toolbar to not overflow
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-24 18:01:52 +03:00
Gheorghe Pinzaru 729a35d830 Fix parens on intro screens
Fixes #10979

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-23 13:23:53 +02:00
Churikova Tetiana fb9ab82d7b sign_in keycard e2e fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-23 11:41:19 +02:00
Dean Eigenmann f8af5a51be Update views.cljs
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-22 16:36:45 +02:00
Churikova Tetiana f057d527b5 fix 22.07.20 nightly failures
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-22 15:39:44 +02:00
Gheorghe Pinzaru 3b17a46bf8 Allow nested touchable in list item
Fixes #10924

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-22 15:51:50 +03:00
Serhy afb4e9fdb9 Add e2e test for PN
Signed-off-by: Serhy <sergii@status.im>
2020-07-21 12:30:04 +03:00
Gheorghe Pinzaru e8fca7ce68 Add interactive dismiss and new input UI
New input UI

Inverse panel height calculation

Remove old chat input

Better animations

fix for pasting text

Add buttons accessibility

Fix dark mode

Update react navigation to fix the keyboard issues

Force close bottom sheet

Unmount android bottom sheet when not visible

Reset bottom sheet height android

more fixes

more fixes

Add hidden audio icon

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-20 12:21:47 +03:00
Gheorghe Pinzaru 6fcb426a71 Disabled next in password screen
Fixes #10965

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-20 12:17:30 +03:00
Gheorghe Pinzaru 4f135292a5 Fix UI issues in backup seed phrase
Fixes #10964
2020-07-20 12:17:19 +03: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
jinhojang6 4e5848ee6f Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-16 11:43:46 +02:00
Gheorghe Pinzaru 923beb5f26 Disable by default list item animations on android
Use highlight for touchable feedback

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-16 11:17:51 +03:00
Roman Volosovskyi 292df1439c [#10928] Always show blocked users 2020-07-15 21:27:32 +03:00
Churikova Tetiana cd4b2110c6 e2e for contact view
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-15 20:22:27 +02:00
jakub 9ce786c9fb nix: fix conditional that selects .env.e2e for ABI=x86 builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-15 16:37:45 +02:00
Roman Volosovskyi 618b1f81e2 [#10914] Show proper username in chat on opening from background 2020-07-15 15:07:14 +03:00
Gheorghe Pinzaru b7bc7c4e5d Don't re-open bottom sheet if now closing
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-15 11:40:32 +03:00
Gheorghe Pinzaru fa4968f22c Fix password position in wallet new account
Fixes #10921

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-15 11:39:21 +03:00
Gheorghe Pinzaru 0adc047f05 Fix missing i18n
fixes #10945

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-15 11:38:28 +03:00
Gheorghe Pinzaru 5c05174604 Merge password screens
Update e2e

Small UX feedback changes

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-15 11:28:02 +03:00
Gheorghe Pinzaru df9062475c Extend security masked data protocol 2020-07-15 11:25:10 +03:00
Serhy f5675b640d Fix scroll and key to locate eth
Signed-off-by: Serhy <sergii@status.im>
2020-07-14 20:11:58 +03:00
Churikova Tetiana cd04acde3a e2e for separate keystore
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-14 16:08:47 +02:00
Roman Volosovskyi 15cbec07e9 [keycard] Rename all "hardwallet" occurencies to "keycard"
Previously we used both "keycard" and "hardwallet" names for stuff
related to keycard. It can be confusing as "hardwallet" might be used
for other hardwallets in future.
2020-07-14 14:17:48 +03:00
yenda 67ce4b03aa Revert "upgrade shadow"
This reverts commit 08cbc76111.

Signed-off-by: yenda <eric@status.im>
2020-07-14 13:02:24 +02:00
jakub 84286782f6 bump status-react-jenkins to 1.2.0
This updates a bunch of things in the Jenkins logic.
For details of that see:
https://github.com/status-im/status-react-jenkins/pull/12

It grew out of the changes I made to make PR builds available in Desktop client:
https://github.com/status-im/nim-status-client/pull/507

Changes:
- Bump `status-react-jenkins` library to newer version, probably `1.2.0`
- Update use of `utils.pkgFilename()` in `ci/Jenkinsfile.combined`
- Make all iOS builds go into the same folder: `status-ios`
- Drop e2e build type, infer it from Android ABIs set to `x86` only
- Simplify logic in `nix/mobile/android/release.nix.`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-13 12:13:47 +02:00
Serhy ba0ae149ad Logcat grep, new templates e2e fix
Signed-off-by: Serhy <sergii@status.im>
2020-07-13 12:39:43 +03:00
Churikova Tetiana e366587e8f e2e fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-10 17:14:50 +02:00
andrey eef6815616 [#10880] Expanded view with public chat categories 2020-07-10 14:54:39 +02:00
andrey 08cbc76111 upgrade shadow
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-10 12:41:15 +02:00
Churikova Tetiana 2334de58d2 pairing e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
Signed-off-by: Serhy <sergii@status.im>
2020-07-10 10:59:00 +03:00
Serhy 68a07740d8 Update scroll to element
Signed-off-by: Serhy <sergii@status.im>
2020-07-10 10:40:14 +03:00
Roman Volosovskyi bda7386747 [#10784] Fix kk multiacc creation after closing app 2020-07-09 17:32:33 +03:00
Roman Volosovskyi 5101d4d6a5 [keycard] Allow to restore kk multiacc using pairing 2020-07-09 17:30:32 +03:00
Gheorghe Pinzaru 79cf87be86 Ens view list items
Remove extra fn's

Long press animation cancel

Make select primary ens accessible

Add accessibility to controls components

Update e2e tests

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-09 15:15:08 +03:00
Roman Volosovskyi 920bc7d93e [#10195] Separate keystore dir per multiacc
Having all keys related to specific multiacc in a separate dir will
simplify removing of the multiacc. Also it will allow adding of the same
account to different multiaccs.
2020-07-09 13:14:42 +03:00
Serhy e738cd0811 Update ethro key in e2e
Signed-off-by: Serhy <sergii@status.im>
2020-07-08 15:30:58 +03:00
jakub 7d7462356e ci: lower build timeouts to 20 minutes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-08 12:33:33 +02:00
jakub 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
Gheorghe Pinzaru bdb4d7fe35 Increase long press move distance
Fix android password visibility change

Do not change secure-text-entry on android password visiblity

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-08 10:07:59 +03:00
Churikova Tetiana 7007b790d5 e2e fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-07 14:54:15 +02:00
andrey f2fb1739c0 [#10899] Enable notifications during onboarding 2020-07-07 14:53:56 +02:00
andrey 3800f3f7da [#10891] Add 'Add new contact' and 'Invite friends' button to Contact screen
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-07 14:53:10 +02:00
Serhy 4dda20999b Fix e2e keycard
Signed-off-by: Serhy <sergii@status.im>
2020-07-07 13:15:34 +03:00
jinhojang6 d134136518 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-07-06 16:05:47 +02:00
Gheorghe Pinzaru 497af38a7f Update usage for toolbars
Replace all the usage of the button without component

Use quo

Fix tests

List item in multiaccounts

Use list items in contacts

Fix welcome  screen button

Experiment long press

Big list item

Remove old bottom sheet

Use bottom sheet

Keycard

Add error to list item

Stickers panel button

Images panel

Fix z-index in profile

Fix android crash

Fix signing list item

Try fixing test

iOs gas sheet keyboard

Disable root alert in e2e

keycard signing sheet height

Clean up bottom sheet events

Replace flat list in profile

Memorise the manual-close value for bottom sheet

Mailserver QR scanner

Fix e2e tests

E2e fix 2

Fix e2e 3

Remove extra fn

Reduce bridging time for animation

Trick android layout

Try hooks

Fix profile missing ens-name

Disable press on control in list-view

allow disabling animations in list item

Use simple list in wallet assets settings

TBD - this screen should be rewritten from scratch. Now on every interaction the full list is re-rendered, also it makes the wallet main screen to re-render.

Fix send sheet

Handle long press in main thread

UI fixes

perf

Update e2e

fix missing user name in image long press

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-06 13:35:50 +03:00
andrey fad1bd25c0 chill stickers
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-06 12:31:42 +02:00
jakub b95056f3ce ci: fix what version is set for iOS PR builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-06 09:47:39 +02:00
Roman Volosovskyi 3fe1d6e3eb [keycard] Fix assets message signature 2020-07-03 14:10:37 +03:00
Serhy 16742baecd Update e2e test
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 18:59:30 +02:00
andrey 96adbd6185 [#10811] There should be an option to continue opening suspicious urls 2020-07-02 18:59:21 +02:00
andrey 2110446d29 conditional require
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 16:23:14 +02:00
andrey 2e7f4212c1 Revert "Remove usage of inline require"
This reverts commit 5f7c7955
2020-07-02 16:23:06 +02:00
Churikova Tetiana 1a6851efa0 uncomment e2e 2020-07-02 16:06:52 +03:00
Roman Volosovskyi 7f1e25a515 [simulated kk] Add proper signing for send/request transaction messages 2020-07-02 16:06:51 +03:00
Serhy ca75a7a057 Use new user instead recovered because message may not be received quick
Signed-off-by: Serhy <sergii@status.im>
2020-07-02 15:54:42 +03:00
andrey 24114f7fe8 [#10105] Add set max to Send transaction
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 13:39:48 +02:00
hydr063n 7f4476b253 fix typo in enter the recipient
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 11:45:12 +02:00
Gheorghe Pinzaru aa3781e5b5 Onboarding headers style
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 11:39:21 +02:00
Churikova Tetiana 6afc313a31 e2e fix2
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-02 11:38:36 +02:00
Churikova Tetiana b008d215e6 e2e fix 2020-07-02 11:38:20 +02:00
andrey 9619a0a204 [#10860] Rename and move Access keys in onboarding 2020-07-02 11:38:20 +02:00
andrey dfb8420353 Disable Register button if not enough SNT for ENS name
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-01 16:25:18 +02:00
jinhojang6 804932e654 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-01 14:15:59 +02:00
andrey 49744d89de [#10868] ENS name is pending when tx has failed
Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-01 12:48:08 +02:00
hesterbruikman ac74cf01c5 Log level copy update
Small change to manage #10888

Communicates that restart is required for log change to take effect.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-07-01 12:16:45 +02:00
Gheorghe Pinzaru e290881bf8 Add autoscroll and animation to intro carousel
Add cancelable loop animation

Set index manually

Increase progress bar size

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-07-01 09:32:36 +03:00
jakub b5fda1234e use eth.staging fleet for e2e builds
This should help us acquire more accurate statistics.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-30 10:33:05 +02:00
Gheorghe Pinzaru d916751160 Add PR Scheme for iOs build
Build PR Scheme in PR build

use named parameters, use pr_build boolean

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

Enable capabilities

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

Add custom app icon

Remove user defined profile

Add PR scheme

Explicit provide provisioning profiles

Fix pr schema

Bump jenkins

Pod bump

Describe pr_build argument

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-06-29 16:16:35 +03:00
jakub c943f5f283 nix: upgrade xcode 11.4.1 to 11.5
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-29 10:00:00 +02:00
andrey 056dde0190 [#10870] "Invalid timbre logging level" after upgrade from 1.4 to 1.4.1 or relogin on 1.4.1
Signed-off-by: andrey <motor4ik@gmail.com>
2020-06-29 09:40:55 +02:00
Gheorghe Pinzaru 1733d4dc83 Add control components to Quo
Add new switch component

Add all controls components

Use controls in list items

Delete leftover file

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-06-26 12:02:02 +03:00
1262 changed files with 63610 additions and 51928 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ 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.network.ui.views/mainnet?
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
@@ -65,7 +65,7 @@ mocks.js-dependencies/emoji-picker
mocks.js-dependencies/i18n
mocks.js-dependencies/qr-code
mocks.js-dependencies/svg
mocks.js-dependencies/vector-icons
mocks.js-dependencies/icons
mocks.js-dependencies/webview
mocks.js-dependencies/desktop-linking
mocks.js-dependencies/desktop-shortcuts
+1
View File
@@ -1,5 +1,6 @@
{: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
+1 -1
View File
@@ -13,7 +13,7 @@ update_configs:
update_type: "security"
# Keep /mobile/js_files/yarn.lock up to date, batching pull requests weekly
- package_manager: "javascript"
directory: "/mobile/js_files"
directory: "/"
update_schedule: "weekly"
allowed_updates:
- match:
+7 -2
View File
@@ -7,7 +7,6 @@ ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
GROUP_CHATS_ENABLED=1
HARDWALLET_ENABLED=1
LOG_LEVEL=info
MAILSERVER_CONFIRMATIONS_ENABLED=1
PFS_ENCRYPTION_ENABLED=1
@@ -18,8 +17,14 @@ SNOOPY=0
RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
MOBILE_UI_FOR_DESKTOP=1
STATUS_GO_PROTOCOL=0
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
+9 -4
View File
@@ -3,9 +3,8 @@ DEFAULT_NETWORK=testnet_rpc
ERC20_CONTRACT_WARNINGS=1
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
FLEET=eth.staging
GROUP_CHATS_ENABLED=1
HARDWALLET_ENABLED=1
LOG_LEVEL=info
MAILSERVER_CONFIRMATIONS_ENABLED=0
PAIRING_POPUP_DISABLED=1
@@ -17,9 +16,15 @@ SNOOPY=0
STICKERS_ENABLED=1
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
MOBILE_UI_FOR_DESKTOP=1
BLANK_PREVIEW=0
TOOLTIP_EVENTS=1
COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=1
QR_READ_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
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
+9 -2
View File
@@ -6,7 +6,6 @@ ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
GROUP_CHATS_ENABLED=1
HARDWALLET_ENABLED=1
LOG_LEVEL=info
MAILSERVER_CONFIRMATIONS_ENABLED=1
MAINNET_WARNING_ENABLED=1
@@ -18,6 +17,14 @@ SNOOPY=0
RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
MOBILE_UI_FOR_DESKTOP=1
STATUS_GO_ENABLE_NIMBUS=0
KEYCARD_TEST_MENU=0
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
+6 -2
View File
@@ -16,5 +16,9 @@ SNOOPY=0
RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
MOBILE_UI_FOR_DESKTOP=1
HARDWALLET_ENABLED=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=0
MAX_IMAGES_BATCH=5
BLANK_PREVIEW=0
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
+3 -2
View File
@@ -15,5 +15,6 @@ POW_TIME=1
SNOOPY=0
RPC_NETWORKS_ONLY=1
PARTITIONED_TOPIC=0
MOBILE_UI_FOR_DESKTOP=1
HARDWALLET_ENABLED=1
ENABLE_ROOT_ALERT=1
MAX_IMAGES_BATCH=1
ENABLE_REFERRAL_INVITE=0
+1 -1
View File
@@ -94,4 +94,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
[version]
^0.105.0
^0.122.0
+1 -11
View File
@@ -5,8 +5,6 @@
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @status-im/status-core
/ci @jakubgs
/fastlane @jakubgs
/scripts @jakubgs
@@ -24,12 +22,4 @@
/components @status-im/status-core-ui
desktop/ @vkjr
modules/react-native-desktop*/ @vkjr
modules/react-native-desktop*/ @vkjr
/doc @oskarth @yenda @jeluard
/deployment @vkjr
/test/appium/ @antdanchenko @churik
/test/appium/ @churik
+2 -3
View File
@@ -8,10 +8,9 @@ These are just guidelines, not rules. Use your best judgment, and feel free to p
#### What should I know before I get started?
* [Mission and Core Values](https://status.im/contribute)
* [Principles](https://status.im/contribute/our_principles.html)
* [Mission and Principles](https://status.im/about)
* [Read our FAQ](https://status.im/docs/FAQs.html)
* [Join our Chat](http://join.status.im/chat/public/status-core-dev)
* [Developer Introduction](https://status.im/developer_tools/)
* [Build Status Yourself](https://status.im/build_status)
* [Build Status Yourself](https://status.im/technical/build_status)
* [Find issues to work on](https://github.com/status-im/)
+8 -27
View File
@@ -9,46 +9,27 @@ assignees: ''
# Bug Report
## Problem
An overview of the background required to understand the problem.
A problem description.
## Problem
[comment]: # (A problem description)
#### Expected behavior
[comment]: # (Describe what you expected to happen. Please include designs if possible.)
#### Actual behavior
[comment]: # (Describe what actually happened. Please include screenshots if possible.)
#### Notes
For the developer who will be investigating. Is it related to another PR? Tips on where to start?
#### Acceptance Criteria
Rules for the future PR to be accepted.
### Reproduction
[comment]: # (Describe how we can replicate the bug step by step.)
- Open Status
- ...
- Step 3, etc.
1) Open Status
2)
### Additional Information
[comment]: # (Please do your best to fill this out.)
- Status version: ...
[comment]: # (Android or iOS.)
- Operating System: <Android|iOS>
- Status version: nightly
- Operating System: Android, iOS
#### Logs
[comment]: # (if on Android please replicate bug whilst running adb logcat)
[comment]: # (Please, add logs/notes if necessary)
```
...
```
+17
View File
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,15 @@
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
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,20 @@
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
+6 -30
View File
@@ -25,7 +25,6 @@ DerivedData
*.ipa
*.xcuserstate
project.xcworkspace
xcshareddata
# Android/IJ
#
@@ -68,9 +67,6 @@ env/dev/env/config.cljs
externs/
shim.js
# Desktop build
index.desktop.js
# Generated by lein voom
#
/pom.xml
@@ -104,6 +100,7 @@ Statusgo.framework
/ios/Pods/
/ios/StatusIm.xcworkspace
/ios/react-native-xcode.log
/ios/set_xcode_version.log
.ruby-version
status-e2e/
@@ -128,12 +125,8 @@ fastlane/README.md
# emacs
.dir-locals.el
#ignore platform-specific files in the root since they are only symlinks to files in folders 'desktop/js_files' and 'mobile/js_files'
/DEPENDENCIES.md
# We don't use NPM
/package-lock.json
/package.json
/metro.config.js
/yarn.lock
/.re-natal
/re-natal
@@ -141,27 +134,6 @@ fastlane/README.md
pkg
/BUILD_NUMBER
# Status Desktop
cmake_install.cmake
CMakeCache.txt
**/CMakeFiles/
/StatusImPackage/*
*.AppImage
Status-Windows-x86_64.exe
/desktop/bin/*
/desktop/lib/*
/desktop/modules/*
/desktop/Makefile
/desktop/graph_info.json
/desktop/run-app.bat
/desktop/run-app.sh
/desktop/CMakeFiles/
/desktop/reportApp/Makefile
/deployment/windows/Status.rc
*_autogen/
CompleteBundleWin.cmake
logger_settings.ini
# Conan
conan*.txt
conanbuildinfo.*
@@ -193,3 +165,7 @@ trace.edn
/app/
project.clj
##appium
test/appium/report/
result.xml
+40 -44
View File
@@ -1,4 +1,4 @@
.PHONY: nix-add-gcroots clean nix-clean run-metro react-native-desktop 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-mk _tmpdir-rm
help: SHELL := /bin/sh
help: ##@other Show this help
@@ -127,10 +127,17 @@ _tmpdir-rm: SHELL := /bin/sh
_tmpdir-rm: ##@prepare Remove TMPDIR
rm -fr "$(TMPDIR)"
# Remove directories and ignored files
clean: SHELL := /bin/sh
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
git clean -dXf
# Remove directories, ignored and non-ignored files
purge: SHELL := /bin/sh
purge: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
git clean -dxf
watchman-clean: export TARGET := watchman
watchman-clean: ##@prepare Delete repo directory from watchman
watchman watch-del $${STATUS_REACT_HOME}
@@ -149,40 +156,53 @@ keystore: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
keystore: ##@prepare Generate a Keystore for signing Android APKs
@./scripts/generate-keystore.sh
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
fdroid-nix-dir: SHELL := /bin/sh
fdroid-nix-dir: ##@prepare Create /nix directory for F-Droid Vagrant builders
mkdir -m 0755 /nix
chown vagrant /nix
fdroid-build-env: fdroid-max-watches fdroid-nix-dir ##@prepare Setup build environment for F-Droud build
xcode-clean: SHELL := /bin/sh
xcode-clean: XCODE_HOME := $(HOME)/Library/Developer/Xcode
xcode-clean: ##@prepare Clean XCode derived data and archives
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
#----------------
# Release builds
#----------------
release: release-android release-ios ##@build build release for Android and iOS
release: release-android release-ios ##@build Build release for Android and iOS
release-android: export TARGET := default
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
release-android: keystore ##@build Build release for Android
scripts/release-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
echo "GOOGLE_FREE=1" >> .env.release
scripts/release-android.sh
release-ios: export TARGET := ios
release-ios: export BUILD_ENV ?= prod
release-ios: watchman-clean ##@build build release for iOS release
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-desktop: export TARGET ?= $(HOST_OS)
release-desktop: ##@build build release for desktop release based on TARGET
@$(MAKE) jsbundle-desktop && \
scripts/build-desktop.sh; \
$(MAKE) watchman-clean
release-windows-desktop: export TARGET ?= windows
release-windows-desktop: ##@build build release for windows desktop release
@$(MAKE) jsbundle-desktop && \
scripts/build-desktop.sh; \
$(MAKE) watchman-clean
jsbundle-android: SHELL := /bin/sh
jsbundle-android: export TARGET := android
jsbundle-android: export BUILD_ENV ?= prod
@@ -208,10 +228,6 @@ 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-desktop: SHELL := /bin/sh
status-go-desktop: ##@status-go Compile status-go for desktop app
nix/scripts/build.sh targets.status-go.desktop
#--------------
# Watch, Build & Review changes
#--------------
@@ -220,10 +236,6 @@ run-clojure: export TARGET := clojure
run-clojure: ##@run Watch for and build Clojure changes for mobile
yarn shadow-cljs watch mobile
run-clojure-desktop: export TARGET ?= $(HOST_OS)
run-clojure-desktop: #@run Watch for and build Clojure changes for desktop
clj -R:dev build.clj watch --platform desktop
run-metro: export TARGET := clojure
run-metro: ##@run Start Metro to build React Native changes
@scripts/start-react-native.sh
@@ -246,10 +258,6 @@ else
npx react-native run-ios
endif
run-desktop: export TARGET ?= $(HOST_OS)
run-desktop: ##@run Run Desktop build
npx react-native run-desktop
#--------------
# Tests
#--------------
@@ -257,15 +265,12 @@ run-desktop: ##@run Run Desktop build
lint: export TARGET := clojure
lint: ##@test Run code style checks
yarn clj-kondo --confg .clj-kondo/config.edn --lint src && \
clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \
-m cljfmt.main check $$(git diff --diff-filter=d --cached --name-only src && echo src) \
--indents indentation.edn
TARGETS=$$(git diff --diff-filter=d --cached --name-only src && echo src) && \
clojure -Scp "$$CLASS_PATH" -m cljfmt.main check --indents indentation.edn $$TARGETS
lint-fix: export TARGET := clojure
lint-fix: ##@test Run code style checks and fix issues
clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \
-m cljfmt.main fix src \
--indents indentation.edn
clojure -Scp "$$CLASS_PATH" -m cljfmt.main fix src --indents indentation.edn
test: export TARGET := clojure
test: ##@test Run tests once in NodeJS
@@ -280,15 +285,6 @@ coverage: ##@test Run tests once in NodeJS generating coverage
# Other
#--------------
start-desktop-server: export TARGET ?= $(HOST_OS)
start-desktop-server: #@other Start ubuntu-server.js for desktop
node ubuntu-server.js
react-native-desktop: export TARGET ?= $(HOST_OS)
react-native-desktop: export _NIX_PURE ?= true
react-native-desktop: ##@other Start react native packager
@scripts/start-react-native.sh
geth-connect: export TARGET := android-env
geth-connect: ##@other Connect to Geth on the device
adb forward tcp:8545 tcp:8545 && \
+5 -2
View File
@@ -1,6 +1,9 @@
# Status - a Mobile Ethereum Operating System
[<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.
[![Getting started with Status](https://i.imgur.com/C0aZZEL.jpg)](https://www.youtube.com/watch?v=oDCSEmS9c3o "Getting started with Status")
@@ -24,7 +27,7 @@ Developers are the heart of software and to keep Status beating we need all the
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.
- **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 [Community Principles](https://status.im/contribute/our_principles.html)
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)
- **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.
-11
View File
@@ -1,11 +0,0 @@
# Description
This document explains some of the steps that are involved in relseases.
## PlayStore Metadata Updates
You can update Play Store releae 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-tools/job/update-playstore-metadata/
+1047
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
1.4.1
1.14.0
+18 -3
View File
@@ -123,6 +123,11 @@ def jscFlavor = 'org.webkit:android-jsc:+'
*/
def enableHermes = project.ext.react.get("enableHermes", false);
/**
* Exclude google library so we can publish to external android stores
*/
def googleFree = project.env.get("GOOGLE_FREE", false)
def getVersionCode = { ->
new ByteArrayOutputStream().withStream { stdOut ->
if (project.hasProperty("versionCode")) {
@@ -228,6 +233,8 @@ 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']))
@@ -253,11 +260,11 @@ android {
resValue "string", "build_config_package", "im.status.ethereum"
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
if (getEnvOrConfig('ANDROID_APK_SIGNED').toBoolean()) {
signingConfig signingConfigs.release
}
}
pr {
initWith release
@@ -320,6 +327,14 @@ dependencies {
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'
}
}
// react-native-screens
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
+3 -5
View File
@@ -21,11 +21,9 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- these permissions should be removed -->
<!-- React Native unnecessary permissions (https://github.com/facebook/react-native/issues/5886) -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
<uses-permission android:name="com.android.vending.BILLING" />
<application
tools:replace="android:allowBackup"
@@ -72,7 +70,7 @@
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<service android:name="im.status.ethereum.module.ForegroundService"></service>
<service android:name="im.status.ethereum.pushnotifications.ForegroundService"></service>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
@@ -199,7 +199,7 @@ public class MainActivity extends ReactFragmentActivity
private static final Integer FREQUENCY_OF_REMINDER_IN_PERCENT = 5;
private boolean shouldShowRootedNotification() {
if (RootUtil.isDeviceRooted()) {
if (RootUtil.isDeviceRooted() && BuildConfig.ENABLE_ROOT_ALERT == "1") {
if (userRejectedRootedNotification()) {
return ((Math.random() * 100) < FREQUENCY_OF_REMINDER_IN_PERCENT);
} else return true;
@@ -18,6 +18,7 @@ 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 MultiDexApplication implements ReactApplication {
@@ -30,10 +31,12 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
@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;
}
+4 -2
View File
@@ -25,7 +25,7 @@ kotlinVersion=1.3.50
minSdkVersion=23
compileSdkVersion=29
targetSdkVersion=29
buildToolsVersion=29.0.2
buildToolsVersion=30.0.3
supportLibVersion=28.0.0
# This should match version from nix/mobile/android/maven-and-npm-deps/maven/default.nix
gradlePluginVersion=3.5.3
@@ -42,10 +42,12 @@ KEYSTORE_KEY_PASSWORD=password
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
org.gradle.jvmargs=-Xmx8704M
versionCode=9999
# Flipper
FLIPPER_VERSION=0.35.0
FLIPPER_VERSION=0.54.0
+10 -9
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.1.7'
library 'status-jenkins-lib@v1.2.16'
pipeline {
agent { label 'linux' }
@@ -6,7 +6,7 @@ pipeline {
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 45, unit: 'MINUTES')
timeout(time: 20, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
@@ -101,12 +101,13 @@ pipeline {
} else { /* if no universal is available pick first */
env.PKG_URL = urls.first()
}
/* build type specific */
switch (btype) {
case 'nightly':
env.DIAWI_URL = android.uploadToDiawi(); break;
case 'e2e':
env.SAUCE_URL = android.uploadToSauceLabs(); break;
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()
}
}
}
@@ -115,7 +116,7 @@ pipeline {
}
stage('Cleanup') {
steps {
sh 'make clean'
sh 'make purge'
}
}
}
+53 -15
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.1.7'
library 'status-jenkins-lib@v1.2.16'
pipeline {
agent { label 'linux' }
@@ -7,7 +7,7 @@ pipeline {
timestamps()
disableConcurrentBuilds()
/* Prevent Jenkins jobs from running forever */
timeout(time: 45, unit: 'MINUTES')
timeout(time: 40, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
@@ -16,6 +16,20 @@ pipeline {
))
}
/* WARNING: Defining parameters here with the ?: trick causes them to remember last value. */
parameters {
choice(
name: 'BUILD_TYPE',
description: 'Makefile target to build. Optional Parameter.',
choices: genChoices(params.BUILD_TYPE, ['manual', 'nightly', 'release', 'pr', 'e2e']),
)
booleanParam(
name: 'PUBLISH',
description: 'Trigger publishing of build results for nightly or release.',
defaultValue: getPublishDefault(params.PUBLISH),
)
}
stages {
stage('Prep') {
steps { script {
@@ -27,13 +41,13 @@ pipeline {
stage('Build') {
parallel {
stage('iOS') { steps { script {
ios = jenkins.Build('status-react/combined/mobile-ios')
ios = jenkins.Build('status-react/platforms/ios')
} } }
stage('Android') { steps { script {
apk = jenkins.Build('status-react/combined/mobile-android')
apk = jenkins.Build('status-react/platforms/android')
} } }
stage('Android e2e') { steps { script {
apke2e = jenkins.Build('status-react/combined/mobile-android-e2e')
apke2e = jenkins.Build('status-react/platforms/android-e2e')
} } }
}
}
@@ -44,9 +58,10 @@ pipeline {
//jenkins.copyArts(iose2e)
jenkins.copyArts(apk)
jenkins.copyArts(apke2e)
sha = "pkg/${utils.pkgFilename('sha256')}"
dir('pkg') {
/* generate sha256 checksums for upload */
sh "sha256sum * | tee ${utils.pkgFilename(btype, 'sha256')}"
sh "sha256sum * | tee ../${sha}"
archiveArtifacts('*')
}
} }
@@ -60,27 +75,29 @@ pipeline {
iOS: utils.pkgUrl(ios), /*iOSe2e: utils.pkgUrl(iose2e),*/
Diawi: utils.utils.getEnv(ios, 'DIAWI_URL'),
/* upload the sha256 checksums file too */
SHA: s3.uploadArtifact(utils.pkgFind('sha256')),
SHA: s3.uploadArtifact(sha),
]
/* add URLs to the build description */
jenkins.setBuildDesc(urls)
/* Create JSON file with newest build URLs */
switch (btype) {
/* legacy naming, should have named it nightly.json */
case 'nightly': s3.updateBucketJSON(urls, 'latest.json'); break
}
} }
}
stage('Publish') {
when { expression { params.PUBLISH } }
steps { script {
switch (btype) {
case 'nightly': build(job: 'misc/status.im', wait: false); break
case 'release': github.publishReleaseMobile(); break
case 'nightly':
/* Create JSON file with newest build URLs */
s3.updateBucketJSON(urls, 'latest.json');
build(job: 'misc/status.im', wait: false);
break;
case 'release':
github.publishReleaseFiles(repo: 'status-react');
break;
}
} }
}
stage('Run e2e') {
when { expression { btype == 'nightly' } }
when { expression { btype == 'nightly' && params.PUBLISH } }
steps { script {
e2eApk = utils.getEnv(apke2e, 'SAUCE_URL')
build(
@@ -92,3 +109,24 @@ pipeline {
}
}
}
/* Helper that generates list of available choices for a parameter
* but re-orders them based on the currently set value. First is default. */
def List genChoices(String previousChoice, List defaultChoices) {
if (previousChoice == null) {
return defaultChoices
}
choices = defaultChoices.minus(previousChoice)
choices.add(0, previousChoice)
return choices
}
/* Helper that makes PUBLISH default to 'false' unless:
* - The build is for a release branch
* - 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 (previousValue != null) { return previousValue }
return false
}
+6 -5
View File
@@ -1,7 +1,7 @@
library 'status-react-jenkins@v1.1.7'
library 'status-jenkins-lib@v1.2.16'
pipeline {
agent { label 'macos-xcode-11.5' }
agent { label 'macos-xcode-12.3' }
parameters {
string(
@@ -14,7 +14,7 @@ pipeline {
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 45, unit: 'MINUTES')
timeout(time: 25, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
@@ -99,8 +99,9 @@ pipeline {
steps {
script {
env.PKG_URL = s3.uploadArtifact(api)
jenkins.setBuildDesc(IPA: env.PKG_URL)
/* e2e builds get tested in SauceLabs */
if (btype == 'e2e') {
if (utils.isE2EBuild()) {
env.SAUCE_URL = ios.uploadToSauceLabs()
} else {
env.DIAWI_URL = ios.uploadToDiawi()
@@ -113,7 +114,7 @@ pipeline {
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make clean'
sh 'make purge'
}
}
}
-125
View File
@@ -1,125 +0,0 @@
library 'status-react-jenkins@v1.1.7'
pipeline {
agent { label 'linux' }
parameters {
string(
name: 'BUILD_TYPE',
description: 'Specify build type. Values: pr / nightly / release',
defaultValue: 'pr',
)
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 40, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '20',
artifactNumToKeepStr: '10',
))
/* Allows combined build to copy */
copyArtifactPermission('/status-react/*')
}
/**
* WARNING: Jenkins ignores PATH changes in Docker
* https://issues.jenkins-ci.org/browse/JENKINS-49076
**/
environment {
LANG = "en_US.UTF-8"
LC_ALL = "en_US.UTF-8"
LANGUAGE = "en_US.UTF-8"
TARGET = 'linux'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
VERBOSE_LEVEL = '3'
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}"
GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}"
}
stages {
stage('Prep') {
steps {
script {
btype = utils.getBuildType()
print "Running ${btype} build!"
jenkins.abortPreviousRunningBuilds()
/* Cleanup and Prep */
commonPrep(btype)
}
}
}
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 { desktop.buildJSBundle() }
}
}
stage('Compile') {
steps {
script { desktop.compile() }
}
}
stage('Bundle') {
steps {
script { app = desktop.bundleLinux(btype) }
}
}
} }
}
}
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = s3.uploadArtifact(app) }
}
}
}
}
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make clean'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
}
}
-123
View File
@@ -1,123 +0,0 @@
library 'status-react-jenkins@v1.1.7'
pipeline {
agent { label 'macos-xcode-11.5' }
parameters {
string(
name: 'BUILD_TYPE',
description: 'Specify build type. Values: pr / nightly / release',
defaultValue: 'pr',
)
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 30, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '20',
artifactNumToKeepStr: '10',
))
/* Allows combined build to copy */
copyArtifactPermission('/status-react/*')
}
environment {
LANG = "en_US.UTF-8"
LC_ALL = "en_US.UTF-8"
LANGUAGE = "en_US.UTF-8"
TARGET = 'macos'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
VERBOSE_LEVEL = '3'
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}"
GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}"
}
stages {
stage('Prep') {
steps {
script {
btype = utils.getBuildType()
print "Running ${btype} build!"
jenkins.abortPreviousRunningBuilds()
/* Cleanup and Prep */
commonPrep(btype)
}
}
}
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 { desktop.buildJSBundle() }
}
}
stage('Compile') {
steps {
script { desktop.compile() }
}
}
stage('Bundle') {
steps {
script { dmg = desktop.bundleMacOS(btype) }
}
}
} }
}
}
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts dmg
}
}
stage('Upload') {
steps {
script { env.PKG_URL = s3.uploadArtifact(dmg) }
}
}
}
}
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make clean'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
}
}
+2 -2
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.1.7'
library 'status-jenkins-lib@v1.2.16'
pipeline {
agent { label params.AGENT_LABEL }
@@ -36,7 +36,7 @@ pipeline {
}
stage('Build status-go') {
steps { script {
def platforms = ['mobile.android', 'mobile.ios', 'desktop']
def platforms = ['mobile.android', 'mobile.ios']
if (uname != "Darwin") {
platforms.removeAll { it == "ios" }
}
-128
View File
@@ -1,128 +0,0 @@
library 'status-react-jenkins@v1.1.7'
pipeline {
agent { label 'linux' }
parameters {
string(
name: 'BUILD_TYPE',
description: 'Specify build type. Values: pr / nightly / release',
defaultValue: 'pr',
)
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 45, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '20',
artifactNumToKeepStr: '10',
))
/* Allows combined build to copy */
copyArtifactPermission('/status-react/*')
}
/**
* WARNING: Jenkins ignores PATH changes in Docker
* https://issues.jenkins-ci.org/browse/JENKINS-49076
**/
environment {
LANG = "en_US.UTF-8"
LC_ALL = "en_US.UTF-8"
LANGUAGE = "en_US.UTF-8"
TARGET = 'windows'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
VERBOSE_LEVEL = '3'
/* Conan settings */
CONAN_PRINT_RUN_COMMANDS = '1'
CONAN_SYSREQUIRES_MODE = 'disabled'
CONAN_SYSREQUIRES_SUDO = '0'
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}"
}
stages {
stage('Prep') {
steps {
script {
btype = utils.getBuildType()
print "Running ${btype} build!"
jenkins.abortPreviousRunningBuilds()
/* Cleanup and Prep */
commonPrep(btype)
}
}
}
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 { desktop.buildJSBundle() }
}
}
stage('Compile') {
steps {
script { desktop.compile() }
}
}
stage('Bundle') {
steps {
script { app = desktop.bundleWindows(btype) }
}
}
} }
}
}
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = s3.uploadArtifact(app) }
}
}
}
}
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make clean'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
}
}
+2 -2
View File
@@ -6,11 +6,11 @@ This folder contains files defininf [Jenkins pipelines](https://jenkins.io/doc/b
All `Jenkinsfile`s contain the following line:
```groovy
library 'status-react-jenkins@master'
library 'status-jenkins-lib@master'
```
Which loads the used methods - like `nix.shell()` - from a separate private repo:
https://github.com/status-im/status-react-jenkins
https://github.com/status-im/status-jenkins-lib
This is done to improve security of our CI setup.
+9 -3
View File
@@ -44,13 +44,19 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -m testrail_id \
-m "not upgrade" \
-n24 --rerun_count=2 \
python3 -m pytest \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
-m testrail_id \
-m "not upgrade" \
--network=${params.NETWORK} \
--apk=${params.APK_NAME}
"""
+7 -2
View File
@@ -62,7 +62,7 @@ pipeline {
withCredentials([
usernamePassword(
credentialsId: 'status-im-auto-token',
credentialsId: 'status-im-auto',
usernameVariable: 'GIT_HUB_USER', /* ignored */
passwordVariable: 'GIT_HUB_TOKEN'
),
@@ -80,10 +80,15 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -n24 \
python3 -m pytest \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
-m "${params.TEST_MARKERS}" \
+8 -2
View File
@@ -48,11 +48,17 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -m upgrade \
-n24 --rerun_count=2 \
python3 -m pytest \
-m upgrade \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
--network=${params.NETWORK} \
--apk=${params.APK_NAME} \
+1 -1
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.1.7'
library 'status-jenkins-lib@v1.2.16'
pipeline {
agent { label 'macos' }
-55
View File
@@ -1,55 +0,0 @@
library 'status-react-jenkins@v1.1.7'
pipeline {
agent { label 'linux' }
environment {
LANG = 'en_US.UTF-8'
LANGUAGE = 'en_US.UTF-8'
LC_ALL = 'en_US.UTF-8'
TARGET = 'ios'
FASTLANE_DISABLE_COLORS = 1
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* avoid writing to r/o /nix */
GEM_HOME = '~/.rubygems'
}
options {
timestamps()
/* Disable concurrent jobs */
disableConcurrentBuilds()
/* Prevent Jenkins jobs from running forever */
timeout(time: 5, unit: 'MINUTES')
/* Don't keep more than 50 builds */
buildDiscarder(logRotator(numToKeepStr: '50'))
}
stages {
stage('Prep') {
steps { script {
nix.shell(
'bundle install --gemfile=fastlane/Gemfile',
attr: 'shells.fastlane',
)
} }
}
stage('Play Store Update'){
steps { script {
withCredentials([
string(
credentialsId: 'SUPPLY_JSON_KEY_DATA',
variable: 'GOOGLE_PLAY_JSON_KEY'
),
]) {
nix.shell(
'bundle exec --gemfile=fastlane/Gemfile fastlane android upload_metadata',
keepEnv: ['FASTLANE_DISABLE_COLORS', 'GOOGLE_PLAY_JSON_KEY'],
attr: 'shells.fastlane',
pure: false
)
}
} }
}
}
}
+43
View File
@@ -0,0 +1,43 @@
/**
* 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:
*
* Failed with exit code 1 (in target 'StatusImPR' from project 'StatusIm')
**/
pipeline {
agent {
label params.HOST_LABEL
}
triggers {
/* Run daily at 2am */
cron('H 2 * * *')
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 5, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '20',
))
}
parameters {
string(
name: 'HOST_LABEL',
description: 'Label of host to run on',
/* Using startTimeInMillis to randomize which host gets the update. */
defaultValue: "macos-0${(currentBuild.startTimeInMillis % 3) + 1}",
)
}
stages {
stage('Update') {
steps {
sh 'pod repo update'
}
}
}
}
View File
View File
@@ -1,7 +0,0 @@
[Desktop Entry]
Type=Application
Name=Status
Comment=Status Desktop
Exec=Status
Icon=Status
Categories=Network;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

-43
View File
@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>Status</string>
<key>CFBundleExecutable</key>
<string>Status</string>
<key>CFBundleIconFile</key>
<string>status-icon</string>
<key>CFBundleIdentifier</key>
<string>im.status.statusim</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Status</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.1</string>
<key>CFBundleVersion</key>
<string>0.1</string>
<key>LSMinimumSystemVersion</key>
<string>10.9.0</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>status-im</string>
</array>
<key>CFBundleURLName</key>
<string>im.status.ethereum.applink-desktop</string>
</dict>
</array>
</dict>
</plist>
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env bash
function make_icns {
local file="../status-icon.png"
local iconset="$(mktemp -d)"
local output_icon="status-icon.icns"
for size in {16,32,64,128,256,512}; do
sips --resampleHeightWidth "${size}" "${size}" "${file}" --out "${iconset}/icon_${size}x${size}.png" &> /dev/null
sips --resampleHeightWidth "$((size * 2))" "$((size * 2))" "${file}" --out "${iconset}/icon_${size}x${size}@2x.png" &> /dev/null
done
mv "${iconset}" "${iconset}.iconset"
iconutil --convert icns "${iconset}.iconset" --output "${output_icon}"
echo "${output_icon}" # so its path is returned when the function ends
}
make_icns
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.
-4
View File
@@ -1,4 +0,0 @@
[Paths]
Plugins = ../PlugIns
Imports = ../Resources/qml
Qml2Imports = ../Resources/qml
-18
View File
@@ -1,18 +0,0 @@
{
"title": "Status",
"background": "dmg-background.png",
"contents": [
{
"x": 385,
"y": 235,
"type": "link",
"path": "/Applications"
},
{
"x": 170,
"y": 236,
"type": "file",
"path": "../../StatusImPackage/Status.app"
}
]
}
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

-24
View File
@@ -1,24 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="68" height="68" viewBox="0 0 68 68">
<defs>
<ellipse id="b" cx="31.969" cy="31.938" rx="31.969" ry="31.938"/>
<filter id="a" width="114.1%" height="114.1%" x="-7%" y="-3.9%" filterUnits="objectBoundingBox">
<feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/>
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation=".5"/>
<feColorMatrix in="shadowBlurOuter1" result="shadowMatrixOuter1" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22 0"/>
<feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter2"/>
<feGaussianBlur in="shadowOffsetOuter2" result="shadowBlurOuter2" stdDeviation="1"/>
<feColorMatrix in="shadowBlurOuter2" result="shadowMatrixOuter2" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"/>
<feMergeNode in="shadowMatrixOuter2"/>
</feMerge>
</filter>
</defs>
<g fill="none" fill-rule="nonzero">
<g transform="translate(2 1)">
<use fill="#000" filter="url(#a)" xlink:href="#b"/>
<use fill="#FFF" xlink:href="#b"/>
</g>
<path fill="#4360DF" d="M34 1.062c-17.673 0-32 14.313-32 31.97C2 50.686 16.327 65 34 65c17.673 0 32-14.313 32-31.969 0-8.478-3.371-16.61-9.373-22.605A32.016 32.016 0 0 0 34 1.062zm-4.902 46.17c-4.013.225-8.023-2.192-8.243-6.118-.213-3.859 2.799-6.44 7.779-6.72 3.674-.207 5.97.628 9.65.421.911-.05 1.817-.18 2.706-.386-.543 6.633-5.352 12.435-11.892 12.803zm10.298-14.497c-3.834.222-6.238-.671-10.076-.45-.951.053-1.896.191-2.823.413.56-7.084 5.587-13.288 12.414-13.68 4.189-.243 8.376 2.342 8.604 6.536.224 4.124-2.922 6.883-8.119 7.18z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

-71
View File
@@ -1,71 +0,0 @@
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_STATUS ICON "${ICO_RESOURCE_PATH}"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#ifndef APSTUDIO_INVOKED\r\n"
"#include ""targetver.h""\r\n"
"#endif\r\n"
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -1,23 +0,0 @@
!include LogicLib.nsh
!include WordFunc.nsh
Function SnoreWinVer
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
${VersionCompare} "6.2" $R0 $R0
${If} $R0 == 1
Push "NotWin8"
${Else}
Push "AtLeastWin8"
${EndIf}
FunctionEnd
!macro SnoreShortcut path exe appID
Call SnoreWinVer
Pop $0
${If} $0 == "AtLeastWin8"
nsExec::ExecToLog '"${SnoreToastExe}" -install "${path}" "${exe}" "${appID}"'
${Else}
DetailPrint "Creating shortcut to ${exe}"
CreateShortCut "${path}" "${exe}"
${EndIf}
!macroend
-299
View File
@@ -1,299 +0,0 @@
/*** UAC Plug-in ***
Interactive User (MediumIL) Admin user (HighIL)
***[Setup.exe]************* ***[Setup.exe]**************
* * * *
* +++[.OnInit]+++++++++++ * * +++[.OnInit]++++++++++++ *
* + UAC_RunElevated >---+-+----> * + + *
* + NSIS.Quit + * * + + *
* +++++++++++++++++++++++ * * ++++++++++++++++++++++++ *
* * * *
* * * *
* +++[Section]+++++++++++ * * +++[Section]++++++++++++ *
* + + * /--+-+-<UAC_AsUser_ExecShell+ *
* +++++++++++++++++++++++ * | * ++++++++++++++++++++++++ *
* * | * *
* Win32.ShellExecute <---+--/ * *
* * * *
*************************** ****************************
*/
!ifndef UAC_HDR__INC
!verbose push
!verbose 3
!ifndef UAC_VERBOSE
!define UAC_VERBOSE 3
!endif
!verbose ${UAC_VERBOSE}
!define UAC_HDR__INC 0x00020400 ;MMmmbbrr
!include LogicLib.nsh
/* UAC_RunElevated
**
** Starts the elevation operation.
**
** Return values:
**
** $0: Win32 error code (0 on success, 1223 if user aborted elevation dialog, anything else should be treated as a fatal error)
** $1: If $0==0:
** 0 UAC is not supported by the OS
** 1 Started a elevated child process, the current process should act like a wrapper (Call Quit without any further processing)
** 2 The process is already running @ HighIL (Member of admin group)
** 3 You should call RunElevated again (This can happen if a user without admin priv. is used in the runas dialog)
** $2: If $0==0 && $1==1: ExitCode of the elevated fork process (The NSIS errlvl is also set)
** $3: If $0==0: 1 if the user is a member of the admin group or 0 otherwise
**/
!macro UAC_RunElevated
UAC::_ 0
!macroend
!macro UAC_PageElevation_RunElevated
UAC::_ 0
!macroend
/*!macro UAC_OnInitElevation_RunElevated
UAC::_ 0
!macroend
!macro UAC_OnInitElevation_OnGuiInit
!macroend*/
/* UAC_GetIntegrityLevel <NSISVar:Output | "s">
**
** Get integrity level of current process
**
**/
!macro UAC_GetIntegrityLevel outvar
UAC::_ 6
!if "${outvar}" != "s"
Pop ${outvar}
!endif
!macroend
/* UAC_IsAdmin
**
** Is the current process running with administrator privileges? Result in $0
**
** ${If} ${UAC_IsAdmin} ...
**
**/
!macro UAC_IsAdmin
UAC::_ 2
!macroend
!define UAC_IsAdmin `"" UAC_IsAdmin ""`
!macro _UAC_IsAdmin _a _b _t _f
!insertmacro _UAC_MakeLL_Cmp _!= 0 2s
!macroend
/* UAC_IsInnerInstance
**
** Does the current process have a NSIS/UAC parent process that is part of the elevation operation?
**
** ${If} ${UAC_IsInnerInstance} ...
**
**/
!macro UAC_IsInnerInstance
UAC::_ 3
!macroend
!define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""`
!macro _UAC_IsInnerInstance _a _b _t _f
!insertmacro _UAC_MakeLL_Cmp _!= 0 3s
!macroend
/* UAC_PageElevation_OnInit, UAC_PageElevation_OnGuiInit,
**
** Helper macros for elevation on a custom elevation page, see the DualMode example for more information.
**
**/
!macro UAC_Notify_OnGuiInit
UAC::_ 4
!macroend
!macro UAC_PageElevation_OnGuiInit
!insertmacro UAC_Notify_OnGuiInit
!macroend
!macro UAC_PageElevation_OnInit
UAC::_ 5
${IfThen} ${Errors} ${|} Quit ${|}
!macroend
/* UAC_AsUser_Call <Function|Label> <NSISAddressName> <UAC_* flags>
**
** Calls a function or label in the user process instance.
** All the UAC_AsUser_* macros use this helper macro.
**
**/
!define UAC_SYNCREGISTERS 0x1
;define UAC_SYNCSTACK 0x2
!define UAC_SYNCOUTDIR 0x4
!define UAC_SYNCINSTDIR 0x8
;define UAC_CLEARERRFLAG 0x10
!macro UAC_AsUser_Call type name flags
push $0
Get${type}Address $0 ${name}
!verbose push
!verbose ${UAC_VERBOSE}
!insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags}
!verbose pop
StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}"
!undef _UAC_AsUser_Call__flags
Exch $0
UAC::_
!macroend
/*
** UAC_AsUser_GetSection <Flags|InstTypes|Size|Text> <SectionIndex> <NSISVar:Output>
*/
!macro UAC_AsUser_GetSection secprop secidx outvar
!insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${secprop} ${secidx} ""
!macroend
/*
** UAC_AsUser_GetGlobalVar <NSISVar:SourceAndOutput>
** UAC_AsUser_GetGlobal <NSISVar:Output> <NSISVar:Source>
*/
!macro UAC_AsUser_GetGlobalVar var
!insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var}
!macroend
!macro UAC_AsUser_GetGlobal outvar srcvar
!insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar}
!macroend
/*
** UAC_AsUser_ExecShell <Verb> <ApplicationOrFile> <Parameters> <Working Directory> <SW_*>
**
** Call ExecShell in the user process instance.
**
*/
!macro UAC_AsUser_ExecShell verb command params workdir show
!insertmacro _UAC_IncL
goto _UAC_L_E_${__UAC_L}
_UAC_L_F_${__UAC_L}:
ExecShell "${verb}" "${command}" '${params}' ${show}
return
_UAC_L_E_${__UAC_L}:
!if "${workdir}" != ""
push $outdir
SetOutPath "${workdir}"
!endif
!insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG}
!if "${workdir}" != ""
pop $outdir
SetOutPath $outdir
!endif
!macroend
!macro _UAC_MakeLL_Cmp cmpop cmp pluginparams
!insertmacro _LOGICLIB_TEMP
UAC::_ ${pluginparams}
pop $_LOGICLIB_TEMP
!insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}`
!macroend
!macro _UAC_definemath def val1 op val2
!define /math _UAC_definemath "${val1}" ${op} ${val2}
!ifdef ${def}
!undef ${def}
!endif
!define ${def} "${_UAC_definemath}"
!undef _UAC_definemath
!macroend
!macro _UAC_ParseDefineFlags_orin parse outflags
!searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2
!define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1}
!undef ${parse}
!define ${parse} ${_UAC_ParseDefineFlags_orin_f2}
!define _UAC_ParseDefineFlags_orin_saveout ${${outflags}}
!undef ${outflags}
!define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}"
!undef _UAC_ParseDefineFlags_orin_saveout
!undef _UAC_ParseDefineFlags_orin_this
!ifdef _UAC_ParseDefineFlags_orin_f1
!undef _UAC_ParseDefineFlags_orin_f1
!endif
!ifdef _UAC_ParseDefineFlags_orin_f2
!undef _UAC_ParseDefineFlags_orin_f2
!endif
!macroend
!macro _UAC_ParseDefineFlags_Begin _outdef _in
!define _UAC_PDF${_outdef}_parse "${_in}"
!define _UAC_PDF${_outdef}_flags ""
!define _UAC_PDF${_outdef}_r 0
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x1
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x2
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x4
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x8
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10
!macroend
!macro _UAC_ParseDefineFlags_End _outdef
!define ${_outdef} ${_UAC_PDF${_outdef}_r}
!undef _UAC_PDF${_outdef}_r
!undef _UAC_PDF${_outdef}_flags
!undef _UAC_PDF${_outdef}_parse
!macroend
!macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag
!if ${_UAC_PDF${_outdef}_flags} & ${flag}
!insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag}
!endif
!macroend
!macro _UAC_ParseDefineFlagsToInt _outdef _in
!insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}"
!define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags}
!insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp
!undef _UAC_ParseDefineFlagsToInt_tmp
!macroend
!macro _UAC_IncL
!insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1
!macroend
!macro _UAC_AsUser_GenOp outvar op opparam1 opparam2
!define _UAC_AUGOGR_ID _UAC_AUGOGR_OP${outvar}${op}${opparam1}${opparam2}
!ifndef ${_UAC_AUGOGR_ID} ;Has this exact action been done before?
!if ${outvar} == $0
!define ${_UAC_AUGOGR_ID} $1
!else
!define ${_UAC_AUGOGR_ID} $0
!endif
!if "${opparam1}" == ""
!define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}}
!define _UAC_AUGOGR_OPP2 ${opparam2}
!else
!define _UAC_AUGOGR_OPP1 ${opparam1}
!define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}}
!endif
goto ${_UAC_AUGOGR_ID}_C
${_UAC_AUGOGR_ID}_F:
${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2}
return
${_UAC_AUGOGR_ID}_C:
!undef _UAC_AUGOGR_OPP1
!undef _UAC_AUGOGR_OPP2
!endif
push ${${_UAC_AUGOGR_ID}}
!insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS}
StrCpy ${outvar} ${${_UAC_AUGOGR_ID}}
pop ${${_UAC_AUGOGR_ID}}
!undef _UAC_AUGOGR_ID
!macroend
!verbose pop
!endif /* UAC_HDR__INC */
@@ -1,28 +0,0 @@
!define nsProcess::FindProcess `!insertmacro nsProcess::FindProcess`
!macro nsProcess::FindProcess _FILE _ERR
nsProcess::_FindProcess /NOUNLOAD `${_FILE}`
Pop ${_ERR}
!macroend
!define nsProcess::KillProcess `!insertmacro nsProcess::KillProcess`
!macro nsProcess::KillProcess _FILE _ERR
nsProcess::_KillProcess /NOUNLOAD `${_FILE}`
Pop ${_ERR}
!macroend
!define nsProcess::CloseProcess `!insertmacro nsProcess::CloseProcess`
!macro nsProcess::CloseProcess _FILE _ERR
nsProcess::_CloseProcess /NOUNLOAD `${_FILE}`
Pop ${_ERR}
!macroend
!define nsProcess::Unload `!insertmacro nsProcess::Unload`
!macro nsProcess::Unload
nsProcess::_Unload
!macroend
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
-20
View File
@@ -1,20 +0,0 @@
//{{NO_DEPENDENCIES}}
// clang-format off
// Used by Status.rc
#define IDI_STATUS 107
#ifndef IDC_STATIC
#define IDC_STATIC -1
#endif
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 130
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

-8
View File
@@ -1,8 +0,0 @@
#pragma once
// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <sdkddkver.h>
-99
View File
@@ -1,99 +0,0 @@
# Copyright (C) 2016, Canonical Ltd.
# All rights reserved.
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.
cmake_minimum_required(VERSION 3.12.1)
set(APP_NAME Status)
set(JS_APP_NAME StatusIm)
set(REACT_BUILD_STATIC_LIB ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNICODE -std=c++11")
if(STATUS_NO_LOGGING)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTATUS_NO_LOGGING")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUNICODE -std=c11")
set(CMAKE_INSTALL_PREFIX bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}" CACHE PATH "Where to place compiled executables.")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
project(${APP_NAME} C CXX)
set(${APP_NAME}_BINARY_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(USED_QT_MODULES Core Concurrent Qml Quick WebSockets Svg)
include(QtConfiguration)
set(ICON_PNG_RESOURCE_PATH "${CMAKE_SOURCE_DIR}/../deployment/status-icon.png")
if (WIN32)
set(ICO_RESOURCE_PATH "${CMAKE_SOURCE_DIR}/../deployment/windows/status.ico")
set(APPLICATION_MAIN_RC_PATH "${CMAKE_SOURCE_DIR}/../deployment/windows/Status.rc")
configure_file(
${CMAKE_SOURCE_DIR}/../deployment/windows/Status.rc.in
${APPLICATION_MAIN_RC_PATH}
)
endif()
message(STATUS "EXTERNAL_MODULES_DIR: ${EXTERNAL_MODULES_DIR}")
string(REGEX MATCH "BUILD_FOR_BUNDLE" BUILD_FOR_BUNDLE "${CMAKE_CXX_FLAGS}")
# It is important to distinguish between directory hierarchies
# in release and dev builds. Release contains .env
# in the root dir of the build, while dev build's current dir
# is status-react/desktop/bin, hence the need
# to jump two levels up.
# This is required by react-native-config library which references ENVFILE
# from its own CMakeLists.txt file, so it will read the value set here
if(${BUILD_FOR_BUNDLE} MATCHES "BUILD_FOR_BUNDLE")
set(ENVFILE "/.env")
else()
set(ENVFILE "/../../.env")
endif()
foreach(external_module ${EXTERNAL_MODULES_DIR})
message(STATUS "external_module: ${external_module}")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../${external_module} ${CMAKE_CURRENT_BINARY_DIR}/${external_module})
endforeach(external_module)
add_subdirectory(reportApp)
# Import any new Qt modules that have been added by external dependencies
import_qt_modules()
# APPLICATION_MAIN_CPP_PATH contains absolute path to generated template copy of main.cpp for application executable
get_filename_component(APPLICATION_MAIN_CPP_PATH main.cpp ABSOLUTE)
set(REACTQT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../node_modules/react-native/React)
include_directories(${REACTQT_DIR}/Layout)
add_subdirectory(${REACTQT_DIR}Qt/runtime/src ${CMAKE_CURRENT_BINARY_DIR}/lib)
add_subdirectory(${REACTQT_DIR}Qt/application/src ${CMAKE_CURRENT_BINARY_DIR}/bin)
if (Qt5_POSITION_INDEPENDENT_CODE)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif(Qt5_POSITION_INDEPENDENT_CODE)
target_sources(${APP_NAME}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/appconfig.h"
"${CMAKE_CURRENT_LIST_DIR}/appconfig.cpp")
#set(SOURCE_ROOT ${CMAKE_SOURCE_DIR})
include(CompleteBundle)
if (WIN32)
set(RUN_SCRIPT_FILE_NAME "run-app.bat")
else()
set(RUN_SCRIPT_FILE_NAME "run-app.sh")
endif()
configure_file(
${RUN_SCRIPT_FILE_NAME}.in
${CMAKE_CURRENT_BINARY_DIR}/${RUN_SCRIPT_FILE_NAME}
@ONLY
)
-12
View File
@@ -1,12 +0,0 @@
if(APPLE)
set(SCRIPT CompleteBundleOSX)
elseif(WIN32)
set(SCRIPT CompleteBundleWin)
elseif(UNIX)
set(SCRIPT CompleteBundleLinux)
endif(APPLE)
if(SCRIPT AND EXISTS ${CMAKE_SOURCE_DIR}/CMakeModules/${SCRIPT}.cmake.in)
configure_file(${CMAKE_SOURCE_DIR}/CMakeModules/${SCRIPT}.cmake.in ${SCRIPT}.cmake @ONLY)
include(${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT}.cmake)
endif()
@@ -1,62 +0,0 @@
# windeployqt should be used here, but since we get the `Not implemented` error from it, we're trying to manually copy artifacts to output directory
set(TARGET_DIR "${@APP_NAME@_BINARY_DIR}")
##########################################################################################################
#
# NOTE: Remember to reflect any changes on the setup generation procedure in /deployment/windows/nsis/setup.nsi
#
##########################################################################################################
set(qtmodules Core Quick QuickTemplates2 QuickControls2 WebSockets Widgets Gui Network Svg Qml Concurrent)
if(USE_QTWEBKIT)
set(qtmodules ${qtmodules} Multimedia WebKit WebKitWidgets WebChannel)
add_custom_command(TARGET @APP_NAME@ POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"@CONAN_BIN_DIRS_QT5-MXE@/QtWebProcess.exe"
${TARGET_DIR}
BYPRODUCTS ${TARGET_DIR}/QtWebProcess.exe)
endif()
foreach(qtmodule ${qtmodules})
message(STATUS "Copying ${qtmodule} module to ${TARGET_DIR}")
file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/Qt5${qtmodule}.dll" DESTINATION "${TARGET_DIR}")
endforeach(qtmodule ${qtmodules})
if(EXISTS "@QTROOT@/translations")
message(STATUS "Copying translations module to ${TARGET_DIR}")
file(COPY "@QTROOT@/translations" DESTINATION "${TARGET_DIR}")
endif()
set(qtplugindirs "bearer" "platforms" "styles" "iconengines" "imageformats")
foreach(qtplugindir ${qtplugindirs})
message(STATUS "Copying plugin ${qtplugindir} to ${TARGET_DIR}/${qtplugindir}")
file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/../plugins/${qtplugindir}/" DESTINATION "${TARGET_DIR}/${qtplugindir}")
endforeach()
set(qtqmldirs "QtQuick" "QtQuick.2" "QtGraphicalEffects" "QtWebSockets" "QtQml")
if(USE_QTWEBKIT)
set(qtqmldirs ${qtqmldirs} "QtWebKit" "QtWebChannel")
endif()
foreach(qtqmldir ${qtqmldirs})
message(STATUS "Copying QML dir for ${qtqmldir} to ${TARGET_DIR}/${qtqmldir}")
file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/../qml/${qtqmldir}/" DESTINATION "${TARGET_DIR}/${qtqmldir}")
endforeach()
set(deps_qt5 "libpng16-16" "libharfbuzz-0" "zlib1" "libpcre2-16-0"
"libpcre-1" "libcrypto-1_1-x64" "libssl-1_1-x64" "libfreetype-6"
"libglib-2.0-0" "libstdc++-6" "libbz2" "libintl-8" "libiconv-2"
"icuin56" "icuuc56" "icudt56" "libjpeg-9" "libsqlite3-0" "libwebp-5" "libgcc_s_seh-1")
set(TOOLCHAIN_BINDIRS "@CONAN_BIN_DIRS_MXETOOLCHAIN-X86_64-W64-MINGW32@")
separate_arguments(TOOLCHAIN_BINDIRS)
foreach(lib ${deps_qt5})
foreach(bindir ${TOOLCHAIN_BINDIRS})
set(lib_full_path "${bindir}/${lib}.dll")
if(EXISTS "${lib_full_path}")
break()
endif()
endforeach()
if(NOT EXISTS "${lib_full_path}")
set(lib_full_path "@CONAN_BIN_DIRS_QT5-MXE@/${lib}.dll")
endif()
message(STATUS "Copying ${lib_full_path} to ${TARGET_DIR}")
file(COPY ${lib_full_path} DESTINATION ${TARGET_DIR})
endforeach(lib ${deps_qt5})
@@ -1,86 +0,0 @@
macro(import_qt_modules)
set(REQUIRED_QT_VERSION "5.9.1")
set(QTCONFIGROOT ${QTROOT}/lib/cmake/Qt5)
foreach(COMP ${USED_QT_MODULES})
set(mod Qt5${COMP})
# look for the config files in the QtConfigRoot defined above
set(${mod}_DIR ${QTCONFIGROOT}${COMP})
# look for the actual package
find_package(${mod} ${REQUIRED_QT_VERSION} REQUIRED)
#message("${mod}_INCLUDE_DIRS: include_directories(${${mod}_INCLUDE_DIRS})")
include_directories(${${mod}_INCLUDE_DIRS})
if (${COMP} STREQUAL "Quick")
# We need to include the private headers for QZipWriter. If in the future we can't use that class anymore, we can always resort to the QuaZIP OSS library
include_directories(${${mod}_PRIVATE_INCLUDE_DIRS})
endif()
list(APPEND QT5_LIBRARIES ${${mod}_LIBRARIES})
list(APPEND QT5_CFLAGS ${${mod}_EXECUTABLE_COMPILE_FLAGS})
endforeach(COMP ${USED_QT_MODULES})
endmacro(import_qt_modules)
if(WIN32)
# Download automatically, you can also just copy the conan.cmake file
# TODO: Create packages of qt5 for Linux and MacOS too, so that we can rely strictly on this branch of code
if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/9cc97acda619b7917f140415241785a864482b11/conan.cmake"
"${CMAKE_BINARY_DIR}/conan.cmake")
endif()
include(${CMAKE_BINARY_DIR}/conan.cmake)
conan_check()
if(USE_QTWEBKIT)
set(_QT_PACKAGE_OPTIONS "qt5-mxe:webkit=True")
endif()
conan_cmake_run(REQUIRES qt5-mxe/5.11.2@status-im/stable
PROFILE ../node_modules/status-conan/profiles/status-mingw32-x86_64
SETTINGS "qt5-mxe:os=Windows" "qt5-mxe:arch=x86_64"
OPTIONS ${_QT_PACKAGE_OPTIONS}
BUILD never)
set(QTROOT "${CONAN_QT5-MXE_ROOT}")
else(WIN32)
set(QTROOT "$ENV{QT_PATH}")
endif(WIN32)
if(NOT EXISTS ${QTROOT}/bin/qt.conf)
if(EXISTS ${QTROOT}/gcc_64/bin/qt.conf)
set(QTROOT "${QTROOT}/gcc_64")
elseif(EXISTS ${QTROOT}/clang_64/bin/qt.conf)
set(QTROOT "${QTROOT}/clang_64")
else()
message(FATAL_ERROR "Could not find qt.conf in ${QTROOT}/bin nor in ${QTROOT}/clang_64/bin nor in ${QTROOT}/gcc_64/bin. Is QTROOT correctly defined?")
endif()
endif()
if(WIN32)
set(WINARCHSTR ARCHSTR windows-x86_64)
endif(WIN32)
message(STATUS "Qt root directory: ${QTROOT}")
list(APPEND CMAKE_FIND_ROOT_PATH ${QTROOT})
list(APPEND CMAKE_PREFIX_PATH ${QTROOT})
include_directories(${QTROOT}/include)
import_qt_modules()
if(QT5_CFLAGS)
list(REMOVE_DUPLICATES QT5_CFLAGS)
if(WIN32)
list(REMOVE_ITEM QT5_CFLAGS -fPIC)
endif(WIN32)
endif(QT5_CFLAGS)
message(STATUS "Qt version: ${Qt5Core_VERSION_STRING}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${QT5_CFLAGS}")
set(CMAKE_REQUIRED_LIBRARIES ${QT5_LIBRARIES})
-19
View File
@@ -1,19 +0,0 @@
# Toolchain file for building for Windows from an Ubuntu Linux system.
#
# Typical usage:
# *) install cross compiler: `sudo apt-get install mingw-w64 g++-mingw-w64`
# *) cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-Ubuntu-mingw64.cmake ..
message(STATUS "Cross-compiling for Windows")
set(CMAKE_SYSTEM_NAME Windows)
if(NOT "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux")
message(FATAL_ERROR "Can only cross-compile to Windows from Linux")
endif()
set(USE_QTWEBKIT OFF)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/toolchain/")
include(conanbuildinfo)
#conan_basic_setup()
conan_global_flags()
-76
View File
@@ -1,76 +0,0 @@
#include "appconfig.h"
#include <QLoggingCategory>
#include <QSettings>
const QStringList loggingCategories =
{"UIManager",
"Flexbox",
"WebSocketModule",
"Networking",
"ViewManager",
"RCTNotification",
"default",
"RCTStatus",
"jsserver",
"status"};
const QString SETTINGS_GROUP_NAME = "im/status";
const QString AppConfig::LOGGING_ENABLED = "logging_enabled";
Q_LOGGING_CATEGORY(APPCONFIG, "AppConfig")
AppConfig AppConfig::appConfig;
AppConfig::AppConfig()
: settings("Status.im", "StatusDesktop") {
settings.beginGroup(SETTINGS_GROUP_NAME);
// Set default values
if (settings.value(LOGGING_ENABLED).isNull()) {
settings.setValue(LOGGING_ENABLED, false);
}
QStringList keys = settings.allKeys();
for (int i = 0; i < keys.size(); ++i) {
processFx(keys[i], settings.value(keys[i]));
}
}
AppConfig& AppConfig::inst() {
return appConfig;
}
QVariant AppConfig::getValue(const QString& name) const {
return settings.value(name);
}
void AppConfig::setValue(const QString& name, const QVariant& value) {
processFx(name, value);
settings.setValue(name, value);
}
// This fn is for processing side-effects of a particular value
void AppConfig::processFx(const QString& name, const QVariant& value) const {
//qCDebug(APPCONFIG) << "### processFx group" << settings.group() << " " << name << ": " << value;
if (name == LOGGING_ENABLED) {
bool enabled = value.toBool();
//qCDebug(APPCONFIG) << "### processFx" << name << ": " << value << ": " << enabled;
QLoggingCategory::setFilterRules(getLoggingFilterRules(enabled));
}
}
QString AppConfig::getLoggingFilterRules(bool enabled) const {
if (enabled) {
return "UIManager=false\nFlexbox=false\nViewManager=false\nNetworking=false\nWebSocketModule=false";
}
else {
QString filterRules;
for (int i = 0; i < loggingCategories.size(); ++i) {
filterRules += (loggingCategories.at(i) + "=false\n");
}
return filterRules;
}
}
-31
View File
@@ -1,31 +0,0 @@
#ifndef APPCONFIG_H
#define APPCONFIG_H
#include <QString>
#include <QVariant>
#include <QSettings>
// This class is intended to store app configuration
// modifiable from JS side
// Currently, only logging-related settings are here
// that are used by react-native-desktop-config module
class AppConfig {
public:
static AppConfig& inst();
QVariant getValue(const QString& name) const;
void setValue(const QString& name, const QVariant& value);
const static QString LOGGING_ENABLED;
private:
AppConfig();
static AppConfig appConfig;
QSettings settings;
QString getLoggingFilterRules(bool enabled) const;
void processFx(const QString& name, const QVariant& value) const;
};
#endif // APPCONFIG_H
-36
View File
@@ -1,36 +0,0 @@
@rem Copyright (c) 2017-present, Status Research and Development GmbH.
@rem All rights reserved.
@rem
@rem This source code is licensed under the BSD-style license found in the
@rem LICENSE file in the root directory of this source tree. An additional grant
@rem of patent rights can be found in the PATENTS file in the same directory.
@echo off
setlocal EnableDelayedExpansion
set "option="
for %%a in (%*) do (
if not defined option (
set arg=%%a
if "!arg:~0,1!" equ "-" set "option=!arg!"
) else (
set "option!option!=%%a"
set "option="
)
)
SET option
@echo on
echo "build.bat external modules paths: "%option-e%
echo "build.bat JS bundle path: "%option-j%
echo "build.bat desktop fonts: "%option-f%
echo "build.bat desktop images: "%option-i%
echo "build.bat cmake generator: "%option-g%
@rem Workaround
@rem rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile
@rem Build project
echo %CD%
cmake -DCMAKE_BUILD_TYPE=Debug -G %option-g% -DEXTERNAL_MODULES_DIR=%option-e% -DJS_BUNDLE_PATH=%option-j% -DDESKTOP_FONTS=%option-f% -DDESKTOP_IMAGES=%option-i% . && cmake --build .
-49
View File
@@ -1,49 +0,0 @@
#!/usr/bin/env bash
# Copyright (C) 2016, Canonical Ltd.
# All rights reserved.
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.
# XXX: Don't move this script
cd $(dirname $0)
while (( "$#" )); do
if [[ $1 == "-e" ]]; then
shift
ExternalModulesPaths="$1"
fi
if [[ $1 == "-j" ]]; then
shift
JsBundlePath="$1"
fi
if [[ $1 == "-f" ]]; then
shift
desktopFonts="$1"
fi
if [[ $1 == "-i" ]]; then
shift
desktopImages="$1"
fi
shift
done
echo "build.sh external modules paths: "$ExternalModulesPaths
echo "build.sh JS bundle path: "$JsBundlePath
echo "build.sh desktop fonts: "$desktopFonts
echo "build.sh desktop images: "$desktopImages
# Workaround
rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile
# Build project
cmake -DCMAKE_BUILD_TYPE=Debug \
-DEXTERNAL_MODULES_DIR="$ExternalModulesPaths" \
-DJS_BUNDLE_PATH="$JsBundlePath" \
-DDESKTOP_FONTS="$desktopFonts" \
-DDESKTOP_IMAGES="$desktopImages" \
-DCMAKE_INSTALL_COMPONENT='' \
. && \
make
-216
View File
@@ -1,216 +0,0 @@
{
"name": "StatusIm-Desktop",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"prepare": "patch-package"
},
"dependencies": {
"assert": "^1.4.1",
"bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status",
"buffer": "^3.6.0",
"chance": "^1.1.3",
"create-react-class": "^15.6.2",
"emojilib": "^2.2.9",
"eth-phishing-detect": "^1.1.13",
"events": "^1.1.1",
"functional-red-black-tree": "^1.0.1",
"google-breakpad": "git+https://github.com/status-im/google-breakpad.git#v0.9.0",
"hi-base32": "^0.5.0",
"i18n-js": "^3.5.0",
"identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status",
"metro": "^0.48.1",
"nfc-react-native": "git+https://github.com/status-im/nfc-react-native.git#v0.3.8-status",
"qrcode": "^1.4.4",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-native": "git+https://github.com/status-im/react-native-desktop.git#v0.57.8_11",
"react-native-background-timer": "^2.0.0",
"react-native-camera": "^3.9.0",
"react-native-config": "git+https://github.com/status-im/react-native-config.git#v0.11.2-status",
"react-native-dialogs": "^0.0.20",
"react-native-fetch-polyfill": "^1.1.2",
"react-native-fs": "git+https://github.com/status-im/react-native-fs.git#v2.9.7-status",
"react-native-gesture-handler": "^1.5.0",
"react-native-image-crop-picker": "^0.26.1",
"react-native-image-resizer": "^1.1.0",
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-4-status",
"react-native-languages": "git+https://github.com/status-im/react-native-languages.git#v0.1.1-status",
"react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status",
"react-native-os": "^1.1.0",
"react-native-splash-screen": "^3.0.6",
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#0.33.16-status-rn049-desktop",
"react-navigation": "^3.11.0",
"status-conan": "git+https://github.com/status-im/status-conan.git#v1.0.0",
"web3-utils": "^1.2.4"
},
"devDependencies": {
"@babel/core": "^7.7.2",
"@babel/generator": "^7.7.2",
"@babel/helper-builder-react-jsx": "^7.7.0",
"@babel/plugin-transform-block-scoping": "7.0.0",
"@babel/preset-env": "^7.7.1",
"@babel/register": "^7.7.0",
"babel-preset-react-native": "^5.0.2",
"coveralls": "^3.0.7",
"metro-react-native-babel-preset": "^0.57.0",
"nyc": "^14.1.1",
"patch-package": "^5.1.1",
"rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status"
},
"optionalDependencies": {
"appdmg": "^0.6.0"
},
"desktopExternalModules": [
"node_modules/react-native-languages/desktop",
"node_modules/react-native-config/desktop",
"node_modules/react-native-fs/desktop",
"node_modules/react-native-webview-bridge/desktop",
"node_modules/react-native-keychain/desktop",
"modules/react-native-status/desktop",
"modules/react-native-desktop-linking/desktop",
"modules/react-native-desktop-menu/desktop",
"modules/react-native-desktop-config/desktop",
"modules/react-native-desktop-shortcuts/desktop",
"modules/react-native-desktop-notification/desktop",
"modules/react-native-desktop-gesture-handler/desktop",
"node_modules/google-breakpad"
],
"desktopFonts": [
"../../../../../resources/fonts/Inter-BlackItalic.otf",
"../../../../../resources/fonts/Inter-Black.otf",
"../../../../../resources/fonts/Inter-BoldItalic.otf",
"../../../../../resources/fonts/Inter-Bold.otf",
"../../../../../resources/fonts/Inter-ExtraBoldItalic.otf",
"../../../../../resources/fonts/Inter-ExtraBold.otf",
"../../../../../resources/fonts/Inter-ExtraLight-BETA.otf",
"../../../../../resources/fonts/Inter-ExtraLightItalic-BETA.otf",
"../../../../../resources/fonts/Inter-Italic.otf",
"../../../../../resources/fonts/Inter-Light-BETA.otf",
"../../../../../resources/fonts/Inter-LightItalic-BETA.otf",
"../../../../../resources/fonts/Inter-MediumItalic.otf",
"../../../../../resources/fonts/Inter-Medium.otf",
"../../../../../resources/fonts/Inter-Regular.otf",
"../../../../../resources/fonts/Inter-SemiBoldItalic.otf",
"../../../../../resources/fonts/Inter-SemiBold.otf",
"../../../../../resources/fonts/Inter-Thin-BETA.otf",
"../../../../../resources/fonts/Inter-ThinItalic-BETA.otf"
],
"desktopImages": [
"../../../../../desktop/resources/add.png",
"../../../../../desktop/resources/address.png",
"../../../../../desktop/resources/add_contact.png",
"../../../../../desktop/resources/arrow_left.png",
"../../../../../desktop/resources/arrow_right.png",
"../../../../../desktop/resources/arrow_up.png",
"../../../../../desktop/resources/back.png",
"../../../../../desktop/resources/backspace.png",
"../../../../../desktop/resources/bell.png",
"../../../../../desktop/resources/browser.png",
"../../../../../desktop/resources/camera.png",
"../../../../../desktop/resources/cancel.png",
"../../../../../desktop/resources/change.png",
"../../../../../desktop/resources/check.png",
"../../../../../desktop/resources/close.png",
"../../../../../desktop/resources/commands.png",
"../../../../../desktop/resources/copy.png",
"../../../../../desktop/resources/corner_left_bottom.png",
"../../../../../desktop/resources/corner_left_top.png",
"../../../../../desktop/resources/corner_right_bottom.png",
"../../../../../desktop/resources/corner_right_top.png",
"../../../../../desktop/resources/dapp.png",
"../../../../../desktop/resources/delete.png",
"../../../../../desktop/resources/desktop.png",
"../../../../../desktop/resources/download.png",
"../../../../../desktop/resources/dropdown.png",
"../../../../../desktop/resources/dropdown_up.png",
"../../../../../desktop/resources/edit.png",
"../../../../../desktop/resources/filter.png",
"../../../../../desktop/resources/fingerprint.png",
"../../../../../desktop/resources/flash.png",
"../../../../../desktop/resources/flash_active.png",
"../../../../../desktop/resources/group_chat.png",
"../../../../../desktop/resources/help.png",
"../../../../../desktop/resources/history.png",
"../../../../../desktop/resources/home.png",
"../../../../../desktop/resources/home_1.png",
"../../../../../desktop/resources/icon_action_back.png",
"../../../../../desktop/resources/icon_action_forward.png",
"../../../../../desktop/resources/icon_action_fullscreen_collapse.png",
"../../../../../desktop/resources/icon_action_fullscreen_expand.png",
"../../../../../desktop/resources/icon_arrow_top.png",
"../../../../../desktop/resources/icon_avatar.png",
"../../../../../desktop/resources/icon_check_on.png",
"../../../../../desktop/resources/icon_close_light_gray.png",
"../../../../../desktop/resources/icon_forward_gray.png",
"../../../../../desktop/resources/icon_lock_gray.png",
"../../../../../desktop/resources/icon_lock_white.png",
"../../../../../desktop/resources/icon_menu_group.png",
"../../../../../desktop/resources/icon_money_white.png",
"../../../../../desktop/resources/icon_muted.png",
"../../../../../desktop/resources/icon_notifications_on.png",
"../../../../../desktop/resources/icon_phone_white.png",
"../../../../../desktop/resources/ic_background.png",
"../../../../../desktop/resources/ic_foreground.png",
"../../../../../desktop/resources/ic_stat_status_notification.png",
"../../../../../desktop/resources/info.png",
"../../../../../desktop/resources/in_contacts.png",
"../../../../../desktop/resources/keycard.png",
"../../../../../desktop/resources/keycard_logo.png",
"../../../../../desktop/resources/language.png",
"../../../../../desktop/resources/launch_logo.png",
"../../../../../desktop/resources/link.png",
"../../../../../desktop/resources/logo.png",
"../../../../../desktop/resources/log_out.png",
"../../../../../desktop/resources/mailserver.png",
"../../../../../desktop/resources/make_admin.png",
"../../../../../desktop/resources/max.png",
"../../../../../desktop/resources/message.png",
"../../../../../desktop/resources/mobile.png",
"../../../../../desktop/resources/more.png",
"../../../../../desktop/resources/network.png",
"../../../../../desktop/resources/next.png",
"../../../../../desktop/resources/notification.png",
"../../../../../desktop/resources/one_on_one_chat.png",
"../../../../../desktop/resources/password.png",
"../../../../../desktop/resources/paste.png",
"../../../../../desktop/resources/photo.png",
"../../../../../desktop/resources/profile.png",
"../../../../../desktop/resources/public_chat.png",
"../../../../../desktop/resources/qr.png",
"../../../../../desktop/resources/receive.png",
"../../../../../desktop/resources/refresh.png",
"../../../../../desktop/resources/remove_contact.png",
"../../../../../desktop/resources/reply.png",
"../../../../../desktop/resources/rotate_camera.png",
"../../../../../desktop/resources/search.png",
"../../../../../desktop/resources/security.png",
"../../../../../desktop/resources/send.png",
"../../../../../desktop/resources/settings.png",
"../../../../../desktop/resources/settings_advanced.png",
"../../../../../desktop/resources/share.png",
"../../../../../desktop/resources/stickers.png",
"../../../../../desktop/resources/text.png",
"../../../../../desktop/resources/tiny_arrow_down.png",
"../../../../../desktop/resources/tiny_check.png",
"../../../../../desktop/resources/tiny_clear.png",
"../../../../../desktop/resources/tiny_edit.png",
"../../../../../desktop/resources/tiny_external.png",
"../../../../../desktop/resources/tiny_group.png",
"../../../../../desktop/resources/tiny_lock.png",
"../../../../../desktop/resources/tiny_lock_broken.png",
"../../../../../desktop/resources/tiny_new_contact.png",
"../../../../../desktop/resources/tiny_pending.png",
"../../../../../desktop/resources/tiny_public.png",
"../../../../../desktop/resources/tiny_settings.png",
"../../../../../desktop/resources/tiny_tribute_to_talk.png",
"../../../../../desktop/resources/tribute_to_talk.png",
"../../../../../desktop/resources/two_arrows.png",
"../../../../../desktop/resources/username.png",
"../../../../../desktop/resources/user_profile.png",
"../../../../../desktop/resources/user_profile_1.png",
"../../../../../desktop/resources/wallet.png",
"../../../../../desktop/resources/warning.png"
]
}
File diff suppressed because it is too large Load Diff
-545
View File
@@ -1,545 +0,0 @@
/**
* Copyright (C) 2016, Canonical Ltd.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
// #define BUILD_FOR_BUNDLE
#include <QCommandLineParser>
#include <QDirIterator>
#include <QFile>
#include <QFontDatabase>
#include <QApplication>
#include <QMutexLocker>
#include <QProcess>
#include <QQuickView>
#include <QStandardPaths>
#include <QTimer>
#include <QUrl>
#include "attachedproperties.h"
#include "reactitem.h"
#include "rootview.h"
#include "utilities.h"
#include "exceptionglobalhandler.h"
#include "appconfig.h"
Q_DECLARE_LOGGING_CATEGORY(JSSERVER)
Q_DECLARE_LOGGING_CATEGORY(STATUS)
Q_LOGGING_CATEGORY(JSSERVER, "jsserver")
Q_LOGGING_CATEGORY(STATUS, "status")
static QStringList consoleOutputStrings;
static QMutex consoleOutputMutex;
#ifdef BUILD_FOR_BUNDLE
bool nodeJsServerStarted = false;
QProcess *g_nodeJsServerProcess = nullptr;
#define NODEJS_SERVER_NAME "ubuntu-server"
#endif
const int MAIN_WINDOW_WIDTH = 1024;
const int MAIN_WINDOW_HEIGHT = 768;
const QString CRASH_REPORT_EXECUTABLE = QStringLiteral("reportApp");
const char *ENABLE_LOG_FILE_ENV_VAR_NAME = "STATUS_LOG_FILE_ENABLED";
const char *LOG_FILE_PATH_ENV_VAR_NAME = "STATUS_LOG_PATH";
// TODO: some way to change while running
class ReactNativeProperties : public QObject {
Q_OBJECT
Q_PROPERTY(
bool liveReload READ liveReload WRITE setLiveReload NOTIFY liveReloadChanged)
Q_PROPERTY(
QUrl codeLocation READ codeLocation WRITE setCodeLocation NOTIFY codeLocationChanged)
Q_PROPERTY(
QString pluginsPath READ pluginsPath WRITE setPluginsPath NOTIFY pluginsPathChanged)
Q_PROPERTY(
QString executor READ executor WRITE setExecutor NOTIFY executorChanged)
Q_PROPERTY(
QVariantMap initialProps READ initialProps WRITE setInitialProps NOTIFY initialPropsChanged)
public:
ReactNativeProperties(QObject *parent = nullptr) : QObject(parent) {
m_codeLocation = m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort);
}
bool liveReload() const { return m_liveReload; }
void setLiveReload(bool liveReload) {
if (m_liveReload == liveReload)
return;
m_liveReload = liveReload;
Q_EMIT liveReloadChanged();
}
QUrl codeLocation() const { return m_codeLocation; }
void setCodeLocation(const QUrl &codeLocation) {
if (m_codeLocation == codeLocation)
return;
m_codeLocation = codeLocation;
Q_EMIT codeLocationChanged();
}
QString pluginsPath() const { return m_pluginsPath; }
void setPluginsPath(const QString &pluginsPath) {
if (m_pluginsPath == pluginsPath)
return;
m_pluginsPath = pluginsPath;
Q_EMIT pluginsPathChanged();
}
QString executor() const { return m_executor; }
void setExecutor(const QString &executor) {
if (m_executor == executor)
return;
m_executor = executor;
Q_EMIT executorChanged();
}
QVariantMap initialProps() const { return m_initialProps; }
void setInitialProps(const QVariantMap &initialProps) {
if (m_initialProps == initialProps)
return;
m_initialProps = initialProps;
Q_EMIT initialPropsChanged();
}
QString packagerHost() const { return m_packagerHost; }
void setPackagerHost(const QString &packagerHost) {
if (m_packagerHost == packagerHost)
return;
m_packagerHost = packagerHost;
setCodeLocation(m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort));
}
QString packagerPort() const { return m_packagerPort; }
void setPackagerPort(const QString &packagerPort) {
if (m_packagerPort == packagerPort)
return;
m_packagerPort = packagerPort;
setCodeLocation(m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort));
}
void setLocalSource(const QString &source) {
if (m_localSource == source)
return;
// overrides packager*
if (source.startsWith("file:")) {
setCodeLocation(source);
} else {
QFileInfo fi(source);
if (!fi.exists()) {
qCWarning(STATUS) << "Attempt to set non-existent local source file";
return;
}
setCodeLocation(QUrl::fromLocalFile(fi.absoluteFilePath()));
setLiveReload(false);
}
}
Q_SIGNALS:
void liveReloadChanged();
void codeLocationChanged();
void pluginsPathChanged();
void executorChanged();
void initialPropsChanged();
private:
bool m_liveReload = false;
QString m_packagerHost = "localhost";
QString m_packagerPort = "8081";
QString m_localSource;
QString m_packagerTemplate =
"http://%1:%2/index.desktop.bundle?platform=desktop&dev=true";
QUrl m_codeLocation;
QString m_pluginsPath;
#ifdef BUILD_FOR_BUNDLE
QString m_executor = "RemoteServerConnection";
#else
QString m_executor = "LocalServerConnection";
#endif
QVariantMap m_initialProps;
};
void saveMessage(QtMsgType type, const QMessageLogContext &context,
const QString &msg);
void writeLogsToFile();
void writeLogFromJSServer(const QString &msg);
void writeSingleLineLogFromJSServer(const QString &msg);
#ifdef BUILD_FOR_BUNDLE
void killZombieJsServer();
bool runNodeJsServer();
#endif
void loadFontsFromResources() {
QDirIterator it(":", QDirIterator::Subdirectories);
while (it.hasNext()) {
QString resourceFile = it.next();
if (resourceFile.endsWith(".otf", Qt::CaseInsensitive) ||
resourceFile.endsWith(".ttf", Qt::CaseInsensitive)) {
qint32 fontId = QFontDatabase::addApplicationFont(resourceFile);
if (Q_UNLIKELY(fontId == -1)) {
qCDebug(STATUS) << "Unable to install font" << resourceFile;
}
}
}
}
void exceptionPostHandledCallback() {
#ifdef BUILD_FOR_BUNDLE
if (g_nodeJsServerProcess) {
g_nodeJsServerProcess->kill();
}
#endif
}
bool redirectLogIntoFile() {
#ifdef BUILD_FOR_BUNDLE
return true;
#else
return qEnvironmentVariable(ENABLE_LOG_FILE_ENV_VAR_NAME, "") ==
QStringLiteral("1");
#endif
}
QString getDataStoragePath() {
QString statusDataDir = qgetenv("STATUS_DATA_DIR");
QString dataStoragePath;
if (!statusDataDir.isEmpty()) {
dataStoragePath = statusDataDir;
} else {
dataStoragePath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
}
QDir dir(dataStoragePath);
if (!dir.exists()) {
dir.mkpath(".");
}
return dataStoragePath;
}
int main(int argc, char **argv) {
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QCoreApplication::setApplicationName("Status");
// Init AppConfig
AppConfig::inst().getValue(AppConfig::LOGGING_ENABLED);
QString appPath = QCoreApplication::applicationDirPath();
QString dataStoragePath = getDataStoragePath();
#ifdef BUILD_FOR_BUNDLE
if (qgetenv("STATUS_DATA_DIR").isEmpty()) {
killZombieJsServer();
}
#else
dataStoragePath = "";
#endif
ExceptionGlobalHandler exceptionHandler(
appPath + QDir::separator() + CRASH_REPORT_EXECUTABLE,
exceptionPostHandledCallback, dataStoragePath);
Q_INIT_RESOURCE(react_resources);
loadFontsFromResources();
if (redirectLogIntoFile()) {
qInstallMessageHandler(saveMessage);
}
//qCDebug(STATUS) << "###STATUS_NO_LOGGING";
#ifdef BUILD_FOR_BUNDLE
if (!runNodeJsServer()) {
if (g_nodeJsServerProcess->state() == QProcess::NotRunning) {
// If we failed to start the Node.js server (happens on Windows if the Node.js server process was previously running), let's do a final attempt
delete g_nodeJsServerProcess;
if (!runNodeJsServer()) {
return 1;
}
}
}
app.setWindowIcon(QIcon(":/icon.png"));
#endif
QQuickView view;
ReactNativeProperties *rnp = new ReactNativeProperties(&view);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
QVariantMap initialProps;
QString statusNodePort = env.value("STATUS_NODE_PORT");
QString statusDataDir = env.value("STATUS_DATA_DIR");
if (!statusNodePort.isEmpty()) {
initialProps["STATUS_NODE_PORT"] = statusNodePort;
}
if (!statusDataDir.isEmpty()) {
initialProps["STATUS_DATA_DIR"] = statusDataDir;
}
rnp->setInitialProps(initialProps);
#ifdef BUILD_FOR_BUNDLE
rnp->setCodeLocation("file:" + QGuiApplication::applicationDirPath() +
"/assets");
#endif
utilities::registerReactTypes();
QCommandLineParser p;
p.setApplicationDescription("React Native host application");
p.addHelpOption();
p.addOptions({
{{"R", "live-reload"}, "Enable live reload."},
{{"H", "host"}, "Set packager host address.", rnp->packagerHost()},
{{"P", "port"}, "Set packager port number.", rnp->packagerPort()},
{{"L", "local"}, "Set path to the local packaged source", "not set"},
{{"M", "plugins-path"}, "Set path to node modules", "./plugins"},
{{"E", "executor"}, "Set Javascript executor", rnp->executor()},
});
p.process(app);
rnp->setLiveReload(p.isSet("live-reload"));
if (p.isSet("host"))
rnp->setPackagerHost(p.value("host"));
if (p.isSet("port"))
rnp->setPackagerPort(p.value("port"));
if (p.isSet("local"))
rnp->setLocalSource(p.value("local"));
if (p.isSet("plugins-path"))
rnp->setPluginsPath(p.value("plugins-path"));
if (p.isSet("executor"))
rnp->setExecutor(p.value("executor"));
view.rootContext()->setContextProperty("ReactNativeProperties", rnp);
view.setSource(QUrl("qrc:///main.qml"));
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.resize(MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT);
view.show();
QTimer flushLogsToFileTimer;
if (redirectLogIntoFile()) {
flushLogsToFileTimer.setInterval(500);
QObject::connect(&flushLogsToFileTimer, &QTimer::timeout,
[=]() { writeLogsToFile(); });
flushLogsToFileTimer.start();
}
return app.exec();
}
QString getLogFilePath() {
QString logFilePath;
#ifdef BUILD_FOR_BUNDLE
logFilePath = getDataStoragePath() + QDir::separator() + "Status.log";
#else
logFilePath = qEnvironmentVariable(LOG_FILE_PATH_ENV_VAR_NAME, "");
if (logFilePath.isEmpty()) {
logFilePath = getDataStoragePath() + QDir::separator() + "StatusDev.log";
}
#endif
return logFilePath;
}
void writeLogsToFile() {
QMutexLocker locker(&consoleOutputMutex);
if(consoleOutputStrings.isEmpty())
return;
QFile logFile(getLogFilePath());
if (logFile.open(QIODevice::WriteOnly | QIODevice::Append)) {
for (QString message : consoleOutputStrings) {
logFile.write(message.toStdString().c_str());
}
consoleOutputStrings.clear();
logFile.flush();
logFile.close();
}
}
#ifdef BUILD_FOR_BUNDLE
#ifdef Q_OS_WIN
#include <windows.h>
#include <tlhelp32.h>
bool IsProcessRunning(const wchar_t *processName) {
bool exists = false;
PROCESSENTRY32 entry = { sizeof(PROCESSENTRY32) };
HANDLE snapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot != NULL) {
if (::Process32First(snapshot, &entry)) {
do {
if (!wcsicmp(entry.szExeFile, processName)) {
exists = true;
break;
}
} while (::Process32Next(snapshot, &entry));
}
::CloseHandle(snapshot);
}
return exists;
}
#endif
void killZombieJsServer() {
// Ensure that a zombie Node.js server process is not still running in the background before we spawn a new one
QString cmd;
#ifdef Q_OS_LINUX
cmd = QString("pkill -f %1").arg(NODEJS_SERVER_NAME);
#elif defined(Q_OS_MAC)
cmd = QString("killall -9 %1").arg(NODEJS_SERVER_NAME);
#elif defined(Q_OS_WIN)
#define _CAT(A, B) A##B
#define _W(A) _CAT(L, #A)
WCHAR exeName[_MAX_PATH];
wsprintf(exeName, L"%s.exe", _W(NODEJS_SERVER_NAME));
if (IsProcessRunning(exeName)) {
qCDebug(STATUS) << NODEJS_SERVER_NAME << "is running, killing it";
::ShellExecuteW(NULL, NULL, L"tskill", _W(NODEJS_SERVER_NAME), NULL, SW_HIDE);
} else {
qCDebug(STATUS) << NODEJS_SERVER_NAME << "is not running";
}
#endif
if (!cmd.isEmpty()) {
qCDebug(STATUS) << "Running " << cmd;
QByteArray cmdArray = cmd.toLocal8Bit();
system(cmdArray.data());
}
}
bool runNodeJsServer() {
g_nodeJsServerProcess = new QProcess();
g_nodeJsServerProcess->setWorkingDirectory(getDataStoragePath());
g_nodeJsServerProcess->setProgram(QGuiApplication::applicationDirPath() + QDir::separator() + NODEJS_SERVER_NAME);
QString port = qgetenv("REACT_SERVER_PORT");
if (!port.isEmpty()) {
QStringList arguments = (QStringList() << "--port" << port);
g_nodeJsServerProcess->setArguments(arguments);
}
QObject::connect(g_nodeJsServerProcess, &QProcess::errorOccurred,
[=](QProcess::ProcessError) {
qCWarning(JSSERVER) << "process name: "
<< qUtf8Printable(g_nodeJsServerProcess->program());
qCWarning(JSSERVER) << "process error: "
<< qUtf8Printable(g_nodeJsServerProcess->errorString());
});
QObject::connect(
g_nodeJsServerProcess, &QProcess::readyReadStandardOutput, [=] {
writeLogFromJSServer(g_nodeJsServerProcess->readAllStandardOutput().trimmed());
});
QObject::connect(
g_nodeJsServerProcess, &QProcess::readyReadStandardError, [=] {
QString output =
g_nodeJsServerProcess->readAllStandardError().trimmed();
writeLogFromJSServer(output);
if (output.contains("Server starting")) {
nodeJsServerStarted = true;
}
});
QObject::connect(QGuiApplication::instance(), &QCoreApplication::aboutToQuit,
[=]() {
qCDebug(STATUS) << "Kill node.js server process";
g_nodeJsServerProcess->kill();
});
qCDebug(STATUS) << "starting node.js server process...";
g_nodeJsServerProcess->start();
qCDebug(STATUS) << "wait for started...";
if (g_nodeJsServerProcess->waitForReadyRead(10000)) {
// We know that the process started, now wait until it communicates that it has started
while (!nodeJsServerStarted) {
QGuiApplication::processEvents();
}
qCDebug(STATUS) << "waiting finished";
return true;
} else {
qCDebug(STATUS) << "failed to start process";
}
return false;
}
#endif
void writeLogFromJSServer(const QString &msg) {
if (msg.contains("\\n")) {
QStringList lines = msg.split("\\n");
foreach (const QString &line, lines) {
writeSingleLineLogFromJSServer(line);
}
} else {
writeSingleLineLogFromJSServer(msg);
}
}
QString extractJSServerMessage(const QString& msg, int prefixLength) {
return msg.mid(prefixLength);
}
void writeSingleLineLogFromJSServer(const QString &msg) {
if (msg.startsWith("TRACE "))
qCDebug(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6));
else if (msg.startsWith("DEBUG "))
qCDebug(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6));
else if (msg.startsWith("INFO "))
qCInfo(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 5));
else if (msg.startsWith("WARN "))
qCWarning(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 5));
else if (msg.startsWith("ERROR "))
qCWarning(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6));
else if (msg.startsWith("FATAL "))
qCCritical(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6));
else
qCDebug(JSSERVER) << qUtf8Printable(msg);
}
void appendConsoleString(const QString &msg) {
QMutexLocker locker(&consoleOutputMutex);
consoleOutputStrings << msg;
}
void saveMessage(QtMsgType type, const QMessageLogContext &context,
const QString &msg) {
Q_UNUSED(context);
QByteArray localMsg = msg.toLocal8Bit();
QString message = localMsg + "\n";
QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss.zzz");
QString typeStr;
switch (type) {
case QtDebugMsg:
typeStr = "D";
break;
case QtInfoMsg:
typeStr = "I";
break;
case QtWarningMsg:
typeStr = "W";
break;
case QtCriticalMsg:
typeStr = "C";
break;
case QtFatalMsg:
typeStr = "F";
}
appendConsoleString(QString("%1 - %2 - [%3] - %4").arg(timestamp, typeStr, context.category, message));
if (type == QtFatalMsg) {
writeLogsToFile();
abort();
}
}
#include "main.moc"
-27
View File
@@ -1,27 +0,0 @@
# Copyright (c) 2017-present, Status Research and Development GmbH.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(APP_NAME "reportApp")
set(MAIN_CPP_SOURCE reportpublisher.cpp
main.cpp)
add_executable(
${APP_NAME}
${MAIN_CPP_SOURCE}
main.qrc
)
set(USED_QT_MODULES Core Qml Quick WebSockets Widgets Svg)
qt5_use_modules(${APP_NAME} ${USED_QT_MODULES})
set(REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS ${REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS} reportApp PARENT_SCOPE)
-49
View File
@@ -1,49 +0,0 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include <QDebug>
#include <QGuiApplication>
#include <QQmlContext>
#include <QQuickView>
#include "reportpublisher.h"
const int MAIN_WINDOW_WIDTH = 1024;
const int MAIN_WINDOW_HEIGHT = 768;
const int INPUT_ARGUMENTS_COUNT = 6;
const int MINIDUMP_FILE_PATH_ARG_INDEX = 1;
const int CRASHED_EXECUTABLE_PATH_ARG_INDEX = 2;
const int LOGS_PATH_INDEX = 5;
int main(int argc, char **argv) {
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
if (argc != INPUT_ARGUMENTS_COUNT) {
return 1;
}
app.setApplicationName("Crash Report");
ReportPublisher reportPublisher(argv[MINIDUMP_FILE_PATH_ARG_INDEX],
argv[CRASHED_EXECUTABLE_PATH_ARG_INDEX],
argv[LOGS_PATH_INDEX]);
QQuickView view;
view.rootContext()->setContextProperty("reportPublisher", &reportPublisher);
view.setSource(QUrl("qrc:///main.qml"));
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.resize(MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT);
view.show();
return app.exec();
}
-77
View File
@@ -1,77 +0,0 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Rectangle {
id: root
width: 384
height: 640
ColumnLayout {
anchors.centerIn: parent
Text {
Layout.alignment: Qt.AlignCenter
text: "Oh, no! Status application just crashed!"
font.bold: true
font.pointSize: 25
}
Text {
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 20
text: "Please report us <b>crash.dmp</b> and <b>Status</b> executable files to allow us fix the issue!"
font.bold: true
font.pointSize: 20
}
RowLayout {
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 40
spacing: 25
Button {
Layout.minimumWidth: 150
text: "Report (highly appreciated)"
onClicked: reportPublisher.submit()
}
Button {
text: "Restart and Quit"
onClicked: reportPublisher.restartAndQuit()
}
Button {
text: "Just Quit"
onClicked: reportPublisher.quit()
}
}
RowLayout {
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 100
TextEdit {
readOnly: true
Layout.maximumWidth: 500
wrapMode: TextEdit.Wrap
selectByMouse: true
font.pointSize: 12
textFormat: TextEdit.RichText
text: "<div>Please upload both <b>crash.dmp</b> and <b>Status</b> executable files from the report directory:<br>" + reportPublisher.resolveDataStoragePath() + "</div>"
}
Button {
text: "View"
onClicked: reportPublisher.showDirectory()
}
}
}
}
-5
View File
@@ -1,5 +0,0 @@
<RCC>
<qresource>
<file>main.qml</file>
</qresource>
</RCC>
-111
View File
@@ -1,111 +0,0 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include "reportpublisher.h"
#include <QApplication>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
#include <QDirIterator>
#include <QFile>
#include <QProcess>
#include <QUrl>
const QString REPORT_SUBMIT_URL =
QStringLiteral("https://goo.gl/forms/0705ZN0EMW3xLDpI2");
ReportPublisher::ReportPublisher(QString minidumpFilePath,
QString crashedExecutablePath,
QString logsPath, QObject *parent)
: QObject(parent), m_minidumpFilePath(minidumpFilePath),
m_logsPath(logsPath), m_crashedExecutablePath(crashedExecutablePath) {}
void ReportPublisher::submit() {
QDesktopServices::openUrl(QUrl(REPORT_SUBMIT_URL));
showDirectory();
}
void ReportPublisher::restartAndQuit() {
QString appPath = m_crashedExecutablePath;
#if defined(Q_OS_MACOS) || defined(Q_OS_LINUX)
QFileInfo crashedExecutableFileInfo(m_crashedExecutablePath);
QString fullPath = crashedExecutableFileInfo.dir().absolutePath();
#ifdef Q_OS_MACOS
const QString bundleExtension = QStringLiteral(".app");
const QString cmdTemplate = QStringLiteral("open \"%1\"");
#else
const QString bundleExtension = QStringLiteral(".AppImage");
const QString cmdTemplate = QStringLiteral("\"%1\"");
#endif
if (fullPath.contains(bundleExtension)) {
appPath = fullPath.left(fullPath.indexOf(bundleExtension) +
bundleExtension.size());
}
QString cmd = QString(cmdTemplate).arg(appPath);
#else
QString cmd = QString("\"%1\"").arg(appPath);;
#endif
QProcess::startDetached(cmd);
qApp->quit();
}
void ReportPublisher::quit() { qApp->quit(); }
void ReportPublisher::showDirectory() {
QString dataStoragePath = resolveDataStoragePath();
if (!m_logFilesPrepared) {
m_logFilesPrepared = prepareReportFiles(dataStoragePath);
}
QDesktopServices::openUrl(QUrl::fromLocalFile(dataStoragePath));
}
bool ReportPublisher::prepareReportFiles(QString reportDirPath) {
QFileInfo minidumpFileInfo(m_minidumpFilePath);
QFileInfo crashedExecutableFileInfo(m_crashedExecutablePath);
if (!minidumpFileInfo.exists() || !crashedExecutableFileInfo.exists())
return false;
return QFile::copy(m_minidumpFilePath,
reportDirPath + QDir::separator() + "crash.dmp") &&
QFile::copy(m_crashedExecutablePath,
reportDirPath + QDir::separator() +
crashedExecutableFileInfo.fileName()) &&
prepareLogFiles(reportDirPath);
}
bool ReportPublisher::prepareLogFiles(QString reportDirPath) {
if (reportDirPath.isEmpty())
return true;
QDirIterator filesIterator(m_logsPath, QStringList() << "*.log", QDir::Files);
while (filesIterator.hasNext()) {
QFileInfo logFile(filesIterator.next());
QFile::copy(logFile.absoluteFilePath(),
reportDirPath + QDir::separator() + logFile.fileName());
}
return true;
}
QString ReportPublisher::resolveDataStoragePath() {
QFileInfo minidumpFileInfo(m_minidumpFilePath);
QString dataStoragePath =
QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) +
QDir::separator() + minidumpFileInfo.baseName();
QDir dir(dataStoragePath);
if (!dir.exists()) {
dir.mkpath(".");
}
return dir.path();
}
-40
View File
@@ -1,40 +0,0 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#ifndef REPORTPUBLISHER
#define REPORTPUBLISHER
#include <QObject>
#include <QString>
class ReportPublisher : public QObject {
Q_OBJECT
public:
ReportPublisher(QString minidumpFilePath, QString crashedExecutablePath,
QString logsPath, QObject *parent = 0);
Q_INVOKABLE void submit();
Q_INVOKABLE void restartAndQuit();
Q_INVOKABLE void quit();
Q_INVOKABLE void showDirectory();
Q_INVOKABLE QString resolveDataStoragePath();
private:
bool prepareReportFiles(QString reportDirPath);
bool prepareLogFiles(QString reportDirPath);
QString m_minidumpFilePath;
QString m_crashedExecutablePath;
QString m_logsPath;
bool m_logFilesPrepared = false;
};
#endif // REPORTPUBLISHER
Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

Some files were not shown because too many files have changed in this diff Show More