B. Petersen
a177df32b7
omit values in ChatVisibility enum as suggested by @dignifiedquire and @flub
2020-02-14 13:43:48 +01:00
B. Petersen
f25d5dd123
do not unpin chats on sending/receiving messages
2020-02-14 13:43:48 +01:00
B. Petersen
4cfa9e6165
send event as before, uis depend on that
2020-02-14 13:43:48 +01:00
B. Petersen
0303ea7f57
rename to ChatVisibility, simplify ffi
2020-02-14 13:43:48 +01:00
B. Petersen
2813e01e61
remove unneeded sql-roundtrip on getting archived state
2020-02-14 11:28:55 +01:00
B. Petersen
60493d30f6
target comment from @dignifiedquire, use ArchiveState inside core
2020-02-14 11:28:55 +01:00
Simon Laux
6efe8e7d7c
change ChatInfo.archived to tri-state
...
and add to the changelog
2020-02-14 11:28:55 +01:00
Simon Laux
2e8409f146
address some of flubs comments
2020-02-14 11:28:55 +01:00
Simon Laux
23b6178e78
add rust test for pin chat
2020-02-14 11:28:55 +01:00
Simon Laux
5e5d45fb0a
better fallbacks
2020-02-14 11:28:54 +01:00
Simon Laux
1765b8f2cf
show pinned chats again and order them to the top
2020-02-14 11:28:54 +01:00
Simon Laux
5678562ce2
represent archivestate as enum
...
before it was a boolean, even though it is a 3 state
2020-02-14 11:28:54 +01:00
dignifiedquire
e440d8503a
fixup
2020-02-12 19:12:22 +01:00
dignifiedquire
9cc99ffcd6
add more ser and de impls
2020-02-12 19:12:22 +01:00
Floris Bruynooghe
4aebd678c3
Use SystemTime instead of i64
...
This clarifies some behaviour with negative times and propagates
errors a bit better around places.
2020-02-09 13:35:37 +01:00
Simon Laux
d73d021e3c
cargo fmt
2020-02-09 12:25:47 +01:00
Simon Laux
621f1df913
rename MutedUntilTimestamp to Until
2020-02-09 12:01:09 +01:00
Simon Laux
e04d28c885
use from- and to-sql traits
2020-02-08 13:29:24 +01:00
Simon Laux
6d80b3675a
dtransform mute chat to use relative durations
...
instead of absolute timestamps
2020-02-08 13:26:48 +01:00
Simon Laux
ef158504e7
remove success variable
...
(replace with else statement)
2020-02-08 13:26:21 +01:00
Simon Laux
63be1ae5a9
change muted forever to -1
2020-02-08 13:25:22 +01:00
Simon Laux
b9ba1a4f69
implement ffi part
2020-02-08 13:25:22 +01:00
Simon Laux
e006d9b033
rustfmt
2020-02-08 13:25:22 +01:00
Simon Laux
1538684c6c
simplify test code
2020-02-08 13:23:55 +01:00
Simon Laux
b37e83caab
add possibility to mute chat in core
2020-02-08 13:23:55 +01:00
Simon Laux
d11d3ab08b
fix typo
2020-02-08 13:11:22 +01:00
Floris Bruynooghe
98b3151c5f
Refactor keypair handling and expose storing keypairs on ffi
...
The user-visible change here is that it allows the FFI API to save
keys in the database for a context. This is primarily intended for
testing purposes as it allows you to get a key without having to
generate it.
Internally the most important change is to start using the
SignedPublicKey and SignedPrivateKey types from rpgp instead of
wrapping them into a single Key object. This allows APIs to be
specific about which they want instead of having to do runtime checks
like .is_public() or so. This means some of the functionality of the
Key impl now needs to be a trait.
A thid API change is to introduce the KeyPair struct, which binds
together the email address, public and private key for a keypair.
All these changes result in a bunch of cleanups, though more more
should be done to completely replace the Key type with the
SignedPublicKye/SignedPrivateKey + traits. But this change is large
enough already.
Testing-wise this adds two new keys which can be loaded from disk and
and avoids a few more key-generating tests. The encrypt/decrypt tests
are moved from the stress tests into the pgp tests and split up.
2020-02-06 22:00:29 +01:00
Alexander Krotov
c7eca8deb3
chat: resultify parent_is_encrypted and don't ignore the error
...
This should prevent accidental sending of unencrypted messages when
parent_is_encrypted returns an error. For example, if the database is
busy due to other thread activity, parent_is_encrypted should not return
false. Instead, message sending job should retry later.
2020-02-04 02:54:56 +03:00
Alexander Krotov
033a44580c
Turn get_[fresh_]msg_cnt() into ChatId members
2020-01-25 22:11:13 +00:00
Alexander Krotov
4734bcfbb4
Update Chat.unarchive() comment
2020-01-25 22:11:13 +00:00
Alexander Krotov
099fe6f477
Rename Chat.set_blocking() into set_blocked()
2020-01-25 22:11:13 +00:00
Alexander Krotov
889327b5f6
Rename Chat.archive() into Chat.set_archived()
2020-01-25 22:11:13 +00:00
Alexander Krotov
a2845f44ab
Turn ChatId-related functions into methods
2020-01-25 22:11:13 +00:00
Floris Bruynooghe
186f5553b8
Introduce a ChatId newtype
...
This doesn't try and change the way ChatId is used. It still allows
creating them with 0 and lets some function use a ChatId(0) as error
return.
2020-01-19 23:42:08 +01:00
Floris Bruynooghe
7540770dec
Resultify get_chat_id_by_grpid
...
I want to avoid having to be able to represent a chat_id of 0 in order
to more nicely turn chat_id into a ChatId newtype.
2020-01-16 21:46:06 +01:00
Alexander Krotov
6ad4bdea83
Make get_parent_mime_headers() private
2020-01-12 09:12:24 +01:00
Alexander Krotov
efb9a11d22
Do not select drafts as parent message
...
Also create a common parent_query() function to make sure we use the
same message as a parent when determining if it is encrypted and when
actually replying to it.
2020-01-12 09:12:24 +01:00
Alexander Krotov
047d09bcb1
Do not pass &Sql to parent_is_encrypted()
2020-01-12 09:12:24 +01:00
Alexander Krotov
e1ca6b5181
Rename last_msg_in_chat_encrypted into parent_is_encrypted
2020-01-12 09:12:24 +01:00
Alexander Krotov
36a2569537
Make last_msg_in_chat_encrypted a member function
2020-01-12 09:12:24 +01:00
Alexander Krotov
06bc5513ae
Use Vec::first to avoid explicit is_empty() check
2020-01-11 14:59:53 +01:00
Alexander Krotov
6c838ab57c
Never reset gossip timestamp for all chats at the same time
2020-01-10 15:20:23 +03:00
Alexander Krotov
2ddeef761f
Fix gossiped_timestamp documentation
2020-01-09 15:40:58 +03:00
Alexander Krotov
12cd56e3e8
Rename type_0 into viewtype
2020-01-08 19:00:45 +03:00
Floris Bruynooghe
72cfb70e35
Refactor create_chat_from_msg_id
...
The goal here is to not have a `mut chat_id` as I want to change chat
id into an opaque newtype and we can't modify it like that anymore.
2020-01-08 14:58:44 +01:00
B. Petersen
4b7b6d6cb3
send DC_EVENT_CHAT_MODIFIED when adding members to a group (removing is already fine)
2020-01-06 23:35:27 +01:00
Alexander Krotov
7aeddc63ac
Use DC_CHAT_ID_DEADDROP instead of constant "1"
2020-01-06 00:04:03 +00:00
Floris Bruynooghe
2990a1c255
Mark the ChatInfo struct non_exhaustive
...
This is a new feature in Rust 1.40, it means users outside the crate
will not be able to create these structs, allowing us to add fields
without breaking the public API.
2020-01-05 22:53:52 +00:00
B. Petersen
f73ba895af
remove some meanwhile unneeded allow-statements
2019-12-26 16:26:06 +00:00
B. Petersen
cb2a1147f0
fix searching for localized device chats
2019-12-26 16:23:42 +00:00