* remove green checkmarks from chatlist
* remove green checkmark from contact lists
* remove green checkmark from chat-protected info-message (DC_INFO_PROTECTION_ENABLED)
* remove green checkmark from profile title
* add green checkmark to "Introduced by..." line
* when tapping chat-protected or chat-e2ee info-message, open help at #e2ee
* update changelog
* Update CHANGELOG.md
Co-authored-by: Hocuri <hocuri@gmx.de>
* add verified checkmark when verifier is unknown but contact is verified
* Update CHANGELOG.md
---------
Co-authored-by: Hocuri <hocuri@gmx.de>
Co-authored-by: bjoern <r10s@b44t.com>
* add device message
* apply tweaks of @hpk42 and @hocuri
* change two emojis, donate as discussed and 🔲 instead of ⌘ which is known as a keyboard shortcut symbol, at least on mac, and adds confusion
---------
Co-authored-by: B. Petersen <r10s@b44t.com>
as discussed with @hpk42, we want to simplify the terms used in UI,
as there is no switch-forth-and-back, the "from now on" is superfluous,
and the "guaranteed" at least noisy and raises questions.
also, this allows us to use the same string when establishing via vcard contacts,
which is a good thing to move forward just now.
the faq will explain nuances then
* fix: Small channel fixes
- In the profile view of an InBroadcast, the subtitle said "Contact".
I just removed the subtitle, because it already says "Channel" at the
top.
- When tapping on the avatar of an InBroadcast, an "Edit" button was shown
* fix: Also disable edit button for mailinglists
* Rename "broadcast list" to "channel"/"broadcast channel" both in UI and code
* feat: Add new channel types
* Update CHANGELOG.md
* adb's review
* refactor: Rename BroadcastChannel to Broadcast
* Revert accidental change
* Make it possible to leave channels
- In a chat, if the chat is an InBroadcast, and it's not a contact
request, then the `Leave` menu option is shown with the translated
stock string `menu_leave_channel` as its label.
- If the user clicks on it, the confirmation dialog has
`menu_leave_channel` (rather than `menu_leave_group`) as its positive
option.
Counterpart of https://github.com/chatmail/core/pull/6984.
---------
Co-authored-by: adbenitez <asieldbenitez@gmail.com>
Co-authored-by: adb <adb@merlinux.eu>
* adapt divider to style used elsewhere
* offer copy-to-clipboard on long-tap address
* Revert "offer copy-to-clipboard on long-tap address"
This reverts commit 92570b8e1ef5898b99a9a2769eea0e1e16bf25e1.
* show copy-context menu on long pressing address
* duplicate ProfileActivity to AllMediaActivity
* update CHANGELOG
* remove profile stuff from AllMediaActivity
* remove media stuff from ProfileActivity
* remove TabLayout from ProfileActivity
* decouple header from viewType
* easier name editing
* add link to 'apps & media'
* move bio up
* move 'send message' up
* prepare avatar/title/subtitle
* set title
* set subtitle to member count
* add address to profile
* rename ProfileSettings* to just Profile*
* set avatar
* use avatar view
* adaptive avatar cell height
* no endless growing of online-indicator
* simplify
* handle tap on avatars
* rename Profile* to AllMedia*
* set title accordingly
* move 'last seen' up
* edit name by tapping
* Revert "edit name by tapping"
This reverts commit 6727b168302fbe50cbde803fbc83692965d3df59.
Reason is that it introduces uncertainity what happens if the name is tapped -
we do not want to nudge ppl to edit the group name in a similar way.
we may revert this revert,
but for now, let's see if the icon atop isn't sufficient.
* add media count
* space below avatar
* refactor allmedia viewtypes
* select the first tab that has content
* format footer
* remove unused headers
* space above header
* add dividers
* tweak some spacings
* tap on avatar only for enlarge/set avatar
* immediate view of first tap
* tweak value display
* add icons to buttons
* tweak paddings
* no address for self-talk and device-chat
* use signature background for less cluttered UI
* avoid global state modification and showing eg. app-icon tinted also elsewhere
* tweak sizes
* move introduced-by/server down. these information become less important the more chats you have with the contact - and otherwise just clutter UI
* update CHANGELOG
* typo
* use more normal font and spacing for footer
* open "media" deterministically
remove the smart forwarding to "tab with content",
which results in unclear behaviour.
also, we want to push for apps,
which is also the thing that really changes.
when searching for an image, another tap is fine.
also otherwise, we say "[attach] Contact", "[attach] File", "[attach] Video" etc. -
so it should be "[attach] App" as well.
this is also what desktop/iOS are doing.
the title in the app picker itself, however,
is fine with reading "Apps" - it shows multiple ones
we got some feedback,
that ppl were wondering if others can use an app
once drafted and opend.
the old title "Tap to open" might even underline that impression.
this PR changes the title to "Tap 'Send' to share"
(we need to be super-short here, "Tap 'Send' to let others use the app" is already too much :)
the sending out of apps is the much more important step than to open,
play a game and then wondering ...
ppl will figure out the latter themselves,
wondering if one can configure eg. a poll before sending -
and if not, then it's that.
it is unclear, which time this is - time of adding or time of last update?
it is the prior, however,
both are not important enough to clutter the list,
also desktop/ios do not show them.
i assume, the time display was just kept when adapting from files view.
by making the apps easier accessible,
(cmp https://github.com/deltachat/deltachat-ios/pull/2721 )
we really only want an uncluttered list.
the instructions are shown when there are no Apps, Images etc. in a chat.
while the "shared in this chat" wording
is maybe more correct on an abstract way
(there are other ways than "attach" to have an app),
the "attached in this chat" points implicitly better to the new app selector -
esp. as the same wording is used for "images",
where the avg user usually knows about how to get that attached.
this little rewording comes from a discussion with @hpk42,
surely, there can be more improvements :)
the fix could have been avoid by checking for null
or not being overly specific with the exception.
as this is a very sensible area,
where any failure is dramatic,
we do both.
i think, it is even an improvement for Android:
the hint is now also anchored by 'System Settings'
which is more in focus by casual users than 'App Settings' (long tap icon).
also, some android derivates may have different order,
which is captured better by a broader hint.
classic onboarding allows not setting a displayname on purpose,
however, that results in broken webxdc layouts
as the name is then replaced by a 40-or-so-chars-hash-without-spaces.
one can argue, that apps should handle that gracefully,
but most do not and just look buggy.
it seems reasonable,
to use the email address in that case,
same as we do at other places if the name is unknwon.
(tbh, i thought it was like that, but i mixed sth up in OS comparison).
this was also the situation before we changed selfAddr calculation, btw.
it is anyway a cornercase, webxdc cannot send the address somewhere
nor can correlate reasonably, and if the user sets a name, things are fine
(and more often than not we nudge user to set one :)
* remove address from primary settings UI
showing the address here prominently results in bad UX
as ppl try to pass the address around,
which will not result in e2ee and will often not work.
see https://github.com/deltachat/deltachat-ios/pull/2664
for more resoning and discussion, eg. why remove it unconditionally
* show status
* update changelog
---------
Co-authored-by: adb <adb@merlinux.eu>
Co-authored-by: adbenitez <asieldbenitez@gmail.com>
Running ndk-make.sh triggers a complete rust rebuild, because some compiler flags are changed. Then when you run a normal cargo command again (cargo check etc.), there is another rebuild. My solution is to locally change the target directory. This PR makes ndk-make.sh support such custom target directories.
* prefer NAME over NAME (ADDR)
this tunes the usage of email addresses further down,
in all cases, the profile should only be a tap away before or afterwards,
so, these mentionings were never really critical
* update CHANGELOG
* Update CHANGELOG.md
Co-authored-by: adb <adb@merlinux.eu>
---------
Co-authored-by: adb <adb@merlinux.eu>
* tune down usage of 'e-mail' wording, where not needed in primary UI
* strike another provider
* remove e2ee hint for address book, the option was introduced at #2950 where hiding for chatmail (#3050) was not in place
* Update src/main/res/values/strings.xml
Co-authored-by: Hocuri <hocuri@gmx.de>
* Update src/main/res/values/strings.xml
Co-authored-by: Hocuri <hocuri@gmx.de>
* Update src/main/res/values/strings.xml
Co-authored-by: Hocuri <hocuri@gmx.de>
* leave aeap as is, it will be removed anyways
* pick up 'relay' wording
* reword deletion warning
* revert 'messages relayed'; this is not really the experience user can expect
---------
Co-authored-by: Hocuri <hocuri@gmx.de>
* add stock string needed when securejoin takes longer than expected
* apply wording suggestions
* stroke 'as expected', this is not an error, we're offline first, it is fine and continues in bg
do not say "Delete on all your devices"
when deleting a message in the "Device Messages" chat.
while this is a minor,
it is one of the first things the user may see,
better be correct there to not give a false first impression of correctness :)
this PR adds a hint about making sure no 3rd party
can see the "Add Second Device" QR code.
the dialog and the hint are already used on all OS,
so that is a low hanging fruit -
(compared to other ideas of changing flow direction etc,
which we might go for at some point;
however, that would be lots of effort on all UI,
is tricky UX wise, will come with new bugs and other cornercases,
and are also not bullet save against careless users,
"hey, scan my QR code ... no, from 'Add Second Device, Next, Next ...'" :)
* remove deprecated strings, usage was checked with ./scripts/grep-string.sh
* add new 'Chat with...', needed currently only for iOS
* update translations
- use clear "Delta Chat Homepage" for opening our homepage
(instead of unclear "Learn more about Delta Chat",
which is esp. weird, when used from inside the help)
- do not "promote" GitHub in our menu entry,
instead of "Contribute on GitHub", just say "Contribute".
destination URL is our contribute page then -
that is also more useful for ppl doing eg. translations
* fix: Use msg.getFilename() instead of the file's name in some cases
* fix: Use msg.getFilename() instead of the file's name in initializeDraft()
* fix: Use msg.getFilename() instead of the file's name in MediaItem
* fix: Use the correct file name in MediaView
* refactor: `msg` param of `getManuallyCalculatedSlideInfo()` was always null
* Improve comment
* Revert "refactor: `msg` param of `getManuallyCalculatedSlideInfo()` was always null"
We will unfortunately need getManuallyCalculatedSlideInfo() with `msg`
param
This reverts commit 60e8248db32dc22812d3f23da194bab644802045.
* fix: Fix drafting images
This fixes a bug introduced in 14f69f87e8b11a7d0568e58593946a1f1c01e75e:
When you drafted an image, pressed Back, and opened the chat again, then
the height of the drafted image was wrong and tapping the image opened a
preview for the wrong image.
I do think that theoretically it would be nicer to use getSlideForMsg
here, because we already have a DcMsg, but this didn't work because a)
the width and height wasn't gotten from the msg and instead 0 was passed
and b) the code tries to save a msgId instead of the message instead,
and loading the message from the database fails later since it's just a
draft.
I didn't want to try and fix these things, because they might be bigger
refactorings and I don't know the code.
* fix: Use the original message's filemime if there is one
...instead of trying to guess the mimetype from the uri
* Make the attachment background the same as the input bar background
Two different users recently complained that they find drafting images confusing. One of them thought that they had already sent it, the other one didn't know how to send it (both of them figured it out after ~10s, but still, it's nicer to avoid such confusion). In both cases, the problem was that the background of the attached file is the same as the chat background, not the same as the input bar, even though the attached file belongs to the input bar and not to the chat.
* Add a stroke around the to-be attachment
the email-address was removed for guaranteed-e2ee chats quite a while ago
(https://github.com/deltachat/deltachat-android/pull/2916) reason was, among others,
that these addresses are often chatmail and therefore random.
(despite expecting otherwise, that was fine for most users).
this PR removes the email-adress unconditionally:
- having the email-address sometimes shown and sometimes not is confusing,
and easily looks like a bug.
this has become worse with the added vcard-support
(before, there were rare non-guaranteed chats in chatmail) -
resulting in more random addresses being shown
- _always_ protect against over-the-shoulder attacks
- better privacy in screenshots sent around without thinking much before
(cmp. https://github.com/deltachat/deltachat-ios/pull/2329)
- wrt impersonation attacks:
the pure email address in the subtitle did never protect against impersonation,
one could always get sth. trustworthy looking there,
it is better to check the profile with additional information (eg. other chats) if in doubt
- general cleaner, uncluttered layout
- pave the way of the upcoming multi-addresses
drawback is that sometimes one more tap is needed to access the email-address -
however, as it is _always_ one tap away now,
this can also go easily to the finger memory.
it is regarded as a bug
and esp. weird in translations.
it was regarded to be a bit 'nerdy' that time to write it lowercase,
but it seems we have to get more serious now.
This PR removes prepareMsg, which put messages into the OUT_PREPARING state and was used while videos were recoded. It also removes the now-unused method isIncreation().
- It was buggy because when you forwarded a message while it was InPreparation, or when the app was killed while a message is InPreparation, the message would stay InPreparation forever.
- Android is the only UI using this InPreparation (according to @r10s, I didn't check this myself), so we can simplify some things in core, which will also make it easier to deduplicate blob files.
this PR centers the icons in the attachment selector,
the right-aligned ones looks esp. odd when no experiments are enabled.
the default now looks good,
and when all experiments are enabled, things are perfect as well.
but even if only one experiment is enabled, things are better imo
(but we anyway should optimize for default and not for experimental options)
the issue is that unset `EXTRA_HREF` is passed around as an empty string,
however `Bundle.getString(href, "index.html")` returns `index.html` only when `href` is `NULL`,
which is mostly never the case.
this results in webxdc never started with index.html,
and then not started at all
these RPC calls are probably a relict of first tries,
they are not exhaustive in their area are nor were ever used,
maybe not even working.
if we decide to go that way at some point anyways much more is needed :)
* Don't always show the sender in notifications
In 1:1 chats, don't prepend the sender name to every line. The exception is when the display name is not equal to the chat name (i.e. there is an OverwriteSenderDisplayname), in this case we still prepend it.
* Always show the "~" before the sender name if it's overridden
When we introduced this, I assume that we weren't sure whether we should
do it and only showed it in some places. But I think it's nicer to
show the same sender name everywhere, i.e. always add the "~".
fix: Show composite emojis enlarged, too
There are a lot of composite emojis like the flags and the family emojis.
Here, the grapheme starts with an emoji, but then come some other
characters that modify the first emoji (e.g. all flags start with the
flag emoji).
This PR shows those as big, too, by checking whether a grapheme _starts_
with an emoji to determine whether it's an emoji.
---------
Co-authored-by: adb <adb@merlinux.eu>
Not sure why, but `setText()` seems to be called with an empty string
very often - for this case it's nice if getTextScale() returns early.
If the text starts with a letter, we can also return early.
calculation may take a moment,
do this in background.
it is totally fine to just display nothing before,
that avoids flickering (WHAT was this? i cannot look so fast!) -
and in most cases, it is close to instant.
Spinner is very picky about bad selections,
this is an accident waiting to happen -
eg. if new values are introduces
or someone thinks, the "deprecated" case can be removed.
better do not trust incoming data.
from the view of the user, this is just the 'file name'.
calling it 'original file name' there is maybe correct internally,
as we add a random number for $reasons.
however, some users were alarmed about what the heck is transferred here.
* update CHANGELOG for 1.48.0, android part
* update CHANGELOG for 1.48.0, core part
* bump version to 1.48.0
* update CHANGELOG for 1.147.1
* update CHANGELOG
* update CHANGELOG for core 1.148.2
* update CHANGELOG, recent android changes
the foreground service was introduced unconditionally in #3312,
however turns out to be annoying and flickering
if the app is actually in foreground.
the service _might_ be needed in this case only
if the app is about going to background during fetch,
but in this case, we assume,
that we have some 10 seconds time still.
in any case,
this is still an improvement to the released apps,
that _never_ show a foreground service.
having 'add profile' at the end of the list is more natural,
and more consisten with desktop/iOS -
as well as internally, eg. proxy also has 'add' at its end.
also, this paves the way to have a consistent layout when it comes
to profile-switching from forward/share dialogs,
where one probably does not want to have a 'add' button
(so, the first lines are not different :)
the profile list is usually not super-large,
and even if - when ppl have managed to add 10+ profiles,
they'll know how to do this, even with scrolling :)
also, adding is a rare function, in contrast to switching,
so even then it makes sense as there is room for one more item without scrolling.
in contrast,
for 'create chat' we show 'add' at the beginning,
as these lists can contain several hundrets of entries _and_
add is often used.
do not show 'Add Profile' in bold.
this looks less cluttered
and makes the "bold" of the selected account more outstanding:
before, there were two types of "boldness",
the add profile button (using bold only)
and the selected profile (using bold and a background),
this results in a bit cluttered, unsteady look,
esp. when there are few accounts and more bold than normal is shown.
also, this makes "bold" more outstanding,
as this attribute is given to one line only.
there is no need for the "add profile" to be that outstanding
(in contrast to eg. the "add chat" dialog)
it is a minor, sure :)
With https://github.com/deltachat/deltachat-core-rust/pull/6027, when
exporting a backup, the counter stays at 0% while running housekeeping
and vacuuming the database, which takes 10 seconds on my device.
Showing "One moment... 0%" for 10 seconds (or longer on slower devices /
with bigger accounts) might make users think that it's not working and
abort the process. So, instead, simply show "One moment..." until the
progress reaches 1%.
Values 100, 350, 400, 450, 950 are not used in the core,
so this resulted in showing incorrect progress
such as "Preparing account" when actually
database transfer was already in progress.
Desktop already does not expect any special values
and simply shows the progress bar.
* use string 'Saved Proxies' as header for proxy settings
'Connections' is a bit broad,
also there is only one connection.
'Saved Proxies' is also what Telegram is using.
* move proxy settings in 'Advanced' down
logically, this seems to be a better fit.
Account/Password is still the most important bit,
even if not directly needed in chatmail and Proxy is used more often.
* add proxy settings icon to main screen
* use 'cable' instead of 'shield'. things are rewired, but not more protected or secured.
saying post-notifications-granted=false on API that do not need this grant
is misleading as it looks as some error or if the user has rejected sth.
just stumbled upon that and was irritated when trying out things wrt
https://github.com/deltachat/deltachat-android/issues/3281 on android7
'Dismiss' is a bit unclear - even though introduced at #2083 to make things clearer,
i do not think this has happened :) -
i also needed to dive into the source code to see what exactly 'Dismiss' is doing.
meanwhile, we're anyway using 'Mark Read' to remove unread counter from chats,
and this is basically the same. good to be consistent.
finally, this is also the term WhatsApp/Telegram are using.
closes https://support.delta.chat/t/what-does-dismiss-button-on-notifications-do/3261/3
nb: we also change the english 'short' term from 'Read' to 'Mark Read' -
this is sill shorter than many translations
and removes the ambiguousness 'Mark Read' vs 'Open for Reading" -
esp. in the notification without much context, this is better,
but also on iOS, where the term was introduced for, it is good to be explict.
- shorter, less cluttering
- we usually do not say 'Settings' inside 'Settings',
also having several 'Settings' menu entries in the main menu us not so nice
- same as telegram is doing
when replying from within a notification,
the corresponding chat should be marked as being noticed as well.
otherwise, it looks wrong that one has replied to a chat,
but still the chat is shown as being "unread".
the 'reply' from a notification should leave the chat
in the same state as 'dismiss' resp. 'mark read' - plus the added message.
The hitbox for the account switcher was only the own avatar in and the
title, so when you tapped a bit too low or too high, nothing happened.
This PR changes it to be the whole title bar.
for performance and to avoid crashes with potential +250MB in logs
when there are unexpected errors resulting in the same lines logging
over and over several times per second
this PR removes options to create encrypted database.
existing encrypted databases will continue working for now.
the 'encrypted database' experiment started some years ago
was never finishes and already stopped working partly,
eg. importing backups as encrypted accounts stopped working
some years ago for newer android.
in the light of Signal's "encryption key flaw",
but also recent issues with worsending core things in Delta Chat,
it seems wise to concentrate on the core things ("you have one job!"),
and not on side topics comparable few persons are interested in.
also, it will become harder to maintain that path on upcoming api changes,
leaving the database open as opening is slow is needed but will become harder,
this will make notifications tricy,
may need additional effort to run in background etc.
all that is doable,
however, it will remove resources from far more important parts,
dangerously up to a level that breaks the app - a focus is limited.
also, no one really complained as it is already partly not-working,
it was _never_ working on desktop
(where it would make much more sense),
removal on iOS was flawless, see https://github.com/deltachat/deltachat-ios/pull/2011
tl;dr: better leave the protection up to the operating system
and concentrate on other things.
- add a device message for existing profiles potentially using gmail
- reset oauth2 method for existing profiles on opening login screen
- do not offer gmail-oauth2 for new profiles
as on other places,
hide chatmail email address from primary UI as well in the account switcher.
non-chatmail addresses will stay for now;
we are considering to add a "tag" or sth. like that for the user
to differenciate between accounts if they're using same name+avatar.
this also makes the dialog more on-point and easier to read.
as at other places,
we should tune down showning email addresses
also in the primary reaction UI.
ppl will recognize name and avatar,
and if in doubt, you can always tap a reaction to go to the full profile.
there are not really reasons to not allow sending videochat invitations to the self chat:
- it is useful for testing
- one may forward them from there to somewhere else
- it is allowed on desktop and ios as well
in fact, i was very confused that it is not possible
when playing around with https://github.com/deltachat/deltachat-android/issues/3187 .
might be a relict where we did _only_ allow videochat in normal one-to-one chats.
copying email addresses to the clipboard
is not proper way to get in contact in the light of chatmail -
even if the account is non-chatmail, the receiver may use chatmail.
or the copied contact.
it is better to point ppl to use 'Share' or 'Attach Contact' therfore
and not offer failing/corner-case things in the primary menu.
therefore, we do basically the same what desktop is doing all the years:
no special function, however, if you select text (desktop)
or long tap it (android now), you can copy it.
if the value part is missing,
it otherwise crashes when calling MailtoUtil.getText()
and the exception is not handled there (it is not in at least one case).
therefore, just catch the exception in this cornercase (same for bad encoding)
and return an empty string.
QrShowFragment is used by some menu entries
available also when the fragment is not displayed;
therefore, creation on displaying is too late.
(the crash is present only on some android versions,
as many android versions seem to create "neighboured tabs" anyways -
so there should also not be much performance loss)
this helps avoid issues like user changing email address and password
and pressing "configure" button without realizing they have custom
imap, smpt, etc. settings
- say in the timespans explicitly that it is _latest after fetch_;
this matches better to server-side settings on chatmail -
but also when you have different (non-dc)-clients with different settings.
- do not show the alarming confirmation dialog for chatmail -
other, non-dc clients is usually not fitting,
and also there is anyways an auto-deletion
- the default for chatmail becomes 'automatic',
'never' is just wrong for chatmail
the string is deprecated and also no longer used on desktop/iOS.
the 'empty state view' where the string could appear
is anyways not shown often
(usually, there is 'saved messages' and 'device messages'),
so it also does not make sense to think over a replacement.
before, "Info" and "Message Details" were used for the same things synonymously,
this is an issue mostly in the context menus,
where eg. iOS had "Info" but desktop did not -
and android had an "i"-icon ...
but also, tapping 'Info' and then getting a different title
(not only a longer version) is not super-nice.
with this change, everything is "Info", making also the "i"-icon fit.
this is also consistent with WhatsApp.
Signal has the same mess as we before, at least on iOS.
came over that while targeting https://github.com/deltachat/deltachat-ios/pull/2204
and was shortly confused about what is going on there :)
(the name saved to database is not changed, however,
to avoid popping up the message again in case we do an update without a new device messase)
exiting 'select mode' is unexpected when hitting 'cancel' -
the user may still want to do other things with the selection.
this makes the 'mute' behavior consisten with other cases showing a dialog,
eg. 'delete'
body:"DeltaLab release, download the APK file for your phone's CPU architecture, if you don't know your phone's architecture, use the universal APK which works for all architectures"
body:'[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat) [<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)'
* disable non-functional message editing and ephemeral messages timer settings in classic email thread chat
* don't enlage email chats avatar placeholder
* improve message date/status footer layout, also in RTL languages
* display correct text when receiving a "Disapearing messages enabled" system message
* Update to core 2.9.0
## v2.8.0
* Profiles focus on recognizing contacts
* See the number of media directly in the profile, no need to tap around
* Clearer app lists by removing redundant "App" subtitle
* New button for quick access to the apps sent in current chat
* New icon for the in-chat apps button
* Improve hint for app drafts
* Add Text-To-Speech (TTS) support for in-chat apps
* New icon for the QR icon
* Start rebuilding the experimental broadcast lists
into proper channels - note that this is work-in-progress
* Improved separation between unencryted chats/contacts and encrypted ones, avoiding mixing of encrypted and unencrypted messages in the same chat
* Removed padlocks, as encrypted is the default "normal" state. Instead, unencrypted email is marked with a small email / letter (✉️) icon
* Classic email chats/threads get a big email / letter icon making it easy to recognize
* After some time, add a device message asking to donate. Can't wait? Donate today at https://delta.chat/donate
* Allow to sort profiles up in the profile switcher
* Add new option to create unencrypted email thread
* Green checkmarks are removed where they mostly refer to guaranteed encryption, which is the default now. They are still used for profile's "Introduced by"
* Update to core 2.8.0
## v1.58.4
2025-05
* make in-chat apps properly work when they are not sent yet, in draft mode
* better avatar quality
* some more bug fixes and updated translations
* update to core 1.159.5
## v1.58.3
2025-05
* fix: webxdc.selfName uses the name otherwise displayed
* fix potential crash on startup
* add donation link to app settings
* update to core 1.159.3
## v1.58.2
2025-04
* fix draft writing area disappearing for some chats
* update to core 1.159.2
## v1.58.1
2025-04
* tapping info messages with contacts open the contact's profile
* hide superfluous "Show Classic E-mails" advanced setting for chatmail
* show profile bio/status under name in main settings screen
* remove mostly non-telling transport addresses when referring to a contact;
the contact's profile gives a much better overview
* Disable AEAP to enable us to overhaul some things - there are big changes underway in this area, which will come in a few months
* don't display email address in contact list and member list for contacts with green-checkmark
* avoid crash in Notifications preferences if ringtone title can't be read
* don't display forwarded messages as "edited" if original message was edited
* support importing contact from ProtonMail vCard attachments received in chats
* send encrypted in the experimental broadcast lists feature
* wait for QR scan (or invite link click) process to complete before allowing to send messages
* show connectivity status dot when profile is connecting or not connected
* never send Autocrypt-Gossip in broadcast lists.
* update to core 1.159.1
## v1.56.1
2025-03
* ignore click in info-messages from deleted in-chat apps
* data saving: do not send messages to the server if user is the only member of the chat in single-device usage
* protect metadata: encrypt message's sent date
* do not fail to send messages in groups if some encryption keys are missing
* synchronize contact name changes across devices
* fix changing group names that was not working in some situations
* fix: do not show outdated message text in "Message Info" of an edited message
* some more small bug fixes and updated translations
* update to core 1.158.0
## v1.56.0
2025-03
* allow to edit messages
* allow to delete messages for everyone
* add mute option "8 hours"
* add menu option to easily save/unsave selected message
* improve deletion confirmation for "Device Messages"
* remove dangerous encryption options
* always paste as plain text in message draft area
* some small bug fixes and updated translations
* update to core 1.157.2
## v1.54.4
2025-03
* allow better avatar (profile picture) quality
* remove notifications from chat that was deleted from other device
* when a chat is deleted, also delete its messages from server
* avoid freezing when opening the app for the first time after install
* avoid crash when adding chat shortcut to home screen
* some small bug fixes and updated translations
* update to core 1.156.3
## v1.54.3
2025-03
* allow to add any chat to the home screen
* update "forward message" icon and organize the messages actions bar
* do not allow non-members to change ephemeral timer settings of groups
* properly display padlock when the message is not sent over the network
* sync message deletion to other devices
* sync chat deletion across devices
* Show sender in "Saved Messages"
* allow scanning multiple QR-invitation codes without needing to wait for completion to scan the next one
* when reactions are seen in one device, remove notification from your other devices
* don't disturb with notification when someone leave a group
* detect incompatible profiles from newer app version when importing them
* prepare the app for receiving edited messages
* prepare the app for receiving message deletion requests
* do some small bug fixes
* update translations
* update to core 1.156.2
## v1.54.0
2025-02
* enhanced "Saved Messages" feature, now when forwarding a message to "Saved Messages" chat, it retains the sender information and a button to jump to the original message
* Saved messages are marked by a bookmark sign
* improve explanation when blocking a contact
* improve wording in empty "apps" and "files" tabs in chat media screen
* remove deprecated/legacy built-in "half-camera"
* UI improvement: keep avatars aligned to message bubble when message has reactions
* fix problems when opening attachments in external apps
* fix a bug with some big images appearing as blank/transparent
* some other small bug fixes
* update translations
* update to core 1.155.4
## v1.52.1
2025-01
* the app now requires less storage on your SD card by deduplicating newly received/sent files
* some small bug fixes
* update translations
* update to core 1.155.1
## v1.52.0
2025-01
* new group consistency algorithm
* fix: don't show animated .webp stickers as static stickers
* fix the chat shortcuts (created via long-press in launcher) to properly support multi-profile
* fix some small bugs in certain android versions and special situations
* avoid the app freezing in slow phones in some situations
* improve menu in the help screen
* update translations
* update to core 1.155.0
## v1.50.5
2025-01
* fix push-notifications handling for certain devices where it was not working correctly
* update translations
* using core 1.153.0
## v1.50.4
2025-01
* properly send as animated stickers GIF files selected from keyboard
* improve emoji picker in landscape mode and when changing from landscape to portrait
* avoid crash when receiving push notifications if the user restricted the app from working in background
* improve UI when attaching a file or image to easily recognize it is attached but not sent yet
* avoid slow loading of in-chat apps in some devices when quickly re-opening an app after closing it
* allow to select multiple images at once in the media picker via "Gallery" button
* mark holiday notice messages as bot-generated
* don't mark contacts as bot when receiving location-only and sync messages
* prefer to encrypt even if peers have their preference to "no preference"
* start ephemeral messages timers when the chat is archived or noticed
* several bug fixes and updated translations
* update to core 1.153.0
## v1.50.3
2024-12
* Add in-chat apps picker to attachments options
* Notify replies and reactions to your messages in muted chats (can be disabled in settings)
* Cache HTTP GET requests (ex. when loading images from HTML messages)
* update to core 1.152.0
## v1.50.2
2024-12
* Encrypt notification tokens
* update to core 1.151.5
## v1.50.0
2024-12
* New emoji picker with support for more emojis
* Webxdc apps can now trigger notifications
* Webxdc apps can now deep-link to internal sections when you click their info-messages in chat
* Add "Show in Chat" to the menu of opened Webxdc apps
* Reverse order of messages in the notification group
* Notify reactions to own messages
* Improve the button to start Webxdc apps
* Make account deletion confirmation dialog faster
* Rename "Back up Chats to External Storage" to "Export Backup"
* Improve compatibility with classic email clients in the outgoing messages
* Removed internal font scaling setting in favor of the better system settings
* Use privacy-preserving webxdc addresses
* Use Rustls for connections with strict TLS
* QR codes for adding contacts and joining groups provide help when opened in a normal browser
* Mark Saved Messages chat as protected
* Allow the user to replace maps integration
* fix: Trim whitespace from scanned QR codes
* fix quotes: Line-before-quote may be up to 120 character long instead of 80
[<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)
DeltaLab has some extended support for WebXDC apps:
This app has some extended support for WebXDC apps:
-`window.webxdc.deltalab` a string with the DeltaLab version and can be used by app developers
-`window.webxdc.arcanechat` a string with the ArcaneChat version and can be used by app developers
to detect when they can use the DeltaLab-specific features.
to detect when they can use the ArcaneChat-specific features.
-`window.webxdc.isCommunity` true if the current account is a community account
-`sendToChat()`: extra property `subject` can be set to a text string to set message/email's subject.
-`sendToChat()`: extra property `subject` can be set to a text string to set message/email's subject.
-`sendToChat()`: extra property `html` can be set to a string of html markup to set the HTML part of the email/message.
-`sendToChat()`: extra property `html` can be set to a string of html markup to set the HTML part of the email/message.
-`sendToChat()`: the file object parameter also accepts a `type` field that can be one of:
-`sendToChat()`: the file object parameter also accepts a `type` field that can be one of:
@@ -35,12 +28,6 @@ DeltaLab has some extended support for WebXDC apps:
# Credits
# Credits
DeltaLab is based on the [official Delta Chat client](https://github.com/deltachat/deltachat-android) with some improvements.
This app is based on the [official Delta Chat client](https://github.com/deltachat/deltachat-android) with several improvements.
DeltaLab uses a [modified](https://github.com/adbenitez/deltalab-core) version of the [Delta Chat Core Library](https://github.com/deltachat/deltachat-core-rust).
This app uses a [modified](https://github.com/ArcaneChat/core) version of the [Chatmail Core Library](https://github.com/chatmail/core).
# License
Licensed GPLv3+, see the LICENSE file for details.
implementation'com.journeyapps:zxing-android-embedded:3.4.0'// QR Code scanner
implementation'com.google.zxing:core:3.3.0'// fixed version to support SDK<24
implementation('com.journeyapps:zxing-android-embedded:4.3.0'){transitive=false}// QR Code scanner
implementation'com.fasterxml.jackson.core:jackson-databind:2.11.1'// used as JSON library
implementation'com.fasterxml.jackson.core:jackson-databind:2.11.1'// used as JSON library
implementation'com.google.code.gson:gson:2.9.1'// used as JSON library. Don't upgrade to 2.10.1: https://github.com/deltachat/deltachat-android/pull/2610
implementation'com.google.code.gson:gson:2.12.1'// used as JSON library.
implementation"me.leolin:ShortcutBadger:1.1.16"// display messagecount on the home screen icon.
implementation"me.leolin:ShortcutBadger:1.1.16"// display messagecount on the home screen icon.
implementation'com.jpardogo.materialtabstrip:library:1.0.9'// used in the emoji selector for the tab selection.
implementation'com.jpardogo.materialtabstrip:library:1.0.9'// used in the emoji selector for the tab selection.
implementation'com.github.chrisbanes:PhotoView:2.1.3'// does the zooming on photos / media
implementation'com.github.Baseflow:PhotoView:2.3.0'// does the zooming on photos / media
implementation'com.makeramen:roundedimageview:2.1.0'// crops the avatars to circles
implementation'com.makeramen:roundedimageview:2.1.0'// crops the avatars to circles
implementation'com.pnikosis:materialish-progress:1.5'// used only in the "Progress Wheel" in Share Activity.
implementation'com.pnikosis:materialish-progress:1.5'// used only in the "Progress Wheel" in Share Activity.
implementation'com.soundcloud.android:android-crop:1.0.1@aar'// used for profile and group avatar selection in Android SDK<19
implementation'com.github.amulyakhare:TextDrawable:558677ea31'// number of unread messages,
implementation'mobi.upod:time-duration-picker:1.1.3'// Used to pick the time for inactivity.
implementation'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'// number of unread messages,
// the one-letter circle for the contacts (when there is not avatar) and a white background.
// the one-letter circle for the contacts (when there is not avatar) and a white background.
implementation'com.googlecode.mp4parser:isoparser:1.0.6'// MP4 recoding; upgrading eg. to 1.1.22 breaks recoding, however, i have not investigated further, just reset to 1.0.6
implementation'com.googlecode.mp4parser:isoparser:1.0.6'// MP4 recoding; upgrading eg. to 1.1.22 breaks recoding, however, i have not investigated further, just reset to 1.0.6
implementation('com.google.firebase:firebase-messaging:23.4.1'){// for PUSH notifications
<i>DeltaLab</i> is a friendly fork of <i>Delta Chat</i> messenger, a chat app compatible with the existing e-mail infrastructure.
ArcaneChat is a decentralized and secure instant messenger that is easy to use for friends and family.
DeltaLab was created with a focus on usability, good user experience, and saving data plan and comes with some different default settings than Delta Chat. Also the app usually experiments with new features and alternative paths of development that eventually might get added to the official Delta Chat client.
• Anonymous. Instant onboarding without a phone number, e-mail or other private data.
• Flexible. Supports multiple chat profiles and is easy to setup on multiple devices.
• Extensible. Use mini-apps in chats like shopping lists, calendars or games.
• Reliable. Works under bad and adversarial network conditions.
• Secure. Audited End-to-End encryption safe against network and server attacks.
• Sovereign. Can be run with your own e-mail address or server.
ArcaneChat is a Delta Chat client and was created with a focus on usability, good user experience, and saving data plan. Also the app usually experiments with new features that eventually might get added to the official Delta Chat client.
<b>Main differences with official Delta Chat client:</b>
<b>Main differences with official Delta Chat client:</b>
<ul>
<ul>
<li>Basic markdown support (bold, italic, strike, etc.)</li>
<li>Support for some markdown styles in text messages (bold, italic, strike, etc.)</li>
<li>Support for displaying Telegram's animated stickers (.tgs files)</li>
<li>Support for displaying Telegram's animated stickers (.tgs files)</li>
<li>Support for SVG images previews</li>
<li>Support for SVG images previews</li>
<li>Multiple color themes/skins</li>
<li>Multiple color themes/skins</li>
<li>It is possible to enable/disable accounts</li>
<li>It is possible to disable profiles to completely disconnect them saving data/bandwidth</li>
<li>You can easily see the connection status of all your profiles in the profile switcher</li>
<li>A videochat instance is set by default</li>
<li>A videochat instance is set by default</li>
<li>Replies to your messages in muted groups trigger notifications</li>
<li>Extra option to share location for 12 hours</li>
<li>Quote-reply a message with a single emoji to set it as reaction</li>
<li>Clicking on a message with a POI location, will open the POI on the map</li>
<li>Location streaming feature enabled by default and have extra option to share location for 12 hours</li>
<li>Last-seen status of contacts is shown in your contact list, like in WhatsApp, Telegram, etc.</li>
<li>Verified icon is shown in the chat list for the "Device Messages" chat</li>
<li>Videos are played in loop, useful for short GIF videos</li>
<li>Videos are played in loop, useful for short GIF videos</li>
<li>It is possible to click <b>OPENPGP4FPR:</b> and <b>mumble:</b> links in messages</li>
<li>Verified icon is shown in the chat list for the "Device Messages" chat</li>
<li>Voice messages have more aggressive compression in "worse quality" mode to save data plan</li>
<li>Voice messages have more aggressive compression in "worse quality" mode to save data plan</li>
<li>Default configuration changed: automatic download of messages limited to 640KB</li>
<li>Automatic download of messages limited to 640KB by default</li>
<li>Account's display name is shown in the app's title bar instead of the name of the app</li>
<li>Profile's display name is always shown in the app's title bar instead of the name of the app</li>
<li>Your avatar is visible to other users in Mailing Lists</li>
<li>Your avatar is visible to other users in Mailing Lists</li>
<li>Can be selected as application when clicking/opening links, this is useful to share the link with web grabber bots</li>
<li>Can be selected as app to open .xdc files</li>
<li>Can be selected as app to open .xdc files</li>
<li>For mini-apps developers: there are some differences in the WebXDC API, check https://github.com/deltalab-org/deltalab-android/#webxdc</li>
<li>For mini-apps developers: there are some extra features in the WebXDC API, check https://github.com/ArcaneChat/android/#webxdc</li>
<li>Better settings organization with additional "Privacy" section</li>
<li>Better settings organization with additional "Privacy" section</li>
</ul>
</ul>
<b>WARNING:</b> Be careful when running WebXDC apps in DeltaLab, the sandboxed webview can't currently prevent WebRTC connections, so in theory information inside the WebXDC app could be leaked and also your IP, the risk is low, for most people this is not even important, but if you are a person at risk, only use trusted apps, or use official Delta Chat.
* save traffic and storage: recode large PNG and other supported image formats (large JPEG were always recoded; images send as "File" are still not recorded or changed otherwise)
* save local storage: compress HTML emails in the database
Se un utente e-mail classica invia un'e-mail a un gruppo e aggiunge nuovi destinatari, i nuovi destinatari diventeranno membri del gruppo.
Tratta le chiavi PGP allegate dall'utente di posta elettronica classica come un segnale per preferire la crittografia reciproca.
Tratta i messaggi crittografati o firmati provenienti dall'utente di posta elettronica classica come un segnale per preferire la crittografia reciproca.
Corretta la migrazione dei vecchi database.
Correzione: invia messaggi di modifica temporanei del timer solo nella chat già conosciuta da altri membri.
Correzione: utilizza percorsi relativi al database ed evita problemi ad es. sulla migrazione verso altri dispositivi o percorsi.
Correzione: timeout di lettura/scrittura per IMAP su SOCKS5.
Correzione: non inviare "modifiche al nome del gruppo" se nessun carattere è stato modificato.
Aggiungi la traduzione greca, aggiornate altre traduzioni.
correzione: rendere visibili le chat archiviate che non vengono annullate automaticamente (chat disattivate): aggiunge un contatore non letto e sposta l'archivio in alto
correzione: invia file AVIF, HEIC, TXT, PPT, XLS, XML come tali
correzione: attiva la riconnessione quando non si riesce a recuperare i messaggi esistenti
correzione: non riprova a recuperare i messaggi esistenti dopo un errore, impedisce il ciclo infinito di riconnessione
correzione: non aggiunge un errore se il messaggio è crittografato ma non firmato
correzione: non rimuove gli spazi iniziali dalle righe del messaggio
risolvere i casi limite relativi all'invio di testi citati
corretta la connessione STARTTLS
correzione: non trattare gli indirizzi email non validi come un'eccezione
correzione: svuotamento dei percorsi relativi del database introdotti in 1.34.8 in tempo
aggiornamenti rapidi degli elenchi di chat e dell'elenco dei contatti
* aggiunge le opzioni SOCKS5 a "Aggiungi Account" e "Configura"
* introdurre la cache DNS: se il DNS smette di funzionare su una rete, Delta Chat sarà comunque in grado di connettersi ad IMAP utilizzando gli indirizzi IP precedenti
* mostra messaggi completi: non carica automaticamente il contenuto remoto per le richieste
* nuovo e semplice modo per aggiungere un secondo dispositivo al tuo account: seleziona "Aggiungi Secondo Dispositivo" dopo l'installazione e scansiona un codice QR dal primo dispositivo
* visualizza "Tutti i Media" di tutte le chat
* nuova opzione "Cancella Chat".
* mostra le notifiche per tutti gli account
* utilizza meglio la modalità buio/luce in "Mostra messaggio completo"
* mostra l'icona accanto ai messaggi informativi delle app
* resilienza contro le interruzioni memorizzando nella cache i risultati DNS per le connessioni SMTP e IMAP
* Miglioramenti e correzioni velocità e affidabilità
* rimosso il limite di dimensione superiore degli allegati
* risparmia traffico e spazio di archiviazione: ricodifica PNG di grandi dimensioni e altri formati di immagine supportati (i JPEG di grandi dimensioni venivano sempre ricodificati; le immagini inviate come "File" non vengono ancora registrate o modificate in altro modo)
* salva spazio di archiviazione locale: comprimi le email HTML nel database
- Le chat individuali garantiscono ora la crittografia end-to-end per i contatti con un segno di spunta verde
- Per la semplicità di tutti, contrassegniamo queste chat anche con segni di spunta verdi
- I gruppi vengono creati automaticamente con crittografia end-to-end garantita, se possibile
- Accetta/Bloccato, Archiviato, Appuntato, Disattiva Audio è sincronizzato su tutti i tuoi dispositivi
- Ulteriori miglioramenti alla fotocamera, ai messaggi vocali, al backup di tutto, alla lettura dello schermo, agli sfondi per account, alla selezione di tutto nella galleria, all'orientamento orizzontale webxdc
- Le chat individuali garantiscono ora la crittografia end-to-end per i contatti con un segno di spunta verde
- Per la semplicità di tutti, contrassegniamo queste chat anche con segni di spunta verdi
- I gruppi vengono creati automaticamente con crittografia end-to-end garantita, se possibile
- Accetta/Bloccato, Archiviato, Appuntato, Disattiva Audio è sincronizzato su tutti i tuoi dispositivi
- Ulteriori miglioramenti alla fotocamera, ai messaggi vocali, al backup di tutto, alla lettura dello schermo, agli sfondi per account, alla selezione di tutto nella galleria, all'orientamento orizzontale webxdc
Chatta via e-mail. Elegantemente Retrò, Decentralizzato e Aperto. Privacy da Progettazione.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.