1001 Commits

Author SHA1 Message Date
bitsikka
6aae0b76b9
[#7454] fix add basic copy to public chat empty screen state + related issues/feature regarding chat message-views intro screens for all chats types
[#7454] fix add basic copy to public chat empty screen state + chat messages-views intro screens for all chats

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-04 12:34:37 +02:00
yenda
26b97ddf43
introduce system-tags
Signed-off-by: yenda <eric@status.im>
2019-03-25 16:55:09 +01:00
Roman Volosovskyi
dd4d7457a5
[#7821] Fix navigation on sending eth from chat 2019-03-25 13:03:53 +02:00
yenda
496f3f1cc7
[design] use Inter font on Android
- implement typography component
- replace InterUI font by Inter font (renaming)

Signed-off-by: yenda <eric@status.im>
2019-03-20 18:42:31 +01:00
Julien Eluard
38570aa42f
Migrated to latest pluto release
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-03-19 12:55:15 +01:00
Goran Jovic
fcb3cef110
refactor #7571 - decoupled request transaction from send transaction flow
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2019-03-15 10:43:53 +01:00
yenda
670deb1f4c
[design] remove letter-spacing property
Signed-off-by: yenda <eric@status.im>
2019-03-14 20:59:30 +01:00
Roman Volosovskyi
a30c379a87
Bottom tab animation on leaving/entering main tabs 2019-03-11 10:58:15 +02:00
Andrea Maria Piana
c9994b5d0f
Dont override last-clock-value on messages
The denormalized-clock-value was erroneously set to the one of the last
message received. This meant that on chats were the clock-value raced
ahead of the timestamp (#status), a message from the mailserver or a
message from someone with an old clock-value would basically make those
messages be sorted in the past.

The correct behavior is that last-clock-value for a given chat should be
the maximum last clock value ever seen for that chat.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-21 13:41:06 +01:00
Roman Volosovskyi
b8d4f2911b
new bottom tab (react-navigation) 2019-02-20 19:14:17 +02:00
Andrea Maria Piana
9c6cce7d4d
Allow to send transactions to non-contacts
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-18 11:33:39 +01:00
Andrea Maria Piana
becb32d5e7
Use dedup-id instead of raw-payload
This is a backward/forward compatible change with status-go.
We are changing the way messages are confirmed from passing the
raw-object to status-go to a dedup-id instead, which needs to be sent
back.
Based on the response from status-go we detect whether they are ids or
object and act accordingly.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-17 23:05:25 +01: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
yenda
77b792a37a
[#6850] related refactoring
- remove unecessary subscriptions related to add-contact-bar

Signed-off-by: yenda <eric@status.im>
2019-02-13 12:38:31 +01:00
Andrey Shovkoplyas
fca51beaaa
[#7445] Sticker detail view in chat
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-02-12 16:31:22 +01:00
Andrea Maria Piana
7960fdef85
Publish contact updates periodically
Currently it's very easy for contact details to get out of sync, the
simplest example is:
A & B are contacts.
A changes name.
B receives the updated name.
B re-install the app.
Until A changes name again, B will not see their name, picture and won't
be able to send push notifications.

This PR changes the behavior to publish account informations to contacts
every 24 hrs, to add some redundancy in this cases.

It also publishes a contact code every 12hrs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-12 14:20:45 +01:00
Vitaliy Vlasov
7d4dcb327d
Fix chat colors and username display; adjust icons
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-02-11 13:54:38 +02:00
yenda
e739b4a359
[fix] use icons from design components
Signed-off-by: yenda <eric@status.im>
2019-02-06 14:48:58 +01:00
yenda
b80e02d8cf
[feature] add block user feature in user profile
- add block/unblock action to user profile
- blocking deletes all messages from user and ignores future messages
- unblocking stops ignoring new messages from user but doesn't recover past ones

[feature] add contact list

[tests] added scroll to BackupRecoveryPhraseButton

[tests] added scroll to public key

Signed-off-by: yenda <eric@status.im>
2019-02-05 16:29:56 +01:00
Igor Mandrigin
e2f53418f3
Revert "don't auto-generate contact address from whisper pub key"
This reverts commit b3416f5ad54d5b8fb8bb227db2850841156c2cc9.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-04 16:08:49 +01:00
Andrea Franz
b3416f5ad5
don't auto-generate contact address from whisper pub key
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2019-02-04 13:58:21 +01:00
yenda
7985ee838e
[fix 7332] error pop-up when sending tx from wallet
when the last used chat was a public chat, the public-key of
the recipient to populate the `:to` key in the notification data
was taken from `:current-chat-id`in app-db.

this fix ensures that the right chat-id (the actual public-key of
the contact) is used instead of current-chat-id by changing the arity
of `send-push-notification`

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-30 16:58:36 +01:00
Igor Mandrigin
fafecfe95a
Get rid of StatusService.
StatusService was only used to handle `signalEvent:` from status-go.
This commit simplifies this interaction and getting rid of the service
and all the problems that come with it.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-29 12:01:05 +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
Roman Volosovskyi
9daef17f11
Stop sending seen messages
Currently, these messages are not used and should be properly revisited
later. It only generates extra traffic on discovery topic.
2019-01-25 09:23:00 +02:00
Pedro Pombeiro
d3f1b37c12
Use new status-go and rename NotifyUsers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-24 15:41:32 +01:00
Julien Eluard
a825175aea
Fixed incorrect parameters provided to Command#yield-control
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-23 19:35:50 +01:00
Roman Volosovskyi
8754f72eba
Fix merging of :message/message-persisted event
Previously `:message/message-persisted` was dispatched for each incoming
message because its argument was not a vector. The event was renamed to
`:message/messages-persisted`.
2019-01-18 18:14:40 +02: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
Igor Mandrigin
4af2073388
Revert "Fixed incorrect parameters provided to Command#yield-control"
This reverts commit ac1de8c690c26696965979ad5f7105dfac15726e.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-17 15:15:43 +01:00
Julien Eluard
ac1de8c690
Fixed incorrect parameters provided to Command#yield-control
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-01-17 12:46:27 +01:00
Igor Mandrigin
e8de37f5ef
Report messages as "processed" to status-go only after they were successfully stored in the DB.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-14 19:12:26 +01:00
Roman Volosovskyi
aceea457ce
[slow sign in] Chats preloading
10 last chats are loaded to `app-db` before showing `:home` screen, in
result a user will not see two consequent activity indicators. In this
case opening of `:home` screen is a bit slower but looks better from
UI/UX pov. As it is limited to 10 chats on initialization, the time
necessary for opening `:home` screen will not depend on a total number
of chats in `app-db` if an account contains 10+ chats.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-09 16:03:21 +01:00
Andrea Maria Piana
881691fbc3
Add joining of group chats
Members will now have to explicitly join a group chat to start receiving
messages from it.

Messages are still sent to users who have not joined for backward
compatibility.
Group updates are unaffected.
2019-01-08 13:58:40 +01:00
tbenr
469556a04b
Fixes #6594
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-01-07 14:33:38 +01:00
Roman Volosovskyi
15747558fa
[#7179] Fix command message preview in the list of chats
The bug was introduced in #7055.

`message-type` was stored and used instead of `content-type` which
caused incorrect displaying of the last message preview if the one was a
command.
2018-12-27 16:35:45 +02:00
Roman Volosovskyi
8e7526e68d
[#7155] Clear last message preview on deleting chat history 2018-12-25 11:07:46 +02:00
Andrea Maria Piana
dfdbe1ccbc
Paginate using clock-value & message-id instead of skip/limit
Paginating using the count of loaded messages might result in some
messages being skipped and not being loaded in the database, in case of
out-of-order messages received.

This commit changes the behavior to sort by `clock-value` and
`message-id`, which gives a consistent sorting.

The initial idea was to use a cursor `clock-value-message-id` and
iterate on that, but realm does not support filtering on string (</>),
so instead we keep track of messages with identical clock-value and
exclude those in the next page query.

The change might result in pages that have duplicates (so messages needs
to be deduped), but won't result in skipped messages.
2018-12-24 18:12:50 +01:00
Andrea Maria Piana
5f910a0bec
Sync public chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-24 14:35:17 +01:00
Roman Volosovskyi
9a9cd0d8d0
[slow sign in] Denormalize last-clock-value
In order to get `:last-clock-value` one extra query was executed for
each chat during initialization.

Implementation:
- `:last-clock-value` field was added to `chat` entity
- this field is updated when the message is sent/received
- extra query was removed
2018-12-24 14:18:42 +02:00
Julien Eluard
5db9aa9ac7
Reintroduced broken PR #7092 with fix
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-21 14:55:32 +01:00
Igor Mandrigin
794313dbee
Revert "[Fixes #7052 and #7037] Improved extensions ethereum support"
This reverts commit 6a8c9bf14f0f7bfcacdea45b1bad83a0da6a6550.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-21 13:50:42 +01:00
Julien Eluard
6a8c9bf14f
[Fixes #7052 and #7037] Improved extensions ethereum support
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-12-21 13:11:00 +01:00
Roman Volosovskyi
c440b7a3a7
[slow sign in] Denorlmalize last message
The last messages of the chats are necessary to properly show the chat
list, which is shown right after signing in. Before this commit, the
last message was retrieved as one of 20 last messages fetched for each
chat.

Implementation:
- `:last-message-content` and `:last-message-type` fields were added to
  `chat` entity
- both fields are updated when messages are received/sent
- loading of the last 20 messages for each chat was removed as
  initialization step
2018-12-17 13:29:10 +02:00
Andrea Maria Piana
54b9ba5a2e
Dont choke on wrongly serialized messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-14 16:59:34 +01: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
Roman Volosovskyi
50a70f6e57
[#6956] store :raw-payload-hash in message (upgradable message-ids)
Currently, we calculate `message-id` as `sha3(from + raw_payload)`,
but we do not store `raw_payload` and it might be problematic
to restore it from DB because:
1) `content` field might be changed and so `Message` record
   will differ from the original one
2) it is even more problematic for `GroupMembershipUpdate`
   message because we don't save it in DB

In order to handle this, we can store `sha3(raw_payload)` as `raw-payload-hash`
prop of `message` entity and use it in case of emergency :)

`message-id` will be calculated as `sha3(from + sha3(raw_payload))`
2018-12-05 13:29:01 +02:00
Roman Volosovskyi
b6e515618b
[#6956] upgradable message-id
Implementation:
1. `transport.utils/message-id` function is called only in three places now
   and accepts `from` and  `raw_payload` as parameters.
   ID is calculated as `sha3(from + raw_payload)`.
2. This means that for wrapped private group chat message
   the raw payload of `GroupMembershipUpdate` is used.
2018-12-05 11:22:43 +02:00
Roman Volosovskyi
e7d0312d25
[#6903] fix replies compatibility
Issue was caused by https://github.com/status-im/status-react/pull/6722

Implementation:
1. `old-message-id` field (indexed) was introduced in `message` entity
   and is calculated as `message-id` was calculated in `0.9.31`
```clojure
(defn old-message-id
  [message]
  (sha3 (pr-str message)))
```
2. When a reply message is sent from the PR version of app both `response-to`
   and `response-to-v2` fields are sent as a part of `message`'s `content`
   field, so that it can be recognized by `0.9.31`.
3. When PR version of app receives reply from `0.9.31` we check whether
   message's `content` contains `response-to` but doesn't contain
   `response-to-v2`, and if so we check whether DB contains message with
   `old-message-id=response-to`. If such message has been found we assoc
   `response-to-v2` to content.
4. If message from DB contains only `response-to` but not `response-to-v2`
   attempt to fetch the message by `old-message-id` is done.
2018-12-05 07:22:40 +02:00