I have extended and modified the current algorithm for message ordering
so that it applies for group and public chats alike.
We use Lamport timestamps but we prefix the unix timestamp, which should
maximize the chances of the message being seen on the top of the chat.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Reduce the overall nesting level in the test. Each `testing'
statement now fits on a single screen, instead of spanning hundreds of
lines.
The final top-level expression went from 16 to 5 consecutive closing
parens.
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
We wanted to move towards having multiple functions
manipulating the data rather than relying on a chain of
dispatched events.
I have refactored ui.screens.contacts.events so that now the
functions mainly manipulate fx, passed as a first parameter.
Their responsability is to make sure their fx are merged in, so
that they can be composed more easily.
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
When a contact is removed it is set to pending?.
If the same contact is added again we now dispatch a :start-chat event
which initiate a 1-1 chat with them.
If current locale is xx-YY, looks up xx_YY first, xx then and finally
falls back to us.
goog.i18n.DateTimeSymbols database is used for localization.
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
I have uncommented the two namespaces:
contacts.events was mainly an issue with schema validation
and a few features not covered by tests.
the tests in pre-receiver were actually passing, the issue was a
test suite in wallet.events which was run asychronously by re-frame
which meant the http request in the fx was actually being fired.
Signed-off-by: Oskar Thoren <ot@oskarthoren.com>
Error:
Testing status-im.test.utils.pre-receiver
undefined
/Users/oskarth/git/status-react/target/test/status_im/utils/utils.cljs:61
(defn http-get
^
ReferenceError: window is not defined
...
Error encountered performing task 'doo' with profile(s): 'test'
Subprocess failed
Not sure what http-get has to do with this test ns though.
rename test
fix test `supported-locales-are-actually-supported` and improve failing message
fix some coding standards
rename old `str` namespace alias to `string`
fixing cs
rename translation id to label and explain checkpoints
remove non-existent labels in translations
add some comments
add status 0.9.12 as first checkpoint in translations, plus current supported locales
remove non-existent label from base checkpoint and fix locale->checkpoint and supported locales
format checkpoint-0-9-12-labels in several lines
add fn labels-that-are-not-in-current-checkpoint
- Send notification when sending message in 1on1 chat
- Add notify FFI with binds for ObjC and Java
- Add fcm-token to contacts in spec and realm
- Add notifications to db
- Include fcm-token in contact request
- Update fcm-token when it arrives and put it in DB
- Disable copy-paste hijacking and popup
- Turn on notifications flag in Jenkins build
fix wallet errors that were sticking when refresh occured
add separate errors for transaction history fetching with visual feedback
update wallet when going on wallet tab
update transaction list when opening transaction modal
- Add wallet key to db
- Add sub for wallet error messages
- Add event handlers to set wallet values
- Cover the above with tests
Oh and add the tests
Add error view
Add exclamation mark, style error message, add message to view
Remove commented styling
Localise wallet error
Add translation
- Add an english translation for the error message
- Change error representation in db to a keyword
- Update handlers to set and clear keywords
Constrain spec, make view conditional
- The spec for error messages now takes a predefined set.
- Error message only pops on error
Fix test
Align maps
Reduce event chain size, move logging to timbre
The ```:account-update``` event was being passed the key
```update-status?``` which has nothing to do with an account as
represented in the db. This resulted in a spec failure when this
key was detected on an attempt to save changes.
I've sanitized this event by pulling out the three account keys,
```[:name :photo-path :status]```
that are relevant to ```profile``` and ensuring that only they get
passed to ```:account-update```.
Profile updates now work as expected.
Add tests covering profile events
Fix the runner
This commit ensures messages are ordered correctly when participants join and
leave a group chat. Specifically, the last received message will appear last.
Previously the user and chat clock was queried and updated in an ad hoc manner.
With this change there are only two clock changes to keep track of:
Sending messages:
time = time+1;
time_stamp = time;
send(message, time_stamp);
Receiving messages:
(message, time_stamp) = receive();
time = max(time_stamp, time)+1;
(See https://en.wikipedia.org/wiki/Lamport_timestamps)
Note that this means we can get rid of all the non-message clock queries and
updates.