Commit Graph

90 Commits

Author SHA1 Message Date
yenda 36ad6fb762
support for local notification service on Android
- add option in profile on Android to enable local notifications
- use foreground service to keep the app alive when running in the background
- implement enable and disbable notification function in status module

When enabling notifications, a foreground service is started that displays
a sticky notification to make the user aware that the app is running in the
background.
Notifications are updated whenever a new.message signal is handled on java side.
Currently only one to one chats are generating notifications but that can be
easily extended to other types of messages, including mentions and keywords.
The ens name of the user as well as keywords to follow should then be passed
to the native side when calling the enable function.

Signed-off-by: yenda <eric@status.im>
2019-11-07 09:59:12 +01:00
Andrea Maria Piana 5eb314db58
Use staging fleet and upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-11-04 15:07:12 +01:00
yenda e87d75039e
remove unused use-status-go-protocol? flag and code
Signed-off-by: yenda <eric@status.im>
2019-09-17 17:10:13 +02:00
Pedro Pombeiro 58d310ffce
Remove RAM bundle support 2019-08-30 17:13:35 +02:00
yenda c75d5b24f6
[fix 8795] remove mainnet is default alert
Signed-off-by: yenda <eric@status.im>
2019-08-21 17:40:50 +02:00
yenda 5cafef6702
remove contact-recovery
contact recovery is now handled by status-go

Signed-off-by: yenda <eric@status.im>
2019-08-21 10:37:46 +02:00
yenda d61fffb021
remove dev-server and extensions for v1 2019-08-20 17:42:02 +02:00
Julien Eluard 28f7ea0408
Enable stickers on all envs. Use contenthash to identify stickers
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-07-11 15:06:32 +02:00
Roman Volosovskyi 6d1b376221
resurrect rn-snoopy and add some comments 2019-06-27 18:34:43 +03:00
Andrea Maria Piana 532664ab84
Adds topic negotiation and partitioned topic
All the code has been implemented in statusgo: status-im/status-go#1466

Basically all the whisper filter management is done at that level.

Technical description
On startup we load all chats and send a list of them to status go:
For a public chat: {:chatId "status"}, we create a single filter, based on the name of the chat.

For each contact added by us, each user in a group chat and each one to one chat open, we send:
{:chatId "0x", :oneToOne true}. This will create a chats, to listen to their contact code.

Any previously negotiated topic is also returned.

Once loaded, we create our filters, and upsert the mailserver topics, both of which are solely based on the filters loaded.
In order to remove a chat, we delete/stopwatching first the the filter in status-react and then ask status-go to remove the filter. For a public chat we always remove, for a one-to-one we remove only if the user is not in our contacts, or in a group chat or we have a chat open. Negotiated topics are never removed, as otherwise the other user won't be able to contact us anymore.

On stopping whisper we don't have to ask status-go to remove filters as they are removed automatically.

Some more logic can be pushed in status-go, but that will be in subsequent PRs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-06-24 13:54:43 +02:00
Igor Mandrigin af6c784ab4
Prepare to use status-go based protocol: 1-1 and public chat management APIs.
Connect to stubs of status-go protocol API, behind the flag. Since status-go isn't updated yet, setting this flag will break the app.
What needs to be tested is no regressions in a normal mode.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-29 16:34:37 +02:00
Roman Volosovskyi c7c7b50281
RAM bundle basic setup 2019-05-27 17:34:17 +03:00
Volodymyr Kozieiev 32f7f91e32
Mobile UI on desktop can be enabled in .env file
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2019-05-03 18:11:09 +03:00
Andrea Maria Piana f8674c0ee1
Add reading nodes from contract
This PR is part of network incentivisation. It adds a way for a client
to pull nodes from a contract.

This is done by selecting the `eth.contract` fleet. If that is selected
on login it will fetch nodes from a contract and pass them to status-go.
If these can't be fetched, it will default to `eth.beta`.

Currently contract information are hard-coded, but eventually the user
will be able to add their own (probably).

