Commit Graph

506 Commits

Author SHA1 Message Date
link2xt
93bd9422e7 Improve formatting of ephemeral timer change messages
This adds support for more timer values and better fallback for unknown values.

For example, 90 seconds is formatted as "1.5 minutes".
2021-01-31 00:44:57 +03:00
link2xt
b53415fed5 ffi: add missing DC_STR_SERVER_TURNED_OFF #define 2021-01-31 00:44:57 +03:00
Floris Bruynooghe
785cc795e3 Resultify Contact::lookup_id_by_addr
Using a Contact ID as an error type is risky and a C leftover.
2021-01-27 21:42:05 +01:00
bjoern
1e6d8063c8 add dc_msg_set_html() api (#2153)
* draft dc_msg_set_html() api

* implement setting 'html to be send'

* test sending html-parts

* more flexible html-partbuilder

* write html-parts to database and also send them

* add 'sendhtml' command to repl tool
2021-01-27 12:56:22 +01:00
B. Petersen
e6dd963ebb #define removed ffi-funcion dc_contact_get_first_name as dc_contact_get_display_name to make updating easier 2021-01-26 03:02:19 +03:00
B. Petersen
2a8c418d54 remove dc_contact_get_first_name() api
instead, dc_contact_get_display_name() should be used.

dc_contact_get_first_name() was created to save some space on the screen,
esp. on mobile devices,
however, this does not always work and has issues on its own
with some names ("Dr. Strangelove", ":) Name" and so on).

as with mailing lists, more apis with first_name() would be needed,
we decided to drop that instead of following that way.

it is also less an issue as some years ago as screens have become larger,
if really, needed, the ui can handle that more gracefully,
however, just using dc_contact_get_display_name() should be fine as well.
2021-01-23 18:50:22 +03:00
Floris Bruynooghe
83dd1c6232 New version of clippy has a lot of new lints
Lots of new clippy lints due to toolchain upgrade.

Made the Message::error field pub(crate) again, it was the odd one out
and it seemed a reasonable way to shut up clippy.
2021-01-19 11:20:33 +01:00
Simon Laux
7154a47f85 Update deltachat-ffi/deltachat.h
Co-authored-by: bjoern <r10s@b44t.com>
2021-01-18 17:35:58 +01:00
Simon Laux
9957bad83d rename DC_GCM_SYSTEM_ONLY to DC_GCM_INFO_ONLY
apply suggestions of r10s
2021-01-18 17:35:58 +01:00
Simon Laux
1d62448903 add flag to get only info/system messages of chat
useful for creating an "audit log" view of a chat that helps to find
actions like who added/removed who quickly and without endless scrolling
2021-01-18 17:35:57 +01:00
bjoern
f7ecf34ead document DC_STR in ffi (#2143)
* fix typo

* document DC_STR_* constants and related parts
2021-01-18 14:07:28 +01:00
Alexander Krotov
8412affe37 ffi: remove dc_is_io_running()
It is misleading and should never be checked.

dc_stop_io() also stops pending ephemeral message deletion tasks, so it
should be called in any case before releasing context.
2021-01-15 07:07:45 +03:00
bjoern
e2688f6355 add option to access original message (#2125)
* draft API to deal with uncut message texts

* add column mime_modified

* add mime_modified flag to MimeParser and save it in the database

* save mime_headers also when mime_modified is set

* cargo fmt

* set mime_modified on parsed html-texts and when there are multiple alternative-parts; add test for that

* prototype functions, add to repl and ffi

* use correct mime_modified flag

* basically parse Mime-Structure to HTML

* add basic tests for HTML-parsing

* convert text/plain to html for getting original

* respect charset for plain texts

* make test more specific

* fix handling non-utf-8 charsets for plain messages

* add test for plain_to_html()

* add failing test for plaintext linkify

* linkify urls in plain text

* fix regex

* plain text linkify: add failing test for encapsulated links as <https://domain.com>

* plain text linkify: make encapsulated links as <https://domain.com> work

* plain text linkify: require word boundary at beginning of link, add tests for that

* plain text linkify: linkify emails

* plain text: support format=flowed

* plain text: support quotes

* make clippy happy

* set mime-modified also when simplify() cuts non-html messages, add tests for that

* streamline mime recursion

* repl tool: write original html to file for further processing

* convert cid:- to data:-protocol

* add a test for cid: to data: conversion

* make clippy happy

* fix html-tests to work with windows-lineends

* clarify what the returned html-code may contain

* add some more detailed doc comments

* add mime_modified column only if not exist

this additional check is needed
as the column may added with another dbversion in
some shipped beta-versions.

* incorporate documentation suggestions from review

* rename get_original_mime_html() to more simple get_html()

* rename api is_mime_modified() to more simple has_html(); internally, mime_modified-flag stays as-is, however

* rename MimeS to MimeMultipartType

* do not set mime-modified flag for encrypted messages that need extra-handling for saved mime-structure

* fix typo

* move get_msg_html() to MsgId.get_html()

* incorporate more documentation suggestions from review

* remove unused return value from collect_texts_recursive()

* avoid mime_modified being mutable in write-parts-loop

* move 'use futures::future::FutureExt' atop of html.rs

* move attributes defining plain-text to a dedicated structure

* more PlainText to separate file

* escape cid when building regex

* let dc_get_msg_html() return NULL when calling with bad param
2021-01-11 17:40:35 +01:00
Alexander Krotov
f4c8ffca4c Query MX records during provider autoconfiguration
Previously MX records were queried only for OAuth 2 configuration and
did not affect the list of servers tried. User was required to manually
configure the servers for Google Workspace (former GSuite) domains.

Now MX records are queried during configuration. If provider is found in
offline database, its ID, corresponding to the filename, is saved as
`configured_provider`.

`configured_provider` is also set during database migration if email
address uses the domain from the provider database, but no MX querying
is done.
2021-01-10 00:19:43 +03:00
bjoern
09113e2579 correct and refine docs for DC_MSG_IMAGE (#2099)
* correct and refine docs for DC_MSG_IMAGE

* unify 'eg.' to 'e.g.'
2020-12-06 20:34:03 +01:00
Alexander Krotov
dea9630380 Better typed Message.ephemeral_timer 2020-12-06 21:09:13 +03:00
B. Petersen
b21508fdb7 bump version to 1.50 2020-11-19 14:06:53 +01:00
holger krekel
d66174e55a let core carry a 1.50.0-alpha.0 version (which sits between 1.49.X and 1.50.0).
This way we can better distinguish tagged from untagged core releases, also in logs etc.
We might, from time to time, increase the alpha.N "N" number if we are entering testing etc.
2020-11-16 16:12:55 +01:00
B. Petersen
6345e57720 bump version to 1.49 2020-11-09 14:11:01 +01:00
Alexander Krotov
bf82dd9c60 Document account_id parameter for dc_accounts_remove_account 2020-11-08 01:12:57 +03:00
Alexander Krotov
46c544a5ca deltachat-ffi: forbid quoting messages from another context 2020-11-05 05:57:19 +03:00
Alexander Krotov
c53c6cdf90 deltachat.h documentation fixes 2020-11-01 01:33:15 +03:00
B. Petersen
ea759f17d0 bump version to 1.48 2020-10-31 15:52:59 +01:00
bjoern
25513a6e42 Merge pull request #2050 from deltachat/restore-saved-messages-hint
add hint about how to restore saved-messages chat
2020-10-31 11:59:04 +01:00
Alexander Krotov
5c1bbc5d6a Cancel ephemeral task in Context.stop_io()
ephemeral_task holds a reference to Context, preventing event emitter
from returning NULL and terminating event loop. Prior to this change,
there was no way to quickly terminate pending ephemeral_task.
2020-10-28 01:10:23 +03:00
B. Petersen
4c4a9b52de show hint how to restore saved-messages
the saved-messages can be deleted as any other chat;
if the feature is unneeded, this probably also makes some sense.

however, if saved-messages was deleted accidentally (yeah, i've seen that :),
it is not intuitive to see how the saved-messages feature can be restored.

this change just drops a note about how-to-restore to the device chat.
2020-10-27 14:26:23 +01:00
holger krekel
622d99a971 remove option<path> from inner/imex handling to simplify the code 2020-10-26 20:34:52 +01:00
Hocuri
34af492afb Rename fetch_existing to fetch_existing_msgs, add comment (#2042) 2020-10-24 12:10:36 +02:00
B. Petersen
0fc1134bab bump version to 1.47 2020-10-19 18:44:39 +02:00
B. Petersen
0a300da347 rename option 'Prefetch' to 'FetchExisting' and limit it to that 2020-10-16 15:28:41 +02:00
B. Petersen
aa26c52813 add prefetch config value 2020-10-16 15:28:41 +02:00
Hocuri
07e4762f71 Call update_device_chats automatically during configure (#1957)
update_device_chats() takes about 2 seconds on a modern device (Android) because the
welcome image file has to be written to the disk as a blob. The problem
was that this was done after the progress bar had vanished and before
anything else happened so that I thought that something had gone wrong
multiple times.

The UIs have to remove update_device_chats(), too..
2020-10-15 17:43:22 +02:00
B. Petersen
d13d62105a name quote-only drafts as such in the summary
a draft may contain only a quote,
without any text set yet.

these drafts cannot be sent, however, appear in the summary -
currently with the summary-text "", which results to sth.
as "Draft: " - which looks like an error or at least a bit weird.

this pr sets the summary text to "Reply" - similar to "Image", "Video" etc. -
the UI just expects some text here, not an empty string.

the result are summaries as "Draft: Reply" on all UIs -
which, btw. is also roughly the same what Signal does in this case.
2020-10-13 21:35:29 +02:00
B. Petersen
9b72aba8e3 remove DC_STR_COUNT
the constant comes from c-core
and was used to define the size of the string-array that time.

this is no longer needed in core
and also the UIs seems not to use it
(they will treat DC_STR* like an id,
there should be no need to know the max. DC_STR* value)
2020-10-13 18:18:34 +02:00
B. Petersen
50f3af58f8 remove dc_chat_is_verified() 2020-10-13 14:59:28 +02:00
B. Petersen
da727740ab use warn! for ffi-usage-errors 2020-10-13 14:59:28 +02:00
B. Petersen
c1768bb311 add dc_msg_get_info_type() to allow drawing a shield in the uis 2020-10-13 14:59:27 +02:00
B. Petersen
66cb3d4358 fix ffi and bindings, error is already logged in core 2020-10-13 14:59:27 +02:00
B. Petersen
5e07a36cd2 add/send info-message on protection changes 2020-10-13 14:59:26 +02:00
B. Petersen
49b5962568 add set_chat_protection() api 2020-10-13 14:59:26 +02:00
B. Petersen
a7998c190c remove DC_CHAT_TYPE_VERIFIED_GROUP resp. Chattype::VerifiedGroup 2020-10-13 14:59:26 +02:00
B. Petersen
b8a55f3aa4 replace chat.is_verified() by chat.is_protected() 2020-10-13 14:59:25 +02:00
B. Petersen
ab8bf3c2f3 use ProtectionStatus to create chats 2020-10-13 14:59:25 +02:00
bjoern
d9a45eb931 Merge pull request #1981 from deltachat/notice-on-answer
basic DC_EVENT_MSGS_NOTICED multi-device-support
2020-10-12 17:58:32 +02:00
B. Petersen
c2b222e6a5 emit DC_EVENT_MSGS_NOTICED when a chat was answered on another device 2020-10-10 12:50:23 +02:00
Alexander Krotov
eaec03142b Use get_summarytext() for quotes
Co-Authored-By: Hocuri <hocuri@gmx.de>
2020-10-10 12:41:43 +03:00
Alexander Krotov
20182b027e Add quote API
Sticky encryption rule, requiring that all replies to encrypted messages
are encrypted, applies only to messages with a quote now.

Co-Authored-By: B. Petersen <r10s@b44t.com>
2020-10-10 12:41:43 +03:00
René Rössler
9739c0305b Accessible msg error and type changes 2020-10-08 11:51:04 +02:00
B. Petersen
5405bfbc8d remove unused types "starred" and "in-creation"
both are not used in productive:
- chat-id "in-creation" was dropped completely already in core-c
  as it does not allow assigning messages to chats in time.
- message flag "starred" was added at some point and never used.
  ux-wise, "disappearing messages" promises to clean up a chat -
  this does not fit well with "starring" messages.
  "saved messages" chat seems to be superior in that regard.
  but anyway, it is not used but comes at maintainance costs,
  so it is better to delete its functionality for now.
  (the db entries, however, are left for now,
  that might be more tricky to remove)
2020-10-06 09:32:50 +02:00
Alexander Krotov
de97e0263f ffi: add missing "ignoring careless call" warnings 2020-10-05 08:57:52 +02:00