yashsingh1/xdaforums huggingface dataset:
[Android Apps and Games] pardub:
Roboto Mono would be a great addition if that could be added.
[Android Apps and Games] mkasimd:
When talking about fonts, wouldn't it make sense to add a bare minimum amount of fonts only instead of as many as suggested in this thread?

Even just a Serif and a mono space font could be sufficient to that end. Maybe (not necessarily) something like OpenMoji for emojis too. Why would FairEmail have to offer more?

Sure, everyone's got their favorite fonts and would love to see them in FE, no doubt about it. But if that's the aim, importing a TTF and being able to manually switch fonts might be a better choice instead of offering a whole lot of fonts by default and making users choose among the available ones.
[Android Apps and Games] M66B:
That was actually the intention.
[Android Apps and Games] heinhuiz:
That's why I suggested the Croscore font set in the first place. It's the same basic set LibreOffice uses.
[Android Apps and Games] upD8R:
Hi there,

I do have some issues with searching (or more precisely, finding) emails and I don't understand the pattern. I use indexing, not sure if the situation improves if I disable indexing in FE.

Following examples, I do have some recent mail exchange with a guy called "Kay". I can see the corresponding sent and received mails in the corresponding folders, e.g. sent. If I search for "Kay" or "kay" in FE locally and on server I only get very old results (not related to what I actually search).

Is there anything I can do to pin down the issue? Should I disable indexing?

I don't have issues finding the mails in Outlook/IMAP (offline, I assume) or in the web interface of my mail provider (Strato in DE it is).

Thanks!
[Android Apps and Games] M66B:
I don't see why searching for a single word shouldn't work via the search index.

Can you please double check the 'More' search options?

For example: if this word is in the email address, you should make sure searching in email addresses is enabled.

In any case searching on the server will be done by the email server. So, the app has no control over this, except for passing the search criteria.
[Android Apps and Games] upD8R:
OMG, I totally missed that. Not sure If i ever restricted that but indeed the search was restricted to subject.

Sorry and thanks for pointing out!
[Android Apps and Games] mathers06:
Hi, thank you for all the work you put in this open-source email client!

I know this issue has been raised several, but the scroll lag is a huge issue in my case and is the only thing preventing me from switching over from k9-mail.

I saw this issue raised twice here, and every time a fix was pushed and the situation seemed to improve for those affected, so maybe my feedback will help you tackle this issue.

I am using version 1.1830a downloaded from the play store, last update 2/7/22 16:36.

As you can see in this video where I've added pointer tracking to help visualize the issue, scrolling is somewhat laggy at slow scroll speeds, and extremely slow when scrolling quickly. It may seem nitpicky but for me it hugely affects the experience.

Screen recording: https://cloud.matheron.eu/index.php/s/RP54EgEtCtEXqfZ

Thank you for your time!
[Android Apps and Games] M66B:
This is mostly a limitation of your device. I can scroll through hundreds if not thousands of messages without much delays on my Pixel 4a 5G.

The 'loading' is normal, which means that messages are being fetched from the database.

The thing is that the speed of the internal storage space is the limiting factor, which is an often neglected factor in device reviews because most apps store everything in the cloud these days.

If would be easy to load the message list into memory and have scrolling without any delays. In fact much simpler that the paged solution which is being used now. However, this would soon result in out of memory errors if there are more than a few messages.

What you can try is to enable debug mode in the miscellaneous settings and reduce the number of query threads to one and increase the sqlite cache size to 20%. Please be aware that you need to confirm both.

Does K9 mail list messages or conversations?
[Android Apps and Games] mathers06:
Thank you for your reply, I am a bit surprised because my device is a nearly brand new Redmi Note 10 Pro which I expected to be on the higher side performance-wise.

I am not too worried about the "loading message" which I don't usually see (actually this screen recording was the first time I saw this message).

I understand that storing all of the emails in RAM would be too much, but maybe only the info needed for display could be loaded in RAM when the list view is created ? (sender + subject) My experience mostly comes from C++/web dev, and I have done a couple of simple projects in Kotlin.