Toggled off in release.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-04-05 14:32:15 +02:00
Andrea Maria Piana d32f81bbff
Set maximum number of attempts in config
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-03-14 16:23:14 +01:00
Vitaliy Vlasov c23d26e273
TtT Profile screen
Edit screen

Edit screen updates

Learn more screen

Add SNT asset value

Formatting

Add TtT note to QR code viewer

Fixes

UI fixes

Intro screen

Fix learn more

Add learn more subtext

Remove unneeded logs

Screen fixes 2

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-02-27 20:08:39 +02:00
Andrea Maria Piana 6a42580fc2
Remove separate topic from group chats
Currently the separate topic was not used, as it's a bit tricky to
coordinate when multiple devices from different versions are present,
with the partitioned topic, probably this optimisation is not necessary
anymore, so removing this for now.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-26 17:18:26 +01:00
Roman Volosovskyi 25bc3429cd
Enable new routing, remove old code 2019-02-14 18:20:32 +02:00
Andrea Maria Piana bddae03ab2
Allow multiple push notifications
We keep tokens synchronized across devices, so that the user can notify
us on any paired device.
Currently we record the installation id associated to the fcm-token even
though is not necessary, but it will be once we send device-to-device
messages, in which case we want to notify only those devices.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-14 16:33:50 +01:00
Roman Volosovskyi 8c9e71c9d4
Routing refactoring, preparations related to new navigation
- screens definition is separated from configuration
  (deduplicates screens which are used among several stacks)
- all four stacks moved to separate namespaces
- configuration is just a data
2019-02-14 15:15:23 +02:00
Roman Volosovskyi fe7c7088db
Use partitioned topic for discovery
Currently we use a single topic for discovery.
This provides the best obscurity at the cost of bandwidth, as a message
sent on the discovery topic will be received by any peer.
This PR changes this behavior and start listening on a partitioned
topic.
Each pk will be hashed to a limited number of topics.

Everytime someone is in a conversation with someone from another topic
they will have to listen as well to avoid loosing obscurity, because we
only forward messages that we also advertise in the bloom filter.

The choice for the number of partitions depends on 2 factors:

1) The expected number of users using the network
2) The average number of contacts each user

Any change to the discovery topic will need to be split across 3
releases, to avoid breaking compatibility:

1) Listen to the new and old topic, publish to the old topic
2) Listen to the new and old topic, publish to the new topic
3) Listen to the new topic, publish to the new topic

This is step 1.
2019-02-01 14:40:54 +02:00
Andrea Maria Piana 89725d693a
Add pairing docs link, disable pfs toggle in release
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-31 07:49:37 +01:00
Andrea Maria Piana 093f7de1aa
Disable pairing pop-up in e2e
Signed-off-by: Anton Danchenko <ant.danchenko@gmail.com>
2019-01-30 16:46:57 +02:00
Andrea Maria Piana 13b04f17eb
Enable pairing & contact recovery
This PR enables pairing outside of dev-mode and contact-recovery, which
is useful in the case a new device is added or re-installed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-29 18:25:25 +01:00
Andrea Maria Piana 52ae2c2bfe
Style header group-chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-29 10:31:59 +01:00
Andrey Shovkoplyas 2430992fb4
Implement stickers market
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-01-28 17:18:44 +01:00
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02:00
Andrea Maria Piana d760f1696c
Add mailservers confirmations & use peer count for online status
We now check that we are only connected to some `peers` instead of using `NetInfo` from `react-native`.

This is because it has been reported to be quite flaky at times, not reporting online status after sleeping, and for privacy concerns (on ios it pings `apple.com`, on desktop `google.com`).

Adds a new banner `Wallet Offline` and change `Connecting to peers` to  `Chat offline`.

A message will be marked as `Sent` only if it made it to the mailserver you are connected to, which will increase the guarantees that we can make about a message (if you see it as sent, it has reached at least a mailserver), this has the consequence that:

- If you are not connected to any mailserver or the mailserver is non responsive/down, and you send a message, it will be marked as `Not sent`, although it might have been actually made it in the network.

Probably this is something that we would like to communicate to the user through UX (i.e. tick if made it to at least a peer, double tick if it made to a mailserver )

