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-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite) [<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/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)'
[<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-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite)
[<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/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)
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
to detect when they can use the DeltaLab-specific features.
- `window.webxdc.arcanechat` a string with the ArcaneChat version and can be used by app developers
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 `html` can be set to a string of html markup to set the HTML part of the email/message.
@@ -35,12 +30,6 @@ DeltaLab has some extended support for WebXDC apps:
# 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).
# License
Licensed GPLv3+, see the LICENSE file for details.
This app uses a [modified](https://github.com/ArcaneChat/core) version of the [Delta Chat Core Library](https://github.com/deltachat/deltachat-core-rust).
<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 messenger app that is compatible with the existing e-mail infrastructure.
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.
Some features at a glance:
💬 Reliable instant messaging with multi-profile and multi-device support.
⚡️ Sign-up easily using secure fast chatmail servers. You don’t need a phone number or any private data.
📧 Alternatively, use your existing classic e-mail address to read your inbox as chats.
🎮 Interactive mini-apps in chats for gaming and collaboration.
🔒 Audited end-to-end encryption safe against network and server attacks.
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>
@@ -9,22 +21,17 @@ DeltaLab was created with a focus on usability, good user experience, and saving
<li>Support for displaying Telegram's animated stickers (.tgs files)</li>
<li>Support for SVG images previews</li>
<li>Multiple color themes/skins</li>
<li>It is possible to enable/disable accounts</li>
<li>It is possible to disable accounts to completely disconnect them to save data/bandwidth</li>
<li>A videochat instance is set by default</li>
<li>Replies to your messages in muted groups trigger notifications</li>
<li>Quote-reply a message with a single emoji to set it as reaction</li>
<li>Location streaming feature enabled by default and have extra option to share location for 12 hours</li>
<li>Verified icon is shown in the chat list for the "Device Messages" chat</li>
<li>Location streaming feature enabled by default and extra option to share location for 12 hours</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>Default configuration changed: automatic download of messages limited to 640KB</li>
<li>Account's display name is shown in the app's title bar instead of the name of the app</li>
<li>Automatic download of messages limited to 640KB by default</li>
<li>Account'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>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>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>
</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
- nuovo inserimento: puoi creare un nuovo profilo con un tocco su "Crea Nuovo Profilo" - oppure utilizzare un accesso esistente o la configurazione del secondo dispositivo come al solito
i contatti possono essere allegati come "Schede" in "Allega/Contatto"; quando il destinatario tocca le carte, è possibile stabilire la crittografia end-to-end garantita
- aggiungi contatti manualmente in "Nuova Chat / Nuovo Contatto / Aggiungi Contatto Manualmente"
- invia qualsiasi emoji come reazione
- mostrare le reazioni nei riepiloghi
- blocca/archivia/ecc. le chat direttamente dai risultati di ricerca
- aggiungi un'opzione per contrassegnare tutte le chat selezionate come "Lette" (tocca a lungo una chat per avviare la modalità di selezione)
- i nuovi profili chatmail per dispositivo singolo hanno come impostazione predefinita "Elimina Messaggi Dopo il Download"
- quando si utilizza un profilo chatmail su più dispositivi, la cancellazione viene modificata in "Automatica" (la strategia di cancellazione dipende quindi dal server)
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.