* 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>
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
was not writable for android10 (older and newer androids are okay)
- the import selectMediaType() showed up,
however never did show the exported file on android10 (also here, older and newer androids are okay)
re-adding the flag `android:requestLegacyExternalStorage="true"` that was removed in #2087
fixed both problems, at least in the emulator.
seems as if the flag is still respected when running on sdk29 even when targeting sdk30;
when running on sdk30, however, the flag is ignored.
at least the following doc does not say that the flag is needless in sdk30:
https://developer.android.com/reference/android/R.attr#requestLegacyExternalStorage
* Target SDK 30
* Pull changes from Signal
* Bugfix, make photo view rail be shown again
* Fix capturing images using an external camera
* Make backups work. Unfortunately, I did this by copying the backup file to the private storage first.
* Fix: Show the correct folder name when exporting attachment
Before, after exporting an attachment, on newer Android versions (and
maybe also on older ones) the toast always said
`File exported to "media"`.
* Update src/org/thoughtcrime/securesms/WelcomeActivity.java
Co-authored-by: Asiel Díaz Benítez <adbenitez@nauta.cu>
Co-authored-by: bjoern <r10s@b44t.com>
Co-authored-by: Asiel Díaz Benítez <adbenitez@nauta.cu>
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
fix#1836
AvatarSelector is mostly copied from AttachmentTypeSelector. I first started to make it a subclass, but there were so many functions that had to be changed that I decided against it (esp. also the constructor, so I would have had to create another constructor to allow AvatarSelector to bypass the "normal" constructor). Could still be done though, of course.
I think (hope joy) that the commits are clear enough that this can be reviewed commit-by-commit. In the first commit, commenting out code means "Moved somewhere else"
I found it easier to look at the first commit using gitk than GitHub as GitHub doesn't show it as copied from AttachmentTypeSelector but as a new file. (of course you can also just review normally, going throug it file-by-file :)
* Don't show remove button if there is no image yet
* Remove unnecessary animation that just made things look worse
* Delete now-unused ClearProfileAvatarActivity
* For groups, also use the attachment-chooser-dialog
* Remove confirmation dialog for removing avatar (The user has to confirm anyway, and this was not correctly translated)
* 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>