Currently I have only enabled this feature in nightlies & devs, I would give it a run and see how we feel about it.
2018-12-12 19:53:01 +01:00
Andrea Maria Piana 5795ca8d1a
Enable group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 11:12:34 +01:00
Goran Jovic 72e7ae2fff
feature #6509 - validating token config against their contracts; moved token info from compile time list to app-db; fixed any discrepancies in existing info
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-20 17:18:08 +01:00
Andrea Maria Piana 693eae9cf9
Send your own messages
Adds a `chat-id` field in `content` map.

The reason it has been added to the map instead of augmenting transit is
that it would simplify the calculation of `message-id`, which in this
case is consistent for both old & new clients.

`chat-id` also represents the `chat-id` with respect of the sender, as
in 1-to-1 chats that is asymmetric.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-06 21:19:50 +01:00
Andrea Maria Piana 073dddcee0
Add pairing
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-27 20:43:53 +02:00
Andrea Maria Piana 9629983f7f
Remove instabug 2018-10-19 09:18:22 +03:00
Roman Volosovskyi c338896018
[#6330] remove testfairy 2018-10-16 20:46:43 +03:00
Vitaliy Vlasov a0f707fee2
Add port arg to ubuntu-server.js
Use the value of REACT_SERVER_PORT env var if set

Change node port and datadir depending on the value of DEV_BUILD config
variable

Fix missing paren

Bugfix

Remove desktopJSBundlePath

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-10-09 14:30:50 +03:00
Andrea Maria Piana 0c48d09c71
Add back group chats messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-26 20:58:03 +02:00
Pedro Pombeiro 17a8d3a9c9
Unify desktop builds. Closes #5406
- Replace Linux and MacOS scripts in `ci/desktop.groovy` with calls to `scripts/create-desktop-package.sh`
- Replace use of `deployment/env` with `.env` to avoid confusion and be coherent with mobile platforms

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2018-09-26 16:45:48 +02:00
Andrea Maria Piana df51731fca
Add pfs flag, installation id and nobackup data directory
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-24 17:47:02 +02:00
Dmitry Novotochinov 60cb0eb36c
[#5825] add hardwallet auth method and connect screens
* add react-native-nfc-manager to detect NFC support
* add "Choose auth method" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=259%3A29
* add "Hardwallet connect" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=258%3A594

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-20 12:30:47 +03:00
Eric Dvorsak 8d053b4389
[feature #5527] allow user to change status-go loglevel in settings 2018-09-07 15:22:32 +02:00
Julien Eluard ae976e205f
Added extensions loading panel
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-08-31 16:41:58 +02:00
Eric Dvorsak 728831c9c2
remove unused flags
reorganize config flags
remove offline-inbox-enabled? flag
remove universal-links-enabled flag
remove add-custom-mailservers-enabled? flag
remove spam-button-detection-enabled? flag
remove flags from config files

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-29 16:30:05 +02:00
Adam Babik f054830533
Set FLEET in env variable
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-22 10:21:58 +02:00
Roman Volosovskyi 48d81a4f95
[#5278][Android] persist webview state during session 2018-08-15 08:57:51 +03:00
Dmitry Novotochinov a4541c8af3
[#3352] Improve new message notifications
* Set custom sound
* Tap on notification opens chat
* Show message notifications when app in foreground

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-08-10 13:48:37 +03:00
Roman Volosovskyi 27b3f1b87b
remove STUB_STATUS_GO parameter 2018-07-30 06:50:16 +03:00
Roman Volosovskyi bb7d31a357
[#5169] Remove Mixpanel 2018-07-18 06:57:16 +03:00
Andrea Maria Piana b17d9bab37
Add universal links for android
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-27 22:45:57 +02:00
Dmitry Novotochinov 08932c4e2b
Show mainnet warning
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-06-21 16:59:41 +02:00
Roman Volosovskyi 77cb0c2f3d
[#4671 #4708] mainnet_rpc as default network, no mainnet warning
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-19 20:17:04 +02:00