Commit Graph

154 Commits

Author SHA1 Message Date
adbenitez 2bdeb614fc Merge remote-tracking branch 'upstream/main' 2024-05-30 17:04:38 +02:00
B. Petersen 44bc7da0df add getData2Blob() needed for DC_EVENT_WEBXDC_REALTIME_DATA 2024-05-23 19:51:02 +02:00
adbenitez 7ff34ed43c Merge remote-tracking branch 'upstream/main' 2024-05-15 22:34:14 +02:00
adbenitez 3c3bd4a77d nice support for communities 2024-05-15 05:35:19 +02:00
adbenitez 9c82d622af don't display as sticker if message is in partial-download state 2024-05-08 17:24:04 +02:00
B. Petersen 256c010b61 add FcmReceiveService 2024-05-07 15:34:50 +02:00
adbenitez d4072c81bd Merge remote-tracking branch 'upstream/main' 2024-05-06 14:31:57 +02:00
B. Petersen dc55b5c64c remove unused getAllLocations() API 2024-04-29 19:49:59 +02:00
B. Petersen e27f592c07 remove unused relicts from Mapbox -> Leaflet move 2024-04-28 23:22:59 +02:00
adbenitez 5986e60e3a Merge remote-tracking branch 'upstream/main' 2024-04-25 22:10:23 +02:00
Asiel Díaz Benítez 9eaf8bb1f3 use new experimental maps integration (#3005)
* use new maps integration

* Update src/com/b44t/messenger/DcContext.java

Co-authored-by: bjoern <r10s@b44t.com>

* Update src/org/thoughtcrime/securesms/WebxdcActivity.java

Co-authored-by: bjoern <r10s@b44t.com>

* fix typo

---------

Co-authored-by: bjoern <r10s@b44t.com>
2024-04-25 12:04:13 -04:00
adbenitez 9fa07fe8f3 improve coversation title's subtitle 2024-01-20 02:46:34 -05:00
adbenitez 6d217e64e1 allow to enable and disable accounts 2023-12-11 16:15:12 -05:00
adbenitez 68ee076a6c allow to set subject and HTML part in sendToChat() 2023-10-28 06:28:46 +02:00
Hocuri ee966f9006 Merge the verified-1:1 commits into main (#2752)
* Verified 1:1 chats, Android UI (#2560)

Depends on https://github.com/deltachat/deltachat-core-rust/pull/4315/.

Follow-up for https://github.com/deltachat/deltachat-android/pull/2541.

- Show a "verified" icon on protection changed update messages
- Add C API
- Show a dialog over the input bar not only for contact requests, but also when the protection is broken (using the new method `isHalfBlocked()`)
  - The positive button reads "OK" (as opposed to contact requests where it reads "Accept")
- Add SVG icons, remove PNG one
- Translations
- When tapping on the `DC_INFO_PROTECTION_{EN|DIS}ABLED` message, show more information (for now, it leads to the online preview of my FAQ PR)
- Block loading remote images in the "Full Msg View" not only for contact requests, also when the protection is broken (using the new method `isHalfBlocked()`)
- Show a big verified/crossed-out-verified symbol over the `DC_INFO_PROTECTION_{EN|DIS}ABLED` messages
- Fix a bug that was kind of present before (for contact requests) but only became really visible now:
  - Set a draft with an image (or other attachment)
  - Your chat partner breaks verification
  - Expected: Both the input bar and the draft image are hidden by the input-bar-dialog.
  - Bug behavior (before c31de5bcf): The input bar is hidden, but the draft image stays visible.

* change button order of verification-broken alert (#2621)

Having "OK" in the middle of the buttons is weird. The old order was:

```
End-to-end encryption cannot...
[More Info]  [OK] [Scan QR code]
```

1. _If_ the main purpose of the dialog would be to "Scan QR code",
   the text should point that out more, also the opening button.
   Then, the button position would be correct, however,
   it has to read "Cancel" then.

2. _However_, the main purpose of the dialog is to "Show Info",
   "Scan QR code" is only an optional offering and the button a shortcut only.
   And finishing "Show Info" is better done by a simple "OK".
   Then, the "OK" should be rightmost.

This PR implements the second option, the buttons read as follows afterwards:

```
End-to-end encryption cannot...
[More Info]  [Scan QR code] [OK]
```

* fix: load updated display name when chat protection breaks

* Implement feature flag for verified 1:1 chats

* Update res/values/strings.xml

Co-authored-by: Hocuri <hocuri@gmx.de>

* Update src/org/thoughtcrime/securesms/connect/DcHelper.java

* Make another AlertDialog

* Revert "Implement feature flag for verified 1:1 chats"

This reverts commit 2efd17edfcf14e3cf89a6671df38647b552e5661.

* Fix typo

* email server->email provider

---------

Co-authored-by: bjoern <r10s@b44t.com>
Co-authored-by: adbenitez <asieldbenitez@gmail.com>
2023-10-27 17:02:29 +02:00
link2xt 87d69c9a86 Remove unused osName argument from DcAccounts constructor 2023-10-26 20:09:50 +02:00
link2xt 1a13224ad2 Update to the new dc_accounts_new() API 2023-10-26 20:09:50 +02:00
adbenitez 3507cb28c6 Merge remote-tracking branch 'upstream/stable' 2023-09-29 12:55:42 +02:00
B. Petersen d208b011c5 show 'verified by SELF' as such
core was changed to return SELF from `get_verifier_id()`
at https://github.com/deltachat/deltachat-core-rust/pull/4754 -
until then, core will return always a contact-id,
which is equal to the current state
2023-09-28 21:46:15 +02:00
adbenitez c952fb33e2 Merge remote-tracking branch 'upstream/stable' 2023-09-28 01:05:16 +02:00
B. Petersen ed9d0a9462 add getVerifierAddr/Id api 2023-09-26 10:46:37 +02:00
adbenitez 4cf35faedd Merge remote-tracking branch 'upstream/stable' 2023-09-26 02:11:29 +02:00
B. Petersen 0f09aba7af remove unused DcHttpResponse and related functions
they are replaced by jsonrpc in https://github.com/deltachat/deltachat-android/pull/2479
2023-09-25 21:14:36 +02:00
link2xt 2d7b7c49c3 Remove unused osName argument from DcAccounts constructor 2023-07-31 18:34:46 +00:00
link2xt a0821a9cf3 Update to the new dc_accounts_new() API 2023-07-31 18:34:46 +00:00
Hocuri 11a2cfbff7 Verified 1:1 chats, Android UI (#2560)
Depends on https://github.com/deltachat/deltachat-core-rust/pull/4315/.

Follow-up for https://github.com/deltachat/deltachat-android/pull/2541.

- Show a "verified" icon on protection changed update messages
- Add C API
- Show a dialog over the input bar not only for contact requests, but also when the protection is broken (using the new method `isHalfBlocked()`)
  - The positive button reads "OK" (as opposed to contact requests where it reads "Accept")
- Add SVG icons, remove PNG one
- Translations
- When tapping on the `DC_INFO_PROTECTION_{EN|DIS}ABLED` message, show more information (for now, it leads to the online preview of my FAQ PR)
- Block loading remote images in the "Full Msg View" not only for contact requests, also when the protection is broken (using the new method `isHalfBlocked()`)
- Show a big verified/crossed-out-verified symbol over the `DC_INFO_PROTECTION_{EN|DIS}ABLED` messages
- Fix a bug that was kind of present before (for contact requests) but only became really visible now:
  - Set a draft with an image (or other attachment)
  - Your chat partner breaks verification
  - Expected: Both the input bar and the draft image are hidden by the input-bar-dialog.
  - Bug behavior (before c31de5bcf): The input bar is hidden, but the draft image stays visible.
2023-07-14 12:05:05 +02:00
link2xt 72f2f8979e requestPtr 2023-04-22 22:53:57 +00:00
link2xt 070f2841cd Sending request works 2023-04-22 22:10:57 +00:00
link2xt 4f468a4b8f Add DcJsonrpcInstance class 2023-04-22 17:58:03 +00:00
link2xt 0e657eed56 Set WebView proxy to 0.0.0.0 when possible (#2539)
* Set WebView proxy to 0.0.0.0 when possible

* add DcHttpResponse to wrapper

* use new DcHttpResponse to show images in email-html-view

* null-encoding is fine for WebResourceResponse()

---------

Co-authored-by: B. Petersen <r10s@b44t.com>
2023-04-20 21:30:19 +02:00
bjoern 3cede346f3 add multi-device-setup (#2493)
* add DcBackupProvider add receiveBackup() wrappers

* add 'Add Another Device' item to settings

* add android-ifaddrs

core-rust uses getifaddrs() which is not available on android ndk.
pull in the code from https://github.com/morristech/android-ifaddrs
that provides an implementation.

* add BackupProviderActivity

* make SVG-hack reusable

* add BackupProviderFragment

* prepare scanning backup codes

* Revert "add android-ifaddrs"

This reverts commit 33b1424427620396f282805d37f8e05c67758546.

* more logging

* call receiveBackup() on scanning DC_QR_BACKUP

* Fixup for recvmmsg fallback

* protect BackupProviderActivity by system secret

* show transfer progress as provided form the core; hide qr-code once scanned

* add a permanent notification for the provider

* clarify what we are waiting for

* add a permanent notification for the receiver

* ask before finishing BackupProviderActivity

* it is fine to cancel the abort question by tapping outside the alert

* remove outdated comment from 'keep screen on'

* add and check TRANSFER_MODE

* rename BackupProviderActivity to BackupTransferActivity

* use our base activity

* start/stop IO in base activity

* use BackupTransferActivity also for scanning

* add BackupReceiverFragment

* show detailed transfer progress

* show details instead of percent during preparation, for now

* launch chatlist and remove welcome when transfer is done

* redirect to chatlist automatically after transfer succeeded

* reword

* make log accessible from send and receive activities

* bump version

* show error if backup provider creation fails

* remove unneeded format()

* show some context in the errors alerts, hide QR code sooner

* calculate transfer percentage as specified

* show a 'close' instead of a 'back' button to make visually clear, things are aborted (there is a quesion anyway)

* add option to copy backup-qr-code to clipboard

* remove vague retry statement, core will show a detailed error soon

* warn about QR codes on clipboard getting invalidated

* make basic strings translatable

* add troubleshooting menu item (once help is evolved, it may be a more visible button, may be localized, may be offline)

* rename to backup_transfer_fragment.xml

* add detailed instructions

* move 1,2,3 layout to the .xml

* fix layout

* use text size used elsewhere

* do best effort to show SSID on sending device

* make SSID code reusable for receiver

* adapt to otherwise used font style

* show ssid also for receiver

* minor refactorings

* make qr code subtitle translatable

* tune down 'same network hint' on scanning device

* add progress bar to provider

* add progress bar to receiver

* bump version

* use 'Add Second Device' wording

this seems slightly catchier as "Add Another Device"
and has less "A" esp. in "Add as Another Device" :)

also at least translation to german seems nicer ("Zweitgerät"),
most ppl will use max. two devices, but even if more,
that should still be fine.

this was also the first intuition also by other devs in their mockups,
so we'll give it a try.

* use "Exporting/Preparing/Prepared Account" wording

let's give that a try - "Account" is also widely used,
so that seems to make some sense.
even if not 100% fitting,
it seems better than introducing the new term "Collection".

* refine abort question

* Update res/layout/backup_provider_fragment.xml

Co-authored-by: Hocuri <hocuri@gmx.de>

* Update src/org/thoughtcrime/securesms/qr/BackupProviderFragment.java

Co-authored-by: Hocuri <hocuri@gmx.de>

* Update src/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java

Co-authored-by: Hocuri <hocuri@gmx.de>

* Update src/org/thoughtcrime/securesms/qr/BackupTransferActivity.java

Co-authored-by: Hocuri <hocuri@gmx.de>

* Update src/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java

Co-authored-by: Hocuri <hocuri@gmx.de>

* remove string duplicate

* refine 1,2,3

* simplify string ids

* focus on what matters

---------

Co-authored-by: link2xt <link2xt@testrun.org>
Co-authored-by: Hocuri <hocuri@gmx.de>
2023-03-24 15:22:26 +01:00
Asiel Díaz Benítez 1523e7bc07 add app icon to webxdc info messages (#2503)
* add app icon to webxdc info messages

* Update res/layout/conversation_item_update.xml

Co-authored-by: Hocuri <hocuri@gmx.de>

* check if info message type is DcMsg.DC_INFO_WEBXDC_INFO_MESSAGE before loading parent message

---------

Co-authored-by: Hocuri <hocuri@gmx.de>
2023-03-22 15:44:56 +01:00
link2xt 9b3d5df1fd Add fallback implementations for sendmmsg, recvmmsg and getauxval (#2491)
These functions are not available in related NDK,
so we provide a fallback implementation for them.
2023-03-06 23:04:39 +01:00
link2xt df58225192 Revert "add epoll_create fallback which is missing in API<21"
This reverts commit e29b6f9974.

Since update to `mio` 0.8.5, it does not require `epoll_create1()`
function to be present on Android anymore.
2023-02-24 12:55:45 +00:00
bjoern 2450bfc4bf remove meanwhile superfluous data2IsString() (#2418) 2022-11-10 10:39:33 +01:00
bjoern 8a98da3c78 replace deprecated DcAccountsEventEmitter by DcEventEmitter (#2376) 2022-08-29 18:05:34 +02:00
bjoern 4b3382dab5 use dc_contact_was_seen_recently() (#2373)
* add DcContact.wasSeenRecently()

* use DcContact.wasSeenRecently() and remove isSeenRecently()

* remove now again unused imports
2022-08-26 23:13:56 +02:00
B. Petersen 9740607147 add DcChat::getMailinglistAddr 2022-07-26 22:45:29 +02:00
B. Petersen 97206a48d2 also emulate EPOLL_CLOEXEC 2022-06-27 23:18:32 +02:00
B. Petersen e29b6f9974 add epoll_create fallback which is missing in API<21 2022-06-27 23:18:32 +02:00
B. Petersen 6b8f0842aa use new dc_provider_new_from_email_with_dns() api 2022-04-27 23:04:18 +02:00
B. Petersen f047f1382e add resendMsgs() api 2022-04-26 21:00:47 +02:00
bjoern adf02b50e5 adapt js to new webxdc-update-api (#2223)
* adapt js to new webxdc-update-api

* the stub implementation of getAllUpdates() must still return a Promise

* reword parameters of getStatusUpdates()
2022-03-04 20:23:56 +01:00
Hocuri 11ec547386 Make it possible to create an encrypted database (#2186)
- Before Android 6 (API 23), there was no KeyStore yet. Currently, you can still create an encrypted account, but the passphrase is stored in clear-text, because that's how Signal is doing things.
- There is no option to manually set the keyphrase or to unlock via fingerprint. This has the advantage that we never need user input for unlocking the accounts and can simply unlock all accounts on startup and the obvious disadvantage that anyone with access to the unlocked device can open DC.
- Each account is encrypted with a different passphrase.
- When importing, you can choose to encrypt the account.
2022-01-22 20:57:16 +01:00
bjoern a9a99047da move up when tapping webxdc info messages (#2194)
* add DcMsg.getParent() api

* factor out scrollSmoothToMsgId() and use that for both, quotes and webxdc-info-messages
2022-01-20 00:53:50 +01:00
bjoern 9e70aa7cad webxdc (#2174)
* add new w30 APIs

* create the webview,
disable internet access,
inject deltachat.js

* connect deltachat to the webview

* promisify api

* use msgActionButton to start the w30 apps

* cleanup

- create observers in onCreate() to avoid memory leak,
- derive from WebViewActivity to easier deal with particularities
  and to saves >100 loc
- reorder some methods to reflect lifetimes

* make it more clear, which uri-part is 'domain' and which one is 'path'

* unify logging

* it is 'statusUpdate' not 'stateUpdate'; not sure if promise is needed at the end, we can readd that as needed, simple code for now

* use core implementation for status updates

* disable debugging enabled by default, streamline code

* use same name for InternalJSApi for both, js and java

* getStatusUpdates() always return an array

* call JSON.stringify() on payload

* fix typo, fix equal operator

* use shorter function names in js land

* adapt to new zipped w30 format

* load any file from w30 archives

* add fallback if getMimeTypeFromExtension() fails

* rename w30 to webxdc

* add selfName()

* return selfAddr() if selfName() is empty

* rename deltachat.js to webxdc.js

* observer correct event

* rename getBlobFromArchive() to getWebxdcBlob()

* show webxdc app name in title bar

* swap payload and descr in sendUpdate() (adapt to new core api)

* allow user-defined-texts for webxdc apps, make room for icon+name

* show webxdc icon and name in chats

* render webxdc drafts accordingly

* allow configuring drafts

* do not destroy webxdc-message to be sent out by removing it via setDraft(null)

* fix crash when replying to webxdc messages

* add webxdc messages to profile's document tab

* hide 'search menu' for webxdc apps

* show app summary beside app icon

* remove outdated comment

* add precautious WebView restrictions

* Update src/org/thoughtcrime/securesms/ConversationItem.java

Co-authored-by: Asiel Díaz Benítez <adbenitez@nauta.cu>

* Update src/org/thoughtcrime/securesms/ConversationItem.java

Co-authored-by: Asiel Díaz Benítez <adbenitez@nauta.cu>

* Update src/org/thoughtcrime/securesms/ConversationActivity.java

Co-authored-by: Hocuri <hocuri@gmx.de>

* Webxdc requires at least Android 5 Lollipop

see https://github.com/deltachat/deltachat-android/pull/2174#discussion_r785436874

* recognize .xdc files on android10

based on @Hocuri's findings in #2188

Co-authored-by: Simon Laux <mobile.info@simonlaux.de>
Co-authored-by: adbenitez <asieldbenitez@gmail.com>
Co-authored-by: Asiel Díaz Benítez <adbenitez@nauta.cu>
Co-authored-by: Hocuri <hocuri@gmx.de>
2022-01-18 10:52:09 +01:00
bjoern 447e879bac use dc_get_last_error() api (#2109)
* add getLastError() api

* use getLastError() for QR code processing

* use getLastError() for import/export

* remove now unused getCapturedError()
2021-11-25 12:15:39 +01:00
Asiel Díaz Benítez 23ad457fab [WIP] use the new SVG QR images generated in core (#2138)
* use the new SVG QR images generated in core

* hack y-offset of fallback-avatar-letter

the dominant-baseline=central and baseline=middle attributes are not working,
see https://github.com/deltachat/deltachat-core-rust/pull/2815#issuecomment-978067378
and source code comment for some more details.

Co-authored-by: B. Petersen <r10s@b44t.com>
2021-11-24 23:24:55 +01:00
adbenitez 22fced3fa5 add DcContact.getLastSeen() 2021-11-22 21:16:54 -05:00
bjoern e71f5d9bba broadcasts android ui (#2060)
* add broadcasts ffi

* add 'broadcast' options to menu, chat, profile etc.

* generate initial broadcast names

* reword broadcast hint

* make 'Broadcasts Lists' experimental; while on that, also add a confirmation dialog to the location streaming switch (wording taken from ios)

* Update res/values/strings.xml

Co-authored-by: Hocuri <hocuri@gmx.de>

* comment on strings.xml

* tweak 'experimental' appearing, avoid the 'test tube'-emoji that is not supported on many devices

Co-authored-by: Hocuri <hocuri@gmx.de>
2021-09-30 15:44:17 +02:00