It looks like the UI thread is locked while the messages are being loaded (maybe that's only the headers or maybe you need to load and process the full message in case the user opted to show message contents in the list ?). Maybe the loading of messages from the db could be done on a separate thread from the UI ? In the meantime the list would be populated with "skeletons" since all list items are the same height as far as I can tell.

I tried to change the settings you recommended, and I don't see a noticeable change in performance.

I have used K9-mail both with messages and conversations with similar results. I can get another screen recording if you want (I think I can increase fps of the recording), but it is extremely smooth compared to what I get in fairemail :/
[Android Apps and Games] M66B:
Everything I/O related is done in the background with low priority and never on the UI thread. In fact, the app would crash if any I/O would be performed on the UI thread.

What you can try is to disable contact photos because fetching and displaying these is a pretty expensive operation.

Edit: please have sure you disable favicons, gravatars, etc too. These result in network I/O.
[Android Apps and Games] mathers06:
I disabled all that (and I don't have gravatars in the google play version) but no change. I also tried without network connectivity altogether.

fwiw although the folders in which I usually scroll have a reasonable size, some folders are very large and the overall "user data" of the app is 1.12GB. Could that be an issue ?
[Android Apps and Games] M66B:
The size plays a role in 'loading' and in pre-fetching (loading ahead when scrolling), which could eventually result in degraded UI speed because I/O needs some processing too. This is also where the sqlite cache size is relevant.

Memory shortage could be another explanation for degraded performance.
[Android Apps and Games] mathers06:
By deleting mail server-side and reinstalling the app I was able to get storage down to 100MiB, I closed all other apps but the problem persists.

It's also present in very small folders that are only 2 pages long
[Android Apps and Games] mkasimd:
I just noticed there are many features I didn't even know they existed. As I was thinking "would it be possible to automatically respond to some specific mails with a specific template using rules?".. Yes, FairEmail makes it possible!

I will try this feature out soon. But thanks for enabling such powerful options, Marcel!
[Android Apps and Games] M66B:
Are you using the latest version of the app?

There have been bugs in AndroidX libraries causing this kind of stuttering, used in older versions of the app.
[Android Apps and Games] mathers06:
I am using version 1.1830a downloaded from the play store, last update 2/7/22 16:36.
[Android Apps and Games] M66B:
That should be okay. You could try to update to the latest GitHub version to be sure.

I can't reproduce this problem. Fast(er) scrolling works fine on my device. There is a bit of stuttering initially when uncached favicons are being fetched, but for the rest everything is smooth. In fact this is one of the things I always check after updating AndroidX libraries.

The favicon thread pool is infinite, which I will change to a bounded number. You turned off favicons, so this doesn't look like the cause of your problem.

Maybe something is going wrong with rendering the layout due to an Android bug. This wouldn't be the first time. In fact there are literally hundreds of workarounds in the app to prevent crashes due to bugs in Android.

If you like we can check this: reproduce the problem and ASAP after this long press 'Support' in the navigation menu to send me the debug info. If you wish you can check logcat.txt for oddities yourself.
[Android Apps and Games] M66B:
@mathers06 this is a test version (Play store build) with the contact info thread pools bounded to half the number of available processors (commit):

https://bitbucket.org/M66B/fairemail-test/downloads/FairEmail-v1.1833a-play-test-release.apk

Does this help?
[Android Apps and Games] mathers06:
It doesn't seem to help, however I sent you debug info using this build, and logcat.txt definitely shows the latency. At first looks like too much work is done in the main thread?

If you want me to tweak system settings this device is unlocked and rooted, although I'm not prepared to flash another ROM or another android version to test this.
[Android Apps and Games] M66B:
The only thing which is done on the foreground is rendering. I am not sure why your device isn't able to render fast enough. There is memory enough available, so that's not the problem. The layout of the message list entries is as simple as it can be and optimized beyond the defaults of AndroidX (by caching colors, drawables, etc). Showing the sender/subject and a few other things is all done with a ConstraintLayout, which was optimized for speed. So, unfortunately, I don't have an explanation for what you are seeing :-(

Edit: I captured the debug info too after much fast scrolling, and even though there is much more logging in my debug version, I don't see any warning that too much work is done on the main thread.
[Android Apps and Games] mathers06:
Thanks for trying, I see a few reports of people having speed issues with ConstraintLayout (

https://www.reddit.com/r/androiddev/comments/8hhmh5
) but this does not explain the huge difference between our devices.

I suppose it's not as simple as replacing the ConstraintLayout with a LinearLayout, but I wonder if many users are affected by this.
[Android Apps and Games] M66B:
This is a three years old discussion about a very old version of ConstraintLayout.

The ConstraintLayout is there to fix performance issues caused by nesting views, which is what typically is required when using LinearLayouts ...
[Android Apps and Games] M66B:
Although I was already busy exploring options to add additional fonts to the app in a privacy friendly way (the easy way is to use Google fonts via Play store services), I have stopped with it. Reading the Play store reviews of the last days, when I was away, tell me it won't be good enough ever anyway.
[Android Apps and Games] caprihome:
Features and APIs Overview | Android Developers

Learn about the new features and APIs for developers in Android 13.

developer.android.com

nice :cool:
[Android Apps and Games] La_Globule:
Hello Marcel,

For some reason, I had to delete FE data in the Android parameters.

Before deleting, I made a backup I restored after having restarted the app.

No problem with the restore except that all my previously hidden folders are now displayed for each account instead of being hidden.

Backup and restore made with v1.1833.

So:

1. Is there a way NOT to fetch user folders when creating an account?

2. It would be great to be able to hide several selected folders (user maybe) in one action

Thanks for your time.
[Android Apps and Games] La_Globule:
The user folders disappeared after a while but it was quite surprising to see them again.
[Android Apps and Games] heinhuiz:
I'm trying to find out how I feel about your remark here. Not that I ever care about what font I use in my own emails (or even their layout, as long as they seem easily readable), but I felt like this could be a nice addition to make FE more like a production app, more suitable for office use. For me it still got a bit of a geeky feeling, but that be because I've seen I grow from a privacy minded app our sang until what it is now. It seemed like a logical next step in its evolution.
[Android Apps and Games] M66B:
I checked and the hidden status of folders should be exported and imported.

So, I am not sure what happened.

In any case, it isn't an option to not synchronize the folder list.
[Android Apps and Games] M66B:
Version 1.1834 is available on GitHub now and in the Play store test program after Google's approval.

Changelog/download:

https://github.com/M66B/FairEmail/releases

Instead of adding complex font download stuff, I decided to bundle the Croscore and Crosextra fonts (with Carlito and Caladea replaced by the original Lato and Camo) because I think it is worth the 5 MB extra.

@heinhuiz
[Android Apps and Games] mkasimd:
So, I just tried it. It's nearly perfect, just one thing bothers me: when auto-responding through rules, the original mail is quoted. Is it somehow possible to auto-respond without quoting, or do I have to manually reply using the template instead?

To make it understandable why I need it that way, here my use case:

I do receive automatic emails from a payment provider when new donations were made. The sponsor's email address is in the reply-to header. But the email text includes some information I don't need the sponsor to see. So I want to respond with "Hello $firstname$, thanks.." without showing the text the payment provider sent me.
[Android Apps and Games] M66B:
I will add a rule action option for this. If you wish you can contact be for a test version.
[Android Apps and Games] M66B:
Version 1.1835 is available on GitHub now and in the Play store test program after Google's approval.

Changelog/download:

https://github.com/M66B/FairEmail/releases

The Cambo font was replaced by Caladea and it is possible now to select a default display font, which will be used when the sender of the message didn't select a font (implicitly or explicitly, depending on the email client). The monospaced display option has been removed and the default display font will be monospace if this option was previously enabled.
[Android Apps and Games] primaseluler:
just sent you an email, hope you can help solve my problem
[Android Apps and Games] M66B:
I am not sure if I received a message from you (primaseluler).

I receive many messages each and every day ...
[Android Apps and Games] M66B:
Version 1.1836 is available on GitHub now and in the Play store test program after Google's approval.

Changelog/download:

https://github.com/M66B/FairEmail/releases

For the people who don't like the bundled fonts there is a new display option to turn using the bundled fonts off.
[Android Apps and Games] M66B:
The latest versions added the following fonts to the app (between parenthesis the fonts which will be replaced):

Arimo (Arial, Verdana, Helvetica)

Tinos (Times New Roman, Times)

Cousine (Courier New, Courier)

Lato (Carlito, Calibri)

Caladea (Cambo, Cambria)

The last version added an option to disable these bundled fonts.

Is this okay for everybody? Should any other (Microsoft) font be replaced?
[Android Apps and Games] mkasimd:
Just a suggestion you may think about. Currently, the app offers just too many fonts IMHO. So how about just offering one font for each category (serif, non-serif, monospaced, high-visibility [e.g. OpenDyslexic, Atkinson Hyperlegible, etc.])? If possible, making people able to import a TTF and replace these 4 fonts with a serif, non-serif, monospaced and high-visibility font of their choice.

IMO, adding more fonts isn't the solution, but replacing existing fonts is. Because adding more and more will not just increase the choice, but it will also make the list of fonts grow unnecessarily larger.

In v1.1836, there are a total of 12 fonts to choose from. In 1.1830, there were just 7.

But I also know that some existing users will complain if you reduce all available fonts to just 4 fonts. So, how about replacing the existing similar fonts instead of adding just new ones on top?
[Android Apps and Games] M66B:
The existing font choices represent Android's built-in font family (Roboto).

However, lots of people asked for using specific fonts like Microsoft's Verdana, which can't be added because it requires a license. Arimo is a license free replacement for Verdana and the other added fonts are replacements for other commonly used fonts.

I have considered to add downloadable fonts, but this is complex to add and also to use for the average user. In other words, I expect many questions about this.

Maybe it should be made clear in some way that Cursive, Serif, Sans-serif, Monospace and Fantasy represent font families (so, not a specific font, but a generic font specification). I am not sure how though.
[Android Apps and Games] M66B:
@mkasimd if you think there is too much choice: in the next version disabling bundled fonts will disable the corresponding menu items too.

Apply bundled fonts option to font selection · M66B/FairEmail@6c62f89

Fully featured, open source, privacy friendly email app for Android - Apply bundled fonts option to font selection · M66B/FairEmail@6c62f89

github.com
[Android Apps and Games] mkasimd:
Then how about defaulting these font families to their Chrome counterpart and responding to any requests demanding Microsoft fonts with the fact that it is illegal for you to implement those fonts as Microsoft doesn't have an open license?

Downloadable fonts shouldn't be a feature IMO. If anything, a person should download their TTF from wherever they want all by themselves and thenafter import the TTF file.

That should make things easier for you, plus avoids privacy questions due to you using a service like Google Fonts. Also, if there is a license issue, it becomes their own issue to deal with and not yours. But yes, average users may not use it, just the same way most average users don't use most of the features most likely.

I now understand you meant the font families. It makes sense, my bad there. I don't think you can make it any clearer than it already is as those are the official font family names.

That said, one last question. Did those people want to compose emails using the MS fonts, or did they just want them to be displayed properly? If latter, then no need to add these MS-like fonts in the message composer.

Also, I am fine with larger choice as I never switch fonts anyways, I just use the standard one. But as I used to work in the consumer support branch, I know that too many options confuse people and cause more support requests. That's why I suggested to reduce it and add some level of personalization through importing own TTFs.
[Android Apps and Games] M66B:
Adding replacement fonts is IMHO the best compromise. Fonts in received messages will look close to the original font and maybe more important, it is possible to compose messages and selecting Microsoft fonts (which should answer your question about this), also by default (send settings). Note that if the Microsoft fonts are installed at the receiver's side, these fonts will be used (instead of the replacement font).

Styling text is not directly available in the user interface (and still not far away), so I don't think this will confuse many people. Like you say, most people will not use fonts at all.
[Android Apps and Games] mkasimd:
I see. Then there's indeed no better way to achieve that other than adding those fonts on top. I never use MS fonts (they look terrible), but many people do and many people expect them to work everywhere..
[Android Apps and Games] fraschi51:
It doesn't matter what fonts you use when composing - the sender can never determine how a mail will look to the recipient. Here, one and the same mail looks completely different in my five or so different mail clients.
[Android Apps and Games] M66B:
That's what I mostly say indeed. Hence why there were font families only before.
[Android Apps and Games] La_Globule:
Hello Marcel,

I am wondering why the option "Save drafts on the server" is not located in the global send parameters instead of in the vertical 3-dot contextual menu when composing a new message?

Maybe could it be grouped together with the others...

Thanks
[Android Apps and Games] M66B:
People, including myself, enable/disable this depending on the situation (slow data connection, etc).
[Android Apps and Games] M66B:
The next version will support AMP Email:

AMP Email

AMP for email allows senders to include AMP components inside rich engaging emails, making modern app functionality available within email. The AMP email format provides ...

amp.dev
[Android Apps and Games] M66B:
"Reviews" like this do not make me happy:

I can remove Bugsnag, but error reports still result in adding workarounds for Android problems multiple times a week. If the app crashes due to a bug and it isn't in the logcat (which is disabled on some devices by the manufacturer!), Bugsnag is the only way to get to know what happened.

I can incorporate PGP into the app, just like S/MIME, but it will be a lot of work (think 500-1000 hours = 50,000-100,000 euro) and the keys needs to be stored in the app, which is IMHO a bad idea. In the Netherlands 100 euros/hour is a pretty conservative rate.

In any case a 3 star Play store review like this doesn't motivate me to do this, on the contrary. I think what is being "asked" for it's pretty unreasonable, which is to invest a lot of time for free. I can't make PGP a paid feature anymore because that's not allowed by the Play store policies. Moreover, one form of encryption should be free to help people protect their privacy IMHO.

A new Play store voting round will be appreciated.
[Android Apps and Games] M66B:
Version 1.1837 is available on BitBucket now.

Download:

https://bitbucket.org/M66B/fairemail-test/downloads/FairEmail-v1.1837a-github-xda-release.apk

Changelog:

https://github.com/M66B/FairEmail/blob/master/CHANGELOG.md

Since how messages are being decoded, this is a bit of an experimental version. That said, I have been using the app with these changes for a few days without any problems.

This version supports AMP Email. If you want to try this, you can download this example raw message file. Open the file with FairEmail, save it with the button in the top action bar, open the saved message and tap on the ⚡ button and let the cats play ;-)

Edit: the app will check the domain name of the AMP script and allow white listed domain names only. Basically, this means that displaying AMP with FairEmail should be safe.
[Android Apps and Games] beeshyams:
Like the feature. Thanks
[Android Apps and Games] nadir husain:
Marcel is a magician😃
[Android Apps and Games] mkasimd:
This review is bull****. Even a grad student knows a very common rule: don't reinvent the wheel.

Some people have taken hundreds or thousands of hours of time to build a working solution and are maintaining it. It's only natural that you choose to use it instead of everyone building their own solution. If you happened to reinvent every library you use, you couldn't ever possibly maintain FairEmail.

For 99,9% percent of us who want FairEmail to stay an app you can still maintain and also for your own health, ignore this bull**** demanding you to have an own implementation for every little thing..
[Android Apps and Games] heinhuiz:
I'm trying to ddg what the problem might be with OpenKeychain, but I can't find anything alarming. Can someone provide a link?
[Android Apps and Games] M66B:
Please see here:

Add note about maintenance mode to readme · open-keychain/open-keychain@6f38af1

Both @dschuermann and myself no longer spend a lot of time on this project. Here's a brief summary of a blog post we never wrote: * All of OpenKeychain's UI is an anti-feature. * If the u...

github.com