- 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.
* 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>
* 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>
* 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>
* add download-ffi methods
* add 'Download' button for incomplete messages
* show 'downloading' animation
* make download_limit configurable
* set button to 'disabled' and text to 'Downloading...' on downloading; color does not really reflect that yet, but that can probably be tweaked by xml
* make 'download message body' translatable
See deltachat/deltachat-core-rust#2514
Fixes#1963Fixes#1890
Before deleting a chat the user is asked for confirmation. Before blocking not, because blocking is not "destructive" (i.e. can be completely reverted by unblocking the contact). I'm wondering whether we should show a snackbar with an Undo button though, but we can probably wait for user feedback on this.
* Start removing deaddrop chat
* Generally works
* Fix the buttons
(it's not easy to not show one of the buttons in
ConstraintLayout; if problems turn up, we should probably
just not use ConstraintLayout)
* fix more things
* restartLoader() instead of notifyDataSetChanged() because the latter didn't do anything
* Archived badge
* Rename "Contact request" to "Request"
* oops
* Remove setStockTranslation(8, context.getString(R.string.chat_contact_request));
* Remove commented-out code, we probably won't need it
* Don't show "Delete" button for 1:1 chats
* Get rid of short flickering when declining a request
* Set the app's night mode to match the preference
This added 6ms to startup time, but I think that's OK, as
we will also be able to use more `-night` views in the future
* Make "Accept" text a bit brighter and easier to read in dark mode
* Check if the chattype is Group instead of members.length == 1
The non-squashed original commits are available at 243bd3a56:
* First, quick and dirty version
* Basic HTML connectivity view
* Codestyle, automatically refresh
* Make it accessible from the settings
* Improve usability
I did some user-testing with my family, these are the results:
- Added an emoji to the html page (red dot for not connected, and so on)
- Adapted error messages for SMTP:
"Not started" -> "(You did not try to send a message recently)"
"🟢 Connected" -> "🟢 Your last message was sent successfully"
- "Not connected" is misleading, because they think that this means that there is no internet connection.
But "Not connected" can have other causes, like, a not responding server or a changed-but-not-updated-in-DC password
Possible solutions:
- "Not connected" -> "Not connected with gmx.de" (or whatever comes after the '@' in configured_addr). The problem: some people have an own domain for their emails, but no own servers. "Not connected with <your domain>" and might make them think that the problem is that DC tries to connect to the server <your domain>, while the server is hosted at Strato.com.
- We can ask the system whether there currently is network and then show another error message. The problem: Sometimes the system is wrong.
* Remove error_network
* Remove server_response string
* Move `getConnectivitySummary()` to `DcHelper`
* Implement the changes we agreed on
* Remove string error_no_network
* small fixes
For long subject it's ellipsized (`…`) now, but I think that there is no need to show the full subject somewhere, it usually doesn't contain _that_ important information and can be seen in full in the normal chat view
* Adapt to mailing lists
* Change the question if this is a mailing list (untested)
* rm unused fn
* Adapt to getSenderName -> getOverrideSenderName (untested)
* Use dc_msg_get_sender_first_name() because sometimes the first name was not correctly shown in mailing lists
* Don't let the user modify mailing list groups
* Fix crash
* Make Unnamed newsletter translatable, make the subtitle of mailing lists "Mailing list"
* tweak and hide some controls for mailing lists
* Update src/com/b44t/messenger/DcChat.java
Co-authored-by: bjoern <r10s@b44t.com>
* adapt to new dc_msg_get_real_chat() api, remove dc_msg_get_sender_first_name()
* remove now dead code
* add mailing list name to contact-request-question
move question-creation to a helper class
to avoid duplicated code.
* fix DcMsg.getOverrideSenderName()
* adapt to new dc_decide_on_contact_request() api
* re-allow changing name+image for mailinglists, see recent discussions on PRs
* remove memberlist- and settings-tab from mailinglist profile until there is some use for them
* adapt to new DC_CHAT_TYPE_MAILINGLIST type
Co-authored-by: Hocuri <hocuri@gmx.de>
* add get-mime-original apis
* remove unused control
* add 'Show full message' buttons
* split reusable WebViewActivity from LocalHelpActivity
* add FullMsgActivity
* load html via AsyncTask
* adapt to changed api
* handle mailto:-links in WebView
* block loading remote images by default, add user setting always/once/never
* do not hide 'Once' button in always-mode, playing around a day with hidden 'Once' that looks more like a bug :)
* wording: as 'Always' affects all messages, it is better to speak of multiple senders
* wording: use 'Load remote images'
this makes it easier for the user to find the option
if one sees, images are missing in the document.
* wording: shorten text.
* wording: change 'may' to 'can'. 'may' sounds a bit as if someone allows this.
* Don't use AsyncTask
* check 'once' if appropriate
* use lite-colored checkbox-emoji in dark-theme
* add comment about missing error logging
Co-authored-by: Hocuri <hocuri@gmx.de>
this issue is older, however, by the explicit unref() call now more visible.
but also in the past, this could have led to random crashes
after account switching.
the imap-/mvbox-/sentbox-/smtp-threads needs to be terminated
before dc_close() can be called successfully.
if this is not done, they are hanging around, and, even worse,
if an account is opened _again_, there are now two threads
working on the database which lead to duplicated messages.
note, that this issue is only related to duplicated messages
if ever an account was selected, which, however, might be the same as the current.